Ok'Rhams Creation is a gritty first-person puzzle shooter in which the player wields spells to solve puzzles and defeat monsters. Each spell behaves differently — fireballs, black holes, shockwaves, and gravity fields — and creative use of them is the key to progressing through the game.
7 Week Group Project
18 Team Members
Powered by Unreal Engine 5
Futuregames, Stockholm & Karlstad
Technical Coordinator: designated point of contact for Unreal Engine and Perforce issues across the team.
Systems Programmer: save/load system and the spell projectile system.
Generalist: UI work in Widget Blueprints and general support toward the end of the project.
My biggest takeaway from this project is one I keep being reminded of: communication is the most important factor in a project's success. Our non-programming team members often had no idea what the designers were changing about the game concept, which created constant friction. Still, we delivered — and I built two systems I'm quite proud of.
The team needed two things: a checkpoint respawn system, and the ability to close the application and continue a run from where you left off. I designed a layered save architecture around a UGameInstanceSubsystem that wraps Unreal's USaveGame machinery. At startup it restores player and world state and kicks off an autosave timer. All runtime state lives in plain DTO structs (no behavior attached), organized into a logical hierarchy from per-entity data all the way up to the full save file. The subsystem exposes a clean interface for saving and loading, with multicast delegates so other systems can react to state changes without tight coupling.
The spell system is data-driven — all numbers, VFX, sounds, and materials live in Unreal Data Assets that designers can edit without touching code. At runtime a lightweight manager spawns the correct projectile actor based on a spell enum. On collision, the projectile is replaced by a spell effect actor that runs the final logic: FireBall, BlackHole, ShockWave, and Gravity, each exposed as a BlueprintCallable so designers could hook in damage graphs that existed only in Blueprints. I would split the SpellEffect script into per-spell components if I were doing it again — it grew a bit long.
I acted as the team's designated support contact for Unreal and Perforce issues, so nobody stayed blocked for long when something went wrong. This consumed a fair amount of time — Perforce workspace issues were a recurring theme — but I think it was a net positive for the team's momentum.