How the game came to be During last year’s summer a good friend of mine…
About a year ago Eleftherios Kokkinakis, the owner of RedSoup Studios which was developing Westwood Shadows, a first-person puzzle solving game contacted me about the development of the AI for the game. In Westwood Shadows, you’re Peter Bennet, a police detective returning to his abandoned hometown where he confronts his past unsolved case.
Westwood Shadows is currently available as Early Access on Steam:
Initial AI Design
Initially, we designed a base enemy type, codenamed as ‘Shadow’, which would bring some mild horror elements to the game and challenge Peter. The original design was Shadows would patrol around levels and reduce Peter’s sanity based on their distance and line of sight. Originally, when Shadows would catch the player, a quick time event (QTE) would kick off where Peter had to struggle in order to release himself from the effects of the shadow which was taking a hold of him. Once QTE was finished, Shadows would refrain from chasing Peter for a brief period of time on order to give the opportunity to the player to run away. After thoroughly testing the system, we felt like it didn’t mix well with the overall game so we decided to disable it.
Additionally, we designed and implemented some hearing functionality on Shadows. Once a sound has occurred in the game, whether this is a loud footstep close to a shadow, or a gunshot noise, or a throwable item which was tossed next to an enemy, Shadows would start investigating around the source of noise. This resulted in a smarter AI that didn’t solely rely on seeing the player in order to start chasing Peter. Last but not least, we implemented a system that activated investigation of fixed points around levels in case Shadows would chase the player but couldn’t reach him for whatever reason. The result of this system was that Shadows would start investigating around the last known player location during the chase which gave the impression that Shadows are intelligent.
Boss Fight Design
Besides the base enemy type, we also designed and implemented four boss fights, however one of them was scratched during the development as it didn’t quite fit the game overall.
First boss – Denial Shadow
The first boss that Peter will face in the game (internally named as Denial Shadow) will chase him inside a maze. Peter has to overcome various physical obstacles along the way and find the correct escape path. The Denial Shadow is immune to damage and effectively “oneshots” Peter once it catches him. Last but not least, to give the player a chance to take a breather we implemented some safe areas where the boss would disappear so the player could take a short rest.
Second Boss – Anger Shadow
The second boss that players will face is codenamed “Anger Shadow”. It’s essentially the Denial Shadow with two major differences: this time the boss doesn’t kill you immediately while Peter has to kill it in combat. The boss fight is made up from different phases:
- On the first phase, the Anger Shadow will go close to Peter and transform into a “Shadow Orb” which will try to reach the player. Once it reaches the player the orb will explode, dealing damage to Peter. Players can run away from the orb in order to avoid any damage.
- On the second phase, the Shadow gains an additional skill, called Shadow Area. The Shadow detects if the player is standing still for a certain amount of time and it spawns a shadow area below the player’s feet. This area slows down the player but it can be killed using the “Strobo Light” item that the player has picked up at the start of the game.
- On the third and final phase, the Shadow gains another ability, called “Shadow Walls”. After certain intervals, the boss blocks the path of player around the level, forcing the player to either stand still or having to deal with the Shadow Orb attack.
Third Boss – Depression Shadow
The third and final boss of the game is internally named as Depression Shadow. This Shadow is immune to any damage and will deal periodical damage to the player based on proximity. The boss fight is effectively a time trial fight as it takes place in a level that Peter has to complete an objective in order for the fight to stop.
Overall, I had a blast working on this game and while it didn’t push my technical limits on the programming part, I learnt a lot of things about game design. Additionally, I gained invaluable experience when it comes to preparing tools and systems that were used by the designers of the game.