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
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.