Future and evolution of DXX' Multiplayer
#31
Oh by the way please don't get me wrong - I was NOT referring to one of those currently in this forum. Currently in this thread there has been nothing more than constructive Feedback and especially in terms of Multiplayer - which is
a) Hard to really get results by your own - without other palyers
b) not my strongest side
So I would NEVER feel the need to complain. And I trust that as soon as I am done but totally screwed up you guys will let me know. and that's good and all I can wish for.
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
#32
Don't get me wrong I just compared to 56 because I don't recall any major score differences in 56, and honestly I have no idea why. I just hoped that it may help, but apparently not.
I'm just having bad time playing lately. Another game tonight 7 people on 4Mbit/s upload connection and.... major score differences.  :-\
so I'm trying to figure out any possible reasons for such oddities.
Reply
#33
Well the reasons for these effects unfortunately can be wide-spread. You can have a very wide bandwidth but DXX could still cramp up your whole Network stack, swallowing most amount of packets - especially when a lot of loss from other Clients is involved.
That also means: the host can currently work fine but as soon as there is one single "troublemaker" (i.e. player with slightly lossy connection) the game will go nuts eventually.
Right now I am working on exactly this issue: Improving/Creating traffic management and handling for possibly troubling Clients.

Again this is also a big argument for Host-authority and it will prevent such issues in the future. Rather than games running "out of sync" lossy players will be removed from a game. And so no players with "not so good"-connections have to fear, the traffic management I spoke of I do that actually removing players due to loss will become WAY less likely than it would be in current versions of the game.

I wish I coudl already provide some example binaries you guys coudl test but I take my steps slowly and I gotta streamline a lot of the networking code to become more flexible towards these changes I am doing. Maybe I won't be able to show anything before my vacation I am planning soon but I'll try my best anyways.
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
#34
Well, it sounds like you 're doing it from scratch so it will take time anyways before we can have something testable. So take your time zico, until more hands can come in and help.
Descent Rangers
Captain of Black Lions squadron

The Stalker 21.126
Zica Laser
Guided Micro Bombs
Microcorp HXS Class C
Gravitron PulseWave
Zica SuperCharger
Reply
#35
Hey guys,

I think I should let you know about the current status of this project. I have already made some progress and I would like like to share it with you now.

a) IPX/DOS-compability code is removed from the current development base (logically)
b) Priority system of Multiplayer packets has been rewritten, allowing better flexibility for sending (which is sorta important for "c")
c) Traffic produced by weapons with very high firing rate (Vulcan, Omega) has been reduced drastically
d) Due to the need for Host-Authority Packet Loss Prevention cannot be disabled anymore
e) The game will now remove players which have failed sending/receiving important packets for a long period of time (> 10 seconds). Due to further changes this should not be an action the game should take regulary - it should only cover removing REALLY laggy players that would otherwise get an unsynchronized gameplay experience. Players will also get a special message - not just telling them they got "kicked".
f) Packet management has been improved. Packets will now be scheduled to prevent traffic bottlenecks in traffic intense situations which could cause packet loss.
g) Some minor code cleanups

Next up will follow a big overhaul for player positions. You might have noticed that sometimes players tend to move/turn a bit choppy. I intentionally did this to reduce traffic. However I have plans to increase accuracy again (which also makes hit detection more reliable) while further reducing the traffic produced by positional data. This has nothing to do with Host-Authority, yet, but some of this code I'll be able to utilize for packets directly affected by Host-Authority.
If that's done, the direct Host-Authority additions will follow.

I hope I can archive this before my vacation so some of you guys could play around with the development code (if necessary I'll release some test binaries). After that I want to spend some time on:
- Furtherly polishing the code
- Add some small improvements and new playtoys for Multiplayer (secret)
- Fixing bugs (Multiplayer and general)

I guess then I will release v0.58.

EDIT: All the stuff I addressed already been done already went to the main development branch. So everyone can tinker with it using the source code (easy on Windows using Zif's MiniDev). I TRY to make each code commit so the game stays in a runnable state. But right now it's VERY important that each player uses the exact same source. The game only does a version check on the official version number which still is 0.57.1. However the current development code is NOT fully compatible with the official 0.57.1 release and it will get "worse" with fruther commits. So if you guys wanna paly with it, feel free but all please use the SAME code.
Right now there is not Host-Authority, yet but many code parts have been improved and game inconsistencies and lag should be reduced to a certain degree already.
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
#36
It's hard to test big game..with like 8 players since there is a few beta testers around.
I thought it could be possible by just hosting public open game with beta exe or bring new people to help with testing, people who are not familiar with testing and having current, latest build necessity,  but I see problem here.
We can't prevent people to join with regular 57.1, some may even use wrong exe by mistake and they wont even realize that.

Could you put strict version check in beta? at least for now, just to let us make sure we are using the same build during test,or even put 57.2 there for beta could be helpful a bit with tracker only filter.
Reply
#37
I'll help beta test and I imagine several other Rangers would too. Also, I don't think the version check is necessary really. Just keep the game restricted or closed and label it beta test. If were beta testing, we don't want just anybody to be able to join anyways. Would end up being a distraction.
Reply
#38
Since I'm out of the loop for awhile due to college ( Sad ) I probably won't be able to beta-test much, but there's a thread in the Multiplayer section for the beta testers...if you could coordinate with Ryusei or Hawkins, they're "veteran" beta testers Wink lol
Reply
#39
Hey guys,

I think now it's time for a little update. My vacation draws closer and I need to be pretty careful on what I should start now. I really would not feel comfortable leaving a task half-way done before I leave. Not since I think it would give me no rest but I think I could make mistakes when continuing.

So I now plan on doing small things, possibly leaving host-authority for after the vacation, doing more smaller things now.

Anyways I have been investigating recently. I build several checking functions into the code and with them being able to analyze the traffic going in and out from host and clients. Hawkins was assisting me here and there and many kudos to that.
So I found that especially in Descent 2 there is a certain amount of packet flooding. Many thing I'll optimize later on since they ar enot real floods at all but just parts I CAN chop off some bytes per second - which ramp to some considerable host traffic pretty much in a crowded game.
But I also found a very drastic flooding each time a player dies in Descent 2. This might very well explain certain "hickups" when a player was killed in D2X-Rebirth (a bug I never really found) and also pretty much explains all sorts of packet loss (which our prevention-function could never have handled) when killing/scoring and up to 10 seconds after a player kill.

I have not fully analyzed Coop/Robo-Anarchy, yet (as this is a whole different world of pain) but I think that inconsistencies causd by packet loss should be a thing of the past now - including unsynced scores (I plan on simplifying this code further tho). Also player drops and lags should be less frequent also complimenting towards smoother player movement resulting in better hit detection as well. So for all thos interested in playing around, the current development branch is really worth checking out.

Still I'll not end here as stated before. Acutally I plan on rewriting off Multiplayer packet types (i.e. every "action" you do in the game) that are not as optimal as I wish them to be or are important to be host controlled. Now with backwards compability out of the way this promises to be much fun and I am very excited to see how "perfect" I can also make the little and rather unimportant things or where I can make the traffic of the game much smaller when being scaled to a very crowds game.

Anyways this still ais a bit of a plan for the near-future but mainly I wanted to let you know that even at the beginning of the work I've been making good progress and I would happily hear some feedback. Now's also a good time since for the next three weeks you guys will probably not get many changes in the code base.

stay tuned,
-zico
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
#40
So is there ground for debugging any of these small things you 're talkin' 'bout? You know, to keep ourselves busy while you 're away. Beta testing is addictive. Big Grin Looking forward to finding players to check out the fixes on host traffic. Anyone? (on mumble in a few hours, check here)
(Oh, and as for the help zico, I'm just helping with the differential diagnosis. Wink)
Descent Rangers
Captain of Black Lions squadron

The Stalker 21.126
Zica Laser
Guided Micro Bombs
Microcorp HXS Class C
Gravitron PulseWave
Zica SuperCharger
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)