Heartlink
Heartlink is a story driven tactical RPG that I worked on for two years.
Primary Technologies
Unreal Engine
C++
Visual Studio
Responsibilities
Project Manager and Developer
I led the end‑to‑end design and development of three core game modes—a branching visual‑novel that drives story and player decisions, a tactical, grid‑based RPG for strategic combat, and a survival navigation system that guides players through a resource‑driven, post‑apocalyptic world. I worked closely with artists, writers, modelers, and game designers to align narrative branching, asset pipelines, and gameplay mechanics across all modes. By defining a flexible, modular architecture and leveraging Unreal Engine’s strengths, I delivered responsive controls, dynamic AI systems, polished user interfaces, and a fun and memorable experience for the player.
UI Creation Process
Our team created user interfaces in three steps. I would work from a document that outlined styles and functionalities to create a functional rough draft in Unreal Motion Graphics. That rough draft would be given to our UI designer, who would create a polished design. I would take that design and modify my rough draft in UMG to create the final asset. Here are some examples of how we took our interfaces from concept to finished product.
Rough Mockup
A functional, low‑fidelity render to validate layout and flow.
Final Design
High‑fidelity artwork functionally integrated.
Location Overlay Hidden
With Destination Select Overlay
Rough Mockup
A functional, low‑fidelity render to validate layout and flow.
Final Design
High‑fidelity artwork functionally integrated.
Working with Artists in the Visual Novel Framework
Our visual novel team consisted of one writer, a 2D visual artist, a sound designer, and myself. I helped enable our writer to format her writing such that it matched the scene structures of the visual novel framework. We also went over how to create branches in the story, apply visual effects to the scene, and change the sprite poses and positions. I did the same with our visual artist-- showing her how to match her art assets to the game structures in order to render her work within the game. Our sound designer and I worked to ensure that the assets he created could easily be imported and adjusted on a scene by scene basis. This gave him the control he needed to dail in scene music and ambience at the level of detail he wanted. I greatly enjoyed working with my artist teammates to help realize their vision within the visual novel framework.
Scene Structure in Unreal
A format to provide the framework with access to scene data.
Scene Rendered in Engine
Composing Data Tables for Survival Navigation
A post apocalyptic setting gave Heartlink the opportunity to make resource management into a flavorful and satistfying mechanic. When traveling between locations, players planned routes which had various advantages and disadvantages. They had to consider resource consumption of fuel, food, and water, while also avoiding paths that had a high likelihood of them being ambushed. While on a route, players stop at locations along the route to camp for the night. During this time players could engage in conversation with their party members, scavenge for resources, explore the area, or rest to restore health. Exploring an area increased the player's knowledge level of the area-- unlocking conversations, discoveries, and special battles. Players could see the risks and resource costs of their route ahead of time through the local map interface (its in the previous section if you want to scroll up and see it again). This gave players the opportunity to customize their approach to gameplay by deciding how to prioritize their party's advancement via the way they explored the game's locations. Here is a look at how I designed the foundation for these mechanics, as well as their implementation.
Location Data Table
Table that tracks knowledge and discovery levels of locations, as well as what scene is loaded when the player moves to that location. It also tracks whether a location is generally enterable, and if so if the player is locked out of the location at a given point in the game progression. This is particularly helpful for locations connected to the main story by allowing plot developments to temporarily or permanently prevent entry to certain areas. An example of being "locked out" of an area to fulfill a narrative goal is in the second visual novel demo rendered in the previous section (when the player presses "Enter" and they are denied entry).
Scene Data Table
The scene table is used to connect scenes to the levels and sublevels they are played out on. Each scene data table is part of an entry in this table. It allows for scenes to be played sequentially until the player reaches a different game mode, such as survival navigation or combat. When a player leaves a that game mode, the user interface and level blueprint will use this data table to play scenes that load different levels and advance the plot.