2 years to build a game, 3 days to add multiplayer

Mutant Mayhem, in development. Footage courtesy of KamJam Games.

Mutant Mayhem (in development) is a top-down sci-fi survival game by solo developer Matt Van Alstyne, known in his community as AiryShelf. Build a base, defend against evolving mutants, upgrade everything, and conquer 14 planets with unique challenges. It is his first Unity game. The first 4-player match ran on day three of the multiplayer conversion.

Two versions, twenty years apart

The first Mutant Mayhem was a GameMaker game Matt built in 2004, at fourteen, from a tutorial. “I enjoyed the game I made as a kid, and others did too.” He stayed away from game development for years afterward, “out of fear it would consume my life. Well, now I’m ready for that fate!”

In 2024 he finished Harvard’s CS50x online while working his last rotation steering drills for pipeline crossings. Mutant Mayhem came back as his final project. After a month of Unity tutorials he started the full game with no design document. The scope grew: a building system, multiple planets, evolving enemies, controller and touchscreen support, a Steam goal.

”Networking scares me”

Multiplayer was not in the plan. “Networking scares me because I don’t know it well, so multiplayer was never even an idea for most of the game’s development.” A friend asked for two players on one keyboard. Other players kept asking after that.

This summer he built an online leaderboard in about a week, faster than he expected. He started the multiplayer conversion the same week. He had never built anything networked.

Design in an evening, playable by day three

Design took one evening. Implementation took about two and a half days, in this order: second player, enemies, damage dealers, upgrades, building system, turrets and drones, public lobby. He also got seven days’ notice of exams after starting implementation; studying and cramming during development slightly slowed the process.

Reactor’s components handled transform and ownership sync. Matt worked from behavior rather than internals, describing what he saw to his AI coding assistant: “I would test and report what I saw. It would review the server and game logs, and I just told it how I wanted it to behave.”

The codebase roughly doubled. The player and everything that communicates with it was reworked for multiple players. “The solo gameplay was mostly unaffected through the entire process, and only broke once when ‘game over’ wouldn’t happen.”

Did he ever want to quit? “I don’t remember feeling like giving up on multiplayer at all.”

The day-three stress test

The first match had four players. Matt set it up as a stress test: the authoritative host was his Galaxy S22 Ultra on wifi, connected to a local server launched from the Unity editor on his laptop.

Frames on the phone dropped from 60 to 20 at the busiest points. No network-entity pooling existed yet. The match stayed in sync. “It went really well. I don’t think anyone did the tutorial, so it was frantic and disorganized, lol, but really fun regardless.”

A phone as authoritative host is the least reliable machine in the room. Production multiplayer runs on servers. That migration is the current work.

Hardening without a rewrite

Matt is moving the game from client authority to server authority: session tokens validated by a server authentication script, spawn validators, and server scripts that retain and reassign player entities across disconnects. Design is complete. Implementation is underway.

Reactor supports this order of work: ship a client-authority build, add validation and authority where the game needs it, keep the codebase. Matt’s questions during this phase led to new Reactor documentation, including the Technical Overview, Handling Disconnects and Reconnecting, and Validating Client Transform and Property Updates.

“Don’t hesitate to reach out to the staff at Kinematic Soup, they are great and always willing to help out.”

The tools

Matt used AI coding assistants for the conversion. The design and the game are his; the AI assistant wired everything up under his direction while he ran the loop: test, observe, report, direct. His advice to other solo developers: “Do some tutorials first to get a basic grasp of things, to catch hallucinations and design flaws. Test often and make sure the AI is surgical.”

What’s next

Server authority, network-entity pooling, other optimizations, and Reactor’s experimental UDP client frame syncing (“There is so much real-time data that I don’t see the point in waiting for missed packets”). Then Steam and Google Play.

Mutant Mayhem is in development by KamJam Games. Follow it on itch.io: kamjamgames.itch.io/mutant-mayhem

KamJam Games