Friday Facts #76 - MP inside out

Regular reports on Factorio development.
slpwnd
Factorio Staff
Factorio Staff
Posts: 1837
Joined: Sun Feb 03, 2013 2:51 pm
Contact:

Friday Facts #76 - MP inside out

Post by slpwnd » Fri Mar 06, 2015 7:58 pm

This week Blue Cube brings a bit more technical look at the Multiplayer: http://www.factorio.com/blog/post/fff-76

MeinAccount
Burner Inserter
Burner Inserter
Posts: 16
Joined: Wed Apr 30, 2014 7:49 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by MeinAccount » Fri Mar 06, 2015 8:17 pm

Technical posts are always awesome. :D (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?

thuejk
Long Handed Inserter
Long Handed Inserter
Posts: 64
Joined: Fri Feb 13, 2015 8:41 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by thuejk » Fri Mar 06, 2015 8:19 pm

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.
But why do I have to guess the latency manually, instead of the game automatically (and perhaps dynamically) determining it?

FrozenOne
Fast Inserter
Fast Inserter
Posts: 177
Joined: Mon Mar 04, 2013 8:10 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by FrozenOne » Fri Mar 06, 2015 8:23 pm

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.

marsch
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sat Dec 21, 2013 6:20 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by marsch » Fri Mar 06, 2015 8:29 pm

I always wondered why you chose such difficult algorithm.

Go on with the Friday facts as usual.

Rakshasa
Long Handed Inserter
Long Handed Inserter
Posts: 83
Joined: Sat May 31, 2014 7:21 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Rakshasa » Fri Mar 06, 2015 8:54 pm

marsch wrote:I always wondered why you chose such difficult algorithm.

Go on with the Friday facts as usual.
Because not going for a deterministic state engine with only delta's passed around would mean we would never have MP in this game.

It isn't original, EVE Online does the same thing to enable 3000+ player fleet fights.

pcmaster160
Inserter
Inserter
Posts: 21
Joined: Wed Oct 23, 2013 12:51 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by pcmaster160 » Fri Mar 06, 2015 8:59 pm

Technical posts are my favorite Friday facts.

I'm curious of the details on what you guys plan in .12 to handle latency better.

Marconos
Filter Inserter
Filter Inserter
Posts: 275
Joined: Mon Jun 02, 2014 10:46 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Marconos » Fri Mar 06, 2015 9:58 pm

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.

User avatar
Sharlenwar
Burner Inserter
Burner Inserter
Posts: 12
Joined: Mon Dec 22, 2014 5:33 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Sharlenwar » Fri Mar 06, 2015 10:08 pm

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

User avatar
Narnach
Inserter
Inserter
Posts: 31
Joined: Sun Mar 10, 2013 4:45 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Narnach » Fri Mar 06, 2015 11:23 pm

I liked reading it. Nice change of pace. Do write more! :-)
Identity is cheap, reputation is priceless.

Let's Player over at https://youtube.com/narnach

User avatar
SHiRKiT
Filter Inserter
Filter Inserter
Posts: 685
Joined: Mon Jul 14, 2014 11:52 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by SHiRKiT » Sat Mar 07, 2015 4:57 am

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.

MF-
Smart Inserter
Smart Inserter
Posts: 1235
Joined: Sun Feb 24, 2013 12:07 am
Contact:

Re: Friday Facts #76 - MP inside out

Post by MF- » Sat Mar 07, 2015 9:07 am

MeinAccount wrote:Couldn't that also be done by a dedicated server?
Good point.
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.

User avatar
provet
Fast Inserter
Fast Inserter
Posts: 130
Joined: Thu Feb 12, 2015 9:49 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by provet » Sat Mar 07, 2015 4:25 pm

Would it be possible to change the "latency-buffer" in-game in later versions of factorio? Rather than per started server?

User avatar
Xterminator
Filter Inserter
Filter Inserter
Posts: 969
Joined: Sun Jun 15, 2014 4:49 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Xterminator » Sat Mar 07, 2015 5:49 pm

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!
Image Image Image

nours77
Inserter
Inserter
Posts: 42
Joined: Mon Jun 10, 2013 12:06 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by nours77 » Sat Mar 07, 2015 6:37 pm

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 !

Dupl3xxx
Inserter
Inserter
Posts: 27
Joined: Sat Mar 07, 2015 6:50 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Dupl3xxx » Sat Mar 07, 2015 6:57 pm

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 !
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.
FF#76 wrote:Because people with keyboards can only generate a few hundred bytes per second, this approach scales really well for large maps.
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.

Richwarf
Burner Inserter
Burner Inserter
Posts: 8
Joined: Fri Feb 14, 2014 11:42 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by Richwarf » Sat Mar 07, 2015 8:37 pm

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"?

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 10402
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by ssilk » Sat Mar 07, 2015 8:43 pm

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...

albatrosv13
Long Handed Inserter
Long Handed Inserter
Posts: 80
Joined: Wed Apr 30, 2014 5:36 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by albatrosv13 » Sun Mar 08, 2015 2:54 am

deleted
Last edited by albatrosv13 on Thu May 19, 2016 4:30 pm, edited 1 time in total.

ofca
Long Handed Inserter
Long Handed Inserter
Posts: 69
Joined: Sat Feb 21, 2015 1:49 pm
Contact:

Re: Friday Facts #76 - MP inside out

Post by ofca » Sun Mar 08, 2015 4:10 am

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? ;)

Post Reply

Return to “News”

Who is online

Users browsing this forum: Mathematician and 12 guests