My main tasks were:
- Design the concept, core loop and main mechanics.
- Implement in Unity3D and C# the roguelike loop and combat mechanics.
- Design the levels and progression.
- Build and publish the game on itch.io
Following one of the main goals, this game is meant to be the starting point of a bigger project that would contain various different games in the future.
This defined the space theme and also added the hacking component. These constraints helped create a different type of combat system where the player needs to hack the computers in order to defeat them.
In this combat system each computer has a level of vulnerability (replacing an enemy's health) and a defense (that could be a firewall of some sort).
The player attacks with hacking attempts using a system that is lightly base in Dungeons & Dragons:
Each victory gives the player hacking experience and a reward. There are various types of computers with different rewards.
Create a navigation system that fits the main mechanic: hacking.
To add further meaning to the hacking mechanic, I decided to link the level navigation to the hacking rewards.
Each room has a defined amount of doors leading to other rooms to explore. Each room is linked to the next via a hallway and a code locked door.
In order to explore all the rooms, the player needs to crack all the codes available.
Just like in the original Rogue, exploring all the available rooms is not a requirement to find the elevator that takes you to the next floor. However, it is expected that the player feels the curiosity to uncover all the darkened rooms before leaving the floor.
The fact that computers were spawned at random rooms as part of the procedural generation of each floor, represented a technical implementation challenge that borrowed some of its complexity from Operations Research when we faced the problem of "computer A" being spawned in a room that could only be reached by opening doors requiring the very same code that "computer A" rewarded. See more in the Technical Achievements section.
Given that the combat system designed prevented the enemies from taking health from the player, a new finite resource had to be added.
Decode() is about an astronaut fulfilling a special mission: activating an important computer at the deepest section of a heavily damaged Spaceship.
Computers are passive and waiting to be hacked, however the game needs a defeat condition. So the space suit autonomy was added.
I had recently finished playing the awesome game Outer Wilds, so the survival characteristics of space travel were very fresh in my memory. And my creativity took advantage of it.
The player has a finite amount of suit autonomy. If they run out of it, they die.
Therefore, the goal goes from:
Autonomy lowers every step the character takes, every time a hacking attack misses and as part of the negative rewards a computer can give.
Total autonomy increases every time the player increases their hacking experience level.
Adding this mechanic gives the game a little touch of strategy as it prevents the player from crazily hacking all and every computer they find. They need to start being conscious about their autonomy and try to avoid negative effects or unnecessary interactions. They also need to search for the most efficient route to avoid unnecessary steps.
How to make the higher floors more and more challenging?
To increase difficulty on the higher floors the following elements were tuned accordingly:
Thought process behind these choice:
These changes were play tested to ensure that, even though the player would arrive at the higher floors with a higher level and therefore more total autonomy, the computers should represent a challenge anyway.
This is a topic that could not be deeply explored within the Game Jam's time frame so more balancing and tuning is definitely needed.