kitsonlow.
All work/alive-organismsPROJECT_03
Browse projects
C++ & COMBAT SYSTEMSAcademic project

Alive Organisms.

A Dead Cells-inspired action-platformer built by a four-person team. I designed the combat input queue and boss attack structure, and helped design the spatial partitioning system.

Combat and systems programmer · Team of four
C++COMBAT INPUTSTRATEGY PATTERNSPATIAL PARTITIONING
PROJECT_03 / ALIVE_ORGANISMSAug 2017

NYP · 2017

C++ & COMBAT SYSTEMS

Alive Organisms

Explore the grid
Alive Organisms typography cover with a highlighted nearby grid region
Role
Team
Stack
01 /

The project

Built in C++ using the NYP graphics framework in 2017, Alive Organisms combines tile-based platforming with melee and ranged combat, equipment and boss encounters. Dead Cells influenced both the gameplay and the name.

02 /

My contribution

My main responsibilities were the combat input queue, boss attack strategies and part of the spatial partitioning design. I also implemented melee hitboxes, directional projectiles, damage handling and invulnerability frames, and worked on movement fixes and animation integration.

03 /

Queuing combat input

I designed the input queue to coordinate player commands with the action already in progress. The controller tracks the current action, its animation timing and when it can be cancelled. Directional attack combinations are dispatched through function tables.

I also fixed cases where a command triggered two actions.

04 /

Modular boss behaviour

I organised boss attacks into separate strategy classes with a common interface for initialisation and updates. Each boss selects an attack, runs it until completion, then returns to idle.

Plague can summon enemies, release poison bubbles and charge, while Famine uses melee attacks and arcing projectiles. Keeping each attack in its own class separated its behaviour from the boss logic that selects it.

05 /

Processing nearby entities

I helped design a fixed grid that groups entities by their location in the level. During exploration, the entity manager first gathers entities from the player’s region and its surrounding regions. It then checks them against an expanded bounding box around the player.

The resulting list is used for dynamic entity updates, collision checks and rendering. Entities in the global group are always included, while moving entities are reassigned when they cross region boundaries. Boss encounters use a separate set of regions.

Illustrative preview of the interactive playgroundINTERACTIVE PLAYGROUND ↗

Spatial partitioning playground

Move the player to see which regions are queried and which entities pass the bounding-box check. Adjust the population and query bounds to see how the candidate and nearby entity counts change.

Open playground ↗
KEEP EXPLORING

The next project.

04 / C++ & ALGORITHMS

Quadtree & Lua Systems Demo

A technical demo exploring dynamic spatial subdivision, template-based Lua bindings and debugging tools.