Games

Arcade games and custom engines

Endless 2D, 3D and raycasted arcade games plus lightgun titles, running on engines built from scratch.

Published · Updated

  • TypeScript
  • Canvas 2D
  • WebGL
  • WebRTC
Play on arcade.gkheart.ca →

What it is

arcade.gkheart.ca hosts endless-style arcade games that run in the browser: 2D games, 3D games, raycasted 'pseudo-3D' games in the style of early first-person shooters, and lightgun titles controlled from a phone.

Why build engines from scratch

Writing the engines directly, rather than using a large general-purpose framework, keeps each game small and fast to load, and means every part of the frame — input, simulation, rendering — is understood and can be tuned.

A raycaster is a good example: for each column of the screen a ray is cast into a grid map, the distance to the first wall decides how tall that column is drawn, and a correction for the fish-eye effect keeps walls straight. It is a few hundred lines of code, and every one of them matters.

Playtesting as QA

Games are tested the way players use them: long sessions, odd inputs, slow devices and dropped connections. Bugs found this way feed back into the engines, so later games inherit the fixes.

Related