Stonehearth Multiplayer

Tell that Factorio, or StarCraft 2 (which, after all, is an E-Sport, and I doubt that most players play SC2 with a LAN connection). I’ve had quite enjoyable sessions with five people and even when one had to restart his router repeatedly, the worst that happened was a very short slowdown every few seconds. Annoying, but not an end-of-the-world condition.

Which is a problem you can’t solve. Forget it. The overhead required to even consider such a thing solvable is ridiculous, plus… Just, why? Stonehearth isn’t Quake, it’s not competitive-to-death. I don’t consider it a game where being faster will actually have any influence whatsoever on your success in the game. The very, very rare situations where two players intend to access a mutual resource will be so rare that I can’t even fathom how often they will occur during the whole lifespan of the game.

I think it’s quite astounding what all seems obvious to you. The server side is doing all the calculations, that is correct, however, this is the current case. I could imagine, for example, that the server sides of each client (that is, player) are linked up with each other - either P2P or with a master server/server/client system. The server parts synchronise each other, while the clients do the client stuff. My guess is about as good as yours, although it tends to be in the opposite direction.

I also don’t quite understand how the server code is supposed to show you that it’s not lockstep - why would you expect a smaller server code for that? At some point, the whole simulation needs to be done, and all the input needs to be processed. That code isn’t going to be five lines of lua.

Plus, we have literally no idea how the code behind the scenes actually works. We only know that there are two separate lua states that communicate with each other - but how the data is actually transferred, i.e. how an entity is rendered, or positioned, or updated, is way beyond our scope - and rightfully so. It’s something the engine must handle. So for all I care, and all we know, it’s possible that there’s already net-code in development in the C++ part of the engine, but we can’t see it (and we won’t notice it, either, because that’s something lua doesn’t need to know).

It would be an utter waste of resources to have the whole network protocol implemented in lua. It’s a much more sane approach to have it done in C++, which means that we don’t know what’s out there until we try it, I suppose. It’s possible that there’s zero netcode involved right now and there’s just one gamestate, it’s possible that there are two gamestates - I don’t know. We can’t know. I tend to believe that there is some sort of separation in place already, but I’m not sure to what extent. There are, or were, client-sided properties (I believe), which would indicate that at least on some level, the client already has its own “world”.

Call it a theory if you like, but the fact that the client is a lua state and the GUI is a CEF process, which runs in a different thread, knows nothing about lua at all and doesn’t even have JavaScript functions that are able to directly call into lua and vice-versa, I would call them “separated in practice”.

If you don’t believe me, feel free to kill or freeze one of the Stonehearth.exe processes. If you get the right one, it will be CEF and your simulation will continue as expected. I think even the camera can still be moved, which is done entirely client-sided.

There is also no separation between “overlay” and “GUI”. Everything you see in the game is either rendered by the engine, which is everything 3D, i.e. the world (plus effects plus particles), or CEF. The overlay is CEF, every menu is CEF, every dialogue box or conversation is CEF. It’s all HTML/JS.

Yes, yes it does make sense. Read up on embedded HTML rendering engines, such as CEF, or Awesomium. They’re technically own processes running inside a host process, interacting with it through various APIs. They’re pretty much sandboxed otherwise and as I’ve said before, CEF doesn’t know lua, and lua doesn’t know CEF. For all they care, they could replace CEF with Awesomium or even an external rendering of the GUI and it wouldn’t make a difference.

By that logic, is there actually any kind of application or game that is fulfilling your requirements to be internet-proof? Plus:

I think you’re still forgetting that, at this stage, it’s a singleplayer game. Yes, there are preparations for multiplayer, yes they are not complete, yes there are bits that definitely won’t work with multiplayer - but for some odd reason, you seem to anticipate, or even expect, to have some (or all) of the multiplayer functionality right away (like, right now, in this instant, or I’ll do terrible things to an innocent orphan kitten-right away). That’s a wrong assumption, especially when they have plenty of other construction sites going on. Rome wasn’t built in a day either.

In fact, if the client wasn’t “hiding” sending the command, your GUI would freeze up - which it doesn’t, because it’s based on promises. It’s sending the command to the server, the server is queueing up the AI tasks, which are queued up in the AI component, which at some point gets around to execute them and after the path is found and the whole AI sequence is ready in the pipeline, is executed. This has absolutely zero to do with network, although - without you noticing it - it actually went through a network interface. It just happened to be some magical loopback-into-the-process one.

For an Early Access game with a note on it saying “We’ve just added multiplayer in this update”? Yes. I think there would be quite a few people that, assuming it’s stable, would be pretty happy about MP. There would be a few complaints, of course, voiced by a very loud minority, as is always the case.

At this point, I’ll just leave “Euro Truck Simulator 2 Multiplayer” in the room and quietly leave. That game did not have MP, nor was it ever intended to be MP, nor had it anything even remotely related to MP - but a few guys patched it, added a client/server model, even a prediction so it seemed smoother. It wasn’t perfect, but for what it’s worth, it was amazing. I think there’s still a few thousand people playing today, simultaneously. It’s jumpy and far from perfect, but people like it for what it is: A trucking experience with others, even if there are inconveniences. And trust me, there’s a lot of them.

That’s not what I was saying. I was saying I don’t expect an awesome multiplayer, which is to say, a completely stable, lagless, 60 FPS smooth experience with up to 64 players, preferably from the other end of the world. In all honesty, latency is not as much of a big deal as you point it out to be. I’ve believed for a long time that networking was technically impossible due to the fact that it takes forever (read: 15ms) for a packet to get to my computer to another computer. And what if the packet is lost in-between? Or corrupted? Or taken by the government and filed, instead of being delivered?

Then I’ve started to play lots of online games, some from big developers, some from small developers, and I’ve figured out that sometimes, AAA can’t do networking even if their life depended on it (hello, SimCity 2013) and sometimes, it’s amazing how well a small development team can get it right (hello, Factorio, even if you currently dislike the current state of affairs, you’re doing well). It’s not predictable to say what will work and what won’t, but judging by the fact that there are so many games with multiplayer nowadays, it’s hard to imagine that Stonehearth won’t get any, considering their team lineup.

People will like multiplayer to play with friends, this is a gain. Of course, there might be things like stability (hello, Anno 1701 or newer), or the game is slower than in singleplayer, those are costs. In the end though, there are going to be plenty of people that will say that the advantages outweigh these flaws. Unless, of course, the implementation is a complete disaster, which is always a possibility, but I wouldn’t necessarily expect here.

8 Likes

It’s hard to know exactly what each game is actually doing internally; until you do a web search for (e.g.) “league of legends lag” and find out they had to try to build their own Internet backbone just because of the lag, or search for “starcraft 2 lag” and find companies charging subscriptions for a reduced latency connection (that remain in business because players are so frustrated), or …

See if you can make sense of this:

$ ping stonehearth.net
PING stonehearth.net (104.130.215.75) 56(84) bytes of data.
64 bytes from 104.130.215.75: icmp_req=1 ttl=37 time=238 ms
64 bytes from 104.130.215.75: icmp_req=2 ttl=37 time=237 ms
64 bytes from 104.130.215.75: icmp_req=3 ttl=37 time=238 ms
64 bytes from 104.130.215.75: icmp_req=4 ttl=37 time=237 ms
64 bytes from 104.130.215.75: icmp_req=5 ttl=37 time=238 ms
64 bytes from 104.130.215.75: icmp_req=6 ttl=37 time=237 ms
64 bytes from 104.130.215.75: icmp_req=7 ttl=37 time=239 ms
64 bytes from 104.130.215.75: icmp_req=8 ttl=37 time=237 ms

Do you see any problem there?

It can be truly solved (not in the “better than nanosecond precision” sense), but by tagging packets with a synchronised “time when sent” it’s trivial (at least, for someone that understands how NTP works and can adapt the principles to “game time” instead of UTC) to get within a few millisecond precision despite high ping.

Sure; if Radiant want to pay for the added expensive of rewriting half the game anything’s “possible in theory”. It won’t happen.

I didn’t expect to be your tutor; but (briefly) for lock-step the server is mostly just sending the input from all clients back out to all clients (possibly with some checking for cheaters) and isn’t doing any actual simulation - the clients do that.

You misunderstood. Run the GUI on one computer and the client on another computer, then tell me if networking between client and GUI made sense.

Almost every multi-player game designed to work over Internet (excluding “LAN only”) does something to deal with internet lag (even if it is something as insane as trying to build their own Internet backbone).

[quote=“RepeatPan, post:61, topic:16339”]
I think you’re still forgetting that, at this stage, it’s a singleplayer game. Yes, there are preparations for multiplayer, yes they are not complete, yes there are bits that definitely won’t work with multiplayer…[/quote]

…and yes, if the game was prepared to be multi-player (properly) one day without requiring a huge amount of expensive redesign there would be evidence of this, even in single-player, even in Alpha.

For a finished/released game, units jumping around would be unacceptable, and you know it.

While it’s in Alpha? Sure some people would be happy for a while; until they find out that the feature has to be disabled, or the problem is not going to be fixed ever, or that the game is going to take 4 years longer to be finished/released just to fix that “units jumping around” problem.

You should’ve checked your facts. The Steam forum for that is full of people complaining it does not work. Why? Because it’s fragile - any kind of version mismatch and you’re toast.

I don’t expect awesome multi-player with 64 players either.

Yes; there are lots of games that do multi-player wrong; and even more that do it right. However, you can bet that those games that do it right were designed to do it right from the start. It is predictable to say what will or won’t work - games have been doing multi-player for decades, the alternatives have been explored, and all the pros/cons of different methods are well known. What isn’t predictable is whether or not a game developer will ignore all of this, implement “surface fluff” (a client/server split and some comments) and not worry about it until it’s too late.

No it’s not, there’s plenty of developer responses (exhibit A) which talk about it. Because SC2 is such a huge money machine, there’s plenty of people trying to figure out how to work the network, too, to abuse/hack it.

I’m a bit confused to be honest, here you state that it’s hard to know what these games are doing internally but a few paragraphs further down, or up depending on your choice, you’re putting out absolute statements about how Stonehearth has no multiplayer or preparation or anything whatsoever.

Until you dig deeper into this whole routing business and figure out that everyone is building their own internet backbones/peering connections because it’s amazing the internet actually works the way it does, all things considered. This is not limited to LoL or DOTA2 or SC2 or whatever, but pretty much every game that has online functionality. The internet is an invention of the 80s, it’s a miracle that it still works so well beyond everything that it was ever designed to do.

If there’s people buying it, there will always be such offers; most likely they’re not even valid ones. Net neutrality still isn’t a thing (actually, becomes less and less of one) and so you will always have offers that promise a “bonus speed” for certain services - be it YouTube, Netflix, some other streaming or, I suppose in South Korea, SC2. Just because there’s an offer for it doesn’t mean anything; otherwise Stonehearth already has multiplayer because hey, I found a server list using Google.

As a matter of fact, I don’t. How is the connection to the Stonehearth website relevant to anything with the game itself? That’s like pinging microsoft.com to figure out why Word (not the 365 version) is slow. A web server and a game server have completely different requirements. Plus, it doesn’t make sense for them to have geo-distributed servers for the Discourse. If they had, and they had a server close to you, this would look different.

For an example, let’s take a look at Valve, which has this kind of infrastructure for TF2:

A server in Luxembourg, EU:

Ping statistics for 146.66.159.73:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 20ms, Maximum = 21ms, Average = 20ms

Tokyo:

Ping statistics for 45.121.186.172:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 261ms, Maximum = 262ms, Average = 261ms

Virginia:

Ping statistics for 208.78.166.169:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 103ms, Maximum = 104ms, Average = 103ms

So what does that tell us? It tells us that the routing to Luxembourg is better than that to Virginia, is better than that to Tokyo. What a discovery, it’s coincidentally even ordered in the geographic distance ascending!

No, it can’t. So you tag each packet with the time it was sent, which requires you to do time synchronisation. You need to guarantee that the time on all clients matches, or that the server can somehow figure this out. You also need to have a reliable clock, or rather, a clock on every client that ticks exactly the same - not one is allowed to go faster or slower, or there will be a desync.

So let’s assume for a second that I have a latency of 70ms and the game operates at 60 UPS, which means each step takes at most 16ms. Let’s say that B is also in the game, with a latency of 20ms. B and I do something at exactly the same time, the packet of B arrives at t+20, while mine arrives at t+70. Of course, because this isn’t steplocked (as you don’t seem to deem that as a valid/modern enough simulation method), the server immediately executes the action of B, because there’s no reason it shouldn’t. So it does the stuff it needs to do.

Now, 50ms later, or about 4 steps/frames, my packet arrives at the server. What is the server required to do? It needs to undo everything that was caused by B’s packet, which means it needs to keep track of what every action does. After it has done this miracle, which I can’t even start to comprehend how it’s supposed to work (because either the server keeps snapshots and a list of commands, and then rollbacks and re-calculates 4 frames within the timespan of one, or the whole code is able to undo its actions), it executes my command and pretends that it happened 4 frames before.

That’s just not feasible nor is it required. Again, this it not a FPS, resource conflicts will be rare if there ever are any.

You seem to have insights about Stonehearth’s code and engine that I don’t have because I’m not a developer, I don’t have source access nor would I have the time to analyse it. But you seem to have done just that to make such bold statements here, about a project you’re not involved in (and about which you have been made nothing more than pretty bad predictions, assumptions and wrong statements).

So, objection! Hearsay (and heresy, I suppose, but then again I’m not exactly an expert on Warhammer 40k).

Well, if you’re seeing yourself as a tutor right now, you’re a bad one because somehow, you always seem to be fixed about a single approach to things. Luckily for us both, mostly me because I can escape the horrible embarrassment of being tutored, Factorio has done multiple posts about their multiplayer implementation. For convenience, I’ve ordered them chronologically.

To spare you the time, Factorio’s server does keep a simulation itself, too. Otherwise, how are joining clients going to work? Is the server sending the join command to all clients and they somehow crowdsource the current gamestate to the new player? That would be a ridiculous solution, because then you can’t take advantage of the good ol’ “the server needs the biggest connection” advantage.

Plus, if the server merely relays commands, it has absolutely no authority. I can send any packet I want to any other client, I could crash other clients (instead of just the server) because the server couldn’t possibly validate the packets. This is a horrible idea. There needs to be an authority, preferably a neutral third party, such as the server.

So no, the server does keep a simulation and is not merely relaying packets. It could do that, in theory, but that would impose all sorts of limits that are not feasible for a “proper” multiplayer.

Technically nothing preventing you from doing so, except that they’re not listening to a real port but rather one of CEF’s weirdo internal-socket-thingies (for example, all calls occur to http://radiant/). Like I’ve said, CEF is independent of the client-state, it needs to do the stuff with networking (note: CEF would also allow you to do asynchronous JavaScript instead, with callbacks and what not, but the Stonehearth client is keeping an active connection to the engine and polls/pushes updates via HTTP, so it is not utilising this technology - which means that the GUI doesn’t care where the client is, it just needs to know the address).

So if you could somehow get the engine to expose http://radiant to a real port, you could rewrite the GUI’s files to point to that address/port instead and have the same GUI on whatever client you please. Or on as many, I suppose, but I wouldn’t want to wager a guess whether multiple GUIs to one client are actually thought to be possible…

There’s indications, I would even go as far as call some of those things “evidence”, all around but you seem to ignore or reject them. I’ve named several in this thread that, to me, make perfectly sense.

That’s true, but I’ve thought more of the first version of the multiplayer, the proof of concept if you want to call it that. For that one, jumping units is fine - after that, if that is an issue, a solution needs to be found. We don’t know if that’s a problem, however, because we don’t know what the netcode looks like, or will be like. For example, if it’s steplock, no jumping around can happen, so there’s no issue that would need to be solved in the first place.

It’s far from perfect, which I have stated. I didn’t need to check my facts because I was playing it for quite a bit back in the day, however, you’ve missed my point: This was patched into an existing singleplayer game by an independent developer. Of course it’s not perfect, far from it actually, but it exists, and obviously it’s decent enough to still be a thing years later.

Nah. Working in the software industry has taught me that this kind of decision doesn’t necessarily happen at the start, nor does it need to. All you need is a proper infrastructure and, at some point, somebody really wanting to make it happen. With a bit of luck, and talent, you’ll find that whatever was deemed impossible before actually works quite decent. I can’t recall how often we’ve changed feature X, or had to change it because the specification changed, and somehow we’ve winged it. Sometimes the result was really, really neat, even. Sometimes it was even better than what we’ve started with. Stranger things have happened.

6 Likes

As a developer i’m enjoying the technical discussion here!

On a side note I think most of the people on here realize TR is doing an amazing job!

Keep up the discussions @RepeatPan and @Brendan! Loving it! Let’s not get to martyrdom though!

Wow this thing really blew up <- Thinks to self :wink:

3 Likes

No, you’re not confused. You’re intentionally missing the point because you don’t want to face reality. The reality is that Internet latency varies and depending on where you’re connecting to/from and is often > 200 ms or higher; and games that use lock-step can not handle this. For games where the company is able to have (e.g.) servers spread around the world (e.g. one in each country) so players can find a server that has low ping for them, or where the company can make special deals with Internet backbone carriers, lock-step is still unusable for around 20% of players.

Note that the company I was referring to was http://www.killping.com/ . They are not a scam - they have servers spread around the world and deals with backbone carriers to minimise gamer’s lag; and they have a nice, profitable business because lock-step is unacceptable in practice without these work-arounds.

Stonehearth (where players would create their own server) will not be able to use (e.g.) servers spread around the work or (e.g.) special deals with Internet backbone carriers to solve the lag problem.

Lock-step is completely unacceptable for Stonehearth. You know this. You argue merely because you don’t want to admit it.

If you’re not able to understand the principles behind NTP (and how those principles can be used to synchronise client’s with the server to within ~1ms) you’re out of your depth here.

Frame rate has nothing to do with anything. There is no “time steps”.

Player1 does action1, and their client sends a packet to server saying “at T=1234.567 action1 was started”. Player1’s client is optimistic and predicts that action1 will happen. At a similar time player2 does an action, and their client sends a packet to server saying “at T=1235.000 action2 was started”. Player2’s client is optimistic and predicts that action2 will happen.

Server knows “game state at T=1000” which is a time in the past. At T=1334.567 (100 ms after it was sent due to network latency) server receives a packet from player1 saying “at T=1234.567 action1 was started”. Server hasn’t heard from player2 for a while (since T=10000) so action1 can’t be committed to game state and remains speculative. At T=1385.000 (150 ms after it was sent due to network latency) server receives a packet from player2 saying “at T=1235.000 action2 was started”. Server knows it has heard from player1 after T=1235.000 (because it received a packet sent by player1’s client at T=1234.567) so it knows that action2 is not speculative. It commits this action to game state and now server knows “game state at T=1235.000”. Server also knows that action2 prevents action1, so server knows that action1 has to be cancelled and discards it.

Server informs clients of the changes to “known game state”, so clients know “game state at T=1235.000”. This has latency too.

At T=1385.000 (150 ms after it was sent by server) player2’s client receives the update from server; and knows that its prediction (that action2 will occur) was correct.

At T=1335.000 (100 ms after it was sent by server) player1’s client receives the update from server; and knows that its prediction (that action1 will occur) was not correct and that action2 happened instead. Based on this knowledge the client forms new predictions for T=1335 (based on what it knows happened at T=1235.000 and whatever else it’s still speculating will happen between T=1235.000 and T=1335.000); and has to smooth out the differences between what it showed the player (which was based on a prediction that became false) and its new prediction. However; it doesn’t undo things it showed the player,it incorporates what it already showed the player into what it shows the player next. For example, maybe a hearthling was predicted to walk west to pick up an item for action1, but that prediction wasn’t right and the hearthling should’ve been walking south instead, so the hearthling starts doing a left turn and walking a little faster and everything looks smooth (the hearthling doesn’t “teleport” to a different location). Maybe the client predicted an archer would shoot an arrow at an enemy and is most of the way through the “draw bow” animation but client finds out the enemy got killed by a different player earlier (before the archer started the “draw bow” animation) so it has to pretend that the archer puts the bow back down without shooting an arrow. Maybe it’s too late, the arrow is already in-flight, so the arrow keeps going until it hits the ground. Because all of this is fabricated to hide false predictions; the other player doesn’t see the hearthling heading west and turning, or the archer drawing their bow, or the arrow that hits nothing.

As far as both players are concerned, everything is smooth and everything happened when it should (e.g. action2 happened first because it happened 0.544 ms before action1, even though no computer knew it happened in that order until later).

Note that I am not saying I expect this from Stonehearth. I am only explaining that a game can ensure things happen in the order they occur (within ~1 ms of it at least) despite lag; instead of happening in “lag effected order”.

You’re not sparing my time; you’re wasting my time with a false assumption that one specific game is representative of all games that use lock-step.

The bare minimum of lock-step (and it’s origins in the 1980s) is “peer-to-peer 2 player on LAN”, where both machines trust each other and there is no server; where (from each computer’s perspective) the other player is just a (remote) second input device. At the time, it was mostly a crude hack to make developing a “multiplayer sort of” game similar to what game developers were familiar with from single player games. Because it’s unusable in its basic/initial form for much more than “peer-to-peer 2 player on LAN” modern games extend the original idea (where extensions to the original idea can include checking for cheaters, can include storing “game state” on server and not simulating on server, and can include simulating on server, and can include hybrid approaches that mix lock-step with other techniques).

To avoid embarrassing yourself further please see something like: Inter-process communication - Wikipedia

Using my previous “how to build a submarine” analogy; there’s indications that they’ve taken the first step (“putting a periscope on the car” - having a client/server split), but no indication they’re prepared for multi-player (“made sure it can withstand water pressure” - mitigating network latency, dealing with bandwidth constraints, handling temporary disconnections/re-connection gracefully, etc).

I’m still missing your point. I said it’s possible (but very difficult and fragile) and you seem to be arguing that it’s possible (but very difficult and fragile)???

For some things - yes, most definitely. For example if turrets look funny or don’t do enough damage or don’t have enough range; well that’s easy to change afterwards.

For other things? No. Multi-threading, prediction (and recovering from false predictions), programming paradigms and languages, core architecture, etc - these are all things that effect a lot of code and are expensive to change or retro-fit because a lot of code depends on the original decisions.

I’m just going to return to my previous statement, and say I’ll wait for the actual feature to come out (or hear news otherwise) before making any conclusions.

8 Likes

That’s all any of us can really do (other than speculate).

I think they will work on multiplayer very soon, because on the road map, all of the other main things are pretty much done!
Can’t wait till they finish the game :smiley:
Roadmap link: Stonehearth Development Roadmap – Stonehearth

So i have seen that multiplayer is on the roadmap and i’ve thought with my friend who has it and would love to play with me (Co op and or two different towns working together) and i think that the current game should have multiplayer because it’s far enough to not have it completley broken but not to far so that they would have to try to make it work with all the features if they put it in now they can make it work with new features that come out in updates instead of having one hard giant update that takes forever because they gotta get it to work with all the features in the game

Hey there @TMS_Stoneaxe, welcome to the Discourse :smiley:!

I hate to be the bearer of bad news, but the devs have said (many, many times) that multiplayer will not happen until after the game is feature complete. I know it’s hard to wait, many of us really want multiplayer to come, but I don’t see them changing their mind on this.

2 Likes

Short version of what @jomaxro said

Basically when everything else is at 100% is when multiplayer is likely to be started on.

Not sure if they’ll still be calling it “Alpha ##” when multiplayer is in the works.

2 Likes

You’re correct in that it is no trivial amount of work and thinking about and planning for it are wise at this stage. This planning for the longer term vision and strategy of the game is happening, with a lot of really exciting stuff currently happening behind the scenes.

Multiplayer still remains top of mind for the team and it’s something many of us desire ourselves. It’s seen as a core part of the long term vision of the game so I can at least assure you it won’t be something that is forgotten any time soon.

6 Likes

your not listening to the topic at hand it has been said several times in this post that multiplayer is IN THE ENGINES DESIGN being a modder ive seen it in the code the engine will handle multiplayer just fine have faith in the almighty Team Radiant they have more experience than most indie devs ive seen

Is tech problems a worry for the team or is it more making multiplayer… fun? Like balanced and fun?

Designing how multiplayer will work for Stonehearth is going to be a big challenge.

2 Likes

Yes, I know that there’s “barely more than lip service” in the engines design that has never been well tested and has approximately 0% chance of being playable with medium/high network latency. I also know that Team Radiant won’t find out that the multiplayer is unusable with medium/high network latency until after they’ve implemented multiplayer support.

It’s been three entire months since I first expressed my scepticism. How far has your “faith” (zero knowledge, zero basis for an educated guess) got you towards working multi-player support in those 3 months?

I wouldn’t say tech worries me. Multiplayer is a large but solvable problem especially in games and I have faith in the engineer’s ability to create something meaningful and impactful. Instead I’d say tech is a major factor in when it gets built. Due to the complexity and infrastructure needed to support multiplayer ground work needs to be done well head of time.

As for the fun, balanced – this is a reasonable design challenge and one I see instead as a philosophical problem. Like many other games with multiplayer, the fun that is derived from it depends on the player. There are many flavors of multiplayer and each one isolates or dissatisfies some portion of players. Ex: some players want highly competitive team play while others enjoy collaborative exploration.

The team will eventually need to make a call on what kind of multiplayer Stonehearth will have and it’s likely that it will not satisfy everyone.

9 Likes

Personally, I don’t want to see multiplayer until the game can easily support at least 50-60 hearthlings at a time.

2 Likes

They did say it’ll be well after the game is finished feature wise. I’m hoping by “version 1.0” the game can support 50-60 hearthlings. Hell maybe even 100.

3 Likes

Hi,

I bought the game 2 years ago and I was wondering when is multiplayer and GM going to be implemented, I understand the development takes time but I believe the kickstarter put a timeline on 2 years, so do we have any update on the timeline for full features instead of just percentages displayed on the main website?

Thank you in advance.
Victor

Hey there @efendashe, welcome back!

The dev team has acknowledged that the estimates given during the Kickstarter were wildly optimistic, and will not (have not) been met. At the moment, there isn’t a specific “timeline” for multiplayer. The team is working to get single-player feature complete, and only when that happens will they begin work on multiplayer.

4 Likes