Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Sports Fiction ®

Author
Message
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:16 Edited at: 12th Apr 2013 21:19
Yeah these things can take long; La Noire took 6 years and had hundreds of people working on it.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:19 Edited at: 12th Apr 2013 23:41




Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:20 Edited at: 13th Apr 2013 00:33








For more information about LOD and what it means for gameplay and character creation, please contact or reply.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:20 Edited at: 12th Apr 2013 23:49
The following section demonstrates shading techniques that are not yet complete and are likely to be improved throughout the year.













Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:21 Edited at: 13th Apr 2013 00:24
The following grass shader is not the final result to be used in the completed game, and is by no means the only grass technique planned.









Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:21 Edited at: 13th Apr 2013 00:03
The procedural textures are generated in the graphics card via the HLSL shader scripting language. These are purposed for animation and differentiation.









Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:22 Edited at: 13th Apr 2013 00:05
The ZeroOne engine will provide various means of rendering metals and stones, the following images demonstrate some of the possibilities so far in SF 0.38.





Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Apr 2013 21:22 Edited at: 13th Apr 2013 00:09
The following models are being used as prototypes for their given classes.











[ End of update 0.38 ]

Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 13th Apr 2013 05:31
interesting as always man, your stone materials in particular are fantastic.

now this may be a stylistic choice and that is totally your call, but i feel that the extreme difference between the ultra detail of the environment textures/shaders and the smooth shiny featureless plastic of the character and car to be off putting.

they would really benefit from a spec map as there is currently no distinction between cloth, skin, hair, car composite etc. you could still maintain a toon look while creating some material definition and bringing the spec under control.

the car has no visible means of entry and could use some seams for doors, engine, trunk and so on.

Sph!nx
15
Years of Service
User Offline
Joined: 3rd Dec 2008
Location: The Netherlands
Posted: 13th Apr 2013 14:38
Yeah, great looking project. Keep it up!

Regards Sph!nx
www.mental-image.net
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Apr 2013 15:39
Quote: "Yeah, great looking project. Keep it up!"


Will do

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Apr 2013 16:26 Edited at: 17th Aug 2013 04:05
Quote: "now this may be a stylistic choice and that is totally your call, but i feel that the extreme difference between the ultra detail of the environment textures/shaders and the smooth shiny featureless plastic of the character and car to be off putting. "


Nah, it's not a stylistic choice.

Most car and character screenshots feature no shader programs and are reflecting light with default parameters, which looks like plastic. The character screenshots that do contain shaders only demonstrate the airbrushing comic book effect; the shaders themselves have bump mapping and reflectivity minimized because it will take a little longer to get them to look right. Furthermore, they do not make use of my compositie shader which makes scene objects look a part of the same scene. I did not apply vehicle shading because no particular shader has been picked yet to render the cars; there are three candidates and I will be testing all three before making a decision. The process of rendering a car requires at least 3 textures, but the screenshots show the car with just one texture and no shader.

For now, the graphics programming is being demonstrated for its current function and capabilities; a bit like how photoshop documentation demonstrates the effect of using their filters individually.

In the final game all the shader programs will be used creatively and artistically to create a complete composite image, graphics will direct the player, stir emotions and form a consistent trade mark theme used to reflect that 'this is Sports Fiction' when you look at it. So it will all look a part of the same environment; furthermore some objects will mix one shader with another.

I constantly study all the mainstream game engines and am by no means using DBP-DX9 limitations as an excuse to justify delivering cheap looking content; I want to actually play the game so it needs to impress me. I wish to build an engine that can beat mainstream engines in at-least a few areas of function and style worthy of being mentioned in any game engine review program; otherwise I've not accomplished a significant aspect of my plan.


I have keen interest in fine details such as skin and dust particles; but the theme I have in mind will make things like slightly inked in comic book style. You might not notice now, but some of the cave textures have an inked effect applied to them; but in this showcase I've not talked about the ink effect; something I will touch on perhaps in the 0.4 update.

Quote: "the car has no visible means of entry and could use some seams for doors, engine, trunk and so on."


The car has doors cut out; in earlier screenshots the door was taken away to show this. Because the car isn't shaded, there's no bump maps, the screenshot just a flat colour in the shape of the car with no detail. The grooves and edges will be handled by shaders and the light cannot reflect the way it does by default, which makes the car look like plastic.

Details

I won't personally be focusing on visual details; although I do spend a little time here and there making certain things look detailed; just to prove a point. However, it is my key role to build the engine and lay the foundation. I do all the game-play and technical stuff, others will have to do the modelling. Even though I would model everything from dashboards to birds in the sky if it where a modelling project; that is not so, I've got to balance time spent programming with modelling; and where I do model it is more for function than look, even though some bits look pretty good so far.

In terms of timescale between 0.3 and 0.7, most content will be prototypes to be used by creative professionals to expand on. The 3D has mesh and UV structure which the engine understands and can use to allow players to alter the shape of cars and characters; hopefully something to be showcased next.

An additional note is that not all information is being given out; so things will make more sense closer to release.

Quote: "
interesting as always man, your stone materials in particular are fantastic."


Good to hear; it will be great to see test how the materials improve in future updates.

Nabz_32x
15
Years of Service
User Offline
Joined: 25th Oct 2008
Location:
Posted: 14th Apr 2013 20:03
Really like the grass shaders you did, looks very smooth animated, I wish I where far enough with my IT studies to program some shaders.

I like the big Xtreme G like transport vehicle, that is some serious design work, looks like you have everything set, to make a very huge and interesting game world.

The character modells are looking very good, wish I where far enough in blender to use curves and make actual faces (I use spheres with a texture lol).

Conclusion very professional looking
and a good step forward in adding content to the game.
With those professional looking pictures you took from your models, other people will think you have everything under control and know the ins and outs of game programing, so it would be serious enough to get backed on kickstarter.

Keep up the awesome work.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 16th Apr 2013 14:02
Quote: "I like the big Xtreme G like transport vehicle, that is some serious design work,"


Yeah, can't wait to see how that looks in motion. Will be gathering up more ideas to create more unusual classes of vehicle and a few air-crafts and backpack jets.

Quote: "
The character modells are looking very good, wish I where far enough in blender to use curves and make actual faces (I use spheres with a texture lol)."


I don't think that's a bad idea for the game you are doing. The Wii sports games sold 80 million copies not for realistic graphics; yes they where flagship for the remote console; but they used spheres and cubes effectively.

I think Blender meta objects are quite useful for these kinds of characters; unfortunately you wouldn't be able to export their animations into DirectX as easy as you can with traditional mesh objects.

Quote: "Really like the grass shaders you did, looks very smooth animated, I wish I where far enough with my IT studies to program some shaders. "


I think the grass did very well; it is practically lag-less and will look even better in combination with other grass techniques.

Today I will be working on the network system, and its first job is to link up a simple scene debug monitor and some texture manipulation controls.

Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Apr 2013 05:33 Edited at: 17th Apr 2013 05:34
Quote: "I think Blender meta objects are quite useful for these kinds of characters; unfortunately you wouldn't be able to export their animations into DirectX as easy as you can with traditional mesh objects."


once you have finished making something with meta objects (or nurbs curve/surface also handy), they can be converted to a basic mesh object from the object menu, though the resulting edge flow leaves a lot to be desired for deformation if animating.

Alduce
21
Years of Service
User Offline
Joined: 26th Oct 2002
Location: Rama spaceship
Posted: 14th May 2013 10:45
wow.. I am just AMAZED by your work Chris..
wattywatts
14
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 14th May 2013 11:19
Hey Chris, I really like your grass shader. It got me thinking, I wonder if the grass in Flower was created using a shader. (if you haven't seen it, flower on ps3 has at least what I would call the best grass in any game).
Any chance of you releasing that shader for public use?

http://mattsmith.carbonmade.com/
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 16th May 2013 22:09 Edited at: 16th May 2013 22:15
Quote: "wow.. I am just AMAZED by your work Chris.."


It's always great to have ones work appreciated. What amazes me is this used to be a cube on a blue screen and a couple of drawings of stick men. It shows that once you keep adding content and code, piece by piece something will come out of it one day. I've still got at least two years to go, but if I remember two years ago, it does not seem that long ago.

Quote: "Hey Chris, I really like your grass shader. It got me thinking, I wonder if the grass in Flower was created using a shader. (if you haven't seen it, flower on ps3 has at least what I would call the best grass in any game)."


I've looked at the shader they used in Flower (It's got to be a shader to draw so many blades in real time in DX9), their work seems much more complete and refined than mine; it looks like they might be using a similar technique, if not geometry shading in shader model 4 and above. I can only get away with shader model 3 in DX9, and I want SF to work on old hardware.

Quote: "Any chance of you releasing that shader for public use? "


I do not know yet.

I am currently creating an official modding tool for Sports Fiction which will also be my contribution to TGC to kind of replace Dark Shader and Texture Maker; and will provide 3d/2d map based tools. It will be called XProducer, and will be featured in the 0.39 update in 4 to 6 weeks time.

Whether this editor will make my shaders available as open source is a business decision I will have to make over time. There are some good people around here I'd love to share my work with; but then there is the people who take your work and put it in some AAA title and release it as their own work and make millions, whilst I struggle to get 10 visitors per day, it seems like it would be a bad business decision from my personal perspective so far. At rock bottom of the game development pay grade, I will need all the unique features I can create.

Just as a side note, there will be other grass techniques used in combination; and I will make use of Plant life and other plant tools.

But to give you a hint about the technique, what you can do in Photoshop, you can do with shaders; follow a grass tutorial in Photoshop then think how to paint blades along a polygon.

Fantasy Multimedia
13
Years of Service
User Offline
Joined: 20th Apr 2010
Location: Reno, NV
Posted: 1st Jul 2013 22:33
I haven't been on the forums in quite a while and it is really cool to come back and see projects like this that have sprouted up! Great work!
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 2nd Jul 2013 00:08 Edited at: 2nd Jul 2013 00:13
Thanks; and thank you also for stopping the thread from getting locked!

I was going to make a bump post; but now my post is not a really a bump effort anymore, ahah

It's been a general programming spring season so far. In the winter season much of the attention was placed on modelling and shading. Now it's all about making things tick. After summer is over, the attention will be put into the documentation, story and player objective system.

The documentation currently in the works is to be uploaded as an on going dynamically updated work in progress, some time between October/November on some kind of web portal or Wiki. It will indicate what demo-versions will be released, what each game versions will feature, how to play, how to make gadgets, how to create sports clubs, how to develop sports and tournaments, how to host tournaments and what development and marketing campaigns will be undertaken under my business identity Binary Modular.

The ZeroOne engine framework is 90% complete; with 80,000 lines of code; which is likely to rise to 90 - 100k in 3 or 4 weeks. This all means there is plenty of functionality for a fun experience for people and their communities; on and offline.

There is so much the engine can do that it intimidates me; I often get lost in code trying to figure out what features to make live first, and what features to leave for later. Some features where put in years ago, and some just 5 minutes ago. You can make any genre of game with this framework; so versatile that sometimes I wonder why I am not making an MMORPG. It is as versatile as it needs to be because it needs to simulate a variety of customizable sports as well as implement an RPG structured world.

It looks like the first sports will be car racing, water sports, soccer and baseball; all with a science fictional touch. As base-sports, these are classes which custom sports can be derived from, and sports tournaments can feature a variety according to preference.

The next update is likely going to be used to talk about the building blocks of the engine which includes entities, triggers, nodes, scripts, materials, themes, sites, portals, occluders, paths, routes, AI tendencies, input bindings and sound sources. For some who do not know what language I am speaking; don't worry the game will do all the talking quite soon.

X-Producer, the editor for the customizable sports, maps and events is additionally a future product for game developers which is using ZeroOne as the scene builder and Microsoft .NET as a development tool to create advanced scene and shader programs; it is also a means for the general user to create further scene and shader building tools.

Most importantly in a few months more information will be exposed about the actual game so that people will have a clearer idea of what kind of entertainment they have to look forward to for years to come.

Pincho Paxton
21
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 2nd Jul 2013 23:00
This project is sort of.. followed by with a bit of and some ... .

I see some great ideas, and great designs mixed with some shiny people like crazy paving.

I like the vehicles.

I don't like the people.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 3rd Jul 2013 01:06 Edited at: 3rd Jul 2013 01:14
Yeah.., people tend to think that this is final works lol. First, the technical work is being completed; then the artistic work will follow; a bit like building the house before decorating it.

All are pre 0.38 technical purpose screenshots; so by the time the project gets to 0.8 or 0.9; there will be plenty of and plenty of . And I am confident you will be the first one to download and will struggle to switch off the game.

But please do elaborate on what exactly is causing the ? I know about the character reflectivity, spectacularity and detail; that's all creative stuff that gets done during content phase; what else?

Dimis
12
Years of Service
User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 3rd Jul 2013 01:41
Not a fan of sport games generally, but I am anxious to see the final result. Great work.
I don't see something bad, here. Your models are low poly, it is natural for vehicles and buildings to look better than people.
Especially in that phase of development, since as I understand your models are placeholders for something more detailed.

Pincho Paxton
21
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 3rd Jul 2013 03:20 Edited at: 3rd Jul 2013 03:22
Quote: "But please do elaborate on what exactly is causing the ? I know about the character reflectivity, spectacularity and detail; that's all creative stuff that gets done during content phase; what else?"


There is too much smoothing as well. On the first car there is too much smoothing, and on the people. Smoothing is subdivide model too many times without creases. The first car almost gets away with it, and you could probably still use it with just a few tweaks. The other vehicles are amazing, especially the buggy.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 3rd Jul 2013 16:03
Because they're not ready.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 3rd Jul 2013 16:05
Quote: "Not a fan of sport games generally"


You will be.

Pincho Paxton
21
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 3rd Jul 2013 17:34
Quote: "Because they're not ready."


Anything requiring criticism is never ready, that's why the forum is called WIP.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 4th Jul 2013 02:42
OK then

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Aug 2013 03:33 Edited at: 17th Aug 2013 07:53

0.45 Preparation Update


Welcome to the pre-0.45 update focusing on the Binary Modalar ZeroOne SDK for Sports Fiction, featuring the X-Producer ® World Creator. This update is the first of a number of minor progress logs before the next big one, SF 0.45.

Zero One is a DarkBASIC professional creation that is a dynamic system of entities created for one purpose, simulating worlds. In the Sports Fiction SDK, modders seeking to quickly develop their own sport will find everything they need to be creative and get recognized for their talent.

Users of the X-Producer DirectX world creator will be able to create and export modular scenes ranging from little rooms to an entire world for use in various TGC products such as Dark BASIC professional and the App Dev Kit, in 2D or 3D file formats suitable for your application.

The Sports Fiction edition of the X-Producer will feature an array of plugins and scripts formulated to provide means for customizing the game, creating online tournaments and publishing MODs (game modification packages) to the players.

The X-Producer is publicly customizable... all you need to do is learn how to expand it and share your features in plugin, script or template form. The sharing process is to be handled in an integrated online database, so that when connected to the internet; users across the globe may download your editor extensions and assets free of charge or at a given price.

The software development technologies that may be used to extend the X-Producer include Micrsoft .NET framework languages such as C#, C++ and Visual Basic; TGC’s DarkBASIC Professional, or XML, LUA, XAML and X-Nodes. What these development facilities can extend may differ and will be explained in the documentation so that you can cater the tools for your creative aspirations.

Thanks to TGC’s comprehensive, road-tested collection of software functions and community published plugins used to create the likes of FPS Creator, your effort can be spent building worlds and controlling the entities within them without having to deal with hard-coded object placement and writing up lists and lists of coordinates and shader assignments.

Literally paint objects, on-top of objects, inside of objects, facing towards objects, away from objects, at the same size of objects, with the same texture of objects, in the a similar shape of another object, on each vertex, each limb, each entity ... OK the object placement capabilities of the X-Producer are almost endless, but it is way too tedious to explain everything this way; it will be better to see it for yourself; and it is for this reason the next season of development will be spent preparing demonstrations and online documentation of the early development version of the editor and its first game-scenarios for SF.

From this moment in time all the way up until the 0.45 update reveal, I will introduce the concrete elementary elements which make up the Sports Fiction and X-Producer family of Zero-One enhanced applications. For those wishing to develop new sports or expand on traditional ones, and for those wishing to develop scenes for their own gaming products, presentations or movies; there is much learn, and a now is a good time to start explaining.

Let us begin

Oh and why not visit the Dark BASIC database to download and rate games and applications developed by the community:



http://darkbasicshowcase.binarymodular.com/

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Aug 2013 03:33 Edited at: 12th Sep 2013 07:51
Latest Freqently Asked Questions




About Sports-Fiction

--------------


How do you play Sports-Fiction?
The game consists of a casual, practice and career mode; and it is the career mode that is the flagship game mode. The player plays the role of a training sports personality who joins a chosen global sports squad and selects an archetype, personality and class. The players must choose and specializes in one of three sporting roles:

Athelete, Controller or Transporter.

The player commences towards qualification for Multi-Sports Championship league. In this league a number of mixed sports are created where one team has to reach objectives or goals using athleticism, technology, transport and arena or level manipulation.

One example of a sport would be a search and find ball game where one team must find and throw the ball from team mate to team mate and transport the ball from one location to another.

The handling of the ball would be carried out by Athletes; who are sometimes permitted to make use of robots and gadgets to aid transportation, tactics and deception.

The transportation of athletes in large scale environments would be carried out by transporter, using various qualified vehicles.

And in the control room or in the field; the controllers have access to the arena's mechanical modular formation components; doors, walls and floors that they can change to assist their team and protect them from the opposing team.

But this is only one sports scenario, in other sports, only one or two of the character classes can participate; however, all sports played award each global sports squad with different classifications of score which add up to victory or failure in the championship. But there are also the emotional and twisted challenges outside of sport that the players need to deal with.

What kind of sports will it include?
All-sorts, many un-heard of; and then there are the sports that you might come up with if you take up sports development.

When will it be released?
There is no set date, however a good guess is that a pre-release would be ready in winter 2014/2015. Most of 2013 will be spent on the foundation of the engine. The content for the game is being focused on next year.



Is it an online-multiplayer?
Yes, but you can solo it or practice offline or play on LAN; or play in split screen or multi-monitor mode; or a combination of the lot.

Is it massively-multiplayer?
The answer to this questions is neither yes or no; there is no specific answer because there are so many definitions of MMOs, but none of them appear to describe the structure of my network and it is too early to classify it; also, the user account limit is likely to be below 50,000 players per server; which is quite small for an MMO; and I cannot currently see more than 100 players running up and down in the same area working very smoothly on limited equipment. However, most sport domains will not require more than 20 players, and most of the mass population traffic will take place outside of the sports arenas in the role-playing domain.

So far the whole basis of the ZeroOne engine is to connect people into the game environment seamlessly; and the AI entities can be hosted and synchronized remotely. Every single entity exists on some kind of server, even if local; even in the X-Producer World Creator the entities are network based which is how it provides network collaboration.

The world is blocked up into sections called sites which manage the synchronization of entities from computer to computer according to who is in them. Additionally there are entities called domains which seperate interactivity between entities on the same network and in the same world-sites.

There will be an optional lobby system for casual online games or tournaments; however the main SF game mode connects you to people and AI near the world location you are in; and loading screens are being heavily avoided where possible.

How much will it cost?
As reasonable a price as possible

Why doesn't the modelling or graphics look good?
The current development process is not quite related to creating fantastic looking models and graphics; its more for technical preparation.



About the X-Producer

--------------



What is X-Producer?
It is a necessary world development tool for Sports Fiction and is to be useful tool for any TGC game developer wishing to put together a 2D or 3D world quickly. World is a term used vaguely because in the editor you must define what it is. In ZeroOne, an instance of the process is considered to be one world, and everything that runs in it belongs to that world, be it text, sprites, sound or 3D content. That world is then exported to Sports Fiction, Dark BASIC or Video to be used for the given purpose. More discussions about the world entity will commence over the course of the next few months.



At the moment it consists of over 1000 tool commands which manipulate vectors, pixels, vertices, limbs, meshes, sprites and anything that is tied to a trigger, node (logical instruction point on a node graph diagram) or properties (variables which can contain events and can be bound to others or networked).

Most of the emphasis is on placement rather than modelling, therefore this is no replacement for Blender or 3D Studio Max; it is a completely different tool based on world forming, data-binding and shader development; and by comparison is very young.

How much will it cost?
As reasonable a price as possible; plus a free version will be available. The Sports Fiction edition will come free with a copy of the Sports Fiction game. Numerous versions will be made available for different needs.

How long has it been under development?
Technically X-Producer and Sports Fiction are the same thing used for different purposes containing different assets, therefore they are as old as each other, 2 years old under 0.45 status, to be released near 1.0 status.

The idea to implement live-shader development into the editor only came into place 4 months ago.


What file formats will it support?
Most of the file formats used to create Direct X games, with some additional image and video formats yet to be confirmed.

What are the system requirements?
It will require Direct X and PhysX drivers installed on a Windows based operating system ranging from XP to Windows 8. The hardware requirements depend on the use of the program.


About Me
--------------


Why do I use a TGC forum as a development blog?
Mostly due to the tradition of posting TGC related projects on their forums; I also host other websites for the project and will be releasing a new website for the next major update.

Why don't you use Kick Starter or accept donations?

I refuse to attempt to raise funds for a software project until I feel that a reasonable fully working demo is ready.

Why didn't you make an FPS or fantasy RPG or something more commonly understood than a weird looking sci-fi sports game?
I guess it is down to vision. What I see in my thoughts, and so far I have not come close to recreating what I see, but I am slowly getting there.

Why did you choose video games as a hobby?
Because I used to dream about making games as kid, I was not dreaming about much-else. I think I am good at wasting time playing games, so I felt I am qualified to waste time making one; then eventually it stopped seeming like a waste of time.

How do you make video games?
This is usually the first question people ask me, and on this particular forum this is a silly question; but not everyone reading this is aware; so in a nut-shell, you have to create an environment for the player be challenged with or amused by. I do this personally by creating a 3D environment with audio and graphics within multi-media and 3D development tools such as Blender.

This environment is then loaded into an executable program, a set of computer based instructions that are written in a programming language; in my case, a set of instructions which tell the computer how to make a bunch of pixels look like a game world. Fortunately, much of the needed instructions have already been written by TGC; and as DarkBASIC developers, we manipulate and expand upon these instructions to forumate a system which entertains and challenges you. The X-Producer tool being created will make the environment building process easier and more creative.

Why do you do everything yourself?
Because I have no other choice; however I will not need to create the whole product on my own, just the foundation.

Tell more about yourself?
OK ->


About the Engine (Zero-One)
--------------


What is Zero-One and what will it do for me?
Zero-One is a code-name for the system of entities and elements used to control and define the tedious nature of scenes in a world. For TGC app developers, this is good news because you will have the option of using these elements to define your scenes without having to hard-code them. For Sports Fiction players and sport creators; there is no game without an engine; and what a fantastic indie-game engine it will become.

Why Windows Only?
Because Dark BASIC and DirectX are windows based; and I will take full advantage of knowing what platform my players are using; instead of guessing what platform they are playing on.

Why Direct X 9.0
This is the version that Dark BASIC professional was made for and is very reliable.

Can I build and release games with it?
There will be a number of ways to build full games with the X-Producer.

1 - You will be able to export games to run in the X-Player client. All features of the 01 Engine will work in your release. The X-Player client can be hosted in your own Windows application given the obtained license option.

2 - Basic gaming logic can be exported to DarkBASIC professional. X-Producer templates will generate the DarkBASIC code for loading and placing of objects in your world; and may even generate their events if you choose to define them in the editor. Not all features of ZeroOne will be compatible with DarkBASIC Professional.

3 - You can host the X-Player in your DarkBASIC or other Windows Application as a user control given the required license option.

4 - Owners of Sports Fiction can release their own sports or story based campaigns that can be played in Sports Fiction.


About DarkBASIC Professional and this project
--------------

What role does DarkBASIC play in Sports Fiction and X-Producer?
The DarkBASIC source code will make up approximately 40% of the engine. an additional 40% is being created in Visual Basic .Net, and rougly 20% in online and offline scripts. This does not include the gaming content for Sports Fiction, nor the high-level entities for the X-Producer World Creator.

DarkBASIC professional and its plugins are for the most part used to render the scenes and process the physics calculations, via the DirectX and NVidia PhysX pipelines. ZeroOne is a system of entities which organize these processes into logical components ready to be used by SF and X-Producer.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Aug 2013 03:34 Edited at: 4th Sep 2013 22:02
How it works

The following information will appeal to those who are thinking of creating their own video game sport, or for those who wish to design a world for their own video games.

The elementary components of the X-Producer and Sports Fiction runtime engines will now be introduced. The following system of entities can be used to develop SF sports or game worlds for your DirectX/TGC related video game. Here outlined is a summary of basic engine entities and a quick look at how the world editor functions. To find out more information, stay tuned for further updates and the release of the 0.45 SDK documentation. Information is subject to changes made to the engine.

Engine Structure

The Zero-One engine is a multi-process runtime set of multimedia and gaming entities. A number of processes are used to split the engine into CPU cores; responsible for processing interrelated assets that facilitate your world for your creative needs.

The four cores of the Zero-One engine are the world, viewport, frontend and backend; these deal with world logic, rendering, the user and background processes respectively. It is also possible to share the load of simulating your world across a number of computers you may have in your home or office network.



Besides the frontend-engine, not all processes in system are required to run whilst using the X-Producer to create scenes; but all of the processes are required to run Sports Fiction and any complex X-Producer movie, scene or level design. As an example, there is no need for the backend to be in operation if no backend processes such as light-mapping are being performed; there is no need for the X-Producer to load up viewport rendering entities if there is nothing to render.

From this point onward, each entity will be categorized into their Zero-One sub-system.


Viewport Entities

Viewports are used to navigate and experience your X-Producer world creations or Sports Fiction gameplay.



These entities represent what is seen and heared by the user. From the text and images that make up a 2D canvas to the 3D objects and shaders used to create render rooms and hallways; it is through this engine that the observer observes.

The viewport engine can contain numerous viewports, inturn the viewport engine can represent entities in numerous worlds; and more than one viewport can be used to reveal what is taking place in one world.

Examples of viewport entities include animated characters, trees, terrain, cars, clouds, shaders, sound effects, text and images. These entities are the most easiest to understand because they are typically observed or worked with in development situations.

What is important to note about these entities is that they do nothing more than reflect what is happening in the world; these entities have no artificial-intelligence or physics on their own. Instead they rely on the logic of the world entities they represent. The benefit of this is that there is no limit to how many representations of a creation can exist, be it on numerous monitors, split screens or remote PCs; the rendering of your world can take place locally or remotely, shared or handled by one computer.

So, when it is said that a character is loaded into the viewport-engine, what is actually loaded is a shaded rendering of a character with its player defined body shape. What kind of character this rendering represents could vary; and this character has no ability to walk or jump without instructions from somewhere.

Viewports also contain minor 2D and 3D user interface controls.

World Entities

Worlds contain all of your creation, and there are no set of rigid rules constraining how your world is defined, be it 2D or 3D.



World entities are logical components used to set the location of visuals, define their interactivity and move them around if required to move. Examples of items which exist in this engine include cars, characters, occluders, buttons, 3D object triggers and sites. These kinds of entities process the necessary instructions you need carried out in order to put on a good show. Viewports handle all of the shading and sound effects required to fulfil the experience.

The world simulation can also be displayed as a window containing shapes and diagrams representing the elements and actors in the scenes in your world.

In most cases, world entities are primarily used to control and move things. They are the artificial intelligence. They are the controllers. For those wanting to create character cut-scenes, it is here where all of the direction takes place.

When it is said that a character is loaded into the world-engine, this means that a character's artificial intelligence and physics is loaded into the simulation. The world is actually a set of data used to define what the viewport needs to draw and playback; or for Dark BASIC app creators, the world uses its data to inform the backend to generate a Dark BASIC application of what you create.

Frontend Entities

Frontend entities are user interface components that host viewports and other engines. For this reason, a frontend-engine is always running in Sports Fiction or X-Producer; without it there is nothing for the user to control thing with (besides the keyboard and some minor viewport UI elements).



It is easiest to think of frontend-entities as user interface controls.

For those wishing to design user interface elements for TGC plugins such as BBB-GUI, or for those wishing to design a 2D graphic for a game level, this is where they are crafted.

It is possible to render GUI graphics for your game engines using the vector art tools.

It is also important to note that the front-end handles most of the communication between the simulation and its database. In X-Producer this database is your project file. In Sports Fiction this database is the Sports Fiction Cloud, a set of user account profile and content hosted online.

When a character is loaded into the frontend-engine, this is indicating that some user control that represents the character has been created. In the case of the character selection screen, a set of buttons which pick the character you wish to become for the Sports Fiction session.

Backend Entities

The backend is an engine which performs operations which would cause the gameplay to pause or would disrupt usage of the X-Producer if not put into a separate CPU thread.

Most users of X-Producer need not worry about what occurs in this engine, other than software updates, long data-queries, pre-loading, light-mapping, generating and caching. Using our character illustration, when loaded here, the character is mearly pre-loaded for calculation purposes.

In the next post, I will introduce some of the main entities of each engine.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Aug 2013 03:34 Edited at: 4th Sep 2013 22:41
Components of the engine


Universal components:

Universals are components which can exist in all four parts of the engine; the world, viewports, backend and frontends.

When you read the future documentation, it will indicate where entities can exist. With universals, they can exist in any of the cores.


Entity

The entity represents anything in the simulation that carries information and is associated with items. Entities can also contain child entities. Compared to a box which contains smaller boxes, which in-turn contain items, each box inside of the largest box represent the child entities of the large box. It is possible for entities to contain both children and attached items at the same time.

Not all entities are visual 3D or 2D renderings, sounds are entities that emit audio, and interpolators are entities which transition vectors (or coordinates).

One example of a world entity is a ray-caster, used to detect collision along a line from one point in space to another.

An example of a viewport entity is a tree; each model that makes up the tree are items. More on items below.


Items

Items are the building blocks of the world. Entities are used to organize items into interdependent groups. When a 3D object is loaded into the viewport, it becomes an item or becomes part of one. Items can also exist in the form of limbs; which are objects-in-objects. Note however that items are not always 3D based or visible in nature as is the case with entities. One example of an invisible item is the network item; a component used to transmit network packets; information about things that need to be shared in multiplayer Sports Fiction gameplay, or information about things that need to be shared in collaborative networked X-Producer world development sessions.

Network items are used to transit properties and triggers over authorized networks. Therefore it is possible to create an object in the X-Producer that has certain attributes downloaded from somewhere in the local area network or the internet.

More information about items will be found in future documentation.



Worlds - and their technical attributes

A ZeroOne world is something that separates all of the elements of the engine from those that exist in other worlds. Entity-1 in World-1 cannot interact with Entity-2 in World-2. There cannot be two Entity-1s in the same world; but there can be two Entity-1s if they both exist in different worlds.

When a world is initialized, a new world-engine is started.


Domain

A domain is something that seperates all of the elements of the engine from those that exist in other domains, however; domains exist inside of a world, therefore, domains prevent entities inside a world from interacting with each other.

An example use for domains is to stop particle physics objects from colliding with a certain set of collision trigger objects; placing these objects in separate domains prevents unwanted interaction, unless you make links between them manually, foreign domain entities will not understand that they co-exist.


Sites

Sites are a grid based set of areas used to determine what elements need to be loaded into or unloaded from the world. When a player enters into a world-site in a Sports Fiction scene, all of the necessary objects related to the scene within its site that is near the player are loaded. This procedure is performed as the player travels through sites.

Sites need not be defined manually when creating sports, but can be used in complex situations to optimize performance and improve the artificial intelligence (AI).

Sites also determine whether a timeline, updater or scheduler should be processed or not. For example, a flickering light bulb would contain an updater which affects the shader brightness of surrounding objects in a room; however, if this room is 10 miles away from the player; or the player is not able to enter the room anytime soon, the site of the light bulb is shut down; any inactive site containing such processes will terminate or pause the processes according to your requirement for scene playback optimization, or for Sports Fiction’s game performance.

In the X-Producer World Creator, sites can be used to preserve system resources for intense calculations and shading whilst navigating the world.

Site grid cells can be given a set of rules, events and triggers to determine what to do with what is inside of them.
Examples of events could occur when no players are in them, or when a number of players are in them.

Sites can be structured into one or more grid cells used to form a shape which contains scenes and areas. AI waypoints are used to indicate whether artificial intelligence can travel from one site to another.

Sites are not subject to domains but are subjected to worlds; this means all objects in a site are in the same world, but can be part of their own unique domains.

There exists a global site, site number zero which cannot be deactivated or removed; and it has its size set to infinite; all objects exist in the global site. It is possible to be in more than one site at once.

The cells of the site grid are always the same size. Only in X-Producer projects for non SF related products can grid size changes be made. The Sports Fiction site grid is static. X-Producer sites are dynamic; their size can also change during the simulation for whatever reason you see fit.


Nodes

X-Nodes are a series of instructions produced by X-Producer using a flowing diagram linking initial nodes to target nodes, and variables to other variables.



Most instructions for the tools in the editor or the elements in the Sports Fiction game have been programmed into the engine. Nodes are used to produce new instructions without tampering with the engine source code. Nodes act as instructions for the world and its entities to perform actions, and can also contain LUA mathematical expressions.

To create an instruction, a node is dragged onto the canvas of the node editor where the user must select pre-defined node functions. Each function contains a variable amount of parameters which need to be connected to the output result of other nodes. This mechanism is popular in texture production software culture, however the X-Nodes can do much more than create textures. Players and users interact with nodes as they trigger custom events in the simulation.

Nodes contain input ports which can be constant or obtained from XData, other properties or function returns. In addition, on the right hand side are the output ports which send information about what happened in the node.

Also, at the top of certain nodes are flow ports; these are calls to action based nodes in a sequence of instructions that support logical gates.

Nodes can contain inner nodes; and can be grouped into node groups. All default nodes are added to a global node group in your project.

When developing generated textures, the user interface creates nodes for you, unless you opt to manually produce your own nodal algorithms.

Nodes can be used in all of the engines, however the functions available differ. X-Nodes can be parsed from XML, here is an example which initializes a number of properties:


More information on nodes will be available in future documentation





Properties

Properties are variables that either contain data or link with other data on the same computer or over a network. There are three simple types of properties in the engine; strings, integers and floats; these are text, whole numbers and floating point numbers respectively. Other more complicated property types are the Forces, Ranges, Images, Zones, Vectors and Interpolators.

Examples of properties include:

Time of day
Character Speed
Texture Size
Number of completed objectives
Number of goals
Score
Experience Level
Experience Points
Vector X Value
Password
Image Width
File Existence Check
Selected Inventory Item Name
Terrain Scale
Slider control value

Properties can be attached to triggers. This is where it is the responsibility of a getter and setter trigger to authorize or determine a requested change to a property value. Properties with no setter or getter trigger are classified as source properties; properties which contain their data and do not self-constrain it.

Properties with a getter, but no setter, are read only; in-turn properties with setters but no getters are write only, and can only be read by core engine components; an example of a write only property is the password; only the property function and user can know it.


Binders

Properties can be bound to other properties by using binders.
When bound, a property change requests other properties to be affected its changes. For example, the experience level is affected by the experience points; and the experience points are affected by number of goals and the number of completed objectives.


In world creation, the terrain scale property could be bound to the slider control value; so that you can use the mouse to drag the scale value of the terrain. This is how most of X-Producers tools work with its scene’s entities; and how Sports Fiction allows the players to interact with its entities.

Binders are used to quickly alter related data without needing to define triggers or events; or carry out any programming.

Special input binders include the key, mouse and gamepad binders. These entities bind key strokes, key patterns, mouse movement and simple gestures into triggers which alter properties and raise events. Any property can be bound to a button state; and button states are context and modifier key reliant. For example the [A] key, the [CTRL+A] key combination, and the [CTRL+A] key combination in context number 2 would each be considered separate binders. Pressing A and control will not trigger the binder assigned to the A key until the control key is released; the third example is only possible when the interactivity context under the index of 2 is active.


Triggers

Triggers are custom function calls that fire up when certain events occur. For example in the X-Producer, when a button is pressed by the user, a trigger could be attached to the button which runs a custom command prior to running the button command. In the world-engine, a trigger could cause a game level to load when a character reaches a location. In the viewport-engine, a trigger could be used to call a brightness update to a shader whenever the position property of a 3D object changes.

Triggers always pass on a reference and a value to the function so that the function can act upon the referenced item with the given value. Triggers can also return values; this is how they are used when attached to properties as value getters. In node form, these are the wires that connect property getter ports with function output ports.

In a nutshell, triggers are simple events that call functions; but there is more to events than this as will be explained.


Events

When a character completes an objective; a certain number if points are added to the score and the objective requirement is removed from the game level. This is an event which requires a certain number of actions to be performed when it occurs; in this case, the removal of the objective and the awarding of points.

Events are similar to triggers however they are more complex because they activate numerous triggers attached to them. Like triggers, events can be fired up when anything takes place in the simulation. However, events can have a series of predicates attached to them; these are triggers which determine whether or not the event can proceed to call its attached triggers.

Another example of an event is when a goal is scored in a goal-orientated sport; when this occurs a certain team is awarded a number of points. A trigger would be activated and set to call the award goal function with a reference to the scoring player's team.

When using X-Producer World Creator to build worlds for your 2D or 3D games in Dark BASIC, these events need to be defined in the event editor; and can be given a series of instructions to perform when triggered; these instructions could be written in the Dark BASIC language to be generated using your chosen template; or they could simply be given a function name to call.


Selectors

Selectors are hierarchical lists of Boolean checks used to determine what index in the range to choose. Selectors are used to make choices for elements such as entities, triggers and timelines, based on a series of 32bit or 64bit logical Boolean operations with a given value.

An example of selector usage is with determining what shaders to supply to what objects without any advanced node development or programming. Simply define a set of flags in each option and the selector will pick the first option that is true of the object. Because selectors can contain inner selectors, options can lead to further options which could narrow down the flags.

As a property type, selectors can be attached with events or triggers, and can be synchronized over a network.



XData
XData is an XML format used to define databases for game data, nodes for designing instructions and properties containing variable game data linked with other data. You need not have any programming experience to create these components, they are created for you as you work with the interface; and are saved in for you when you save your project files.

For those who wish to draw data from external sources or game engines, it is a format which can be used to describe information that want to bring into the X-Producer. Sports Fiction server hosts can choose to use XData to create rules and policies for players; however the XData would be generated by the user interface, unless you wanted to go low-level with XML code.

For those who are familiar with XML and might have a need to generate XData in their own programs can view a brief summary of the format below until the official documentation is released.

XData XML Format:

XData contains title-cased XML tags which represent a series of complex tags used to define core classes such as forces and ranges, and data-types such as strings (text), integers (whole numbers) or floating point (decimal point) numbers used to define modular structures; classifications of things in the world.

In most cases, XData is contained inside of a parent XML element of a different format usually representing an advanced property or entity. For example, characters are entities, and therefore contain the entity XML format, which contains physics properties such as weight and running speed, which in-turn contains XData which supplies the values for these properties.

Nodes which are a diagram of instructions all make use of XData to set properties or activate triggers.

Like most ZeroOne XML, tags have alternative names and are always in written in title-case:



Individual XData elements are identified by their names, which are sometimes used to bind them to components or override property values when they are loaded. The Name attribute in the following X-Node indicates a day of the week.

XData: <String Name="Day" Value="Monday"/>

The following XData node indicates the name of a building as being 'The Red House'.

XData: <S Name="BuildingName">The Red House</S>

Notice that it is possible to use XML attributes or content to define values in XData; as shown respectively in the day and building name examples.

Further details of this XML format will be documented and demonstrated.


Tuples and Arrays

Tuples and arrays both contain a list of information; but the arrays are used in programming level, not with nodes. Tuples refer to lists that can be defined by X-Nodes and trigger calls defined by the user. The Zero-One tuples differ from the Microsoft .NET tuple class.

Most users of the X-Producer are unlikely to need to understand these components because they are created automatically when defining a list of items or data. But for those interesting in creating advanced sports events or for those interested in extending the X-Producer plugin range, this is an important thing to remember when reading the documentation; tuples can be created by nodes, arrays cannot be created by nodes, not directly anyway.

Moving on to the final part of the first 0.45 preparation update


Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Aug 2013 03:35 Edited at: 5th Sep 2013 00:07

3D/2D Cursor

The 3D/2D cursors are used to determine where new objects, sprites or UI elements are positioned when working with creation tools in the X-Producer, or when interacting with SF gaming actions. Certain operations such as duplicating a series of objects around a given point would require the cursor to be the origin of the operation in 3D or 2D space.

When using mouse cursor mode, the 3D/2D cursor is always positioned where the mouse cursor is on the screen. In surface placement mode, 3D objects are positioned where the mouse cursor touches a function object or an object flagged as a placement surface.

The cursor also contains a scale and rotation; and by default, new objects are created with that same scale and rotation. The scale, position and rotation of the Cursor have been linked with 3D vectors called the cursor vectors which can interact with vector operations and triggers; convenient because vectors are property based and share the benefits of properties.

The cursor is also available to players in Sports Fiction; for example when they mouse click an item on the floor, the cursor is actually placed on the item, although it might not be visible. Any animated effects bound to the event are triggered at the point, angle and scale of the cursor. When SF controllers manipulate the arenas, the cursor becomes a valuable tool for aiding their team-mates on the playing fields.



Datablocks

Data-blocks are a group of raw data and/or properties used to define complex structures and can be used as a compiled form of instructions defined in XData, X-Nodes and engine entities. Before being compiled, it is possible to reform, edit and construct new nodes while an X-Producer simulation or SF game is running; but these node instructions do not peform as quickly as their compiled counterparts. You can compile and decompile nodes during the game or simulation when in running it in development mode.

All datablocks are subject to a given item unless defined as global.



Camera

This entity is used to look and observe occurances in the world from a given point in a direction. Dark BASIc developers may assume that these are the different camera instances you can create using the [Make Camera] command; however in this environment; cameras are vectors which face towards another vector, which contain view settings, and may not actually affect what is displayed on screen. These elements usually have a target vector; a point in 2D or 3D space which the camera faces towards. In 3D or 2D modes, cameras can detect whether they can see or not see something in a frustum shape, a width and range of vision.



Some cameras are used to render viewports, some are used to render textures, and others are used to check whether they can see things or not; with a set of triggers or events attached.


Updater

These are not to be confused with the Updater executable program, which updates your Binary-Modular products and carries out most back-end core processes.

Entity based updaters are universal components which call a trigger or node group for instructions repetitively during the live game or movie simulation.

In SF Sports, updaters can be used to run a series of events, nodes or triggers whilst a certain team has possession of an important item. In racing sports, updaters could be used to run a course of instructions whilst the player is driving the wrong direction; event predicates could determine whether the player is driving the correct way.

In X-Producer world creation, updaters could be used to animate effects for movie or cutscene creation.

Updaters can be given a series of repetitions per game loop; or game rendering frame. These are defined as iterations.

Updaters can have a processing time limit, recorded in microseconds (10,000th of a second). Exceeding this timelimit pauses the updater until the next frame. In X-Producer, this can be used to manage CPU processes during animation tests so that experimental effects do not slow down the playback of the scene dramatically.

Updaters are benchmarked processes; this means that each updater's performance can be monitored in the main benchmark graph.

Updaters can have attached events and triggers.

Updaters can be attached to timelines; when updated, a timeline’s current frame is advanced to the next frame.


Scheduler

A Schedule is similar to an Updater, except these are triggered at set times during the simulation, all for a set number of iterations, or with unlimited repetitions.

Schedulers also contain a special variable for counting a number of loops performed by the processor. For example a scheduler could be called once a minute and the scale of the loop could be 60. After 60 repeats, a loop is added to the variable to indicate that an hour has passed.

All else in schedulers are identical to the updater; schedulers can be time limited, attached to events, timelines and triggers; and are benchmarked.

When attached to timelines, the playback of the timeline is the duration of waiting period for the next scheduled process.


Timelines

Timelines are an advanced property type which activates triggers and events during the playback of a set number of frames for use with animation of effects, objects, selectors and properties. The world, viewport and backend timelines differ from front-end timelines in nature, but are both used for similar purposes.

The timelines that are currently being used in the X-Producer are the world, backend and viewport timelines. It is these that are being discussed. (The front-end timelines are being used for user interface elements, and are likely to be used in UI vector motion tweens later on.)

Each timeline contains a set number of frames and can contain inner timelines (timelines in timelines). Each frame can be seen as an event, and the playback speed is determined by the properties and settings for the given timeline.

Timelines can be given sounds to play whilst a certain set of frames are being played.

Characters use a combination of selectors and timelines to control what animations to play whilst the player performs actions. In a similar sense, world creators can use the X-Producer timelines to determine what animations their objects should use during scenes.

Timelines within timelines playback their events whilst their parents frame numbers are in action.

Timelines contain various playback modes including looped and reversed.

Timelines can be given a selector property; a standard integer property that takes control of what frame must be active. Because this is a property, it can have an attached getter trigger and can be linked over the network.


Interpolators

Interpolators are vector based properties which are used to smoothly transition them from one value to another. Sliding doors are currently being gradually opened or closed along a set path using an interpolator of some kind.

These properties can coexist in 2D, 3D or 4D forms, as is the case with standard Vectors. Each interpolator contains two or more vectors representing points along a path. The sliding door only contains two points, but could contain an additional point if desired to slide across before sliding upwards.

Interpolators can work with timelines to smoothly playback the timeline’s frame events.

Interpolators have an activator property which determines whether or not the interpolator should alter its assigned vector. There are a number of interpolation modes including linear, constant and curved; all of which will be documented.

Like with all properties; triggers and events can be attached. Any properties in the interpolator can be bound or networked.



3D Objects

To DarkBASIC develops, at first you might guess that these are simply the Dark BASIC objects. If so you are somewhat correct, but there has been some classifications of objects used in Sports Fiction and the X-Producer that will interest those planning to invent sports or create worlds. There are currently eight classifications of 3D objects in Zero One:

Function Objects

Function objects are generally hidden from view and are used to aid game logic. The ID range for function objects are always 1 to 65535

Physics Objects (World engine only)
These are dynamic objects which are moved and manipulated using the NVidia PhysX driver. These are driven by the Dark Dynamix plugin. Phsics objects can be affected by gravity or wind forces in animated X-Producer scenes; and can be pushed or kicked by the players in Sports Fiction. TGC game developers wishing to design Dark Physics based entities can construct code templates specific for the Dark Physics plugin.

Compound Objects

Compound objects are created in the X-Producer and can be reshaped to form complex compound shapes. These can also be carved or united to form interesting shapes. Their structure are represented by vertex handles and a series of planes or triangles and are the only object type that allow use of compound operators to be documented later.

Theme Objects

Theme objects are created in X-Producer to decorate other objects. These are either generated during the playback of the simulation or baked into static common object form. An example of a theme object is a decorated wall drawn along a path and around objects given the wall theme. Another example are plants, which can be grown on objects given a soil theme.

Screen Object

These objects contain screen coordinates instead of world coordinates; and are used for user interface purposes or for special effects. They contain an onscreen X/Y position and a Z distance from the screen. An example of a screen object is a 3D logo used to introduce a scene. Logos can exist in the world with traditional coordinates, however in some situations it is easier to animate a 3D element in screen coordinates; which can be either absolute or relative to the screen resolution.

Imposter Object

These are images projected in 3D space to represent pre-rendered objects in order to reduce the runtime polygon count; thus improving performance. These are driven by the Dark Imposters TGC plugin.

LOD Object

These objects have multiple levels of detail according to how far they are from the current viewport. Examples of LOD objects include trees and characters which change their level of detail dynamically.

Common Objects

Objects used for a variety of purposes not covered by the previous categories

Object Flags

Object flags are used to implement certain features with objects. There are 64 possible object flags for every 3D object in the engine, no matter the classification. An example flag is the Ray-Blocker flag. All objects in the active site which carry this flag will block ray-casts; the reduction of the strength of the ray is based on the density setting of the object. Place-surface flags indicate that an object can be used for sticking objects on top off them, or perpendicular to a selected polygon on the surface object.



Now to conclude, a brief explanation of the core-specific entities to be discussed in a later update.

Front-end Entities:
Front-end entities are mainly used to define the user interface for sports, or for TGC GUI plugins when exported in Dark BASIC code. This includes the Microsoft Forms and XAML systems which be used to parse window layouts to be used by the sport or your project. These entities include layouts, keywords, icons, action-buttons and all of the Sports Fiction story and sport related interface elements. These items will be discussed, documented and motion captured in the up and coming months.

Backend Entities:
These entities are nothing more than the universal ones discussed previously. These are used to keep the game updated and perform complex calculations during playback.

World Entities:

World entities are used to contain AI, manipulate physics and place entities. These entities include AI, hinges, radii, ray-casters, beams, detectors, blocks, cars, gears, wheels, height-fields (terrain collision), balls and objectives to be discussed, documented and motion captured in the up and coming months.

Viewport Entities:

Viewport entities are used to render scenes, play animation and play back sound. These include plants, trees, terrains, water, shaders, shader-entities, materials, lights, sounds, sound-synthesizers, scenes, portals, themes, images, sprites, object-palettes, image-palettes, color-palettes, asset groups, comic strips and offcourse the viewports themselves.

These items will be discussed, documented and motion captured in the up and coming weeks.

Until then, post any questions and stay tuned.



Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 5th Sep 2013 00:09 Edited at: 5th Sep 2013 02:57
[edit]

Oops! A re-edit attempt went wrong there. I didn't realize I ended up reposting the message again.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 6th Sep 2013 08:30
I don't know if I'm the only one here thinking this, but I'm still confused about what this project even is. Is it a sports game engine accompanied with a comprehensible and easy-to-use development tools?

...wait let me say that again. A sports. game. engine.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 6th Sep 2013 17:15 Edited at: 7th Sep 2013 13:52
Quote: "Is it a sports game engine accompanied with a comprehensible and easy-to-use development tools?"


Partially yes. Sports Fiction is the game, Zero One is the engine, X-Producer is the tool.

A few analogies; HMS Diptera is a game, Dark Basic is the engine (or FPS-Game.exe more or less) and FPSC was the tool.

Counter Strike GO is a game, Source is the engine, Hammer is the tool. You could also argue that Micrsoft Office is a product, .NET is the engine and Visual Studio is the tool.

So X-Producer does for me and TGC developers, what Hammer does for Valve; and Visual Studio does for Micrsoft.

It wouldn't be wise to make such a large game without an editor.

Secondarily; the X-Producer can be used to create assets for games, not just sports. Sports creation is an aspect for SF owners to make use of. So for people with zero interest in Sports Fiction, they might have more interest in using X-Producer to make assets for their own games; using the same analogy, you can use Hammer to work on your own games, not just for Valves games.

As you may already have guessed; I am in the process of making illustrations, footage and presentations to make things more clear for different audiences and indie developers.

For now, your questions will lead to any necessary clarifications.

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 30th Nov 2013 15:18 Edited at: 1st Dec 2013 15:44
Back to work


After a few months of partial inactivity due to starting a busy new job and working on a proposed concept for FPSCR; I am now back working on the Sports Fiction project. Time has been limited in recent months, however the winter has proven to be my favourite season for development and I am looking forward to accelerating the wheels of the project.

As discussed in the previous post, the project has been split up into 3 parts. The engine, the toolset and the game itself are the major aspects of what is to be a host for entertainment, as well as a host for entertainers wishing to create sports, games, scenes and levels for Sports Fiction or their own applications.

Both the game and the tools are running on top of ZeroOne, the DarkBASIC based 3D engine, the main driving force of my software along with various elements managed by the frontend database engine.

For the time being I will post up to illustrations of my first few weeks back in action.



The first which is based on the game engine illustrates some of the concepts I have been playing around with, namely 3D generation, edge crumpling and tessellation.

These concepts will be illustrated in full as I work along over the next few months. It is also likely that I will put together a few sports to test the elements of the engine as well as to just plain have fun.

For now, a brief look into the techniques I am putting together would be in order.

This first video indicates what I mean by edge crumpling, which uses the heightmap to attempt to cut out parts of a low poly sphere's edges to enhance the very nature of the material instead of making it look to smooth. The shader has no reflectivity and will only look better once I add the reflection function I added to earlier shaders along with further improvements. This shader is being developed to be used on terrains.



The shader below was used on a cube, however I do not have enough variety of angle along the surface of the object, therefore the edges remain unchanged. It will look much better on a detailed terrain or a rock.

This shader will allow the X-Producer to treat the paving and ground as seperate materials; and will allow Sports Fiction to cause distruction to the paving as vehicles pass over the surface.



This third video illustrates how the work in progress is being debugged. Colours can be used to convey what is happing during the rendering of a shader. The red parts are the peaks, the green parts are the base and the blue parts are the unchanged pixels. In the rendering towards the end, some of the imperfects are caused by excessive parameter tweaks in the procedural set of shader constants.



Below I have show early development of what will be a mesh generator; something which emits meshes out of meshes, and does cool things with the produce. Each manipulated mesh are vertex data taken from one or more assets and added to a target mesh containing indices at the center of each polygon, given various parameters such as size, randomization and morphing.

To test the system, simply shapes and colours where used, in the real system this mesh generation will produce rocks, stones and other elements on the surface of objects assiged with qualified materials. These generated elements are all part of one mesh, even though they look like separate objects. Each number represents the polygon index of the target object.

The system is to be reprogrammed slightly to be fit for usage in the engine and some of it will be calculated in the front-end core instead of the viewport.



Here the technique was used to take a single rock asset and apply it to a vertex dense plane, giving the effect of someone actually placing each rock on the surface in an level editor, when actually the engine put them there using one mesh. All of the rocks are part of the same limb, in one object.




Progress on the SDK




The second thing I want to do is illustrates what the X Producer is looking like so far. At present I have successfully gotten its application running with the ability to insert objects and apply textures and shaders.

It has the ability to parse Dark BASIC project files in a multi-project solution environment; the ability to log actions and generate property editors per element class; the ability to remember where assets where imported to reduce file navigation; and it contains a predominant arrangement of a A-Z of modules used for editing of the key elements of the ZeroOne engine which will soon include the sports editor.

It is going to take a long time to discuss what the editor can do and how; after a few months more work I will start documenting its usage because I intend to release it much earlier than Sports Fiction.

Conclusion


Apologies for not being as consistent as is desirable, it has been a slow few months, yet under the surface, somehow; much has been implemented, it is now just a case of linking elements with each other.

I am looking forward to posting additional updates. For now whilst I work, observe some preview screenshots of the SDK.















Ashingda 27
16
Years of Service
User Offline
Joined: 15th Feb 2008
Location:
Posted: 1st Dec 2013 07:01
This is getting more and more amazing!

Those shaders are very nice, it's something I have trouble with and have been putting off for a while.

I really like your rock video but I'm still a little confused on it. How do you make one into many and still be one object?

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 1st Dec 2013 15:31
Much appreciated.

I am steering myself away from the belief that all DarkBASIC's 3D content needs to be seperate limbs or objects. Each rock in the example is actually a group of vertices in a single mesh, as are fingers on a character, triggers on weapons and handles on swords; just a part of the same mesh, it is just their form and position makes them look like separate objects to the observer. The only thing done in Blender was the construction of a rock; everything else is procedural.

Using one limb stops the DarkBASIC pipeline from running multiple update calls on numerous rocks; only one primitive update call is made for all the rocks; which I believe will improve my refresh rate when applied to static props such as mushrooms, pieces of wood, twigs, debris and whatnot.

The downside is that initially without writing a culling program, all rocks are rendered when the center origin of the limb is on screen. I will need to use a bit of vertex programming in a shader to cull the polygons; unless someone has a better idea

In the example shown only one asset was used, in the real world scenario numerous assets can be used to make it look more realistic; assets with different shapes, textures and shader functions; all in one limb.

The direction I am taking this is the concept of 3D vector art in the X-Producer (Bezier curves, compound shapes and quads), creating a simple shape and having the engine procedurally add character to it and to provide tools for finesse.

Alduce
21
Years of Service
User Offline
Joined: 26th Oct 2002
Location: Rama spaceship
Posted: 11th Feb 2014 09:16 Edited at: 11th Feb 2014 09:18
Hi Chris.
Literally amazing the amount of work that you has produced.. This is a perfect example of what mean "passion+skill+"no just words but facts"!

It's awesome what a single programmer can really do. This make me thinking about the great programmation era.. (I love the C-64 icon on the top of your thread) ..David Braben, Geoff Crammond.. David Whittaker and their great projects..

Just wow
Kevin Picone
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 11th Feb 2014 14:33
Excellent work Chris !

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Feb 2014 17:54 Edited at: 12th Feb 2014 18:25
Thanks for the appreciation Alduce

All the few hours of work every now and then, will always add up.

I am now eagerly forming together the next development post which is so far this project's largest. There are many topics to cover, and concepts to reveal.

The latest discussion will appeal to programmers and aspiring games designers because the work being undertaken will generate interesting ideas, tools and opportunities for such ones.

Sports architecture is a primary SF topic relating to the activity of designing and running sports for your communities given their interests. A sports architect will be an avid games designer slash gamer with a degree of sports knowledge who will use the X-Producer to create challenges for motor or non-motor, in-door or out-door sports in futuristic settings. These sports require structure, courses, arenas and tournament structures for gamers ranging from casual to e-sport professional gamers.

For story-campaign gameplay, a more story orientated arrangement will be revealed.

World creation is another feature which promises to complement DarkBASIC and other 2D or 3D programming languages; something to add a bit of 'click to create' and some IDE conveniences for games developers.

Working alone has its challenges. A large development project is a great deal of work for one person to finish; but a good piece of software need not require more than one person to start.

Even the most smallest of task of programming or 3D modelling can weeks, but it gets easier after about one year when you have at hand more assets, functions, snippets, libraries and templates.

Now time for the fun stuff.

Many thanks Kevin

It is good sign when one gets positive feedback from a developer who is well established in the industry.

I am sure business is going well at PlayBasic.com. I notice there are quite a number of interesting projects created by your community on a lively showcase board.

I am still contemplating the kind of website content management system I should take on board; I quite like Drupal, although being powerful it requires a great deal of care.

I was thinking of using a Wiki to document my software, however Drupal can display reasonable document elements with feedback forms. I will need to put something up rather swiftly since my priority is the development of the software at the moment.

Enjoy the rest of your days.

Chris Tate

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 13th Apr 2014 12:34 Edited at: 13th Apr 2014 13:16
LOL, I had better do the same as Fancy Music did in the neighborhood watch project. Posting a little bump to prevent the thread getting locked.




More work is to commence on the next update before revealing it. A forum thread is also being prepared for the X-Producer. Diagrams and demonstrations are being constructed introducing the elements of the engine and the editor. In addition to that, a new 2D game project with a tutorial series based on using the X-Producer with the App Game Kit, plus some ZeroOne game engine development techniques are to be presented only to you.

Currently implementing my new Zero One Advanced shader system which have the ability to simulate hundreds of categories of material all in one fast loading multi-layer shader with the ability to apply an almost countless number of textures on a single mesh while providing the elements of the world variable themes, shading techniques and level of detail over a given distance. I will be pushing it to the limit and testing it in various new Sports Fiction scenes; I will be revealing how much better the engine looks now compared to when it first started. There is more; I will be showing a sneak peak of Sports Fictions 3D user interface, character editing and other works in progress.


In the next Sports Fiction update, unrevealed game information some of which is based on gaming features I have not seen elsewhere are all to be posted. Looking forward to giving you this stuff; hopefully without drowning you in it.

fancy music
14
Years of Service
User Offline
Joined: 27th Sep 2009
Location: in the alpha demo
Posted: 14th Apr 2014 17:27
@Chris Tate
yea i hate having to bump my thread without any info to show or tell
Barry Pythagoras
10
Years of Service
User Offline
Joined: 14th Mar 2014
Location:
Posted: 14th Apr 2014 18:37
This project is HUGE!!! I think it's the biggest project I have seen so far on the forums. It all looks good, but I don't like the smoothing on the car.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 16th Apr 2014 15:51 Edited at: 16th Apr 2014 16:00
@fancy music
It sucks; I have loads of work done, it is just that I cannot show it; not yet anyway.

@Barry
Thanks Barry, it is has been a little large; but it is about to get even larger. I am soon going to need two threads.

About the smoothing, sorry I cannot explain certain decisions I have made for security and protection reasons. Let me just say it is smooth for a logical and technical reason; it is not meant to be obvious.

I can only let the final product explain why I do things the way I do; I cannot explain the big picture, even though I would like to. Until then, keep posted to gradually observe the product of my techniques, and in some cases I will be able to give away my intentions.

thenerd
15
Years of Service
User Offline
Joined: 9th Mar 2009
Location: Boston, USA
Posted: 17th Apr 2014 04:26
I'm very interested in the behind-the-scenes stuff you've created, particularly the editor. Keep up the work, nice job!

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Apr 2014 10:20 Edited at: 17th Apr 2014 10:32
Thanks; the editor is as fun to use as it is to play a video game; particularly the material editor. It is making things that are usually tedious in the typical DarkBASIC professional workflow much more easier.

Hopefully it will convince you to make use of it for your enhancing or building your games; I think you will like the code module, which is an integrated development environment which can generate certain game level code for DarkBasic professional; so you are not just placing objects in a 3D mesh, you are also establishing their behaviours; providing your setup supports such behaviours.

Unless you like doing your own thing or prefer another category of engine, you may also choose to use not only the editor but the whole kit to inherit all of my shader, audio and logical techniques; whilst still talking to the engine in your favorite programming language using a runtime process or dynamic link library.

X-Producer also features a number of 2D development modules which can export stuff for the App Game Kit or a DarkBASIC user interface plugin such as BBB GUI.

The engine also features a windows based vector graphics animation system similar to Adobe Flash, limited to desktop use (not in a browser) but integrated with the DirectX viewport which should mean you can have vector sprites which can draw characters or objects out of scalable shapes with colour or texture fill, making them a bit more closer to 3D just with limited hardware acceleration and blend modes (which must also be placed above typical DBP 3D or 2D elements). Hopefully this will be fully demonstrated next if not in a future update.

Arbrakan
13
Years of Service
User Offline
Joined: 10th Oct 2010
Location: Geneva
Posted: 22nd Apr 2014 00:08 Edited at: 22nd Apr 2014 00:11
WOW great job, Your work is amazing !
Happy to see this project move forward.

Is your SDK made with DarkBasic Pro ?

Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 23rd Apr 2014 15:43 Edited at: 23rd Apr 2014 15:45
Thanks. Please stick around, the latest work I am preparing to post up in the thread will be better and more close to the engine I have in mind.

To answer your question; yes indeed DarkBASIC Pro is used to build the majority of my 3D and physics functions; a large chunk of the SDK. DarkBASIC Pro is also the first language being implemented in my code editor.

The SDK is features a number of Dark BASIC programs to form an integrated package. Primarily, the software will use a Dark BASIC rendering process which is called the DirectX 9 Viewport. This is something briefly introduced here. It is the viewport which contains the 3D content in the late 2013 Sports Fiction and X-Producer screenshots.

Hopefully there will be additional viewports in the future for rendering in on different APIs; hopefully Direct X 10 & 11.

The other aspects of the game and the SDK are Microsoft .NET framework applications; processes which make use of many of the Windows operating system functions. As a whole, all of the software features modular multitasking DarkBASIC professional runtimes.

Login to post a reply

Server time is: 2024-04-19 01:46:26
Your offset time is: 2024-04-19 01:46:26