Monday, 18 February 2013

Monday Blog Burst

An Action Packed Weekend

I left you Friday with the prospect of jumping into some Reloaded work that evening, and you have had the weekend to wonder whether I did. Well I am back to report that I most certainly did.

I ate some food then powered up the monster PC for some more Reloaded fun, and my mission was to throw away the FPSC-Game.exe dependence. I promptly deleted it - dependence broken. And so was the map editor, which would now crash when I clicked the Test Level button. My task for the evening was thus, to replace this functionality.

Test Level Button

I dropped into the source code and located the command which launches the separate game builder, and replaced it with the old legacy code which prepares the level for 'preview mode'.

Preview Mode was a feature in the original FPSC but was dropped due to lack of power. I resurrected this and instantly saw why I had removed it in the first place. The mouselook control was poor, the player movement was worse and there was some very strange collision events occurring!

It needed a MAJOR overhaul, and possibly a rewrite. I stripped out the input system which was taking it's cues from the parent Window GUI and restored original DirectX input methods. Ran the software and nothing, no input whatsoever. Turns out the Window GUI was disabling the native DBP app from using it's own input data. I switched the child window of the map editor off in the top this would decouple from the main GUI but this just crashed it.

Legacy Adventures

As it happens, I did not write the original FPSC Window GUI, and for some universal reason I always get away with not writing IDE's, and this one was no exception. The downside struck when I tried to figure out how the main GUI attached the DBP client app as a child window. I traced the code down to the machine code, I changed executable names around and tried to trick the software to not attach the DBP app (thus restoring my input controls). The only success I had was to rename another DBP app (the cleaner.exe) to the filename FPSC-MapEditor.exe. This added the DBP app as a child window, just like the real editor suggesting that it was the filename itself that was the key. I changed the code to attach a DBP app with a different name, and behold, the window did not attach and was free-floating. 

It seemed as though some part of the system detects the filename of the window and if it is 'FPSC-MapEditor.exe' it will attach it as a child to the main GUI. I have scanned and scoured the code of the GUI and to some degree the modified BCG library being used for the gadget controls, but no luck.

Six hours later, my brain was waving the white flag and insisting I take a break while it worked it out for me.  I would have to resume my epic search on Monday when I would have more hours to spend.

Other Blogging News

This weekend was the first of seven weekends where I would post my new Ultimate Coder Challenge II blogs to the world. They are hosted on IDZ (Intel Developer Zone) and are set to be approved on Monday 5PM PST. The blogs will feature my attempt to create a brand new piece of software which takes advantage of the new Gesture Camera devices. These new cameras have a built-in depth radar which can determine how far each pixel of the video footage is from the camera. 

My goal will be to turn this into a 3D mesh and transmit it to a client app which can reconstruct it within a virtual 3D world.  In order to preserve the integrity of the Reloaded project, I am confining this work to weekends and holidays. I figured that as the competition was called a 'challenge' I would turn it up to eleven and make it REALLY challenging :)  

The good news is that this app will be written in DBP, the same language used to create Reloaded, so this technology will filter through to the Reloaded universe at some point in the future. Early ideas include detecting if you dodge left or right and control the FPS camera to peek round corners or avoid rockets that are fired in your direction. Voice control so you can change and fire weapons/spells/abilities with a word. Facial tracking so the camera will focus in on the object you are looking at on screen (i.e. if you look to the top left corner of the screen, the camera zooms in slightly and blurs out the rest). We could even experiment with hands-free gaming, where you don't even need a mouse or keyboard (but that might be a stretch for high-speed combat).

To keep up with this development, check out the soon to be released blog at the soon to be made live site at:

Signing Off

I also found time to install and play the intro of the Borderlands 2 FPS game which I have been meaning to do for some time now. Did not have any time to play it and my internal sense of right and wrong tells me that I should catch up with my Reloaded timetable before playing any more games :)  Good advice from the inner-Lee I think.

The plan this week is to crack on and the AGK apps sorted, keep the email plates spinning and grab a few hours each night to progress the map editor to allow a build-less test level experience. Although culling is critical for the performance of large levels, I think my priority will be to get the Test Level button working nicely with full smooth controls for the player and the real time light mapping going on in the background. Although not everything I wanted for the end of February, I think it would be a good goal.


  1. Good luck with TUC2! I saw on the AGK forums that one member cranked out a really neat looking prototype for the Perceptual Challenge using AGK Tier 2 ( Intel had sent a few emails indicating that only four people had submitted an entry as of a few weeks ago despite hundreds of entrants, so he has a good chance of winning a big prize I think.

  2. Lee, in case of some problems in the second half of this year, do you think it would be reasonable to sacrifice the deadline and move the release date of "Reloaded"?

  3. I am pretty firm on the release date as a number of planets line up if I hit it. I will attempt to ensure the deadline by limiting the changes to the original premise and avoid too many iterations. I also plan to finish the bulk of the new features well ahead of the deadline to allow for an extensive round of beta and usability tests.