KR100773782B1 - System for compensating game play data among client system and method thereof - Google Patents

System for compensating game play data among client system and method thereof Download PDF

Info

Publication number
KR100773782B1
KR100773782B1 KR1020050070687A KR20050070687A KR100773782B1 KR 100773782 B1 KR100773782 B1 KR 100773782B1 KR 1020050070687 A KR1020050070687 A KR 1020050070687A KR 20050070687 A KR20050070687 A KR 20050070687A KR 100773782 B1 KR100773782 B1 KR 100773782B1
Authority
KR
South Korea
Prior art keywords
game
movement
game play
acceleration
motion
Prior art date
Application number
KR1020050070687A
Other languages
Korean (ko)
Other versions
KR20070016294A (en
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 KR1020050070687A priority Critical patent/KR100773782B1/en
Publication of KR20070016294A publication Critical patent/KR20070016294A/en
Application granted granted Critical
Publication of KR100773782B1 publication Critical patent/KR100773782B1/en

Links

Images

Abstract

본 발명은 온라인 게임 시스템에 있어서, 게임 클라이언트간의 게임 플레이 데이터를 보정하기 위한 방법 및 그 시스템에 관한 것이다.The present invention relates to a method and system for calibrating game play data between game clients in an online game system.

본 발명은 다른 클라이언트 사용자가 제어하는 오브젝트의 운동 속성을 오브젝트에 고유한 고유 운동, 등속운동, 가속도 운동등으로 운동 속성별로 분류하고, 이를 감지하여, 현재 오브젝트의 위치, 방향, 속도를 기초로 하여, 데이터 지연보다 짧은 주기로 상기 오브젝트의 이동 위치를 예측하여 보상한다.The present invention classifies the motion properties of an object controlled by another client user by motion properties such as intrinsic motion, constant motion, acceleration motion, and the like unique to the object, and detects the motion properties based on the current object's position, direction, and velocity. In addition, the moving position of the object is predicted and compensated with a period shorter than the data delay.

본 발명의 전술한 구성에 의하여, 데이터 송수신 지연이 있는 경우에도 원활한 게임 플레이 화면을 제공한다.The above-described configuration of the present invention provides a smooth game play screen even when there is a delay in data transmission and reception.

오브젝트, 서버, 클라이언트, 게임 플레이 데이터 패킷 Object, Server, Client, Gameplay Data Packets

Description

클라이언트 시스템 사이의 게임 플레이 데이터 보정 시스템 및 그 방법 {System for compensating game play data among client system and method thereof}System for compensating game play data among client system and method

도 1은 종래 기술에 있어서 게임 플레이 데이터의 출력을 도시한 도면이다.1 is a diagram showing the output of game play data in the prior art.

도 2는 본 발명이 적용될 수 있는 피어 투 피어 구조를 도시한 개략도이다.2 is a schematic diagram illustrating a peer-to-peer structure to which the present invention can be applied.

도 3는 본 발명이 적용될 수 있는 서버-클라이언트 구조의 네트워크를 도시한 개략도이다.3 is a schematic diagram illustrating a network of a server-client structure to which the present invention may be applied.

도 4는 본 발명이 적용될 수 있는 슈퍼 피어 네트워크 구조를 도시한 개략도이다.4 is a schematic diagram illustrating a super peer network structure to which the present invention can be applied.

도 5는 본 발명의 실시예에 따른 게임 플레이 데이터 보정 시스템의 구성을 도시한 블록도이다.5 is a block diagram showing the configuration of a game play data correction system according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 오브젝트 모션 보상부의 상세 구성을 도시한 블록도이다.6 is a block diagram illustrating a detailed configuration of an object motion compensation unit according to an exemplary embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 오브젝트 운동 속성을 구체적으로 설명하기 위한 도면이다.FIG. 7 is a diagram for specifically describing an object motion attribute according to an exemplary embodiment of the present invention. FIG.

도 8은 본 발명의 실시예에 따른 오브젝트 위치 보상을 설명하는 도면이다.8 is a view for explaining object position compensation according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 게임 플레이 데이터의 보정 방법을 도시한 흐름도이다. 9 is a flowchart illustrating a method of correcting game play data according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 오브젝트 위치 보상 방법을 도시한 흐름도이다.10 is a flowchart illustrating an object position compensation method according to an embodiment of the present invention.

본 발명은 온라인 게임에 있어서, 클라이언트 사이에서 교환되어 공유되는 게임 플레이 데이터를 보정하는 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for correcting game play data exchanged and shared between clients in an online game.

더욱 상세하게는, 온라인 게임에 있어서, 클라이언트 시스템 사이에서 발생하는 지연에 의하여 발생하는 게임 플레이 데이터의 끊김이나, 워프(warp)등의 문제를 해결하여, 유연한 게임 플레이 데이터를 출력하는 시스템 및 방법에 관한 것이다.More specifically, in an online game, a system and method for outputting flexible game play data by resolving problems such as interruption or warp of game play data caused by delays occurring between client systems are solved. It is about.

온라인 게임은 다수의 사용자가 유무선 통신이나 인터넷을 통해 서버나 다른 컴퓨터에 접속하여 즐기는 게임이다. 네트워크로 연결된 컴퓨터는 지연과 대역폭이라는 한계적 특성이 수반되며, 이러한 네트워킹 기술은 원하는 게임을 적절한 품질로 제공하는 것을 목적으로 하고 있다. Online games are games that a large number of users access by connecting to a server or other computer through wired or wireless communication or the Internet. Networked computers come with the limitations of latency and bandwidth, and this networking technology aims to deliver the desired game at the right quality.

도 1은 종래 기술에 있어서 게임 플레이 데이터의 출력을 도시한 도면이다.1 is a diagram showing the output of game play data in the prior art.

클라이언트 시스템(200, 210)은 서버를 통하여 또는 직접 연결되어, 게임 플레이 데이터 패킷을 교환함에 의해 온라인 게임을 진행한다.Client systems 200 and 210 are connected via a server or directly, to play an online game by exchanging game play data packets.

하지만, 네트워크 사이에서 전송로의 품질, 데이터 처리 능력, 대역폭 등에 의해 지연이 발생하는 것은 피할 수 없다.However, the delay caused by the quality of the transmission path, the data processing capability, the bandwidth, etc. between the networks is inevitable.

클라이언트 시스템(200)이 제어하는 캐릭터 오브젝트(10)가 화살표 방향으로 이동하는 경우, 이러한 오브젝트 이동 정보는 클라이언트 시스템(210)으로 전송되어진다.When the character object 10 controlled by the client system 200 moves in the direction of the arrow, the object movement information is transmitted to the client system 210.

전체적으로 클라이언트 시스템간의 게임 플레이 데이터의 동기는 이루어져야 하지만 전술한 바와 같이, 네트워크에서는 필수적으로 데이터 교환의 지연이 발생하게 된다.In general, game play data between client systems must be synchronized, but as described above, the network essentially delays data exchange.

따라서 이러한 지연이 과도하게 발생하는 경우에는 클라이언트 시스템(210)에서, 캐릭터 오브젝트(10)는 중간 이동 데이터를 수신하지 못하고 게임 플레이 패킷을 수신하는 경우에는 자연스러운 움직임을 보여주지 못하고 위치가 크게 변하는 동작 끊김 또는 워프(warp) 현상을 보이게 된다.Therefore, when such a delay occurs excessively, in the client system 210, the character object 10 does not receive the intermediate movement data, and when receiving the game play packet, the motion does not show the natural movement and the position is greatly changed. Or warp phenomenon.

이러한 동작 끊김 또는 워프 현상이 발생하는 경우에는, 특히 고속 판단과 응답이 필요한 액션 온라인 게임에서는 게임의 흥미를 떨어뜨리는 치명적인 문제점이 된다.When such a break or warp occurs, it is a fatal problem that detracts from the interest of the game, especially in an action online game that requires fast judgment and response.

한편, 종래 기술에 있어서는 이러한 끊김을 막고 동기화를 위하여, 자신의 클라이언트 시스템에 대한 명령 자체에 지연을 주는 방법 또는 게임 전체 플레이에 지연을 주는 방법, 허용 오차 내에서 움직임 예측을 수행하는 기술 등이 제안되고 있다.On the other hand, in the prior art, in order to prevent such disconnection and synchronization, a method of delaying the instruction itself to the client system or a delay of the entire game play, a technique of performing motion prediction within a tolerance, etc. are proposed. It is becoming.

그러나 순간적인 판단 등이 중요한 액션 게임에서는 이러한 플레이의 지연은 게임의 흥미를 반감시키며, 오브젝트 특성을 고려하지 않은 움직임 예측은 잘못된 게임 결과 또는 오브젝트 충돌 등의 문제를 발생시키는 문제점을 여전히 가지고 있다.However, in an action game where instant judgment or the like is important, the delay of the play halves the interest of the game, and motion prediction without considering the object characteristics still has problems such as incorrect game results or object collisions.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위하여, 게임 클라이언트간의 지연에 의해 발생하는 동작 끊김 또는 워프현상을 감소시킬 수 있는 시스템 및 방법을 제공한다.The present invention provides a system and method that can reduce the operation interruption or warp caused by the delay between game clients in order to solve the problems of the prior art described above.

또한, 본 발명은 오브젝트의 운동 속성에 따라 게임 플레이에 잘못된 영향을 미치지 않으며 신속하고 자연스러운 게임 플레이를 제공하는 시스템 및 방법을 제공한다.In addition, the present invention provides a system and method for providing fast and natural game play without adversely affecting game play according to the movement properties of the object.

전술한 본 과제를 해결하기 위하여, 본 발명의 특징에 따른 게임 플레이 데이터를 보정하는 시스템은, 게임에 필요한 오브젝트를 저장하는 오브젝트 저장 모듈; 상기 오브젝트의 이동에 발생하는 가속도가 반영된 운동 속성을 감지하는 가속도 감지 모듈; 상기 오브젝트의 이동 방향을 감지하는 운동 방향 감지 모듈; 상기 클라이언트가 송수신하는 게임 플레이 데이터 패킷의 지연 시간을 측정하는 핑속도 계산 모듈; 상기 가속도가 감지된 오브젝트의 현재 시각, 위치, 방향, 속도에 기초하여, 상기 지연 시간보다 짧은 주기로 상기 오브젝트의 이동을 상기 가속도가 반영된 이동 위치로 보상하는 오브젝트 모션 보상부; 및 상기 보상된 오브젝트의 이동을 출력하는 게임 화면 출력부를 포함한다.In order to solve the above-mentioned problems, a system for correcting game play data according to an aspect of the present invention, the object storage module for storing an object required for the game; An acceleration sensing module configured to detect a movement attribute reflecting the acceleration generated in the movement of the object; A movement direction detecting module configured to detect a moving direction of the object; Ping rate calculation module for measuring the delay time of the game play data packet transmitted and received by the client; An object motion compensator configured to compensate the movement of the object to a movement position in which the acceleration is reflected at a period shorter than the delay time, based on a current time, position, direction, and velocity of the detected object; And a game screen output unit configured to output movement of the compensated object.

또한 본 발명의 특징에 따른 게임 플레이 데이터 보정 방법은, a) 게임에 참 여한 클라이언트사이에 교환된 데이터의 지연 시간을 측정하여 저장하는 단계; b) 현재 게임상에 등장하는 오브젝트의 시간, 속도, 방향, 위치를 판독하여 저장하는 단계; c) 상기 오브젝트가 이동중인 경우, 상기 오브젝트의 운동 속성을 검색하는 단계; d) 상기 검색된 운동 속성이 제어 불가 고유 운동, 가속도 운동, 순간 반전 가능 운동인지를 판단하는 단계; 및 e) 상기 오브젝트의 시간, 속도, 방향, 위치 및 상기 단계 d)의 판단의 결과에 따라 상이한 방법으로 오브젝트의 위치 보상을 수행하는 단계를 포함한다.In addition, the game play data correction method according to an aspect of the present invention, a) measuring and storing the delay time of the data exchanged between the clients participating in the game; b) reading and storing the time, speed, direction and position of the object currently appearing in the game; c) if the object is moving, retrieving athletic attributes of the object; d) determining whether the retrieved movement attribute is an uncontrollable intrinsic movement, an acceleration movement, a momentary reversible movement; And e) performing position compensation of the object in different ways depending on the time, speed, direction, position of the object and the result of the determination of step d).

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention.

도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention. Like parts are designated by like reference numerals throughout the specification.

이제 본 발명의 실시예에 따른 게임 플레이 데이터 보정 방법 및 시스템에 대하여 도면을 참고로 하여 상세하게 설명한다.A method and a system for correcting game play data according to an embodiment of the present invention will now be described in detail with reference to the accompanying drawings.

도 2는 본 발명이 적용될 수 있는 피어 투 피어 구조를 도시한 개략도이다.2 is a schematic diagram illustrating a peer-to-peer structure to which the present invention can be applied.

피어 투 피어 구조는 모든 컴퓨터가 동일한 권한을 가지는 평등 구조로 클라이언트는 모든 입력 정보를 호스트를 포함한 모든 컴퓨터 전송한다. 플레이어는 네트워크 상에서 상대방을 찾아 두 플레이어가 연결되며 다른 컴퓨터의 도움없이 게 임을 진행한다. Peer-to-peer architecture is an equality structure in which all computers have the same rights, and the client sends all input information to all computers, including the host. The player finds the opponent on the network and the two players connect and play the game without the help of another computer.

이때, 게임 플레이어들은 게임을 제공하는 게임서버내의 채널 서버에서 같은 채널에서 게임방을 형성하고, 게임방이 형성되면, 피어 투 피어의 네트워크를 구성하게 된다. 이러한 피어 투 피어의 구조는 모든 컴퓨터가 호스트의 기능을 수행하며, 다른 클라이언트에 직접적인 게임 데이터 전송이 가능하여, 원활한 게임 운영이 가능한 장점이 있다. 그러나, 이러한 피어 투 피어 방식에서는 참가자수의 제한이 있으며, 클라이언트중 하나라도 원하는 성능에 미치지 못하면 전체 게임의 랙이 발생하는 문제점이 존재한다. At this time, the game players form a game room in the same channel in the channel server in the game server providing the game, and when the game room is formed, it constitutes a peer-to-peer network. This peer-to-peer structure allows all computers to function as hosts, enabling game data to be sent directly to other clients, enabling smooth game operation. However, there is a limit in the number of participants in such a peer-to-peer method, and there is a problem that a rack of the entire game occurs if any of the clients does not meet the desired performance.

또한, 클라이언트의 IP 주소가 가상 IP의 경우에는 피어 투 피어 방식의 게임 네트워크 구성이 불가능하므로 게임 서비스 업체 입장에서는 게임 채널에 참여하는 플레이어에 대해 인스턴트 형식의 게임방 제공이 어려우므로, 소규모 네트워크에서 게임을 운용하기에 적합한 구조이다.Also, if the client's IP address is virtual IP, it is impossible to construct a peer-to-peer game network. Therefore, it is difficult for a game service company to provide an instant game room for players participating in the game channel. It is a structure suitable for operation.

도 3은 본 발명이 적용될 수 있는 서버-클라이언트 구조의 네트워크를 도시한 개략도이다.3 is a schematic diagram illustrating a network of a server-client structure to which the present invention can be applied.

클라이언트-서버 구조는 적어도 한대 이상의 서버(100)에 복수의 클라이언트(201, 202, 203)가 접속하여 게임을 진행한다. 클라이언트는 플레이어의 입력을 받아 서버로 전송하고 클라이언트로부터 오는 입력을 받아 입력에 해당하는 처리를 한 후 그 결과를 모든 클라이언트에 제공한다. In the client-server structure, a plurality of clients 201, 202, and 203 connect to at least one or more servers 100 to play a game. The client receives the player's input, sends it to the server, receives the input from the client, processes the input, and provides the result to all clients.

이러한 클라이언트-서버 구조는 다수의 클라이언트수가 접속을 제공하고, 게임공간의 영역분할, 진행 동기화, 게임 로직 갱신등이 용이하지만, 하나의 서버에 클라이언트가 너무 많이 접속 하는 경우에는 많은 부하로 인해 처리가 늦어지는 문제점이 존재한다.This client-server architecture provides a large number of clients to provide access, easy division of game space, synchronizing progress, and updating game logic.However, when too many clients are connected to one server, the processing is difficult. There is a problem of delay.

또한, 여기서, 클라이언트(201, 202, 203)사이에는 실제적으로 데이터가 송수신되지 않고, 서버(100)가 데이터를 각각의 클라이언트에게 릴레이하는 구성을 취하기 때문에 플레이어의 즉각적인 컨트롤에 의해 게임의 승패가 좌우되는 액션형 게임보다는 대규모 인원이 특정 지역에 참여하는 MMORPG등의 게임에 적합하다.In addition, since the data is not actually transmitted or received between the clients 201, 202, and 203, and the server 100 relays the data to each client, the game is decided by the immediate control of the player. It is suitable for games such as MMORPG where a large number of people participate in a specific region rather than an action type game.

도 4는 본 발명이 적용될 수 있는 슈퍼 피어 네트워크 구조를 도시한 개략도이다.4 is a schematic diagram illustrating a super peer network structure to which the present invention can be applied.

슈퍼 피어 구조는 클라이언트 시스템중 가장 성능이 좋은 클라이언트(200A)를 슈퍼 피어로서 선정하여, 슈퍼 피어가 게임 플레이중 발생하는 패킷을 다른 클라이언트에게 중개해준다. The super peer structure selects the best performing client 200A among the client systems as the super peer, and relays packets generated during the game play by the super peer to other clients.

전술한 바와 같이, 슈퍼 피어로서 선정된 클라이언트의 IP 어드레스(IP A)는 모든 클라이언트 시스템에 브로드 캐스팅되고, 슈퍼 피어가 아닌 클라이언트들은 게임 플레이중 발생한 패킷을 IP A를 목적지로 하여 전송한다. As described above, the IP address (IP A) of the client selected as the super peer is broadcasted to all client systems, and non-super peers transmit packets generated during game play to IP A as a destination.

실시간의 이벤트가 발생하는 액션 게임의 경우에는 모든 클라이언트들의 동기가 발생하도록 게임 플레이 패킷을 공유하여야 하기 때문에, 슈퍼 피어는 수신된 게임 플레이 패킷을 자신을 비롯한 소스가 아닌 다른 클라이언트들에게 모두 전송한다. In the case of an action game in which a real-time event occurs, a super peer transmits the received game play packet to all clients other than the source, including itself, because the game play packet must be shared so that all clients can be synchronized.

또한, 슈퍼 피어는 피어중의 하나로서 자신이 발생시킨 패킷 역시 다른 클라이언트에 전송한다. In addition, the super peer transmits a packet generated by itself as one of the peers to another client.

즉, 슈퍼 피어는 네트워크를 구성하는 다른 피어에 관한 IP 주소를 모두 가지고 있으며, 다른 피어들은 단지 자신이 발생시킨 게임 플레이 패킷을 모두 슈퍼 피어의 IP 어드레스(IP A)로 전송하기만 하면 된다. That is, the super peer has all the IP addresses of the other peers in the network, and the other peers only need to send all the game play packets generated by them to the super peer's IP address (IP A).

슈퍼 피어는 전송된 게임 플레이 패킷에 대해서, 전송주체가 아닌 모든 클라이언트에 전송한다. 또한, 슈퍼 피어 자신 역시 게임 클라이언트 중의 하나이므로 슈퍼 피어 자신이 발생시킨 게임 플레이 패킷을 모든 게임 클라이언트에 전송한다.The super peer sends the transmitted game play packet to all clients that are not the senders. In addition, since the super peer itself is also one of the game clients, the game play packet generated by the super peer itself is transmitted to all game clients.

따라서, 슈퍼 피어에 해당하는 클라이언트는 게임 패킷을 중개하게 되고, 다른 클라이언트들은 단지 자신이 발생시킨 게임 플레이 패킷을 슈퍼 피어로 전송하거나, 슈퍼 피어로부터 전송되어온 게임 플레이 패킷을 자신의 클라이언트 프로그램에 적용하기만 하면 된다.Therefore, the client corresponding to the super peer mediates the game packet, and other clients simply transmit the game play packet generated by the super peer to the super peer, or apply the game play packet transmitted from the super peer to their client program. Just do it.

한편, 클라이언트 시스템이 호스트로서 기능하는 슈퍼 피어 구조를 구현하기 위해서, 본 발명의 실시예에서 사용되는 클라이언트에 설치된 게임 프로그램은 게임에 사용되는 오브젝트, 맵, 게임 알고리즘 모두를 저장하고 있으며, 게임 플레이시에는 오브젝트의 이동 좌표등의 적은 용량의 오브젝트 제어 정보만을 교환하여 신속한 게임을 운영하게 된다.On the other hand, in order to implement a super peer structure in which the client system functions as a host, the game program installed in the client used in the embodiment of the present invention stores all the objects, maps, and game algorithms used in the game. It is possible to operate a fast game by exchanging only a small amount of object control information such as moving coordinates of an object.

전술한 슈퍼 피어 구조는 앞서 설명한 서버-클라이언트 구조에 비해 부하와 필요 대역폭이 적기 때문에 처리 속도가 빠르므로, 고속 응답을 요구하는 액션게임등에서도 효과적으로 사용될 수 있다.The above-described super peer structure has a lower processing load and bandwidth than the server-client structure described above, so the processing speed is high. Therefore, the super peer structure can be effectively used in an action game requiring a high speed response.

전술한 게임 네트워크 구조는 각각의 온라임 게임 네트워크를 구성하는 장단점을 보유하고 있지만, 각 클라이언트 사이에서 발생하는 데이터 전송 지연은 피할 수 없다. 이러한 데이터 전송 지연은 통상적으로 핑(ping)이라는 프로그램으로 테스트 하게 된다. 핑(ping)은 특정한 인터넷 주소가 있고, 또 그 주소가 요청을 받아들일 수 있는지를 확인해 주는 기본적인 인터넷 프로그램이다. 핑은 사용자가 접속하려고 시도하고 있는 호스트가 실제로 운영되고 있는지를 확인하는 진단 목적으로 사용된다.While the above-described game network structure has advantages and disadvantages of configuring each on-line game network, the data transmission delay incurred between each client is inevitable. This data transmission delay is usually tested by a program called ping. Ping is a basic Internet program that verifies that a particular Internet address exists and that it can accept requests. Ping is used for diagnostic purposes to verify that the host you are trying to connect to is actually running.

한편, 핑은 이러한 호스트 운영확인 외에 상대방 컴퓨터와 자신의 컴퓨터 사이의 지연되는 속도값 역시 산출하기 때문에, 상기 데이터 전송 지연을 나타내는 지표로도 사용된다.On the other hand, since the ping also calculates a delayed speed value between the counterpart computer and its own computer in addition to the host operation confirmation, it is also used as an index indicating the data transmission delay.

본 발명의 명세서에서는 상기 지연 속도값을 핑 또는 핑속도로 칭하기로 한다.In the specification of the present invention, the delay rate value will be referred to as ping or ping rate.

도 5는 본 발명의 실시예에 따른 게임 플레이 데이터 보정 시스템의 구성을 도시한 블록도이다.5 is a block diagram showing the configuration of a game play data correction system according to an embodiment of the present invention.

본 발명의 게임 플레이 데이터 보정 시스템(100)은, 개별 클라이언트 시스템에 설치되며, 오브젝트 저장 모듈(110), 가속도 감지 모듈(120), 운동 방향 감지 모듈(130), 핑계산 모듈(140), 인터페이스 모듈(150), 오브젝트 모션 보상부(160), 게임 화면 출력부게임 알고리듬 모듈(170), 게임 화면 출력부(180)를 포함한다.The game play data correction system 100 of the present invention is installed in an individual client system and includes an object storage module 110, an acceleration detection module 120, a movement direction detection module 130, a ping calculation module 140, and an interface. The module 150, the object motion compensation unit 160, the game screen output unit game algorithm module 170, and the game screen output unit 180 are included.

오브젝트 저장 모듈(110)은, 게임 플레이 필요한 오브젝트에 관한 정보를 저장한다. 상기 오브젝트는 맵, 건물, 캐릭터, 아이템 등의 오브젝트를 완성된 형태로 저장하여, 게임 플레이를 위한 명령 데이터만 교환되는 경우, 게임이 진행되게끔 되는 것이 바람직하다.The object storage module 110 stores information about objects required for game play. Preferably, the object stores a map, a building, a character, an item, or the like in a completed form, so that when only command data for game play is exchanged, the game proceeds.

또한, 상기 오브젝트에는 운동 또는 이동에 있어서 고유한 속성이 존재하는 경우에는 이에 대한 운동 속성 식별자를 할당하여 저장하는 것이 바람직하다. 예를 들어, 탄환등은 일단 명령이 내려진 후에는 제어가 불가능한 등속 직선운동을 하며, 수류탄 등은 일단 명령이 내려진 후에는 정해진 방향으로 포물선의 자유 낙하 운동을 하므로, 이러한 운동 속성에 대한 식별자를 오브젝트와 매칭시켜 저장하는 것이 가능하다.In addition, when the object has a unique attribute in exercise or movement, it is preferable to allocate and store an exercise attribute identifier for the object. For example, a bullet, etc., is in a constant velocity linear motion that cannot be controlled once a command has been issued, and a grenade, etc., freely moves a parabola in a predetermined direction once a command has been issued. It is possible to match with and store.

가속도 감지 모듈(120)은 오브젝트의 이동 명령이 있는 경우, 현재 상태에 따른 가속도가 반영된 운동 속성을 감지하게 된다. 가속도 감지 모듈(120)은 오브젝트의 정확한 가속도를 감지할 수도 있지만, 단지 가속도 운동의 속성만 분류하여 감지하는 것도 가능하다. 즉, 자유 낙하 운동의 경우 중력 가속도에 따른 속도를 산출할 수도 있지만, 단지 운동 방향을 180도 급반전할 수 없는 반전 불가 가속도 운동으로 분류할 수 있다. 또한, 마찰력이 낮은 빙판을 질주 하는 경우 또는 부스터를 사용하여 공중으로 상승하는 경우 역시 반전 불가 가속도가 반영된 운동속성으로 분류할 수 있다.When there is a movement command of the object, the acceleration detection module 120 detects an exercise property in which acceleration is reflected according to a current state. The acceleration detection module 120 may detect the exact acceleration of the object, but may classify and detect only the attributes of the acceleration motion. That is, in the case of the free fall motion, the speed according to the gravity acceleration may be calculated, but the motion direction may be classified as the non-invertable acceleration motion that cannot be reversed by 180 degrees. In addition, the case of sprinting the ice with low friction force or ascending into the air using a booster can also be classified as a movement attribute reflecting the non-reversible acceleration.

운동 방향 감지 모듈(130)은 오브젝트의 운동 방향을 감지하여 이동 위치의 보상시에 데이터를 제공한다. 운동방향은 현재 오브젝트의 위치를 기준으로 이동 명령을 내린 방향 또는 탄환을 발사한 방향을 측정하면 감지할 수 있으며, 위치 데이터의 보상은 상기 감지된 방향을 기초로 이루어진다.The movement direction detection module 130 detects the movement direction of the object and provides data when compensating for the movement position. The direction of movement can be detected by measuring the direction in which the movement command is given or the direction in which the bullet is fired based on the position of the current object, and the compensation of the position data is made based on the detected direction.

핑 계산 모듈(140)은 전술한 핑속도 값을 계산한다. 핑속도 값이 소정치 이상으로 지연되는 경우에는 더 짧은 주기로 게임 플레이 데이터의 보정이 이뤄진다.Ping calculation module 140 calculates the ping rate value described above. If the ping rate value is delayed more than a predetermined value, the game play data is corrected in a shorter period.

인터페이스 모듈(150)은, 서버 또는 다른 피어와 통신을 수행하며, 게임이 플레이 데이터를 수신한다. 또한, 상기 데이터 통신과 아울러 핑(ping) 속도값 측정을 통해 데이터 전송 지연값을 획득한다.The interface module 150 communicates with a server or other peer, and the game receives play data. In addition, a data transmission delay value is obtained through ping rate measurement along with the data communication.

오브젝트 모션 보상부(160)는 전술한 가속도 감지 정보, 운동 방향 감지 정보, 핑 속도값을 기초로 하여 오브젝트의 이동 위치를 보상한다. 즉, 오브젝트의 현재위치 및 운동에 관한 정보를 기초로 하여, 상기 핑 속도값에 발생하는 지연 구간에 미리 예측된 위치로 오브젝트를 이동시키고 이를 화면상에 출력하게 된다. 오브젝트 모션의 보상에 대한 구체적인 방법은 후술하도록 한다.The object motion compensator 160 compensates the movement position of the object based on the acceleration detection information, the movement direction detection information, and the ping speed value. That is, based on the information about the current position and the motion of the object, the object is moved to a position predicted in advance in the delay section occurring in the ping speed value and outputted on the screen. A detailed method for compensating the object motion will be described later.

게임 화면 출력부(170)는 전술한 위치 보상된 오브젝트 또는 수신된 게임 플레이 데이터에 의해 제어된 오브젝트를 게임 플레이 상에 배치함으로서 연속적인 게임 플레이 화면을 출력하게 된다.The game screen output unit 170 outputs a continuous game play screen by placing the above-described position compensated object or an object controlled by the received game play data on the game play.

도 6은 본 발명의 실시예에 따른 오브젝트 모션 보상부의 상세 구성을 도시한 블록도이다.6 is a block diagram illustrating a detailed configuration of an object motion compensation unit according to an exemplary embodiment of the present invention.

전술한 오브젝트 모션 보상부(160)는, 가속도 산출부(161), 마찰력 산출부(162), 고유 운동 검출부(163), 시간 저장부(166a), 속도 저장부(166b), 방향 기록부(166c), 위치 기록부(166d), 핑정보 저장부(164), 오브젝트 위치 예측부(165)를 포함한다. The aforementioned object motion compensator 160 includes an acceleration calculator 161, a friction force calculator 162, a natural motion detector 163, a time storage 166a, a speed storage 166b, and a direction recorder 166c. ), A position recording unit 166d, a ping information storage unit 164, and an object position prediction unit 165.

여기서, 현재 오브젝트의 시간, 속도, 방향, 위치에 관한 정보는 현재 오브젝트 정보 기록부(166)에 저장된다.Here, information about the time, speed, direction, and position of the current object is stored in the current object information recording unit 166.

가속도 산출부(161)는 가속도 감지 모듈(120)에서 가속도가 있는 오브젝트의 움직임을 검출하면, 그 가속도 값을 산출하게 된다. 상기 가속도 산출부(161)는 운동 형태에 따라 다양한 가속도 값을 저장하고 있으며, 현재의 오브젝트 운동 속성에 적합한 가속도를 이용하여 이동할 거리를 계산하게 된다.When the acceleration calculating unit 161 detects the movement of the object with acceleration in the acceleration detecting module 120, the acceleration calculating unit 161 calculates the acceleration value. The acceleration calculator 161 stores various acceleration values according to the type of motion, and calculates a distance to move by using an acceleration suitable for the current object motion property.

예를 들어 가속도 산출부(160)는, 자유 낙하 가속도, 부스터를 이용한 상승 가속도등에 대하여 적절한 가속도 값을 가지게 된다.For example, the acceleration calculation unit 160 has an appropriate acceleration value for free fall acceleration, ascending acceleration using a booster, and the like.

마찰력 산출부(162)는, 현재 이동하는 오브젝트가 받는 마찰력 값을 저장하고 있으며, 상기 마찰력값을 오브젝트의 속도에 반영한다. 상기 마찰력은 일반 노면, 빙판 노면, 수중등 캐릭터 오브젝트의 상황에 의해 결정된다.The friction force calculating unit 162 stores the friction force value received by the currently moving object, and reflects the friction force value in the speed of the object. The frictional force is determined by the situation of the character object, such as a general road surface, ice road surface, underwater.

고유 운동 검출부(163)는, 특정 시간동안은 사용자의 제어에 의해서도 속도나 방향이 변하지 않는 고유 운동의 오브젝트를 검출하게 된다. 이러한 오브젝트는 사전에 이미 정해질 수 있으며, 오브젝트의 운동속성 식별자를 통해 용이하게 검출할 수 있다. 이러한 고유 운동의 오브젝트는 탄환이나, 수류탄, 움직이는 건축물등이 그 대상이 될 수 있다.The intrinsic motion detector 163 detects an object of intrinsic motion whose speed or direction does not change even under the control of the user during a specific time. Such an object may already be determined in advance, and may be easily detected through the object's movement attribute identifier. Objects of such intrinsic motion may be bullets, grenades, moving buildings, and the like.

현재 오브젝트 정보 기록부(166)는 현재 오브젝트의 위치에 대한 시간과 속도, 방향, 위치를 기록한다. 시간 저장부(166a)는 현재 시간을 기록하며, 속도 저장부(166b)는 현재 오브젝트의 속도를 저장한다. 상기 속도 정보는 실질적으로 게임상에서 설정되거나, 사용자 명령에 의해 발생한 단위 시간당 이동 픽셀에 관한 정보이다.The current object information recording unit 166 records the time, the speed, the direction, and the position of the current object. The time storage unit 166a records the current time, and the speed storage unit 166b stores the speed of the current object. The velocity information is substantially information about a moving pixel per unit time set in a game or generated by a user command.

방향 기록부(166c)는 사용자의 명령에 의해 현재 시각에 이동하는 방향 또는 중력에 의해 오브젝트가 이동하는 방향에 대한 정보를 기록한다. 위치 기록부 (166d)는 현재 시각의 오브젝트 위치 좌표를 기록한다.The direction recording unit 166c records information about the direction in which the object moves by gravity or the direction in which the user moves at the current time. The position recording unit 166d records the object position coordinates of the current time.

상기 오브젝트 정보는 위의 4가지 요소를 개별적으로 관리할 수도 있지만, 벡터의 형태로 정보를 저장할 수도 있으며, 2D 게임의 경우에는 X, Y 축에 대한 단위 시간당 픽셀개수를 각각의 속도 정보로서 저장할 수 있다. 실질적으로 온라인 게임은 고속으로 진행되므로, 상기 정보 요소들은 명령에 대한 정보를 인식하고 갱신되는 순간 동안 일시 저장된다.The object information may manage the above four elements individually, but may store information in the form of a vector, and in the case of a 2D game, the number of pixels per unit time for the X and Y axes may be stored as the velocity information. have. Since the online game proceeds substantially at high speed, the information elements are temporarily stored for the moment when the information on the command is recognized and updated.

핑정보 저장부(164)는 게임상에서 등장하는 다른 클라이언트 들의 핑속도값을 저장한다. 상기 핑속도값은 네트워크 환경에 의해 변경될 수도 있으므로 미리 정해진 주기로 갱신도 가능하다.The ping information storage unit 164 stores ping rate values of other clients appearing in the game. Since the ping rate value may be changed by the network environment, the ping rate value may be updated at a predetermined cycle.

오브젝트 위치 예측부(165)는 핑 속도값보다 짧은 주기를 이용하여 상기 가속도값, 마찰력값, 고유 운동의 속도값을 이용하여 다른 클라이언들의 오브젝트 위치를 예측하여 출력한다. The object position predictor 165 predicts and outputs object positions of other clients using the acceleration value, the friction force value, and the velocity value of the natural motion using a period shorter than the ping speed value.

여기서, 전술한 가속도, 마찰력, 고유 운동 여부등은 반드시 모두 예측에 고려될 필요는 없으며, 오브젝트의 운동 속성의 요소로서 적어도 한 가지 이상만 고려하여도 본 발명의 기술 사상에서 벗어나는 것은 아니다.Here, the aforementioned acceleration, friction force, natural motion, etc. are not necessarily all considered in the prediction, and considering at least one or more as an element of the movement attribute of the object does not deviate from the technical idea of the present invention.

도 7은 본 발명의 실시예에 따른 오브젝트 운동 속성을 구체적으로 설명하기 위한 도면이다.FIG. 7 is a diagram for specifically describing an object motion attribute according to an exemplary embodiment of the present invention. FIG.

다른 클라이언트의 오브젝트(30)는 여러 가지 운동속성과 방향으로 이동할 수 있다. 여기서, 높은 곳에서 낙하는 자유 낙하운동(B)의 경우에는 일정한 가속도로 낙하하므로, 미리 설정된 가속도를 현재 위치와 방향에 고려하여 오브젝트 움직 임을 예측할 수 있다.The object 30 of another client may move in various motion attributes and directions. Here, in the case of the free fall motion (B) falling from a high place falls with a constant acceleration, it is possible to predict the object movement in consideration of the preset acceleration in the current position and direction.

한편, 오브젝트(30)가 부스터 등을 이용하여 상승하는 설정인 경우에는 부스터 사용시 발생하는 가속도를 현재 위치와 방향에 고려하여 오브젝트의 움직임을 예측하게 된다.On the other hand, when the object 30 is set to rise using the booster, the movement of the object is predicted in consideration of the acceleration generated when the booster is used in the current position and direction.

여기서, 상기 가속도는 반드시 물리학적으로 정해진 가속도로 한정되지 않으며, 게임 개발자의 역량이나 기획에 의해 등속도 운동으로 설정하는 것도 가능하다.Here, the acceleration is not necessarily limited to the physically determined acceleration, it is also possible to set the constant velocity motion by the game developer's capabilities or planning.

그러나, 상기 가속도 운동의 경우에는 다른 클라이언트의 사용자의 명령에 의해 순간적으로 반대방향으로 움직이기 어려운 운동이라는 공통적인 속성을 갖게 된다.However, the acceleration motion has a common property of being difficult to move in the opposite direction by a command of a user of another client.

한편, 마찰력이 높은 노면을 질주하는 경우(C)에는 다른 클라이언트 사용자의 명령에 의해 순간적으로 반대방향으로 움직이는 것이 가능하기 때문에 이러한 오브젝트 이동 예측에 따른 보상을 선택적으로 사용하는 것이 가능하다. 이는 마찰력 정보를 산출하여 빙판과 같은 마찰력이 낮은 노면을 위를 질주하는 경우에는 전술한 바와 같이, 가속도를 고려한 오브젝트 이동 예측이 이용될 수 있다.On the other hand, when traveling on a high friction road surface (C), it is possible to move in the opposite direction instantaneously by the command of another client user, it is possible to selectively use the compensation according to the object movement prediction. When calculating the frictional force information so as to race on a low friction surface such as ice, the object movement prediction in consideration of the acceleration may be used as described above.

한편, 오브젝트(30)가 이미 발사한 탄환과 같은 경우(D)에는 고유 운동의 하나로서 등속 직선운동을 하며, 이는 클라이언트 사용자에 의해 운동 방향 및 속도등이 제어가 불가능하므로, 본 발명에 따른 오브젝트 이동 예측을 활용하는 것이 바람직하다.On the other hand, when the object 30 is the same as the shot already fired (D), one of the intrinsic motion is a constant velocity linear motion, which is impossible to control the direction and speed, etc. by the client user, the object according to the present invention It is desirable to utilize movement prediction.

도 8은 본 발명의 실시예에 따른 오브젝트 위치 보상을 설명하는 도면이다.8 is a view for explaining object position compensation according to an embodiment of the present invention.

핑속도 값에 따라서, 오브젝트는 시점(K-1)에서 시점(K)에서 이동 위치가 변화하게 된다. 여기서, 상기 핑속도에 의한 지연이 짧은 경우에는 자연스럽게 오브젝트는 이동하게 되나, 핑속도에 의한 지연이 긴 경우에는 오브젝트는 순간적으로 긴 거리를 이동하게 된다. According to the ping speed value, the object moves from the viewpoint K-1 to the viewpoint K. Here, when the delay due to the ping speed is short, the object naturally moves, but when the delay due to the ping speed is long, the object moves a long distance instantaneously.

한편, 본 발명에서는 상기 핑속도값보다 짧은 주기마다 오브젝트의 이동 위치를 예측하여 움직임을 보상한다. 여기서는 현재 시점(K-1)에서의 오브젝트의 방향, 위치, 속도의 값을 기초로 하여 전술한 바와 같이, 가속도, 마찰력, 고유 운동 여부를 고려하여 위치 보상을 수행한다. Meanwhile, in the present invention, the movement is compensated by predicting the moving position of the object at each period shorter than the ping speed value. In this case, as described above, the position compensation is performed in consideration of the acceleration, the frictional force, and the natural motion based on the values of the direction, position, and velocity of the object at the current point in time K-1.

만약, 현재 시점(K-1)에서, 오브젝트가 중력에 의한 포물선 운동을 수행하는 경우에는 X 방향으로는 등속운동, Y 방향으로는 자유 낙하 운동을 고려하여 클라이언트의 위치를 보정하게 된다. If the object performs the parabolic motion by gravity at the current time K-1, the position of the client is corrected in consideration of the constant velocity motion in the X direction and the free fall motion in the Y direction.

전술한 바와 같이, 자유 낙하 운동의 경우에는 반드시 가속도 운동으로 이동 위치를 예측할 필요는 없으며, 연산량을 줄이기 위해 등속운동으로 이동 위치를 예측할 수 도 있다. 즉, 본 발명에서는 가속도 검출부가 상기 자유 낙하 운동에 의해 오브젝트의 움직임이 순간적으로 반전되어 예측 위치와 이격되지 않는다는 정보만을 고려하여 오브젝트의 위치 이동을 보상하는 것 역시 가능하다.As described above, in the case of the free fall motion, it is not necessary to predict the movement position by the acceleration movement, and the movement position may be predicted by the constant velocity movement in order to reduce the amount of computation. That is, in the present invention, it is also possible to compensate for the positional movement of the object in consideration of only the information that the acceleration detection unit is momentarily reversed by the free fall motion and is not spaced apart from the predicted position.

도 9는 본 발명의 실시예에 따른 게임 플레이 데이터의 보정 방법을 도시한 흐름도이다. 9 is a flowchart illustrating a method of correcting game play data according to an embodiment of the present invention.

단계(S110)에서, 게임 클라이언트 시스템은 게임에 참여하는 다른 클라이언트와의 데이터 교환에 있어서 발생하는 핑속도 측정하고 이를 저장한다.In step S110, the game client system measures and stores the ping rate occurring in the data exchange with other clients participating in the game.

한편, 게임 플레이중 발생하는 오브젝트, 특히 다른 클라이언트의 제어하에 있는 오브젝트는 실시간적으로 그 시간, 속도, 방향, 위치를 판독한다(S120). 실제적으로 오브젝트의 이동 및 위치 정보는 게임 플레이중에서 자동 생성 및 인식되는 것으로서 게임 플레이 데이터를 수신할 때마다 새로운 데이터로 갱신된다.On the other hand, objects generated during game play, in particular, objects under the control of other clients, read their time, speed, direction, and position in real time (S120). In practice, the movement and position information of the object is automatically generated and recognized during game play, and is updated with new data every time the game play data is received.

게임 플레이 데이터를 수신하여, 각각의 오브젝트가 이동하게 되면 위치가 이동된 오브젝트에 대하여 오브젝트 운동 속성을 검색하게 된다(S130). 상기 오브젝트 운동 속성은 오브젝트 자체에 고유한 속성, 사용자의 제어에 의해 발생된 속성, 그리고 오브젝트가 주위의 환경에 의해 발생하는 속성을 포함한다. Receiving game play data, when each object moves, the object movement attribute is searched for the moved object (S130). The object movement attributes include attributes unique to the object itself, attributes generated by user control, and attributes generated by the environment around the object.

예를 들어, 상대편 캐릭터가 발사한 탄환은 정해진 방향으로 등속운동 속성을 가지므로 오브젝트 자체에 고유한 운동속성을 가진다. 한편, 캐릭터의 오브젝트는 사용자의 제어에 등속 운동 또는 가속도 운동을 수행한다. 또한, 캐릭터의 오브젝트가 자유 낙하등을 하는 경우에는 주위의 환경에 운동속성이 발생하게 된다.For example, a bullet fired by an opponent's character has a constant velocity property in a given direction and therefore has a motion property unique to the object itself. On the other hand, the object of the character performs the constant velocity movement or the acceleration movement under the control of the user. In addition, when the character's object makes a free fall or the like, movement attributes are generated in the surrounding environment.

단계(S140)에서는, 이러한 오브젝트의 운동 속성이 제어 불가능인 고유운동인지를 판단한다. 만약, 제어 불가의 고유 운동의 경우에는 핑속도 지연에 따른 오브젝트의 위치 보상을 수행한다(S170). 위치 보상은 전술한 바와 같이, 현재의 시간, 속도, 방향, 위치를 기준으로 하여 핑속도값보다 짧은 주기로 오브젝트 이동방향을 예측하여 게임 플레이 데이터로서 출력한다. 단계(S170)에서 이뤄지는 보상은 실질적으로 오브젝트의 자체 속성으로 결정되기 때문에, 위치 예측은 실질적으로 해당 오브젝트에 대해 미리 정해진 게임 알고리듬에 따라 클라이언트가 게임 플레이 데이터를 독립적으로 생성하는 것과 유사하다.In step S140, it is determined whether the motion attribute of the object is an uncontrollable natural motion. If the inherent motion cannot be controlled, the position compensation of the object according to the ping speed delay is performed (S170). As described above, the position compensation predicts the moving direction of the object at a period shorter than the ping speed value based on the current time, speed, direction, and position, and outputs it as game play data. Since the reward made in step S170 is substantially determined by the object's own attributes, position prediction is substantially similar to the client generating game play data independently in accordance with a predetermined game algorithm for that object.

한편, 단계(S150)에서는 오브젝트의 운동 속성이 가속도 운동인지를 판단한다. 만약, 가속도 운동인 경우에는 게임 구현에서 설정된 가속도에 따라서 오브젝트 위치 보상을 수행한다. 위치 보상은 전술한 바와 같이, 현재의 시간, 속도, 방향, 위치를 기준으로 하여 핑속도값보다 짧은 주기로 오브젝트에 상기 가속도를 적용하여 이동위치를 산출한다.In operation S150, it is determined whether the movement attribute of the object is an acceleration movement. If the acceleration motion, the object position compensation is performed according to the acceleration set in the game implementation. As described above, the position compensation calculates the movement position by applying the acceleration to the object in a period shorter than the ping speed value based on the current time, speed, direction, and position.

단계(S160)에서는, 가속도 운동이 아닌 경우 오브젝트의 운동 속성이 순간적으로 반대방향으로 가능한 운동 속성을 가지는지 판단한다. 이러한 운동 속성은 예를 들어, 마찰력이 있는 노면 질주 상태가 있으며, 캐릭터가 위치한 환경에 설정된 마찰력에 관한 정보를 통해 식별이 가능하다.In step S160, if it is not the acceleration motion, it is determined whether the motion property of the object has a motion property that is possible in the opposite direction. Such a movement property is, for example, there is a road race condition with friction force, and can be identified through information on friction force set in an environment where a character is located.

여기서, 순간 반전 가능한 운동 속성을 가진 것이 아닌 경우에는 핑속도 지연에 따른 오브젝트의 위치 보상을 수행한다(S171). 상기 보상은 현재의 시간, 속도, 방향, 위치를 기준으로 하여 핑속도값보다 짧은 주기로 오브젝트에 현재 속도에 기초한 위치를 예측함으로써 이뤄진다.In this case, if it does not have a momentary reversible movement attribute, the position compensation of the object according to the ping speed delay is performed (S171). The compensation is made by predicting the position based on the current velocity in the object in a period shorter than the ping velocity value based on the current time, velocity, direction, and position.

전술한 단계(S150, S160)는 각각 가속도 운동 및 순간 반전 가능 운동의 여부를 판단하는 구성에 대해서 설명한 것이지만, 연산량을 줄이기 위해서 둘 중 하나의 판단만 수행하여도 본 발명의 범위에서 벗어나는 것은 아니다.Although the above-described steps (S150, S160) has been described with respect to the configuration for determining whether the acceleration motion and the momentary reversible motion, respectively, even if only one of the two determinations to reduce the amount of calculation does not depart from the scope of the present invention.

따라서, 여기서 가속도 운동 속성이라 함은 특정 수치의 가속도로 이동하는 운동뿐 아니라, 게임 설정상 사용자의 제어로 순간적으로 반대방향으로 이동할 수 없는 운동을 포함하는 개념이다.Therefore, the acceleration motion property is a concept that includes not only a motion moving with a specific value of acceleration but also a motion that cannot be moved in the opposite direction instantaneously by the user's control in game settings.

단계(S170, S180, S171)에서 위치가 보상된 오브젝트는 다음 게임 플레이 패 킷이 도착하기전에 출력된다. The object whose position is compensated in steps S170, S180, and S171 is output before the next game play packet arrives.

이후, 게임 플레이 패킷이 수신되면, 오브젝트의 위치는 수신된 패킷 정보에 따라 갱신된다(S200). 전술한 과정을 통하여, 게임 클라이언트 사이에 데이터 전송 지연이 존재하더라도 게임의 오브젝트는 자연스러운 움직임을 제공할 수 있게 된다.Thereafter, when the game play packet is received, the position of the object is updated according to the received packet information (S200). Through the above-described process, even if there is a data transmission delay between game clients, the object of the game can provide natural movement.

도 10은 본 발명의 실시예에 따른 오브젝트 위치 보상 방법을 도시한 흐름도이다.10 is a flowchart illustrating an object position compensation method according to an embodiment of the present invention.

하나의 게임 플레이 화면에 있어서, 다른 클라이언트의 사용자에 제어에 의해 오브젝트의 위치이동이 발생하는 경우 순간 이동 방향을 확인하고 이를 저장한다(S300). In one game play screen, when the position movement of the object occurs by the control of the user of the other client, the instant movement direction is checked and stored (S300).

또한, 클라이언트 사용자의 명령, 이동 오브젝트의 운동 속성, 이동 오브젝트의 환경에 의해 발생된 이동 속도를 측정하여 저장한다(S310).In addition, the moving speed generated by the command of the client user, the movement attribute of the moving object, and the environment of the moving object is measured and stored (S310).

또한, 현재 위치, 즉 위치 보상의 대상이 될 기준 좌표 정보를 확인하고 저장한다(S320).In addition, the current position, that is, the reference coordinate information to be the target of the position compensation is confirmed and stored (S320).

전술한 위치, 방향, 속도는 현재 시각즉, 게임 플레이 패킷을 수신한 시간과 대응되어 저장된다. 여기서, 방향, 속도, 위치는 벡터형태로 저장될 수 있다. 또는 방향 및 속도는 X , Y 좌표 각각에 대해 시간당 이동 픽셀(pixel)수를 이용하여 저장할 수도 있다.The above-described position, direction, and speed are stored in correspondence with the current time, that is, the time when the game play packet is received. Here, the direction, speed, and position may be stored in a vector form. Alternatively, the direction and velocity may be stored using the number of moving pixels per hour for each of the X and Y coordinates.

단계(S330)에서는 핑속도에 따른 지연 시간을 계산한다. 여기서, 핑속도가 임계치 이상으로 지연이 큰 경우에는 오브젝트의 위치 보정을 결정한다. 오브젝트 의 위치 보정 주기는 상기 핑속도보다 짧은 주기동안 이루어진다.In step S330, the delay time according to the ping rate is calculated. Here, when the ping speed is greater than the threshold value, the position correction of the object is determined. The position correction period of the object is made for a period shorter than the ping speed.

단계(S340)에서는, 오브젝트의 운동 속성에 따른 보정을 수행하고, 상기 보정에 의한 이동 좌표를 계산한다. 여기서, 각각의 오브젝트는 다양한 운동속성을 가지고 있으며, 이는 오브젝트 운동 속성 식별자를 이용하면 용이하게 위치 보정에 사용할 수 있다.In step S340, correction is performed according to the motion attribute of the object, and the movement coordinates by the correction are calculated. Here, each object has various movement attributes, which can be easily used for position correction using the object movement attribute identifier.

상기 오브젝트 운동 속성 식별자는, 오브젝트 자체 속성, 사용자의 명령에 의한 운동 속성, 오브젝트의 환경 또는 상황에 의해 발생하는 운동 속성을 포함한다.The object exercise attribute identifier includes an object itself attribute, an exercise attribute by a user's command, and an exercise attribute generated by the environment or situation of the object.

전술한 운동 속성을 정의하는 경우의 수는 복수이지만, 상기 오브젝트 운동 속성 식별자는 제어 불가 고유 운동, 가속도 운동, 반전 불가/가능 운동등으로 그 상태의 수는 한정되므로, 많은 연산량을 필요로 하지 않는다.The number of cases in which the above-described motion attribute is defined is plural, but the number of states of the object motion attribute identifier is limited to uncontrollable intrinsic motion, acceleration motion, non-invertable / possible motion, etc., and thus does not require a large amount of computation. .

또한, 실질적으로 상기 데이터 전송 지연에 의해 발생하는 게임의 끊김 현상은 사용자의 시각으로 인식하기 힘든 경우도 많기 때문에, 상기 오브젝트 운동 속성 부여를 위한 연산량을 줄이기 위해, 반전 불가/가능 운동만으로 구별하는 것 역시 본 발명의 범위에 포함된다 할 것이다.In addition, since the disconnection of the game caused by the data transmission delay is often difficult to recognize from the user's perspective, in order to reduce the amount of computation for assigning the object motion attribute, distinguishing only the non-invertable / possible motion is possible. It will also be included in the scope of the invention.

전술한 과정에 의해, 계산된 좌표는 미리 설정된 보상 주기에 따라, 오브젝트를 각각의 클라이언트마다 출력하게 된다(S350).By the above-described process, the calculated coordinates output the object for each client according to a preset compensation period (S350).

여기서, 도 5 내지 도 10에 도시된 시스템 및 방법은 그 기능을 구현하는 프로그램이 컴퓨터가 읽기 가능한 기록 매체에 저장되어 다른 클라이언트 시스템 또는 게임 서버 시스템과 연동하여 동작이 가능하다.Here, the systems and methods shown in FIGS. 5 to 10 are stored in a computer-readable recording medium that implements the functions, and can operate in conjunction with other client systems or game server systems.

이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다. Although the preferred embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

전술한 본 발명의 구성에 의하여, 네트워크상의 데이터 전송 지연에 의해 발생하는 게임 오브젝트 움직임의 끊김 또는 워프 현상을 개선할 수 있다.또한, 본 발명은 오브젝트의 운동 속성을 고려하여 위치 보상을 수행함으로써, 오브젝트 이동 예측에 의해 발생하는 동작 끊김과 워프 현상도 효과적으로 보상할 수 있다.By the configuration of the present invention described above, it is possible to improve the disconnection or warp phenomenon of the movement of the game object caused by the data transmission delay on the network. In addition, the present invention by performing the position compensation in consideration of the motion properties of the object, The motion drop and warp caused by the object movement prediction can be effectively compensated for.

Claims (16)

온라인 게임에 참여한 클라이언트간의 게임 플레이 데이터를 보정하는 시스템에 있어서,In the system for correcting the game play data between the clients participating in the online game, 게임에 필요한 오브젝트를 저장하는 오브젝트 저장 모듈;An object storage module for storing an object required for a game; 상기 오브젝트의 이동에 발생하는 가속도가 반영된 운동 속성을 감지하는 가속도 감지 모듈;An acceleration sensing module configured to detect a movement attribute reflecting the acceleration generated in the movement of the object; 상기 오브젝트의 이동 방향을 감지하는 운동 방향 감지 모듈Motion direction detection module for detecting the movement direction of the object 상기 클라이언트가 송수신하는 게임 플레이 데이터 패킷의 지연 시간을 측정하는 핑속도 계산 모듈;Ping rate calculation module for measuring the delay time of the game play data packet transmitted and received by the client; 상기 가속도가 감지된 오브젝트의 현재 시각, 위치, 방향, 속도에 기초하여, 상기 지연 시간보다 짧은 주기로 상기 오브젝트의 이동을 상기 가속도가 반영된 이동 위치로 보상하는 오브젝트 모션 보상부; 및An object motion compensator configured to compensate the movement of the object to a movement position in which the acceleration is reflected at a period shorter than the delay time, based on a current time, position, direction, and velocity of the detected object; And 상기 보상된 오브젝트의 이동을 출력하는 게임 화면 출력부Game screen output unit for outputting the movement of the compensated object 를 포함하는 게임 플레이 데이터 보정 시스템.Gameplay data correction system comprising a. 제 1 항에 있어서,The method of claim 1, 상기 오브젝트 모션 보상부는,The object motion compensator, 상기 오브젝트의 가속도를 산출하는 가속도 산출부;An acceleration calculating unit calculating an acceleration of the object; 상기 오브젝트가 영향을 받는 마찰력을 산출하는 마찰력 산출부;A frictional force calculating unit configured to calculate a frictional force affected by the object; 상기 오브젝트에 고유한 운동을 하는지 검출하는 고유 운동 검출부; 및An intrinsic motion detector that detects whether the motion is inherent to the object; And 상기 가속도, 마찰력, 고유 운동 여부중 적어도 하나를 기초로 하여, 오브젝트의 이동 위치를 예측하는 오브젝트 위치 예측부An object position predictor for predicting a moving position of the object based on at least one of the acceleration, the friction force, and the natural motion; 를 포함하는 게임 플레이 데이터 보정 시스템.Gameplay data correction system comprising a. 제 2 항에 있어서,The method of claim 2, 상기 오브젝트 모션 보상부는,The object motion compensator, 현재 오브젝트의 시간, 속도, 방향, 위치에 관련된 정보를 저장하는 현재 오브젝트 정보 저장부; 및A current object information storage unit which stores information related to time, speed, direction, and position of the current object; And 가장 최근에 갱신된 핑속도 정보를 저장하는 핑속도 저장부를 더 포함하는 게임 플레이 데이터 보정 시스템.And a ping rate storage unit for storing the most recently updated ping rate information. 제 1 항에 있어서,The method of claim 1, 상기 가속도 산출부는, 클라이언트 사용자의 명령 및 상기 오브젝트의 게임상의 상황에 의해 발생한 가속도를 산출하는 게임 플레이 데이터 보정 시스템.And the acceleration calculating unit calculates an acceleration generated by a command of a client user and a game situation of the object. 제 1 항에 있어서,The method of claim 1, 상기 고유 운동 검출부는 클라이언트 사용자에 의해 방향 전환이 가능한 운동과 방향 전환이 불가능한 운동을 구별하는 검출하는 게임 플레이 데이터 보정 시스템.And the intrinsic motion detector detects a motion that can be changed by a client user and a motion that cannot be changed. 제 1 항에 있어서,The method of claim 1, 상기 가속도 산출부 및 마찰력 산출부는 통합되어 최종 가속도를 산출하는 게임 플레이 데이터 보정 시스템.And the acceleration calculating unit and the frictional force calculating unit are integrated to calculate the final acceleration. 제 1 항 내지 제 6 항중 어느 하나의 항에 있어서,The method according to any one of claims 1 to 6, 상기 운동 속성은 클라이언트 사용자에 의해 순간적으로 진행 방향의 반대방향으로 이동할 수 없는 속성을 의미하며, 상기 운동 속성은 오브젝트 자체에 부여되거나 게임 플레이중에 생성되어 해당 오브젝트에 부여되는 게임 플레이 데이터 보정 시스템.The movement attribute refers to an attribute that cannot be moved by the client user in the opposite direction of the advancing direction instantaneously, and the movement attribute is assigned to the object itself or generated during game play and assigned to the object. 게임 플레이 데이터 보정 시스템이, 온라인 게임 중 발생하는 게임 플레이 데이터를 보정하는 방법에 있어서,In the method for the game play data correction system to correct the game play data generated during the online game, a) 상기 게임 플레이 데이터 보정 시스템이, 게임에 참여한 클라이언트사이에 교환된 데이터의 지연 시간을 측정하여 저장하는 단계;a) measuring and storing, by the game play data correction system, a delay time of data exchanged between clients participating in a game; b) 상기 게임 플레이 데이터 보정 시스템이, 현재 게임상에 등장하는 오브젝트의 시간, 속도, 방향, 위치를 판독하여 저장하는 단계;b) the game play data correction system reading and storing the time, speed, direction, and position of an object currently appearing in the game; c) 상기 게임 플레이 데이터 보정 시스템이, 상기 오브젝트가 이동중인 경우, 상기 오브젝트의 운동 속성을 검색하는 단계;c) the game play data correction system retrieving a movement attribute of the object when the object is moving; d) 상기 게임 플레이 데이터 보정 시스템이, 상기 검색된 운동 속성이 제어 불가 고유 운동, 가속도 운동, 순간 반전 가능 운동인지를 판단하는 단계; 및d) determining, by the game play data correction system, whether the retrieved movement attribute is an uncontrollable intrinsic movement, an acceleration movement, an instant reversible movement; And e) 상기 게임 플레이 데이터 보정 시스템이, 상기 오브젝트의 시간, 속도, 방향, 위치 및 상기 단계 d)의 판단의 결과에 따라 상이한 방법으로 오브젝트의 위치 보상을 수행하는 단계e) the game play data correction system performing position compensation of the object in different ways depending on the time, speed, direction, position of the object and the result of the determination of step d) 를 포함하는 게임 플레이 데이터 보정 방법.Game play data correction method comprising a. 제 8 항에 있어서,The method of claim 8, 상기 단계 e)는,Step e), 상기 게임 플레이 데이터 보정 시스템이,상기 검색된 운동 속성이 제어 불가 고유 운동인 경우, 상기 지연 시간보다 짧은 주기로 상기 오브젝트를 현재 진행 방향으로 상기 고유 운동에 대응하는 속도로 이동시켜 위치를 보상하는 게임 플레이 데이터 보정 방법.The game play data correction system, when the searched movement attribute is an uncontrollable intrinsic movement, the game play data for compensating a position by moving the object at a speed corresponding to the intrinsic movement in a current progress direction at a period shorter than the delay time. Calibration method. 제 8 항에 있어서, The method of claim 8, 상기 단계 e)는,Step e), 상기 게임 플레이 데이터 보정 시스템이, 상기 검색된 운동 속성이 가속도 운동인 경우, 상기 지연 시간보다 짧은 주기로 상기 오브젝트를 현재 진행 방향으로 상기 가속도를 반영하여 이동시켜 위치를 보상하는 게임 플레임 데이터 보정 방법.And the game play data correction system compensates for the position by moving the object by reflecting the acceleration in a current progress direction at a period shorter than the delay time when the searched movement attribute is an acceleration movement. 제 8 항에 있어서,The method of claim 8, 상기 단계 e)는,Step e), 상기 게임 플레이 데이터 보정 시스템이,상기 검색된 운동 속성이 순간 반전이 불가능한 운동인 경우에는, 상기 지연 시간보다 짧은 주기로 상기 오브젝트의 현재 진행 방향으로 현재 속도로 이동시켜 위치를 보상하는 게임 플레이 데이터 보정 방법.And the game play data correction system compensates for a position by moving at a current speed in a current progress direction of the object in a period shorter than the delay time when the searched movement attribute is an exercise in which momentary reversal is impossible. 제 8 항 내지 제 11 항 중 어느 하나의 항에 있어서,The method according to any one of claims 8 to 11, f) 상기 게임 플레이 데이터 보정 시스템이, 게임 플레이 패킷이 수신되면, 상기 보상된 오브젝트의 위치를 상기 게임 플레임 패킷에 결정되는 위치로 갱신하여 출력하는 단계를 더 포함하는 게임 플레이 데이터 보정 방법.and f) when the game play data correction system receives a game play packet, updating and outputting the position of the compensated object to a position determined in the game frame packet. 제 8 항 내지 제 11 항 중 어느 하나의 항에 있어서,The method according to any one of claims 8 to 11, 상기 운동 속성은 오브젝트 자체에 부여된 운동 속성, 클라이언트 사용자의 명령에 의해 발생된 운동 속성, 오브젝트가 게임상의 환경에 의해 발생하는 운동 속성중 적어도 하나를 포함하는 게임 플레이 데이터 보정 방법.Wherein said athletic attribute comprises at least one of an athletic attribute imparted to an object itself, an athletic attribute generated by a command of a client user, and an athletic attribute of an object generated by a game environment. 온라인 게임중 발생하는 게임 플레이 데이터를 보정하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,A computer-readable recording medium having recorded thereon a program for correcting game play data occurring during an online game, 제 8 항 내지 제 11 항 중 어느 하나에 따른 방법에 포함된 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체A computer-readable recording medium having recorded thereon a program for executing the steps included in the method according to any one of claims 8 to 11. 제 14 항에 있어서,The method of claim 14, 게임 플레이에 필요한 오브젝트, 맵, 게임 알고리즘을 모두 저장한 상태에서 상기 오브젝트를 제어하는 패킷을 다른 클라이언트와 교환하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for exchanging a packet for controlling the object with another client while storing all objects, maps, and game algorithms necessary for game play. 제 15 항에 있어서,The method of claim 15, 상기 오브젝트는 상기 운동 속성에 대응하는 운동 속성 식별자와 대응되도록 저장된 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.And the object is a computer-readable recording medium having stored thereon a program stored therein, the program corresponding to the exercise attribute identifier corresponding to the exercise attribute.
KR1020050070687A 2005-08-02 2005-08-02 System for compensating game play data among client system and method thereof KR100773782B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050070687A KR100773782B1 (en) 2005-08-02 2005-08-02 System for compensating game play data among client system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050070687A KR100773782B1 (en) 2005-08-02 2005-08-02 System for compensating game play data among client system and method thereof

Publications (2)

Publication Number Publication Date
KR20070016294A KR20070016294A (en) 2007-02-08
KR100773782B1 true KR100773782B1 (en) 2007-11-12

Family

ID=41636512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050070687A KR100773782B1 (en) 2005-08-02 2005-08-02 System for compensating game play data among client system and method thereof

Country Status (1)

Country Link
KR (1) KR100773782B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100964638B1 (en) * 2007-07-23 2010-06-22 (주) 그라비티 method, apparatus and recording medium for controlling game character in abnormal log-out
KR101670170B1 (en) * 2015-04-21 2016-10-27 양원준 User terminal and method for estimating location on multi-player online game using there
KR102073843B1 (en) * 2018-02-19 2020-02-05 (주)플레이솔루션 Real time filtering method for motion simulator interworking of contents based on game engine
KR102589889B1 (en) * 2021-02-23 2023-10-17 (주)팀스노우볼 Game ui analyzing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890016476A (en) * 1988-04-25 1989-11-29 엔 오.바스킨스 Object management system including snapshots for transferring data between two objects
KR20020091002A (en) * 2001-11-06 2002-12-05 주식회사 와이어리스리퍼블릭 Apparatus and method for capturing and working acceleration, and application thereof, and computer readable recording medium storing programs for realizing the acceleration capturing and working methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890016476A (en) * 1988-04-25 1989-11-29 엔 오.바스킨스 Object management system including snapshots for transferring data between two objects
KR20020091002A (en) * 2001-11-06 2002-12-05 주식회사 와이어리스리퍼블릭 Apparatus and method for capturing and working acceleration, and application thereof, and computer readable recording medium storing programs for realizing the acceleration capturing and working methods

Also Published As

Publication number Publication date
KR20070016294A (en) 2007-02-08

Similar Documents

Publication Publication Date Title
US11654354B2 (en) Resolution-based scaling of real-time interactive graphics
JP7169338B2 (en) Method, apparatus and computer program for synchronous display of game content
US10874943B2 (en) Systems and methods for transferring object authority in a shared virtual environment
EP1772172B1 (en) Communication game program and communication game system
KR100773782B1 (en) System for compensating game play data among client system and method thereof
JP7033219B2 (en) Low latency datagram responsive computer network protocol
US8224992B2 (en) Communication device, communication system therefor, and computer program therefor
Liu et al. A survey and taxonomy of latency compensation techniques for network computer games
KR20050077812A (en) Network server and network system
US20170295222A1 (en) System and method to reduce bandwidth requirement for visibility event packet streaming using a predicted maximal view frustum and predicted maximal viewpoint extent, each computed at runtime
US20090209336A1 (en) Game system, method for controlling game system, game device therefor, and program therefor
CN115136559A (en) Data hierarchy protocol for data transmission path selection
JP5357752B2 (en) Data transmission system and method
US20130059656A1 (en) Method, apparatus, and recording medium for playing game with server transferring in online game environment
Hariri et al. A distributed measurement scheme for internet latency estimation
EP3406307B1 (en) Information processing system, information processing apparatus, information processing program, and information processing method
Dhakal et al. SLAM-share: visual simultaneous localization and mapping for real-time multi-user augmented reality
CN111265884A (en) Cheating detection method, device, equipment and medium for virtual object
US20070198658A1 (en) Method and Apparatus for Synchronizing Assets Across Distributed Systems
EP3406312B1 (en) Information processing system, information processing apparatus, information processing program, and information processing method
US10569168B2 (en) Information processing system, apparatus, method, and storage medium storing program to address game delay between apparatuses
KR20150013841A (en) Communication destination determining apparatus, game system, communication destination determining method, and communication destination determining program
JP4005614B2 (en) NETWORK GAME SYSTEM, GAME DEVICE, GAME DEVICE CONTROL METHOD, AND PROGRAM
JP6897284B2 (en) Game equipment, programs and game systems
Hetherington Time Warp and Prediction Analysis in a Top-Down Shooter Game

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 13