[Gameplay] Multiplayer bullet hell issue

Deudeu

Green Slime
Hey
I was playing with a friend on multiplayer and when fighting phaseman/Gun-D4m 's bullet hell phases my game (Not the host) lagged a lot (Only on this phase, but I have a crappy connection) but the skype/ts3 lagged a lot too, and only on theses phases.
This is surely not a bug coz i have a bad connection and the host has a so-so connection, but maybe few other ppl have the same issue, seems like every bullet is downloaded or something.
And also thanks to this i've timed out a few time, and you can reconnect in the phaseman fight, but not in the Gun-D4m one (not sure which one is intended) (The game crash 1/3 of the time when I try reconnect in the gun-d4m fight, the other times my char does not appear and the camera is at the entrance of the room)
 

Deudeu

Green Slime
Well, as stated above, we had no issue the whole game, exept when thoses 2 bosses launched the big pink bullet that explode into the red circle one.
I have around 330ko/s dl // 15ko/s up.
And it lagged my part of the vocal server as well, so I really think that it has to do something with downloading bullet position or something.
 

ark626

Moderator
are you host or anybody else?
Yeah i think the download rate is okay for Client(but a bit low so dont do anything else occupiing bandwith besides Grindea) but the uploadrate seems far to low for hosting.

330 kbps downstream is not very much Oo

Each bullet has its own coords so YES i do belive that in this fight you will have serious download problems
 

ark626

Moderator
There i explained it how the Multiplayer is working (as example)
http://secretsofgrindea.com/forum/index.php?threads/multiplayer-bandwith.352/#post-2159
Not sure why this happens? Lol as for me the bottleneck is ALWAYS the Host/upload side.
Which means if you are hosting a Multiplayergame for 3 other people then your DSL should better be damn good.
What also is to say that you have to update each tick in the game for everything. (meaning every other players graphics every enemies graphics the life vars etc.
Simple example, you are host and you have 1 k/bytes upload and 3 Clients are connected.
On your map are 3 Enemies.

Each entity has 2 Variables for the coordinates (16 bit*2)
Each entity has 4 Variables for HP/MAXHP EP/MAXEP (8bits*4)
Each entity has 1 Variable for the Grahpic number which is showing and the animation state (16bit+8bit)

=> For each entity you have to calculate 88 bit per tick. (and thats just the basic of the basic information needs to be updated)
The game runs at 60 FPS so per second 60 Updates meaning (88 bit * amount of entities*60)= k/bytes which a client needs.

Now comes the tricky part if you have 3 Clients then you have to multiply by 3 => 88bit*amount of entities*60*3=k/bytes

On our map are 3 enemies we have 3 clients and therefore summed up 7 Entities. And we divide by 8 for getting bytes not bits and divide by 1000 for getting k/bytes not bytes
=>
88 bit *7Entities*60Frames*3Clients/8/1000 = 13,860 k/bytes = 0,01386 M/bytes

So as you can see even trough this small data which has to be transfered the host is the bottleneck because the Upload on normal internet accesses is very much smaller than the download.


I once wrote for this problem a feature which only let the host update entities that are in range of twice the screen of ANY Player (only NPCs and enemies are updatet which can be seen by a player)
This saved a lot of bandwith for the host but i think teddy already implemented such a thing and more tricks.
 

Teddy

Developer
Staff member
I'll look into this! It indeed sounds as if there was increased sync load, but since most of the bullets are deterministic from their creation, they don't actually need to be. It could be a mistake on my part, of sending unneeded updates.
 

Deudeu

Green Slime
Well, I might add, as we were playing on hard for our 1st walkthrough, we died a LOT and I got dc'd everytime on phaser's and i'd say around half the time on gun-d4m, the other time I just timed out during the phase and came back (All the bullets appearing at once, sped up and i was dead obviously) and I was on the client side (yeah 15k up isn't enough to host :x) but my mate has a good connection but was hosting using wifi (this may be relevant too ?) If i recall correctly, he has full speed wifi, and around 25ping on google.

[Edit : oh yeah also, we tried with or without the vocal, and with skype and teamspeak3 and it didn't change anything]
 
Top