Project

PC/Nintendo Engine for Strategy Games | FireAnt

A cross-platform engine demo featuring particle systems, ECS architecture, inspector hierarchies, and GLTF 3D model support.

PC/Nintendo Engine for Strategy Games | FireAnt Preview

🎓 About the Project

FireAnt is a cross-platform engine, with Nintendo and PC. It was made to create strategy game in a team of 7 programmers, over 8 weeks. I focused on graphics programming and on the cross-platform API for Nintendo using OpenGL.

🛠️ Skills Developed

  • Cross-Platform Development: Designed the rendering layer for Nintendo and PC compatibility with a focus on abstraction and maintainability.
  • Core Engine Systems: Worked within an ECS architecture using entt and cereal for serialization.
  • Engine Inspector UI: Utilized ImGui to create editor windows for managing entities, resources, and scene data.
  • Teamwork: Contributed to code reviews, enforced coding standards via Github Actions, and led some meetings.

⚙️ My Contributions

⛰️ Terrain with Tessellation Shaders

I first tried to implement tessellation while working on the Grand Strategy Renderer, but didn’t manage to finish it due to time constraints.

In this project, I got it working, rendering the same terrain ~4× faster than geomipmapping on the CPU, with better visual quality and lower memory usage.

GPU-based terrain tessellation with dynamic LOD

TechniquePerformanceMemory UsageScalabilityVisual Quality
Naive~17msHighPoorGood
Geomipmapping~4ms/frameLower than naiveGoodGood (with tuning)
Tessellation Shaders~1msLowBestBest

🎯 Frustum Culling

To optimize rendering, I implemented an early out check using a two-stage culling system.

With 8000 billboarded sprites, frustum culling reduced the render time from ~30ms to 5ms.

Color-coded culling visualization - Green: visible, Red: outside frustum, Orange: outside sphere

Performance improvement: 8000 animated sprites rendered in ~5ms (down from ~30ms)

🎇 Particle System

The particle system was our main tool for adding “juice” and responsiveness to the game. It supported basic parameters with interpolation: color, velocity, acceleration and scaling.

Particle scaling interpolation over lifetime

Hit particle effect triggered on enemy impact

🎬 Animation System for Billboarded Sprites

Our brief required a 3D world with 2D sprites representing units. I implemented an animation system with events used in gameplay by other programmers.

Event-based animation system triggering console messages at keyframes

🎮 Demo

Isle Be Damned was a strategy game in the style of Bad North.

Isle Be Damned - Strategy game demo inspired by Bad North

We also attempted a more traditional RTS similar to StarCraft, but ran out of time adapting it for Nintendo Switch.

Terranox - Traditional RTS prototype