Tuesday, 15 April 2014

BETA Launch Day

Work

After many weeks tweaking and testing, we released the new 1.006 beta onto the unsuspecting public, and the feedback so far is very good. We did a good job testing for stability and the performance improvements are experienced by almost everyone. Those still on HIGHEST settings will see the smallest benefit as we focused on LOWEST for the lower end systems.


Here is a shot of something I was messing with, getting the sky, fog and land color tint to match to create a different feel and style even though it's just plane old LUSH style.

I was planning dive straight into the remaining features of the software, but it was brought to my attention that a better strategy was to stick around the forums and assist in the early feedback of the BETA and help out where I can. I have decided this is a good policy and will continue this until Thursday PM. Friday through Monday is a bank holiday here in the UK, which means my team downs tools and runs for the hills for a much needed recharge.  I also plan to see a few castles over the brief holiday, but will be back every evening to play FALLOUT3 and a few other games I have to catch up with, and of course checking into the forums and maybe doing some more tweaks.

All in all, the teams dedication to focusing on core issues and then PLENTY of testing has produced a solid version which I am happy to release today, and if we spend the next six weeks with the same laser sharp attitude to completing this product in a timely fashion, we'll be in a great place to then add all the cool features you have been voting for on the Vote Board.  Once again thanks to all our pledgers for making this software possible, and we hope you've enjoyed the journey so far.

Monday, 14 April 2014

Almost Last Day Of Testing

Work

I get the impression that the version we are testing is also the version the 'everyone else' will be getting and I must say it's holding up to tests. Over 50 sequential clicks at Test Game button without crashing, no memory issues, faster performance across the board, many small tweak conveniently squashed, and who know what other small benefits. I think our trio did quite well this last few weeks, and a good formula for the future.  

I 'could' list all the small tweaks, but as half of them where fixes for things that formerly worked, it's not going to make much sense as an isolated list.  I can report general improvements across the board, and certainly some improvements in performance when you set the shaders to LOWEST. 

I am most pleased with the stability and memory activity of the software however, which allows extremely prolonged sessions without worrying about memory fragmentation. Of course, plenty of more opportunities for optimization but as far as final builds go, I think this one is pretty special. The internal and core teams will be testing this for some of Tuesday AM and with a little luck we can release to the whole pledged world very soon after that. Wish I could provide some nice screenshots for you, but truth be told, the community are producing some awesome shots already I dare not attempt to challenge their authority in this matter.  

Beyond the beta release, we make our plans to improve the next 'most needed' feature which is scripting and AI. We have a little of both right now, but we want to inject super-powers into both systems and get the game play as stellar as possible for FPSC Reloaded. In additional to the myriad of minor tweaks and fixes, our big feature for the next release will be A.I so place your characters in your levels now in anticipation of the hideously smart intelligence we will bestow on them in the next major release. 

The whole team are pretty buzzed with the current beta and we hope you enjoy it too. If you have any comments on the version, you know where to post it.  Until the next blog post, enjoy!

Friday, 11 April 2014

Thank Almighty Bob It's Friday

Work

Another good day, filled with a notable success. Not only have more fine tweaks gone in, but the best news of the day is that we managed to locate and plug a 40MB leak, which happened each time you click TEST GAME.  It basically means your editing sessions got substantially longer!


As the monsters lurking inside the engine begin to get thinned out, we start to catch a glimpse of the game creator we all want.  I am now assigning the whole team the challenge of locating and eradicating any remaining memory leaks over a double of Kb.  Anything smaller will not harm you, but we will eventually get to them all, so we are focusing on the ones that cause your system memory to run out.

The internal plan is to release something next week, but this is not confirmed and it all depends on the results of the larger internal test we are conducting on the new version.  We realize you have been very patient, and so we want to give you something worthwhile (and hopefully worth the wait).

My trilogy of coders are getting 'very' familiar with the whole engine, from the IDE, the DBP code through to the C++ modules that make it fast. We're almost at the point where anyone can jump in and code any part, which makes for a devastating core team on Reloaded.  I am personally looking forward to the post BETA development when we get to have fun with LUA and AI, but focus will remain on this version and the mission is to ensure it's a solid and reliable version you can continue to create your levels with while we work on the logic side of things for you.

Thursday, 10 April 2014

Thursday Triumphs

Work

Another good day so far of testing and tweaking, mostly playing detective with some rogue memory leaks. The biggest and best news from me is that I managed to reduce the start-up system memory usage by 190MB bringing it down to just 430MB with full terrain system.  We also made some good strides on the store and also some key crash fixes which we found during extensive testing.  Cannot do a big blog as I need to get right back in it. I am currently stepping through the test game in/out process to find out why it can leak anything from 500Kb to 65MB after a single test game session.  This work has already yielded a fix which prevents anything greater than 4MB from being allocated during the test game set-up (at least the DIM stuff), and is just a case of tracking as much of this stuff as possible in the time remaining. All in all, progress goes well!

Wednesday, 9 April 2014

Wednesday Test and Tweak Day

Work

With much performance improvements under our belt, we are at a phase now where testing takes front seat, which means making random levels until something bad happens.


This is something I ended up with while trying to trip up the engine, and thought I would take a holiday snap while I was standing there thinking.  

Some great fixes today, including a physics fix, the player no longer hurts performance after a death and restart, other small improvements related to performance and final visuals.  You can once again take snapshots with F10 and it seems to run very well on a variety of low end systems now. Phew!

On the IDE side, we have been working hard on getting the Store download system complete, so you can sync your purchased assets with the local library and start using Store based artwork.  We have pretty much re-written the store front-end and have tried to make the client side back end as seamless as possible. Right now you just click DOWNLOAD from the FILE menu, press another button and wait. Minutes later you have all your store items on your computer :)  We're putting the finishing touches to that this week.

Of all our internal alpha testers reported in so far on the latest version, only one had any remaining issues with stutter (or sluggish frames) and I am awaiting a better description or hopefully a video showing the issue.  It does appear though that we have crossed over into a sweet spot and the trick now is to keep that intact while expanding the software further.

Plan for Thursday and Friday is test like it's going out of fashion. Only small tweaks now, no feature additions and plenty of paranoia as we click every button and try every combination to seek out those pesky show stoppers.

Tuesday, 8 April 2014

Sat Down For 2, Stayed for 5

Work

Meeting day today so not much time left for serious coding. Made our shortlist for what goes into the BETA and what goes into version after that.  Team working well and already discovered a 19MB leak in the GPU memory caused by real time render targets not being freed.  Added code so just needs testing Wednesday to see if it worked.

I spent my 5 hours preparing the version for the build. Stutter fix went in, that was five minutes, then spent an hour on the aforementioned GPU leak fix but then spent over 3 hours on getting the characters to skip rendering into the shadow system when using cheap shadows (as they only project one pixel which is not much use).  Alas after many frustrating hours, no matter what code I disable or tweak, the characters would NOT go away. Decided to change tracks and return to this one.

I am planning to do some final tests, make a new demo and release to the internal alpha testers in the hopes I have (a) not broken anything and (b) made things a little better and less stuttery for some testers.  Here we go...

Monday, 7 April 2014

timeGetTime Revealed

Work

Even though I had no power in the house until late evening, I did have the foresight to charge my mobile and my Ultrabook, plus top up my UPS to get some extra hours. Using these temporary stores of electrons, I proceeded to confirm the theory that timeGetTime() is broken. And it was!

It seems you are NOT GUARANTEED to get 1ms granularity when you call timeGetTime() and trying to get this information from the official documentation was like pulling teeth. After much ado, I discovered the granularity can be as rough as 10-15ms which means your physics would essentially freeze for 15ms before stepping to the next count. Insanity I know!  Anyhoo, long story short, I replaced this with QueryPerformanceCounter() and QueryPerformanceFrequency() and presto, I got my fine grain timer working in the microsecond range (i.e. 1 millionths of a second).  As soon as I added this, all stuttering I was able to produce on a low end laptop and a high end gaming rig completely disappeared. 


For kicks, I had also charged the Windows Surface Tablet (so I could surf the net during my emergency power session) and put the latest version of the demo on it, dialed out some (well most) of the features and was able to get a full screen 1024x768 scene running at 33 fps, complete with rendered animation and all the back-end.  Bear in mind this has a GPU score of just 112 and I managed to get a frame rate that allowed me to run around smoothly. Shocking I know, especially when you consider my previous run only got as far as 2 fps.  Naturally, I would have to do a SERIOUS amount of hacking and slashing to get Reloaded to run on such a device, but it shows the feat is 'possible'. Whether this is something to community wants to see is another matter, and we have already got early grumblings from at least one community members that 'enough is enough on performance' and that we should be adding features now.  I am pretty sure this is a minority view, and perhaps highlights one of the difficulties of coding in a democracy :)

Despite no power and little team comms, I achieved a substantial fix today making Monday a pretty good day.  Also getting some nice reports from the internal alpha testers so all the signs are good for a great next beta.  Have a meeting Tuesday morning so time for an early night (as soon as these emails are dealt with).