What happens to teamwork when communication suddenly disappears? We wanted to make that question visible and interactive.

Minecraft gave us a world where cooperation has a clear purpose: gather materials, craft components and build a home. Inspired by the challenge of coordinating independent agents through communication failures, we created Colony: five agents, one shared goal, and a network you can deliberately break.

Colony brings together five Minecraft agents: a Miner, Lumberjack, Builder, Crafter and Scout. Each makes its own decisions using its role, local observations and private memory.

They cooperate to construct a house, sharing resource discoveries through WebSockets. When communication fails, agents can continue gathering, crafting and building using the information and materials available to them. Local fallback behaviours help them respond to persistent shortages.

Our live dashboard lets viewers inspect tasks, inventories, communication links and construction progress. You can isolate individual agents, create network partitions and restore communication while watching the bots play.

The failures block peer messages while leaving agents in the same Minecraft world, where they can still observe their surroundings and use shared storage. The dashboard records useful actions during outages, making continued progress easy to demonstrate.

We used JavaScript and Node.js, with Mineflayer and its pathfinding library to interact with Minecraft. Each agent runs in a separate process with its own perceive–decide–act loop and rule-based decision-making.

We built a WebSocket relay using the ws library. It handles message delivery and simulated communication failures; gameplay decisions stay with the agents. Messages include timestamps and version information to prevent older updates from overwriting newer knowledge. Agents exchange their latest published state when communication returns.

Our React dashboard, built with Vite, displays real telemetry. We tested the communication infrastructure with five simulated agents before integrating the Minecraft bots.

Minecraft made seemingly simple tasks surprisingly difficult. Bots could get stuck on terrain, struggle to reach blocks or wait for missing materials. We improved movement recovery, resource fallback behaviours and protection for existing structures.

We also had to distinguish between an agent leaving Minecraft and an agent losing communication with its peers. Handling stale information, reconnection and overlapping network failures required careful tracking and testing. Accomplishments that we're proud of We connected five independent agents, a working failure simulator and a live dashboard into one interactive demonstration.

We completed the starter house during development and captured useful work during communication outages. Our dashboard makes those results inspectable through recorded actions and exportable evidence.

We’re also proud of making a distributed-systems challenge approachable: viewers can break communication and watch what happens, block by block.

A shared goal does not require every agent to have identical information. Local observations, useful fallback behaviours and careful synchronisation can keep cooperation moving through uncertainty.

We also learned to measure resilience through useful work completed during an outage. Keeping a process running is only the beginning.

We want to improve navigation, survival and resource handling so agents can reliably finish larger builds with less intervention.

We also plan to test delayed messages and intermittent connectivity, compare progress across repeatable failure scenarios, and explore learned decision policies while preserving independent agents and observable behaviour.

Built With

Share this project:

Updates

Submission history