Friday Facts #76 - MP inside out
Friday Facts #76 - MP inside out
This week Blue Cube brings a bit more technical look at the Multiplayer: http://www.factorio.com/blog/post/fff-76
-
- Burner Inserter
- Posts: 16
- Joined: Wed Apr 30, 2014 7:49 pm
- Contact:
Re: Friday Facts #76 - MP inside out
Technical posts are always awesome. (I'm a developer myself.)
A peer acting as a proxy sounds like a good idea for future development. Couldn't that also be done by a dedicated server?
A peer acting as a proxy sounds like a good idea for future development. Couldn't that also be done by a dedicated server?
Re: Friday Facts #76 - MP inside out
But why do I have to guess the latency manually, instead of the game automatically (and perhaps dynamically) determining it?To help with this, in Factorio we implement sort of a buffer time interval (called "latency" when starting the game). This determines amount of time that a peer can wait for anyone's messages without lagging the game. Unfortunately this also causes the game to delay all local actions by this time.
Re: Friday Facts #76 - MP inside out
Because 0.11 is multiplayer for the brave ones, and if you are not the brave one then you need to wait for 0.12 and finished multiplayer.
Re: Friday Facts #76 - MP inside out
I always wondered why you chose such difficult algorithm.
Go on with the Friday facts as usual.
Go on with the Friday facts as usual.
Re: Friday Facts #76 - MP inside out
Because not going for a deterministic state engine with only delta's passed around would mean we would never have MP in this game.marsch wrote:I always wondered why you chose such difficult algorithm.
Go on with the Friday facts as usual.
It isn't original, EVE Online does the same thing to enable 3000+ player fleet fights.
-
- Inserter
- Posts: 26
- Joined: Wed Oct 23, 2013 12:51 pm
- Contact:
Re: Friday Facts #76 - MP inside out
Technical posts are my favorite Friday facts.
I'm curious of the details on what you guys plan in .12 to handle latency better.
I'm curious of the details on what you guys plan in .12 to handle latency better.
Re: Friday Facts #76 - MP inside out
Really enjoyed this. The lock step model is something that I hadn't considered in how information is passed between clients and makes a lot of sense.
Great post, keep them coming.
Great post, keep them coming.
- Sharlenwar
- Burner Inserter
- Posts: 12
- Joined: Mon Dec 22, 2014 5:33 pm
- Contact:
Re: Friday Facts #76 - MP inside out
Hey Blue Cube! Thanks for writing the post. I love the technical posts to see how the inner workings of Factorio work. Keep it up devs!
**My Corner Of The Web**
YouTube Channel
YouTube Channel
Re: Friday Facts #76 - MP inside out
I liked reading it. Nice change of pace. Do write more!
Re: Friday Facts #76 - MP inside out
I still think that the buffer should be calculated instead of being an user input.
Also, I suggest you to allow people to a information/data share with the developers. You can create a totally optional checkbox on the options menu that players, when selected, will record some informations and will send to the server (the devs). This can give input on the average user usage of your game. Things like internet speed (?), bandwidth usage, entity count, computer specs etc. I would be one of the players that would gladly share information with the devs, as long as it's anonymous.
Also, I suggest you to allow people to a information/data share with the developers. You can create a totally optional checkbox on the options menu that players, when selected, will record some informations and will send to the server (the devs). This can give input on the average user usage of your game. Things like internet speed (?), bandwidth usage, entity count, computer specs etc. I would be one of the players that would gladly share information with the devs, as long as it's anonymous.
Re: Friday Facts #76 - MP inside out
Good point.MeinAccount wrote:Couldn't that also be done by a dedicated server?
If I would be paying for a dedicated map storage/server, I would probably like
this particular computer to also help clients with "internet issues".
Or aid with network configuration in general, for that matter.
Re: Friday Facts #76 - MP inside out
Would it be possible to change the "latency-buffer" in-game in later versions of factorio? Rather than per started server?
- Xterminator
- Filter Inserter
- Posts: 981
- Joined: Sun Jun 15, 2014 4:49 pm
- Contact:
Re: Friday Facts #76 - MP inside out
Even though I am not a programmer and know nothing about programming, I still find these technical posts very interesting. I like to see how things behind the screen work for Factorio. Definitely keep the technical type of posts coming in the future!
Re: Friday Facts #76 - MP inside out
i dont really like the peer to peer idea, beacause it punish player who have a poor upload like me, 0.75 upload 5.75 download...(i don t want see end game with a lot to upload) I m not in a city and i don t want to go for play factorio... not a good news !
Re: Friday Facts #76 - MP inside out
In fact, using P2P is one of the most efficient ways to do it, and because they use lockstep, and as they said in the post itself, there is only a few hundred bytes that is generated each second. Think 0.0003Mbps.nours77 wrote:i dont really like the peer to peer idea, beacause it punish player who have a poor upload like me, 0.75 upload 5.75 download...(i don t want see end game with a lot to upload) I m not in a city and i don t want to go for play factorio... not a good news !
So no, it doesn't punish people with poor upload at all. And even if it did, using P2P doesn't mean it uses more or less bandwidth. And 5.75/0.75 isn't bad at all. More would always be better, but most if not all multiplayer games work with a lot less than 0.75 up. And remember, you only have to send your own input to others, and you receive input from many. In other words, factorio (along with most other multiplayer games) use a lot less upload than download.FF#76 wrote:Because people with keyboards can only generate a few hundred bytes per second, this approach scales really well for large maps.
Re: Friday Facts #76 - MP inside out
Why cant you mix both server client and step locking together?
Have the "auto-save" become "auto-push", so all the clients still run on there own but one player pushes there game to all other clients. So this way everyone wins.
I don't know, call it "step server"?
Have the "auto-save" become "auto-push", so all the clients still run on there own but one player pushes there game to all other clients. So this way everyone wins.
I don't know, call it "step server"?
Re: Friday Facts #76 - MP inside out
They currently send as much checksum-data as possible over the line to see as soon as possible if there is some desync.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
-
- Long Handed Inserter
- Posts: 80
- Joined: Wed Apr 30, 2014 5:36 pm
- Contact:
Re: Friday Facts #76 - MP inside out
deleted
Last edited by albatrosv13 on Thu May 19, 2016 4:30 pm, edited 1 time in total.
Re: Friday Facts #76 - MP inside out
Major changes from current architecture probably won't happen, nor would they be feasible. As to the hundred thousand entities, while one can't dispute their existence, I think there's only one troublesome entity in this game, and it's the more-or-less unpredictable player. Other entities are deterministic to a fault, and one may argue that them behaving differently on multiple ends are either 1) coding errors, 2) result of cheating, or 3) hardware/software errors outside the game, right?
Could you tell us more about your final vision for multiplayer? What are the gains of true full visibility P2P over other solutions? What are your plans for making game playable in scenarios like 10 players playing on LAN and one playing with over 100ms latency or on ZX Spectrum-class machine?
Could you tell us more about your final vision for multiplayer? What are the gains of true full visibility P2P over other solutions? What are your plans for making game playable in scenarios like 10 players playing on LAN and one playing with over 100ms latency or on ZX Spectrum-class machine?