The messiest netcode.

Status
Not open for further replies.

TDRR

my old posts are very dumb (formerly rayfan)
The title says more than it should, but anyways, this new netcode in my opinion is very buggy. While the sync thingy makes it stablier, its unplayable for me, i mean, in 2.0.6 i played perfectly with a ping of 100, but now in 2.1 i have a ping of 60 and it keeps syncing. I prefer cfailing every 20 mins rather than the game freezing every 3 seconds. So please, why not bring the old netcode?
 
Because we honestly have no idea what specific change was made which led to all this desynchronisation. Is it Lua? Is it how various new map gimmicks were implemented? There are so many dependencies in SRB2 that asking to restore "the old netcode" is like trying to use the original frame of a building that's been knocked down to prop up something that was built on its site afterwards.

I'm sure someone who's closer to the source code could answer this with a little more depth, but that analogy is at least the short of it (if not the long).
 
Back in 2.0.6 there where some files: MServ.c MServ.h y_inter.h y_inter.c d_net.c d_net.h d_netcmd.h d_netcmd.s. All these contained the source code, not sure if its the same in 2.1...
 
y_inter.c/h are primarily to do with intermission screens; namely the results screens you see after completing a level/round in any gametype, as well as bonuses awarded in single player/coop.

mserv.c/h are to do with the master server (or more accurately, communicating with it).

d_net.c/h, d_netcmd.c/h and d_clisrv.c/h are probably the main files to do with the netcode as far as I'm aware:

* d_net.c/h is to do with communication I think?

* d_clisrv.c/h has stuff to do with the client I think, even has stuff that's important for the game in general (whether Single player or multiplayer).

* d_netcmd.c/h deals with networked console commands/variables I think.

The purposes of all the above six files are not totally clear to me that said, I haven't touched them much personally.
 
Last edited:
Well, good to know that, anyways, i belive it was because the Lua (Remember that a big part of the socs usually made pepole cfail?) And, is there an alternative to forwarding ports? (I could host normally, but now my Modem broke and now i have a Router that for some reason has all ports closed) Offtopic: How do i change my name in the forums?
 
As far as I remember discussing with other people on IRC, the main problems with netplay happens when players join or leave a server. Say you have a bunch of people on one, and all runs fine until someone leaves. Then a bunch of other people consfail afterwards, or you see a person leave twice in the console. That's not even with Lua or SOCs loaded at all.

That said, much of the Lua code only activates once you actually LOAD a Lua script, I doubt it causes much of the de-synchronisation problems if any at all. Of course, I could be wrong.

Also, to change your name on the MB, simply PM an admin to request to have your name changed. Can't help you with your hosting problem though sadly.
 
Last edited:
...the main problems with netplay happens when players join or leave a server.

Thisthisthisthisthisthis.

I actually wonder how the game actually fails to properly put players in-game and do the same for everyone, the reverse also happens quite a lot (having to spectate when you join). This said, I've had waaaaaay less issues with players leaving than players joining on my end, where I keep synch failing anyway, unless the player leaves in the middle of its join.
 
Its pretty strange since in 2.1 (I belive) It was ok.
 
This is the way I deal with Sync failures in most cases :

When someone joins, and it causes a Syncing lag, I Immediately kick that joining player asking him to rejoin.

When a Syncing lag occurs after a level change, I switch back to the previous level and then warp to the next.

When I join a server, and a syncing lag appears, (Though I don't see the yellow writings on the screen), I leave the server and then rejoin, hoping that it won't happen again.

When a Syncing lag is caused by a leaving player, well, I haven't found a way to bypass this, which means you're pretty much screwed unless the right Sync failer rejoins.
 
Its pretty strange since in 2.1 (I belive) It was ok.
Yah, the netcode was good back in 2.1.0. It was a change made back in 2.1.1's development causing an issue. We should compare both the source code for 2.1.0 and 2.1.1 to find the issue. The new synch code made the netcode a lot better. The synch code isn't the problem.
 
Last edited:
We should compare both the source code for 2.1.0 and 2.1.1 to find the issue.

lol

I think you only don't remember that the netcode was just as bad then because 2.1.0 only was live for a few hours. That locale fix got pushed out the door at rapid speed.
 
I'm still very amused that bug never got caught in testing. I mean, it's totally understandable how, but it's still funny.

Anyway, I'm just going to lock this topic, as it pretty much is every other topic we have on netcode ever.

Listen, we get it, the netcode is shit. But the reality is that in order to fix it, we need someone who is very familiar with how networking code actually works and can sit down and sift through every last bit of how SRB2 interacts with it, which I'm sure is a very daunting task. Blind speculation on the causes of the issue aren't helping. If you really want to fix it, find someone who understands how networking works and would actually dedicate the time and effort to fixing it.
 
Status
Not open for further replies.

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Back
Top