KR20050068360A - Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented - Google Patents

Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented Download PDF

Info

Publication number
KR20050068360A
KR20050068360A KR1020030099669A KR20030099669A KR20050068360A KR 20050068360 A KR20050068360 A KR 20050068360A KR 1020030099669 A KR1020030099669 A KR 1020030099669A KR 20030099669 A KR20030099669 A KR 20030099669A KR 20050068360 A KR20050068360 A KR 20050068360A
Authority
KR
South Korea
Prior art keywords
game
packet buffer
frames
packet
client
Prior art date
Application number
KR1020030099669A
Other languages
Korean (ko)
Inventor
조광희
황현순
Original Assignee
(주) 인터미라지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 인터미라지 filed Critical (주) 인터미라지
Priority to KR1020030099669A priority Critical patent/KR20050068360A/en
Publication of KR20050068360A publication Critical patent/KR20050068360A/en

Links

Abstract

본 발명은 온라인 게임을 구성하는 다수의 게임 클라이언트들이 구비한 게임 환경을 동기화하기 위한 방법 및 그 방법이 구현된 게임 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체에 관한 것으로, 본 발명에 의한 네트워크 게임에서의 동기화 방법은 각 게임 클라이언트들이 자체 패킷 버퍼와 외부 패킷 버퍼로 이루어진 패킷 버퍼를 설정하는 단계; 게임 서버로부터 게임 시작 신호를 전달받아 게임이 되면 자체 생성 프레임들을 순차적으로 자체 패킷 버퍼에 저장하면서 타 게임 클라이언트로 송신하고, 타 게임 클라이언트에서 수신된 외부 생성 프레임들을 순차적으로 외부 패킷 버퍼에 저장하는 단계; 및 자체 패킷 버퍼에 첫 번째 패킷이 저장된 후 소정의 프레임 수(Ts)에 해당하는 프레임 시간이 경과한 후, 기본 프레임 레이트에 따라 자체 패킷 버퍼 및 외부 패킷 버퍼로부터 대응하는 패킷들을 인출하여 처리함으로써 게임을 진행하는 단계를 포함하여 구성된다.The present invention relates to a method for synchronizing a game environment provided by a plurality of game clients constituting an online game, and to a computer readable recording medium recording a game program on which the method is implemented. Synchronization method of each game client comprising the steps of setting a packet buffer consisting of its own packet buffer and an external packet buffer; Receiving a game start signal from the game server, when the game is played, the self-generated frames are sequentially stored in its own packet buffer and transmitted to the other game client, and the externally generated frames received from the other game client are sequentially stored in the external packet buffer. ; And after the first packet is stored in its own packet buffer, after a frame time corresponding to a predetermined number of frames (Ts) has elapsed, the corresponding packets are extracted from the own packet buffer and the external packet buffer according to the basic frame rate, and processed. It is configured to include the steps to proceed.

본 발명에 의하면, 기본 프레임 레이트를 초당 60 프레임으로 유지하면서도 네트워크 환경의 악화 등으로 인한 패킷 딜레이를 대부분 제거할 수 있고, 다수의 게임 클라이언트에 동일한 환경을 제공하는 게임 동기화를 이룰 수 있게 된다.According to the present invention, while maintaining the basic frame rate at 60 frames per second, it is possible to eliminate most packet delays due to deterioration of the network environment, and to achieve game synchronization that provides the same environment to multiple game clients.

Description

네트워크 게임에서의 동기화 방법 및 그 방법이 구현된 게임 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체{Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented}Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented

본 발명은 네트워크를 이용한 온라인 게임에 관한 것으로, 특히 온라인 게임을 구성하는 다수의 게임 클라이언트들이 구비한 게임 환경을 동기화하기 위한 방법 및 그 방법이 구현된 게임 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to an online game using a network, and more particularly, to a method for synchronizing a game environment provided by a plurality of game clients constituting an online game, and to a computer readable recording medium recording a game program on which the method is implemented. It is about.

게임이란 플레이어들이 공통의 목표를 가지고 소정의 규칙에 따라서 경쟁하는 것이다. 그리고, 컴퓨터 게임이란 컴퓨터가 마련한 장에서 하나 이상의 플레이어들이 컴퓨터가 제시하는 공통의 목표를 두고 컴퓨터가 제시하는 규칙에 따라서 서로 경쟁하는 것이다. 초창기의 컴퓨터 게임은 게임기 또는 개인용 컴퓨터에서 실행되는 게임 프로그램에 의해 동일한 공간에서 1인 또는 2인의 플레이어들에 의해 진행되었다. 그런데, 인터넷을 비롯한 네트워크가 발전하면서, 서로 다른 공간에 위치한 다수의 플레이어들을 하나의 게임에 참여시키는 새로운 형태의 게임으로서 온라인 네트워크 게임들이 등장하고 있다. 이와 같은 네트워크 게임의 경우에는, 네트워크를 통해 통합된 장에서 게임이 진행되지만 게임을 진행하는 다수의 플레이어(또는 게임 클라이언트)들이 실제로는 서로 다른 공간에 위치하게 되므로, 어느 한 플레이어의 동작을 다른 플레이어들이 동시에 인식할 수 있도록 하기 위한 동기화의 문제가 발생된다.A game is a competition in which players have a common goal and compete according to certain rules. And, computer games are those in which one or more players compete in a computer-generated chapter, following a computer-generated rule for a common goal presented by the computer. Early computer games were played by one or two players in the same space by game programs running on game machines or personal computers. However, with the development of networks including the Internet, online network games have emerged as a new type of game involving multiple players located in different spaces in one game. In the case of such a network game, the game is played in an integrated field through the network, but since a plurality of players (or game clients) who play the game are actually located in different spaces, the action of one player is different from the other player. The problem of synchronization arises so that they can be recognized at the same time.

온라인 게임들 중에서 RPG(Role Playing Game) 또는 전략 시뮬레이션 게임의 경우에는 모든 게임 클라이언트들이 게임 서버에 접속하여 운영되어, 각 게임 클라이언트는 오직 게임 서버와 패킷을 주고받으며 각 게임 클라이언트에 의해 디스플레이 되는 화면도 서로 일치하지 않는다. 이러한 게임들의 경우, 게임 서버와 게임 클라이언트들이 1대 다의 동기를 통해 게임을 수행하는 방식을 취하게 되는데, 네트워크 전송에 따른 시간적 지연으로 인하여 특정 게임 클라이언트에서 발생한 동작이 게임 서버와 모든 게임 클라이언트들에 정확히 반영되지는 아니한다, 그러나, 상기한 게임들의 경우 이와 같은 시간적인 차이가 전체적인 게임 진행에 큰 영향을 주지 않으므로, 수백 ms 이하의 시간적인 차이를 정확히 보상하기 위한 동기화는 고려하지 않고 있다.Among the online games, in the case of RPG (Role Playing Game) or strategy simulation game, all game clients access and operate the game server, and each game client exchanges packets only with the game server and displays the screen displayed by each game client. Does not match each other. In the case of such games, the game server and the game clients perform a game in a one-to-many synchronization. The action that occurs in a specific game client due to a time delay caused by network transmission is caused by the game server and all game clients. However, in the case of the above games, such a time difference does not significantly affect the overall game progression, and therefore, synchronization for accurately compensating for a time difference of several hundred ms or less is not considered.

한편, 일대일 또는 다수의 플레이어가 양편으로 나뉘어져 실력을 겨루는 방식의 게임에서는 게임의 공정한 진행을 위해 양편에 동일한 게임 환경을 제공하는 것이 매우 중요하다. 특히, 3D 대전 게임과 같이 아주 빠른 연속적인 동작들이 요구되는 게임의 경우에는 원격지에 위치한 플레이어들 간의 동작들이 수 ms 이하의 시간 단위까지 일치되어야 할 필요가 있다. 따라서, 이와 같은 게임들의 경우에는 서버는 게임의 준비 과정에서만 개입하고, 실제적인 게임이 진행되는 동안에는 서버의 개입 없이 게임 클라이언트들 상호간에만 필요한 패킷을 주고받는다.On the other hand, in a game in which one-to-one or multiple players are divided into two sides to compete, it is very important to provide the same game environment on both sides for fair progress of the game. In particular, in games where very fast continuous motions are required, such as 3D competitive games, the motions between players located at remote locations need to be matched by a unit of time of several ms or less. Therefore, in the case of such games, the server intervenes only in the preparation process of the game, and during the actual game, the server exchanges only necessary packets between game clients without the server's intervention.

대전 게임과 같은 네트워크 게임의 경우 각 게임 클라이언트별로 초당 60 프레임으로 구성되는 비디오 및 IO 공유 패킷 데이터를 관리하는데, 각 프레임에는 시간 개념의 일련번호가 부여된다. 이 경우, 게임의 동기화를 위해 자체적으로 생성되어 처리되는 프레임과 다른 게임 클라이언트로부터 전송되어 처리되는 프레임이 동일한 일련번호를 갖도록 유지하는 것이 필요하다. 그러나, 네트워크의 전송속도와 신호 품질이 항상 일정하지 않기 때문에 초당 60 프레임을 유지하면서 다른 게임 클라이언트로부터 전송되는 프레임을 자체적으로 생성되는 프레임과 일련번호를 맞추어 처리하는 것은 용이하지 않다.In the case of a network game such as a competitive game, each game client manages video and IO shared packet data consisting of 60 frames per second. Each frame is assigned a serial number of a time concept. In this case, it is necessary to keep the frames that are generated and processed by themselves and the frames transmitted and processed from other game clients to have the same serial number for synchronization of the game. However, because the transmission speed and signal quality of the network are not always constant, it is not easy to process frames transmitted from other game clients by matching their generated frames and serial numbers while maintaining 60 frames per second.

이와 같은 동기화의 문제를 해결하기 위한 종래의 방식들은 다음과 같다.Conventional schemes for solving this synchronization problem are as follows.

첫째, 초당 60 프레임의 프레임 레이트(Frame Rate)를 초당 20 프레임 정도로 줄이는 것이다. 이 방식은 매우 단순하고 분명하게 동기화를 이룰 수 있지만, 비디오 재생 비율이 줄어들었기 때문에 게임의 질이 떨어지게 된다.The first is to reduce the frame rate of 60 frames per second to 20 frames per second. This method is very simple and can be synchronized clearly, but the quality of the game is reduced because the video playback rate is reduced.

둘째, 네트워크 속도를 고려하여 프레임 스킵 레이트(Frame Skip Rate)를 조절하며 패킷을 주고받는 것이다. 이 방식은 구현이 복잡할 뿐만 아니라 네트워크가 균일하지 않고 가변적인 경우 프레임 스킵 레이트가 변하게 되어 패킷 딜레이(여기서, 패킷 딜레이라 함은 처리되어야 할 시점에 네트워크를 통해 전송되는 해당 일련번호의 패킷이 도착하지 않아 처리가 지연되는 것을 의미한다)가 심해지게 된다. 더욱이, 이 방식은 첫째 방식과 같이 게임의 질을 높일 수 있는 근본적인 해결책이 되지는 못한다.Second, the frame skip rate is controlled in consideration of the network speed to send and receive packets. This method is not only complicated to implement, but also changes the frame skip rate if the network is not uniform and variable, resulting in packet delays (where packet delays arrive at packets of the corresponding serial number transmitted over the network at the point where they need to be handled). It means that the processing is delayed.) Moreover, this is not a fundamental solution to improving the quality of the game like the first.

본 발명은 상기의 문제를 해결하기 위하여 창작된 것으로, 네트워크 게임을 진행하는 다수의 게임 클라이언트들이 비디오 및 IO 공유 패킷에 대하여 초당 60 프레임의 프레임 레이트를 최대한 유지하고 패킷 딜레이를 최소화하면서 게임의 동기를 이루게 하는 네트워크 게임에서의 동기화 방법 및 그 방법이 구현된 게임 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체를 제공함을 그 목적으로 한다.The present invention has been made to solve the above problems, and a plurality of game clients who play network games can synchronize the game while maintaining a maximum frame rate of 60 frames per second for video and IO shared packets and minimizing packet delay. It is an object of the present invention to provide a method for synchronizing in a network game and a computer-readable recording medium for recording a game program on which the method is implemented.

상기의 목적들을 달성하기 위하여, 본 발명에 의한 게임 서버와 다수의 게임 클라이언트들로 이루어진 네트워크 게임에서의 동기화 방법은 (a) 각 게임 클라이언트들이 자체 패킷 버퍼와 외부 패킷 버퍼로 이루어진 패킷 버퍼를 설정하는 단계; (b) 게임 서버로부터 게임 시작 신호를 전달받아 게임이 되면 자체 생성 프레임들을 순차적으로 자체 패킷 버퍼에 저장하면서 타 게임 클라이언트로 송신하고, 타 게임 클라이언트에서 수신된 외부 생성 프레임들을 순차적으로 외부 패킷 버퍼에 저장하는 단계; 및 (c) 상기 자체 패킷 버퍼에 첫 번째 패킷이 저장된 후 소정의 프레임 수(Ts)에 해당하는 프레임 시간이 경과한 후, 기본 프레임 레이트에 따라 자체 패킷 버퍼 및 외부 패킷 버퍼로부터 대응하는 패킷들을 인출하여 처리함으로써 게임을 진행하는 단계를 포함하여 구성된다.In order to achieve the above objects, a synchronization method in a network game consisting of a game server and a plurality of game clients according to the present invention comprises: (a) each game client sets a packet buffer consisting of its own packet buffer and an external packet buffer; step; (b) Upon receiving a game start signal from the game server, the game server transmits its own frames to the other game client while sequentially storing them in its own packet buffer, and sequentially sends the externally generated frames received from the other game client to the external packet buffer. Storing; And (c) after the first packet is stored in the own packet buffer and a frame time corresponding to a predetermined number of frames Ts elapses, corresponding packets are fetched from the own packet buffer and the outer packet buffer according to the basic frame rate. And progressing the game by processing.

상기 네트워크 게임에서의 동기화 방법의 (c) 단계에서는 외부 패킷 버퍼에 대응하는 패킷이 없는 경우, 자체 패킷 버퍼에서 소정의 프레임 수(Ts)에 해당하는 패킷들을 기본 프레임 레이트에 맞추어 다시 타 게임 클라이언트로 전송하는 것을 특징으로 한다.In step (c) of the synchronization method in the network game, if there is no packet corresponding to an external packet buffer, packets corresponding to a predetermined number of frames Ts in its own packet buffer are returned to another game client at a basic frame rate. Characterized in that the transmission.

또한, 상기 네트워크 게임에서의 동기화 방법에서 상기 소정 수의 프레임 수(Ts)는 Further, in the synchronization method in the network game, the predetermined number of frames Ts is

에 의해 정해진다.Determined by

이하에서, 본 발명에 따른 네트워크 게임에서의 동기화 방법에 대한 바람직한 실시예를 첨부된 도면에 의거하여 상세하게 설명하기로 한다.Hereinafter, a preferred embodiment of a synchronization method in a network game according to the present invention will be described in detail with reference to the accompanying drawings.

먼저, 도 1에 의하면, 본 발명에 의한 동기화 방법이 구현되는 네트워크 게임은 네트워크(20)에 의해 연결되는 게임 서버(10)와 다수의 게임 클라이언트들(30a, 30b)로 구성된다. 도 1에는 게임 클라이언트들이 2개로 도시되어 있으나, 이에 한정되는 것은 아니고 게임의 종류에 따라서 3개 이상이 함께 게임을 진행하는 것도 가능하다.First, according to FIG. 1, a network game in which a synchronization method according to the present invention is implemented is composed of a game server 10 and a plurality of game clients 30a and 30b connected by a network 20. In FIG. 1, two game clients are illustrated, but the present invention is not limited thereto, and three or more game clients may play the game together.

게임 서버(10)는 게임을 수행하고자 하는 게임 플레이어를 등록받고 게임 리스트를 제공하여 게임 플레이어가 선택한 게임을 게임 플레이어의 컴퓨터로 다운로드 하거나, 게임 플레이어가 게임 상대를 선택할 수 있도록 하고, 게임 전적을 관리하는 등의 작업을 수행한다. 그러나, 게임 서버(10)의 기능 및 작용은 본 발명의 범위에서는 벗어나므로, 상기한 게임 서버(10)의 기능들이 본 발명의 범위를 한정하는 것은 아니다. 다만, 본원 발명에서의 게임 서버(10)는 제1 게임 클라이언트(30a)와 제2 게임 클라이언트(30b)가 상호 게임을 수행할 수 있는 환경을 제공한 후에는 게임이 종료될 때까지 패킷 데이터에 대한 중계 역할은 더 이상 하지 아니한다.The game server 10 registers a game player who wants to play a game and provides a list of games to download a game selected by the game player to the game player's computer, allow the game player to select a game opponent, and manage game play. And so on. However, since the functions and actions of the game server 10 are outside the scope of the present invention, the functions of the game server 10 described above do not limit the scope of the present invention. However, the game server 10 according to the present invention provides an environment in which the first game client 30a and the second game client 30b can play a mutual game. The role of relay is no longer played.

제1 게임 클라이언트(30a)와 제2 게임 클라이언트(30b)는 상호 원격지에 위치한 게임 플레이어의 컴퓨터 시스템으로서, 동일한 게임의 진행에 필요한 프로그램이 설치된 것이다. 게임의 진행에 필요한 프로그램은 네트워크(20)를 통해 게임 서버(10)로부터 다운로드 받거나, 오프라인을 통해 제공되는 컴팩트 디스크 등을 통해 설치될 수 있다. 게임 클라이언트(30a, 30b)는 초당 60 프레임(기본 프레임 레이트)으로 구성되는 비디오 및 IO 공유 패킷 데이터를 처리하면서 게임을 진행하게 된다. 게임이 시작된 이후 생성된 각 프레임에는 일련번호가 부여된다. The first game client 30a and the second game client 30b are computer systems of game players located remotely from each other, and programs necessary for running the same game are installed. Programs necessary for the progress of the game may be downloaded from the game server 10 via the network 20, or may be installed through a compact disc provided via offline. The game clients 30a and 30b proceed with the game while processing video and IO shared packet data consisting of 60 frames per second (base frame rate). Each frame created after the game starts is assigned a serial number.

본 발명에 의한 네트워크 게임에서의 동기화 방법을 구현하기 위해 게임 클라이언트(30a, 30b)에 설치된 게임 프로그램은 자체 패킷 버퍼와 외부 패킷 버퍼로 이루어진 패킷 버퍼를 메모리에 설정하여 관리한다. 자체 패킷 버퍼는 게임 클라이언트가 자체적으로 생성한 프레임들을 순차적으로 저장하기 위한 것이고, 외부 패킷 버퍼는 타 게임 클라이언트로부터 수신된 외부 생성 프레임들을 순차적으로 저장하기 위한 것이다. 외부 패킷 버퍼는 타 게임 클라이언트의 개수만큼 별도로 설정되어 관리된다.In order to implement a synchronization method in a network game according to the present invention, a game program installed in the game clients 30a and 30b sets and manages a packet buffer including its own packet buffer and an external packet buffer in a memory. The own packet buffer is for sequentially storing frames generated by the game client itself, and the outer packet buffer is for sequentially storing external generated frames received from other game clients. The external packet buffer is separately set and managed by the number of other game clients.

여기서, 버퍼의 크기는 프레임 단위로 네트워크(20)의 전송 속도에 따라 유동적으로 결정되는 것이 바람직하다. 즉, 각 버퍼에 저장되는 프레임의 수(Ts)는 다음 수학식 1에 의해 정해진다.In this case, the size of the buffer is preferably determined according to the transmission speed of the network 20 in units of frames. That is, the number Ts of frames stored in each buffer is determined by the following equation.

수학식 1에서 다른 게임 클라이언트와의 응답시간은 게임 클라이언트와 다른 게임 클라이언트 사이에 메시지를 주고받는 전체시간으로 ping 명령어를 사용하여 확인할 수 있으며, 프레임 시간은 기본 프레임 레이트의 역수값으로 (1/60)초이고, α는 여분의 값으로 2 프레임 시간 정도가 적당하다.In Equation 1, the response time with other game clients is the total time of sending and receiving messages between the game client and other game clients using the ping command, and the frame time is the inverse of the basic frame rate (1/60). Seconds, and α is an extra value, suitable for about 2 frame times.

상기의 설명에서 각 버퍼의 크기는 유효 프레임을 관리하기 위한 크기이므로, 실제 구현에 있어서의 버퍼의 크기는 그 구현 방식에 따라 달라질 수 있다. 즉, 보다 큰 크기의 버퍼를 정해두고 Ts 만큼의 유효 프레임들을 표시하는 포인터들(예를 들어, 입력 프레임 포인터, 출력 프레임 포인터)을 설정하여 관리하거나, 원형 큐 형태의 버퍼로 관리하는 것도 가능하다.Since the size of each buffer in the above description is for managing valid frames, the size of the buffer in the actual implementation may vary depending on the implementation manner. That is, it is possible to set and manage pointers (e.g., input frame pointers and output frame pointers) that display Ts as many valid frames as a larger size buffer or manage them as buffers in the form of circular queues. .

각 게임 클라이언트(30a, 30b)는 자체 패킷 버퍼에 첫 번째 패킷이 저장된 후 소정의 프레임 수(Ts)에 해당하는 프레임 시간이 경과한 후, 기본 프레임 레이트에 따라 자체 패킷 버퍼 및 외부 패킷 버퍼로부터 대응하는 패킷들을 인출하여 처리함으로써 게임을 진행한다. 따라서, Ts 시간 동안 외부 생성 프레임들을 전혀 받지 못하는 치명적인 문제가 발생하지 않는 한, 네트워크 상에서 작은 변동이 있다 하더라도 패킷 버퍼의 완충 기능을 통해 패킷 딜레이는 소멸된다. 즉, 기본 프레임 레이트에 따라 패킷을 처리하는 시점에는 이미 모든 패킷이 패킷 버퍼에 준비되어 있게 된다.Each game client 30a, 30b responds from its own packet buffer and an external packet buffer according to the base frame rate after a frame time corresponding to a predetermined number of frames Ts after the first packet is stored in its own packet buffer. The game proceeds by withdrawing and processing packets. Therefore, unless there is a fatal problem of not receiving externally generated frames at all during the Ts time, even if there is a small change in the network, the packet delay is eliminated through the buffer function of the packet buffer. That is, at the time of processing the packet according to the basic frame rate, all packets are already prepared in the packet buffer.

또한, 패킷 버퍼에 저장된 패킷을 처리하고자 할 때에 외부 패킷 버퍼에 대응하는 패킷이 없는 경우, 자체 패킷 버퍼에서 소정의 프레임 수(Ts)에 해당하는 패킷들을 기본 프레임 레이트에 맞추어 타 게임 클라이언트로 반복적으로 전송함으로써 치명적인 문제가 해소되어 게임이 다시 진행되는 경우 게임 클라이언트는 자동적으로 동기를 맞추어지게 된다.In addition, when there is no packet corresponding to the external packet buffer when a packet stored in the packet buffer is to be processed, packets corresponding to a predetermined number of frames (Ts) in the own packet buffer are repeatedly transmitted to other game clients at a basic frame rate. By transmitting, the fatal problem is eliminated and the game client is automatically synchronized when the game is played again.

이하에서, 본 발명에 의한 네트워크 게임에서의 동기화 방법의 동작 과정을 설명하고자 한다. 여기서, 네트워크 게임은 도 1에 도시된 바와 같이 게임 서버(10)와 2개의 게임 클라이언트(30a, 30b)에 의해 진행되고, Ts는 5로 결정되어 있다고 가정한다.Hereinafter, an operation process of a synchronization method in a network game according to the present invention will be described. Here, it is assumed that the network game is played by the game server 10 and the two game clients 30a and 30b as shown in Fig. 1, and Ts is determined to be five.

도 2는 제1 게임 클라이언트(30a)와 제2 게임 클라이언트(30b)가 동시에 게임을 진행한 경우 게임이 시작된 직후 제1 게임 클라이언트(30a)의 패킷 버퍼와 제2 게임 클라이언트(30b)의 패킷 버퍼에 프레임이 저장되는 시점을 나타내는 타이밍도이다. 도 2에서 프레임 1,2,3,4,5,6은 제1 게임 클라이언트(30a)에 의해 생성된 것이고, 프레임 1′,2′,3′,4′,5′,6′은 제2 게임 클라이언트(30b)에 의해 생성된 것이다. 또한, 프레임 1,2,3,4,5,6은 제1 게임 클라이언트(30a)에서 제2 게임 클라이언트(30b)로 전송되고, 프레임 1′,2′,3′,4′,5′,6′은 제2 게임 클라이언트(30b)에서 제1 게임 클라이언트(30a)로 전송된다. 도 2의 T0에서의 각 게임 클라이언트의 패킷 버퍼는 도 2a에 도시된 바와 같이 비워있게 된다. 또한, 도 2의 T1, T3, T5, T6에서의 각 게임 클라이언트의 패킷 버퍼의 상태는 각각 도 2b, 도 2c, 도 2d, 도 2e와 같다. T3에서 제1 게임 클라이언트(30a)에는 프레임 3′이 아직 도착하지 않아 종래의 방식에 의하면 d 만큼의 패킷 딜레이가 발생하게 되지만, 본원 발명에서는 패킷 버퍼의 완충 기능으로 인해 전혀 문제가 되지 않는다. 제1 게임 클라이언트(30a)와 제2 게임 클라이언트(30b) 모두 T5에서는 패킷 버퍼에서 프레임 1, 1′을 인출하여 처리함으로써 게임을 진행하게 되고, T6에서는 프레임 2, 2′을 인출하여 처리함으로써 게임을 진행하게 된다.2 illustrates a packet buffer of the first game client 30a and a packet buffer of the second game client 30b immediately after the game is started when the first game client 30a and the second game client 30b simultaneously play the game. Is a timing diagram showing a time point at which a frame is stored. 2, frames 1, 2, 3, 4, 5, and 6 are generated by the first game client 30a, and frames 1 ', 2', 3 ', 4', 5 ', and 6' are second. It is generated by the game client 30b. In addition, frames 1,2,3,4,5,6 are transmitted from the first game client 30a to the second game client 30b, and the frames 1 ', 2', 3 ', 4', 5 ', 6 'is transmitted from the second game client 30b to the first game client 30a. The packet buffer of each game client at T 0 of FIG. 2 is empty as shown in FIG. 2A. Further, the same as Figure 2 in T 1, T 3, T 5 , the state of the packet buffer for each of the game client from T 6 is Figure 2b, Figure 2c, respectively, Fig. 2d and Fig 2e. In T3, the first game client 30a has not yet arrived at the frame 3 ', and according to the conventional method, a packet delay of d is generated according to the conventional method. However, in the present invention, the buffer function of the packet buffer is not a problem at all. The first game client 30a and the second game client 30b both play the game by extracting and processing frames 1 and 1 'from the packet buffer at T 5 , and processing and processing frames 2 and 2' from T 6. By playing the game.

도 3은 제1 게임 클라이언트(30a)와 제2 게임 클라이언트(30b)가 다른 시점에 게임을 진행한 경우 게임이 시작된 직후 제1 게임 클라이언트(30a)의 패킷 버퍼와 제2 게임 클라이언트(30b)의 패킷 버퍼에 프레임이 저장되는 시점을 나타내는 타이밍도이다. 도 3에 의하면, 제1 게임 클라이언트(30a)에서 프레임 4가 패킷 버퍼에 저장될 때 쯤 되어서 제2 게임 클라이언트(30b)에서는 비로소 프레임 1′이 패킷 버퍼에 저장된다. 이와 같은 경우에도 도 3의 T5에서는 도 3a에 도시된 바와 같이 동일한 조건의 패킷 버퍼에서 프레임 1, 1′을 인출하여 처리함으로써 게임을 진행하게 된다.3 illustrates a packet buffer of the first game client 30a and the second game client 30b immediately after the game is started when the first game client 30a and the second game client 30b play a game at different time points. It is a timing chart which shows the time point at which a frame is stored in a packet buffer. According to FIG. 3, frame 1 'is stored in the packet buffer until frame 4 is stored in the packet buffer in the first game client 30a. Even in such a case, in T 5 of FIG. 3, as shown in FIG. 3A, a game is played by drawing frames 1 and 1 ′ from the packet buffer having the same condition.

도 4는 제1 게임 클라이언트(30a)가 프레임 1,2,3,4,5를 패킷 버퍼에 모두 저장한 이후에도 제2 게임 클라이언트(30b)가 게임을 진행하지 못하는 상태를 나타내는 타이밍도이다. 제1 게임 클라이언트(30a)는 도 4의 T5에서 외부 패킷 버퍼에 처리하여야 할 패킷이 없으므로(도 4a 참조) 패킷을 처리하여 게임을 진행하는 대신 패킷 1,2,3,4,5를 다시 기본 프레임 레이트에 맞추어 제2 게임 클라이언트(30b)로 전송한다. 이와 같은 전송 과정은 제1 게임 클라이언트(30a)가 자신의 패킷 버퍼에서 프레임 1, 1′을 모두 인출하게 될 때까지 반복하게 된다.FIG. 4 is a timing diagram illustrating a state in which the second game client 30b cannot play a game even after the first game client 30a stores all the frames 1,2,3,4,5 in the packet buffer. Since the first game client 30a does not have a packet to be processed in the external packet buffer at T 5 of FIG. 4 (see FIG. 4A), instead of processing the packet to proceed with the game, packets 1, 2, 3, 4, and 5 are again processed. It transmits to the 2nd game client 30b according to a basic frame rate. This transmission process is repeated until the first game client 30a draws all the frames 1 and 1 'from its packet buffer.

도 5는 제1 게임 클라이언트(30a)와 동시에 게임을 진행하던 제2 게임 클라이언트(30b)가 프레임 120′까지만 생성하고 더 이상 진행을 못하게 되는 상태를 나타내는 타이밍도이다. 도 5의 T120에서의 각 게임 클라이언트의 패킷 버퍼의 상태는 도 5a와 같지만, 도 5의 T125에서의 각 게임 클라이언트의 패킷 버퍼의 상태는 도 5b와 같다. 제1 게임 클라이언트는 도 5의 T125에서 외부 패킷 버퍼에 처리하여야 할 패킷이 없으므로 패킷을 처리하여 게임을 진행하는 대신 패킷 121,122,123,124,125를 다시 기본 프레임 레이트에 맞추어 제2 게임 클라이언트(30b)로 전송한다. 이와 같은 전송 과정은 제1 게임 클라이언트(30a)가 자신의 패킷 버퍼에서 프레임 121, 121′을 모두 인출하게 될 때까지 반복하게 된다.FIG. 5 is a timing diagram illustrating a state in which the second game client 30b, which is playing the game simultaneously with the first game client 30a, generates only the frame 120 'and cannot proceed any further. The state of the packet buffer of each game client in T 120 of FIG. 5 is the same as that of FIG. 5A, but the state of the packet buffer of each game client in T 125 of FIG. 5 is the same as that of FIG. 5B. Since there is no packet to be processed in the external packet buffer in T 125 of FIG. 5, the first game client transmits packets 121, 122, 123, 124, and 125 to the second game client 30b again according to the basic frame rate instead of processing the packet. This transmission process is repeated until the first game client 30a draws all the frames 121 and 121 'from its packet buffer.

한편, 상술한 본 발명의 실시예는 개인용 컴퓨터를 포함한 범용 컴퓨터에서 사용되는 매체에 기록될 수 있다. 상기 매체는 마그네틱 기록매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독매체(예를 들면, 씨디롬, 디브이디 등), 전기적 기록매체(예를 들면, 플레쉬 메모리, 메모리 스틱 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 기록매체를 포함한다.Meanwhile, the embodiments of the present invention described above may be recorded in a medium used in a general purpose computer including a personal computer. The medium may be a magnetic recording medium (e.g., ROM, floppy disk, hard disk, etc.), an optical reading medium (e.g., CD-ROM, DVD, etc.), an electrical recording medium (e.g., flash memory, memory stick, etc.) And record carriers such as carrier waves (eg, transmission over the Internet).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 의하면, 기본 프레임 레이트를 초당 60 프레임으로 유지하면서도 네트워크 환경의 악화 등으로 인한 패킷 딜레이를 대부분 제거할 수 있고, 다수의 게임 클라이언트에 동일한 환경을 제공하는 게임 동기화를 이룰 수 있게 된다.According to the present invention, while maintaining the basic frame rate at 60 frames per second, it is possible to eliminate most packet delays due to deterioration of the network environment, and to achieve game synchronization that provides the same environment to multiple game clients.

도 1은 본 발명에 의한 동기화 방법이 구현되는 네트워크 게임이 수행되는 시스템 환경을 도시한 것이다.1 illustrates a system environment in which a network game in which a synchronization method according to the present invention is implemented is performed.

도 2는 제1 게임 클라이언트와 제2 게임 클라이언트가 동시에 게임을 진행한 경우 게임이 시작된 직후 제1 게임 클라이언트의 패킷 버퍼와 제2 게임 클라이언트의 패킷 버퍼에 프레임이 저장되는 시점을 나타내는 타이밍도이다.FIG. 2 is a timing diagram illustrating when frames are stored in the packet buffer of the first game client and the packet buffer of the second game client immediately after the game starts when the first game client and the second game client simultaneously play the game.

도 2a 내지 도 2e는 각각 도 2의 T0, T1, T3, T5, T6에서의 각 게임 클라이언트의 패킷 버퍼의 상태를 도시한 것이다.2A to 2E show the state of the packet buffer of each game client at T 0 , T 1 , T 3 , T 5 , and T 6 of FIG. 2, respectively.

도 3은 제1 게임 클라이언트와 제2 게임 클라이언트가 다른 시점에 게임을 진행한 경우 게임이 시작된 직후 제1 게임 클라이언트의 패킷 버퍼와 제2 게임 클라이언트의 패킷 버퍼에 프레임이 저장되는 시점을 나타내는 타이밍도이다.FIG. 3 is a timing diagram illustrating a time point at which frames are stored in a packet buffer of a first game client and a packet buffer of a second game client immediately after a game is started when the first game client and the second game client play a game at different times. to be.

도 3a는 도 3의 T5에서의 각 게임 클라이언트의 패킷 버퍼의 상태를 도시한 것이다.FIG. 3A shows the state of the packet buffer of each game client at T 5 of FIG. 3.

도 4는 제1 게임 클라이언트가 프레임 1,2,3,4,5를 패킷 버퍼에 모두 저장한 이후에도 제2 게임 클라이언트가 게임을 진행하지 못하는 상태를 나타내는 타이밍도이다.FIG. 4 is a timing diagram illustrating a state in which a second game client cannot play a game even after the first game client stores all the frames 1,2,3,4,5 in the packet buffer.

도 4a는 도 4의 T5에서의 각 게임 클라이언트의 패킷 버퍼의 상태를 도시한 것이다.4A shows the state of the packet buffer of each game client at T 5 of FIG. 4.

도 5는 제1 게임 클라이언트와 동시에 게임을 진행하던 제2 게임 클라이언트가 프레임 120′까지만 생성하고 더 이상 진행을 못하게 되는 상태를 나타내는 타이밍도이다.FIG. 5 is a timing diagram illustrating a state in which the second game client, which is playing the game simultaneously with the first game client, generates only up to frame 120 'and cannot proceed any further.

도 5a 및 도 5b는 각각 도 5의 T120 및 T125에서의 각 게임 클라이언트의 패킷 버퍼의 상태를 도시한 것이다.5A and 5B show the state of the packet buffer of each game client at T 120 and T 125 of FIG. 5, respectively.

Claims (4)

게임 서버와 다수의 게임 클라이언트들로 이루어진 네트워크 게임에서의 동기화 방법에 있어서,In the synchronization method in a network game consisting of a game server and a plurality of game clients, (a) 각 게임 클라이언트들이 자체 패킷 버퍼와 외부 패킷 버퍼로 이루어진 패킷 버퍼를 설정하는 단계;(a) each game client setting a packet buffer consisting of its own packet buffer and an external packet buffer; (b) 게임 서버로부터 게임 시작 신호를 전달받아 게임이 되면 자체 생성 프레임들을 순차적으로 자체 패킷 버퍼에 저장하면서 타 게임 클라이언트로 송신하고, 타 게임 클라이언트에서 수신된 외부 생성 프레임들을 순차적으로 외부 패킷 버퍼에 저장하는 단계; 및(b) Upon receiving a game start signal from the game server, the game server transmits its own frames to the other game client while sequentially storing them in its own packet buffer, and sequentially sends the externally generated frames received from the other game client to the external packet buffer. Storing; And (c) 상기 자체 패킷 버퍼에 첫 번째 패킷이 저장된 후 소정의 프레임 수(Ts)에 해당하는 프레임 시간이 경과한 후, 기본 프레임 레이트에 따라 자체 패킷 버퍼 및 외부 패킷 버퍼로부터 대응하는 패킷들을 인출하여 처리함으로써 게임을 진행하는 단계를 포함하여 구성됨을 특징으로 하는 네트워크 게임에서의 동기화 방법.(c) After the first packet is stored in the own packet buffer and a frame time corresponding to a predetermined number of frames (Ts) has elapsed, corresponding packets are extracted from the own packet buffer and the outer packet buffer according to the basic frame rate. And synchronizing the game by processing the network game. 제1항에 있어서, 상기 (c) 단계에서The method of claim 1, wherein in step (c) 외부 패킷 버퍼에 대응하는 패킷이 없는 경우, 자체 패킷 버퍼에서 소정의 프레임 수(Ts)에 해당하는 패킷들을 기본 프레임 레이트에 맞추어 다시 타 게임 클라이언트로 전송하는 것을 특징으로 하는 네트워크 게임에서의 동기화 방법.If there is no packet corresponding to the external packet buffer, a packet corresponding to a predetermined number of frames Ts in its own packet buffer is transmitted to another game client at a basic frame rate. 제1항 또는 제2항에 있어서, 상기 소정 수의 프레임 수(Ts)는The method according to claim 1 or 2, wherein the predetermined number of frames Ts is 에 의해 정해짐을 특징으로 하는 네트워크 게임에서의 동기화 방법.A method of synchronizing in a network game, characterized by. 제1항 내지 제3항 중 어느 한 항의 방법이 구현된 게임 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.A computer-readable recording medium recording a game program in which the method of claim 1 is implemented.
KR1020030099669A 2003-12-30 2003-12-30 Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented KR20050068360A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030099669A KR20050068360A (en) 2003-12-30 2003-12-30 Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030099669A KR20050068360A (en) 2003-12-30 2003-12-30 Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented

Publications (1)

Publication Number Publication Date
KR20050068360A true KR20050068360A (en) 2005-07-05

Family

ID=37258923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030099669A KR20050068360A (en) 2003-12-30 2003-12-30 Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented

Country Status (1)

Country Link
KR (1) KR20050068360A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100722427B1 (en) * 2005-11-17 2007-05-28 한국전자통신연구원 A Game State Synchronization System for a Wired and Wireless Multi-platform Online Game
KR101488653B1 (en) * 2013-01-22 2015-02-05 주식회사 넥슨코리아 Method and system for synchronizing game object infomation between local client and remote client
KR101488698B1 (en) * 2013-01-22 2015-02-05 주식회사 넥슨코리아 Method and system for synchronizing game object infomation between local client and remote client based on game sever
KR101528491B1 (en) * 2013-01-22 2015-06-15 주식회사 넥슨코리아 Method and system for synchronizing game object infomation between local client and remote client based on game sever
CN113965625A (en) * 2021-09-13 2022-01-21 广州四三九九信息科技有限公司 Game entity position smooth synchronization method, system and equipment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100722427B1 (en) * 2005-11-17 2007-05-28 한국전자통신연구원 A Game State Synchronization System for a Wired and Wireless Multi-platform Online Game
KR101488653B1 (en) * 2013-01-22 2015-02-05 주식회사 넥슨코리아 Method and system for synchronizing game object infomation between local client and remote client
KR101488698B1 (en) * 2013-01-22 2015-02-05 주식회사 넥슨코리아 Method and system for synchronizing game object infomation between local client and remote client based on game sever
KR101528491B1 (en) * 2013-01-22 2015-06-15 주식회사 넥슨코리아 Method and system for synchronizing game object infomation between local client and remote client based on game sever
CN113965625A (en) * 2021-09-13 2022-01-21 广州四三九九信息科技有限公司 Game entity position smooth synchronization method, system and equipment

Similar Documents

Publication Publication Date Title
US10071315B2 (en) Content providing method, content providing server, and content providing system
US8496531B2 (en) Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment
US6050898A (en) Initiating and scaling massive concurrent data transaction
US8357045B2 (en) Interactive asynchronous computer game infrastructure
US8430755B2 (en) Interactive asynchronous game play architecture
US8444492B2 (en) Inter-game interactive hybrid asynchronous computer game infrastructure with social networking
US8444490B2 (en) Interactive asynchronous game offline play architecture
US6811487B2 (en) Using transferred operation key status data to synchronize games running on multiple independent game systems
US20120122552A1 (en) Interactive asynchronous game bucketing facility
US20160008717A1 (en) System and method for sharing score experiences
JP2016511018A (en) Method and apparatus for concealing latency in network multiplayer games
CN113993600A (en) Delay elimination
KR20050068360A (en) Method for synchronization in network game and computer readable medium storing game program in which the synchronization method is implemented
US11478710B2 (en) Information processing device, method and medium
US11648470B2 (en) Online gaming for streaming players
US11577163B2 (en) Computer server, a method and computer program product
JP2018200675A (en) Data generating apparatus and application executing apparatus
JP7437152B2 (en) Programs, terminal devices and systems
JP2004223084A (en) Network game system
Meder Netcode Improvements for a Mobile First-Person Shooter Game
JP6897284B2 (en) Game equipment, programs and game systems
JP4892765B2 (en) Network game system and program
KR102374592B1 (en) Method for realizing animation of game-character in online game and server for realizing the same
US11601698B2 (en) Intelligent synchronization of media streams
JP6314274B1 (en) Data generation apparatus and application execution apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application