An endless 3D arcade flyer over the Istanbul strait: as a seagull, snatch simit from ferry decks, dive for jumping fish, dodge bridges, masts and kites, and fly on from a golden afternoon through sunset into a night of fireworks.
Play online: https://furkiozknn.github.io/marti/ (desktop and phone, no install)
- An endless run that speeds up. Steer inside the corridor over the water; the first 30 seconds are forgiving, then the run gets faster and busier.
- Stamina and three feathers. Stamina drains faster and faster and only simit and fish refill it; every crash costs one of three feathers.
- Obstacles with their own rules. Bridge decks and cables, ships' hulls, cabins, masts and sails, kites on long strings, storm clouds that push you and a rival gull flock that steals your simit.
- Power-ups and combos. Tailwind (speed and score x1.5), golden simit (score x2) and a shield feather that blocks one hit; a combo multiplier climbs up to x5.
- Day to night over Istanbul. Mosques with domes and minarets, the Galata tower, the Maiden's tower on its islet, yalı mansions and city ferries, from afternoon gold through sunset to a starry night with lit windows and fireworks.
- Daily missions and high scores. Three missions a day and a local top-5 table, saved in your browser.
- Generated music and sound. A beat with layers that build as you speed up, wing flaps, gull calls and ferry horns, all made with Web Audio; pausing or hiding the tab silences everything.
Tip
Goal: fly as far and score as high as you can. The run is over when your stamina runs out or you lose all three feathers.
Steer the gull with the mouse, a finger or the arrow keys, and keep it in the corridor over the water. Fly through simit
on ferry decks and in the air to refill stamina and build a combo; dive (hold Space, hold the mouse button or tap) to
catch jumping fish.
More rules
- Stamina starts full and drains a little faster every second, and faster still while you dive.
- Every pickup in a row raises the combo; every fourth one adds 1 to the score multiplier, up to x5. A pause in pickups resets it.
- The rival flock steals your simit: it costs stamina and resets the combo.
- Hitting a bridge deck, a cable, a hull, a mast or a kite costs a feather, unless a shield feather absorbs the hit.
- Every day brings three missions (for example a 10 combo in one run or a distance to fly); the top 5 runs are kept.
| Action | Mouse / touch | Keyboard |
|---|---|---|
| Steer | move the mouse / drag (relative to where the finger went down) | arrows / WASD |
| Dive (for fish) | hold the mouse button / tap | hold Space |
| Start / play again | Start button | Space / Enter |
| Pause menu (Resume, Restart, Settings, Main menu) | pause button | P / Esc |
| Music / effects / language | top bar | M / X / L |
| Fullscreen | settings | F |
Settings (master, music and effects volume, TR / EN, Low / High quality, fullscreen) are saved in localStorage under
arena.marti.settings; the top 5 scores under arena.marti.best and the daily missions under arena.marti.save. The
first visit follows the browser language.
URL flags for testing
| Flag | Effect |
|---|---|
?auto |
the game plays itself (self-test bot) |
?debug |
fps, draw calls, state, loaded assets and JS errors on screen; window.martiSim(seconds) fast-forwards the game |
?sim=N |
fast-forward N seconds once the assets are ready |
?low |
no shadows, pixel ratio 1, half the particles |
?noassets |
skip the generated models (procedural look) |
?lang=en / ?lang=tr |
language |
?run |
start a run straight away |
?t0=N |
start each run N seconds into the day (?t0=150 is night) |
![]() Title screen and daily missions |
![]() Afternoon over the strait |
![]() Under the bridge |
![]() Sunset and the Galata tower |
![]() Night, golden simit active |
![]() Run over, new record |
Serve the folder over HTTP (opened from file://, the browser blocks the model files and the game uses its procedural
models):
python -m http.server 8000
then open http://localhost:8000/.
Built by Claude Haiku 5.5 with Claude Code from one prompt: prompts/marti.md. The first version was fully procedural: the strait, the shores, the boats, the landmarks and the gull are low-poly primitives with vertex colours, and the music and sounds are synthesised with the Web Audio API. Before release, an independent bot run in a real browser flew 796 seconds before running out of stamina, with 0 JS errors.
The assets were remastered by the orchestrator, Claude Opus 5.5, with generated models: Tripo text-to-3D (through
Higgsfield) for the simit (also the golden simit), the fish, the shield feather, the ferry, the fishing boat, the
sailboat, the mosque, the Galata tower, the Maiden's tower and the yalı, and GPT Image for the crest and the favicon.
They were fitted with glTF-Transform (about 0.88 MB in assets/), and every procedural model stays as the fallback. A
generated gull was tried and rejected, so the gull is a redesigned procedural one with grey wing tops, white undersides
and black tips. Prompts, sizes and the rejected models: docs/assets.md. A Godot 4 remake was made in
round 2.
Martı is part of the Claude Game Arena series, where each game is built by a Claude model from one prompt. The other games: Hisar · Çay Ocağı · Çini Ustası · Kervan · Dolmuş · Peri Golf · Mehter · Boğaz Vapuru · Simit Fırını · Karagöz · Lale Bahçesi
Round 5: Kapadokya Balonu · Ebru · Kırkpınar · Çarşı Kaçışı
Round 6: Topkapı Gecesi · Hamsi · Pamukkale · Mimar Sinan
Martı, İstanbul Boğazı üzerinde geçen sonsuz bir 3D arcade uçuş oyunu. Bir martı olarak vapurların güvertesinden simit kap, sıçrayan balıklar için dal; köprülerden, direklerden ve uçurtmalardan kaç. Altın bir öğleden sonradan gün batımına, oradan havai fişekli bir geceye uç; her gün üç yeni görev var. Kurulum yok; masaüstünde ve telefonda tarayıcıda oynanır. Claude Haiku 5.5 tarafından Claude Code ile tek bir prompt'tan yapıldı.
Oyna: https://furkiozknn.github.io/marti/
MIT, see LICENSE.









