Devlog

Devlog 001 · · Part 1 of 10 · Alfama Fighter Turbo

How I built an arcade fighting game in nine days with AI agents

A day-by-day account of the nine days it took to make Alfama Fighter Turbo, a fighting game set in Lisbon, with a studio of AI agents, and the numbers they produced.

A card reading Nine days of Alfama Fighter Turbo in pixel letters, beside a frame of the game: round one in a crowded Lisbon street at night.

I'm Pedro Gomes. Between 4 and 12 October 2026 I made Alfama Fighter Turbo, an arcade fighting game set in Lisbon in the spirit of Capcom's 1992 Street Fighter II Turbo, which runs in a web browser. I made it by directing a studio of AI agents in Cursor, the code editor I work in. One agent planned the work and handed it to others, each given a job a game studio has: art director, animator, composer, programmer, tester.

The split was simple. I supplied the taste: what the game should be, which design won, whether it felt and sounded right. The agents did everything else: the code, the documents, and the art, which they generated, cut up and checked. This post goes through the nine days and counts what came out of them.

Here's the main trailer, a minute long, filmed from the game itself. It plays on YouTube.

The Alfama Fighter Turbo main trailer on YouTube: its closing title card, the logo and Coming soon over the roofs of Alfama at night.

The game

It plays the way the Street Fighter II cabinets did. There are six attack buttons, special moves made with joystick motions, and combos, several hits in a row the other player can't block or escape. A match is two rounds out of three against a clock that starts at 99. The screen is 384 by 216 pixels, about the size of the arcade original's, scaled up by whole numbers so the pixels stay square. The fighters are about 100 pixels tall.

Alfama Fighter Turbo's title screen: the logo and PRESS START over the roofs of Alfama at dusk, with the river behind.
The title screen, drawn at the game's own 384 by 216 pixels.

There are eight fighters from Lisbon's history, legends and streets. O Fadista sings fado, Lisbon's traditional song. A Padeira is the baker who, the legend says, fought off Castilian soldiers with her bread shovel. Dom Afonso Henriques was Portugal's first king, and Camões its great poet. A Varina sells fish in the street, Zé Povinho is a cartoon everyman from the 1870s, A Avó do Chinelo is a grandmother armed with her slipper, and O Calceteiro lays the city's cobbles. The last opponent, the boss, is Adamastor, the storm giant from Camões's epic poem. The ten stages are across the city, from the steep streets of Alfama to the Ponte 25 de Abril, the red suspension bridge over the river. All of the music and sound is synthesised by the game as you play; there isn't a single audio file in it.

By 12 October it had an arcade mode with an ending for each fighter, matches for two players on one machine, and training with combos to practise. Online, it had ranked play, where the server checks each score for the leaderboards, matches between two devices, and tournaments for groups of friends. It isn't released yet: while I polish it, it's online for friends to play.

O Fadista squares up to A Varina in a crowded Bairro Alto street at night as ROUND 1 is called.
Round one in Bairro Alto, Lisbon's old nightlife quarter: O Fadista, the fado singer, against A Varina, the fishwife.

How it started

On Sunday 4 October I had just finished Paradise Café, my browser remaster of a 1985 Portuguese ZX Spectrum game, made as a surprise for some childhood friends. I asked the agent I'd built it with whether a fighting game in the style of Street Fighter, set in Lisbon, was "something we can handle". A few messages later I set the ground rules:

Let's keep this browser only, this is not a commercial game, it's mostly for fun to share with some friends and maybe see we can get something viral going.

That evening produced a design document and a plan to prove the idea on one fighter before committing to a roster. The next morning, with that fighter half-built, I asked for a whole studio of agents:

We're essentially putting together a full game studio that works in tandem to ship this game.

From then on the work was organised the way a game studio organises it: jobs, design documents, and milestones (stages of the project, each with a goal and a check at the end).

How the studio worked

I talked to one agent only, the producer. It turned what I asked for into a plan. It wrote instructions for the other agents, each playing a role for one piece of work, checked what they sent back, and added it to the main version of the game, which is called a merge. It kept a board beside our chat in Cursor, a live page showing the plan, what was running and what was waiting on me.

Each piece of work was a lane: one agent working in its own copy of the project, so several could run at once without getting in each other's way. The agents don't remember each other's work, so the studio kept its memory in documents. Each area of the game had its bible, a design document every agent in that area read first, the way a big team keeps its look consistent. A decisions log recorded every decision with its date and reason.

The days were mine and the nights weren't. While I was around, I played, listened, picked and wrote notes. When I went to bed, the producer ran whatever needed no decision from me and kept its questions for the morning.

The nine days

A timeline of nine days, 4 to 12 October, with a row each for the studio, fighters, stages, music, modes, online play, tools and polish. A playhead sweeps from Sunday 4 to Monday 12, lighting each milestone as it passes, while a bar for each day's commits rises beneath.
What each part of the game had by the end of each day, with the commits (saved changes to the project) made that day.

Sunday 4: one chat produced the design document, the first fighter's look, and an agent sent to research how Street Fighter II's art was made.

Monday 5: the studio was set up. Agents in their roles wrote five bibles in a few hours: one for the art, one for animation, one for the music and sound, one for the fighters and one for the stages. Their open questions came to me as one form. I answered eleven of them and took their recommendations for the other 23, and by 15:52 the cast, their powers and the stages were agreed. The first fighter, O Fadista, was playable in the Alfama stage with his own theme. That night I asked the studio to carry on while I slept, the first night shift.

Tuesday 6: the second fighter, Dom Afonso Henriques, went from drawings to the game in a day, to show that the way the first one was made would carry over to the rest. The title screen and menus became work of their own, in parallel.

Wednesday 7: fighters and stages came in pairs, each fighter with his or her stage and music, in lanes running side by side. I asked for a page to hear every piece of music and sound, and the sound bench was in the game by 23:04.

Thursday 8: six lanes had run overnight. They built online play, Adamastor's moves, the bridge stage, Santa Catarina (a viewpoint over the river) in a storm, the music for the boss and the menus, and the arcade mode with its endings. Fighters were now chosen on a map of Lisbon. The roster was complete at 11:38. The art bench, a page lining up every fighter and stage with their measurements, joined the sound bench. I played the game for an hour around midday, and that afternoon approved every stage, every fighter and the music, with polish to come.

The character select screen as an illustrated map of Lisbon with the fighters' portraits at their homes; then a tram's route across the map to the first opponent, and the VS screen: O Fadista against A Avó do Chinelo in Bairro Alto.
Choosing a fighter on a map of Lisbon, then the route to the first fight.

Friday 9: the game went up at a link I could share with friends. Three new milestones opened before the evening: performance and memory, the credits, and making the fights feel better.

Saturday 10: the busiest day, 348 commits. Combo counters, supers (stronger moves unlocked by filling a meter) and the combo trials came in overnight, and ranked play with leaderboards was designed and built in the day.

Sunday 11: tournaments for friends went live, along with a secret in the credits and the first proposals for a new logo.

Monday 12: the polishing phase began. I picked the logo and approved a new mix of the music. The desktop version, for a possible Steam release I'd asked about on the Wednesday night, was built for Windows, macOS and Linux for the first time.

What it added up to

Pixel-art figures counting up: 1,548 commits in nine days; 114 lanes merged, 261 decisions written down, 114 agent chats, 1,362 tests, 59,461 lines of game and server code and 48,413 lines of tools; then two bars filling at the same speed, about 1 GB of art in the project against the 12 MB the game ships.
The counts at the last commit of 12 October, and the board's list of agent chats that evening.

In nine days the studio made 1,548 commits, and 114 lanes were merged into the game. The decisions log ended up with 261 entries, and by Monday evening the board listed 114 agent conversations.

Three figures stand out. The first is the tools. The game and the servers behind its online modes are 59,461 lines of code. The tools the studio wrote to build, measure and check them are 48,413 lines more, with 1,362 tests on top. Agents can't look at a sprite, one drawing of a fighter, or hear a mix the way I can, so a lot of the studio's effort went into tools that measure for them. The ninth part, Tools as reviewers, is about them.

The second is the art. The fighters and stages were drawn by an AI image generator from the studio's descriptions, then cut into sprites, measured and corrected by the studio's tools. The project's files hold about a gigabyte of it: the generator's original images, previews, and the designs I chose between. The game ships about 12 MB, and a first visit downloads about 1.1 MB. Most of what was generated never reaches a player.

The third is the nights: 418 commits, more than a quarter, were made between midnight and six in the morning, mostly while I was asleep.

What I did

For the first five days the studio kept a copy of every message I wrote in the chat that ran it: 80 of them, from that first question to "status update please" on Thursday night. Most were short. Some were notes on what I saw or heard ("the legs are still not alternating"), some were ideas ("one of the bosses has to be Adamastor", when a secret boss was planned too), and some were just "continue".

The rest of my part was choosing: between three designs for each fighter, between options the producer laid out with its recommendation first, and whether each milestone was done.

The calls

  • Browser only, made for fun. Mine, on the first evening: not a commercial game, a link to share with friends. A desktop version for Steam came up later, on the Wednesday night, as something to look into.
  • Prove it on one fighter first. The agent's plan on the first evening, which I agreed to: O Fadista, complete, in one stage, before committing to a roster.
  • Run it as a game studio. Mine, on the Monday morning: roles, milestones and finished pieces of work, with one agent coordinating the rest.
  • English everywhere but the names. Mine, also on Monday. The game is set in Lisbon, but that didn't mean the menus had to be in Portuguese, so the menus and the code are in English and the characters keep their Portuguese names.
  • Online play, latency first. Mine. I raised online matches on the Tuesday, for later, and from then on the fights were written so they could go online without a rewrite. On the Wednesday night I added that "for a game like this latency is really key". So online play was built with rollback, the technique online fighting games use to hide network delay, from its first version.

Next in the series: how the studio was set up, its roles, its documents and who decided what.