The challenge.
Developing a game within the constraints of a classic platform, working directly with memory and assembly.
06 / Z80 ASSEMBLY · AMSTRAD CPC
Big jumps. Limited resources.
An Amstrad CPC platformer written in Z80 assembly. Reaching each level’s sign means avoiding obstacles and enemies with just three lives.
ECS engine, gameplay and levels
October 2021
2 months
Z80 assembly · Amstrad CPC · ECS
Developing a game within the constraints of a classic platform, working directly with memory and assembly.
I implemented the ECS engine, mechanics and gameplay, as well as level design. The work was coordinated with the team’s art, animation and sound contributions.
A platform game available on itch.io, with its repository and trailer. A project where the machine’s constraints become part of the design.
Working close to the hardware changes how you think about every piece of data and every operation.
The manager reserves a memory block for a maximum number of entities and tracks the active ones. Traversing that block in assembly means working with addresses, sizes and registers. Data organisation becomes a visible part of the engine and its capacity.
The implementation includes a sequence of offsets for the frog’s jump. Rather than hiding movement behind a high-level abstraction, its progression is expressed as data traversed by routines. This makes it possible to study how small operations create a sense of motion.
Input, physics, collision and rendering live in separate modules. Routines select entities according to the components they need to process. The ECS structure remains recognisable, although memory and execution decisions are expressed directly in Z80 for the Amstrad CPC.
A way into the project through its screens, supporting material and, where available, its source code.
A CLOSER LOOK
Open any image to explore the gallery.
THE PEOPLE BEHIND IT
ECS engine, gameplay and design
2D art and animation
Sound
NEXT PROJECT / 07