Crypt Raid
Crypt Raid
A game where you are a thief trying to steal a treasure while solving various puzzles and figuring out how to reach said treasure
Description
Crypt Raid is a first-person puzzle game where the player controls a thief navigating through an environment filled with interactive objects and secret mechanisms. The objective is to steal a treasure by solving spatial puzzles and using specific items in creative ways.
Engine: Unreal Engine 5
Tools: C++, Blueprints
Project Type: Solo
Duration: 4 Weeks
Genre: Puzzle/Adventure
Focus: Puzzle solving and intuitiveness
The area where the player spawns in
A hallway within the game
C++ code logic for the grabbing and releasing of the objects within the game
Blueprint logic for the player grabbing and releaseing objects within the game
My Role
Designed and developed all core mechanics using C++ and Blueprints, including item pickup, throwing, and puzzle object interaction
Scripted a modular object-handling system that allows items to be grabbed, moved, and activated based on their in-game purpose
Leveraged UE5’s tag system to assign unique behaviours to specific items—e.g., only a certain object can unlock a hidden door
Challenges
Challenge: Understanding and using pointers and references in C++, especially when managing interactable items in real-time
Solution: Switched from standard variable references to dynamic pointers to maintain accurate access to active player and object data, especially during frequent item switching
Implemented a grabber system that continuously tracks the current item being held using pointer arrays and component references
Solved dereferencing issues by learning UE5’s actor/component architecture and using smart pointers where needed
Highlights
Created reusable pickup/throw logic by attaching generic code components to any interactable item
Developed a tag-driven item validation system to control which objects activate specific puzzles or open doors
Deepened understanding of C++ memory management in a game engine context (object lifecycle, dereferencing, address resolution)
Resolution
This project significantly improved my confidence with C++ in Unreal, especially regarding memory handling, pointer logic, and component communication. It also taught me the importance of building reusable systems and the power of UE5’s tagging system for flexible gameplay logic.