A Big Knight Out is a puzzle video game that I have been working on for the last few months with two friends. The game sees the player take control of a Knight which moves in the same way as the corresponding chess piece. The project is still a work in progress, but we are hoping to publish it on stream and mobile app stores this summer. The game is made in the Unity Game Engine using C#.
The game's levels are turn-based puzzles, in which the environment and any enemies move in time with the player. The puzzles draw upon a wide range of mechanics, including portal squares, moving platforms, buttons, various enemies and more.
Each of the levels is ultimately stored as a simple JSON file, which is dynamically built at runtime. This allows our levels to be easily validated and source-controlled, and makes features like the in-game level editor possible.
One of the most exciting features of the game is the in-game level editor, which allows players (and us, as developers) to easily create new levels for the game. I was responsible for producing the level editor early on in development so that we could move away from editing levels as JSON files as soon as possible. There were several interesting challenges involved in building the editor:
One of my favourite features of the game is the electricity system we have built into the game, supporting simple electrical components such as buttons and switches as well as a whole set of supporting tiles such as logic gates and powered spikes. This allows us to create levels with truly complex behaviour directly from within the level editor, without needing to add any level-specific code. An example of this is a level in the game which requires players to stand on tiles in a specific sequence in order to produce a chessboard patten – here, the electricity system and logic gates are leveraged to automatically open a door to the next part of the level once the patten is correct.
The work-in-progress code for A Big Knight Out is available on my GitHub page.