KR100350863B1 - 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법 - Google Patents

온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법 Download PDF

Info

Publication number
KR100350863B1
KR100350863B1 KR1020010001646A KR20010001646A KR100350863B1 KR 100350863 B1 KR100350863 B1 KR 100350863B1 KR 1020010001646 A KR1020010001646 A KR 1020010001646A KR 20010001646 A KR20010001646 A KR 20010001646A KR 100350863 B1 KR100350863 B1 KR 100350863B1
Authority
KR
South Korea
Prior art keywords
character
data packet
movement
game
movement data
Prior art date
Application number
KR1020010001646A
Other languages
English (en)
Other versions
KR20020060519A (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 KR1020010001646A priority Critical patent/KR100350863B1/ko
Publication of KR20020060519A publication Critical patent/KR20020060519A/ko
Application granted granted Critical
Publication of KR100350863B1 publication Critical patent/KR100350863B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 온라인 게임에서 서버와 다수의 클라이언트들 간에 송수신되는 캐릭터 이동 데이터 패킷의 구성을 최적화할 수 있는 캐릭터 이동 데이터 패킷 송수신 방법에 관한 것이다. 본 발명에 의한 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 송신처리하는 방법은 게임 플레이어가 캐릭터를 인접 타일로 이동시킬 때마다 캐릭터의 원 위치에서의 상대적인 이동 경로를 3비트의 상대적 이동 데이터로 표현하는 단계; 게임 플레이어가 캐릭터 이동을 마쳤을 때, 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 구성하는 단계; 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 게임 서버로 송신하는 단계; 및 게임 서버로부터 캐릭터 이동 허용 여부를 알리는 데이터 패킷을 수신하고, 캐릭터 이동이 허용된 경우에는 최종 이동 위치로 캐릭터를 이동시키고, 캐릭터 이동이 허용되지 않은 경우에는 최초 위치에 캐릭터를 유지시키는 단계를 포함한다.
본 발명에 의하면, 캐릭터 이동에 의한 네트워크의 부하를 줄임으로써 온라인 게임에서 지원할 수 있는 클라이언트의 수를 늘리거나, 온라인 게임에 의해 지원할 수 있는 서비스를 더욱 다양화할 수 있게 된다.

Description

온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법{Method for sending and receiving character movement data packet in online game}
본 발명은 네트워크를 이용한 온라인 게임에 관한 것으로, 특히 온라인 게임에서 서버와 다수의 클라이언트들 간에 송수신되는 캐릭터 이동 데이터 패킷의 구성을 최적화할 수 있는 캐릭터 이동 데이터 패킷 송수신 방법에 관한 것이다.
게임이란 플레이어들이 공통의 목표를 가지고 소정의 규칙을 따라서 경쟁하는 것이다. 그리고, 컴퓨터 게임이란 컴퓨터가 마련한 장에서 플레이어들이 컴퓨터가 제시하는 공통의 목표를 두고 컴퓨터가 제시하는 규칙을 따라서 서로 경쟁하는 것이다. 초창기의 컴퓨터 게임은 게임기 또는 개인용 컴퓨터에서 실행되는 게임 프로그램에 의해 1인 또는 2인의 플레이어들에 의해 진행되었다. 그런데, 근래에 인터넷을 비롯한 네트워크가 급격히 발전하면서, 멀티 플레이어들이 참여하는 새로운 형태의 게임으로서 온라인 게임들이 등장하고 있다. 즉, 온라인 게임이란 네트워크, 특히 인터넷 상에서 게임 프로그램을 수행하는 서버에 동시 접속한 다른 플레이어들과 멀티플레이를 즐기는 게임을 말한다.
온라인 게임에는 일대일 혹은 다수의 플레이어가 양편으로 나뉘어져 실력을 겨루는 방식이 대부분이지만 더 나아가 대결뿐만 아니라 모든 플레이어가 조화와 타협을 통해서 하나의 세계를 만들고 그 속에서 살아가는 게임들도 존재한다. 이러한 게임들은 대부분 머그(Multi-User Graphic Games : MUG) 게임이라는 형태를 띠고 있다. 머그 게임은 단순히 텍스트로만 진행하던 머드(Multi User Dungeon,Multi User Dimension : MUD)게임에서 한 단계 발전한 것으로서, 게임 과정에서 한차원 높은 화려한 그래픽, 사운드 및 동화상이 제공된다. 따라서, 머그 게임의 플레이어는 그래픽을 통해서 자신의 캐릭터의 성장을 볼 수 있고, 수많은 타 캐릭터들과의 반목, 대결, 타협, 조화를 통해서 실시간으로 게임을 진행할 수 있다.
근래에 온라인 게임(특히, 머그 게임)을 수행하는 게임 서버에 동시에 접속하는 클라이언트의 수는 수천에서 수만에 이르고 있다. 이때, 게임 서버와 게임 서버에 접속된 다수의 클라이언트들 사이에서 가장 빈번히 발생하는 데이터가 바로 캐릭터 이동에 관련된 데이터이다. 따라서, 온라인 게임을 수행하는 게임 서버가 지원할 수 있는 통신 대역폭에 일정한 한계가 있다고 할 때, 온라인 게임에서 제공하는 서비스의 질을 개선하기 위해서는 캐릭터 이동에 관련된 데이터의 양을 줄이는 것이 매우 중요한 문제라 할 수 있다.
일반적으로 머그 게임에서 무대가 되는 가상의 세계를 "월드"라 하는데, "월드"는 다수의 "맵"으로 나뉘어 구성된다. 또한, 특정 플레이어의 캐릭터는 "월드" 상의 특정 "맵"에 위치한다. 따라서, 클라이언트의 모니터에는 플레이어의 캐릭터가 위치한 특성 "맵"의 일부가 디스플레이된다. 이때, 플레이어는 클라이언트에 구비된 마우스 등의 입력장치를 이용하여 자신의 캐릭터를 "맵" 내에서 "타일" 단위로 상하좌우 및 대각선 방향으로 이동시킬 수 있다. 하나의 "타일"은 캐릭터의 이동 단위가 되며, 가로 및 세로로 소정의 수의 픽셀들로 구성된다.
기존의 캐릭터 이동 데이터 패킷 송수신 방법에 의하면, 각 클라이언트에서 플레이어가 이동시킨 캐릭터의 경로는 타일 단위로 절대 좌표에 의한 데이터로 구성되어 게임 서버로 전달되고, 게임 서버의 승낙이 있는 경우에만 클라이언트가 인접한 타일로 이동하는 방식으로 이루어진다. 예를 들어, 1초 동안 1000 명의 플레이어들이 8 타일 만큼 자신의 캐릭터를 이동하였다면 8000 패킷이 서버로 전송되어야 하고, 게임 서버가 또 다시 클라이언트별로 해당 캐릭터 주위에서 움직인 다른 캐릭터들의 이동 데이터를 전송하는 경우에는 게임 서버와 클라이언트들 간에 송수신되는 데이터의 양을 매우 커지게 된다.
이와 같은 상황에서, 하나의 게임 서버에서 동시에 지원할 수 있는 클라이언트의 수 및 서비스 질은 매우 제한적일 수 밖에 없다.
본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로서, 온라인 게임에서의 캐릭터 이동에 관련된 데이터의 양을 획기적으로 줄여 네트워크의 부하를 줄임으로써 온라인 게임에서 지원할 수 있는 클라이언트의 수를 늘리고, 온라인 게임에 의해 지원할 수 있는 서비스의 질을 개선시킬 수 있는 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법을 제공함을 그 목적으로 한다.
도 1은 본 발명에 의한 온라인 게임이 수행되는 게임 서버와 다수의 클라이언트들간의 접속환경을 개념적으로 도시한 것이다.
도 2는 본 발명에 의한 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 송신처리하는 과정을 도시한 흐름도이다.
도 3은 게임 플레이어가 월드 상에 위치한 자신의 캐릭터를 이동시키는 과정을 예시적으로 도시한 것이다.
도 4는 캐릭터가 이웃 타일로 이동할 때, 캐릭터의 상대적인 이동 경로 표시방법을 설명하기 위한 것이다.
도 5는 본 발명에 의한 다수의 클라이언트들과 네트워크에 의해 접속되어 온라인 게임을 수행하는 게임 서버에서 캐릭터 이동 데이터 패킷을 송수신처리하는 과정을 도시한 흐름도이다.
도 6은 본 발명에 의한 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 수신처리하는 과정을 도시한 흐름도이다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 송신처리하는 방법은 (a) 게임 플레이어가 캐릭터를 인접 타일로 이동시킬 때마다 캐릭터의 원 위치에서의 상대적인 이동 경로를 3비트의 상대적 이동 데이터로 표현하는 단계; (b) 게임 플레이어가 캐릭터 이동을 마쳤을 때, 캐릭터의 최초 위치의절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 구성하는 단계; (c) 상기 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 상기 게임 서버로 송신하는 단계; 및 (d) 상기 게임 서버로부터 캐릭터 이동 허용 여부를 알리는 데이터 패킷을 수신하고, 캐릭터 이동이 허용된 경우에는 최종 이동 위치로 상기 캐릭터를 이동시키고, 캐릭터 이동이 허용되지 않은 경우에는 최초 위치에 상기 캐릭터를 유지시키는 단계를 포함한다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 수신처리하는 방법은 (a) 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 상기 게임 서버로부터 수신하는 단계; (b) 상기 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표, 이동 횟수 및 상대적 이동 데이터들을 이용하여 캐릭터의 이동 경로 상의 절대 좌표들을 생성하는 단계; (c) 상기 캐릭터 이동 절대 좌표들을 SPLINE 처리하여 픽셀 단위의 캐릭터 이동 경로를 생성하는 단계; 및 (d) 상기 최초 위치의 절대 좌표에 위치한 캐릭터를 상기 (c) 단계에서 생성된 픽셀 단위의 캐릭터 이동 경로를 따라 이동시키는 단계를 포함한다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 다수의 클라이언트들과 네트워크에 의해 접속되어 온라인 게임을 수행하는 게임 서버에서 캐릭터 이동 데이터 패킷을 송수신처리하는 방법은 (a) 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 클라이언트로부터 수신하는 단계; (b) 상기 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표, 이동 횟수 및 상대적 이동 데이터들을 이용하여 상기 캐릭터의 이동 경로 상의 절대 좌표들을 구하는 단계; (c) 상기 캐릭터의 이동 경로 상으로의 캐릭터 이동 허용 여부를 나타내는 패킷을 생성하여 상기 클라이언트에 송신하고, 캐릭터 이동이 허용된 경우에는 상기 게임 서버가 관리하는 게임 정보 내에 상기 캐릭터의 이동 경로를 반영하는 단계; 및 (d) 캐릭터 이동이 허용된 경우, 상기 캐릭터의 이동 경로 상의 소정의 영역에 자신의 캐릭터를 위치시킨 클라이언트들에 상기 캐릭터 이동 데이터 패킷을 네트워크를 통하여 송신하는 단계를 포함한다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
먼저, 본 발명은 게임 플레이어가 자신의 단말기 모니터 상에서 자신의 캐릭터를 이동시킬 때, 하나의 타일 단위로 이동시키는 것이 아니라 다수의 타일 단위의 거리를 순간적으로 이동시키는 경우가 많음에 착안하여 캐릭터 이동 경로에 관련된 정보를 전송함에 있어 이동된 캐릭터의 절대 좌표로 구성된 패킷들을 연속적으로 전송하는 것이 아니라, 원래의 캐릭터 위치에 대한 상대 좌표들의 리스트를 포함하는 하나의 패킷으로 구성하여 전송하는 것에 그 기본적인 특징이 있다.
도 1은 본 발명에 의한 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신방법이 구현되는 머그 게임에서 게임 서버(10)와 다수의 클라이언트들(30a, 30b 및 30c)이 네트워크(20)를 통해 접속된 환경을 개념적으로 도시한 것이다.
여기서, 네트워크(20)는 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜을 사용하는 전세계를 연결하는 컴퓨터 통신망으로서의 인터넷 뿐만 아니라, 인터넷과 연동되어 클라이언트에 접속되는 유무선 통신망을 포함하는 광의의 인터넷을 의미하는 것으로 사용된다.
게임 서버(10)는 네트워크(20)를 통해 접속된 다수의 클라이언트들(30a, 30b 및 30c)에게 게임 서비스를 제공하는 서버로서, 게임 서비스가 구현된 게임 진행 소프트웨어 및 그 소프트웨어를 수행하는 하드웨어를 포함한 총괄적인 의미로 사용된다. 또한, 게임 서버(10)에 의해 제공되는 게임은 설명의 편의를 위해 하나의 가상 세계인 "월드"를 구축하고, 다수의 플레이어들이 각자 자신의 캐릭터를 구축하여 "월드" 상에서 각자의 역할을 수행하는 RPG(Role Playing Game)라 가정한다. 그러나, 본 발명은 이에 한정되는 것은 아니므로, 게임 플레이어가 각자의 캐릭터를 구축하여 게임을 수행하는 모든 형태의 온라인 게임을 포괄한다.
또한, 클라이언트(30a, 30b 또는 30c)는 게임 서버(10)에 접속되어, 게임 플레이어가 게임 서버(10)에서 제공하는 게임을 수행할 수 있도록 하는 게임 구동 소프트웨어(도시되지 않음)를 구비한 단말기이다. 따라서, 게임 플레이어는 게임을 수행하기 전에 게임 서버(10)로부터 게임 구동 소프트웨어를 다운로드 받거나, 게임 서버(10)의 운영자에 의해 디스켓 또는 CD 등의 기록매체에 저장된 게임 구동 소프트웨어를 제공받아 자신의 단말기에 설치함으로써, 자신의 단말기를 게임서버(10)에 접속하여 게임 서비스를 제공받을 수 있는 클라이언트(30a, 30b 또는 30c)로 구현할 수 있다. 이때, 게임 플레이어의 단말기는 웹의 표준 문서인 HTML(Hypertext Markup Language) 문서를 읽을 수 있고 HTTP(HyperText Transfer Protocol)를 이용하여 웹 서버와 통신할 수 있는 소프트웨어인 웹 브라우저를 구비하는 개인용 컴퓨터 또는 워크스테인션임이 바람직하다. 그러나, 본 발명에서 클라이언트(30a, 30b 또는 30c)로 구현되는 단말기는 이에 한정되지 않고, WML(Wireless Markup Language) 문서를 읽을 수 있고 WAP(Wireless Application Protocol)을 지원할 수 있는 웹 브라우저를 구비하는 PDA(Personal Digital Assistant), 휴대폰 등도 포함하는 총괄적인 의미로 사용된다.
이하에서 도 2를 참조하여 게임 서버(10)와 네트워크(20)에 의해 접속되어 온라인 게임을 수행하는 클라이언트(30a, 30b 또는 30c)에서 캐릭터 이동 데이터 패킷을 송신처리하는 과정에 대하여 설명한다.
게임 플레이어는 자신이 구축하여 "월드" 상에 위치한 자신의 캐릭터를 클라이언트(30a, 30b 또는 30c)의 디스플레이 화면에서 마우스 등의 입력 수단을 사용하여 위치 이동을 위해 선택할 수 있다(S200). 이때, 게임 플레이어는 도 3에 도시된 바와 같이 자신의 캐릭터를 디스플레이 화면(40)에서 마우스 등의 입력 수단을 사용하여 A 위치에거 B 위치로 참조번호 41에 의해 표시된 경로를 따라 이동시켰다고 가정한다. 또한, 캐릭터의 최초 위치(A)에 대한 절대 좌표를 (0XA0, 0X8C :여기서 0X는 16진수로 표기됨을 나타낸다)이라 가정하고, "타일"의 크기는 가로/세로 각각 64/64 픽셀이라 가정한다.
클라이언트(30a, 30b 또는 30c)에 설치된 게임 구동 소프트웨어는 마우스 등의 입력 수단을 통해 입력된 캐릭터 이동 경로에 대한 정보를 분석하는데, 게임 플레이어가 캐릭터를 인접 타일로 이동시킬 때마다 캐릭터의 원 위치에서의 상대적인 이동 경로를 3비트의 상대적 이동 데이터로 표현한다(S210, S220). 도 4에 의하면, 캐릭터의 원 위치(C)에서 상측 방향으로 이동하면 '0', 우상측 방향으로 이동하면 '1', 우측 방향으로 이동하면 '2', 우하측 방향으로 이동하면 '3', 하측 방향으로 이동하면 '4', 좌하측 방향으로 이동하면 '5', 좌측 방향으로 이동하면 '6', 좌상측 방향으로 이동하면 '7'로 구분하고, 이들을 각각 2진수로 "000" 내지 "111"로 표현할 수 있다. 이때, 각 방향에 따라 할당되는 값은 실시예에 따라 달라질 수 있으나, 캐릭터의 원 위치(C)로부터 8가지 방향을 표현하기 위해 3 비트를 사용한다는 점은 동일하다. 일단 캐릭터가 이웃하는 "타일"로 이동되면, 다음의 상대적인 이동 경로는 이동된 타일을 원 위치로 하여 상대적 이동 데이터가 구하여진다. S210 및 S220의 과정들은 게임 플레이어가 캐릭터 이동을 마쳤을 때까지 반복하여 수행된다(S230).
게임 플레이어가 캐릭터 이동을 마쳤을 때, 클라이언트(30a, 30b 또는 30c)에 설치된 게임 구동 소프트웨어는 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 구성한다(S240). 본 발명의 일실시예에서 사용하는 캐릭터 이동 데이터 패킷에 포함된 필드 구성이 표 1에 예시적으로 제시되어 있다.
먼저, 헤더 필드는 헤더 코드(2 바이트)와 패킷 크기(1,2 바이트)로 구성되는데, 헤더 코드는 클라이언트(30a, 30b 또는 30c)와 게임 서버(10) 사이에 주고받는 패킷의 종류를 나타낸다. 이때, 일반적인 패킷에 대해서는 패킷 크기를 2 바이트로 구성하지만, 캐릭터 이동 데이터 패킷에 대해서는 그 크기가 255 바이트를 넘지 않으므로 1 바이트로 구성할 수 있다.
X, Y 필드는 각각 캐릭터의 최초 위치를 절대 좌표로 나타내는 것으로, "월드"를 "타일" 단위로 나타낼 때의 가로 및 세로 크기에 따라 1 바이트 또는 2 바이트로 구성할 수 있다.
Direction 필드는 캐릭터의 시작방향을 나타내는 것으로, 캐릭터 모습이 향하는 8 가지 방향을 표시한다. Direction 필드는 3 비트로 표시할 수 있지만, 데이터 얼라인먼트를 위해 4 비트로 표시하는 것이 바람직하다.
PathCount 필드는 하나의 캐릭터 이동 데이터 패킷에 포함되는 상대적 이동 데이터의 수를 나타내는 것으로, 캐릭터의 자연스런 이동 경로를 나타내기 위해서 최대 8개로 제한하는 것이 바람직하다. 따라서, PathCount 필드 또한 3 비트로 표시할 수 있지만, 데이터 얼라인먼트를 위해 4 비트로 표시하는 것이 바람직하다.
Path 필드에는 PathCount 필드에 표시된 수 만큼의 상대적 이동 데이터들이 을 기입된다. PathCount 필드에 표시된 수가 홀수인 경우에는 4 비트 만큼을 덧붙여 바이트 단위로 얼라인먼트하는 것이 바람직하다.
클라이언트(30a, 30b 또는 30c)는 상기한 바와 같이 구성된 캐릭터 이동 데이터 패킷을 네트워크(20)를 통해 게임 서버(10)로 송신하여(S250), 게임 서버(10)로부터 캐릭터 이동 허용 여부를 알리는 데이터 패킷을 수신한다(S260). 클라이언트(30a, 30b 또는 30c)는 게임 서버(10)로부터 캐릭터 이동이 허용된 경우 최종 이동 위치(B)로 상기 캐릭터를 이동시켜 디스플레이하고, 캐릭터 이동이 허용되지 않은 경우 최초 위치(A)에 캐릭터를 유지시키게 된다(S270 내지 S290).
이하에서 도 5를 참조하여 다수의 클라이언트들(30a, 30b 및 30c)과 네트워크(20)에 의해 접속되어 온라인 게임을 수행하는 게임 서버(10)에서 캐릭터 이동 데이터 패킷을 송수신처리하는 과정에 대하여 설명한다.
먼저, 게임 서버(10)는 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 표 1에 예시된 바와 같은 캐릭터 이동 데이터 패킷을 네트워크(20)를 통해 클라이언트(예를 들어, 30a)로부터 수신한다(S500).
이후, 게임 서버(10)의 게임 진행 소프트웨어는 수신된 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표, 이동 횟수 및 상대적 이동 데이터들을 이용하여 캐릭터의 이동 경로 상의 절대 좌표들을 계산한다(S510).
도 3에 예시된 바에 따르면, 표 1의 X, Y 필드의 값은 각각 "10100000", "10001100"이고, PathCount 필드의 값은 "0110"이고, Path 필드의 값은 "0010 0010 0001 0001 0001 0000"이다. 따라서, A에서 B로 이르는 이동 경로 상의 절대 좌표들은 (0XA0, 0X8C), (0XA1, 0X8C), (0XA2, 0X8C), (0XA3, 0X8B), (0XA4, 0X8A), (0XA5, 0X89), (0XA5, 0X88)이 된다.
이후, 게임 서버(10)의 게임 진행 소프트웨어는 S510 단계에서 계산된 이동 경로 상의 절대 좌표들 중 상기 클라이언트(30a)에 속하는 캐릭터가 이동할 수 없는 장애물이 포함되어 있는지 여부를 자신이 관리하는 게임 정보에 의해 확인하고(S520), 확인된 내용에 따라 캐릭터 이동 허용 여부를 나타내는 패킷을 생성한다. 이와 같이 생성된 이동 허용 여부 확인 패킷은 상기 클라이언트(30a)로 송신된다(S530).
S520 단계에서 캐릭터 이동이 허용된 경우, 게임 서버(10)의 게임 진행 소프트웨어는 자신이 관리하는 게임 정보 내에 캐릭터의 이동 경로를 반영한다(S550). 도 3에 예시된 바에 따르면, 게임 정보 내에서 상기 클라이언트(30a)에 속하는 캐릭터의 위치는 절대 좌표 (0XA0, 0X8C)에서 (0XA5, 0X88)로 변경된다. 또한, 게임 서버(10)의 게임 진행 소프트웨어는 상기 캐릭터의 이동 경로 상의 소정의 영역에 위치한 다른 캐릭터들을 확인하여 그 캐릭터들이 소속하는 클라이언트들(예를 들어, 30b 및 30c)에 S500 단계에서 수신된 캐릭터 이동 데이터 패킷의 내용을 네트워크(20)를 통하여 송신함으로써, 타 클라이언트(30a)에 소속되어 위치 변경된 캐릭터의 위치를 그 클라이언트들(30b 및 30c)의 디스플레이 화면 상에서 변경하도록 한다(S560).
이하에서 도 6을 참조하여 게임 서버(10)와 네트워크(20)에 의해 접속되어 온라인 게임을 수행하는 클라이언트(30b 또는 30c)에서 캐릭터 이동 데이터 패킷을수신처리하는 과정에 대하여 설명한다.
먼저, 클라이언트(30b 또는 30c)는 타 클라이언트(30a)에서 생성된 캐릭터 이동 데이터 패킷을 네트워크(20)를 통해 게임 서버(10)로부터 수신한다(S600).
클라이언트(30b 또는 30c)의 게임 구동 소프트웨어는 수신된 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표, 이동 횟수 및 상대적 이동 데이터들을 이용하여 도 5의 S510 단계와 유사하게 캐릭터의 이동 경로 상의 절대 좌표들을 계산한다(S610).
이후, 클라이언트(30b 또는 30c)의 게임 구동 소프트웨어는 S610 단계에서 계산된 캐릭터 이동 절대 좌표들에 대응하는 클라이언트 디스플레이 상의 픽셀 위치들을 구한다. 또한, 클라이언트(30b 또는 30c)의 게임 구동 소프트웨어는 이와 같이 구하여진 픽셀 위치들에 SPLINE 처리하여 픽셀 단위의 캐릭터 이동 경로를 생성한다(S620). 여기서 SPLINE은 다수의 점들에 대한 좌표를 입력으로 받아 모든 점들을 잇는 곡선을 생성하는 기능을 수행하는데, 이는 본 발명이 속하는 분야에서 평균적 지식을 가진 자가 용이하게 활용할 수 있는 것이므로 이에 대한 상세한 설명은 생략한다.
클라이언트(30b 또는 30c)의 게임 구동 소프트웨어는 디스플레이 상에서 수신된 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표에 위치한 캐릭터를 S620 단계에서 생성된 픽셀 단위의 캐릭터 이동 경로를 따라 이동시키며 디스플레이 상에 표시한다(S630).
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다.본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 의하면, 게임 플레이어가 자신의 캐릭터를 8 타일 만큼 이동시킨 경우 필요한 패킷의 크기가 10 바이트로 감소됨으로써, 기존의 방식에 비하여 온라인 게임에서의 캐릭터 이동에 관련된 데이터의 양을 획기적으로 절감할 수 있다.
따라서, 캐릭터 이동에 의한 네트워크의 부하를 줄임으로써 온라인 게임에서 지원할 수 있는 클라이언트의 수를 늘리거나, 온라인 게임에 의해 지원할 수 있는 서비스를 더욱 다양화할 수 있게 된다.

Claims (3)

  1. 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 송신처리하는 방법에 있어서,
    (a) 게임 플레이어가 캐릭터를 인접 타일로 이동시킬 때마다 캐릭터의 원 위치에서의 상대적인 이동 경로를 3비트의 상대적 이동 데이터로 표현하는 단계;
    (b) 게임 플레이어가 캐릭터 이동을 마쳤을 때, 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 구성하는 단계;
    (c) 상기 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 상기 게임 서버로 송신하는 단계; 및
    (d) 상기 게임 서버로부터 캐릭터 이동 허용 여부를 알리는 데이터 패킷을 수신하고, 캐릭터 이동이 허용된 경우에는 최종 이동 위치로 상기 캐릭터를 이동시키고, 캐릭터 이동이 허용되지 않은 경우에는 최초 위치에 상기 캐릭터를 유지시키는 단계를 포함함을 특징으로 하는 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷 송신처리 방법.
  2. 게임 서버와 네트워크에 의해 접속되어 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷을 수신처리하는 방법에 있어서,
    (a) 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 상기 게임 서버로부터 수신하는 단계;
    (b) 상기 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표, 이동 횟수 및 상대적 이동 데이터들을 이용하여 캐릭터의 이동 경로 상의 절대 좌표들을 생성하는 단계;
    (c) 상기 캐릭터 이동 절대 좌표들을 SPLINE 처리하여 픽셀 단위의 캐릭터 이동 경로를 생성하는 단계; 및
    (d) 상기 최초 위치의 절대 좌표에 위치한 캐릭터를 상기 (c) 단계에서 생성된 픽셀 단위의 캐릭터 이동 경로를 따라 이동시키는 단계를 포함함을 특징으로 하는 온라인 게임을 수행하는 클라이언트에서 캐릭터 이동 데이터 패킷 수신처리 방법.
  3. 다수의 클라이언트들과 네트워크에 의해 접속되어 온라인 게임을 수행하는 게임 서버에서 캐릭터 이동 데이터 패킷을 송수신처리하는 방법에 있어서,
    (a) 캐릭터의 최초 위치의 절대 좌표, 캐릭터의 시작방향, 이동 횟수 및 상기 이동 횟수 만큼의 상대적 이동 데이터들을 포함하여 구성된 캐릭터 이동 데이터 패킷을 네트워크를 통해 클라이언트로부터 수신하는 단계;
    (b) 상기 캐릭터 이동 데이터 패킷에 포함된 최초 위치의 절대 좌표, 이동 횟수 및 상대적 이동 데이터들을 이용하여 상기 캐릭터의 이동 경로 상의 절대 좌표들을 구하는 단계;
    (c) 상기 캐릭터의 이동 경로 상으로의 캐릭터 이동 허용 여부를 나타내는 패킷을 생성하여 상기 클라이언트에 송신하고, 캐릭터 이동이 허용된 경우에는 상기 게임 서버가 관리하는 게임 정보 내에 상기 캐릭터의 이동 경로를 반영하는 단계; 및
    (d) 캐릭터 이동이 허용된 경우, 상기 캐릭터의 이동 경로 상의 소정의 영역에 자신의 캐릭터를 위치시킨 클라이언트들에 상기 캐릭터 이동 데이터 패킷을 네트워크를 통하여 송신하는 단계를 포함함을 특징으로 하는 온라인 게임을 수행하는 게임 서버에서의 캐릭터 이동 데이터 패킷 송수신처리 방법.
KR1020010001646A 2001-01-11 2001-01-11 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법 KR100350863B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010001646A KR100350863B1 (ko) 2001-01-11 2001-01-11 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010001646A KR100350863B1 (ko) 2001-01-11 2001-01-11 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법

Publications (2)

Publication Number Publication Date
KR20020060519A KR20020060519A (ko) 2002-07-18
KR100350863B1 true KR100350863B1 (ko) 2002-09-05

Family

ID=27691444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010001646A KR100350863B1 (ko) 2001-01-11 2001-01-11 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법

Country Status (1)

Country Link
KR (1) KR100350863B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200049252A (ko) 2018-10-31 2020-05-08 주식회사 드래곤랩 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3708449B2 (ja) * 2001-04-20 2005-10-19 コナミ株式会社 ゲーム画像生成処理プログラム、ゲーム画像生成処理方法及びゲームサーバ、並びにゲーム画像作成処理プログラム
KR100829810B1 (ko) * 2006-09-15 2008-05-19 엔에이치엔(주) 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템
KR100968470B1 (ko) * 2008-05-09 2010-07-07 버츄얼빌더스 주식회사 공간기반 지능형 sns 서비스 시뮬레이션 장치의 동작방법
US8441486B2 (en) * 2009-04-27 2013-05-14 Jagex Ltd. Position tracking in a virtual world
CN102387132B (zh) * 2011-08-25 2014-05-14 北京像素软件科技股份有限公司 战斗系统实现方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200049252A (ko) 2018-10-31 2020-05-08 주식회사 드래곤랩 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템

Also Published As

Publication number Publication date
KR20020060519A (ko) 2002-07-18

Similar Documents

Publication Publication Date Title
US9814978B2 (en) Method and system for improving the efficiency of state information transfer over a wireless communications network
US6947761B2 (en) Method and system for improving the efficiency of state information transfer over a wireless communications network
US11158291B2 (en) Image display method and apparatus, storage medium, and electronic device
US9550125B2 (en) Dynamic and scalable topology for virtual world environments
JP5622704B2 (ja) プログラム、情報記憶媒体、画像生成システム、サーバ及びゲーム提供方法
WO2018103633A1 (zh) 一种图像处理的方法及装置
US20120059783A1 (en) Minimizing latency in network program through transfer of authority over program assets
KR100350863B1 (ko) 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법
US20190030437A1 (en) Offline in-game gifting
KR20230053719A (ko) 멀티플레이어 게임에서 장거리 객체의 타겟팅 개선
JP5715266B2 (ja) ゲーム制御装置、プログラム、ゲームシステム
KR20050047124A (ko) 데이터 처리 시스템 및 구동 방법
US20120264513A1 (en) Game apparatus and game providing method
KR101417947B1 (ko) 온라인 게임에서의 유저 제스처 입력 처리 방법
CN104869410B (zh) 一种vnc图像传输数据处理方法
US20180117466A1 (en) G.p.u.-assisted character animation
JP2019193871A (ja) 情報処理装置、プログラム、情報処理システム
KR100406325B1 (ko) 온라인 게임에서의 뷰포트 리스트를 이용한 데이터 전송방법 및 그 방법이 구현된 컴퓨터로 읽을 수 있는 기록매체
KR101383542B1 (ko) 골프 게임의 퍼팅 진행 방법, 이를 이용한 골프 게임 서비스 시스템, 및 이를 이용한 골프 게임 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체
JP2020103329A (ja) プログラム、方法及びゲーム装置
KR20050091587A (ko) 캐릭터가 활성화되는 온라인게임의 대기실 운영방법, 이를구현하기 위한 대기실 운영시스템 및 대기실운영프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
Opoku A simultaneous-movement mobile multiplayer game design based on adaptive background partitioning technique
JP2022183322A (ja) プログラム、方法及びゲーム装置
JP2002073517A (ja) 情報提供システム及び装置
US20080178109A1 (en) Virtual dynamic pattern rendering system that changes its display status according to external information

Legal Events

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

Payment date: 20090819

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee