Weymouth, UKSoftware, security, and things built to understand themUpdated 11 November 2026

Tom Taylor

I build software people rely on.

The Lab

Lab · Simulation

Game of Life

Conway's Game of Life in Object Pascal, drawn pixel by pixel onto a Windows canvas. Written to learn Delphi properly after joining a Delphi company.

Game of Life in action

Conway’s Game of Life is a “zero-player game”. A grid of cells evolves on its own, by three rules:

  1. A live cell with fewer than two live neighbours dies.
  2. A live cell with more than three live neighbours dies.
  3. A dead cell with exactly three live neighbours comes to life.

I wrote this version in Object Pascal with the Delphi VCL, as one of my first projects after joining a company that works mostly in Delphi. Writing something small but complete was the quickest way to learn the language properly.

Complexity from simple rules

My board wraps at the edges, so it has no walls and patterns can run forever. The glider walks diagonally across the board indefinitely:

A five-cell glider moving diagonally across the grid
A glider.

The Gosper glider gun, shown at the top of this page, produces an endless stream of gliders. And the “exploder” starts as a plain line of cells, blooms into an intricate pattern, and always dies out after its 49th generation:

A line of cells expanding into a symmetrical pattern that grows and then fades
The exploder, from one line of cells to nothing in 49 generations.

How it is built

  • Rendering by hand. No game engine: each generation is drawn cell by cell onto a Windows forms canvas, with care taken over memory in the drawing code so long runs don’t leak.
  • Deterministic. The same starting board always evolves the same way, exactly to Conway’s rules.
  • Save and load. Patterns and board settings can be exported and imported, so they are easy to share.
  • Old Windows too. It compiles with Delphi 7 onwards, so it runs on versions of Windows as old as XP.

Ready-built Windows executables are on the GitHub releases page.