Eclipse of the Swarm

6/2/2026

Overview

Eclipse of the Swarm was a 6 week group project I completed with three classmates for COMP 4300, Intro to Game Programming, taught by Dr. Dave Churchill.

All physics and interactions were implemented from scratch through assignments and class instruction. The team planned and implemented the hero mechanics. The only pre-existing work was setting up SFML and Dear ImGui so we could focus on learning game development as software engineers.

My Role(s)

As the team leader:

  • Wrote the project proposal for review and implementation.

  • Delegated tasks to each team member based on the proposal, including:

    • Weapon mechanics

    • User Interface system

    • Enemy AI (simple and complex)

    • Save system

    • Player movement mechanics

    • Etcetera

  • Coordinated team sessions for collaborative work.

As a team member:

  • Implemented simple physics (the team used my assignment as a base).

  • Built a finite state machine (FSM) for enemy state behaviour.

  • Implemented a basic animation system.

  • Developed the level editor used to create levels.

  • Produced or sourced all art and sound effects.

Technology

  • C++23 - is a compiled, object-oriented, general-purpose programming language designed for high performance and fine control over memory and system resources.

  • Dear ImGui - is a lightweight immediate-mode GUI library for quickly building developer tools, debug interfaces, and prototypes in C++ applications.

  • SFML - is a simple, cross-platform multimedia library for C++ that provides windowing, graphics, audio, and networking support.

Strengths

  • The lighting system and survival mechanics successfully creates a sense of horror.

  • The game is challenging to complete, due in part to iterative playtesting by each team member.

  • All planned mechanics were implemented, resulting in a puzzle system similar to a metroidvania-style game.

Weaknesses

  • The art style did not convey the sense of a horror game.

  • Planned final boss was too elaborate to implement in time.

  • Coordination for collaborating was at times challenging due to different work/school schedules.

Post Mortem Lesson(s)

This was an extremely fun project to work on and collaborate with, especially seeing it come together through iterations. I did not anticipate how complex the project would become, and I made the mistake of choosing a simpler push-pull GitHub workflow instead of using branches with a pull-request merge workflow to avoid merge conflicts. Furthermore, the game was a single monolithic file, which made implementation even harder because any edits to earlier sections of code could create merge conflicts.

In a future project, I would be adamant about breaking the project into modules and importing them into a main compositional file or class. A kanban board system would have been useful for tracking progress, such as breaking down the proposal into to-dos that a team member could work on independently. Organization is essential for keeping a project on track for success, especially when it involves other developers with different schedules.

Although we did not have time to implement some of the nice-to-haves for this project, it was satisfying to develop it to completion, meaning planning, designing, and implementing a game that is challenging and can be completed from start to finish.