Caches and Cuts

I resumed full-time development on NEON STRUCT this week, and spent most of the week building out the new level shown here (working title: Safe House).

This level introduced a few new technical requirements that I hadn’t previously dealt with. In particular, I needed to add very large lights to the world during play (the floodlights in the images below), but doing so took around 100ms to compute irradiance and rebuild the affected voxel meshes.

To solve that, I added an occlusion cache to the lighting system. When the color of a light changes but its size and shape remain constant, the previously solved occlusion can be reused when computing irradiance. During level load time, I enable the flood lights with zero brightness, effectively just precaching the occlusion. Then, when I need to actually turn the lights on during play, I just change their brightness and recompute local irradiance using the precomputed occlusion.

At the start of this week, I reviewed my schedule for the game and made a couple of cuts to stay on track for a release around February 2015.

The first cut was a level called Tunnels. I had built most of it just before my hiatus, but I was unhappy with its quality and had planned to rebuild it this week. While reviewing it, I realized that its problems weren’t in the way I had built it, but the level’s utter lack of purpose in the game. It was ostensibly a core stealth level, but its fiction required it to be only sparsely populated. The player had no particular objective except to get from point A to point B. And it was a grimy sewer level of the kind we’ve seen in hundreds of games before. In short, it failed at being a good stealth level and it wasn’t even remotely interesting. The obvious solution was to cut it and move on to Safe House (which is designed for stealth, has a real narrative purpose and interesting objectives, and is my favorite level so far).

The second cut was an Act 3 level called Train. I had not started building it yet, but I could see that it would have similar problems to Tunnels. I liked the idea of a mission set on a train, but the constraints of the space preclude a lot of core stealth mechanics. There was no real objective here either, and it didn’t advance the plot in any significant way. Cut!

What I’m left with after making these cuts is 21 levels that I feel very good about (split between 11 stealth missions and 10 “social” levels), and room in the schedule for working on things that aren’t levels, like more enemies and gadgets.