Skip to content
After hours

iPhone game

TestFlight beta Not on the App Store yet

El Corre Corre

Ride a motorbike down Santo Domingo’s Malecón in this iPhone arcade game. Dodge traffic, or ride against it for double points.

El Corre Corre: the rider enters the oncoming lane, activating the x2 multiplier and earning points for near misses.
Riding against traffic doubles the score. Each near miss adds points.
Role
Solo: design, code, release
Timeline
Jul 2026 to now
Stack
TypeScript, three.js, Vite, Capacitor, Web Audio, Vitest

In TestFlight beta. Not on the App Store yet. Public code on GitHub. Status checked Oct 22, 2026.

By the numbers

108

unit tests in 11 files

0

audio files; all music and sound effects are synthesized with Web Audio

16

App Store screenshots at 1320 x 2868, 8 per language, generated by a headless tool

12

three.js getParameters calls per frame, reduced from 156 by a rendering fix

Fig. 1 Checking for a clear path before adding traffic
  • Spawn accepted

    Adding the vehicle leaves a clear path at least 1.7 times the player’s width.

  • Spawn refused

    Adding the vehicle would leave every gap narrower than 1.7 times the player’s width. It is rejected to prevent an impassable wall.

The check covers the whole road, including the shoulders. A unit test checks for zero impassable walls at cruise speed and full throttle, on both sides of the road.

The idea

El corre corre is Santo Domingo’s daily rush. In the game, you ride a motorbike along the Malecón, weave between guaguas and motoconchos, pull wheelies and weigh double points against riding into oncoming traffic.

What I built

I built the game in TypeScript and three.js, without a framework or physics engine, and packaged it for iOS with Capacitor. The road crosses three sections: the Malecón, the Zona Colonial with the Puerta del Conde, and El Campo. One configuration file holds every value that shapes how the ride feels, with comments explaining each.

Web Audio synthesizes all music and sound effects during play. The repo has no audio files. A headless tool renders named scenes at App Store dimensions in both languages and generated all 16 store screenshots. Development builds include a test hook for probes and fixed spawns; release builds exclude it.

The hard parts

  1. 01 Traffic that always leaves a way through

    Vehicles arriving together can block the road. Before spawning one, the traffic system measures the widest gap among vehicles arriving at the same time. It rejects the spawn if the gap is smaller than a configured multiple of the player’s width. A unit test checks for zero walls at cruise speed, at full gas and on both sides of the road.

    Where in the code: src/traffic.ts (opens in a new tab)

  2. 02 Protecting saved progress on iOS

    iOS can clear web-view storage when the phone needs space. I mirror saves from localStorage to native storage through Capacitor Preferences, preserving progress if that happens.

    Where in the code: src/storage.ts (opens in a new tab)

  3. 03 Sound without audio files

    Oscillators, gain nodes, filters, noise buffers and a compressor generate the music and effects during play. No audio files need to ship in the app bundle.

    Where in the code: src/audio.ts (opens in a new tab)

Before and after

BeforeAfterSource
three.js work per frame156 getParameters calls per frame; renderer.render took 0.43 ms on desktop Chrome.12 calls per frame; renderer.render takes 0.24 ms.Reported in commit 5b5bc39; I have not re-measured it.

What’s next

Release 1.0 on the App Store.

El Corre Corre: leaving the city on a road marked by an El Campo sign.
El Corre Corre results after a crash: a new record of 521 points, a mission checklist and a level gained, with Again, Menu and Share buttons.
El Corre Corre title screen, with three vehicles to choose from and a tap-to-start prompt.

Try it

Shared approaches