Inspiration

What if you could redraw a map without an army, just by talking? For the "map" theme, we wanted a game where the map isn't something you look at, but something you change, where the borders move because of something you said. Giving every ruler their own AI personality meant you could actually talk to them, so your words became your only weapon.

What it does

You are the Warden of the Crossing, a small neutral valley surrounded by five nations. Each has its own ruler, grudges, friends, and a secret it won't tell you. Over four seasons, you try to achieve the ambition you picked at the start: get rich, grow your land, start a war between two nations without getting caught, or end the year with every war over. Along the way, you practise real negotiation skills: reading people, keeping track of what you've promised, and weighing risks.

You do it by talking. You can hold an audience with any ruler and say whatever you like in plain words. Promise them trade rights, warn them that their neighbour is arming, or lie outright. The rulers answer in character, and they remember. Everything you say goes into a ledger, and the courts gossip along the roads, so a lie told in one palace can be caught in another two seasons later. Letters arrive asking you to let armies through, close a pass, or host peace talks. When you're ready, you ring the bell, and the season plays out on the map: armies march, borders change hands, and you see exactly which of those things were your doing.

How we built it

It's a React and TypeScript game, with the map generated from a seed and drawn in a hand-inked style in SVG, so no two games look the same. A pure, seeded engine works out who goes to war, who believes you, and who catches your lie. OpenAI plays the rulers, streaming their replies as you talk, and then reads the conversation back to pull out your promises and claims as structured data the engine can check. ElevenLabs gives each ruler a voice. The server builds every prompt itself, so nothing from the browser can talk a ruler out of character.

To keep it fair, we wrote a bot for each ambition and had them play hundreds of games at a time, tuning the numbers until each ambition was winnable about half the time.

Challenges we ran into

The biggest one was making a tutorial that people actually understood. The first version showed you every button and then left you on your own, so players knew what they could do but had no idea what they should do. We ended up with a short story intro that draws the nations and their grudges onto the map one by one, a guided first season, and hints that always suggest a move when you are stuck.

Keeping the AI rulers honest was tricky too. Left alone, an AI will eventually agree to anything if you keep pushing, so we gave rulers patience that runs out, and capped how much a single conversation can change their minds.

Accomplishments that we're proud of

The UI. It feels like a game, with the parchment map, the candlelight, and the letters sliding onto the table.

It's also fun to tell a convenient untruth to one ruler, ring the bell, and watch it cause a war two nations away, with the game showing you that it was your doing.

What we learned

We learned how to give each leader their own agent, with their own personality, memory, and way of speaking, while making sure none of them could break the rules of the game. Splitting it so the code decides and the AI only talks is what made that work.

What's next for DIPLOMAPS

  • Multiplayer: friends playing rival Wardens, scheming over the same AI nations and trying to catch each other's lies.
  • Longer campaigns: more seasons, and consequences that carry over from one game to the next.
  • More animated wars: sieges, marching armies, and battles you can watch play out.

AI used across the development and implementation of the project

  • OpenAI API for conversations with nations and interpreting promises and potential lies.
  • ElevenLabs API for text-to-speech
  • Claude code for dev help
  • ChatGPT sol 5.6 for dev help

Go through the tutorial, play around and have fun! The in-game tutorial explains everything in more depth than we could fit into three minutes.

Share this project:

Updates

Submission history