KR100829810B1 - 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 - Google Patents
온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 Download PDFInfo
- Publication number
- KR100829810B1 KR100829810B1 KR1020060089758A KR20060089758A KR100829810B1 KR 100829810 B1 KR100829810 B1 KR 100829810B1 KR 1020060089758 A KR1020060089758 A KR 1020060089758A KR 20060089758 A KR20060089758 A KR 20060089758A KR 100829810 B1 KR100829810 B1 KR 100829810B1
- Authority
- KR
- South Korea
- Prior art keywords
- game
- character
- information
- character information
- message
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000008859 change Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000008901 benefit Effects 0.000 abstract description 3
- 230000012447 hatching Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 206010034719 Personality change Diseases 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101150082208 DIABLO gene Proteins 0.000 description 1
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011534 incubation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
- A63F13/87—Communicating with other players during game play, e.g. by e-mail or chat
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 에 관한 것으로서, 본 발명의 방법은 다른 사용자의 캐릭터 정보를 포함하는 게임 메시지를 수신하는 단계(a)-상기 캐릭터 정보는 제1 캐릭터 정보 및 제2 캐릭터 정보로 구분되고, 상기 게임 메시지에는 상기 제1 캐릭터 정보 및 상기 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 에이지 정보가 포함됨-; 상기 수신된 게임 메시지의 에이지 정보를 통해 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보 갱신 여부를 판단하는 단계(b); 상기 수신된 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보가 갱신되었을 경우, 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보를 요청하는 제2 캐릭터 정보 요청 메시지를 서버에 전송하는 단계(c)를 포함한다. 본 발명에 의하면, 게임 메시지에 포함되는 캐릭터 정보의 사이즈를 최소화함으로써 캐릭터 정보 동기화로 인한 게임 서버의 부화를 경감시킬 수 있는 장점이 있다
캐릭터, 사이즈, 메시지
Description
도 1은 본 발명의 일 실시예에 따른 온라인 게임에서 캐릭터 정보 동기화 방법이 적용되는 온라인 게임 시스템의 구성을 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 게임 서버의 모듈 구성을 도시한 블록도.
도 3은 본 발명의 바람직한 일 실시예에 따른 실시간성 메시지 처리 서버의 모듈 구성을 도시한 블록도.
도 4는 본 발명의 바람직한 일 실시예에 따른 캐릭터 정보 동기화를 위해 사용자 클라이언트에 설치되는 게임 어플리케이션의 모듈 구성을 도시한 블록도.
도 5는 본 발명의 바람직한 일 실시예에 따른 서버로부터 전송되는 메시지 필드의 일례를 도시한 도면.
도 6은 본 발명의 바람직한 일 실시예에 따른 제2 캐릭터 정보의 갱신 후 서버로 전송되는 메시지의 필드 구성을 도시한 도면.
도 7은 본 발명의 바람직한 일 실시예에 따른 특정 캐릭터의 제2 캐릭터 정보가 갱신될 경우, 다른 캐릭터들에 상응하는 클라이언트들이 상기 특정 캐릭터의 제2 캐릭터 정보를 동기화하는 과정에 대한 순서도.
도 8은 본 발명의 바람직한 일 실시예에 따른 제2 캐릭터 정보 변경 시 제2 캐릭터 변경 정보를 서버에 제공하는 방법에 대한 순서도.
본 발명은 다중 접속 온라인 게임에 관한 것으로서, 더욱 상세하게는 다중 접속 온라인 게임에서의 캐릭터 정보 동기화 방법 및 시스템에 관한 것이다.
온라인 게임은 차세대 성장 엔진으로 주목을 받고 있는 분야이며, 현재 전체 게임 시장에서 차지하는 비중이 그 성장 가능성과 함께, 매년 급격하게 상승하는 성장률을 보이고 있다. 이러한 흐름 속에 기존의 유수한 게임 관련 기업이 온라인 게임에 관심을 가지고 장기적인 전략을 수립하여 사업을 진행하고 있으며, 많은 기업들이 온라인 게임 시장에 참여하고 있다.
온라인 게임 중 다중 접속 온라인 롤플레잉 게임은 다수의 게이머들이 게임 개발자가 제공한 환경을 사용하고 변형함으로써 게임의 스토리와 구조를 창조해내는 특수한 형태의 게임이다.
이와 같은 종류의 게임으로, 블리자드사의 디아블로(Diablo), 월드 오브 워크래프트(World of Warcraft), NC소프트사의 리니지, 오리진사의 울티마 온라인 등이 있다.
이러한 다중 접속 온라인 롤플레잉 게임은 판타지 세계를 기초로 한 월드를 제공하는 것이 일반적이었으나, 근래에 들어 다중 접속 온라인 롤플레잉 게임의 월드는 일반 도시, 학교 등과 같이 다양화되고 있다.
다중 접속 온라인 롤플레잉 게임은 다른 플레이어들과의 상호작용에 의해 진행되는 게임으로 어느 한 사용자의 캐릭터 정보가 변경될 경우, 캐릭터 변경 정보는 다른 사용자들에게도 전달되어 동기화되어야 한다.
캐릭터 정보의 동기화를 위해 캐릭터 정보는 다양한 종류의 게임 메시지에 포함되어 게임 서버에서 게임에 접속한 사용자 클라이언트들에게 전송된다.
온라인 게임에서 게임 서버가 사용자 클라이언트들에게 전송하는 메시지는 게임 서버 부하의 주요한 요인 중 하나이며, 게임 메시지에 포함되는 캐릭터 정보는 게임 메시지의 사이즈를 증가시켜 게임 서버의 부하를 더욱 심화시켰다.
다중 접속 온라인 롤플레잉 게임 영역이 확대됨에 따라 레이싱 게임도 다중 접속 온라인 롤플레잉 형태로 제공되고 있는데, 이러한 레이싱 롤플레잉 게임에서 캐릭터 자동차는 대단히 빠른 속도로 움직이거나 돌발적인 충돌이 빈번히 일어나는 바, 이동 또는 충돌에 대한 게임 메시지가 일반적인 롤플레잉 게임에 비해 더 잦은 빈도로 송수신 되며, 이러한 온라인 로를레잉 레이싱 게임에서 캐릭터 정보에 의한 게임 메시지의 사이즈 증가는 더욱 문제시된다.
본 발명에서는 상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 온라 인 게임에서 게임 서버의 부하를 경감시킬 수 있는 캐릭터 정보 동기화 방법 및 시스템을 제안하고자 한다.
본 발명의 다른 목적은 게임 메시지에 포함되는 캐릭터 정보의 사이즈를 최소화함으로써 캐릭터 정보 동기화로 인한 게임 서버의 부화를 경감시킬 수 있는 온라인 게임에서의 캐릭터 정보 동기화 방법 및 시스템을 제안하는 것이다.
본 발명의 또 다른 목적은 캐릭터 정보 중 변화 빈도가 큰 정보만을 항상 게임 메시지에 포함시키고 변화 빈도가 작은 정보는 갱신 시에만 제공되도록 하여 캐릭터 동기화를 위한 게임 메시지의 사이즈를 최소화할 수 있는 온라인 게임에서의 캐릭터 정보 동기화 방법 및 시스템을 제안하는 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 바람직한 일 실시예에 따르면, 다른 사용자의 캐릭터 정보를 포함하는 게임 메시지를 수신하는 단계(a)-상기 캐릭터 정보는 제1 캐릭터 정보 및 제2 캐릭터 정보로 구분되고, 상기 게임 메시지에는 상기 제1 캐릭터 정보 및 상기 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 에이지 정보가 포함됨-; 상기 수신된 게임 메시지의 에이지 정보를 통해 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보 갱신 여부를 판단하는 단계(b); 상기 수신된 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보가 갱신되었을 경우, 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보를 요청하는 제2 캐릭터 정보 요청 메시지를 서버에 전송하는 단계(c)를 포함하는 온라인 게임에서의 캐릭터 정보 동기화 방법이 제공된다.
상기 단계(b)는 상기 게임 메시지와 연관된 캐릭터에 대해 미리 저장된 에이지 정보와 상기 수신된 게임 메시지의 에이지 정보가 동일한지 여부에 의해 상기 제2 캐릭터 정보의 갱신 여부를 판단한다.
상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보는 상기 에이지 정보가 갱신된 게임 메시지가 수신될 때까지 유지된다.
상기 제1 캐릭터 정보는 변화 빈도가 큰 캐릭터 정보이며, 상기 제2 캐릭터 정보는 변화 빈도가 작은 캐릭터 정보이다.
상기 온라인 게임이 온라인 롤플레잉 레이싱 게임일 경우, 상기 제1 캐릭터 정보는 캐릭터 자동차의 위치 및 속도 정보를 포함하며, 상기 제2 캐릭터 정보는 캐릭터 자동차의 명칭, 아이템 및 길드 정보를 포함할 수 있다.
한편, 본 발명은, 사용자의 커맨드 또는 미리 설정된 이벤트 발생에 의해 상기 사용자의 캐릭터 정보 중 상기 제2 캐릭터 정보가 갱신되는지 여부를 판단하는 단계; 및 상기 제2 캐릭터 정보가 갱신될 경우, 생성되는 게임 메시지에 포함되는 에이지 정보를 갱신하는 단계를 더 포함할 수 있다.
상기 사용자의 커맨드 또는 미리 설정된 이벤트 발생에 의해 갱신된 제2 캐릭터 정보는 상기 서버에 전송되며, 상기 에이지 정보가 갱신된 게임 메시지에 포함되어 전송된다.
본 발명의 다른 측면에 따르면, 상술한 방법을 수행하기 위한 프로그램이 유형적으로 구현되어 있으며 디지털 데이터 처리 장치에 의해 판독될 수 있는 프로그 램을 기록한 기록 매체가 제공된다.
본 발명의 또 다른 측면에 따르면, 다수의 사용자 클라이언트들이 접속하여 게임을 수행하는 온라인 게임에서의 사용자 캐릭터 정보 동기화 시스템으로서, 상기 사용자 클라이언트로부터 전송되는 게임 메시지를 수신하여 미리 설정된 게임 로직에 따라 처리하고 다른 사용자 클라이언트들에게 전송될 필요가 있는 게임 메시지를 접속한 다른 사용자 클라이언트들에게 전송하는 게임 서버-상기 게임 메시지 중 일부의 게임 메시지에는 사용자 캐릭터 정보가 포함되고, 상기 캐릭터 정보는 제1 캐릭터 정보 및 제2 캐릭터 정보로 구분되며, 상기 게임 메시지에는 상기 제1 캐릭터 정보 및 상기 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 에이지 정보가 포함됨; 및 게임 캐릭터의 상태 변화를 포함하는 상태 변화 정보를 상기 게임 서버로부터 수신하여 데이터베이스에 저장하는 데이터베이스 서버를 포함하되, 상기 다수의 사용자 클라이언트 각각에는 게임 실행을 위한 게임 어플리케이션이 설치되고, 상기 어플리케이션은 게임 메시지 상기 게임 서버로부터 게임 메시지 수신 시 상기 에이지 정보를 이용하여 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보 갱신 여부를 판단하며, 상기 제2 캐릭터 정보가 갱신되었을 경우, 상기 게임 서버에 상기 제2 캐릭터 정보를 요청하는 온라인 게임에서 캐릭터 정보 동기화 시스템이 제공된다.
이하에서 첨부된 도면을 참조하여, 본 발명에 의한 온라인 게임에서 캐릭터 정보 동기화 방법 및 시스템의 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 온라인 게임에서 캐릭터 정보 동기화 방법이 적용되는 온라인 게임 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 의한 온라인 게임에서 캐릭터 정보 동기화 방법이 적용되는 온라인 게임 시스템은 인증 서버(100), 게임 서버(102), 데이터베이스 서버(104) 및 다수의 실시간성 메시지 처리 서버(106)를 포함할 수 있다.
본 발명의 온라인 게임에서 캐릭터 정보 동기화 방법은 다양한 종류의 온라인 게임에 적용될 수 있으며, 도 1은 본 발명이 적용될 수 있는 온라인 게임 시스템의 일례를 도시한 도면이다.
본 발명은 다양한 종류의 온라인 게임에 적용될 수 있으나, 특히 플레이어 캐릭터가 빠른 속도로 이동하여 다수의 이동 메시지를 포함하는 게임 메시지가 교환되며, 게임 메시지의 캐릭터 정보로 인해 게임 메시지의 사이즈가 서버 부하의 요인으로 온라인 롤플레잉 레이싱 게임에 적용될 때 그 효과가 극대화될 수 있다. 이하에서는 본 발명에 의한 캐릭터 정보 동기화 방법이 온라인 롤플레잉 레이싱 게임에 적용되는 경우를 주요한 예로 하여 본 발명을 설명한다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 다중 접속 온라인 롤플레잉 레이싱 게임뿐만 아니라 플레이어 캐릭터의 상태 정보가 교환되는 다양한 종류의 다중 접속 온라인 게임에 적용될 수 있을 것이다.
도 1에서, 인증 서버(100)는 게임 시스템에 접속하려는 사용자가 게임 시스템에 접속할 수 있는 권한이 있는 사용자 인지 여부를 인증하는 기능을 한다.
인증 서버(100)는 사용자 클라이언트로부터 인증 요청 정보를 수신하며, 사 용자 클라이언트로부터의 인증 요청이 유효한지 여부를 판단한다. 상기 인증 요청 정보는 사용자의 아이디 및 비밀번호 정보를 포함할 수 있으며, 인증 서버(100)는 인증 요청 정보에 포함된 아이디 및 비밀 번호가 유효한지 여부를 판단한다.
아이디 및 비밀 번호가 유효한지 여부를 판단하기 위해 인증 서버(100)는 데이터베이스 서버(104)와 통신을 할 수도 있으며, 인증 정보를 저장하고 있는 다른 데이터베이스(미도시)와 통신을 할 수도 있다.
사용자 클라이언트와 인증 서버(100) 사이의 인증은 아이디/비밀번호에 의한 인증뿐만 아니라 공지된 다양한 인증 방식들이 사용될 수 있을 것이다.
인증 서버(100)는 사용자 클라이언트로부터의 인증 요청 정보가 유효할 경우, 해당 사용자 클라이언트의 게임 서버(102)로의 접속을 허용한다.
게임 서버(102)는 사용자 클라이언트들로부터 전송되는 게임 메시지를 처리하고 게임 진행을 제어하는 기능을 한다. 게임 서버(102)는 플레이어 캐릭터의 이동, 공격 등과 같은 게임 커맨드 메시지, 사용자 클라이언트들간의 채팅 메시지, 퀘스트 수락 및 완료와 같은 퀘스트 메시지 및 플레이어 캐릭터의 레벨 업 및 아이템 획득과 같은 상태 정보 메시지 등 다양한 종류의 게임 메시지를 수신하며, 수신된 게임 메시지를 미리 설정된 게임 로직에 따라 처리한다.
예를 들어, 사용자 클라이언트로부터 특정 대상에 대한 공격 메시지를 수신할 경우, 게임 서버(102)는 해당 대상에 대한 공격 정보를 다른 사용자 클라이언트들에 전송한다. 또 다른 예로, 플레이어의 레벨 업과 같은 상태 정보 메시지가 수신될 경우, 게임 서버는 사용자의 레벨 업 정보를 데이터베이스 서버(104)에 전송 하여 해당 사용자의 레벨 정보가 갱신되도록 한다.
온라인 롤플레잉 레이싱 게임의 경우, 게임 서버(102)는 게임 중 발생하는 상황에 대한 시뮬레이션 정보를 제공할 수도 있다. 예를 들어, 플레이어 캐릭터 자동차간의 충돌 또는 플레이어 자동차와 NPC(None Player Character) 자동차간의 충돌 상황이 발생할 경우, 충돌에 따른 시뮬레이션 정보를 연관된 사용자 클라이언트들에 제공한다.
특히, 게임 서버(102)는 게임 중에 발생하는 다양한 이벤트(예를 들어, 플레이어 캐릭터의 상태 변경, 공격, 충돌, 이동 등)들을 다수의 사용자들이 공유할 수 있도록 특정 사용자에게 발생한 이벤트 정보를 다른 사용자의 클라이언트들에 제공하는 기능을 한다.
예를 들어, 특정 지역에서 플레이어 캐릭터 자동차가 NPC 자동차와 충돌할 경우, 게임 서버(102)는 충돌에 따른 시뮬레이션을 연산하며, 시뮬레이션 연산 정보를 충돌한 플레이어 캐릭터 자동차의 사용자 클라이언트뿐만 아니라 충돌 상황을 볼 수 있는 주변의 플레이어 캐릭터 자동차의 사용자 클라이언트들에게도 전송한다.
즉, 게임 서버(102)는 특정 플레이어 캐릭터에게 발생하는 이벤트를 주변의 플레이어 캐릭터의 사용자 클라이언트들에게도 제공하여야 하는 바, 하나의 이벤트에 대해 N개의 사용자 클라이언트들에 이벤트 발생 정보를 제공하며, 이는 게임 서버 부하의 주요한 요인 중 하나이다.
복수의 실시간성 메시지 처리 서버(106)는 사용자 클라이언트들로부터 전송 되는 메시지 중 실시간 처리될 필요가 높은 메시지들을 처리한다
본 발명의 바람직한 실시예에 따르면, 캐릭터의 레벨 업과 같은 캐릭터 상태 정보, 퀘스트 정보와 같이 데이터베이스에 저장될 필요가 있으며 실시간으로 다른 사용자에게 제공될 필요가 높지 않은 정보는 게임 서버(102)에 의해 처리된다.
한편, 캐릭터의 이동 메시지와 같이 주변의 다른 사용자 캐릭터들에게 실시간으로 전송될 필요가 있는 메시지는 실시간성 메시지 처리 서버(106)에 의해 처리된다. 특히, 레이싱 게임과 같이 캐릭터 카가 빠르게 이동하고, 캐릭터 카간의 충돌이 빈번하게 발생하는 게임의 경우, 이동 메시지 및 충돌 메시지를 다수의 실시간성 메시지 처리 서버(106)에 의해 처리되도록 할 경우 메시지 처리 효율을 극대화할 수 있다.
즉, 메시지의 종류에 따라 게임 서버 또는 실시간성 메시지 처리 서버가 분담하여 메시지를 처리하도록 함으로써 효율적인 분산 처리가 이루어질 수 있다.
그러나, 본 발명의 다중 접속 온라인 게임에서의 캐릭터 정보 동기화 방법이 도 1과 같은 메시지 분산 처리 시스템에만 적용되는 것은 아니며, 단일 게임 서버에 의해 메시지가 처리되는 시스템에도 적용될 수 있다.
데이터베이스 서버(104)는 게임과 관련된 정보를 저장하고, 저장된 정보를 게임 서버(102) 또는 사용자 클라이언트의 요청에 응답하여 제공하는 기능을 한다.
데이터베이스 서버(104)는 플레이어 캐릭터의 상태 정보, 아이템 정보, 퀘스트 정보 등을 저장할 수 있으며, 게임 서버(102)로부터 캐릭터 상태, 아이템, 퀘스트 등과 관련한 정보를 수신할 경우 해당 정보를 저장한다.
네트워크를 통해 게임 시스템에 접속하는 사용자 클라이언트들(108)에는 게임 실행을 위한 게임 어플리케이션이 설치된다. 사용자 클라이언트(108)는 네트워크를 통해 통신 가능하고 게임 어플리케이션의 실행이 가능한 어떠한 종류의 장치도 포함할 수 있다. 예를 들어, 사용자 클라이언트(108)는 일반적인 PC는 물론 노트북, PDA, 휴대폰과 같은 개인용 단말기를 포함할 수 있다.
전술한 바와 같이, 온라인 게임 발생하는 부하의 대부분은 서버(102, 106)에서 사용자 클라이언트(108)로 전송하는 메시지로 인해 발생하며, 서버에서 사용자 클라이언트로 전송되는 메시지의 사이즈를 최소화하는 방법이 요구되고 있다.
통상적인 온라인 게임에서 게임 서버에 의해 중계되는 메시지는 캐릭터 정보를 포함하고 있다. 예를 들어, 특정 플레이어 캐릭터의 이동 메시지의 경우, 이동 메시지는 이동 좌표에 대한 정보뿐만 아니라 이동을 하는 캐릭터의 정보를 포함하고 있다. 예를 들어, 온라인 롤플레잉 레이싱 게임의 경우, 캐릭터 정보는 플레이어 캐릭터 자동차의 위치, 속도, 명칭, 아이템, 길드 등을 포함하고 있다.
이러한 캐릭터 정보는 이동 메시지, 충돌 메시지, 공격 메시지 등 다양한 종류의 게임 메시지가 전달될 때 해당 메시지에 포함되어 전송된다.
즉, 온라인 게임에서는 캐릭터의 변화 정보(이동, 충돌, 공격 등)를 제공할 때마다 캐릭터 정보가 메시지에 포함되어 게임에 접속한 사용자들간에 캐릭터 정보가 동기화되도록 한다.
그러나, 종래에 이와 같은 방식에 의할 경우, 메시지가 전송될 때마다 모든 캐릭터 정보가 메시지에 포함되어야 하므로 메시지의 사이즈가 커지며, 이는 서 버(102, 106)의 주요한 부하 요인 중 하나로 작용하고 있다.
본 발명에서는 이와 같은 종래의 문제점을 해결하기 위해, 보다 효율적으로 캐릭터 정보를 동기화함으로써 서버(102, 106)에서 제공하는 메시지의 사이즈를 최소화할 수 있는 방법을 제안한다.
본 발명의 바람직한 실시예에 따르면, 캐릭터 정보를 제1 캐릭터 정보 및 제2 캐릭터 정보로 구분하여 일반적인 상태에서는 제1 캐릭터 정보만을 메시지에 포함되도록 함으로써 게임 서버에 의해 중계 또는 제공되는 메시지의 사이즈가 경감되도록 한다.
여기서, 제1 캐릭터 정보는 캐릭터의 위치, 속도 등과 같이 변화 빈도가 큰 캐릭터 정보를 의미하며, 제2 캐릭터 정보는 캐릭터의 명칭, 아이템, 길드 등과 같이 변화 빈도가 작은 캐릭터 정보를 의미한다.
본 발명의 바람직한 실시예에 따르면, 일반적인 상태에서는 변화 빈도가 큰 제1 캐릭터 정보만을 메시지에 포함시켜 전송하며, 제2 캐릭터 정보는 미리 설정된 이벤트 발생 시에만 메시지에 포함시키도록 하여 서버(102, 106)에 의해 중계 또는 제공되는 메시지의 사이즈를 경감시킨다.
여기서, 미리 설정된 이벤트는 사용자 클라이언트로부터 특정 캐릭터에 대한 제2 캐릭터 정보를 요청받는 경우를 포함할 수 있다. 제2 캐릭터 정보가 제공되는 이벤트는 이러한 경우 이외에도 운영자가 다양하게 설정할 수 있을 것이다.
예를 들어, 제1 사용자 클라이언트(캐릭터 A) 및 제2 사용자 클라이언트(캐릭터 B)가 게임에 접속해 있다고 가정하여 본 발명에 의한 캐릭터 정보 동기화 방 법을 설명한다.
제1 사용자 클라이언트는 캐릭터 A에 대한 메시지를 서버(102, 106)에 제공할 때 캐릭터 A의 제1 캐릭터 정보만을 포함시켜 서버(102, 106)에 전송하며, 캐릭터 B에 상응하는 제2 사용자 클라이언트는 서버(102, 106)로부터 제1 캐릭터 정보만이 포함된 캐릭터 A에 대한 메시지를 수신한다.
제2 사용자 클라이언트는 캐릭터 A의 제2 캐릭터 정보(예를 들어, 캐릭터 A의 명칭, 아이템, 길드 등)를 알고 있는지 여부를 판단한다. 제2 사용자 클라이언트가 캐릭터 A의 제2 캐릭터 정보를 알고 있지 않은 경우, 제2 사용자 클라이언트는 서버(102, 106)에 캐릭터 A에 대한 제2 캐릭터 정보를 요청하며, 서버는 캐릭터 A의 제2 캐릭터 정보를 제공함으로써 캐릭터 정보를 동기화한다.
제1 사용자 클라이언트가 제1 캐릭터 정보만을 메시지에 포함시키기 때문에, 게임에 접속한 다른 사용자 클라이언트들은 캐릭터 A의 제2 캐릭터 정보의 갱신 여부를 확인할 수 없다. 본 발명의 바람직한 실시예에 따르면, 제2 캐릭터 정보의 갱신을 파악하기 위해, 메시지에 제1 캐릭터 정보뿐만 아니라 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 정보가 기록되는 필드가 추가된다.
이하에서, 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 정보를 에이지(Age) 정보라고 정의한다.
제1 사용자 클라이언트는 제2 캐릭터 정보가 변경(예를 들어, 캐릭터 A의 착용 아이템 변경)될 경우, 메시지의 에이지 정보를 갱신한다. 제2 사용자 클라이언트는 제1 사용자 클라이언트로부터의 메시지 중 에이지 정보를 조회하여 캐릭터 A 의 제2 캐릭터 정보 갱신 여부를 판단할 수 있으며, 에이지 정보가 갱신되었을 경우, 서버(102, 106)의 캐릭터 A의 제2 캐릭터 정보를 요청하여 캐릭터 정보를 동기화한다.
캐릭터 정보를 동기화하기 위한 보다 상세한 구성 및 절차는 별도의 도면을 통해 설명하기로 한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 게임 서버의 모듈 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 게임 서버는 복수의 플레이어 오브젝트(200), 채널 관리부(202), 게임 로직 제어부(204), 메시지 제어부(206), 캐릭터 정보 관리부(208), NPC 관리부(210), 퀘스트 관리부(212), 아이템 관리부(214) 캐릭터 관리부(216) 및 길드 관리부(218)를 포함할 수 있다.
플레이어 오브젝트(200)는 게임 서버에 접속한 사용자 클라이언트들과의 메시지 송수신을 제어하는 기능을 한다. 플레이어 오브젝트(200)는 게임 서버에 사용자 클라이언트가 접속할 때 해당 사용자 클라이언트의 접속에 상응하여 생성되며, 사용자 클라이언트의 접속이 끊어진 경우 소멸된다.
플레이어 오브젝트(200)는 사용자 클라이언트로부터 전송되는 게임 메시지를 메시지 제어부(206)에 제공하며, 메시지 제어부(206)로부터 제공되는 게임 서버의 게임 메시지를 해당 사용자 클라이언트에 전송한다.
메시지 제어부(206)는 사용자 클라이언트로부터 전송된 게임 관련 메시지들을 플레이어 오브젝트(200)로부터 수신하며, 수신된 메시지를 이를 처리할 구성 요 소에 분배하는 기능을 한다. 예를 들어, 특정 사용자 캐릭터의 착용 아이템 변경 메시지가 플레이어 오브젝트(200)로부터 수신될 경우, 메시지 제어부(206)는 수신된 착용 아이템 변경 메시지를 아이템 관리부(204) 및 캐릭터 관리부(206)에 제공한다. 예를 들어, 수신된 메시지가 특정 사용자의 퀘스트 수락 메시지일 경우, 메시지 제어부(206)는 퀘스트 수락 메시지를 퀘스트 관리부(212)에 전송한다.
또한, 메시지 제어부(206)는 접속한 특정 사용자 클라이언트에 메시지를 전송하고자 할 경우, 해당 메시지를 해당 사용자 클라이언트와 연관된 플레이어 오브젝트에 제공한다. 예를 들어, 특정 사용자로의 채팅 메시지를 메시지 제어부(206)가 수신한 경우, 메시지 제어부(206)는 채팅 메시지의 수신자에 상응하는 사용자와 연관된 플레이어 오브젝트에 채팅 메시지를 전송하여 채팅 메시지가 해당 사용자의 클라이언트에 전송되도록 한다. 또 다른 예로, 특정 사용자 캐릭터 자동차의 충돌 메시지를 수신할 경우, 메시지 제어부(206)는 충돌을 볼 수 있는 지점에 위치한 캐릭터 자동차들의 사용자들을 판단하고 해당 사용자들의 클라이언트들에 충돌 장면 및 충돌에 상응하는 시뮬레이션 정보를 제공하는 기능을 한다.
캐릭터 정보 관리부(208)는 게임 서버에 접속한 사용자의 캐릭터 정보를 관리한다. 캐릭터 정보는 사용자 캐릭터의 위치, 레벨, 아이템과 같은 캐릭터의 정보를 포함할 수 있다.
캐릭터 정보 관리부(208)의 정보는 메시지 제어부에서 메시지를 전송할 수신자를 판단할 때 사용된다. 예를 들어, 특정 사용자가 캐릭터 착용 아이템을 변경할 경우, 착용 아이템 변경 정보를 주변의 사용자에게 제공할 필요가 있다. 이때, 메 시지 제어부는 캐릭터 정보 관리부(208)에서 관리되는 정보를 이용하여 착용 아이템을 변경한 사용자 캐릭터의 주변에 있는 사용자 캐릭터들을 추출하고 해당 사용자 캐릭터들에 상응하는 플레이어 오브젝트에 착용 아이템 변경 메시지를 제공한다.
다른 예로, 특정 사용자의 캐릭터가 이동할 경우, 메시지 제어부는 캐릭터 정보 관리부(208)로부터 이동한 캐릭터의 주변에 있는 사용자 캐릭터들을 추출하고 해당 사용자 캐릭터에 상응하는 플레이어 오브젝트에 이동 메시지를 제공한다.
메시지 제어부(208)는 특정 사용자 캐릭터의 상태 변경 메시지(예를 들어, 이동 메시지, 착용 아이템 변경 메시지, 충돌 메시지 등을 포함함)를 수신할 경우, 상태 변경 정보를 캐릭터 정보 관리부(208)에 제공하여 게임 내 캐릭터 정보가 관리되도록 한다.
캐릭터 정보 관리부(208)는 상기 메시지 제어부(208)로부터 제공되는 메시지에 포함된 캐릭터 정보를 이용하여 캐릭터 정보를 관리한다. 캐릭터 정보 관리부(208)는 캐릭터들의 제1 및 제2 캐릭터 정보를 저장하고 있으며, 특정 사용자 클라이언트로부터 특정 캐릭터의 제2 캐릭터 정보를 요청받을 경우, 해당 캐릭터의 제2 캐릭터 정보를 제공한다.
NPC(None Player Character) 관리부(210)는 게임상에 등장하는 NPC 정보를 관리하는 기능을 한다. 예를 들어, 레이싱 게임의 경우, NPC 관리부(210)는 퀘스트를 제공하는 NPC 정보, 게임상에 등장하는 트래픽 카에 대한 정보를 관리한다. 통상적인 다중 접속 온라인 롤플레잉의 경우, NPC 관리부는 각 지역에 출몰하는 몬스 터에 대한 정보를 포함할 수도 있다.
퀘스트 관리부(212)는 다중 접속 온라인 게임에서 사용자들에게 제공되는 퀘스트에 대한 정보 및 퀘스트 수락 및 퀘스트 완료 여부에 대한 정보를 관리한다.
특정 사용자가 특정 퀘스트를 수락할 경우, 퀘스트 수락 메시지는 메시지 제어부(206)에 제공되며, 메시지 제어부(206)는 퀘스트 수락 메시지를 퀘스트 관리부(212)에 제공한다. 퀘스트 관리부(212)는 퀘스트 수락 정보를 데이터베이스 서버(104)에 전송하여 퀘스트 수락 정보가 반영되도록 한다. 퀘스트 완료 메시지의 경우에도, 상술한 퀘스트 수락 메시지와 동일하게 퀘스트 관리부에 의해 데이터베이스 서버(104)에 반영된다.
아이템 관리부(214)는 게임 중에 제공되는 아이템에 대한 정보 및 사용자 캐릭터의 아이템 변경 정보(아이템의 획득, 아이템 드랍 등을 포함함)를 관리한다. 특정 사용자 캐릭터가 아이템을 획득할 경우, 아이템 획득 메시지가 메시지 제어부(206)에 제공하며, 메시지 제어부(206)는 아이템 관리부(204)에 아이템 획득 메시지를 제공한다. 아이템 관리부(214)는 아이템 획득 정보를 데이터베이스 서버에 전송하여 아이템 획득 정보가 반영되도록 한다.
캐릭터 관리부(206)는 사용자들이 생성한 게임 캐릭터들의 정보를 관리하며, 캐릭터에 대한 상태 변경 메시지(캐릭터 레벨 업, 아이템 획득 정보 등을 포함함)를 수신하여 데이터베이스 서버(104)에 제공하는 기능을 한다.
길드 관리부(218) 다중 접속 온라인 게임 사용자들이 형성하는 길드 정보를 관리한다. 길드 관리부(218)는 길드원의 가입/탈퇴 메시지 및 길드원의 레벨 변경 메시지와 같은 길드 관련 메시지를 수신하며, 수신된 메시지에 포함된 길드 관련 정보를 데이터베이스 서버(104)에 제공한다. 또한, 길드 관리부(218)는 길드원 상태, 길드원 명단과 같은 길드 관련 요청 정보가 있을 경우, 데이터베이스 서버(104)와의 통신을 통해 길드 정보를 제공한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 실시간성 메시지 처리 서버의 모듈 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 실시간성 메시지 처리 서버는 플레이어 오브젝트(300), 게임 로직 제어부(302), 메시지 제어부(304) 및 온라인 사용자 정보 관리부(306)를 포함할 수 있다.
전술한 바와 같이, 실시간성 메시지 처리 서버는 게임 서버의 역할을 분담하기 위한 서버로서 이동 메시지, 충돌 메시지와 같이 즉시 전송될 필요성이 높은 메시지를 처리한다. 따라서, 실시간성 메시지 처리 서버는 게임 서버의 구성 요소 중 일부의 구성 요소를 포함하되 데이터베이스 서버와 통신이 필요한 퀘스트 관리부, 아이템 관리부, 캐릭터 관리부 및 길드 관리부 등을 포함하고 있지 않다.
그러나, 필요에 다라 실시간성 메시지 처리 서버가 데이터베이스 서버에 반영되는 메시지를 처리할 수도 있으며, 이 경우 실시간성 메시지 처리 서버는 상술한 구성 요소 모두를 포함하여 게임 서버와 동일한 구성을 가질 수도 있다.
도 3에 도시된 실시간성 메시지 처리 서버의 각 구성 요소의 역할은 게임 서버의 구성 요소와 동일하므로 이에 대한 상세한 설명은 생략한다.
실시간 처리가 필요한 이동 메시지가 수신될 경우, 메시지 제어부(304)는 온 라인 사용자 캐릭터 정보 관리부(306)의 정보를 이용하여 이동 메시지를 수신할 온라인 사용자 캐릭터 정보를 추출한다. 메시지 제어부(304)는 이동 메시지를 수신할 온라인 사용자에 상응하는 플레이어 오브젝트에 이동 메시지를 전달하며, 플레이어 오브젝트는 해당 사용자에게 이동 메시지를 전송한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 캐릭터 정보 동기화를 위해 사용자 클라이언트에 설치되는 게임 어플리케이션의 모듈 구성을 도시한 블록도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 게임 어플리케이션은 커맨드 해석부(400), 게임 로직 처리부(402), 서버 통신부(404), 게임 데이터 추출부(406), 캐릭터 정보 모니터링부(408), 제2 캐릭터 정보 요청부(410) 및 캐릭터 갱신 정보 관리부(412)를 포함할 수 있다.
커맨드 해석부(400)는 사용자가 입력하는 게임 커맨드 정보를 수신하고 게임 커맨드를 해석하여 해석된 정보를 게임 로직 처리부(402)에 제공한다. 예를 들어, 게임 커맨드 해석부(400)는 사용자가 입력한 게임 커맨드가 퀘스트 수락 커맨드인지 또는 이동 커맨드인지 여부 등을 해석하고 해석된 정보를 게임 로직 처리부(402)에 제공한다.
게임 로직 처리부(402)는 사용자의 게임 커맨드 입력에 상응하여 미리 설정된 게임 로직을 실행하는 기능을 한다. 게임 환경 설정 커맨드와 같이 서버로 전송할 필요가 없는 커맨드일 경우 게임 로직 처리부(402)는 클라이언트 내부에서 게임 환경 설정 프로세스를 수행한다. 사용자 캐릭터의 이동 메시지와 같이 서버로 전송할 필요가 있는 커맨드일 경우, 게임 로직 처리부(402)는 이동 커맨드에 상응하는 이동 메시지를 생성하여 서버 통신부(404)에 제공한다.
서버 통신부(404)는 게임 로직 처리부(402)에서 생성되는 게임 메시지를 게임 서버 또는 실시간성 메시지 처리 서버에 전송하며, 게임 서버 또는 실시간성 메시지 처리서버에서 전송되는 게임 메시지를 게임 로직 처리부(402)에 제공하는 기능을 한다.
서버 통신부(404)는 게임 로직 처리부에서 생성된 메시지가 게임 서버로 전송할 메시지인지 또는 실시간성 메시지 처리 서버로 전송할 메시지인지 여부를 판단하여 해당 서버로 게임 메시지를 전송한다.
게임 데이터 추출부(406)는 게임 실행을 위해 필요한 게임 데이터를 추출하는 기능을 한다. 예를 들어, 사용자의 게임 커맨드에 상응하여 게임 로직 처리부의 제어에 따라 게임 데이터 추출부(406)는 맵 데이터, 캐릭터 정보 데이터 등을 추출하여 게임 로직 처리부(402)에 제공한다.
캐릭터 정보 모니터링부(408)는 서버로부터 전송되는 메시지를 분석하여 메시지와 연관된 캐릭터의 제2 캐릭터 정보가 갱신되었는지 여부를 판단한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 서버로부터 전송되는 메시지 필드의 일례를 도시한 도면이다.
도 5를 참조하면, 서버로부터 제공되는 메시지는 메시지 헤더 필드(500), 제1 캐릭터 정보 필드(502), 메시지 데이터 필드(504) 및 에이지 필드(506)를 포함할 수 있다.
메시지 헤더 필드(500)에는 메시지의 종류를 식별하기 위한 정보가 기록된 다. 예를 들어, 메시지가 이동 메시지인 경우, 이동 메시지에 대해 미리 설정된 식별 정보가 기록된다.
제1 캐릭터 정보 필드(502)에는 캐릭터와 관련한 메시지 전송 시마다 포함되는 미리 설정된 제1 캐릭터 정보가 기록된다. 전술한 바와 같이, 제1 캐릭터 정보는 캐릭터의 위치 및 속도 정보를 포함할 수 있다.
메시지 데이터 필드(504)에는 메시지 종류에 상응하는 메시지 데이터가 기록된다. 예를 들어, 메시지가 이동 메시지일 경우, 메시지 데이터 필드에는 이동한 좌표 정보가 기록될 수 있다.
에이지 필드(506)에는 메시지와 연관된 캐릭터의 제2 캐릭터 정보 갱신 여부를 파악하기 위한 에이지 정보가 기록된다.
다시, 도 4를 참조하면, 캐릭터 정보 모니터링부(408)는 서버로부터 제공되는 도 5와 같은 형태의 메시지에서 에이지 필드 정보를 이용하여 메시지와 연관된 캐릭터의 제2 캐릭터 정보가 갱신되었는지 여부를 판단한다.
캐릭터 정보 모니터링부(408)는 서버로부터 메시지를 수신할 때 메시지와 연관된 캐릭터와 해당 캐릭터의 에이지 정보를 관리하며, 새로 수신되는 해당 캐릭터의 메시지 에이지 정보가 저장되어 있는 에이지 정보와 다를 경우 제2 캐릭터 정보가 갱신되었다고 판단한다.
에이지 정보가 달라진 경우, 캐릭터 정보 모니터링부(408)는 제2 캐릭터 정보 요청부에 특정 캐릭터의 제2 캐릭터 정보의 갱신을 알리며, 제2 캐릭터 정보 요청부(410)는 해당 캐릭터에 대한 제2 캐릭터 정보 요청 메시지를 생성하여 서버 통 신부(404)에 제공한다. 서버 통신부(404)는 제2 캐릭터 정보 요청 메시지를 서버에 전송한다.
상기 제2 캐릭터 정보 요청 메시지는 제2 캐릭터정보 요청 메시지임을 식별하기 위한 헤더 데이터와 어떠한 캐릭터에 대한 제2 캐릭터 정보 요청임을 식별하기 위한 캐릭터 식별 데이터가 포함될 수 있다.
캐릭터 갱신 정보 관리부(412)는 어플리케이션이 설치된 사용자 클라이언트에 상응하는 캐릭터의 제2 캐릭터 정보가 사용자 커맨드 또는 기타 이벤트로 인해 변경되는지 여부를 판단한다. 또한, 캐릭터 갱신 정보 관리부(412)는 제2 캐릭터 정보가 갱신될 경우, 제2 캐릭터 정보 갱신 후 메시지에 포함될 에이지 값을 갱신한다.
예를 들어, 사용자가 새로운 아이템을 취득하여 새로 취득한 아이템을 장착할 경우, 캐릭터 갱신 정보 관리부(412)는 제2 캐릭터 정보 중 하나인 착용 아이템이 변경되었다는 것을 감지한다.
제2 캐릭터 정보의 갱신을 감지하면, 캐릭터 갱신 정보 관리부(412)는 메시지에 포함되는 새로운 에이지 정보를 설정한다. 본 발명의 일 실시예에 따르면, 에이지 정보는 정수이고, 제2 캐릭터 정보의 갱신에 따라 순차적으로 증가할 수 있다. 예를 들어, 갱신 전 에이지 정보가 10일 경우, 제2 캐릭터 정보의 갱신이 감지되면, 캐릭터 갱신 정보 관리부는 에이지 정보를 11로 갱신한다. 에이지 정보가 상술한 바와 다른 방식으로 다양하게 갱신될 수 있다는 점은 당업자에게 있어 자명할 것이다.
또한, 캐릭터 갱신 정보 관리부(412)는 갱신된 제2 캐릭터 정보를 서버가 알 수 있도록 서버로 전송되는 메시지에 제2 캐릭터 정보가 포함되도록 한다.
도 6은 본 발명의 바람직한 일 실시예에 따른 제2 캐릭터 정보의 갱신 후 서버로 전송되는 메시지의 필드 구성을 도시한 도면이다.
도 6을 참조하면, 제2 캐릭터 정보의 갱신 후 서버로 전송되는 메시지는 메시지 헤더 필드(600), 제1 캐릭터 정보 필드(602), 제2 캐릭터 정보 필드(604), 메시지 데이터 필드(606) 및 에이지 필드(608)를 포함할 수 있다.
도 6에 도시된 바와 같이, 제2 캐릭터 정보가 갱신되면, 서버가 갱신된 제2 캐릭터 정보를 확인할 수 있도록 갱신된 제2 캐릭터 정보(604)를 포함시켜 서버에 메시지를 전송한다. 이때 메시지에 포함되는 에이지 필드(608)의 에이지 데이터는 캐릭터 갱신 정보 관리부에 의해 갱신된 에이지 데이터이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 특정 캐릭터의 제2 캐릭터 정보가 갱신될 경우, 다른 캐릭터들에 상응하는 클라이언트들이 상기 특정 캐릭터의 제2 캐릭터 정보를 동기화하는 과정에 대한 순서도이다.
도 7을 참조하면, 우선 사용자 클라이언트들은 다른 캐릭터의 캐릭터 정보를 포함하는 메시지를 수신한다(S700).
전술한 바와 같이, 게임 어플리케이션의 캐릭터 정보 모니터링부(408)는 다른 캐릭터들의 에이지 데이터를 관리하며, 새로 수신된 메시지에 포함된 에이지 데이터와 저장되어 있는 에이지 데이터를 비교한다(S702).
메시지에 포함된 에이지 데이터와 저장되어 있는 에이지 데이터가 다를 경 우, 메시지와 연관된 캐릭터의 제2 캐릭터 정보가 갱신되었다고 판단하며, 게임 어플리케이션은 제2 캐릭터 정보 요청 메시지를 생성하고, 생성된 제2 캐릭터 정보 요청 메시지를 서버에 전송한다(S706).
서버는 제2 캐릭터 정보 요청 메시지를 수신할 경우, 제2 캐릭터 정보 요청 메시지를 분석하여 어떠한 캐릭터에 대한 제2 캐릭터 정보 요청 메시지인지를 판단한다.
서버는 분석된 캐릭터에 상응하는 제2 캐릭터 정보를 추출하고 추출된 정보를 제2 캐릭터 정보를 요청한 사용자 클라이언트에 전송하며, 사용자 클라이언트는 제2 캐릭터 정보를 수신한다(S708).
본 발명의 일 실시예에 따르면, 서버는 제2 캐릭터 정보를 이동 메시지 등에 포함시켜 요청한 사용자 클라이언트에 제공할 수 있다. 물론, 제2 캐릭터 정보만을 포함하는 메시지를 요청한 사용자 클라이언트에 제공할 수도 있을 것이다.
제2 캐릭터 정보를 수신한 게임 어플리케이션은 갱신된 제2 캐릭터 정보를 반영하여 해당 캐릭터의 정보를 표시한다(S710).
도 8은 본 발명의 바람직한 일 실시예에 따른 제2 캐릭터 정보 변경 시 제2 캐릭터 변경 정보를 서버에 제공하는 방법에 대한 순서도이다.
도 8을 참조하면, 게임 어플리케이션의 캐릭터 갱신 정보 관리부(412)는 사용자의 커맨드 또는 미리 설정된 이벤트 발생에 따라 캐릭터의 제2 캐릭터 정보가 갱신되는지 여부를 모니터링한다(S800).
제2 캐릭터 정보가 갱신될 경우(S802), 게임 어플리케이션은 메시지에 포함 되는 에이지 필드의 에이지 데이터를 갱신한다(S804). 전술한 바와 같이, 정수의 에이지 데이터를 증감시키는 방식으로 에이지 데이터를 갱신할 수도 있으며 다른 갱신 알고리즘이 사용될 수도 있다.
에이지 필드가 갱신되면, 차후 서버로 전송하는 메시지에는 갱신된 에이지 데이터가 포함된 메시지를 전송한다(S806).
에이지 데이터가 갱신될 경우, 서버 또는 다른 사용자는 새로운 제2 캐릭터 정보를 요청할 수 있으며, 게임 어플리케이션은 제2 캐릭터 요청 정보를 수신한다(S808).
제2 캐릭터 요청 정보에 응답하여, 게임 어플리케이션은 제2 캐릭터 정보가 포함된 메시지를 서버에 제공한다(S810).
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명의 바람직한 실시예에 따르면, 게임 메시지에 포함되는 캐릭터 정보의 사이즈를 최소화함으로써 캐릭터 정보 동기화로 인한 게임 서버의 부화를 경감시킬 수 있는 장점이 있다.
또한, 본 발명의 바람직한 실시예에 따르면, 캐릭터 정보 중 변화 빈도가 큰 정보만을 항상 게임 메시지에 포함시키고 변화 빈도가 작은 정보는 갱신 시에만 제공되도록 하여 캐릭터 동기화를 위한 게임 메시지의 사이즈를 최소화할 수 있는 장점이 있다.
Claims (14)
- 온라인 게임 시스템에 의해 수행되는 캐릭터 정보 동기화 방법에 있어서,다른 사용자의 캐릭터 정보를 포함하는 게임 메시지를 수신하는 단계(a)-상기 캐릭터 정보는 제1 캐릭터 정보 및 제2 캐릭터 정보로 구분되고, 상기 게임 메시지에는 상기 제1 캐릭터 정보 및 상기 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 에이지 정보가 포함됨-;상기 수신된 게임 메시지의 에이지 정보를 통해 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보 갱신 여부를 판단하는 단계(b);상기 수신된 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보가 갱신되었을 경우, 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보를 요청하는 제2 캐릭터 정보 요청 메시지를 서버에 전송하는 단계(c)를 포함하는 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 방법.
- 제1항에 있어서,상기 단계(b)는 상기 게임 메시지와 연관된 캐릭터에 대해 미리 저장된 에이지 정보와 상기 수신된 게임 메시지의 에이지 정보가 동일한지 여부에 의해 상기 제2 캐릭터 정보의 갱신 여부를 판단하는 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 방법.
- 제2항에 있어서,상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보는 상기 에이지 정보가 갱신된 게임 메시지가 수신될 때까지 유지되는 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 방법.
- 제2항에 있어서,상기 제1 캐릭터 정보는 상기 제2 캐릭터 정보보다 변화 빈도가 큰 캐릭터 정보인 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 방법.
- 제4항에 있어서,상기 온라인 게임이 온라인 롤플레잉 레이싱 게임일 경우,상기 제1 캐릭터 정보는 캐릭터 자동차의 위치 및 속도 정보를 포함하며, 상기 제2 캐릭터 정보는 캐릭터 자동차의 명칭, 아이템 및 길드 정보를 포함하는 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 방법.
- 제1항에 있어서,사용자의 커맨드 또는 미리 설정된 이벤트 발생에 의해 상기 사용자의 캐릭터 정보 중 상기 제2 캐릭터 정보가 갱신되는지 여부를 판단하는 단계;상기 제2 캐릭터 정보가 갱신될 경우, 생성되는 게임 메시지에 포함되는 에이지 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 온라인 게임에서 캐 릭터 정보 동기화 방법.
- 제6항에 있어서,상기 사용자의 커맨드 또는 미리 설정된 이벤트 발생에 의해 갱신된 제2 캐릭터 정보는 상기 서버에 전송되며, 상기 에이지 정보가 갱신된 게임 메시지에 포함되어 전송되는 것을 특징으로 하는 온라인 게임에서 캐릭터 정보 동기화 방법.
- 제1항 내지 제7항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 유형적으로 구현되어 있으며 디지털 데이터 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체.
- 다수의 사용자 클라이언트들이 접속하여 게임을 수행하는 온라인 게임에서의 사용자 캐릭터 정보 동기화 시스템으로서,상기 사용자 클라이언트로부터 전송되는 게임 메시지를 수신하여 미리 설정된 게임 로직에 따라 처리하고 다른 사용자 클라이언트들에게 전송될 필요가 있는 게임 메시지를 접속한 다른 사용자 클라이언트들에게 전송하는 게임 서버-상기 게임 메시지 중 일부의 게임 메시지에는 사용자 캐릭터 정보가 포함되고, 상기 캐릭터 정보는 제1 캐릭터 정보 및 제2 캐릭터 정보로 구분되며, 상기 게임 메시지에는 상기 제1 캐릭터 정보 및 상기 제2 캐릭터 정보의 갱신 여부를 판단하기 위한 에이지 정보가 포함됨; 및게임 캐릭터의 상태 변화를 포함하는 상태 변화 정보를 상기 게임 서버로부터 수신하여 데이터베이스에 저장하는 데이터베이스 서버를 포함하되,상기 다수의 사용자 클라이언트 각각에는 게임 실행을 위한 게임 어플리케이션이 설치되고, 상기 어플리케이션은 게임 메시지 상기 게임 서버로부터 게임 메시지 수신 시 상기 에이지 정보를 이용하여 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보 갱신 여부를 판단하며, 상기 제2 캐릭터 정보가 갱신되었을 경우, 상기 게임 서버에 상기 제2 캐릭터 정보를 요청하는 것을 특징으로 하는 온라인 게임에서 캐릭터 정보 동기화 시스템.
- 제9항에 있어서,상기 게임 어플리케이션은, 상기 게임 메시지와 연관된 캐릭터에 대해 미리 저장된 에이지 정보와 상기 수신된 게임 메시지의 에이지 정보가 동일한지 여부에 의해 상기 제2 캐릭터 정보의 갱신 여부를 판단하는 것을 특징으로 하는 온라인 게임에서 캐릭터 정보 동기화 시스템.
- 제10항에 있어서,상기 게임 어플리케이션은 상기 게임 메시지와 연관된 캐릭터의 제2 캐릭터 정보를 상기 에이지 정보가 갱신된 게임 메시지가 수신될 때까지 유지하는 것을 특징으로 하는 온라인 게임에서 캐릭터 정보 동기화 시스템.
- 제10항에 있어서,상기 제1 캐릭터 정보는 상기 제2 캐릭터 정보보다 변화 빈도가 큰 캐릭터 정보인 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 시스템.
- 제12항에 있어서,상기 온라인 게임이 온라인 롤플레잉 레이싱 게임일 경우,상기 제1 캐릭터 정보는 캐릭터 자동차의 위치 및 속도 정보를 포함하며, 상기 제2 캐릭터 정보는 캐릭터 자동차의 명칭, 아이템 및 길드 정보를 포함하는 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 시스템.
- 제9항에 있어서,상기 게임 어플리케이션은 사용자의 커맨드 또는 미리 설정된 이벤트 발생에 의해 상기 사용자의 캐릭터 정보 중 상기 제2 캐릭터 정보가 갱신되는지 여부를 판단하고, 상기 제2 캐릭터 정보가 갱신될 경우, 생성하는 게임 메시지에 포함되는 에이지 정보를 갱신하는 것을 특징으로 하는 온라인 게임에서의 캐릭터 정보 동기화 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060089758A KR100829810B1 (ko) | 2006-09-15 | 2006-09-15 | 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060089758A KR100829810B1 (ko) | 2006-09-15 | 2006-09-15 | 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080025233A KR20080025233A (ko) | 2008-03-20 |
KR100829810B1 true KR100829810B1 (ko) | 2008-05-19 |
Family
ID=39413172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060089758A KR100829810B1 (ko) | 2006-09-15 | 2006-09-15 | 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100829810B1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101488653B1 (ko) * | 2013-01-22 | 2015-02-05 | 주식회사 넥슨코리아 | 로컬 클라이언트와 리모트 클라이언트에서의 타격 프레임과 피격 프레임 동기화 방법 및 그 시스템 |
KR101488698B1 (ko) * | 2013-01-22 | 2015-02-05 | 주식회사 넥슨코리아 | 게임서버 기준에 의한 로컬 클라이언트와 리모트 클라이언트에서의 프레임 동기화 방법 및 그 시스템 |
KR101528491B1 (ko) * | 2013-01-22 | 2015-06-15 | 주식회사 넥슨코리아 | 게임서버 기준에 의한 로컬 클라이언트와 리모트 클라이언트에서의 프레임 동기화 방법 및 그 시스템 |
KR101926637B1 (ko) * | 2016-09-06 | 2018-12-11 | 주식회사 퍼니셀 | 이기종 디바이스간 호환 가능한 미션 참여형 이동 통신 단말기의 제어 방법, 이기종 디바이스간 호환 가능한 미션 참여형 이동 통신 서버에서의 제어 방법, 및 이종 이동 통신 단말기간에 미션 데이터를 동기화하는 스마트 체험 학습 방법 |
KR101845915B1 (ko) | 2016-11-02 | 2018-04-06 | 에스케이플래닛 주식회사 | 환율 개념을 적용한 게임 제공 방법, 시스템, 이를 위한 서비스장치 및 이를 위한 단말기 |
CN109603149A (zh) * | 2018-12-12 | 2019-04-12 | 北京像素软件科技股份有限公司 | 数据同步方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168789A (ja) * | 1993-12-14 | 1995-07-04 | Chugoku Nippon Denki Software Kk | イベントメッセージ送付方式 |
KR20020060519A (ko) * | 2001-01-11 | 2002-07-18 | 이은숙 | 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법 |
KR20030012672A (ko) * | 2001-08-03 | 2003-02-12 | (주)혁성정보시스템 | 다중 사용자 네트워크 레이싱 게임을 위한 메시지 처리 방법 |
KR20050012596A (ko) * | 2003-07-26 | 2005-02-02 | (주)이진공작 | 클라이언트 시스템의 동작 동기화 장치와 방법 및 이를이용한 통신망을 통한 상호 작용 시스템 및 게임방법 |
-
2006
- 2006-09-15 KR KR1020060089758A patent/KR100829810B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168789A (ja) * | 1993-12-14 | 1995-07-04 | Chugoku Nippon Denki Software Kk | イベントメッセージ送付方式 |
KR20020060519A (ko) * | 2001-01-11 | 2002-07-18 | 이은숙 | 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법 |
KR20030012672A (ko) * | 2001-08-03 | 2003-02-12 | (주)혁성정보시스템 | 다중 사용자 네트워크 레이싱 게임을 위한 메시지 처리 방법 |
KR20050012596A (ko) * | 2003-07-26 | 2005-02-02 | (주)이진공작 | 클라이언트 시스템의 동작 동기화 장치와 방법 및 이를이용한 통신망을 통한 상호 작용 시스템 및 게임방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20080025233A (ko) | 2008-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100883907B1 (ko) | 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템 | |
US20200147498A1 (en) | Automatic movement of player character in network game | |
US10912998B2 (en) | Network game system for executing event in network game | |
KR100821722B1 (ko) | 다중 접속 온라인 게임에서 p2p 메시지 전송 시스템 방법 | |
US7934996B2 (en) | Online video game control server and a method of controlling an online video game | |
EP2335790B1 (en) | Game control program, game device, game server and method for controlling game | |
KR100829810B1 (ko) | 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템 | |
US9242174B2 (en) | System and method for dynamically distributing game data | |
US20070099702A1 (en) | Network-based gaming system | |
US20090137320A1 (en) | Network game system and program | |
US11045729B2 (en) | Game processing program and game system | |
US8992328B2 (en) | Method, apparatus, and recording medium for playing game with server transferring in online game environment | |
JP2024028661A (ja) | ゲームプログラム、およびゲームシステム | |
US20100093439A1 (en) | Interactive network game and methods thereof | |
KR100733138B1 (ko) | 논플레이어블캐릭터 제어방법 | |
KR101355295B1 (ko) | 온라인 게임에서 메시지 송신 제어 방법 및 장치 | |
US10765955B2 (en) | Video game notifications for streaming games | |
KR20050091438A (ko) | 온라인 상에 제공되는 게임 내의 캐릭터 및 게임정보 운영시스템 및 방법 | |
JP6084746B2 (ja) | ゲームシステムおよびゲームプログラム | |
KR20030012672A (ko) | 다중 사용자 네트워크 레이싱 게임을 위한 메시지 처리 방법 | |
CN118846532A (zh) | 虚拟对象的显示方法、装置、终端及存储介质 | |
CN118436979A (zh) | 信息处理方法、系统及装置 | |
CN117959711A (zh) | 虚拟对象的控制方法、装置、设备、介质及产品 | |
KR20110110981A (ko) | 개방형 이벤트 진행 맵을 이용한 온라인 게임 제공 방법 및 시스템 | |
KR20120065978A (ko) | 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110414 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20130329 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170328 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180328 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190325 Year of fee payment: 12 |