Investigations

Jetpac Remastered

TypeScript November 2025

A retro Jetpac game with Entity Component System architecture, WebGL CRT scanline effects, and a Python high-score server.

This is a remaster of the classic 1983 ZX Spectrum game Jetpac. The jetman collects rocket parts, fights aliens, and refuels — but now with WebGL post-processing that recreates the CRT scanline and phosphor glow of a real Spectrum display.

The architecture uses an Entity Component System (ECS) — a well-known game pattern where entities are IDs, components are data, and systems process entities with matching components. Separate systems handle Physics, Collision, and Rendering. The code organisation reflects this cleanly: core (Engine, GameLoop, Input), ecs, entities, systems, rendering, audio, config, ui.

The ZX Spectrum colour palette is authentic. The WebGL post-processing pipeline layers scanlines, phosphor glow, and slight curvature on top of the Canvas 2D game rendering.

There's a Python high-score server and a "newtime" directory with a modernised version of the game. Two versions in one repo — retro faithful and modern take.

What this project demonstrates

Entity Component System (ECS) architecture
WebGL CRT scanline and phosphor glow effects
Authentic ZX Spectrum colour palette
Separate Physics, Collision, and Rendering systems
Python high-score server backend
Two versions: retro faithful and modernised

Technologies

GameRetroECSWebGLZX Spectrum

© 2026 Jonathan Leahy · v1.0.9