Friday, 30 May 2014

Potpourri Of Performance Perks

A mixed bag today, with both key fixes and more performance revelations. Instead of a funny video today, I will blast through the updates we did today. It is Friday after all, and I have tools to pack for my return to the world of interior decorating.  Until next week, here is the task list of done items:

In addition to the new reflection slider modes which switch the resolution control to the SETUP.INI, replacing it with controlling the 'size' of entities that get reflected (88 is a good value in the next update), we have added the extra mode which when the slider is at zero, the water plane is entirely removed from the rendering, providing a few more precious FPS points.  The water generation system which calculates the alpha channel when water is near the shore now skips if the water was not changed since the previous test session. Increased the speed of the Desert terrain choice by converting the textures to use DXT5 compression. Ravey fixed a huge bug which means characters can no longer 'walk through walls', which you will agree removes a significant advantage from the enemy.  Pressing F9 in Standalone Game has now been disabled so you cannot play someones game and cheat by carving out your own path through the level. Gun sounds tweaked for more authentic audio. Adjusted the two-compounds level with better defaults which means you will get a faster level by default, and restored the bloom level so you get a nicer looking scene by default also.

I ran some tests to see if batching would improve performance, and although there are signs that this might work for some older cards and chips, on my machine (9600 GT) my three tests to batch 4500 polygon buildings, 500 poly rocks and 32 poly crates all resulted in zero performance gain. Seems my card was happy with 5 draw calls of 100 polys or 1 draw call of 500 poly?!  We have another theory which would be to build the batch in a dynamic vertex buffer on the fly (after frustum culling) but given the slight performance savings shown in early tests (when you factor in additional VB locks per texture/shader) I decided to look elsewhere for a performance boost.

And I found it.  Seems that my terrain shader is still very heavy on the fragment shader usage, and when I switched it for a single return float4(1,1,1,1) I went from 170 fps to over 550 fps.  I then postulated an idea where I could split the shader usage between the current one at close range and an entirely different one when in the distance. This should yield me upwards of 5-10 fps gain under the 60 fps mark, which would be huge. The same is likely true of the entities as well, so this will be my task on Tuesday. Monday is an all day strategy meeting so no coding from me for the most part.

We also eliminated the huge delay when calculating AI obstacles which means no more EIGHT second delay each time you click Test Level. Fixed a crash caused when painting grass at the extreme limit of the level. When the player re-spawns the player orientation is restored to the correct angle and the gun will be reset if you were in mid-fire when you died.

We're all still on a mission to gain more and more performance before we release another update, and so far we have gone from mid-20's to low-50's so we're only a few hops to the golden 60 fps score we're all after.  More speed to be gained from grass, terrain and entity rendering, faster Test Level preparation as we skip redundant generations and closing the book on some silly bugs still in there and we'll have a pretty strong release to make all your competition entries that little bit faster. I also have a handful of VERY large levels from community members, and will be ensuring the engine can load and handle them before handing back the levels.

Until next week, have a good weekend and try to get outside from time to time. It was nice and sunny today so my hope is the trend will continue over the next two days so I can catch some rays.

Thursday, 29 May 2014

More Performance More Fun

We've all created performance improvements today!! Dave improved the AI obstacle generation times. Simon improved grass rendering time and I have improved reflection rendering performance too. We all did good.  Short blog today as I am working on static batching and want to keep on it for a while longer.  Here is a YouTube video I found very funny and made me smile, especially given the project we have embarked on:


Until Friday when I hope to report a few more details in perhaps a longer blog for you. Bottom line is we have some good performance boosts for everyone!

Wednesday, 28 May 2014

First Win Goes To Ravey

As part of our renewed quest for even more performance, we have been drawing our plans as you will have read in previous blogs. While I continued researching how the engine scene was being built thanks to NSIGHT and Simon was busy getting confused with his weed and grass issues, Ravey the third technologist in our mighty trio made a tweak to the DarkAI subsystem that did not adversely affect the AI system but virtually eliminated the cost of calling what was the most expensive function to call.  The humble result for me personally is that I went from 25 fps to 37 fps and my AI UPDATE call went from 25% of all cycles to less than 3% (and sometimes 0%).

The frame rate difference might be slight right now, but the smoothness of the game play is very noticeable. Furthermore when I switched off reflections, my frame rate jumped over 60 fps (on a 9600 GT card) which is just where I wanted it to be.  My mission, partly thanks to NSIGHT, will be to target the reflection render system to ensure it only works when it needs to, and not in the scene above where it is quite clear there is no water to reflect anything.

Other discoveries included the conclusion that static batching, large object draw order and occlusion will all play a part in speeding up the level, and for the engine as a whole.  These are planned for later in the week.

In other news, we have fixed the shader issue so HIGH and MEDIUM behave themselves and resemble their HIGHEST and LOWEST counterparts. Water is now fogged properly so it emerges from the mist just like everything else, and we are on the verge of halving the number of grass objects being rendered which will help performance even more.

I continue to haunt the forum this week to ensure I try to answer all our V1.007 concerns, and don't forget there is a Live Interview next week planned which will include some of your worthy questions you have posted last week. It will be on the subject of Indie Developers, but I might sneak some mentions of Reloaded while I am in the spotlight ;)  Great to hear than V1.007 is being received well and we hope to improve on this version without too much delay, so watch this space for more news soon!

Tuesday, 27 May 2014

Recharged And Ready (And Reloaded)

Spent a few days up a ladder painting stuff, so now back on the ground and working once more as a lowly programmer. The V1.007 release was launched yesterday over the bank holiday and some early feedback suggests we need to focus once more on performance. In adding AI and some other improvements, we now need to return to the engine and ask for more performance. A lot more performance please.

To that end I have dug out my version of NSIGHT which is a tool which helps me analyse frames of the game to find out what is being drawn and in what order, and my findings are pretty revealing. Lots of very small and distant objects are being rendered, there is no batching system currently active so there are huge amounts of individual draw calls that could be combined, there is some really HEAVY duty work happening for reflection rendering, even when there is no water visible and the amount of rendering taking place seems a LOT too much for what is effectively a cosmetic touch. It should NOT affect the core game play speed and the enjoyment of the main purpose of the level. Finally there are lots of opportunities to extend the occlusion system and hide even more stuff when you look closer at the two-compounds level.  Going to spend the next day or so continuing to play with the features of NSIGHT and learn even more about the current engine performance and workload, and then I will probably launch into doing some geometry batching work around Wednesday. I will also be keeping touch with the feedback forum on V1.007 so I can stat tuned in to what the community are finding in this new version.

We are also starting some work on speeding up the A.I system, starting with some deep drilling investigation of the AI UPDATE command which seems to be causing most of the slowdown. We will also be casting an eye over the grass system as we have identified some possible improvements there!

Before I sign off, here is a cool shot from our Zombie Clown collection, soon to be available from the Reloaded Store. They look pretty calm now, but when you add them in a dark room with the player, armed with nothing but good intentions, get ready for a freight!

It is not recommended you design your competition entry around Zombies from this pack as they will not be ready in time for you to work into your creations. Unless you have your own Zombies and are good at scripting, best to leave these specimens for another compo!

Friday, 23 May 2014

Duck Shooting Day

Been another very productive day which has hopefully concluded in a very solid build we can put out to our alpha testers later tonight.  I gave myself the luxury of doing 3 hours testing on this build, and with the fixes which stop the characters jitterbugging, running off for no good reason and generally buzzing about in strange zig-zags, we now have a battle field worthy of an FPS gamer.

Here is the last level I created, to test the new scripting for defensive characters. Placing about ten guys behind sand bags and told them to duck down, the pop up and fire, then duck back down again when they felt it appropriate, then gave them player some sand blocks and some weaponry, and the stage was set. Giving him 5000 health points helped too!

Here are the tweaks done between 9AM and 5PM from the fabulous bejewelled trinity of Reloaded coders:

  • Crash with MEMBLOCK on new optimized grass generation
  • Slow AI with new DarkAI tweaks
  • When you load a HUGE level which WILL crash the SYSTEM MEMORY (DVADER's level), it crashes with a message text 'STATIC' and then load the wrong level back in. Ensure the correct level is loaded (the one just before Test Level was clicked) and make sure the static text message is removed/improved
  • Replated to the above, turns out an old level loaded into new engine, then saved, will set animspeed to zero, which in turn creates CLONE OBJECTs for all entities like this as the parent object animspeed is 100, even if the object does not animate at all. CLONE eats memory.
  • The CLEAR sky still has a gap seam when scrolling, so close this by creating new alpha channel
  • WHen health is recharging, use a yellow atriobe effect on the health panel until charging stops
  • Each time Test Level is clicked, the user is waiting upto NINE SECONDS for the veg process. See if we can skip, optimize this if there is no grass/no change in grass as this will immediately improve the test level experience
  • Enemies run away less
  • Improve magnum and colt fire sounds
  • Look at strange running behaviour in Ricks'video at time stamp 5:25 and ensure the character does not run away from player for 20 seconds, and stop it
  • Dave to look at why the AI BOT jitters between two positionsraidly as the cus of the visual angle change jitter we see up close AND in distance
  • Need to add code to calm this artifact of the AI BOT/VIS OBJ changing angle too rapidly!
  • Rick - Can still push into enemy body - new code to prevent player pushing into any character
  • Change FLINCH reaction so its BACKWARD for hit from front, and FORWARD when hit from back
  • Rick V1.008 - Check that the sniper at VERY CLOSE RANGE can take out characters in ONE SHOT (test!!)
  • V1.007 hide the crosshair for the rifle to reflect BAD accuracy
  • Prevent player from running within 60 units of ANY character - use character controller velocity
  • Played two compounds, then loaded get to river and got the corrupt fpm issue
  • Stand in the building with the key and shoot the AI's through the window, sometimes they start to glitch when trying to get to you
  • Where were the running enemies going?
  • We have in editor properties - view cone angle and always active - tie in entity property values
  • When save standalone the sky is not retained

It's been a LONG week it feels, but we have produced a playable level that is starting to feel like a 'proper' game, with character who evade, flank, run away when hurt, exhibit some group behavior and strike a balance of difficulty when combating against the player.  It is encouraging that we achieved this with a single enemy weapon, which means when we add more weapon types the game play dynamics will explode into many possibilities!

Going to take the weekend to chill out back in my home town of Wigan, and do some light property renovation to unwind. They say a change is as good as a rest and wallpapering is pretty far removed from coding a 3D engine :)  I wish everyone in the UK a great bank holiday Monday, and for the rest of the planet have a super weekend and if it's hot, remember to celebrate good weather with a beer or three!

NOTE: I had 15 minutes spare so I had a fiddle about with some store content and fog settings, and wanted to share before I REALLY switch off my PC for the week.

One thing I like about Reloaded already is the number of styles you can create with just the graphics slider panel. It would be tempting to go the whole hog and offer more radical style choices like cartoon shading (like in borderlands) or monochrome theme (Sin City).  This way the same game assets would be transformed based on the post process and shader adjustments.  Anyhoo, a thought for another day...

Thursday, 22 May 2014

More Fixes, More Pictures

Want to have a look at some state of the art sound recording equipment? This is our ambient sound recording with suitable sound proofing to improve some of the sounds inside Reloaded.  Believe it or not, five pillows does pretty much the same job as a sound studio device costing thousands.  I am keen to learn what you think of our new sounds in V1.007 when it is released real soon to all pledgers.

The latest version is pretty cool now, with all sorts of little goodies like a flashing heartbeat death haze when you are low on health, better flinching of characters when you shoot them, better jump heights, improved rocks and textures, fixed terrain shader to reflect true texture assignments, and added a new detail map layer to retain the look and feel of the pre-fixed version of the shader, some more character choices (same characters but pre-assigned defense and peek logic for quicker level creation) and no longer shows the empty sky bank folders as selectable to avoid a monster crash.

We are almost ready to start on the Zombie animations and scripts next week, but here is a sneak peek if you have not read the latest Reloaded newsletter.  More information can be found there!

For right now, just waiting for one last SVN check in and then I can build, test, installer, upload and then walk and eat and chill.  Been a long week, and it's not over just yet ;)

Wednesday, 21 May 2014

A Little Challenge For Ya

Usual drill, piles and piles of bug fixes.  More interesting though are some pictures I made, knocking up literally minutes. The power of Reloaded :)

Short blog today as all time was gobbled up with some really annoying bugs that would not fix. Getting the characters to stop 'jiggling' has beat me today, so I will resume on Thursday with renewed vigor!

Here is a challenge for my readers. Check out this shot:

It is a shot of an enclosed cage, made of single fence pieces. Each piece creates a 2D polygon obstacle shape. My challenge is for someone to create some code which can take a list of 2D polygon shapes such as the above, and figure out which ones intersect, and then create a new larger 2D polygon shape that represents the obstacle, and then indicate which of the old polygon shapes I can remove from the list in place of the new larger one. Effectively doing a "CSG addition" on the overlapping obstacles. This will produce a very efficient obstacle map and speed up the AI system.  The key is to eliminate the lines of the polygons inside the final shape so you ONLY get the outline of significance. Any takers?

Tuesday, 20 May 2014

Tonne Of Tweaks Tuesday

Phew, what a day of tweaks we had today!  Just lots and lots (and lots) of very little fixes that iron out those little creases that can spoil a good thing. I am sure there are twenty times more small tweaks still needed, but it's good to see a lot of 'finished items' in the old spreadsheet.  Before we get into what was fixed, here is a shot I did last night (literally):

As you can see I was very busy testing the UZI, and might have got carried away a little.  Looking forward to adding ragdoll soon so they will stop experiencing the condition Rick has termed 'instant rigamortis'.

Looking at the sheet of fixes, here is a list dump for you. Keeping my blog short today as not my what you might call spare time for non-coding stuff. Anyhoo, if you ever wanted what your life might be like when you become a coder, here is a typical day:

  • Read through forum thread recommended by Rick, and watch video emailed to me reg. A.I & Videos
  • Add in rotation and scale commands so community can control their entities
  • Fix system so the entity picker will choose the HIGHEST entity over the cursor (items on tables, e.t.c.)
  • When using INSIDE edit mode, disable AUTOFLATTEN and also ensure AUTOFLATTEN reset on new selec.
  • When in INSIDE edit mode, and raise terrain, keep the buildings where they are so can fill inside with terrain
  • Find and fix the error prompt related to the A.I
  • Integrate use of CANTAKEWEAPON flag, QUANTITY to pickup, rate of fire, view cone angle, and remove START and DESTROY and SHOOT fields as they are redundant now
  • When jump into the water with no health, you do not die and should (quite quickly)
  • Add TRANSPARENCY=2 to all FPE of the fence to resolve the semi-transparency issue
  • The skyscroll texture effect for ROLFY is wrong (alpha shown at edges compared to V1.006) - see thread
  • Waypoints seems to have broken due to the emergency stop while running code, look into it
  • When character completely facing away from player, LookAtPlayer() gun point code should switch off/reset
  • When die, reset gun point rotation
  • ai still shooting backwards or at odd angles at times when running away from me
  • Put water in middle of map and then the player over water, but get black screen and drown (no start marker)
  • Use the always active flag to ensure characters cannot be frozen at distance
  • The shader settings HIGHEST is not being remembered when you leave and come back Test Level
  • Remove the line from the sky in  the two compounds level
  • "ViewRange" referred to in the AI scripts is hard coded, move it to the entity properties panel
  • Idle and twitching anims for AI scripts
  • The last soldier near the barrels then make him stood up AI
  • Rick: Add 2 check points (one at gate and one where battle starts)
  • RIck: Improve sandbag area so enemies can duck better
  • Rick: Close off around the gate area so player cannot just run over the hill
  • Rick: Blood splat takes too long to fade off (frame or time related?)
  • Simon: Make magnum half decent. Its less powerful than the colt!
  • Rick corden off the end area so the player cannot scope the enemies without entering a fight
  • Community has asked for ROTATION and SCALE commands for LUA commands, so they can make their animating animals and things move, animation and face the direction they are going
  • Rick - If you move close up to an enemy you find they are not pointing directly at you. Can this be changed and make them centre in on the player? eg the eyes and gun should look directly at the player, not to the left of the player;
  • Levels show the wrong terrain style when loaded. For this to happen you have to add a new terrain pack (eg the new desert pack). Then load a level and you will see it's using the wrong terrain.
  • When you press SPACE, you can jump out of the water, the space should not work when in water
  • You cannot RUN FAST backwards - IN FACT YOU CANNOT RUN BACKWARDS (SHIFT does nothing)
  • Make tweaks to level, including a building with the KEY and some furniture inside the building room

Another internal test is due for Wednesday so hopefully we can get on with much more of the same. Looking (and playing) good now!

Monday, 19 May 2014

Great A.I Today

For the first time since we started re-writing the A.I we can report that the fun factor has jumped up markedly. By adding in some new code which allows the characters to pivot their guns by up to 75 degrees in each direction, and removing the delays which allowed the characters to stop, aim and fire, the whole combat areas has got a lot more dangerous!  I can no longer finish the sample level with a single life any more, which means you are no longer running around picking them off.  They are picking you off!

As part of my work to get the gun to point in the right direction, I had to fiddle with the character's spine for a while until I got him just so. During this process my enemy struck some very funny postures.

I am sure there are some games that might make use of these positions, but for the moment we will put them on the 'silly pile' and carry on making a serious combat AI system for the masses.

Going to make an internal build now, and then see if the weather will permit a short walk before feeding time.  If I had a choice of dates to call signature days, then this would be one, entitled; 'The Day The AI Did Not Look Stupid'. I have thus commemorated this day by making the character look stupid ;)

Friday, 16 May 2014

A Fast Week

It feels like only six days ago since I had this Friday feeling. Just finished uploading BUILD-G to the alpha testers via Rick (should be up there later for the internal testing crew).  This one makes significant strides in improving AI performance, though we obviously still need to keep working on the nuances. A previous build went out but a BIN file error created some early trouble, so hopefully the new one will resolve all.

This is the fat zombie model using the latest shader tweaks and corrected normal calculations. As you can see from the exaggerated specular, the little details are now picked up such as the base relief effect of the missing chunks of skin and the roundness of the flabby nipple.  Naturally the low polygon nature of the model can be detected around the edges but in motion, at night, running after a player who's just run out of ammo, and making horrific noises will certainly fit the bill in any horror game!

Here is the same shader with the existing character model. You can see we have improved the little details such as the folds in the pants, veins in the hand and ripples in the sleeves, plus you might spot the self-shadowing effect which now uses a PCF technique employing 25 texture look-ups per pixel at the closer ranges, so hopefully this increases the visual fidelity for those hero-shot screen grabs.

While internal testing commences in earnest over the weekend I will be spending some time away from the keyboard digging holes in the garden and getting some fresh air in my lungs.  On Monday, fully recharged, we run the final mile to get this version into shape for a public reveal.  I might however spend a few hours here and there playing with the soldier script to see if I can make him more aggressive and menacing. I have permission from Dave to screw up his carefully balanced character logic ;)

Thursday, 15 May 2014

Weirdo Lee Does Like Kettles

It's been a day of testing our internal build and it has gone well. We found three show stoppers, all fixed and the latest build (BUILD D) is almost ready for our internal alpha testers.  It creates, loads, saves, plays and edits fine and although I am sure there are still gremlins in there, it's solid and worthy of a wider field test.

Speaking of fields, here is my field of organic Kettles. Don't ask me why I created it, and why I shared it. I just wanted to make lots of kettles.

I've currently been struggling with the issue of why one of the models we are working on for the new Zombie Pack is exhibiting strange tangent and bi-normal vectors. After much ado, it is not the normal map or the base geometry which leaves the generated TN and BN vectors.  Going to go back to school now and learn all about them, and the various methods used to generate from a model that did not start with them, and how an arbitrary normal map can take advantage of them to create gorgeous art!  

One day I will succeed in creating the ultimate Kettle entity, employing state of the art shaders and textures, and most importantly, able to brew a nice cuppa.  Along the way we might augment it a little to make it roll about the landscape shooting steam at passers by.  When we say you can create anything your imagination can conceive, we mean it literally!

For more information on this insane project, visit Reloaded at: as it occurs to me in all these blogs I don't mention the site at all ;)

Wednesday, 14 May 2014

Power Play & Zombie Heros

For me it's been a day of two halves, with half of it without power.  The good news is that I now have a switch box next to the consumer unit which when activated will draw power from an outside diesel generator when the main grid decides I've had too much juice. Every day not coding is a crime in of itself, and with such power technology available it made sense that I was prepared for those days.  I have now rescued about 10 days from each year where I can carry on coding regardless.

While I was battling with a toggling power supply, the team set to work making the A.I smarter, faster and more enjoyable.  It was not clear what value getting Simon to create a sample level for the product would yield as we had great content coming from the community and we would have got around to making a small game before too long. What happened however is that for the first time we started looking at the engine as game designers rather than game technology developers.  We played our own level and started to ask some very hard questions about what we had created.  The first internal video review was nothing short of obscene, and as we continued to craft the essence of the game play we noticed a big reduction in rude words and a glimmer of sunshine break through when the enemy character did something unexpected and cool.  I think we all agree we need more sunshine in our AI and sample level, called 'two compound', but we're close to an internal alpha testers release so we can get some early feedback from further afield.  It goes out with some qualifiers, but we will be working on those while the testing takes place.

In other camps, the store and art continues to trickle in. We are maintaining our focus on quality rather than quantity, but once all the systems are in place and tested the trickle of store uploads should in time turn into a flood.  Here is a sneak peek of Mr Boss Zombie which I grabbed last night when I had a serious bout of 'let's improve the shader quality of characters'.

It turned out all characters on HIGHEST shaders where entirely being self-shadowed so always appeared dull. The V1.007 build only self-shadows the parts of the character that fall in shadow, which makes the details pop a lot more and you can now appreciate the normal mapping contribution.

Right now I am playing catch up to recover the few hours I lost this afternoon, which mostly involves answering the email back log that can pile up even in just a few hours, and also to test the build I have uploaded for the internal team and make sure nothing nasty creeped in at the last minute.  This part is pretty critical however as any changes I made need to be skillfully done as not to mess up all that has been tested so far.  Time for some more tea, and then onto my email and testing mountain.

Tuesday, 13 May 2014

Daily Blog Or Blog Videos

One point we discussed at the meeting was the provision for more videos, and specifically for brief videos from my covering some essential aspect of the Reloaded engine in 1-2 minutes only. It could be how to best use occlusion, or how to increase performance on mid-range hardware.  It occurs that you might like to see more videos, and so I am putting it to my readership that you might want to see videos instead of boring blog text, so would you trade daily blogs for the release of blog videos a few times week?  Videos take much longer to prepare, record, edit and finally post, so I need to ensure this obligation consumes no more time than the current status quo.  Feedback welcome!

In Reloaded news, I can report that I have seen some very cool graphics coming in the weeks and months.  Probably secret right now so no posts here, but expect to see previews of them soon through the forum, news bulletins and newsletter.

Also been making more tweaks and fixes to ensure the A.I is good to play, and I have a feeling we will sit on this version until we get it right. It's already looking good, but we still want it better. Going to make another internal build in the next hour and then we will see how much we still need to do before we can start thinking about a release version.

Monday, 12 May 2014

Meeting Day

As you may know, today was meeting day which means Lee downed tools and talked almost endlessly for 4 hours, then went to a restaurant and talked for another three hours. Dispersed with driving and emails, I can pretty much report that my coding has been 'extremely minimal'. The great news is that we have a good plan on what to delivery to you guys in the coming weeks and months, and we think you will approve. Much too early to reveal what those decisions are, but I am pretty sure it's the right course of action which will ensure Reloaded development retains a focus on the most important elements. 

Thanks to my involvement in the 'holy trinity of coders', I can report that work on the new level we are creating for you as a benchmark and the AI system that fuels it looks to have gone well today and I will be taking full stock of the progress made Tuesday AM.  Already seeing some great videos showing the new behaviors, and especially the characters response to sounds which had been a concern in the pre-Monday version of the AI.

Handy Tip : If you are starting out in the world of coding, and wonder what on earth a whole day of 'meetings' can accomplish, I can entirely sympathize with this attitude as it's one I shared for many years learning my trade as a programmer. What I have learned in later life (gosh I must be old) is that a clear and deliberate plan (and sticking to it) can produce enormous clarity of purpose in what one does, and such laser-like focus can achieve amazing things in a very short amount of time.  It can seem rather single minded at times, but in a world filled with very convincing distractions, having an ethic of pure focus can really work wonders when you are attempting to produce something of merit.  I am prepared and willing to make this commitment to an intense program of concentration and I hope you eventually enjoy the fruits of this effort.  And now back your scheduled programming...

I still have a lot of emails to go through, and plenty of action points from today, so Tuesday is going to be an interesting mix of activities, not least of which is to assemble a build for internal testing.  My gut feel now is to test, test and test until we have ticked the next major tick box, which is good game-play. To achieve this, I think it's the AI of the characters that will make or break us, and the majority of my attention will rest on how this game play unfolds when playing our latest sample level. Fingers crossed for Tuesday!

Friday, 9 May 2014

Friday Again - Almost Time To Chill

Another high octane day of fixes and a few builds too. We had a mind to release an internal versions to some select alpha testers, but when we tested out our finished build we all agreed that the result was not good enough for a debut. It's close, but there are enough little niggles that we really wanted to solve before we made too much noise about this version.  It's looking good though, and our new sample level is coming along very nicely.

A sneak look at the new sample level

Another reason the build was halted was due to a VERY difficult to find LUA crash which seems to happen because the command which re-allocates memory was bombing and corrupting the local size value something awful. These are the worst bugs to fix as the reason seems to be buried in someone else's code, but we know from experience it is probably stack corruption due to overwriting memory naughtily. We need to find which code is overwriting the good data with less good data.

Another reason is our new and improved installer is not 100% ready for use and has caused some craziness causing one internal tester to rebuild his registry entries manually.  I am about to create and test a build now before calling it a week, in the hopes a closer eye on the process might make the problem go away, or at least reveal itself.

Also had occasion to check out the new Zombie, coming to a store near you, and it's looking pretty good. Going to keep it secret, at least on this blog, until I have actual in-game shots so you get an honest impression.

Had planned to clock off at 6PM, and still need to walk myself (and the dog), and do some other bits but it looks like this installer will keep me busy a while longer.

The plan next week is to meet up and discuss the release plans for V1.007 and also to assess where we are and where we need to be.  Dave and Simon will be having a whale of a time on Monday as they massage more clever AI and game logic into the new sample level we are working on, and this process should give us a great idea where we are in the grand scheme of things.

Next week should take us from good to great, let's just hope everything goes super silky smooth.  Until then, have a great weekend everyone!!

Thursday, 8 May 2014

Webinar Success And Reloaded Success

A good day was Thursday. Found out that the Webinar had over 180 attendees and a surge in AGK downloads so that was worth doing. Also saw some cool new things in the world of Reloaded AI happen, including cover and peek AI. 

Just building an internal version now for the core team to chew on come Friday and then going to chill for a bit. It's been pretty much non-stop and got lots done. Simon has started a level which will eventually replace the 'get to the river' sample we have been using thus far, which will hopefully provide a larger level to benchmark and offer up more AI and game logic possibilities.  

Would like to show you all the internal videos we've been bouncing around to show off the various cool AI stuff, but if you recall I got banned from doing that sort of thing ;) Take my word for it that the new AI is already looking more varied than the old one and we've only really been playing with the new LUA AI scripts for a few days, so imagine what we'll be able to conjure up in weeks and months.  

Hopefully the scripts we release with the build will allow you to break them apart and create even more ambitious scripts for your games! Once I am certain that we are not adding any more commands for the build, I will start documenting them so you know what they do instead of guessing what they 'might' do ;)

Wednesday, 7 May 2014

Super Quick Blog and LIVE Webinar

Been a bit of mixed bag of stuff today, which included a 3 hour power-cut and is soon to include a LIVE Webinar hosted by Intel and discussing Android Game Engine solutions. I will be attending to talk briefly about AGK (App Game Kit) and maybe sharing a few quick glimpses of it. You may also be interested in that if you watch my webinar, I am giving away a special 100% discount code which will allow you to purchase AGK for free, but only for today!  If you are free between 5:30PM GMT and 7PM, then you are welcome to attend:

On the Reloaded front I am currently uploading an internal build which includes the new LUA powered AI, and already it's looking much better than what we had before. Along with all the new LUA commands I think you will be in for a treat!

Must end the quick blog now to set-up a two monitor system, telecom Mac for the audio and get my materials to hand in case the hosted materials disappear in a puff of smoke.  I've done the AGK presentation a tonne of times now so I could probably do this in my sleep :)  If you're curious what AGK has to do with Reloaded, and why it's mentioned here, well throw the clock forward a few years to when we have Reloaded on multiple platforms. What 3D technology do you think we'll be using? ;)

Tuesday, 6 May 2014

Script Commands A Plenty

A quick blog today as it's been all code and no play.  More great work on on the AI back-end by Dave, our trees have a whole new collision mode which uses physics cylinders for super smooth and appropriate collision for trees large and small, and I have added more commands to flesh out the scripting system and to help Dave on the AI.  As a way to beef up my blog, here is a complete cut and paste list of the current LUA commands. Remember, these do not include the new DarkAI commands which hook 'directly' into the DarkAI module :)

function Prompt(str)
function StartTimer(e)
function GetTimer(e)
function Destroy(e)
function CollisionOn(e)
function CollisionOff(e)
function Hide(e)
function Show(e)
function Spawn(e)
function Collected(e)
function MoveUp(e,v)
function MoveForward(e,v)
function MoveBackward(e,v)
function SetAnimation(e)
function SetAnimationFrames(e,v)
function PlayAnimation(e)
function LoopAnimation(e)
function StopAnimation(e)
function SetAnimationSpeed(e,v)
function GetAnimationFrame(e)
function CharacterControlUnarmed(e)
function CharacterControlLimbo(e)
function CharacterControlArmed(e)
function CharacterControlFidget(e)
function SetCharacterToWalk(e)
function SetCharacterToRun(e)
function RotateToPlayer(e)
function AddPlayerWeapon(e)
function AddPlayerAmmo(e)
function AddPlayerHealth(e)
function WinZone(e)
function Checkpoint(e)
function GetPlayerInZone(e)
function PlaySound(e,v)
function LoopSound(e,v)
function StopSound(e,v)
function SetSoundSpeed(freq)
function SetSoundVolume(vol)
function FireWeapon(e)

Most of my remaining work this week will be to support the AI system so the character can do more things, and of course plug those essential gaps in the general script command library as required.

Friday, 2 May 2014

Thanks Almighty Bob It's Friday!

A tough day today, not least because of the beer drinking and all-night singing the night before celebrating nothing in particular. Despite my slow start to the day, still got quite a chunk of work done and a new internal build to throw about over the weekend.

We solved a few more issues relating to downloading large quantities of store items in one go, and fixed an issue which will allow any type of password character combination to work. The LUA scripts no longer store duplicate global members meaning you don't get ten identical LUA compile errors from populated levels. A new DEFEND script has been created to test the early Character AI layer, and it's going very well so far. You now have better accuracy when zooming in with the sniper rifle on large resolution screens. A new graphical HUD has replaced the programmer text prompts when in F9 edit mode. You can now edit FPE files and then associated BIN will be instantly updated when the entity is loaded, no need to change your levels or go through the tedium of manually deleting all BIN and DBO files. Improved the UZI weapon so that it feels slicker and more like a real Uzi, possible further improvements possible if required by the community!

Above image copyright NVIDIA and respective partners

I also want to help announce our first Reloaded competition, open to all existing and new pledgers, asking budding creators to make a game level with V.1006 and then enhance it with V1.007 later in May. We pick the best ten, and take some of them onto our Steam release version where your level will be seen my millions (we hope) :) We will also help you along the way to make sure you have every opportunity to shine. Here is the link with all the information you need to get started:

The very best of luck to you, and don't forget to have fun!  We very deliberately selected some nice graphics cards for the top prizes for those users who know that there is no such thing as too much performance!  This will be the first of many Reloaded competitions and I look forward to bringing you a succession of better versions of the software to compete with!

Thursday, 1 May 2014

LUA Script Commands Are Go

A lot of AI work and a lot of Script work happened today, and the result of a day's grafting has resulted in some more funny and delightful moments.  Here is a snapshot of something I created in the AM, using loads of ceiling fans to create a turn-style.

What was pretty cool was that in the afternoon, I started controlling these dynamic entities in strange and wonderful ways.  First I controlled the speed of the animation based on the proximity of the player, and for even more fun I caused the fans to rise in the air when the player got too close, and fall back down to earth when the player went away.  As you might guess, I have been adding new LUA script commands to make all this possible, and because it's the LUA programming language all things like variables, arrays, IF and LOOP statements are already in and working, which means whole chunks of readable logic can be knocked up in no time!

I did however run out of time as I also have delegation and management responsibilities, which includes cleaning up the master development task list so that the most important tasks are always at the top.  My task Thursday is to finish off the movement commands so that they can deal with physics based entities as well, such as crates and barrels which roll down hills. The trick will be to get the LUA script to un-roll them back up the hill ;)