Friday, 1 February 2013

Friday Officially Reloaded

Up With The Larks

Morning broke at 5:30AM today and got emails done in just 30 minutes, so had time to finish lots of little tasks scattered around my machine.  New FPSC beta uploaded and further work to migrate my work files to the new machine. The big task of the day of course is some lovely Reloaded work

P002 Continued

As you recall, last time we got a single bound box casting an occlusion shadow over the scene which hid anything within it. The current issue is that anything that is partially occluded is left visible, even if a second occluder hides the parts remaining visible.

The task to day is to write something that will mark which objects are partially occluded, and record which occluder(s) are partially hiding it. I can then reference the first occluder when a second also partially hides it, and then in theory merge the two (or more) volumes to see if their combined efforts completely hide the object.  I can slam in some code but my mind wants a fast efficient way to do it, as this will be running 60 times a second and I want the code to be practically invisible from the performance metrics.

Reloaded Day One

Today officially marks the first day of the Reloaded project! Up until now the prototypes where created ahead of schedule as I was itching to start coding. Today however is when the egg timer turns and all eyes are on me to complete this little project in time for Christmas.

I have mapped out my duties over the next eight months very roughly, and mapped out my duties over the next three weeks specifically.  All things being equal, next week will see the elimination of the 'build phase' and separate FPSC-Game.exe executable so you can click a button in the editor and instantly play the game. The following week will see real time light-mapping of the scene as you are editing it (segments and entities) and the third week will see the introduction of entities that have a built-in dynamic light that can cast a single shadow map into the scene.  Putting all that together, you will be able to drop in area lights for effective static light-mapping and spaced our dynamic lights to cast lovely real-time shadows from any dynamic objects in the scene.  I will wrap the whole thing up with some cool scene graphics provided by Mark and should have a playable alpha of this part of the product by the 25th February.

Over the years, I have learned the best way to get a product finished is to finish it quickly. Spend too much time planning, drawing little sketches, tinkering with funny little modules or mulling over the enormity of the project and chances are you will never finish it.  I have a heap of stuff to do, and only a few short months of fevered activity to do it in, so the sooner I can get the general shape of the new product carved out the better.

The following month (providing I hit my target) will be a coin toss between the new physics system or the new terrain system. Both equally relevant and connect directly to the work done in February. I think terrain has the edge given this geometry also needs to be light mapped and incorporated into the editing experience.

In doing some advance research into physics, I have found Bullet Physics to be a good contender for selection over PhysX. Bullet is completely free (PhysX has priced licensing), Bullet is GPU accelerated on AMD cards, it's open source which means I can fix anything that goes strange and the online demos are very cool indeed. I will return to this comparison of features closer the time but I find my mind getting excited to think that after we finish Reloaded, the very next thing I will want to do is add vehicles with trailing cloth banners, riding on it's soft body tyres across a dynamic rope bridge at break neck speed before crashing through a destructible wall into someone's living room.

Early Knock

We have a saying here in England (and Wales I think) called 'Early Knock' which means if you get all your work done quickly you can go home. I plan to have an early knock today and be finished for 5PM as I am driving to Wigan this weekend to fill a skip with lots of yucky things.

This means I will not have the weekend to tinker with prototypes or play more games, but I am pretty sure next weekend is completely free so something to look forward to there.

Signing Off

With the FPS game Dishonoured complete and back on my shelf, I will probably be picking up a new FPS game to install, perhaps Borderlands 2 which has come highly recommended. The game is not directly related to the work that needs to be done in February, but the knowledge will sit in my head and mature like a fine wine :)


  1. Bullet physics has just been upgraded in the latest build of Lightwave 3D (11.5), affecting cloth and soft bodies as well:

    It is quite interesting to play with; I've got to upgrade my Lightwave one of these days. I'll be looking for a pipeline to Unity from it; but I also intend to build some media for Reloaded as well, with it. Not all of us can afford Max. ;)

    February for a playable demo? That's pretty early; I wasn't expecting anything till early to mid Spring. The new editor is really starting to sound like something you'd find in a more AAA editor. I never really thought the shroud was helpful at all anyways. Being able to use the scroll wheel (for example), to "sweep in" on the media placed (going from top-down to a somewhat isometric view) would be welcome...when doing fine-tuning.

    I'm REALLY looking forward to messing about with the Terrain Editor. I've used the Torque Terrain Editor when it was in it's first iteration, way back when. It was simple and easy to use (though the interface, at first, had much to be desired). If/when you get to placement of objects; keep in mind a tool that would help someone plant large amounts of trees, rocks, shrubs, a brush, rather than individually. If you reach the goal of the actual tree function you talked about; having a few sliders that allowed you to not only select from a few tree types, but also varied (depending on your scale variance selected) the scale of the trees overall. This would help give a more "mixed", rather than uniform, look to your level's foliage. With a good occlusion system; a somewhat large forest area should be possible, even if it's mainly used as a "background area".

  2. In V1 of Reloaded there won't be a huge amount done on trees, bushes and vegetation as this is a whole kettle of fish in it's own right. I will be supporting some decent static/dynamic constructs for imported trees, an automated way to generate ground coverage so don't get entirely flat polygons on run around on. If there is demand, I would like to build a special tree growing system within the engine but this would only come in after the initial release as it's quite an involved process. This may change of course the closer I get to terrain and "automated spray can style placement" becomes essential for things like trees, rocks and general entity scatter.

  3. In the meantime, there is model pack 55 to use. ;)

  4. I noticed in the times of FPSC Classic, players weren't happy about the fact games freezes because user's computers were old. Will it be possible to create option in the main menu for graphics settings customization in compiled game?
    I also wonder about if you have plans to do FOV customization and subtitles expansion so text would automatically appears with audio that sounds at the moment.

  5. No plans for those, but time permitting they are good additions which will round off the product. Failing the above, settings can be controlled via an external text file and FOV controlled via scripting. Not sure about the text subtitles...not had that request before. Usually such features are scripted but if there are more requests like this I will look closer into it later this year.

  6. Thanks.
    Oh, I'm surfing Kickstarter page again and I stopped at the next line:
    "Level jumping system that retains the levels last state"
    For that matter, will it possible, for example, to let player kill or save 'NPC1' on level 'A' and on this basis, on level 'B' 'NPC1' will or will not appear?

  7. Disney's Cars 2 game uses Bullet Physics. That may not be impressive except for the fact this Disney is a major player no matter what they do. :)

    I don't have Borderlands 2 but I am really liking Borderlands. I am getting some great ideas about RPG. However, since I'm all by my lonesome in making my game I can't bite off more than I can chew. I haven't seen anything I need to do to modify the code any further; but that's something that is easier than the game development itself. Well, I keep talking about me, huh? OK, so over and out.

  8. Oh hey Lee. If you plan on tackling the A.I. system for FPSCR, i'd suggest you'd take ques from the original FEAR's A.i> system, as well as looking at other suggestions within this link:

    Please reply & thank you for your time.

  9. I'm very interested in seeing a new terrain editor.

  10. A.I will probably be the last major module I will tackle, with terrain, physics and the current occlusion and light mapping work taking precedence. This gives us lots of time to discuss it and play more FPS games! The terrain editor will be a simple affair, allowing you to carve out basic hills, valleys, pools then paint paths, surface details and most likely low-growing vegetation.