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 ®

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Oct 2012 08:53 Edited at: 24th Dec 2015 21:56
Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Oct 2012 08:57 Edited at: 5th Oct 2014 19:24
Development status 10/2014

Development status: Version 0.48

Current tasks:


Latest Update

A B O U T - M E

For those of you who are new around here or who have not communicated with me before; I am a previous hobbyist user of the Dark BASIC professional development tool, fairly new in the community; one who is transitioning from playing and fooling around with computer science, to putting it to commercial use; very gruadually.

With a background in Web & Graphics design, retail and print; I was intimidated with programming but always wanted to create video games ever since I played that level one of Bubble Bobbles.

My first effort was creating designs for platform game levels; heavily inspired by the old Sonic The Hedgehog games. As you may have now guessed, I had a Sega Genesis (which was actually called a Mega Drive in the UK); but this was not my first console; I had a Nintendo Entertainment System, an original Nintendo Game Boy and a Commodore 64:

Anyway, I could never grasp programming and favoured drawing game levels; something that used to get me into trouble at School. But this did not get me very far, I could never understand programming and always asked for help but could not find any. I used to play around with QBasic but could never get anything meaningful to work.

With my second attempt back in 2006, I set up an Indie online collaborated development group project code-named 'Spacecraft' which went on to be called 'Into-The-Black'. The website is still live. My role in this project was lead game designer as-well as being the project founder. But as you may have guessed, this did not work out well; it was too difficult to motivate people to work for free for someone elses game idea, so I needed to go and do my own thing.

For a number of years between 2007 and 2008, I spent some time thinking about what kind of game to create, what genre to choose and I started to learn Visual Basic and was quite comfortable with it but at the time it did not seem brilliant for video game development, so I started a C++ programming course so that I could eventually develop my ideas in code.

I was already working in a Design Studio so was comfortable with 3D modelling, animation and I also had minor music production experience. Whilst learning I stumbled across a yellow and blue packaged product in-titled DarkBASIC in a PC World store; which is now called DarkBASIC Classic. I was attracted to the idea of making a video game with my favourite language, BASIC; but I did not make the purchase immediately.

It wasn't until a year later after continuously visiting the website that I finally pushed my hand in my wallet to make the purchase of Dark BASIC Professional, a big purchase; I also got a copy of all of the plugins I could imagine being essential.

Before I started to work on my dream product, I spent about a year writing lots of DarkBASIC tests and experiments. At first I was not pleased with the work-flow and speed of the DarkBASIC runtime executable; and so ventured off into the .Net framework and the Dark GDK. After roughly six months using this development platform, I realised that both DarkBASIC and the .NET platform had unique benefits that should be combined, and so to this day, I use both tools for my work.

Now that I was set to build something, after playing around with a few ideas and learning how to use Blender, in 2009 I came up with the concept of role playing a sports celebrity in a futuristic Sci-Fi world, and I wanted to go all the way with it; not leaving out any feature or concept I had in mind; not fearing scale, difficulty, scope and ridicule but seeing it as a daily challenge and opportunity to invent.

After many attempts to create the game engine, after approximately 10 scrapped engines, I have eventually put together the one that I am pleased with. The engine has been named code named Zero-One, taken from the computing meaning of my development name prefix 'Binary' in Binary-Modular; and it is this engine which I am working on today as you read this message.

To find out more, read the Frequently Asked Questions >>>

AGK Backer
User Offline
Joined: 5th Dec 2010
Playing: Playing
Posted: 12th Oct 2012 13:53
Wips need ScreenShots... but still curious to see where this goes

From the outset, looks like a mammoth undertaking...

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 13th Oct 2012 21:05 Edited at: 13th Oct 2012 21:06
Yeah I know, please bare with me, I did not add the screenshots to the thread yesterday because of an unexpected issue typically concerning the screenshots

For now the actual image I placed in the original post links you to the website which contains some videos and screenshots.

The site will most like be updated more frequently than this thread for obvious reasons. The website site is also a WIP so there is much work taking place this weekend.

There will be plenty of screenshots, videos etc added here when I get this issue resolved.

As always, your feedback is appreciated.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 19th Oct 2012 04:34
Update 19/10/2012

My first step with the current phase is to get my shaders and particle effects running all at once in the game. The players will take part together or against each other in futuristic sports within the campaign, or sports that players modify themselves.

First thing is to get the view of the game world looking decent enough for hardware testing and general presentation. Most of the shaders and hard coded effects have now been completed. I now need to configure them in, and sort out the texturing.

Today, I started with the normal mapped general purpose shader for the terrain, a sky map, character airbrush shader and the full screen composition shader. So far progress is underway; although with the blur setting set to zero, for some reason the scene looks more blurry than it should. There is some lighting glitches with the terrain, which could do with another texture added to the shader.

In future I will look into shadow mapping techniques suitable for an online gaming environment; but for now I will focus on the other aspects of shading as well as light mapping. All of these features are ready, they just need to be turned on, and configured.

Some of the effects I intend enhance the scenes with next include the lens flare for the sun and some light mapping, plus a hint of reflectivity added to certain materials; finally some smoke coming out of some cooling towers.

After the basics are put together, I will start getting the basics of the vehicles in place. Later after that, more work on the character editor and sport editor; aswell as continuing with ball sports such as soccer:

Back to work

User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 19th Oct 2012 09:03
Well hey there, looks like a decent start!

I can't tell you how much I despise sport games (Super Mario Strikers was an exception because they added a lot of non-traditional stuff to it), but I know how hard they are to make.

I can't head over to your site right now - the bastards in the IT department blocked it - but is it going to be an exact simulation of an existing sport, or are you going to spice it up with some rocket launchers or something similar?

Keeping track of this.


"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 20th Oct 2012 15:18 Edited at: 20th Oct 2012 15:33

I will be using existing sports as a basis for creating additional rules and concepts of technology. So it will be a 'sporty' sports game rather than a violent one. Although futuristic, as you play it, it will hopefully feel believable so that it causes you to care more about the characters.

It will be spiced up however, with a campaign mode featuring a story and character development with psychological riddles and twists within arenas, sceneric obstacle courses and mazes; plus players can choose to modify gadgets, vehicles and sports. As you'd expect, I will also set up a tournament server (nothing difficult to set up really)

There will be lots to do in the game, according to what ever sport/s you choose to develop your character for. Hopefully I will get the learning curve to be easy, the mazes to be unrepetitive and find out which sports and sub-games appeal the most to players as early as possible using a alpha-test server, early next year.

Forum Vice President
User Offline
Joined: 20th May 2010
Location: Northern Tablelands, NSW, Australia
Posted: 22nd Oct 2012 12:36 Edited at: 22nd Oct 2012 12:39
Interesting concept; I don't think I've ever seen anything like this before.

Keep working, I'd love to see this finished


Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 30th Oct 2012 05:17 Edited at: 30th Oct 2012 05:18
b]Update 29/10/2012[/b]

I have not been well for the past few days; but I managed to get a number of things done. I will discuss some of the work currently underway, whilst giving out useful information that some may find rewarding if they are learning.

In reply to your comments Clonex:

Quote: "I don't think I've ever seen anything like this before."

That's good news to me

Quote: "Keep working, I'd love to see this finished"

So would I, if I don't finish it then what a huge waste of time and energy that would be.

Now on about the latest tasks; which are very boring, but the boring things need to be done first, the foundation needs laying otherwise the the construction will topple. Thanks to the handy work of the TGC plugin & tools developers, most of that foundation has been completed; it is just a matter of getting them to work together, which can sometimes be a pain.

From this point onwards I will be speaking in present-tense in the past; if you know whatamean...

Defining the heights of land
First thing I need to put together is a texture for the terrain. The terrain is generated using Blitz Terrain, and is the most important object in the game. It will be in every scene, on every layer; speaking of which; there are four layers in Sports Fiction (SF), meaning there are four major views of the world. From nearest to furtherest, Object, Land, Sky and Space; in outer space SF is set on surrounding satellite stations and resorts. Each layer is rendered and controlled differently, but the terrain is always there to see. So it must look good.

First texture I need is a heightmap. + Code Snippet

Pretty boring looking, and I have only uploaded a piece of it, but it is the most significant texture in the game; it defines the shape of the world. It's a rapid way to store the structure of land. It was made with smudged brush strokes and some black&white tree bark. In campaign mode, this terrain will be mostly hand painted; in other modes it will be generated.

Defining the colour of land

Next I need a grassy-rocky looking texture; excuse the scientific terminology.

I have obtained a photo of a bush. I will paste it over a 1024x1024 pixel texture, then I will reduce it by half and paste it over the same texture with 50% or so opacity. Small and large versions of a single image pasted over itself causes the texture to look more dense. What was a bush is now mushy grass.

There are some dark artifacts in there that I will not bother to deal with right now; most of the official texturing will be done after the foundation of the engine is ready (In decades to come...). With my lighting and shaders applied, what appears really dark now will appear fully lit. Shadows are another element that will not be compiled in todays executable. I will only be compiling the terrain, trees, water and core source code. Speed is more important in SF than photo-realism, so the most of the emphasis is on getting the game working smoothly than making it look realistic. It features airbrush-toon characters and colour is used to highlight significant game elements and events. But it is still beneficial for me to fool the eye into thinking that SF looks realistic.

Our colour map is going to need some mud; the terrain is not only made out of grass. To achieve this, a mud texture is placed underneath the grass texture. I can then rub out the grass to reveal the mud like so:

Adding fine detail to the terrain

The engine will transition in realtime between layers, from globe to object; there is no loading screen planned. Depending on where the player zooms into or what sports event takes place, the performance of their PC and the number of processors they have will determine how long such zooming takes, and will be slower when entering areas not already loaded into RAM. Right now however, I need to make sure that when zoomed in at object level, the terrain looks good. I will render it differently depending on what layer is active, but for now, the following texture needs to be seen in close up, blended with the previous colour map texture.

The bottom image was created by mixing together the top images. There are unwanted white blobs in the main image because the grey image is too bright. I will probably adjust the blend mode to multiply, but first let's see how it looks in the 'vanilla' engine.

With the engine, I will also compile a basic water effect created by Evolved which I will personalize as I go; also a test tree will be duplicated using the Imposters plugin, allowing me to have many of them without much slow down. For now I will switch off the lighting on the trees, because I know the trees are not normalized+ Code Snippet?

The terrain looks OK. A bit too large scale and blurry for this distance, but it will do for now.

Weather system

The weather will change and will not always be predictable. It is the responsibility of the player to deal with what ever weather I generate at any given time; they will need to think about the seasons and environment when purchasing gear and planning strategies; particularly racers and treasure hunters playing in outdoor scenes.

I want to make it snow, so lets start by creating a snow texture. In a number of days I plan to create snow particle effects and ice flowing on water. I will also create rain for my grassland terrain; but for now, I will focus on the terrain.

That is the colour map for the snow, so now let's see the result:

That is not snow! What has happened? The detail texture is still mud, so what we have is mud + snow = brown snow.

I will replace the mud detail map with a snow one, increasing the blue tones.

BAT files / Batch files

It is pointless re-compiling the executable just to change the texture on the terrain. In the full engine there is a settings processing system, but in this sub-program, there is not. So the easiest way I can think of changing my terrain scenes without re-compiling is to create batch files. I can just double click the batch files and they will run the program with their settings.

Here is the settings for the snow scene: + Code Snippet

and here a piece of the code which parses it using the Cl$() command-line command: + Code Snippet

Now I just double click the WorldGraphicsSnow.bat file, and it loads bM_WorldGraphics.exe with the settings above.

Now let's look at the new snow:

Better, it looks like snow; but it is too blue for me; so I will reduce the saturation of the textures directly. The result:

That will do for now. But let's change the tree; yes it is one tree, but having many of the same tree does not look as bad as I expected. I just want to get rid of the leaves. Infact, I'll create a new tree trunk in TreeMajik.

A note for those who are not aware, you can associate your .dbo files to your DBPRO model viewer (if you created one). You can obtain the file to open using the cl$() command; here is mine: + Code Snippet. I use it to preview my models quickly before loading into the engine

Double clicking a Plantlife (test2.dbo) plant export dbo file brings up this:

I have done the same to preview the temporary tree I just created for my snow scene.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 30th Oct 2012 05:17 Edited at: 30th Oct 2012 05:21
Time to create a command line feature to change my imposter tree. Here is the command line parameter in the batch file: + Code Snippet and here is the parser now + Code Snippet

Let's take a look:

Cool, now let's leave the snow for now. Back to the grassland, I want to work on the trees.

Trees and water

So far the trees have looked really dark. I will switch off the lighting, using {Set Object Light n, 0} to see how they will look:

Right, so they need to be normalized; using {Set Object Normals}. This is the new result:

The trees now look more colourful, but there is something bothering me. I don't like the way the water is so reflective. In this still image, the animation is not visible so it makes it difficult to tell that the right half of the image is water. I want to know whether I am looking at water or grass pretty easily, so let's make the water more distinguishable. I have used an old water shader by Evolved because it fits my needs, there are more realistic water shaders out there, but SF will not be made to look photo-realistic; rather it uses graphics to distinguish significant entities from the insignificant; making it easier see game related items.

I will add the following lines to the Water.fx shader + Code Snippet. The sampler and + Code Snippet the return value for the pixels, at the end of the pixel shader function which adds the a new texture at 0.4 (40%) opacity.

Now I can add a new texture layer; which will be a blue image with some caustics effects.

Let's see the result:

Ok, now the water is more noticeable, but I forgot to scale the hint texture. I will multiply the UV coordinates (called IN.Tex0) by 32. This is a bad habit, because this multiplication is being done on every pixel on every frame by the graphics card; a constant value would be better; but for now this will suffice, because it will not affect my framerate by noticeable amount in this phase. + Code Snippet

OK, the scale is fine for now. But the highlights are too bright; I will reduce the highlights in the hint texture manually.

OK, that will do for now. Again, most texturing will take place after the basis of the engine is ready; so no need to go over board here.

TreeParty + Imposters

I have added a few tree parties into the scene. These animate and have their own level-of-detail system (LOD) which alters their quality according to your distance from them. I have also programmed a system which turns them into imposters at medium distance. The imposters look better so far than the medium distance tree party billboards.I get can a number of them to run, but then I get a full group error with Dark Imposters. I will just use tree party independantly for now and get back to fixing the error later.

Terrain Type

The player will need to take note of the terrain they plan to cross or race in; or play on; according to their profession. Terrains affect their characters ability to move and interact with them. To display this I will need to code in a terrain display hint using some images and the Blitz Terrain environment map.

First let's get my cursor and no-nonse check box in the program. I have posted some of the checkbox code for those who wish to use it, there are some self explanatory functions and types you would need to create to get it to work. + Code Snippet. There are some great GUI plugins out there that I intend to use; however, in this situation I felt like using my own checkbox which will sit in my core library.

I will create a new test texture with a bit more stone and mud for the terrain, and a new .bat file to pick my settings; and here is the result:

Not quite the best terrain to drive an ATV on, but it will be difficult to catch your flag climbing through this.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 31st Oct 2012 04:14 Edited at: 31st Oct 2012 04:16
Lag Mapping

The engine already has a benchmarking system which records times each process during the CPU loop; and the time between pre and post camera rendering during the sync, using the Matrix1 rendering callbacks.

A monitoring system is being put together to keep an eye on the performance in certain areas and situations; per player, per process, be it gpu, network or cpu.

To start with, a diagram module I am calling the lag mapper will plot the FPS, ping, polycount and other performance statistics in red for bad; orange for normal and green excellent. The current mode is the FPS step; which will only indicate where on the map the lag is really bad or good. It does not indicate where the lag is coming from, but it is a simple way to say to the generator; 'too much or too little content was placed here'. It is also good information for me study as I add map content whilst thinking about player population in key areas.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Nov 2012 03:00 Edited at: 22nd Nov 2012 02:50
Update 14/11/2012 - v0.33

Mostly generic programming done over the past few weeks. Configuration files, XML, simple HTML display and exclusive file formats have been implemented to store and deliver the game world.

Sound-banks, mist and snow has been programmed; rain is a WIP.

3D user interface elements are now programmed, although currently only used in the snow demo, which should be on video soon.

This week, the focus primary focus is on the scene editor, with some more extra work on the terrain and weather systems.

The first scene created so far contains some work on a riddled obstacle course. It features lightmapping, mist and object configuration files.

Just this evening, I took a snapshot of the snow. It's more difficult than it looks, but it is getting there. It is being controlled by wind, which inturn is being controlled by a 3d based user control. Some of the snow gets stuck on the camera.

Next, I need to get my viewport cameras sorted so I can produce comic strip scenes; also, text editing needs to be added to the scene editor. World graphics; snow and rain should be done in a week or two, all with sound and change of weather.

A dude
User Offline
Joined: 15th Mar 2010
Location: The Solar System
Posted: 17th Nov 2012 00:49
Great stuff.

Le Verdier
User Offline
Joined: 10th Jan 2012
Location: In the mosh-pit
Posted: 18th Nov 2012 18:33
It's cool to read a so exhaustive devlog and enthusiastic developper!

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 20th Nov 2012 04:12 Edited at: 20th Nov 2012 04:15
Thank you.

I also like to read how people go about creating things; it inspires ideas.

Over the past few days, I have been taking the next step in producing the lighting techniques and shaders suitable for SF and intense online gameplay. As mentioned before, I going for performance over quality; nevertheless so far so good.

Now dynamic shadowing is a grey area; I have yet found a way to shadow shade without loosing 20 or 30 fps; and this hardly any content loaded. But I am not unhappy about this because I was not expecting to get much as much FPS as I am getting so far, on my ancient AMD 3200. Evolved has some great shadowing shaders out there, but they are too much for SF. If I was creating another genre, it may not have been an issue. Anothing is the dynamic cube mapping command not working; if it worked I would be in a better position.

Over the weekend I first wrote a parser to stream my text based classes, lua scripts, shaders, textures and key value pairs as I play. So I do not need to restart my game as I tweak and change things. Soon, my module system will also enable me to compile minor supportive aspects of the DBPRO source code and attach them as modules to game, all while the game is running without having to restart or re-compile the whole game; hopefully it will work...

Soon I will need to implement some windows based UI to take in user login name and password at start-up; and to perhaps produce an auction system later on; for that I have some PHP scripts available.

Now that I am able to adjust things on the file, I swapped and changed some textures in a simple level which I will use to test some shaders I have started to improve.

I am quite happy with the progress here. I am running Dynamix, Sparks (mist) and my game loop in 30fps so far in this empty scene.

I believe I can get it up to 40fps using optimization; but right now the priority is getting content, plugins and the basis of the game engine all working together at once with no crashes at the minimum of 20fps on my machine. (At 100% efficiency, it runs at 60fps or above. Anything above monitor refresh rate will eventually put the engine to sleep to save resources and cool down the processors)

Problems creep in here and there if you don't pay attention to what you see in your app; what you can't see can't help you; I tend to keep it running so I can see glitches like the above and correct them as I code.

Here the characters UV mapping is not right at the waist level; I thought I would get away with my current UV settings, so that means more pushing vertices. At least the normal mapping and airbrush shading is doing cool. It really helps to be able to tweak shaders as you play, otherwise I don't think I would of gotten the shaders and colours to blend as well as this over a few days.

I look forward to seeing some parallax shading and my new shader in progress, a 'texturizer', which blends a texture and causes bumps to rise at not just the faces, but the edges; hopefully it will work in the engine. This 'texturizer' can also animate its bumps, for use with mud and certain particle effects.

Next task is to get clothing, hair and accessories working. I want to be able to attach bags and coats to the character.

I see that there will be a Blitz Terrain 3, so I'll ease off the terrain work and focus on interiors, characters, weather and plantation.

Next month, I will hopefully do some more of the actual sports.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 22nd Nov 2012 02:26 Edited at: 22nd Nov 2012 02:59
Glue it
As it stands the character model is able to change its appearance and facial expressions. Before working on the character editor, I will focus more on the basics of hair, clothing and accessories. I managed to boost the FPS to 55 today; 150 FPS with no level. Not doing much optimization yet, I do not want to assume too much. Just discarding the slowest member of the group, in terms of recursive methods.

I looked into DarkData (database and key finding system). I bought it eons ago; wanted to find out if it is faster at finding strings in lists; than regular arrays. Nope!!

+ Code Snippet

It almost beat the arrays at finding keys in the above code, but then I could create an index system myself; I coded one here. I was expecting better. However; the key finding system isn't too bad because its easier to set up a search using a series of fields, and might come in handy to index files and objects; but I'm not sure if I will need that yet.

I also looked into the fastest way (besides constants) to access data. So far, if it is dynamic, it has to be local arrays. If not, then Data/Read/Restore functions are fastest. Especially for creating a series of strings; only thing is they are constant.

LUA was the slowest; not only are you manipulating and creating strings; but you are compiling a LUA script on every call to a LUA chunk. It is a fast scripting language; and claims to be the fastests scripting language at manipulating strings; but it did not beat DBPRO string operations; plus you have to check for errors all the time.

XML was faster to generate dynamically than Lookups; probably because the XML nodes are array based, thus indexed by number; but lookups appear to be indexed by names.

Here is the test for that.

+ Code Snippet

Back to the glue.

Glue to limb, does not work the way I expected it too, in relation to bones. There are four cubes in this screenshot; with different colors, one visible, one on the left leg, one on the right leg; and one on the one of the arms; but where are they?

As a wild guess, it seems the glue to limb bone is applying scales to the objects. At size 0.5, I notice they take up the whole screen; ironically; the character is a few units high, yet it had to be scaled up by 2500 to match the level size; and it is slightly too small if you notice the size of the doors. The character is at scale 2500 just like babe from Dynamix. It's gotta be a scale issue.

Moving on. Here's a nice cube hat for ya. Did I mention I am making a minecraft clone...

Moving on from that I put together a test coat and applied animation keys to it, using the character's animation keys.

Not as easy as it may seem; when the character runs his legs overlap the coat. So I had to apply some of the leg animation to the coat as well; but that limits what kinds of coats I can create; however animation is further down the list than the functionality. All the thin lines represent bones for animation, and bones for formation. I'm thinking about animating breathing; but I want to find out if shader based breathing will work faster than bone based breathing.

Today is the first day for Mr. Character.x to get a new hairstyle. Although there is nothing wrong with his current hair which is texture based, I will put together a template for each class of hairdo which can be any shape. I'll start with an easy to do Fauxhawk (I'll be honest, I'm not familiar with hairdo names; but I now have an excuse to look them up on Wikipedia in order to name their settings in the character editor).

So, put this texture on the model, export it, load it, and glue it to the head... Alas, the normals are the wrong way round. (I can only see what should be the interior of the hair). Why? Maybe the head bone is back to front (Bone start at end; and vise-versa). So, lets reverse the normals for now. I can't be asked to re-export the character; that takes about an hour!

Now... Yet again the most simple thing gets me lost. Why is the hair down there? Why did I have to reverse the normals? Why is the shader highlights where the shadows should be? Why is the hair bigger than it was in the model editor?

Another day another problem. When I get back, I'll do what always works best for me so far; seperate the complex problem into smaller problems; deduct parts that are working fine. If that is difficult then reproduce the bug outside the program; and continue to deduct and reduce each sub-problem. Change the method if all else fails.

User Offline
Joined: 3rd Nov 2009
Location: The Normandy SR-2
Posted: 26th Nov 2012 21:07
Despite this being my first post, I've been following this thread with a fair amount of intrigue. Firstly, this is looking like a rather interesting project in its own right, especially technically. But secondly, I do love how you've made what feels more like a development blog more than a standard WIP thread.

I love reading things like this to get me fired up for working on my own projects. For ages now I've been following things like Wolfire's blog and Fallout's Carnage thread so its nice to add another one to the list!

Previously TEH_CODERER.
Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 26th Nov 2012 23:44
Thanks Andy

I'm working roughly 50-70 hours per week full time on the project for the next 2 or 3 months; who knows if I can budget well enough, I will continue to work on it for good. It doesn't look like I have done much, but most of the work over the previous year is not interesting, although crucial.

Although I must admit, I have started this over again and again about 4 times, maybe 50 to 60 thousand lines discarded due to being too much of perfectionist; but this 5th source code library is the one that will do it; I am confident because its the most stable one; I will also be using some of the .NET framework to manage the file and network system.

It is good to have a WIP thread like this available; although there are many games development communities I could post this stuff on; I'll use this as the main spot because this is useful information for other DBPRO users; and at this stage most of what is happening is DBPRO focused; later on it is going to get more art related.

I have been following Fallout's game thread as well; although I do not really like the game idea, I admire his superior talent; and the level development is top notch; and am sure there are millions who would like the game idea; but wished he was making something else.

I am sure many will not like my project either, but everyone has their own favourite cup of tea, as we say here in London.

Keep up the good work with yours, just keep doing it, as you keep developing more and more practical content your assets, power and capabilities increase also.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 29th Nov 2012 03:30 Edited at: 29th Nov 2012 03:46
Hatchback A – Alpha 1

There’s just so much you can create with a cube, like this electric hatchback vehicle. Ok, with the help of Blender’s modifiers. . I am sure as I get more comfortable with the engine, I will improve the look of this car a bit more. I shaped this cube to look like a speedy looking small car which I intend to use as the test car for the up and coming game objective. One third of the game is about driving, be it racing or getting from one event to another; and if you play as a racer, then even more so, your character’s life will be spent behind a wheel.

This is the most standard, conventional, cheap kind of 4 wheel vehicle you can own in the game; as you will see later on, there’s going high priced supercars and out of the ordinary fictional vehicles such as the quad-quad bike and magneticar; these terms will make more sense in a few months time

Low poly

Medium poly

Each entity has 2 or 3 levels of detail (LOD); and sometimes an imposter (using the Dark Imposters plugin) .So far, the character and car models have 3 levels of detail; but I am planning to add another LOD without as much bones. The car uses bones for the players to modify its look.

Composition Shader Version 2

I’ve added a new feature to the composition shader which acts as a ‘high pass gate’. It only lets colours through that have high values. Pixels with low saturation get blocked by the gate.

As you can see, the Hatchback does not have proper wheels yet. I do have them modelled, but I am just learning how to use Dynamix; which has proven to be miles better than Dark Physics so far. It deals with wheels, so cars are for the most part dependant on what specifications you create for the wheels. After getting a feel of things, I will add my own wheels to the model. For now, I’ve dropped in a couple of temporary cylinders; one long one at the front and one at the back. Four hidden Dynamix wheels will be active, while these cylinders act as place holders. Two of the Dynamix wheels are set to be powered.

Here is the composition shader with a stronger colour gate; and a bit more boom.

Why is the car black? Dark Shader cannot handle my Entity shader; it’s too complex to run here, but runs fine in the engine as you have already seen. What I have done is disable the complex parts including the colouring of the car. The entity shader is identical to the character shader, except it has an optional adjustable, reflection function. In the next update to the entity shader, I will use a texture to adjust the reflectivity of parts of the entity.
One little tip for people learning to use Dark Shader is to return different parts of the pixel shader when seeking to resolve a problem or test a tweak, rather than comment out large chunks of the code when you are trying to find a bug, as you would with regular programming.

When you calculate a value and assign it to a variable that does not get returned, which does not get referenced by a variable that gets returned, the graphics card is smart enough to not bother to with loading the unused variables; well my old NVidea Geforce graphics card at least. As you can see in the screenshot, Dark Shader eventually ran my entity shader when I did not return all of the channels (EG: return reflection + airbrush; rather than return reflection + airbrush + normals + colour + intensity etc...) It also works if you have say, four variables from a to d, and you return a; when a = b + c, but not d; in this case, it does not bother to calculate d.

Below is a little peek at the car’s interior.

A little look at my copy of Indigo and my old project file. Lots of files. Now things are different; I have split the project up into various projects, and VB.Net is handling aspects of the game along side DBPRO. Ignore the green colour scheme; any backdrop tone but white does for me.

Here is Hatchback A Alpha 1 inside a pedestrian tunnel, within the game’s first official global map, which I will introduce in a while.

Why am I driving in a pedestrian tunnel? So I can run over pedestrians? Not quite. There are no dynamic lights outside, although it is fully lit; entities and characters require my dynamic lights to be nearby, otherwise they will look as dark as a shadow. As you can see, I will not get away with the normal map sharing the UV coordinates of the colour map; the dents are too bold and pixelated.

Here is the same scene with the Composition shader, with the colour gate active, along with motion blur.

Notice how it cleaned up the brown bits on the wall. Note that it is purposefully grey, although it could be set to extremely colourful; grey and desaturated shades is the tone that represents something the player cannot fully interact with; and is part of SF’s colour theme.

Still no shadows... I am still not sure what method I am going to use.

Triani West

This (Tri-an-i) is the name of the first city town I am going to build. It’s a global map, therefore players share it; unlike a local map where one or a group of players play it independently of global events and timing. The west part is the section I will base the first ‘test’ objective in; which is to take a sports colleague, pick up a package and drive as fast as I can to attend an appointment towards the north, all while evading traffic and dodging corners in under 1 or 2 minutes with the hatchback posted above.

The idea is find out how fast I can drive the course, then set that time as the default difficulty, which can be tweaked later on.
What you see in the pic is quite literally the road that I have driven on and will drive on in the up and coming video; only it will be textured and filled with buildings, trees, cars, trains and hopefully people.

The course is a bit easy to drive, but this is starting difficulty, no need to be too challenging so early on. On the straight up the hill, I will have Dark AI put some traffic in my way.

Here is a shot of how Triani West is coming along.

This is a good demonstration of how to fool the eye into thinking something is more detailed than it really is. It seems like there are 6 or 7 detailed skyscrapers, but actually there is only one; which has been used twice. The others are boxes with textures that the brain tends to hopefully accept as windows.

The detailed skyscraper is duplicated to the left and straight ahead. The player will never get near a low poly skyscraper, and most certainly will not enter into one. They do not have a roof; looking from above the roofs have been cut off to cut polycount. Infact the pedestrian tunnel above is behind the camera, which features walls with no backs, or tops; and floors with no bottoms. No need to render polys that the players cannot see. Possibly, I'll have some of the detailed buildings split up into two and have the rears cut off, if the player cannot see the rear. If necessary, I can LOD the dummy skyscrapers if I change my mind and decide to use the building as part of an objective. In which case, i’d need to carve doors and rooms out of them.

No shaders active here, no lightmapping either. The blocks you see position to the right are actually electronic barriers that will let cars in and out. I pushed them over to the right to let my car get through; until they get their behaviours coded.

AGK Backer
User Offline
Joined: 5th Dec 2010
Playing: Playing
Posted: 29th Nov 2012 04:09
This project is getting very inspirational!

Got me thinking of working with DarkShader again!

User Offline
Joined: 25th Nov 2012
Location: Mushroom Kingdom
Posted: 29th Nov 2012 13:35
Wow... Just wow...

Seriously, great project. Is there download anywhere? Anyway, I'd love to know if you made models yourself or bought from the store. If former, what tools did you use?
Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 30th Nov 2012 03:22 Edited at: 30th Nov 2012 03:38
Thanks guys, I really appreciate your comments. Feel free to share any feedback or ideas.

Darkhog, I do my own modelling inside Blender, 3DWS and Mapscape; plus various tools by TGC. I also outsource a number of models per category of object; common architecture, windows, doors, trees etc, then use them as templates. What ever works best for the situation. Sometimes outsourcing is not good because you end up spending more time UV adjusting and tweaking the model for game suitability. Sometimes it is easier to start from scratch.

Today I focused on creating a new shader called Solids, and made version 2 of my primary shader, the texturizer, which for the first time is being demonstrated further below.


This rapid HLSL program is going to shade most of the man made environments that the player can collide into. It’s the cheapest shader, GPU performance wise, because it does not read all lights, just the sun. For this reason, when used inside it will require light-mapping and light averaging.

The shader also has a channel for reflection, which will be used to create puddles on tarmac, which is the shader’s primary application. It has a texture channel for adjusting reflectivity to match different substances on the same surface.

It will also act as an auxiliary bump-mapper for scenes with a high poly count; to help ease off the lag on low end machines (like mine). In version 2, I will attempt to add in built LOD which adjusts the complexity of calculations far from the camera. It, like most shaders, will eventually need some sort of shadow map technique; which I am struggling with at the moment.

This cube has some tarmac, and reflects the surrounding scene.

The solid shader isn’t bad at drawing bricks. The reflection has been boosted to see the result.

Here is a more realistic setting with orange ambience.

It’s seems OK for metal, but the dark tones are not very reflective.

Texturize.fx Version 2
This is the flag ship shader for the game; it will be used to render nearby organic surfaces, terrain, water and anything rugged and ‘noisy’ in texture. It literally ‘rises’ the object’s surface. It also has inbuilt animation, which may be added to the water shader later on.

The per-pixel light based shader is the next step up from normal mapping, it adds definition to the shape of the given object, based on its texture and shader settings. Unlike vanilla normal mapping, it bumps the edges too. I intend to put in an LOD system to increase or decrease the amount of detail drawn at certain distances; and possibly animate some micro-particles when close to the camera.

So what does it do? Well, let’s take this sphere, and add a fake light map texture, two colour maps, a mix map and normal map, then activate the shader and see what happens.

OK, it looks like a decent normal map. Actually this is how it will look at minimum texturization in the distance. Lets crank it up a bit.

Well, the sphere is now a more like a rock, but let’s crank it up a bit more.

OK, at this setting the sharpness of the generated vertices make it look like I made the rock in a modelling program; and that is the texturizer’s job, to get the GPU to do some modelling. The FPS has not fallen which I am pleased about. Ignore the polycount, 316 of the polygons are part of the sky sphere; the actual model in memory has far less polys than that. I could easily generate many more, but this resolution is enough for this type of game.

It can be added to any model, and it can animate its generated vertices and texture blends without DBPRO code.

This shot has sunny ambience applied to it.

A sphere with the SF logo used as a colour map.

This is what it will eventually look like on Blitz Terrain’s surface at close range (hopefully). The terrain will have sub-terrains generated. This is originally a flat plane with 9x9 faces. It now looks like it has 3 times more than that. When the floor is wet and muddy, car tires will adjust the look of the terrain in future versions .

This tree bark looks like it was taken from a photograph, or modelled in a 3d modelling program. Not bad for a 9x9 DBPRO plane. The plane could have had about 2x2 polys, and I could have increased the number of polys generated. But I want to let the modelling program define where the details are, and keep the gen count low.
Obviously this effect will be used on trees at close range. Notice that I’ve used my logo as a base map. With the current settings, the grey logo is acting as an underskin; a bit like an image layer.

Some more playing around. The wave settings adjust the pattern of the bumps; which could do with some more randomization.

Triani West Day 2

I’ve been playing around with tones and produced this night time effect.

As you can see, the original scene has much more light.

I played around with Evolved Software’s Tree IT. This tree was made in 2 minutes. The leaves are too big because I am not interested in the leaves at the moment. Be warned, that software is too addictive, I could spend all day making trees.

Here is the tarmac (Solid.fx) shader in action. I did not get a shot of how it looked before, but now the road blends into the scene much better, and the minute bumps are more noticeable. However, the lack of colour spoils its specular shading.

The composition shader’s colour gate is too narrow; the yellow here is too dominant. The car shader (Entity.fx) is not being focused on today. It needs its reflectivity and tones adjusted.

Opened the colour gate slightly to let more colour through, but closed off some of the red; because this map has a blue-green feel to it.

Now the tarmac shader has more colour to use. The sun position has not been set properly, and DBPRO’s cubemap commands do not work; so reflections are based on the skymap for now, although the reflection settings is quite low or the reflection mixer lacks dark pixels.

The blurry lines in the distance are nothing intentional or unexpected. By default, DBPRO uses mipmap filtering on all objects; applying low res textures in the distance; something I need to adjust later. I see that the tarmac in the middle is very bright; not sure why.

Dark Shader is a good investment, but Notepad++ has better code editing facilities. I use Dark Shader for testing only now.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 1st Dec 2012 01:04 Edited at: 1st Dec 2012 01:05
Triani West Day 4
Another day, another problem; and then some more. To start with, I was not happy with how the Solid.fx shader displayed metal, and how it reflected the environment. So I improved it.

That looks more like metal to me. It gets its brass tone from the colour maps, and the normal map now affects how the cubemap is reflected; in this case the background image. There are two main textures in the material which are ‘blend mapped’ together.
I’ve also introduced a new technique currently in development, which gives the scene a very subtle hint of ‘cartoon’ edges, and brush strokes.

Lightmap problems
There are a number of lightmap issues. At the moment, Dark Lights is being left for level props only; this procedure may change if necessary later on. For now 3D World Studio lightmapping is being used; but the Solid.fx shader does not understand the UV coordinates. The cloudy floor on the image below is actually a giant bump map. This is one of the causes of the tarmac problem I faced earlier.

To fix the issue, I had to re-code the UV settings in the shader.

OK, fixed that issue, eventually. A new problem regarding the texture tones is bothering me now. Light pixels are affecting the bloom shading in the composition shader. I have to reduce the highlights on certain textures, and reduce the contrast in the composition.

The car is still within an external lighting environment, hence, none of the yellow light beems affect its colour; and cubemaps are not ready yet, so it is reflecting the sky sphere.

The pedestrian tunnel now has Solid.fx’s bump mapping and a slight reflective sheen, although still only reflecting the sky sphere. DarkBasic’s cubemapping command causes a crash, so there is no easy way to reflect nearby objects with the shader; not yet anyway.

Now the tarmac looks a little better. It is attracting its yellow tones from the sunlight. There’s still something fishy going on in the middle of the road however.

A look back at the pedestrian tunnel; which will probably lead to a train station; who knows. The shadows look funny from here because the light source is clashing with the sunlight; and the shadows need a bit more blur; otherwise I’d have to render the shadows at a higher resolution.

I drive the car over the edge of roads and flip it upside down accidently, at least 50 times a day. The car is currently too flimsy, it’s not my driving, its Dynamix’s fault

I liked this shot of me falling off the road, its the only way to currently see the car’s Entity.fx shader as it should look; only it’s reflecting the mountains the car is about to hit.

Next task, walls, barriers, some more Chris friendly features and a smarter reset button.

Green Gandalf
User Offline
Joined: 3rd Jan 2005
Location: Cornwall UK
Posted: 3rd Dec 2012 18:50
Some great work here - I like the mini-tutorials too.

Good luck with this.
Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 4th Dec 2012 00:23 Edited at: 4th Dec 2012 00:26
Thanks. So far so good, although the main work has just begun, I'm pleased with DBPRO's performance and stability so far.

The plugins are getting better and better now; I hope the tool developers keep on updating, improving and creating new plugins, it really helps make the engine more complete, and competitive against the big ones.

Composition.fx Shader – Gradient Ambience
I have been improving the quality of the screen shader and it’s bloom features; but the main featured added to it, is the ability to use a gradient between a dark tone and a light one, and apply it to the view. This is nothing new; many games and movies use something similar to control the ‘mood’ of the visuals; to add character and emotion.

For example, notice the difference in colour of the atmosphere in and outside of the Matrix; the difference in colour in each of the dreams within Inception; the warm tones of Dues Ex and the greys used in Batman (Arkam City).

The strong colours still get through the gate; the greens are so strong, the gradient code does not block the hue. The saturation of the green is too high, but this is by no means a finished job.

Brass-like tones

The original camera view looks fine, however less interesting. You can disable any shader you work on in the DarkShader editor by pressing the little green box below the shader properties.

Triani West – Day 5 & 6
Not much modelling done recently, I have had to spend quite some time tweaking the PhysX driving engine; the car was difficult to control because I had no choice but to tamper with Matty’s default settings; due to the way SF works and the low FPS. But I can drive safely now, even below 20 FPS it is playable; however this might not be so when AI is added. But this is not a major issue because no optimization has been done, and my PC is not modern.

The focus has beens getting a feel of the road to make sure the drive is fun before any major details are added. This will apply to other sports, where the level-design game-play will be tested before focusing on aesthetics.

The map gets loaded into two main objects; one for collision, the other for detail. DBPRO is quite good at running 200k + polygon environment, so as long as it has a few primitive objects; in this case, the map is two objects with many limbs. You can use the Statistic(1) command to see how many polygons are in the view. Take note of where you stand and where you look when your frame-rate drops. You may be forgiven with a heavy drop if the player is in a scene which requires little action or precision.

User Offline
Joined: 5th Dec 2012
Location: Pittsburgh, PA
Posted: 6th Dec 2012 00:14
You sir have an extremely keen eye for detail. Everything looks fantastic so far, keep up the great work!

Back in action
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 6th Dec 2012 10:07
You are very talented with shaders/graphics design, looks great!


Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 13th Dec 2012 02:35

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 13th Dec 2012 02:36 Edited at: 13th Dec 2012 02:46
Finally, I can return to do some work on Sports Fiction; it felt so good to see the program once again after a long hard week putting together some new tutorials for my tutorial site. At first I was intimidated with creating videos using Blender; I never enter that Video sequence window. However I am slowly getting the hang of it.

Quote: "You sir have an extremely keen eye for detail. Everything looks fantastic so far, keep up the great work!"

Thanks. I am starting to hate looking at it now; because when you look at something for a long time, you see more and more issues with it. But the point is to enjoy the journey, enjoy the process of building something, rather than worrying about glitches issues and web traffic too much.

Quote: "You are very talented with shaders/graphics design, looks great!"

Thanks. I'm just an avid tutorial watcher really; infact I am just about to watch some more photoshop tutorials in a moment.

But first, a brief update.

No major work was done on the actual game this week due to making tutorials. However, the last feature I worked on was Gamma. Gamma is being used to sharpen up my mid tones, and the user can use it to calibrate their monitors. Anybody who has adjusted their graphics card colour settings will know what I am talking about.

From now on I will be striving to use more videos in my posts; since the facility is there.

Next I will getting back into the map editor. No real focus on the choppy terrain; since I will be using Blitz Terrain 3 when it comes out; and as shown previously, I have smooth terrain textures and techniques in my arsenal.

Hopefully in a week I can continue working on the character, however driving the a lot car is helping me to understand the Dynamix plugin.

AGK Backer
User Offline
Joined: 5th Dec 2010
Playing: Playing
Posted: 13th Dec 2012 02:37
That 3DWS Screenie makes me feel like an idiot

Shall have a look in the morning

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Dec 2012 02:21 Edited at: 12th Jan 2013 21:12

Update 25/12/12

A number of features have been implemented into the database end of the runtime; which is primarily .NET based, the design time operations have been devised to feed content creation with data driven object orientated definitions, events, triggers, player actions and effects, which aims to speed up content implementation.

Additionally a save and load feature is underway for the Filter library along with some new effects. The Triani West section of the first world grid has been expanded, introducing the Triani Tunnel networks and an additional, yet to be named town on a hill. In the character engine, Matty's physics plugin has been tested with my mesh based terrains and looks ready to take onboard the big Blitz Terrain job.

Texture back history
Everything in existence has back history; with the textures, a number of things are taken into consideration. How did the texture get there? Who put it there? How reflective should it be? How old is it? How much human contact does it have? Do animals interact with it? What is its condition and why? How was the material erected? What do I want the player to think? Based on such questions, techniques are applied to express the desired conclusion. With the following texture being applied on an old building, soon to be demolished, a brush technique was used to produce mould. The blocks have been nudged here and there and made to look warn out. Motion blur was used on the grime to reflect the affects of gravity over time.

Hopefully in future I will position the blocks more unevenly and damage the windows a bit more. When the decal system is ready, I will completely wear and tear this building apart.

The reflective shading required for the window is pending, but the overall building looks acceptable for this phase.

Screen proofing
In print, the results on paper may differ from the pixel. Proofing is performed to check print prior to proceeding with a full run. In my project, prior to implementing any live editing facilities; I am screen proofing property settings in different scenarios. With shaders as an example, each preset is tagged, tested and scored in different situations on different monitors; and computers.

Triani West - Days 7 - 9

The west part of the city in the first grid will feature a shopping district, a riverside port, a tunnel network and a road leading to a yet to be named town on a hill, where the image above was taken. There are many holes in the map, but this is because there are a number of engine features that need to be programmed before sealing things together. First the map primitives need to be positioned and play tested. Next the details and effects are added; finally it is all tested and tweaked for performance and quality. Some of the content, such as the terrain and street lights are placeholders for more complex objects to be delivered by Blender, engine plugins and my database.

A shot of how new areas are started. The design is based on a simple road; that's it. Once the road feels nice to drive on, and it is clear what kind of AI will use it; I can piece together the primitives. Same principle will be used with character obstacle courses; particually when the game mechanics are ready for external testing, I can then proceed to add the extreme details.

Taking advantage of the first major hill, I tested the Dynamix plugin's ability to have the car roll down when the breaks are released, proving successful.

Tunnel Network
The city requires a tunnel to pass under the soon to be river, whilst linking a series
of one way and two way roads from motorways around the edge of the city. The tunnel
will feature an underground train network and some technologically advanced accessibility
features. Although an advanced theme, this tunnel has aged, and needs a great deal of
grunge, wear and tear; much of which depends on the soon to be implemented decal system.
Currently the orange looks too clean without it.

Vector Crafted Tarmac
The new set of roads also feature a new tarmac set created with vector graphics in addition to pixel based overlays and filters.

Character Engine
Over to the character engine, which is also implementing the DBP end of the game's core functionality; a quick test was performed to inspect the engine's response to mesh based terrain, running as a triangle mesh PhysX body.

The DarkPhysics equivalent was nowhere near as tidy. With Dynamix, there was no getting stuck or struggling to pick up speed up minor hills.

I also tested a small dynamic cube which reacts nicely against a fine surface at such a low level of framerate in the part of the engine that features no precision optimization; no continuous collision detection (CCD) used yet. The FPS, as displayed is all due to a minor issue.

Coming up next, the map content, decals, shader implementations , database stuff and some animated filters.

User Offline
Joined: 26th Oct 2009
Location: netherlands
Posted: 2nd Jan 2013 11:39
Great work, Keep it Up!

Current project: Banned
see it at:
Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 3rd Jan 2013 00:32
Thanks. As you can tell, I like long hard journeys.

User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 8th Jan 2013 08:32
My first post here, but I've been checking this from the beginning. It seems like a lot of work but I'm sure you can handle.
I like all the attention to detail.

This is great work Chris!

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 8th Jan 2013 19:58
Long time no read comments from you Dimis, where ya been?

Did you fall out of love with Dark Kumite or are you going to finish it and add some sound to it now?

Quote: "It seems like a lot of work but I'm sure you can handle"

It is all about the journey; enjoying the ride, forcing myself to learn new tricks and creating something I want to play. I should be posting the next progress log quite soon.

User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 8th Jan 2013 23:33
Quote: "Long time no read comments from you Dimis, where ya been?

Did you fall out of love with Dark Kumite or are you going to finish it and add some sound to it now?"

No, I am still working on the game. I have lots of progress to show but the thread has been auto locked. I am waiting for a mod to have it unlocked.

Again this is great work. I really like the shading effects you use.
Waiting for the next progress log now!

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Jan 2013 10:07 Edited at: 14th Jan 2013 12:39

In the latest version of the game a number of new assets have been implemented. A new more organized method of posting updates will now be tested. Enjoy.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Jan 2013 10:08 Edited at: 14th Jan 2013 11:57

Character engine full scale map activity revealed

Thanks to the overwhelming challenges of piecing together sheet loads of character control functions; it has taken a while
but finally I am able to load large scale maps with additional features.


Two new town areas named

The additional areas included in the Triani West map for SF 0.36 are the Triani West railway station and a shopping area called
Herman Hill. Most of the attention has gone into the structure of Herman Hill, with a few hours spent creating the entrance concourse in for the station. View

View Gallery

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Jan 2013 10:08 Edited at: 14th Jan 2013 11:57

New Triani West railway station work revealed

Jump onboard one of the city trains to get from A to B on time, and fast. OK, the actual trains are not ready; however, the concourse entrance is
here to see.

Trains have been around for centurys and this station has aged and contains strange graffiti on the walls. View

How I now launch my game world from 3DWS

3D World studio is one of the tools being used to produce the structure of the maps. It is quite simple to export a DBO file
ready for the DBP engine, however with a procedure I show you how to run your game with the currently opened map quickly and
easily from within 3DWS

Read more

How your game world is being organized

The world contains lands, cities and buildings which host a range of sporting events, courses and arenas. For a technical description of
how the game world will revolve, read on...

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Jan 2013 10:09 Edited at: 14th Jan 2013 13:42

How SF shaders are inialized


SF 0.36 currently uses shaders to render approximately 75% of its content, however this ratio will increase, and the
textures will improve dramatically during the art refinement stages of development. For those who are uncertain about shaders,
I am revealing how they are loaded and applied in SF 0.36 using DBPRO in most situations. Read on...

SF 3D World Studio property reader revealed

So, you want see how SF reads entity properties from 3D World Studio and Blender; or are interested in learning
how to read your own properties using DBPRO. How to read key-value pairs...

How the SF engine uses sub-engines

In the first step the sub-engine is created as a separate DBP project which loads 2 or 3 source files containing
generics, common UDTs and functions. The sub-engine runs independently of the main engine; actually 90% of
the current screenshots are based on either the character, vehicle or terrain sub-engine. Any changes that need to be
made to these engines can be carried out without compiling 10s of thousands of instructions.

Furthermore, these sub engines contain further sub-engines; such as the shader, mist, HTML and snow engines; which can all
be tested independently. So when released, any bugs or issues can be narrowed down to a few small fixes where ever the problem occurs.

How does each sub-engine communicate with sub-engines that have not yet been compiled? How does the particle engine
understand how and where to put particles in the engine which contains it, if it does not even know what its parent
engine does? How does the root engine run functions in sub-engines if the functions do not exist in the root project?

In the next update, I will demonstrate how this is achieved.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 14th Jan 2013 10:09 Edited at: 14th Jan 2013 12:15

New magboot concept

The magnetic boot concept is one of the first concepts being tested. These will allow you to do more than just jump from platform to platform.
Read on.

AGK Backer
User Offline
Joined: 5th Dec 2010
Playing: Playing
Posted: 14th Jan 2013 10:34
Umm those images are tiny now...

Is that terrain i see in the upper right?

I think this is interesting as responders can mention a particular update... nice call... I hope you do not mind adaptations of your method

Not sure why you reserved 4 posts after it though...

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 21st Jan 2013 20:35 Edited at: 21st Jan 2013 20:41
Quote: "Umm those images are tiny now..."

Quote: "Not sure why you reserved 4 posts after it though..."

Yeah, I have to start organizing things into sections now, updates will start to get wordy. Lots more images and
version logs to show, so the initial post of each update will link to the sections. The small images are links
to the information on the site.

People from other communities can now navigate to the information they want to read here and on my other sites more easily.

It takes longer than one would imagine to post these updates, which is why I reserved a few posts to insert and
format the content in logical order, keeping them close together. You made your reply within a few minutes
inbetween the process.

Quote: "Is that terrain i see in the upper right?"

Yes, it is a 'PhysX rigid' terrain object; low poly simply for collision. So far I am just blocking the map
in and revealing the mesh. Later Blitz Terrain will be used to derive from the mesh and render my terrains,
whilst 3DWS will create the collision mesh. In previous posts I showed how it would look in the real game. I will
have to adjust what I have done to make use of BT3 when it comes out.

Minor update
Very minor... Not a good week, the website might go down for one or two weeks. Hopefully I'll have it up and running
again; a bit short on cash.

I have been programming racing AI and the character editor this week. So far the character editor can manipulate
physique and clothing on my character model. It's all early work, but I am quite happy that it actually works,
should be demonstrating this in my next update. Still need to figure out how to do long hair.

For AI, I started using Dark AI but ended up not using it much. I prefer to be able to see the inner workings
of code; it ended up not working how I expected and I can't see what it is up to. So I will program my own AI entity
system so I can see what it actually does at the lowest level. I will still use Dark AI for path finding,
but will code the bulk of the AI and NPC system from scratch.

Quite confident about creating racing AI, because I have done it before, but this is the first time doing it
with Physx vehicles.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 31st Jan 2013 21:15 Edited at: 31st Jan 2013 21:25
Update 0.365 - 31/01/13

While the latest update is a minor step between 0.36 and 0.37; 0.365 establishes the core of the front and back-end.

The features implemented are primarily focused on the maintenance and running of the game. The following features are now active.

Fully Comprehensive User Interface As a player you will need to manage your character's development, accessories
and relationships with team members and associates. What this means is there will be lots of tweaks and choices to work with, so you
will need a full-comp set of user controls to make such tweaking comfortable, all with hints and suggestions. From v0.365, most user
interface features you'd expect from a micro-management game such as windows, icon lists, mouse over hints and sliders are now running.

Cloud Server At the highest level, all servers and entities within them are organized into national domains, which
inturn are hosted by the cloud server. The multi-language national domains host servers, custom games, players, entities and messages
24/7. The server that must control these domains is now online.
For now this cloud system will be storing the characters and content for my testing purposes. In future, such content is stored
in your nearest domain, or the domain you choose to play in.
Currently; private messaging, profiles and settings are running. Further down the line trading and item configuration for
such items as cars, boats and tennis rackets will be added.

Character Editor Component The main focus of 0.37 will be on the character editor. So far the component is fully
functional although not user friendly. The character's body and facial structure can be altered. The final step is to tidy up the
interface and produce basic skin and garment textures for testing purposes. I will also have the character's chest expand as it
inhales, and will make its face more animated; although full facial expressions, hair, hats and coats will be delivered in a later update.

In the following update I will have the character editor in user friendly form and will use it to create my characters as the player
will. A similar version of it will create NPCs.

Once I get my macro system programmed, I will continue with the sports and start racing some AI between 0.37 and 0.38.

User Offline
Joined: 28th Mar 2007
Location: New Brisbane, Utopia Prime, VGC GHQ
Posted: 22nd Feb 2013 04:07
So far, this SportsFiction is amazing. This is something similar to what I'm trying to achieve in Unity3D v4, and I'm struggling with heightmaps... LOL

This looks truly awesome and I hope you can keep up the dedication to see this completely through. I want to play test SF when it's at that stage! From what I've seen, this is a WIP and a Dev Blog, and I'm enjoying the ride!

I am interested in the tutorials, both for 3DWS and Blender, as Blender is a monster to get my head around for anything 3D... It's like a kid in a candy store and she has $100.00 to spend! "What first!?" LOL

I hope you get this done. I want to see it finished and online!


All trees have bark. All dogs bark. All dogs are trees.
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 22nd Feb 2013 17:31
I understand why a lot of people don't like sports: sports are hyper-competitive and this often negates the interesting aspects of the game, people (most notably professionals) are only interested in winning and give little thought to entertainment and interesting play, but underneath all that sports are interesting and complex physics games. Maybe your project will bring out the fun in sports for people who don't usually like them.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 23rd Feb 2013 14:31 Edited at: 23rd Feb 2013 14:40
Quote: "So far, this SportsFiction is amazing. This is something similar to what I'm trying to achieve in Unity3D v4, and I'm struggling with heightmaps... LOL"

I know the feeling, it takes a lot of effort.

Quote: "This looks truly awesome and I hope you can keep up the dedication to see this completely through. I want to play test SF when it's at that stage! From what I've seen, this is a WIP and a Dev Blog, and I'm enjoying the ride!"

Thanks, a lot has been done since the previous update; check out this thread in a few weeks time; the latest content has more quality, looks more like a real game now. It is my aim to continue with this, no other projects and no intention to stop or change.

Quote: "I am interested in the tutorials, both for 3DWS and Blender, as Blender is a monster to get my head around for anything 3D... It's like a kid in a candy store and she has $100.00 to spend! "What first!?" LOL"

They are good programs; unfortunately 3DWS .x model importer is rubbish but as a whole 3DWS is superb for architecture, terrains and object placement.

Blender is an operating system run under the Python console; so it is big. I hope one day I can script it to run as my official level editor.

Quote: "I hope you get this done. I want to see it finished and online!"

I hope it works. It's a broad ongoing project, so throughout its life span there will always be expansion in the form of maps, gadgets, sub-sports and features; so it will never be finished, just at some stage it will be playable, after then it will be about improving it. At some point in the future, perhaps in between July & August I will hopefully implement alternative hardware such as Kinect and voice rec.

Quote: " people (most notably professionals) are only interested in winning and give little thought to entertainment and interesting play, but underneath all that sports are interesting and complex physics games."

Indeed; each person has their own interest; Sports Fiction aims to make such interests accessible, much like a theme park which directs its visitors to their desired attractions; one person wants frills, another wants competition and the others want relaxation. Hopefully if the plan works, there will be something for all the family in Sports Fiction.
Quote: "
Maybe your project will bring out the fun in sports for people who don't usually like them."

I hope so; I am hoping the physics play, tension and plot twists will attract such audiences. It is actually as much about the character development as it is about the sports. Players of RPGs and strategy games will feel more at home than they might first realize before they play.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 9th Apr 2013 00:23 Edited at: 9th Apr 2013 00:37

On Friday 12th April, I will be stepping out of my secret laboratory to talk a little bit more about what's been happening in the development of sporting role play.

User Offline
Joined: 25th Oct 2008
Posted: 10th Apr 2013 01:03
looking forward to try a version of your game,

seems like you are going to do a nice mix of character development and action/ reflex based gameplay. Definetly a optimisation to boring click on enemy to win RPGs in my opinion.

Chris Tate
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 11th Apr 2013 00:54 Edited at: 11th Apr 2013 00:58
There will be a long wait before the alpha release, loads of things need to be done even before assembling a team; so you'll have to wait a long while before any download is made available.

It will be a good mixture of sport; not quite like some of those button bashing Olympic video games; but something more intellectually challenging, spiced up with technology, puzzles and mazes. Casual players get to enjoy physics play and Kinect posing. Unlike most olympic video games, motor racing plays a big role, and the the game-play expands into outer space.

The game will have point and click operations; but how point and click interacts with the characters will be an unexpected surprise right before Alpha release, hopefully next year.

Login to post a reply

Server time is: 2016-10-22 15:59:30
Your offset time is: 2016-10-22 15:59:30