Asylum Dev Diary 94 – Bumper Update

This week saw a bumper 4 days of development work on Asylum. As per my previous posts I’m in clean up mode where I return to look through the completed parts of the game and see what can be cleaned up or improved.

The first port of call this week was a glitch with my shadow routine for the player. It was misbehaving when the player was in range of 2 or more light sources. The shadow would swing round to an angle that didn’t make sense. It was also prioritising the light source that was the furthest away, which also didn’t make sense. This has mostly been fixed and I have one additional correction to make where the rotation of the shadow wraps at 359 degress back to 0. At present the shadow swings all the way back round rather than going over the 360 threshold.

A couple of minor tweaks to the lighting engine was needed. I know, more lighting. Animated shadows, mostly doors, were clipping out of the view to early.

As regular readers may know the game utilised a noise filter to visually decay the players view when he was under stress or thirst. And although I liked the visual effect the shader had a few annoying flaws and so it had to go. In it’s place I’ve added a chromatic aberration filter. For those of you without a background in camera lenses its a kind of flaw where the red, green and blue colours become separated slightly and is usually apparent on the edges of strong colour changes. In games this feature is quite often added back in to give games a kind of real life flaw. It also makes a pretty nice distortion for stress and thirst 🙂

In the screen shots above you can see the new effect. It builds up the colour separation over time to really sell the experience nicely and once the threat has passed the aberration effect slowly contracts and the game is back in focus.

And as I was fiddling with the screen filter I wanted to increase the urgency of the initial – must find water – objective. The sequence now uses the pounding heart beat sound to really enforce the need for the player to hurry.

By playing the game from the very beginning another small glitch appeared. The first objective given to the player was not showing in the objectives listing. Ah, the number of times you forget that lists and arrays begin from zero and not 1. Oh well, easy fix 🙂

And finally something that was quite complicated to implement at this stage in the games development but I felt was crucial, and not only because it would help me to test multiple areas of the game: Save Slots.

Previously, you could start a new game, or you could continue your existing one, and that was it. But, I kept feeling that I needed to have an easier way to save multiple states of the game. So, I’ve set it up to allow 3 save slots (I may increase it later). For the interface aspect I wanted to include a tag line to indicate the section of the game the player was last in and also the date and time of the save. The trouble with adding in tag lines for the save points is that the strings need to be registered for translation (if I want to) later on.

Well, I’ve rambled on for long enough this time.