
Role:
Gameplay | AI Programmer
Enemy Behavior Designer
Animator
Sound Designer
Project Type:
Academic Project
Date:
May 2023 - Aug 2023
Skills:
AI Programming | Systems Design
Player-Centric Design
Adaptability | Continuous Learning
Team Size:
8
Project Description:
Elemental Surge is an action platformer initially developed in a C-based engine.
I served as the Gameplay and AI Programmer during it initial development, then played a vital role in porting the game to a custom C++ engine, enhancing its performance and flexibility.
I also upgraded the enemy AI from state machines to Behavior Trees, creating dynamic and intelligent enemy behaviors, ultimately improving the game's overall quality and player experience.
This game is heavily inspired by game series such as Castlevania, Metroid and Ori. During the porting, I took a lot of inspiration from Dead Cells when thinking about how to polish this game's mehanics.
Contributions:
Implemented player mechanics, including double jumping, dashing, and wall climbing.
Developed and fine-tuned enemy behaviors using custom-built behavior trees.
Adapted a lighting system from C code to OpenGL shaders.
Challenges:
Porting the game from the C-based Alpha engine to the Flintlock engine.
Some code was easy to adapt, while other parts had to be completely remade. For example, the lighting system had to be moved to a shader, so I spent time learning about shader programming.
Accomplishments and Lessons Learned:
I migrated enemy behaviors to behavior trees from the finite state machine they were originally using.
I adapted lighting to OpenGL, which was challenging but enjoyable as it allowed me to learn more about graphics.
I polished the platforming sections of the game by adding nice quality of life features that were not in the original game to imporve the overall feel of the platforming mechanics.
I added camera panning to help expand the field of view during some sections which helped mitigate situations like players needing to make leaps of faiths.
I added air time at the apex of the jumps to give players moer time to switch between elements in mid air to excute more complex movement combinations.