Multiplayer: Map Transfer

Post all other topics which do not belong to any other category.
Post Reply
User avatar
maglethong
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Oct 09, 2015 6:45 pm
Contact:

Multiplayer: Map Transfer

Post by maglethong »

First of all, I realize this might be already in a todo list, but just to make sure here it goes:

In short:
The map loading takes to long [at least in my country with s****ty internet]
This is specially annoying because all players have to wait for the guy to load 10MB of data at 50-200kB/s

Not a priority I believe, but definitely something you guys should look into some day.
I don't believe you need suggestions on how to solve it. ;D

PS: Love the game... brilliant idea, and I'm a huge fan of the efficiency of the program, even though we get tons of objects laying around.

Zeblote
Filter Inserter
Filter Inserter
Posts: 973
Joined: Fri Oct 31, 2014 11:55 am
Contact:

Re: Multiplayer: Map Transfer

Post by Zeblote »

How do you want to speed it up if the map is 10MB and your internet is slow?

User avatar
maglethong
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Oct 09, 2015 6:45 pm
Contact:

Re: Multiplayer: Map Transfer

Post by maglethong »

Ever played mine***ft?
It does not transfer the whole map at once. Transfer pieces according to your current location on the map...
Of course it's a bit of work to make this run smoothly, but its doable.

hmm... how to put this... after 1 day playing with one friend we had a map size of 10MB...
The way things were escalating... it could get really huge if we started splitting up and exploring the world for more resources.
I know Germany has really good internet speed, but some places of the world don't (yet... I hope). And from what I observed in other games, trying to make your game accessible and playable by the highest possible amount of people with the least possible amount of negative experiences is one of the key points for a popular multiplayer game.

As I sad... It is not essential... specially because it is still perfectly playable in LAN, but I think it is something that can (and in my opinion should) be improved.

Zeblote
Filter Inserter
Filter Inserter
Posts: 973
Joined: Fri Oct 31, 2014 11:55 am
Contact:

Re: Multiplayer: Map Transfer

Post by Zeblote »

The problem is that there is so much stuff happening that it's simply not possible to sync new objects to clients as they go near them. Not knowing of a single piece of ore on a belt would end in a de-sync when it is used in the factory. You'd need extreme bandwidth and it'd look like crap because of latency.

Multiplayer can only work with huge factories like this because every client runs a copy of the same simulation, the only things sent after loading the current game state are inputs.



If your cpu is strong enough to run the simulation at higher speed (say 500 ticks per second) then it might be possible to let others continue playing while you're downloading the map and then catch up to them. But I wouldn't bet on it.

sillyfly
Smart Inserter
Smart Inserter
Posts: 1099
Joined: Sun May 04, 2014 11:29 am
Contact:

Re: Multiplayer: Map Transfer

Post by sillyfly »

Yes, the problem is that in Factorio all of the world is simulating all of the times, whereas in minecraft only loaded chunks need to be simulated. This means that Factorio is kind of like Minecraft when all of the chunks are loaded all of the time (although Minecraft would probably grind to a halt if that was the case...).

Depending on how much of the map size is due to terrain, though, maybe some of this can be saved - the terrain generation is (presumably) 100% deterministic, so maybe not sending it could save some bandwidth. I don't know how much that would be, though, or even if maybe this is already done!

User avatar
maglethong
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Oct 09, 2015 6:45 pm
Contact:

Re: Multiplayer: Map Transfer

Post by maglethong »

OK... apparently I should not have made that comparison...

Let me explain my point of view a little better.
What happened to me was what usually happens when I play Factorio: I built a radar station early somewhere in my factory, and as the game went on I built some radar stations a little further away to see Bitters before they hit my walls. Consequences: I ended up revealing a lot of map, which again ended up allocating a much bigger area of the game world to be simulated. [Sort of bad actually... because Bitters end up spreading much more as far as I noticed... could be my imagination though]
After a while I end up with a relatively large map for just staying inside my factory minding my own business. Now imagine a few people doing exactly this in a few factories spread around far from each other.


I will not elude myself by telling you I know how to solve this. Real-time networking is still an unexplored world I am to venture into some day. I realize this is a difficult task and might need some time just to figure out a solution, not to mention implementing it afterwards, but I must sincerely disagree to it not being possible to run things a bit more smoothly. I think its more a question of whether it will be worth the time invested in it [that is why I mentioned it not being a priority], but I still think it would be a worthy improvement. [Not to mention this is an awesome subject]
sillyfly wrote:Yes, the problem is that in Factorio all of the world is simulating all of the times, whereas in minecraft only loaded chunks need to be simulated. This means that Factorio is kind of like Minecraft when all of the chunks are loaded all of the time (although Minecraft would probably grind to a halt if that was the case...).

Depending on how much of the map size is due to terrain, though, maybe some of this can be saved - the terrain generation is (presumably) 100% deterministic, so maybe not sending it could save some bandwidth. I do not know how much that would be, though, or even if maybe this is already done!
I think this would be one of the first steps to finding a solution to what I mentioned. Even though even here some detail should be considered. Example: Better movement and creation of new hives is part of the simulation. But enough of talk about if it is doable or not [lets leave this matter to the professionals =D]. I think what we should be discussing is:
  • Will maps get much bigger than that? [10MB is big and takes while, but we can wait a few seconds. 100MB would start getting annoying]
  • How many players do we want the game to be able to hold? [It would not be nice if about 10 players start downloading a huge map every 15min, blocking the game for all the others while they doing so]
  • How bad does this behave in other countries with higher/lower internet connection?
  • Do we even want a solution for this? Or is playing in small to medium game worlds/LAN connections enough?
so on...

UberWaffe
Fast Inserter
Fast Inserter
Posts: 202
Joined: Mon May 04, 2015 4:53 am
Contact:

Re: Multiplayer: Map Transfer

Post by UberWaffe »

Something that can help and might be more easily implemented is to keep synchronized saves on all clients.

What I mean is:
When a save is done, the save occurs on all clients (in the multiplayer game),
then when loading, the game starts paused after the load. (i.e. no simulation or ticks occur after the load completes.)
All clients that have a save (with the same name, guid?? and CRC check) can then join the multiplayer game using that save (i.e. no map transfer will occur for them).

The game can then continue as if it had sent the map to all as per normal.

In the case that any client doesn't have such a 'synced' save, or the game isn't paused when the client joins, or the CRC checks of the games differ, then the normal procedure simply applies.

This could at least help for games in which the players always play together (i.e. the last save game should always be in sync.)
As long as the host has the patience not to unpause the game before all have joined.

Could help avoid having to transfer large save-games across slow connections. (Or at least reduce the number of times it occurs).

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

Re: Multiplayer: Map Transfer

Post by ssilk »

This has already been discussed a lot.

I move it from suggestions to general, because at current I absolutely doubt, that there could be made any specific suggestion.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

nobodx
Fast Inserter
Fast Inserter
Posts: 157
Joined: Mon Jul 06, 2015 3:22 pm
Contact:

Re: Multiplayer: Map Transfer

Post by nobodx »

Something that helped me a lot (having a 50kb/s upload myself)
open the save game with windows explorer and delete the replay-file. That should cut the filesize most of the time in half (or even more)

Post Reply

Return to “General discussion”