There is some comfort that this version is not going into a retail box, being duplicated 10,000 times or going on stage at E3. It's also comforting that the intended audience are going help and feedback back, rather than criticize and condemn thanks to the pledge system of development.
Had a good day today of performance hunting, and found many islands of slow which I took great pleasure in sinking. Everything from shadows, post processing, too many duplicated object rendering, redundant rendering and small improvements in code layout all contributed to the FPS creeping up from what we had a few days ago.
As you can see above, I can get 200fps on an empty terrain level. Also bear in mind this was an old shot and I have made improvements since. Of course you will not need such a frame rate but it was necessary to get accurate measurements of each module in isolation which means switching everything off.
Graphic Options Panel
Thanks to the options panel, each user of the beta can also tweak which parts of the engine should be active, and in some cases the degree of support is provided such as the Reflection mode which when set to zero completely removes the reflection from the water. When set to 1-50 the sky is reflected but no objects or terrain. When set to 51-100 all reflection activity resumes. As we proceed, I will add more fidelity to these graphic option modes so that you can tailor the engine experience to suit your hardware, and ultimately your intended audience.
A timely request from the blog comments saw the introduction of a new flag in SETUP.INI file which allows the engine to boot the game in VSYNC mode ON or OFF. This means you can cap your frame rate to the refresh rate of your graphics card for super smooth zero-tear screen rendering. By default I might keep this off for the purposes of the beta so we can see how high some users will get with their performance metrics.
Keeping The Sky
I also allowed the sky box to remain, even if the camera distance was pulled in to an extreme degree. I am not sure how to solve the issue of FOG vs SKY yet, as the two rather clash but I will let the beta process resolve that one :)
Alpha Users Beavering Away
Another fine shot from our sound guy, this time deep in ice mountain territory and close to the site of a crashed saucer.
It is my fond hope that I can do justice inside the engine to the ideas and imagination you guys are about to unleash onto the world with Reloaded. It's not just about getting performance, but getting it in the kind of situations your game will find itself. Imagine the scene above as the site from which you will sniper the guards patrolling the complex. Just imagine how much AI the engine will need to govern to show you the 20-30 enemies you have secreted around the base. I have my work cut out, and why I think the employment of LUA (or other super fast script) and DarkAI over a multi-core solution is vital to create the kind of scenarios your games will eventually demand.
For the remaining few hours, I am going to re-align the AI with the various frame rates the engine can produce and get things like movement speeds, animation speeds and AI work-load balanced out. This should then allow the character behaviors to seem more normal and produce a good foundation for moving forward with AI. Tuesday will see the cleaning up of the beta files, production of an installer and testing on various Windows versions to ensure a fresh install works out of the box.
On Wednesday I have a meeting to look at the beta version from Tuesday evening so there will not be much happening on that day except talking and recovering from talking. Just enough time and energy to upload the file to the server and batten down the hatches for a huge amount of bandwidth sucking activity come Thursday.
We don't have a bug base set-up as I could not find an appropriate one for the beta, but you can use the Reloaded Forum to ask questions about how to do things, but specific bug reports should be sent to firstname.lastname@example.org until further notice (that is, until we have a more formal bug reporting system in place). Avoid sending them to me directly as I will be putting filters in place so that all reports to me have been confirmed by at least two people, and a full reproducible report creating so I can focus on fixes rather than attempting to reproduce bugs.