I was contemplating whether to write this post, you see it's on the technical side of things and there's a few concepts that are hard to understand. The first part goes into how Sega developed the character creation system of PSU and how it was adapted to PSPo2. The second part will outline the network aspects of how Phantasy Star Online and Phantasy Star Universe handles positioning data.
To start this post you need to understand 2 concepts. The first is linear interpolation. Think of this like the in-betweeners of animation. It animates the movement of an object from one position to another. So a basic example of this, if you had a ball rolling down a hill, you would place your first scene at the top of the hill, and the second scene at the bottom of the hill. The computer then animates what happens in between both scenes through linear interpolation (But of course I'm no expert on this..) The point is for the computer to make the animation smooth between two points!
The second concept is server/client model. Clients are basically the Dreamcasts, Gamecubes, PC, PS2. Server is Sega's computer which you connect to for online gameplay.
(My own commentary will appear this way)
The left is the face shows a model from Phantasy Star Universe, and the right show's its equivalent in Phantasy Star Portable 2. If you played the demo of PSpo2, you may have noticed the facial slider no longer appears in the Character Creation screen. At the CEDEC, Sega developers gave a little insight on the technicalities of the PSP to explain why the slider was removed.
In Playstation Portable, the resolution is very low. Characters lose distinct details of the face when viewed from far away. The team decided to construct new faces that are clearer and easier to identify on the PSP.
In the example shown above, the eyes were made much larger so that one can identify her character from a far distance.
With this compromise, it allows the game to transmit less data for the character's themselves. The lecture continues to show how to implement cost cutting measures when designing characters for an online game.
Cost efficient measures were applied to the new default outfits for the races. When you develop whole outfits, (instead of the separate tops and bottoms like PSU has), the production time is greatly reduced.
The main star of these cost efficient measures are the hairstyles!
In this example above, you have two characters, A and B who both have the same outfit and facial features. It is determined that A and B are different individuals because they each have different hairstyles.
In this second example, if you have two characters with the same hair but change their outfit, it would be considered the same character. (Personally I don't agree with this line of thinking. In some games, changing your hairstyle greatly changes the identity of your character. Yet in this game, I still feel that I have the same character even if the hairstyle has drastically changed.)
Even having such a slight change can attribute to character variation. The picture above show two characters with similar hairstyles. Their impressions are different because one has longer hair than the other. This changes the overall outline of her face. That modification took around 10 minutes to create, making this very cost efficient.
All 3 shots in the example above use the same face, and eye color. Comparing this picture with the one above it, their faces appear to have decreased in size. However, these hairstyles do not change the model of the face in any way.
Since online games demand a large amount of character variation, having characters produced this way becomes very efficient. This efficiency isn't just to cut production time, but it also reduces network traffic since you aren't keeping track of many features (like the facial slider). So with this concept in place, it allows many characters to gather in a lobby without increasing loading times.
During the PSO era, players had limited bandwidth and speed. The developers came up with their own clever ways of reducing network traffic. PSO's network was built as a decentralized server in the way it handle data transmissions. As a decentralized server, the clients process information and send that data to a server. The server only relays that information and send it to other clients. The clients would also send their data to the server which then relays it back to everyone else and the party leader.
The party leader's client is responsible for handling all synchronization processes. (Synchronization makes sure that everyone sees the same thing at the same time in the same position.) This is a contrast of a centralized server model where the server itself handles the processing of all data and synchronization. (Like OnLive)
The leader of the party doesn't synchronize everything, only important events such as when a monster is dead, when a monster is knocked down, and damage the enemy receives and deals. Enemy positions are not transmitted to other players. On your screen, enemies appear at a different position from the ones that are shown on your party members' screen.
Bosses are synchronized with all players. The clients themselves (I'm guessing the party leader) transmits commands to other players which controls their boss.
The boss has a set of actions available to him. Its AI decides what to do, when to jump, who to target, and changes this at will. These actions are then sent as a command to other players, which are then stored inside their boss' action queue.
To reduce the amount of data that is transmitted, PSO limits the aspects of how your character moves. In PSO, at the time you press the button to move your character in a certain direction, the game will lock you in that direction for six frames of animation before allowing you to change. (I don't believe this applies to those who stop moving and change directions.) With this method, the game can determine which point you are heading to on a map. (This data will be transmitted to other players which will see exactly where you are, given that there is no forms of lag) So at the moment you press towards a direction, your destination is set to that position.
The green lines represents your character moving to a specific target destination. The yellow curve shows how this animation is Linear Interpolated from point A to Point B. (Keep note because PSU handles this differently.)
In PSU, movement is no longer synchronized as precisely as it was in PSO. In PSU you are able to move freely and change directions whenever you want. In this graph above, the red line represents your ACTUAL movement within the game. The blue line is where the game server sees you are heading to.
As you can see, the game does not know exactly where you are in those six frames of animation. It has to update your position on the screen for others. This is why players appear to warp a bit when they move. (I believe this is why in PSU version 1, other players would seem to have jerky running animations. I noticed in the graphic above, the yellow linear interpolation curve is no longer there. This would mean your character will not have that smooth running animation like PSO did. This running animation glitch isn't as blatantly obvious anymore thanks to the patch/AOTI.)
PSU adopted another way of reducing data transmissions. In the graphic above, each square represent 10 meters. Your character's vicinity is represented as the darkest blue square in the center. Players who are closest to you will transmit information frequently compared to players farther away. (You can see this very clearly during an event. Generally in an event lobby, players tend to dance in front of the mission counter. If you are too far away, you only see their silhouette. If you move a tad closer, the character's texture may load but they don't animate. This concept appears in the way how players farther away from you move extremely jerky as if they were turning on and off their router.)
.
- Phantasy Star Portable 2 Infinity announces collaboration with Calorie Mate