In response to the delay of 'Prasian Electric' for the taste of the hand in any environment
Topic: Let's sharpen the sense of play of real-time MMORPG!-Natural synchronization through prediction and correction
Lecturer: Jeong Sung-hoon-Nexon Korea / Nexon Korea
Presentation: Programming / Game Planning
Recommended Target: Programmer, System Designer
Difficulty: Basic prior knowledge needs
[Lecture Topic] This is a story about what you want to focus on in order to secure the consolidation of information synchronization and produce natural production in online multiplayer games with delayed time. Thinking about some response directions for the problem, and the problem of facing the actual problems in the Prasian Electric development, the process of identification, and how they responded and resolved in how, comprehensive based on examples. I want to share the options. Although rare in recent years, before the high-speed internet is laid nationwide, when playing multiplayer games regardless of computer specifications, it is often ping and the character is frequent. The online game is processed on the server through the client, and the information is delayed during the delivery of the information, and the order is not processed sequentially, or the server receives the information late in the situation where the client is already processed in the client. Because I used to send it again.
These problems have improved a lot in games that play in a stable network environment such as PCs and consoles, but in mobile games that use mobile communication networks, this problem has become one of the top priority tasks for developers. In addition to the environment that uses Wi-Fi reliably, the network situation is more complicated than before, such as LTE, 5G, and not standing in one place.
How is Nexon's mobile-PC cross platform MMORPG 'Prasian Electric'? Nexon Korea's Chung Sung-hoon, the Prasian Electric Development Team Server Unit Leader, explained how it improved after the problem occurring as he glanced through the history of the Prasian Electric Development.
■ 'Delay time' problem that cannot be avoided in multiplayer games
Jung Sung-hoon's server unit leader compared the play in the online game to the messenger. If you write and send a message, the way you send it to the other party through the server is similar. In the messenger, the transmission was often delayed due to the network or more, so even though it was sent before others, it was later floating and the decision was already made in Dantokbang. This can happen in the game, and at that moment it ruins a pleasant gameplay and hurt the user's mood.
The new 'Prasian Electric', which is currently being developed by the team of Chung Sung-hoon, is a game where real-time PVP is the core of MMORPG. As such, the key was to reduce the delay time in the situation where many people are connected. Theoretically, the wired network usually generates 10ms, and a lot of delay time occurs. If you go to Wi-Fi, you can go up to 100ms, and if you go to mobile communication, you can go up to 200 ~ 300ms.
How about converting it into 30 frames and 60 frames that users say? Based on 60 frames, many users are recognized when delayed time occurs over 16ms per frame. In 30 frames, users are unnatural when delayed time occurs over 33ms. The commonly speaking ping is bad, and it is said that the ping is splashing. In severe cases, I thought I was walking towards the wall, but I had a teleportation, and there was a phenomenon that I had experienced a lot in the early online game days when the old network was in poor. If you do not respond at all, no one will be interested.
So how can you cope with delay? Jung Sung-hoon, the leader, mentioned the concept of prediction and correction. If you predict in advance with the information you have, and if the correct information is different from the predictions when the correct information comes remotely, it is possible to prevent the unit from suddenly teleporting even in a sudden delay.
■ It comes out from the attack effect before it is hit? Tuning by prediction
The team began to be interested in this concept, when the team member in charge of the test said that the game's hand tasted on the way home. As a result of identifying the cause, it was found that if the bus ride on the bus in the mobile communication network, the LTE environment, or if it was not still in one place, a problem was delayed.
Sometimes, the development team, which confirmed that the attack judgment effect occurred first and then the sound sound was heard later, the development team, which often confirmed that the areas that would be awkward while playing, began to seek solutions. Although it was stable in the PC environment, 'Prasian Electric' had to provide comfortable play in the mobile environment as it featured the mobile-PC cross platform.
First of all, the development team swept the skill system associated with the blow and followed the development history. The first Prasian electricity was developed only by targeting skills, but the request for non-target skills was separated from the time of casting and the selection of skill hit targets. That way, the individuals in the area when the skill casting were able to avoid running out of the area before it was completed.
However, as a variety of skills have been added, the requirements have become more complicated. For example, the skill that is knocked back is knocked down for the skill, and the damage is worn in the middle of such a knockback. And the time to damage the damage exists separately. In addition to how to apply the cool down point, how to introduce a cancellation concept during casting, etc., the more fixed sections will be divided into several fixed sections.
In order to solve this problem, the concept of 'skill stage' was introduced. It is a composition of complex requirements by dividing the section into several stages in one skill. In this way, we have developed so that various skills can be created in one system. As a result, the player skills and boss skills were composed of a single system, but they could implement complex skills.
At this stage, the problem of delayed in the LTE environment was caught, and once again, the problem began to review. In the early days, after 0.5 seconds after the blowing, it was simply configured in this way, but after changing to the stage, the decision point approached every stage. As the decision was made, the process of delivering it increased, and each time it was delivered to a different delay time, so developers were not delivered at the time they intended. In particular, this happened if the network was unstable.
The development team, which identified the cause, decided that there was a lack of information in the client when showing the directing, and approached it as a way to fill it. In the situation where the skill stage, which has not yet begun, is calculated in advance, the actual stage progress was built by the server or client.
Some may not be able to calculate the whole in advance, but he mentioned that he had tied the section into a stage differently because he could not calculate all of that situation at once. So I introduced the concept of skill stage flow. Only the main parts that need to be divided are applied as a basis for dividing the flow, and the rest of the stages are tied and calculated in advance.
By bundling the blowing stage that was pushed, the stage that was originally sent four times was sent only 2 times, and the directing was not awkward, so I could handle the problem of the judgment and the sound sound before it was hit..
Of course, this measure alone did not solve all problems. Since the flow is long, the process is delayed when canceled when canceled in the midst of the fact that the skill information is delayed, which may cause a problem of attacking or motion. This part will be solved by additional measures such as adding a red confirmation message when the damage plotter is actually completed, and when the cancellation is canceled.
■ What if the attack doesn't fit suddenly? Adjust the location by correcting
If the above-mentioned measures assumed predictions, a system that accurately corrects it when the predictions and practices is different is required. It was also thanks to the tester's report that the development team grasped these problems. The development team called the tester to reproduce the situation and analyze the cause.
The development team found that the analysis showed that the hitter's time and the hitter was slightly different. In the case of the example, the hitter was more located on the left, and the opponent was on the right than the hitter saw. In other words, the skill was cast in the wrong place. As a result of applying the debugger to the server, I found out that the location of the server and the actual location of the attacker was different.
So why did the location change different? To understand this, it was necessary to do a trace of how to build the mobile system of the Prasian Electric. The initial movement system of Prasian Electric is built with a system that places poly and tiles on the floor and moves freely. There is no cell here and the direction is not specified, so you can wander freely. As we assumed large-scale battles, we adopted a method of creating and synchronizing the proper length instead of a model that continued to sync location in a short time in preparation for a large amount of communication.
At first, like a skill, there was an error depending on the delay time, but it was generally suitable. However, there was a disadvantage of low operation and reactivity. So I moved first from the client and changed it to the server. As a result, the sense of operation and reactivity improved, but there was a problem that the error of location information between each client peer increased. Especially when it stopped while moving, the error was quite large.
Comments
Post a Comment