Sunday 21 December 2014

MERRY CHRISTMAS FROM FPS CREATOR RELOADED

Just got this from our irrepressible artist Adam.  It would have been criminal not to share.  I particularly like the Christmas lights wrapped around the rocket launcher, reminding us all that a self-propelled cylinder of death is not just for Christmas, but for life.


And those small red tubes attached to Mr Bad Guy Number Three are not shotgun shells but party poppers - right kids!

Saturday 20 December 2014

ANNOUNCEMENT: V1.009 RELEASED - YAY!

It was an 11th hour release, but we made it (just). For all FPS Creator Reloaded pledgers, V1.009 is now available for download and contains a huge truck of features to keep you busy during the festive holiday.

Here is the forum link to the announcement: http://fpscrforum.thegamecreators.com/?m=forum_view&t=210304&b=1

The change log listing all the improvements: http://fpscreator.thegamecreators.com/changelog1_009.php

If you have any issues, use this thread as it's the one I will be haunting for a few days before Christmas Eve: http://fpscrforum.thegamecreators.com/?m=forum_view&t=210304&b=1

As long as your levels do not contain five hundred trees or five hundred characters, you should get a good stable and performing experience. Some store items and custom media will certainly misbehave, but we are going through them now making corrections as we go.

The plan in 2015 will be to polish this version, remove any rough edges and refine the look and feel.

My thanks to all the internal alpha testers, artists, coders and helpers who made V1.009 possible, and after my brief festive break, I plan to return with a fresh brain and fully charged batteries.


Until then, enjoy your mince pies and mulled wine, and I look forward to bringing you more code in 2015!

Friday 19 December 2014

Internet Goes Boom - My Final Proper Blog Of 2014

Sods law that on the day I am probably uploading the final V1.009 for testing, my entire Internet goes down. It started at 2AM this morning and has just come back now at 1:10PM. I am taking the opportunity to start the uploading to the internal team and writing my blog before it switches off again.


As this is the last day of 2014 as far as the TGC business is concerned, but not the last day for me as I oversee the release of V1.009. Nonetheless I thought it a good idea to give you some extra screenshots as an early Christmas present.


I think we all agree cactus do not grow that big, and a blight of a bug which would scale entities to incredible heights has now been fixed, all be it with the introduction of a flag which select artists will need to add to their FPE files. The reason is that if I created an automatic system to correct the scaling, other items in the store would be affected, and default stock media too.  I am happy to put this down to the early growing pains of the store and hopefully the pipeline for recommended geometry will be established as we move forward.


Whilst charging through a LOT of tasks and completing them, one of the fixes was to allow static trees to be correctly culled and lightmapped. The shot above shows a spray of random trees, and the shadows are baked for speed. Also the trunks and the leaves are consolidated to reduce draw calls which further improves performance.


Finally found the Light Ray Bug on my priority list, and fixed it in short order. You can now use this cool slider again, and it will now account for both real time and pre-baked geometry as part of the effect.  I am sure we could have a few more sliders to control the properties of this visual, but for now we will keep it simple until more urgent matters have been settled.

Keep your eye out on the forums for news of the V1.009 release to all FPS Creator Reloaded pledgers.  We are now testing it thoroughly to ensure a stable build and hopefully we can delivery a small downloadable present that will give you some joy over the Christmas holiday.  I wish you all a very happy time over the next two weeks, keep on creating and if there are no more blogs from me this year I will wish you the very best for the year ahead.  Roll on 2015!

Thursday 18 December 2014

A Full Day Of Testing And Tweaks

Short on blog, long on fixes. Anticipating a release REAL soon so spending each minute on mission. Here is a shot of the level I constructed as I tested one of everything with the current build.


As you can see, having a fun time with extreme sliders while I test the very corners of this version.


And here is something a little more playable, using a fence as a staircase by rotating it a little.  The extreme colouring are dynamic lights in MEDIUM shader. More tests and a build to do still, so onwards and upwards!

Wednesday 17 December 2014

The Day After the Eight Hours Before

Had planned to clock off at a normal time yesterday, but wanted to get the 'floating character' issue before the build. This was around 7PM. Eight hours later, just after 3AM I had finally located and fixed the floating character issue. It was all due to one entity writing into another entity silently and causing all manner of confusing things.  One of these days I am going to invent something that makes all these different debugging scenarios obsolete. My revenge on every bug I've fixed over the last three decades.

Just going through the motions of fixing critical issues and testing the software to ensure it's not messed up. The V1.009 release is fast approaching and we need something solid. Also applying full ambient occlusion baking to GTTR and ESCAPE levels to get the best visuals for the new build for this evening.

I have my weekly game of Pool this evening so no late night coding stint, but it's perhaps just as well given the last two nights!  This should pave the way for a full day of testing on Thursday to make sure every corner of the software has been verified as release proof.  I will freely admit the version will not handle VERY LARGE levels, and the solution will be some clever managing of in-memory assets but that's a post-V1.009 problem. Right now it's making sure the 'stock, store and some select custom media' plays nicely with the software.

Tuesday 16 December 2014

Meeting Day Today & New Civie

It was meeting day today so lots of talking and almost no coding, but as it was more a half-day meeting I did find time to collect together enough materials to delegate the Zombie Pack work and further my search for erroneous Reloaded crashes and freezes.



I also received this in the email today, which is our new civilian character standing alongside his lethal brethren.  I will be dabbling in character rig work over Christmas in preparation for more characters so it's nice to have got another character in the melting pot before the holidays begin.

It's just coming up to 7PM now and I have a few things I would like to get done, but the doggy needs a walkie (and so do I), so time to eat, walk and be merry then return in the evening for more coding calisthenics and perhaps a new build for all and sundry within the internal alpha testing camp.

Monday 15 December 2014

Lightmapper Gets Stronger

Creating a robust lightmapper which can handle large worlds is no easy task, and I can report that the bulk of this work is now done. What remains are hundreds of little bits and pieces that either need to be discarded or added to the whole in their correct place. My own tests are good and I can give it pretty much any level and it rarely gets above 600MB of system memory usage for typical levels the size of the Concrete Jungle. Today I have been mainly contending with a crash report that happens on one machine right at the end, after a successful LM process. A very illusive bug that can only be reproduced on one machine so it's a case of sending version after version until the cause is known.


Half way through the day I received this holiday screen shot, which cheered me up and spurred me on.  Notice the lightmapping, a nice touch ;)

Going to walk the dog and then return to make another build. I have already made one for the internal testers, but will continue bouncing versions to find this mystery crash and of course do a few more tasks that I can do before my early night. Big (and final) meeting day on Tuesday but hopefully we will be cutting it to half a day which free up the second half for more testing and coding.  Getting there :)

Saturday 13 December 2014

So Much For Far Cry

I had planned to spend my day chopping up a tree on the beach with a chainsaw, setting up a Mini-Mac with the new AGK 2 Player Service and playing a few solid hours of Far Cry (for research you understand).  My day did not really go to plan. The tree had been washed back into the sea from the previous nights wind and wave storm and my Far Cry evening turned into 'fixing the lightmapper some more' evening. I did however configure the Mini-Mac as required, so we should hopefully be able to offer the AGK Player to all AGK2 users who have an iOS device but don't have a Mac. More news on this from the regular AGK channels as I get told off when I talk about non-Reloaded stuff on a Reloaded blog :)


Could not help playing with static lights again too, so here is a shot I made using a green and red light, plus a white light in front of the building and some subtle sun based lighting.  I think the visual sliders are pretty close to offering a variety of lighting conditions now which should be good for a first release.  Truly running out of ideas for new visual values to add to the ever increasing bag of sliders. As a coder who prefers one good button over a page of them, I am now looking at the slider panel as a possible target for optimization and new layout paradigm (but not for now).

My lightmapping work this Saturday has been focused on a new technique I coded late on Friday which segments the whole world into grids, and lightmaps each section in turn. This way the overall load on the system memory remains low and the more sub-processes keep the progress bar busy and informative. Today was about tightening the scope of work for these sub-passes and ensuring no object was touched that was not absolutely needed. The result is pretty good and even the ESCAPE level does not exceed the 750MB system memory target I had in mind.  The true goal was to make it possible to lightmap LARGE levels such as confined spaces with lots of trees and geometry, covering the entire world, and I have yet to perform these tests as it's now gone 1AM (and it is my weekend off after all).  I can confirm the GTTR and ESCAPE levels lightmap without incident and I have also added a new lightmapping mode which skips the use of transparent textures during the collision object process which means F1 is now an even faster way to lightmap the scene before a more detailed process when you want to see the gaps in fences and holes in nets, e.t.c.

Anyhoo, back to my midnight session. I think a nice plate of beans and an episode of Time Team is in order.  Too late to drink or play games, but I think I can relax into the process of digging up bits of Britain's ancient secrets :)

Friday 12 December 2014

A Good But Long Day

By working on the new Concrete Jungle level, I have had to fortune to see what larger levels need to deal with in terms of system memory requirements and overall game speed. Considering where my aging PC system was six months ago, being able to run the level shown below at over 60 fps was nice to see.


As you can see, the lightmapping now extends to all the geometry, and the nice fog intensity provides a good atmospheric effect for what might be a sand swept landscape.  I am happy to imagine the performance gains once I finalize the occluder optimizations, re-introduce the distant quad system and wrangle more magic from the draw order scenario.  For right now my mission is stability which means chasing down any hard crashes.

The one I am tackling right now is the 3.3GB the terrain lightmapper alone can consume, but I am happy to report other gremlins have been fixed including the z flicker and the dreaded real-time vs pre-bake shadow disappearing act. Planning to continue working into the night now, and perhaps stop at midnight to make an internal build for the weekend.  Might also play an hour on Far Cry to conquer some more outposts for fun and profit.  It's likely I will spend some time over the weekend testing the build for stability analysis, but providing I can keep the system memory usage from going nuts, I think we will be good to go.

Thursday 11 December 2014

Lightmapping The New Level

Spent the day testing a new third party level, typical of the kind of games you will be able to make with Reloaded, in order to monitor and trace system memory usage.  Here is a shot taken from across a deep valley, and some nice lightmapped castle wall features. It's not in the game, but you can use F9 to fly over to the castle wall structure and run along the walkways at the top of the walls and into the tower rooms, very cool!


Been a pretty slow day today, with more analysis than actual fixes, but hopefully I can chalk a few off the list before I retire for the evening.  They say a picture is worth a thousand words, and I quite like the idea of letting the above shot speak for my blog post today.  Much nicer than me whittering on!

Wednesday 10 December 2014

A New Character

While I beaver away battling the Goliath's of lightmapping and system memory management, our artist has been hard at work producing a new character for the engine. I can finally reveal him with his texture suit on, and once we've finalized the skinning we will soon be able to see him running around in the game.


He's also possessed of all the animations needed for each weapon type, and also sports a detachable head for the customizable character work to be done in 2015.  Unlike the solider, we feel this character will allow more customizable options as a generic civilian can be modified a lot with textures, where as the soldier had a lot of bolt-on geometry that would have hindered a custom paint job. More news on this in 2015, but for the immediate use we will be testing him out as a single combined character with a few default weapon poses, and perhaps trialing him out in the multiplayer tests too.

Quite a lot of lightmapping and system memory work to do, and precious little time to do it in, so will get cracking and hopefully have a new build for the eager internal alpha testers for Thursday AM.

Tuesday 9 December 2014

Lightmapping Leaves The Building

On the advice of a member of the internal team, I decided to move the lightmapper to a separate external application in order to allow larger levels to be lightmapped and avoid any system memory shortfall or fragmentation for long game making sessions.


The result is a much more stable experience all round, and I am just going through the motions of testing to make sure nothing has broken. Also plan to have a new internal build for the testers this evening so I can double check the new way of lightmapping a scene works for all.

Also started to get some art from the new textured civilian character which is looking pretty sharp, and I hope to get an export soon to test the animations (which are fused with the ability to use ALL the weapon styles).  I have also identified some other system memory pockets that might allow some more savings, and getting the ESCAPE level to use less than 800MB of system memory would be a great place to be.

Hopefully I can bring better screenshots on Wednesday as it should be more a day of testing large levels than the grunt of adding and refining code.  My emphasis will be on stability, not losing my performance gains, having pre-bake and real time shadows for all scenarios and ensuring static and dynamic lights work across the board also. I think these are the principal priorities for V1.009 (amongst the other few hundred features that have been added since V1.008) :)

Monday 8 December 2014

Four Hundred And Eleven MegaBytes

This week is primarily focused on stability in anticipation of a V1.009 release, and I have returned to more system memory optimizations to ensure the engine does not crash due to insufficient wiggle room.  It took most of the day of painstaking investigation, but I managed to save over 411MB of system memory from squander, which is now available to the rest of the engine for more antics, including lightmapping and larger levels.


I was helped in my quest by a tool called VMMap which does a splendid job of illustrating where ALL the system memory is being spent.  Even things you have no control over are displayed, and from this information I was able to make some good savings.

Once such site of squander was the inclusion of an old DBP DLL called ConvMDL which was once used to load MDL files (from the old Quake days).  This innocuous DLL was eating 125MB of static memory until I excluded it from all further action in this project, along with support for 3DS, MD2 and MD3 :) Other savings (and performance boosts) were found in in the terrain visual and collision systems which together gobbled over 600MB (now more like 300MB). I dare say more savings can be found but right now it's about overall stability, and if the engine can now run on 32 bit machines without having to reset every five minutes then I will be a happy chappy.

I have noticed my 'super terrain texture' generator eating 80MB of system memory which in fact it's job is to produce a GPU video memory texture, so that's something to investigate tomorrow me thinks.  Hopefully as more system memory is rescued, the engine will gain more stability and longer term will allow MUCH larger levels to be created without worrying about the dreaded red screen of death.

It's not all plane sailing though, in making my massive cut backs, my pre-baked terrain shadows have gone walkabout so Tuesday will involve a hunt for these pesky shadows and to put them back!

Friday 5 December 2014

Picture Blog Day

Been a great week and some very necessary fixes, including some performance gains and cleaner memory code.  I promised screenshots today so here they are:

 Above is the old V1.007 screenshot from the ESCAPE level

 Here is the new V1.009 screenshot tweaked with lower values to match above lighting

Don't worry about the FPS, I am using the HIGHEST terrain shader as the older one used normal maps for MEDIUM but the latest build does not.  As you can see, the HUD weapon is more defined, we now have shadows, the bloom is not as intense and it's a little more colorful.


Here you can see a level we are working on to test a larger world with more action, to ensure that our drive for performance never ends and we maintain a course which allows many types of FPS game to be created.  Still more polish in the game play and smaller items, but the level is definitely taking shape nicely!

Currently spent most of the day getting the F9 live terrain editing to work again, as consolidating the terrain physics geometry had the nasty side effect that I could not quickly swap in a new piece of terrain floor, I had to build the whole combination meshes again.  Currently battling with retaining my performance gain with ensuring F9 functionality remains in tact.  This evening I plan to make a build but I have a few issues to resolve before then including the restoration of shadows from trees and other transparent entities, and once the build is done I plan to spent my Friday night with some fun multi-core physics experiments. The single core system current takes about 11% of the overall game spend, which is not too bad I think, and there is always an overhead from adding n-core solutions, but really there is only one way to know for sure, and that's to break out the code and see what works best!

I am also pleased to report that the FPSC legend Mr Blosser has kindly conceded to help with some additional art work, and the first target for us will be the building.


As you can see, he has already started with some improved specular and normal maps, now looking at texture seams and other geometry based concerns.  It will also be the entity to help trial a new OCCLUSIONMESH system which should allow the occluder to process this entire building with just a few polygons for the whole shape.

Probably need to eat at some point today, but I have my second wind now so will crack on and see if I can put on task properly to bed so I can think clearly about the very important weekend build.  Have a great weekend and thanks again for your patience - I hope my blogs are making it at least bearable (and dare I say it, educational) :)

Thursday 4 December 2014

Physics...Hmm

Got through half a day of bug fixes, then as I increased the terrain physics density to solve some related issues, I discovered the physics system taking a little longer to deal with the increased floor meshes that I suspected it should (basically 30% of the game time in a blank level with one dynamic crate).  It got me thinking that something was very wrong in there, and needed a look.

I am current at the stage of running profiles on it all, and also will be looking at activating the Bullet multi-threading stuff as well if it's easy to use, so I must apologize if my blog is a little short, I want to eat and then get right back into this physics question.  If I can find a major BOO-BOO in there, and reduce the workload to more like 2% which is all the physics system needs to do with one player capsule and one box, and THEN see about putting the whole lot on another core so when the physics work does pick-up there is no cost to the main thread and in theory increase overall FPS.

I will try to get some nice screen shots in Friday's blog so you can see what I am looking at, which is hopefully a large pile of fixed tasks and a more solid looking V1.009 for release before the Christmas break :)

Wednesday 3 December 2014

Knowing No Bounds

After my five hours of failure with a $250 memory checker, I tried the $700 trial of the tool Bounds Checker became and within a few minutes had some leaks and memory mismatches highlighted in a friendly little report after running my game engine.  I guess my previous experience with the tool helped me know which buttons to press. I have since spent the day eliminating these errors that had been flagged and now the bullet physics module does not leak memory any more (apart from one thingie which I will fix after tonight's build).


I have saw a few new feedback emails coming in from my previous AM build which included amazing flying floating enemies. Something for me to look for on Thursday :)  I think I am very close now to deciding which remaining A tasks need to go into V1.009 and how much time should be spent doing my own testing for stability and reliability in the game of the stock and store media.  I am now happy with the performance and memory handling, and many of the little features we needed are now in to some degree.  I really want to spend the next two days testing and only dealing with those things that stop the train. The littler nags will have to be put on a second list for post-V1.009, this way everyone can enjoy a great experience and not get tripped up by a last minute bout of silliness in the engine.

Pool night tonight, but after some serious Guinness drinking five days ago I am still not in the mood for lots of booze, so hopefully I can return for a few hours of late night testing and tweaking.  I'll show up, beat my enemies with a stick, then leave after a friendly pint.  The best laid plans hey....?

Tuesday 2 December 2014

AMD Cards Accepted

After spending a very 'long way around' day getting my dev kit set up on the new machine (which involved updating the Dark Basic Pro IDE to run on Windows 8.1 which in turn meant updating the BCG libraries to 2012), I finally was able to reproduce, find and fix the issue(s) causing problems for AMD users. 

One was a massive vertex buffer memory overrun which explains a few other issues we have been seeing, even for NVIDIA and INTEL users, plus some issues with texture locks during lightmapping and DarkAI using pointers that did not exist. I also have it in my head to spend the evening doing a full audit on the memory handling of the software. 

Back in the day I used to use something called NuMega Bounds Checker which was a little magic box that told you when memory block A stepped on memory block B's toes.  Very useful.  I priced it up earlier today and they want the princely sum of $700 - ouch!  I thus decided to hunt for something a little more in my price range and came up with one from SoftwareVerify called Memory Validator. I have downloaded the trial and will be spending a quiet evening with a glass of red wine, the trail demo of a much more reasonable $299 and the latest build to see if any more hidden memory leaks and overruns are creating havoc on systems I do not have direct access to. 

As the entire day was like this, you can imagine there are no screenshots of cool progress, but I can sneak you a shot of a new character we are developing which will allow you to have more generic people in your future levels:


We're going to drop the mohecan for now, but it might make a re-appearance when you are least expecting it. Don't worry about the shiny mat finish to the guy, he does not have a texture yet and we've decided to reduce his brain size as well ;)

Other cool screenshot that came in today, but I cannot show it, so you will just have to hold your breath for that one, but it IS good (Escape 2 anyone?).

Monday 1 December 2014

One More Week

If some of you had been waiting for the V1.009 release to happen in November, you've probably figured out by now that it's not yet available. Due to the quantity and thoroughness of the alpha testers work we've decided to sit on it a while longer to make sure it's solid before we release.  There are still some issues with lightmapping, memory, disappearing objects, little glitches, e.t.c and it is only fair you get a good experience after the long wait. My hope is to get all of these issues resolved this week, and see where we are on Friday, and see if a version we have is worthy of a public build.


The good news is that each time I work on the lightmapper it gets better, which I think you will appreciate when you start using it.  I've also fixed a few more multi-material issues so now the engine can support them a little further (as it seems artists like them).

My plan this evening is to swap in an AMD card and hopefully reproduce an issue that has been reported that MAY relate to card type, but at first glance I don't see how a card swap could affect in-game object visibility. I will know by midnight :)

At the risk of venturing off the Reloaded Reservation (again), I wanted to advertise the newsletter that came out today:

http://www.thegamecreators.com/pages/newsletters/newsletter_issue_142.html

And also a quick reminder that the 33% discount on App Game Kit 2 (AGK2) ends on Tuesday, so if it's part of your wish list you might want to make the purchase now and get started on the path of the code warrior.  For those seeking a higher power, stay tuned for more Reloaded posts about bugs squashed and features improved during the week.   My calender is pretty free of meetings and events so it's code sailing from here on in, and we'll get V1.009 out to you as soon as the alpha testers give us the gentle nod.