✳ Choose your perspective
← Back to projects

06 / Z80 ASSEMBLY · AMSTRAD CPC

FroggoHop

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.

MY CONTRIBUTION

ECS engine, gameplay and levels

DATE

October 2021

DURATION

2 months

TOOLS

Z80 assembly · Amstrad CPC · ECS

01 / CONTEXT

The challenge.

Developing a game within the constraints of a classic platform, working directly with memory and assembly.

02 / PROCESS

My contribution.

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.

  • ECS engine and memory management in assembly.
  • Gameplay and mechanics programming.
  • Level design.
03 / OUTCOME

What we built.

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.
04 / DECISIONS

Development decisions.

The size of an entity matters

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.

A jump can be a table

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.

Separate systems under constraints

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.

05 / WALKTHROUGH

The project in use.

  1. Check the controls and start with three lives, identifying platforms, obstacles and enemies.
  2. Combine movement and jumps to reach the sign marking the stage objective.
  3. Watch the trailer and inspect input and physics routines to connect the visible movement with the jump table.
06 / EXPLORE

What to explore.

A way into the project through its screens, supporting material and, where available, its source code.

  • The manager’s memory reservation and the size of each entity.
  • The offset table that defines how a jump evolves.
  • How each system selects entities before updating them.

THE PEOPLE BEHIND IT

Credits.

Laureano Cantó

ECS engine, gameplay and design

Alicia Aurecchia

2D art and animation

Alejandro Gómez

Sound

NEXT PROJECT / 07

Every decision takes a turn.