HACKER MAZE
ROLE | SOLO PROJECT DURATION | 3 WEEKS TOOLS USED | UNITY, C#
Hacker maze is a first-person 3d puzzle game. The player is a hacker signal who needs to use the limited decoder to change the environment of the maze and therefore reach the destination. Meanwhile, the player needs to avoid the laser defense program in the digital maze
I was the sole developer on this project and it was built in a 3 weeks period
GAME mechanic
DECODERS AND INSTRUCTIONS
When designing the mechanic and the interaction of this puzzle game, I take Portal as an example. I want players can interact with an environment through simple actions that would later make up different puzzles.
I first consider that as a hacker signal, players can launch different decoders to different objects in the game scenes, and then the decoders can change those objects' positions or states. Considering different decoders need to have their special characteristics and also their combinations need to have the potential to design different puzzles, I finally decided that the three instructions in the decoders are extension, rotation, and turning off collision.
left click on the interactable objects to use the decoder
right click on the interactable objects to take the decoder back
scroll the middle mouse button to change the decoder’s instruction
level design & puzzle design
Referencing the Portal that puzzles are set in different rooms, I design that the player's goal is to reach and unlock the door of every puzzle room and go to the next level.
There are three levels in this game. Each level introduces an instruction type and then requires the player to combine the instruction that they just learn and what they have learned in the previous level to finish the puzzle.
This is the second level.
In the previous level, the player already learns how to left-click to use decoders, right-click to take the decoder back, and the mechanic of “Extension” instruction.
The design objective of the second level is to introduce scrolling the middle mouse button to change instruction type and the mechanic of “Rotation” instruction.
puzzle example
1: After players walk into the second level, they will trigger a text introduction telling them to scroll the middle mouse button.
2: Players need to change to the ROTATION instruction to solve the first part of the second level.
3: At the second part of the second level, players can see the destination located on the other side of the laser trap, and they can also see the huge pillar in the middle of the room.
4: By combining the EXTENSION and ROTATION instructions, the huge pillar will allow players to pass through the laser trap and players can successfully reach the destination.
visual design
color-coded
In order to keep the level screen visually clean while reflecting the theme of the digital maze. I used two different materials to distinguish between non-interactive walls (black) and interactive objects (red).
I also color-coded the objects with the decoder on them. Extending object is purple, the rotating object is yellow, and closing the collision object is translucent red. This allows players to get clear visual feedback after using the decoder, and they can quickly tell what objects have a decoder on them, and what the decoder's instructions are based on the color. This makes it easier for players to quickly think of different solutions to the problem.
lighting
The lighting in the puzzle room is overall red. However, I put some blue light only next to the destination of each puzzle room. This high-contrast lighting will easily capture players’ eyes, and therefore when players see the blue light they will know the direction and location of the destination.
shader
To make the visual elements better, I made two shaders.
One is the automatic tiling texture shader. It makes my level look consistent and increases the efficiency of level building. When I build the level, no matter how I adjust the size of the wall, the material will remain the same tiling and will not be stretched into a different size.
Another is the laser shader with animation so that the player realizes that the laser is dangerous rather than a static line floating in the air
automatic tiling texture shader
animated laser shader