# Goop Troops

> A multiplayer strategy game where territory grows like an organism and one cut can break an opponent’s supply line.

Canonical page: [Goop Troops](<https://devanmetz.com/portfolio/goop-troops/>)

Project date: Feb 2026

Updated: 2026-10-13

Category: Game development

Status: Browser game

Tags: TypeScript, React, Multiplayer, Realtime simulation

- **My work:** Game systems, web client, and multiplayer service
- **Platform:** Browser · desktop and touch controls
- **Play:** Up to 8 players · bots · ranked 1v1

- [Play Goop Troops](<https://gooptroops.org>)
- [Find it on itch.io](<https://dgm12385.itch.io/goop-troops>)

## In short

I built Goop Troops as a browser strategy game where every piece of territory needs a connected route. Cutting a narrow supply line can bring down a much larger army. You can learn against computer-controlled opponents, join public matches with up to eight players, or play in private rooms.

![Colorful branching armies competing across the Goop Troops grid.](<https://devanmetz.com/_astro/goop-troops.sa_rb1Bh_D9Hx.webp>)

A gameplay capture with several bot-controlled armies sharing the battlefield.

## The hook 

In [Goop Troops](<https://gooptroops.org/>), one small cut can undo a much larger army. Territory grows across a grid, but every part of it depends on a connected route. A narrow strip behind the front line can matter more than the size of the front itself.

I built the game, its browser controls, and the multiplayer service around that rule. You can [play a bot match](<https://gooptroops.org/>) to learn it, then join a public game with up to eight players or set up a private room. The gameplay image above shows several armies pressing into the same board.

## The supply-line rule 

A connected empire has both reach and dependencies. A large front may look strong while relying on a small piece of territory behind it. Cutting that connection can collapse the position more effectively than attacking the largest group directly.

That rule makes the empty space between armies useful information. A player has to read routes, chokepoints (narrow passages that are easy to block), and access to gold as well as the territory immediately in front of them. Expansion creates options, but it also creates more connections to defend.

The tutorial introduces this relationship before the player has to manage the full pace of a multiplayer match.

## Ways to play 

The browser release supports several entry points:

| Mode | What it is for |
| --- | --- |
| Guest play | Enter a game without first creating an account |
| AI opponents | Learn the rules and practice against computer-controlled armies |
| Public matches | Share a battlefield with up to eight players |
| Private rooms and teams | Arrange a game with specific people |
| Ranked 1v1 | Play head-to-head through matchmaking |

Desktop and touch controls make the same game accessible from different devices. The public version runs in a browser without a separate download.

## Architecture 

I built the browser client (the part running on the player’s device) with React and TypeScript. It shares game-simulation code, which calculates how the battlefield changes, with an authoritative Node.js realtime service, which processes the match as it happens.

“Authoritative” means the server has the final say on the match state, including the interaction between human commands and bot decisions.

Sharing simulation code keeps the rules close to the interface that explains them. Keeping the final match state on the server gives participants a common outcome when competing actions arrive.

### Between matches 

Persistence, or saving data beyond the current session, supports the parts of the game that extend beyond a single match. Onboarding, room selection, matchmaking, and account-backed play are separate concerns from drawing and advancing the battlefield.

## Project structure and editions 

The main web project contains the client and shared simulation. A separate realtime service handles multiplayer and bots. The repository also holds database resources, production deployment tools, a Windows desktop prototype, and a native Roblox edition.

The browser game is the public release. The Windows and Roblox editions are separate development projects.

## Play and development notes 

Start at [Goop Troops](<https://gooptroops.org/>), use the tutorial, and try a bot match to get a feel for supply lines. Private rooms are available when you want to play with friends. The [itch.io page](<https://dgm12385.itch.io/goop-troops>) provides another public home for the game.

I built the simulation, web client, realtime service, interface, and release tools. The source code remains private.

## FAQ

### What is Goop Troops?

A multiplayer strategy game that runs in a browser. Territory grows across a grid, and every part of it depends on a connected route, so cutting a narrow supply line can bring down a much larger army.

### How many people can play Goop Troops?

Public matches hold up to eight players. There are also private rooms and teams, ranked 1v1 matchmaking, and computer-controlled opponents for learning and practice.

### Do I need an account or a download?

No. Guest play enters a game without creating an account, and the public version runs in a browser without a separate download, with desktop and touch controls.

### What is Goop Troops built with?

A React and TypeScript browser client that shares game-simulation code with an authoritative Node.js realtime service. The source code is private.

## Build photos

![Goop Troops tutorial showing three connected green tiles and the instruction that every tile needs an unbroken path to its starting point.](<https://devanmetz.com/_astro/goop-tutorial.BZe1_zW2_1w5sFX.webp>)

The tutorial introduces the connected-territory rule before a multiplayer match.

## Build stories

- [A strategy game about the space between](<https://devanmetz.com/blog/goop-troops-supply-lines/index.md>)

## Related reading

- [Poker With Your Friends](<https://devanmetz.com/portfolio/poker-with-friends/index.md>)
- [KICKR CORE 2 Hub](<https://devanmetz.com/portfolio/kickr-core-hub/index.md>)
- [Market Atlas](<https://devanmetz.com/portfolio/market-atlas/index.md>)
