Sunday, November 28

‘Ranking’ from decades ago, let’s add it to my game

  • subject: Create an MMORPG ranking server
  • Lecturer: Namji – Com2uS / TD (Technical Director)
  • Presentation area: server, development
  • Lecture time: 2021.11.19 (Fri) 17:00 ~ 17:50
  • Lecture Summary: Past and present of the ranking server, making a simple ranking, tips on building a ranking system in MMORPG

  • ■ Gallag’s ranking – Even 40 years ago, there was a ranking

    TD (Technical Director) Namji of Com2uS RAON Studio is working on an MMORPG called World of Zenonia. TD Namji saw the previous two lectures, said it was so much fun, and started the lecture with a joke that the lecture he prepared would not be fun because it was a program.

    “Ranking server is actually a common topic. But why did you choose this topic? If you search for how to make a ranking server, there is only one explanation. There are some on foreign sites, but not many. I think it’s because I can make everything, but it’s not that easy. I talked a lot with people who make indie games. It made the game really difficult, but it was said that when you want to add a ranking later, you feel the difficulty.”

    “There are a lot of online games right now. All games have rankings. You don’t have to create them, you just need to get them from a commercial platform and attach them. If you think about it, rankings were not essential in the late 90s and 2000s. However, ranking It was something I was able to see in older arcades. If I play alone and the game is over, I will remember the ranking system where my name is engraved.”

    “If you think of such entertainment devices, it would have been a form of storing rankings for each entertainment device. Because there was no internet. If you look at the conceptual diagram of offline ranking processing, this is how it is. Record scores, collect scores from storage, and sort by high scores. and the process displayed on the screen. The code to process the ranking offline is as follows. It’s incredibly simple.”

    ■ When making a ranking? – Record, collect, sort, report

    “The online ranking is the same. Recording from a web browser is the same. Writing to the database, reading the database, sorting, and displaying the process is the same. The code is also concise. The following is a bit complicated, but using redis redis is a general-purpose program that can store and retrieve data redis has a lot of great features added redis has a nice feature that can be used for ranking redis automatically sorts data as soon as you put it in, just take it You just have to come.”

    “When creating a ranking, you only need to remember four things. Record, collect, sort and report. These are all four. I will give you some tips when creating rankings without using redis. Why not use the powerful tool redis? From the server programmer’s point of view, when a server failure occurs, it can be difficult because redis is not made by us. In case of failure, we have to follow the manual. You have to weigh and choose.”

    “The ranking can also be processed on the game server. However, in MMORPGs, the situation is different. Because the server operation is too much, the game server and the ranking server are often separated. I’ve said it before. I talked about it later, but they didn’t like it. Game servers have a lot of input/output, and in general, there are many cases where the game server is reluctant to handle it.”

    ■ Filtering and caching – Filtering and storing

    “To make the collection and sorting process efficient, two methods are needed. Filtering and caching. I couldn’t come up with a suitable word, so I brought the used words. Filtering is filtering, and caching is storing. There are many. You need to bring only data that is useful for ranking. If you bring in only character data that is at least a few levels and within a few days of the last access date, you can rank efficiently. This is filtering.”

    “Programmers will all agree, but caching itself is redis. It resides in memory and communicates with the server. In order to process ranking, the database is not queried every time, data is updated from DB at regular intervals, and data stored in memory. Is there a concept of real-time ranking? Imagine that if I eat a little more experience, I become 1st. I obtained experience and checked the ranking, but I am still in 2nd place. Most games will be like that. If it is updated immediately, it is sorted as soon as the score is pushed in using something like redis, but if the number of concurrent users is 10,000, it makes no sense to view the ranking by 10,000 people at the same time. Let’s do it, when the ranking is updated. It’s like pretending to be real-time. Users aren’t very interested. Most users aren’t rankers. Rankers may be a little sensitive. We have no choice but to update our rankings every time.”

    “Sometimes it is necessary to determine what percentage a character is included in the top percentage. It is possible if all the counting targets are cached and ranked one by one, but as I said before, the character may be excluded from the caching by filtering, Giving is going to be overloaded, so if you extract the linear function relationship between the score and the ranking from the current ranking data and send it to the ranking data, you will be able to know roughly what percentage of the top percentage with only the score.”

    Leave a Reply

    Your email address will not be published. Required fields are marked *