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
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.
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.
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 :)