If he had a time machine and could go back to the start of Gun Monkeys development, would be put online multiplayer in the game again?
"Hah, definitely not," he laughs. "It was a great lesson, and the game's done well enough that I'm pleased with it, but I think the stress of running something online is different to the stress of launching something single player. It's like nothing else. There are just so many balls to juggle at the same time, and if it crashes and burns it's instantly more problematic."
And don't expect any more online multiplayer games from Marshall anytime soon. "It's something I'm really interested in, and it was a fun experiment," he notes, "but I don't think the process made me very happy and that's the point."
"I love my job, it's fun. I am exceptionally lucky to be doing this as my job. But making and launching a multiplayer game was arguably the most stressful thing I've done as an indie developer, and I enjoy my job and my life too much to mess around with all that sort of stuff again."
"Making and launching a multiplayer game was arguably the most stressful thing I've done as an indie developer, and I enjoy my job and my life too much to mess around with all that sort of stuff again."
Klei Entertainment has played around with local multiplayer various times before, including with its Shank games, but Don't Starve is the first time that the studio is adding online multiplayer to a single player game. (The studio's first game Sugar Rush was due to be an MMO, but it was eventually cancelled.)
The online co-op is being added to Don't Starve more than a year after the initial release on PC, and for the team, latency and bandwidth have been the number one concern from a technical standpoint.
And echoing Dan Marshall thought's, Don't Starve design Jamie Cheng tells me that, "from a design perspective, having enough players so people can find other players is usually the biggest concern."
"Luckily, Don't Starve has a very large active player base, so at least the second concern is resolved," he adds. And judging from Cheng's experience with Don't Starve it sounds like the team isn't having the most difficult time implementing online play, as he tells me, "We will certainly be making more multiplayer games in the future, as long as it makes sense for the game."
Dutch studio Ronimo Games has had plenty of experience with online multiplayer games, first with 2D strategy game Swords & Soldiers, and most recently with theAwesomenautsseries.
"Online multiplayer is the most complex part of game development there is," says developer Joost van Dongen, bluntly. "Adding online multiplayer roughly doubles the programming time needed to make a game, especially if this is the first time for a developer."
And the complexity of your game is the resounding factor in just how difficult adding online multiplayer to your game is going to be.
"Awesomenauts is much bigger than Swords & Soldiers," he says, "so in Awesomenauts we had serious issues with getting the bandwidth low enough, while this was automatically okay in Swords & Soldiers. We spent a lot of time on bandwidth optimisation."
"Online multiplayer is the most complex part of game development there is."
The preception that most indie devs have about adding online multiplayer to games is usually wrong, he reasons. Most programmers think it's going to be the core issue of gameplay synchronization, when in reality this is just a tiny part of the total amount of work required.
"There is at least as much work in things like matchmaking, handling invites and handling network errors," he explains. "Especially complex and time-consuming is the combination of all of these things: what if the user accepts an invite during the intro cinematic, then accepts another invite during the loading screen towards the game he tried to join, and then gets a network error in the second loading screen towards that other invite he tried to join?"
It's all these strange situations that online multiplayer presents that prove the most time-consuming when implementing online multiplayer in your game.