Lich's Ascension

Title screen of browser game
- Our Objective -
Lich's Ascension is a short game project created in collaboration with Alan Garcia, developed during my studies in the Fall 2025 Semester at Cal State East Bay. Lich's Ascension itself is a top-down ‘bullet hell’ style p5.js project, evoking the feel of Wizards of the Coast’s Dungeons & Dragons as its primary inspiration. The project drives its primary risk/reward loop through a system of randomized ‘spell cards’, pushing the player to carefully manage their options as they fight outnumbered.
This project represented the 'Final' of my Interaction Design II course run by Professor Stannard. With an open ended prompt to go above and beyond prior work, ideation began with an initial impulse to collaborate as it was my Senior Semester. Alan Garcia was someone I had worked with in prior semesters, making them an excellent candidate as we eventually made it official. In this, I knew I had a strong visual artist talent, making deciding our primary roles in the project a quick process. When deciding on a theme, we pivoted towards the idea for a ‘reverse’ dungeon crawler, owing to a shared interest in the medium. For Garcia, it was a suitable flavor match with what they’re comfortable drawing. For me, I had an idea to introduce a randomized element to spells to offer a proper gameplay hook, drawing a bit from popular games but ultimately owing to my own personal love of Magic the Gathering to bear the idea of literally 'drawing' spells.
- Responsibilities -
- For this project, I was the primary developer, with a focus on the game mechanics and systems
- - Design the overall layout of the screen, orientating spellcards low with health bar exagerrated like a 'boss' in other games
- - Code and implement all game mechanics and systems within the p5.js Javascript library, alongside sound design work
- - Structure a risk/reward loop around players managing spells in their display, trying to use them optimally while keeping them cycling
- - Implement the work of Garcia, and external art/music assets with attribution when necessary
- The Process -
One of the most immediate challenges faced when beginning to tackle this project proper, was the sheer time scale available to me. With only a few weeks left when properly proposed, I decided to view it as a “Game Jam’ experience as the professor recommended. After all, the industry will hardly be a much more gentle experience will it? That, and in a strange sense, I craved that challenge. I think for my work, something that elevates my methods is that drive to push, to have something to prove, to triumph within the last moment.
Amongst the earliest sketches of the game, outlining spell ideas.
Working in p5.js, I felt myself relying upon my familiar experience to establish systems quickly, much of the code was simply more optimized versions of prior work I had written. One method I took directly from Primal Edge and other projects is a dedicated ‘NavMesh’ object, allowing me to coordinate far more complex movement for my enemies rather than letting them walk in functionally a space they had no real mapping for. Universal functions kept this early phase of prototyping moving along efficiently, as I shared game design documents sketched on paper with my collaborator to keep our workflow in sync.
I settled on various gameplay decisions as this project's development time drew to a close, firstly I designed spells to be novel, not all necessarily ‘efficient’. Each sought to fulfill a unique role, allowing the player to live on a ‘fantasy’ of a wide suite of spells. On the topic of constraints in design, I realized how quickly spells stood out more by being more limiting. For example, originally multiple spells could grant healing, but I decided instead keeping it restrained to Drain resulted in it feeling more special, and frankly felt more right. Enemies originally were generally faster, but I found during my couple playtests and in my own exploration they were just overbearing. As aiming your spells follows where the player goes, there is a unique balance between dodging enemies and firing spells. Indeed, Blitz is meant to play off that, with one of the highest single target damage values but being a straight dive into danger. Sound design assets were used from Pixabay by the creators of freesound_community, freesound_CrunchpixStudio, & DRAGON-STUDIO, combined with the track ‘Final Battle’ from Foreign Gnome’s Everhood nearly by itself completed this project for me, with getting all the art assets from my collaborator’s hard work fully sealing that deal.

The true form of our navMesh objects.
In reflection upon this project, I am happiest in its presentation, achieving that initial vibe the team wanted to capture of a 'reverse' dungeon boss encounter. While tough on time, achieving twelve unique spell effects keeps the project highly chaotic. And in what i'd like to handle better, this sheer variety is often overwhelming to first time players, needing to interpret what each spell does 'mechanically'. Perhaps including a 'spellbook' of various spell explanations may help on titlescreen, or better yet displaying a visual of where spells will 'target'. Ultimately though, I am grateful for having had the chance to produce something alongside Garcia, presenting to a clapping classroom at the end of semester.
Github Repo Live Browser Game Link
Final project in action.
Credit for External Resources used in Project
- Ambient Theme: Final Battle by Foreign Gnomes.
- Sound Effects credit to freesound_community, freesound_CrunchpixStudio, & DRAGON-STUDIO from Pixabay