Inspiration

Classic escape rooms and spy-themed puzzles inspired us to make CryptEscape, a spy-themed game where the user faces encryption and decryption challenges along the way. We wanted to blend cryptography with gameplay to create something both fun and educational for players. CryptEscape was our way of turning digital codebreaking into a hands-on experience. The goal was to challenge players while teaching them about encryption.

What it does

CryptEscape is a browser-based challenge and puzzle game with levels(AKA challenges) themed around encryption. Players take on the role of a spy and aim to infiltrate CorpCrypt Industries and find information. However, their information is carefully protected using cryptography so the player must solve encryption-based challenges to progress and get closer to completing the mission. Each level includes clues, hidden messages, and interactive elements. Solving the puzzle unlocks the next level in the storyline.

How we built it

I built CryptEscape entirely using HTML, CSS, and JavaScript to make sure it runs smoothly in any browser without needing a server. Each level is a standalone page with custom scripts that handle answer validation, level progression, and puzzle logic. I used JavaScript functions to create interactive elements, a score system, check user input, and reveal hints as players need them. All the code and assets are locally stored, making the game fully self-contained and easy to deploy anywhere.

Challenges we ran into

One of the hardest issues came from Level 5, which used an XOR cipher. The decryption key I planned didn’t fully align with the code’s logic, so even though the key worked for much of the ciphertext, it never produced a perfect match. I spent a lot of time debugging and adjusting the logic to try to make it line up. However, there would always be an error with the answer generated not being remotely close to what the correct answer is even with the correct code. In the end, it became pretty close to the requested goal. But, as it wasn't good enough, I decided to take it out of the project as I didn't want anything that isn't functioning being part of the project

Accomplishments that we're proud of

There are two key accomplishments that make me extremely proud in CryptEscape. Firstly, I'm proud that the entire game works without any backend code or server. Every puzzle is handcrafted, with clues that blend into the design. The game successfully teaches basic cryptography through play. Players actually feel like codebreakers while learning real skills. Secondly, I'm proud of the code for level two in the self processing key at the bottom of the substitution cipher. This was especially difficult to figure out. However, it was fairly easy to implement into the project after completing my research.

What we learned

As someone who volunteers as a tutor, I’m always looking for ways to make learning more interactive and engaging. Through building CryptEscape, I learned how to take a complex topic like encryption and break it down into something that feels like play instead of work. This project helped me sharpen my JavaScript and problem-solving skills, but more importantly, it showed me how games can be powerful tools for teaching. I plan to use what I’ve learned here to create even more educational games and bring them into my classes for students to better understand complex topics.

What's next for CryptEscape

In the future, I want to expand CryptEscape with more levels and harder encryption methods like RSA or even multi-layered puzzles. I’m also thinking of adding a timer, a scoring system, and maybe even some voice-acted story segments to make the spy theme more immersive. In addition to this portion, I had a leaderboard planned out with account integration so there could be a global leaderboard. Implementing this would be a great way to further strengthen the game theme and teach students about encryption. I'd like to polish up the Level 5 XOR logic so it works perfectly as well, and possibly make the code more modular so others can build off it. Eventually, I want to open-source the project so educators, students, or other developers can use it as a learning tool or puzzle platform.

Built With

Share this project:

Updates