MMORPG 게임은 수천명의 동시접속자가 상당한 양의 요청을 게임서버에 전송한다. 이는 게임서버에 경합을 유발하고 예기치 못한 지연시간을 제공한다. 느린 응답시간은 사용자 이탈로 이어지기 때문에, 수준 높은 게임 서버 디자인이 요구된다. 본 연구에서는 컴퓨팅 자원들을 최대한 활용하여 안정적인 응답시간을 제공하는 멀티 쓰레드 게임 서버 디자인을 제안한다. 해당 서버는 클라이언트와 서버 사이의 통신을 돕는 socket system, 게임 캐릭터들의 상태 변화를 처리하는 task system, 그리고 사용자들이 동일한 게임 환경을 제공받을 수 있도록 하는 synchronization system으로 구성되어 있다. 심각한 경합을 예방하기 위하여, 프로세스 동기화를 위한 Lock, Lock-free 알고리즘을 모두 적용하였으며, 시야처리와 같은 여러가지 병렬 프로그래밍 접근 방식을 도입하였다.
Massively Multiplayer Online Role-Playing Game(MMORPG) attract thousand of concurrent users, leading to a surge in server requests. The massive requests results in contention on the game server, causing unexpected latency issues that undermine user experience. Delayed latency leads to user dissatisfaction and, ultimately, user churn. In this paper, we propose a multi-threaded game server design that provides stable response time by utilizing computing resources. And we study the performance of the design under various environments by configuring the approaches we implemented. The server consists of a socket system that helps communicate between clients and servers, a task system that handles changes in the status of user, and a synchronization system that allows users to receive the same game information. To prevent serious contention, both lock and lock-free algorithms for process synchronization are applied, and some parallel programming approaches such as visual processing are introduced.
1. Introduction
2. Related Works
3. Design and Implementation
4. Evaluation
5. Conclusion
Acknowledgement
Reference