This was my first real step into game development. Coming from an iOS app development and electrical engineering background, I took a leap of faith and joined the team on a three-month contract, restarting my life and flying across the country with curiosity and a dream.
During that time, I taught myself Unreal Engine from the ground up and was brought on full-time after only a month. The project was still in its early prototyping phase so it was the perfect environment to learn the fundamentals of game development. It felt like being in the best school imaginable. As the game evolved from prototype to a full-scale AAA release, I grew alongside it, developing not just technical skills but a deep understanding of how games really come together.
I took on a wide range of responsibilities during my time on Immortals of Aveum. In pre-production, I helped bridge communication between departments to quickly prototype ideas. As the project matured, I carved out a role focused on level systems and tools development. Working closely with our technical designer, I helped design and implement several foundational systems that became the backbone of level creation and gameplay
A large portion of my work focused on level systems, particularly the Event System, which served as the backbone of interactivity throughout the game. This system allowed any participating system to communicate with any other, creating a flexible and designer friendly framework for building simple and complex gameplay logic.
Over the course of development, I continuously expanded the system’s capabilities, integrating new features and connecting it with other core systems. Level Design relied on it heavily to control gameplay elements and create complex interactions without constant engineering support. Ultimately, the goal was to empower designers, reducing their dependency on engineering while maximizing their creative flexibility.
For example, in the image above: when the player shoots the blue crystal with a blue spell, it triggers the crystal’s event, which communicates with the nearby locked door, causing it to open. Both objects are communicating through this system.
Gif from ShroudFane Level
All of the ShroudFane levels in Immortals of Aveum were built almost entirely using a single system I developed. Designers used this system to construct highly dynamic environments. These levels were made of modular pieces that could assemble, disassemble, and transform in real time as the player navigated through them. Although the system was built to be fully generic and reusable across the game, the ShroudFane levels became its best showcase. Nearly every moving or animating element in those spaces was powered by this system.
It was designed to be designer-driven, enabling complex behaviors and large-scale transformations without requiring code, scripting, or direct engineering support. The result was a robust, flexible tool that empowered the team to rapidly prototype and build some of the game’s most visually striking and technically ambitious moments.
To bring the game’s enemies to life, I helped design, create and implement a Chatter System that managed Enemies' ambient voice lines and reactions. The goal was to make the world feel more alive and reactive without overwhelming the player.
Enemies would make reservations to a central manager before speaking, ensuring that dialogue lines didn’t overlap or interrupt one another. This system also handled voice actor pooling, preventing multiple enemies voiced by the same actor from speaking simultaneously.
Once an enemy’s turn came up, it would deliver a context-aware line appropriate to its current state, some of which included whether it was attacking, retreating, or alerting allies. These lines were spoken in the game’s custom in-world language, with translated and localized subtitles displayed on-screen for the player.
I helped develop the backend for the game’s inventory and equipment system, which handled all player gear acquisition, upgrades, and sales. The system supported non-linear upgrade paths, allowing for flexible item progression and diverse build customization.
To support this, we designed an ID and serialization framework capable of translating any version of an item into a unique hash or GUID. This allowed gear to be saved, retrieved, and referenced reliably across databases, UI systems, shop interfaces, and various gameplay states.
The background characters were driven by a system I developed to streamline how ambient NPCs were placed, animated, and integrated into gameplay events. This system empowered designers and animators to easily set up groups of animated characters and connect them to the broader Event System I had built earlier.
It included tools that automatically positioned characters performing shared or tandem animations around a specified origin point, decided by the animator and encoded into animation itself. This eliminated the need for manual alignment as designers could simply drop in the tool, select the desired animations, and the system would handle precise placement automatically.
Additionally, the system supported dynamic AI transitions. Background characters could be seamlessly “possessed” by AI and leave their animation scenes to become autonomous if the player interrupted them or if triggered by in-game events.
My time with Ascendant and Immortals of Aveum was an incredible experience. It introduced me to an industry, and a career path, I never imagined possible. I discovered that there’s no better field for combining art and technology, and I knew from that point on that this was where I belonged.
I’m deeply grateful to everyone at Ascendant who helped me grow, both as a developer and as a person. The experience changed the course of my life for the better, and I’ll always be thankful for the opportunity to have been part of it.