Games · Devlog #02 · personal project

Coliseu IA

When the fighter thinks with an LLM

A 2D fighting game you don’t play: you watch two AIs fight. In Quick Match a local heuristic decides; in the optional LLM mode a language model makes the calls, and the fight falls back to the heuristic on its own if it fails.

Pixel-art illustration: two generic fighters face off in a colosseum arena at night, with torches and “VS” in the sky; a gear icon above one, a small node network above the other.
Pixel-art illustration made for this post. Not a capture from the game.

Two AIs walk in

Two AIs walk in. One walks out. You just watch. Coliseu IA (AI Colosseum) is a 2D fighting game where you never press an attack button: you pick the fighters and watch two artificial intelligences take each other on.

It doesn’t solve a business problem. It’s a showcase. The point is to show, in a visual and fun way, what changes when a decision moves from a hand-written heuristic to a language model. In a 30-second fight, anyone can see the difference.

Three modes

Quick Match

Both AIs decide with a local heuristic. No key and no external service needed, so it can be shown anywhere, even offline.

Local Play with AI

The optional LLM mode: the fighters’ actions are chosen by a language model (Gemini 2.5 Flash). If the model doesn’t answer, the fight falls back to the heuristic on its own.

Online multiplayer

It shows up in the menu as “Em construção” (under construction). It’s a declared placeholder, not a hidden feature.

The first two modes are complete. The third is there to make it clear where the game is heading.

What a fight looks like

  • Two fighters, with a character select screen.
  • 30-second rounds, until one fighter’s health runs out or time is up.
  • ESC pauses and truly freezes everything: the AI, movement, collision and the timer.
  • Soundtrack and sound effects, with volume control.
  • Interface in Portuguese.

The LLM is an upgrade, not a requirement

The design decision I like most here is graceful degradation. The whole game works without any language model. The LLM mode improves the fight when it’s available and steps aside quietly when it isn’t.

  1. The fight needs a fighter’s next action.
  2. With LLM mode on, the language model picks the action.
  3. If the model isn’t set up or the call fails, the local heuristic takes over right away.
  4. The match goes on, now decided by the heuristic.

And since there’s no build, demoing it is easy: it’s plain HTML, CSS and JavaScript, with nothing to install.

A cousin of Echoes of Aether

Coliseu talks to Echoes of Aether, devlog #01. They are three ways to hand a decision to a game character: in Echoes, enemies learn with Q-Learning; here, the same fight puts a heuristic and an LLM side by side.

Heuristichand-written rules, always available.

LLMa language model picks the action, when it’s available.

Tech sheet

Status
Working game with two complete modes. Online multiplayer under construction.
Platform
Browser, no install and no build
Graphics
HTML5 Canvas + GSAP
Code
Plain JavaScript, no package.json and no bundler
AI
Local heuristic; optional LLM (Gemini 2.5 Flash)

Want to talk about game AI, or about falling back from an LLM without breaking the experience?

Write to me