DT: Multiplayer

Hey everyone welcome to another Stonehearth Desktop Tuesday! While the team is continuing to work on Alpha 23’s Appeal system, let’s drill deeper on the multiplayer experiment that we saw in last week’s Desktop Tuesday and on Stream 300


Recap from the video:

If you’ve been following along with last week’s Desktop Tuesday and Stream 300, you know that what you’re looking at right now is footage from a nine-person play test of one of our early Stonehearth multiplayer experiments.

Before we start let me just say that everything you see is experimental, only half-implemented, and subject to change! In particular, things like encounters and traders only work for player 1 (in this case Angelo) and you can’t yet do basic things like save the game.

So that said, what’s going on in this scene? Well, what you’re looking at right now is an island on which Artist Allie, Artist Malley, and a few other people have chosen to settle together. Each of them has their own banner and firepit but they’re essentially building one town; they can easily share or steal resources via the loot tool and design houses together via the building editor.

Out on the edge we have Chris and Max, who prefer to play with their own space, and me and Linda, who wanted to prank the people on the island by digging under the lake, and of course, Justin, who suspiciously embarked on a mountain and who used SH’s gravity defying physics to plot oversight on all of us.

The main things we learned from this experiment are that:

  1. Adding multiplayer to a community builder is a great way to hang out with your friends. For a while, we weren’t sure how this sort of interaction would fit into the game, because nobody has ever really done it before, but the answer is that building and trading together feels awesome
  2. All the pranking made us wonder about whether the game should have a “declare war” button. What do you think?
  3. Multiplayer really pushes the game to its technical limits. Because we’re using a client server model, and Angelo is hosting us all, we’re all essentially playing on Angelo’s computer.
    • This introduces some solvable problems, like how to get encounters fairly distributed among people, but also open issues like: if you’re far from his computer, your experience may be slower than everyone else’s as we send giant chunks of data long distances. What things–perhaps like building, should we break up into smaller and more easily communicable chunks? In this particular playtest, latency was actually fine despite the fact that Chris was across the country, but that may not be true all the time on the open internet.
    • The final technical limitation, and the one that we do not think we can actually solve is that in our basic model, one machine must handle all our hearthlings at the same time. This means that the more people who join, the slower the game gets for everyone. Should the game set limits on the number of people? Should multiplayer involve fewer hearthlings per town? Again, we’d love your thoughts on this.

Before we finish I want to stop and acknowledge the incredible work that Tony and Angelo did to get us to this point. As an engineer, I was often frustrated with the fact that Tony’s original design for Stonehearth enforced a strict client-server model, because it meant that when I was working on client-side stuff like ghost entities for placement or the music changing for night and day, that I had to jump through lots of hoops to get server-side data to myself. In the end, however, I always followed his model because he built it in such a way that subverting it to hack in whatever I needed was more work than going along with the correct solution. This meant that years later, when it was time to turn multiplayer on, Angelo had only to work hard for a day and a half to get the initial connection to happen. In the land of computer science stories, this was nothing short of miraculous–there was a chance, we thought, that it could take months or more.

So when can you expect to see Multiplayer? Well, alas, no time soon. Despite the fact that we now have connectivity, a large number of other hard technical and design problems hurdles remain that Engineer Angelo, Engineer Morgan, and Engineer Linda are currently tanking: for example, a ton of work is involved making sure that a client cannot maliciously attack a host computer through the game. Mods must currently be manually installed and enabled on both host and client computer for the game to work properly. Saves currently don’t work at all. And what should happen when one player saves and exits the game but everyone else wants to keep playing?

Let us know what you think!

Other Announcements

  • No stream this Thursday, 11/23 due to American Thanksgiving
  • We will also skip next Tuesday’s DT; DT will return on Tuesday 12/5