Prototype 1 wrap-up

In the next few days I’ll be putting the wraps on our first prototype. Here is a recap / post-mortem, before we start on our next stage.

This prototype took longer than originally expected, but these things usually do. We’ve also changed directions on marketing and won’t be releasing it publicly as previously planned, but I don’t think that’s any great crime.

In our slapdash progress, this became two prototypes combined. That’s (partially) how we overshot our poorly estimated timeline. Our initial goals were to prove the meta-data systems to implement stealth mechanics, but it became clear that there were essentials we could not take for granted. The cart needs a horse and all that.

Our essentials:

- Basic controls and movement: Walking, crouching, running, sprinting and wall-hugging (natural cover), with variable throttle controls (mousewheel) for speed.

- A third-person camera system: Multiple camera modes with transitions and hinting directions (during cover, or aiming).

- A streaming level system: For seamless loading of levels without loading screens. Epic’s system does most of the work, we just had to learn how to use it. Will need updates to account for savegames.

Our main goals:

- A system for light detection: UDK does not expose lighting data to UnrealScript, so this presented a major challenge that we needed to prove for our primary gameplay. I thought we would have to bandage together multiple workarounds, but we ended up with a unified system that works efficiently and accurately, beyond our expectations. Our solution worked so well, it became an early morale boost for our team. It defined a “we can really do this” moment.

- A coherent strategy for lighting: We settled on a hybrid that could best be described as semi-dynamic lighting. We realized early on that we would have to test dynamic lights and make compromises, not just for performance, but for a balance of quality. We have a better understanding now, in regards to lighting that works within our gameplay.

- A system to compare ambient sound levels with character-instigated sounds: UDK has a few tools built-in that made this relatively simple to implement, although individual sounds will require micromanaging.

Secondary goals:

- Custom AI as “EyeBots”: Which are basically glorified security cameras. More complex AI will come later, but these were required to test the stealth systems. It’s been important to me not to reuse too much of UT’s AI included with UDK: To avoid that feeling of familiarity with Epic’s products, our AI needs its own distinctive personalities (and quirks, considering my AI code so far).

- A rudimentary UI for testing feedback, which has helped us make the decision to stick with UDK’s Canvas system rather than Scaleform (Flash) for our UI.

- A “Slingshot” as a base weapon / gadget: UDK’s inventory and weapons systems made this a breeze, complete with believable physics for the slingshot’s pellets. Alternative “gadget” ammo was also tested, as was the shooting of lightbulbs to change the environment.

In addition to these direct goals, this first prototype has been a huge learning experience for us. I think Nin got himself a lot deeper into rigging than he thought he would with the EyeBots. I became enveloped in UnrealScript. I also did a lot more in regards to project management than I expected, but we are now quite accustomed to making notes in our wiki and using TortoiseHg, etc.. There were extra bits and pieces that went into this prototype, but I’ve listed all of the major elements.

It feels very good to file away a chapter in 4thWall Awareon development. And now to move onto the next prototype.