PDA

View Full Version : Server capacity improvement



Lafoote
10-11-2013, 03:02 PM
While I've played many MMOs and watched the Them develop from frozen chat rooms to playable worlds, I have no idea what that entails. I understand the poor game coding has an effect on bandwidth. But can someone knowledgeable explain the process programmers use, and what type of data they are looking for that signals where to optimize the data stream and increase capacity?

Grumph
10-11-2013, 03:33 PM
I dont know much about programing, but i know memory leaks can be a big problem. That is when a function is started and not shut down when its finished, if you've ever played a game that starts off fine but gets more laggy the longer you've played it, then you have probably experienced memory leaks. Like i said, im not all that knowledgeable when it comes to programming this is just something ive learned over the years as a gamer

TheBokononist
10-11-2013, 03:37 PM
Programming in general is almost an art. Some of programs are terribly coded but work and others are just awesome to behold. So there's no easy way to answer that.

For online/network games: Packets sent/received and latency are basically all there is too it (outside of general programming).
From a programming point of view, the more work being done at the client (your) side and the less data (and time taken) that needs to be sent, the faster the server/gameplay. Games like this tend to get buggy due to lost packets without redundancy (ie Data packets get lost or corrupted and there isn't a check to make sure everything is working as intended) or extremely high latency (causing de-sync).

A perfect example of this may be the Alpha Priority pass bug [as far as I can tell, I haven't seen the code so I simply don't know, sometimes this is only caused by the priority image not showing...I'm not talking about that graphic error].

The Alpha client tries to send a data packet to the server saying you've passed priority, but the server never receives it. From your client's POV you've passed priority and you're waiting for the server to get back to to you, but the server still thinks you've got priority and want to do something. Since there isn't a redundant check with the client (you), it essentially hangs because of that one lost/corrupt packet.

End result: One player is stuck starring at their time slowly run out and neither player can do anything.

Hopefully they'll have a force sync option in-game soon.

praesidium
10-11-2013, 03:50 PM
no offense bokononist (really, all we can do is guess) but that's like the first thing a normal programmer would check if the game was coded that way, if the message was sent and if the message was received.

I, as a programmer as you are, don't think it would take 2 days to figure that out, i think that is one option ofc, but what makes the message not be sent/received is probably what's taking them time to figure out.

another option is that the server isn't handling the messages properly and is getting all confused in the coded state machine.

All we can do is guess.

Lafoote
10-11-2013, 05:49 PM
Thanks Bokonomist! Grumph, I hadn't even thought about memory holes. I think the last one I encountered was Everquest, but I may be mistaken. Praesidium, have they been issuing small patches this week, or do you think they may have that issue isolated but are piling up a stack of fixes in one patch? Thanks again for the discussion and insight.

Lochar
10-11-2013, 05:53 PM
no offense bokononist (really, all we can do is guess) but that's like the first thing a normal programmer would check if the game was coded that way, if the message was sent and if the message was received.

I, as a programmer as you are, don't think it would take 2 days to figure that out, i think that is one option ofc, but what makes the message not be sent/received is probably what's taking them time to figure out.

another option is that the server isn't handling the messages properly and is getting all confused in the coded state machine.

All we can do is guess.

Like Havoc and I noted, you can cause the priority bug by both players fast slamming the pass priority when there is more than one item on the stack. It appears to lose track of who is supposed to have priority and dumps itself.