Friday, May 22, 2009

Server-Side Frustration

It's no secret that PSU has a lot of minor problems that annoy players every once in a while (check out this old post for one such example). However, if I had to choose one annoying aspect of PSU to change, it would have to be the server-side checking of data.

For some reason, the server insists on receiving and checking just about every action a player takes in Network Mode. If it's switching weapons, doing (and receiving) damage, dying, using recovery items, or any other similar action, you can be sure the server is checking it.

I happen to think that this is one of the game's biggest design flaws. Constant server-side checking is incredibly slow and inefficient. For example, I live on the east coast of the United States -- my PSU client has to send all of my data across the country to San Francisco to be validated, and the server has to send the validation result all the way back to my client. The delay caused by this exchange can be anywhere from a half-second to two seconds. It makes the gameplay incredibly staggered at times. I imagine that players in Europe have it far worse, since their data has to travel across the Atlantic Ocean for validation.

This design probably works fine for players in Japan, since no player is ever very far away from the servers. It doesn't work in the United States and Europe.

The delay caused by server-side validation of data causes other problems, too. In battle, for example, enemies are free to attack while the server is determining if they should die or not. Here's a personal example: I was attempting to kill a Gaozoran in one of the Shred the Darkness event missions. I eventually delivered the killing blow, but while the server was determining if my attack killed the enemy or not, the enemy attacked and killed me instead. Can you say "frustrating"?

Unfortunately, the server-side checks will probably never go away. It's too bad, because they weren't really necessary in the first place. Phantasy Star Online's battle system was fast and never caused any of these frustrations. Why fix something that wasn't broken to begin with?

No comments: