An Unreal Engine 5 remake of the game "RuneBound", a fantasy RPG originally built in Unity for the course "Computer Games" at Hochschule RheinMain.
This version was a self-directed portfolio project: the goal was to teach myself Unreal Engine 5 by rebuilding the original game from the ground up in C++ and Blueprints, and to document that journey.
You play a young mage novice sent to recover three magic rune stones and reawaken an ancient portal. Explore the world, talk to its inhabitants, solve a chain of puzzles, and reach the portal to finish the game. The core concept follows the original Unity version, with a number of changes made during the remake:
- The forest valley was reworked into an island.
- The troll guarding a rune stone was replaced with a deadly miasma.
- The art direction moved from low poly to a more realistic look.
This is the public, source-only version of the project. The full Unreal project lives in a private repository and is not published here.
The reason is that in Unreal Engine, Content is made up of binary .uasset and .umap files with baked, hard references between assets. The project's own Blueprints and levels reference third-party models, materials, and effects directly, and the third-party asset packs sat mixed throughout the Content folder. Unlike an engine where assets live in cleanly separable text-referenced folders, there was no way to strip the third-party content out without breaking the Blueprints and maps that depend on it, and most of those assets are not licensed for redistribution.
So this repository contains only the hand-written C++ source. A packaged, playable build of the finished game is available under Releases.
- Unreal Engine 5.3
- C++ with Blueprint integration (
UFUNCTION(BlueprintCallable),BlueprintAssignabledelegates) - Enhanced Input system, with keyboard/mouse and gamepad support
- UMG for all user interface
The C++ module is organized into headers (Public/) and implementations (Private/), with the core game classes at the module root.
Core
RuneboundCharacter- the player character, movement, camera, and Enhanced Input actions (move, look, jump, interact, zoom, run, pause, reset camera).RuneboundGameMode- orchestrates the quest chain, holds references to key actors (portal, old man, rock, plant), and reacts to interaction and collection events.RuneboundGameState- holds the inventory and the active quest, and broadcasts changes through multicast delegates (OnInventoryChanged,OnActiveQuestChanged) that the UI subscribes to.
Interactables
All interactive objects derive from AInteractable, which provides a sphere collider, static mesh, audio, and an OnInteracted delegate. Subclasses specialize the behavior:
NPC,Mage,OldMan- dialog and quest givers.Chest,CombinationChest- item containers, one opened by solving a number combination.Bush,Plant,Rock- environment puzzle objects.Portal- the goal object that ends the game once all rune stones are placed.Miasma- a lethal hazard the player must avoid without the right spell.InteractablePrompt- the on-screen prompt shown when an object can be interacted with.
User interface (UMG widget classes)
TitleUI,PauseUI,ResultUI- screens and menus.QuestUI,InventoryUI- persistent HUD elements.DialogUI- conversation display with a typewriter effect.CombinationUI- the number combination puzzle input.
For the original game's full design document (story, puzzle flow, and technical architecture of the Unity version this project is based on), see the Unity repository.
This project was built as coursework and a personal portfolio piece and has no explicit license. Third-party assets used in the full project remain the property of their respective owners and are not included in this repository.