Friday, 10 May 2013

Friday Gotta Wear Shades

We Have Colour

That's right boy and girls, we have a texture and shader now rendering the polygons in my massive geometric soup! Here is what I am looking at right now at midnight:

So what you are looking at is quite a lot of magical back-end stuff, and precious little front-end eye candy!  The Paradroid System is complete and buffers are now retired until needed again. As I suspected, after a few seconds of roaming the buffers level out at a certain memory usage and stays there which is great.

The above scene is a typical 200x20x200 universe with a simple floor segment pasted randomly once every three roles of the dice.  As you can see, it stretches from the floor to 20 layers high and off into the distance which I have cropped at 40 segments in any direction. This was the maximum distance you could view in the classic FPSC so should not upset too many people, and until we start adding real assets I am not sure what the final distance should be, and will probably be in the SETUP.INI file so you can change this from game to game.

As you can see from the statistics we are really hogging the graphics card which can only manage 22fps with unoccluded polygons, but the critical figure to view is the memory which is only 379MB.  That's a third of the potential 800,000 segment tiles filled and rendering in all directions, and it's well within our maximum memory budget.  The theory worked!

I Could Stop

With such a result I could pat myself on the back and have the rest of Friday off, but I am in a coding mood and not tired so will continue onwards.  Given what I have now, I need to move it to the next stage of using different kinds of segments.

I reduced the default size of buffers from 20,000 vertices to just 200 polygons so I could accommodate such as large scene, but the final system needs to handle buffers of many sizes. Some tiles will just have a floor segment, but others could have a complicated 10K polygon entity duplicated many times, and the system needs to adapt to this scenario.

Once this has been dealt with, I can create a more realistic scene with different segments and entities to populate my prototype with.  I also need to think about a few levels of LOD while I am in the neighbourhood too.  No sense rendering everything within the camera frustum at full detail as a nice carved statue viewed at the very edge of sight would not contribute much to the game except slow it down and hog memory.

Signing Off

If anyone knows of a good 'free' tool which can take an X file and reduce it down to use fewer polygons, then save it back out as an X file, that would be good. I have used many, but not done so recently, and maybe something new has appeared? Ultimately of course the assets will have professionally prepared LOD meshes for improved in-game rendering. Plenty more to do of course, including putting the light mapping back in, selecting a good universal shader set, dynamic meshes and dynamic lighting, adding physics on the fly, cutting CSG operations directly into the buffer data, the list is endless :) Just like climbing Snowdon, you do it one step at a time!


  1. That Paranoid system looks great and i must say i admire your endurance
    tough i know how it feels to code thru a night (sorta doin that am)

    regarding the .x crop question

    the latest Blender might come in handy
    as its Decimation modifier gets some good results
    with 3different types of decimation - poly reduction/ the best is it keeps the uvs intact so that should be something

    and ofc Blender exports x files

    or just let Bond01 handle that ;)

    anyways looking great
    one suggestion i would have regarding
    the view distance/ make it triggerable and do not restrict it to the setup ini

    if you move out of a Building Area into a wide open spot - something like a garden or terrain
    it should not have the same view distance

    on the other hand u could save some with restricting the view distance in buildings and interior levels.

  2. Really nice. A bright future I can see, young FPSC-R. ^^

  3. It would be nice to have the possibility to change the render distance level to level,scene to scene also on individual objects in the scene,any time I want,on anything I want using scripts or built in settings inside the editor. Nice job so far but don't stop here,we need freedom in FPSC not only in level size also in development :P I don't like the idea of changing distance for entire game in setup.ini

    1. This comment has been removed by the author.

  4. Let say in my first map I have a huge scene (or floor) with less details and I want as far rendering as possible for better visual.For example space.
    On the second map I have smaller scene (or floor) with more details,for example surface of a planet or space ship.
    Because of that I need less rendering for better performance but let say above my scene (or floor) I want a planet or asteroid to be rendered in 3D for far distance,but nothying else that far only that planet and asteroid.
    If we can set the distance only for entire game,we are constrained to do anything like this.
    So it would be nice to have the possibility to set render distance,anytime,anywhere also for individual objects.

  5. Come now, Lee. You should know what products you sell. Action 3D is brilliant (well, the demo was) for reducing polygons. Admittedly it's not free but- wait, you don't want something anyone that can be distributed with FPSC-R to automate LOD creation, do you? Well, you're going to be looking for a long time if that's what you're after.

    Overall the more I see, the more excited I get. I can't wait to start creating Half-Life 2 quality games! That has always been my benchmark for game creation software: whether it could create Half-Life 2. Of course the graphics aren't amazing these days but they were nothing short of spectacular when I first played it a few years ago.

  6. I'm with Clonkex, if we can get near Half-Life 2 I will be fine with that.

  7. Great progress, Lee! I'm trying to save up some cash so I can back FPSCR on kick starter if I still can

    1. Me too. You CAN still back FPSCR, but the Kickstarter project failed some time ago (it didn't reach its goal...however a private investor gave TGC the entire amount so FPSCR is well on its way). Go here to back FPSCR to add some excellent stretch goals: