PDA

View Full Version : Question for all programmers/techies



pso2love
Mar 13, 2012, 02:13 PM
Let's say I'm making an MMORPG for the PC.... and let's say that I wanted to make this game available for the PS VITA as well. I can take my time optimizing the graphics for the vita so it can compare to the PC's graphics. However, I have a problem. The PS VITA's 3g carrier AT&T's service may not work very well to keep up with the speed the server requires to make it an enjoyable experience like you would get using wifi or ethernet.

I was wondering, is there a compression method/technique or software that would allow me to shrink the size of data that it sends back and forth form the client to the server, for every action performed during game play (move, attack, chat, etc.)? I say this because not only would it allow more players to play, it would also make players happy, because there would be even less lag, and more stabler connection between PC and VITA users.

Thanks

AnnabellaRenee87
Mar 13, 2012, 02:19 PM
Short answer, no.
Ping time on Cell towers are 50-900MS between you and JUST the tower.
That does not count the time it takes for the data do bounce through AT&Ts network.

Link1275
Mar 13, 2012, 02:20 PM
Let's say I'm making an MMORPG for the PC.... and let's say that I wanted to make this game available for the PS VITA as well. I can take my time optimizing the graphics for the vita so it can compare to the PC's graphics. However, I have a problem. The PS VITA's 3g carrier AT&T's service may not work very well to keep up with the speed the server requires to make it an enjoyable experience like you would get using wifi or ethernet.

I was wondering, is there a compression method/technique or software that would allow me to shrink the size of data that it sends back and forth form the client to the server, for every action performed during game play (move, attack, chat, etc.)? I say this because not only would it allow more players to play, it would also make players happy, because there would be even less lag, and more stabler connection between PC and VITA users.

Thanks
Because of the fact that you would have to compress the data and then un-compress it, it would probably add lag.

Randomness
Mar 13, 2012, 02:51 PM
Because of the fact that you would have to compress the data and then un-compress it, it would probably add lag.

Data compression is limited anyways - the more efficiently packed the data is, the less it can be compressed.

That said, compression isn't latency - a properly formed packet shouldn't need to be decompressed before you acknowledge receipt (form checksum from compressed data, for instance).

The problem with cell networks is that they're oversold even worse than airlines are. You know how sometimes people find out that all the seats are taken by people with tickets? The difference is that when it happens with a cell network, you can't tell that it's because the company is selling service to more people than the network can serve at optimal speed (they can always blame a hardware failure, after all). The infrastructure can't handle delivering advertised speeds to the whole group of people supposed to be using it.

In short, cell networks (in the US, at least) are not suited to large-scale real-time data links. Of course, they can handle voice data (one of the larger data types, a second of voice consists of thousands and thousands of integer values) at real-time. So it depends on how much data needs to be moving.

But back to the original compression... the data cannot be compressed beyond a certain point. Lets say you want to register movement input. If you want to register 32 directions of movement and 4 magnitudes of movement speed, you need 7 bits. No compression algorithm in existence can compress that. It's absolutely impossible to represent 128 combinations in fewer than 7 bits. Basically, any gains you gain from compression can be gained from writing the packets well. (Strictly speaking, you may be able to shave off one or two bits per packet, by making use of dead space in the bits - 5 bits can represent 32 values, so if you only use 20 and do so 5 times, you only need 22 bits, but each value of 20 would need 5... but frankly, any difference that's going to add up to tens of bits isn't going to make appreciable difference on connections measured in kilobits per second)

Edit: If you want to get REALLY technical, you can start bringing entropy into this.

Mag-X
Mar 13, 2012, 04:31 PM
The PS VITA's 3g carrier AT&T's service

AT&T doesn't provide data service to the Vita in Japan.

pso2love
Mar 13, 2012, 10:08 PM
Thank you for your responses. I actually wanted to get a better understanding of how the whole process worked.

I still think they can find a way by taking their time optimizing the VITA version so that it would actually require less data.

kyuuketsuki
Mar 14, 2012, 12:58 AM
Randomness pretty thoroughly addressed the whole compression thing.

3G just won't cut it for a real-time game connection of the complexity of a game like PSO2. The latency is just way too high, and bandwidth is unreliable in many areas due to the overselling issue Randomness brought up. LTE (a.k.a. "4G", although HSPA+ is being marketed as 4G too nowadays so it's important to note that "4G" does not necessarily equal LTE) might be able to manage it decently, due in small part to more bandwidth, but mostly due much better latency. The Vita doesn't do LTE even if it's available in your area, though, so.

The blog post where Sakai (vaguely) addressed concerns with the Vita version pretty much explicitly stated that you are not going to be able to actually play normally unless you're on wifi. They may have some other mode or... something that you can do through a 3G connection, but we'll have to wait for any kind of real details.

You can go ahead and hold onto hope that they'll do some magical "optimizing" and make 3G work, but... you're just deluding yourself. Sorry.

Mike
Mar 14, 2012, 01:11 AM
The blog post where Sakai (vaguely) addressed concerns with the Vita version pretty much explicitly stated that you are not going to be able to actually play normally unless you're on wifi.
The blog only addresses "party play." This may leave a solo experience viable over 3G but yeah, vauge and in early development so I doubt we'll hear anything solid on 3G for a while.


In short, cell networks (in the US, at least) are not suited to large-scale real-time data links. Of course, they can handle voice data (one of the larger data types, a second of voice consists of thousands and thousands of integer values) at real-time. So it depends on how much data needs to be moving.
Docomo, the provider the Vita uses for it's 3G network, is the biggest phone company in Japan but even it and the two other large phone companies blew a tire from smart phone usage earlier this year (or late last year).

kyuuketsuki
Mar 14, 2012, 10:06 PM
The blog only addresses "party play." This may leave a solo experience viable over 3G but yeah, vauge and in early development so I doubt we'll hear anything solid on 3G for a while.
Right, that's what I meant by not allowing normal play over 3G -- no party play. Sorry, probably wasn't the clearest way to put it.

Kent
Mar 16, 2012, 09:59 PM
3G just isn't suitable for real-time multiplayer for any sort of MMORPG - and it's certainly not suitable for real-time high-speed action multiplayer with a game like PSO2, either.

So really, you're looking at asynchronous multiplayer (like having an online auction house for a game that only has local wifi multiplayer, or being able to upload your character data to be used as an AI NPC ally for a friend on their game - both of which make for interesting examples of this) or turn-based multiplayer for games specifically over 3G. However, you can do all kinds of craziness with wifi (and there are better options for 4G, but "4G" hasn't actually had its standards decided yet, so it's tough to say decisively how much better it is). For a massively-multiplayer game or even anything with a significant dependance on fast data transfer, 3G is basically out of the question at this point.

SolRiver
Mar 17, 2012, 03:58 AM
There is a way to minimize "lag", but not by the method of compression.

What is needed is "less communication" or basically skip a few steps.

The method is to have PS vita run majority of the simulation by itself (isolation). What this means is that PS vita would not receive information from server on where the character is, what the character is doing etc. So by doing this you limit the amount of information needed to be communicated with server. In order to make sure the PS vita is not off-sync with the server, a communication will happen every few interval (large amount of testing needed to find the sweet spot for the interval) to check with the server whether it is off-sync.

Now this method is like the PSO back then, where the client tell the server what is going on; hence very prone to cheating. So the rest is about how to counter client exploits. Some popular games out there already implemented this kind of system. One method to deal with cheating is by having the server predict/simulate whether a certain information is possible; like if the character have move from one location to the other within .001 second and hit for 999999 damage in 1 hit, the server will then raise a red flag and perform its counter-measure.