KR100883907B1 - 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템 - Google Patents

다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템 Download PDF

Info

Publication number
KR100883907B1
KR100883907B1 KR1020060089753A KR20060089753A KR100883907B1 KR 100883907 B1 KR100883907 B1 KR 100883907B1 KR 1020060089753 A KR1020060089753 A KR 1020060089753A KR 20060089753 A KR20060089753 A KR 20060089753A KR 100883907 B1 KR100883907 B1 KR 100883907B1
Authority
KR
South Korea
Prior art keywords
game
real
message
time
server
Prior art date
Application number
KR1020060089753A
Other languages
English (en)
Other versions
KR20080025230A (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 KR1020060089753A priority Critical patent/KR100883907B1/ko
Priority to US11/853,525 priority patent/US9555329B2/en
Publication of KR20080025230A publication Critical patent/KR20080025230A/ko
Application granted granted Critical
Publication of KR100883907B1 publication Critical patent/KR100883907B1/ko

Links

Images

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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • A63F13/12
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • 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/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/51Server architecture
    • A63F2300/513Server architecture server hierarchy, e.g. local, regional, national or dedicated for different tasks, e.g. authenticating, billing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • 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)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어 방법 및 시스템에 관한 것이다. 하나 이상의 사용자 클라이언트가 접속하는 다중 접속 온라인 게임의 진행을 제어하는 게임 서버와 독립적으로 제공되는 하나 이상의 분산 서버에서 수행되는 방법으로서, (a) 상기 사용자 클라이언트로부터 게임 관련 이벤트 메시지 중 실시간성 메시지를 수신하는 단계; (b) 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하는 단계; (c) 상기 결정된 다른 사용자의 클라이언트로 상기 실시간성 메시지를 전송하는 단계를 포함하되, 상기 사용자 클라이언트에 설치된 게임 어플리케이션은 게임 관련 이벤트가 미리 설정된 실시간성 이벤트인 경우에 상기 실시간성 메시지를 상기 분산 서버로 전송하며, 실시간성이 요구되지 않는 이벤트에 관련된 메시지를 상기 게임 서버로 전송하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법이 제공된다. 본 발명에 따르면, 실시간성 메시지를 분산 서버에서 처리함으로써 게임 서버의 부하를 경감시킬 수 있는 장점이 있다.
Figure R1020060089753
온라인, 게임, 커맨드, 이벤트 판단, 실시간성, 분산 서버, 전송 대상

Description

다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어 방법 및 시스템{METHOD AND SYSTEM FOR CONTROLLING GAME USING IN MULTI-PLAYER ONLINE GAME}
도 1은 본 발명의 바람직한 일 실시예에 따른 다중 접속 온라인 게임 시스템의 구성을 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 게임 서버의 상세 구성을 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 실시간성 메시지 처리 서버의 상세 구성을 도시한 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 플레이어 오브젝트의 상세 구성을 도시한 도면.
도 5는 본 발명에 따른 게임 어플리케이션의 상세 구성을 도시한 도면.
도 6은 본 발명의 바람직한 일 실시예에 따른 채널 입장 처리 과정의 순서도.
도 7은 본 발명의 바람직한 일 실시예에 따른 실시간성 메시지 처리 과정의 순서도.
도 8은 본 발명의 바람직한 일 실시예에 따른 이동 메시지 전송 과정의 순서도.
본 발명은 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어 방법 및 시스템에 관한 것으로서, 보다 상세하게는 실시간으로 처리되어야 하는 메시지가 많은 온라인 게임에서 실시간성 메시지를 효율적으로 처리할 수 있는 방법 및 시스템에 관한 것이다.
최근, 네트워크 기술의 발달로 대용량 멀티미디어 데이터의 고속 전송이 가능해지고, 네트워크에 접속 가능한 사용자 단말기의 보편적인 보급에 따라 사용자에게 다양한 종류의 컨텐츠를 제공하는 컨텐츠 제공업체(Contents Provider: CP)가 급속도로 증가하고 있는 추세이다.
컨텐츠 제공업체는 검색, 쇼핑, 게임 및 채팅 서비스와 같은 다양한 종류의 컨텐츠를 제공하고 있으며, 특히, 게임 서비스는 유료 서비스인 경우에도 많은 수요자 층을 확보할 수 있다는 점에서 컨텐츠 제공업체의 큰 수익원으로 자리 잡고 있다.
온라인 게임 중 다중 접속 온라인 롤플레잉 게임은 다수의 게이머들이 게임 개발자가 제공한 환경을 사용하고 변형함으로써 게임의 스토리와 구조를 창조해내는 특수한 형태의 게임이다.
이와 같은 종류의 게임으로, 블리자드사의 디아블로(Diablo), 월드 오브 워크래프트(World of Warcraft), NC소프트사의 리니지, 오리진사의 울티마 온라인 등 이 있다.
이러한 다중 접속 온라인 롤플레잉 게임은 판타지 세계를 기초로 한 월드를 제공하는 것이 일반적이었으나, 근래에 들어 다중 접속 온라인 롤플레잉 게임의 월드는 일반 도시, 학교 등과 같이 실제 세계를 반영한 환경으로까지 다양화되고 있다.
다중 접속 온라인 롤플레잉 게임은 다른 플레이어들과의 상호작용에 의해 진행되는 게임으로 어느 한 사용자의 게임 커맨드 메시지를 다른 사용자들에게도 전달해야 한다. 이와 같은 게임 커맨드 메시지의 전달은 다중 접속 온라인 롤플레잉 게임 서버 부하의 주요한 요인으로 작용한다.
다중 접속 온라인 롤플레잉 게임 영역이 확대됨에 따라 레이싱 게임도 다중 접속 온라인 롤플레잉 형태로 제공되고 있는데, 이러한 레이싱 롤플레잉 게임에서의 플레이어 캐릭터(차량)는 대단히 빠른 속도로 움직이거나 돌발적인 충돌이 빈번히 일어나는 바, 빠른 속도의 이동 정보 및 충돌 정보를 다른 사용자들에게 전달하는 경우, 서버의 부하가 더욱 심화되는 문제점이 있었다.
본 발명에서는 상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 다중 접속 온라인 게임에서 게임 관련 메시지를 효율적으로 처리할 수 있는 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어 방법 및 시스템을 제안하고자 한다.
본 발명의 다른 목적은 플레이어 사이에 이벤트 발생에 따른 메시지를 구분 하여 처리함으로써 게임 서버의 부하를 경감시킬 수 있는 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어 방법 및 시스템을 제공하는 것이다.
본 발명의 다른 목적은 메시지의 종류에 따라 메시지를 전송할 대상을 선택적으로 결정하여 메시지 전송에 따른 서버 부하를 경감시킬 수 있는 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어 방법 및 시스템을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 바람직한 일 실시예에 따르면, 하나 이상의 사용자 클라이언트가 접속하는 다중 접속 온라인 게임의 진행을 제어하는 게임 서버와 독립적으로 제공되는 하나 이상의 분산 서버에서 수행되는 방법으로서, (a) 상기 사용자 클라이언트로부터 게임 관련 이벤트 메시지 중 실시간성 메시지를 수신하는 단계; (b) 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하는 단계; (c) 상기 결정된 다른 사용자의 클라이언트로 상기 실시간성 메시지를 전송하는 단계를 포함하되, 상기 사용자 클라이언트에 설치된 게임 어플리케이션은 게임 관련 이벤트가 미리 설정된 실시간성 이벤트인 경우에 상기 실시간성 메시지를 상기 분산 서버로 전송하며, 실시간성이 요구되지 않는 이벤트에 관련된 메시지를 상기 게임 서버로 전송하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법이 제공된다.
본 발명의 다른 측면에 따르면, 다수의 사용자 클라이언트들이 네트워크를 통해 게임 서버 및 하나 이상의 분산 서버에 접속하여 게임을 플레이하는 다중 접속 온라인 게임에서 실시간성 메시지의 처리를 위해 상기 사용자 클라이언트에 설 치되는 게임 어플리케이션에서 실행되는 방법으로서, (a) 사용자가 입력하는 게임 커맨드 정보를 수신하는 단계; (b) 상기 수신된 커맨드에 의한 이벤트가 실시간성 이벤트인지 여부를 판단하는 단계; 및 (c) 상기 이벤트가 실시간성 이벤트인 경우, 실시간성 메시지를 생성하여 상기 분산 서버 중 하나로 전송하는 단계; (d) 실시간성이 요구되지 않는 이벤트에 관련된 메시지를 상기 게임 서버로 전송하는 단계를 포함하되, 상기 분산 서버는 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하여 상기 실시간성 메시지를 전송하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법이 제공된다.
본 발명의 다른 측면에 따르면, 상기한 방법을 수행하는 컴퓨터 판독 가능한 기록매체가 제공된다.
본 발명의 다른 측면에 따르면, 다수의 사용자 클라이언트들에 상응하는 플레이어 캐릭터에 대한 게임 진행을 제어하는 다중 접속 온라인 게임에서의 게임 시스템으로서, 상기 사용자 클라이언트로부터 전송되는 게임 관련 이벤트 메시지를 수신하여 미리 설정된 게임 로직에 따라 처리하는 게임 서버; 상기 플레이어 캐릭터의 상태 변화를 포함하는 상태 변화 정보를 상기 게임 서버로부터 수신하여 데이터베이스에 저장하는 데이터베이스 서버; 및 상기 사용자 클라이언트로부터 게임 관련 이벤트 메시지 중 실시간성 메시지를 수신하며, 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하고, 상기 결정된 다른 사용자의 클라이언트로 상기 실시간성 메시지를 전송하는 하나 이상의 분산 서버를 포함하는 것을 특징으로 하는 게임 시스템이 제공된다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 우선 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 이하에서, 본 발명에 따른 다중 접속 온라인 게임에서의 트래픽카 제어 방법 및 시스템에 관한 바람직한 실시예를 상세하게 설명한다.
본 발명은 다양한 종류의 다중 접속 온라인 게임에 적용될 수 있으나, 특히 플레이어 캐릭터가 빠른 속도로 이동하여 다수의 이동 메시지가 전송되는 다중 접속 온라인 롤플레잉 레이싱 게임에 적용될 때 그 효과가 극대화될 수 있다. 이하에서는 본 발명에 의한 시스템이 다중 접속 온라인 롤플레잉 레이싱 게임에 적용되는 경우를 예로 하여 설명한다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 다중 접속 온라인 롤플레잉 레이싱 게임뿐만 아니라 플레이어 캐릭터의 상태 정보가 교환되는 다양한 종류의 다중 접속 온라인 게임에 적용될 수 있을 것이다.
도 1은 본 발명의 바람직한 일 실시예에 따른 다중 접속 온라인 게임 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 의한 다중 접속 온라인 게임 시스템은 인증 서버(100), 게임 서버(102), 데이터베이스 서버(104) 및 다수의 실시간성 메시지 처리 서버(106)를 포함할 수 있다.
본 발명에 따른 다중 접속 온라인 게임 시스템은 네트워크를 통해 사용자 클 라이언트(108)와 연결된다.
여기서 네트워크는 인터넷, 전용선을 포함하는 유선 네트워크와 무선 인터넷, 이동 통신망 및 위성 통신망을 포함하는 무선 네트워크를 모두 포함할 수 있다.
사용자 클라이언트(108)는 네트워크에 연결되어 다중 접속 온라인 게임 서비스를 제공받을 수 있는 게임 어플리케이션(110)이 설치된 복수의 단말 장치로서, 데스크탑 PC, 노트북, 이동 전화기, PDA 및 MBS(Mobile Broadcast System)폰 등을 모두 포함할 수 있다.
도 1에서, 인증 서버(100)는 게임 시스템에 접속하려는 사용자가 게임 시스템에 접속할 수 있는 권한이 있는 사용자인지 여부를 인증하는 기능을 한다.
인증 서버(100)는 사용자 클라이언트(108)로부터 로그인 요청이 있는 경우, 로그인 정보의 인증을 수행한다. 여기서 로그인 정보는 사용자의 아이디 및 비밀번호 정보를 포함할 수 있으며, 인증 서버(100)는 로그인 정보에 포함된 아이디 및 비밀 번호가 유효한지 여부를 판단한다.
아이디 및 비밀 번호가 유효한지 여부를 판단하기 위해 인증 서버(100)는 데이터베이스 서버(104)와 통신을 할 수도 있으며, 인증 관련 정보를 저장하고 있는 다른 데이터베이스(미도시)와 통신을 할 수도 있다.
사용자 클라이언트(108)와 인증 서버(100) 사이의 인증은 아이디/비밀번호에 의한 인증뿐만 아니라 공지된 다양한 인증 방식들이 사용될 수 있을 것이다.
인증이 완료된 경우, 사용자 클라이언트(108)는 게임 서버(102)에 접속한다.
게임 서버(102)는 사용자 클라이언트(108)들로부터 전송되는 게임 메시지를 처리하고 게임 진행을 제어하는 기능을 한다. 게임 서버(102)는 플레이어 캐릭터의 공격 등과 같은 게임 커맨드 메시지, 사용자 클라이언트들간의 채팅 메시지, NPC(None Player Character)로부터의 퀘스트 수락 및 완료와 같은 퀘스트 메시지 및 플레이어 캐릭터의 레벨 업 및 아이템 획득과 같은 상태 정보 메시지 등 다양한 종류의 게임 관련 이벤트 메시지를 수신하며, 수신된 메시지를 미리 설정된 게임 로직에 따라 처리한다.
예를 들어, 사용자 클라이언트(108)로부터 플레이어의 레벨 업과 같은 상태 정보 메시지가 수신될 경우, 게임 서버(102)는 사용자의 레벨 업 정보를 데이터베이스 서버(104)에 전송하여 해당 사용자의 레벨 정보가 갱신되도록 하며, 사용자의 퀘스트 수락 및 완료와 같은 메시지를 수신하여 데이터베이스 서버(104)에 저장한다.
특히, 게임 서버(102)는 게임 중에 발생하는 다양한 이벤트(예를 들어, 플레이어 캐릭터의 상태 변경 등) 들을 다수의 사용자들이 공유할 수 있도록 특정 사용자에게 발생한 이벤트 관련 메시지를 다른 사용자의 클라이언트들에 제공하는 기능을 한다.
본 발명의 바람직한 실시예에 따르면, 캐릭터의 레벨 업과 같은 캐릭터 상태 정보, 퀘스트 정보와 같이 데이터베이스에 저장될 필요가 있으며 실시간으로 다른 사용자에게 제공될 필요가 높지 않은 정보는 게임 서버(102)에 의해 처리된다.
한편, 본 발명에 따른 레이싱 게임에서 게임 서버(102)는 NPC 또는 게임 상 에서의 방해 요소로 기능하는 트래픽카의 제어 기능을 수행할 수 있다.
복수의 실시간성 메시지 처리 서버(106)는 사용자 클라이언트(108)에서 전송되는 메시지 중 실시간성이 중시되는 메시지를 전담 처리한다.
레이싱 게임은 다른 게임과는 달리 플레이어 캐릭터의 이동 속도가 매우 빠르며, 충돌이 빈번하게 일어나기 때문에 각 플레이어 캐릭터의 이동 또는 충돌 메시지를 실시간으로 처리하는 것이 중요하다.
만일 이동 메시지와 같은 실시간성 메시지를 게임 서버(102)에서 처리하는 경우, 한 개의 플레이어 캐릭터에 대해 N개의 사용자 클라이언트들에 이벤트 메시지를 제공해야 하기 때문에 부하가 커질 수 있다.
이에, 게임 서버(102)와 별개로 실시간성 메시지 처리 서버(106)를 제공하여 플레이어 캐릭터의 이동 또는 충돌 메시지와 같은 실시간성 메시지를 수신하고, 다른 사용자 클라이언트에 전송할 수 있도록 한다.
바람직하게, 실시간성 메시지 처리 서버(106)는 단순히 실시간성 메시지를 수신 및 전송하는 것이 아니라, 이동 또는 충돌 메시지를 전송한 플레이어 캐릭터를 중심으로 소정 거리에 존재하는 플레이어 캐릭터를 판단하는 과정을 수행한다.
예를 들어, 제1 플레이어 캐릭터의 이동 메시지가 전송된 경우, 실시간성 메시지 처리 서버(106)는 각 플레이어 캐릭터의 위치 정보를 이용하여 이벤트가 발생한 제1 플레이어 캐릭터와 소정 거리 이내에 존재하는 다른 플레이어 캐릭터를 판단한 후, 해당 캐릭터의 사용자 클라이언트(108)에게만 선택적으로 제1 플레이어 캐릭터의 이동 정보를 전송하게 된다.
이에 따라 플레이어 캐릭터의 이동 정보를 무조건적으로 다른 사용자 클라이언트에 전송하는 것보다 시스템 부하가 한층 경감될 수 있다.
상기한 과정은 단지 이동 메시지뿐만 아니라 동일 공간에 존재하는 다른 사용자에게 보내는 채팅 메시지 등에 대해서도 동일하게 적용될 수 있을 것이다.
한편, 본 발명에 따른 실시간성 메시지 처리 서버(106)는 게임 공간을 일정하게 분할한 영역을 전담하는 서버일 수 있으며, 분할되는 영역의 개수만큼이 제공될 수 있다.
이러한 경우, 사용자 클라이언트(108)에 설치된 게임 어플리케이션(110)은 사용자의 플레이어 캐릭터가 속하는 영역을 담당하는 실시간성 메시지 처리 서버(106)로 실시간성 메시지를 전송할 수 있다.
데이터베이스 서버(104)는 게임과 관련된 정보를 저장하고, 저장된 정보를 게임 서버(102) 또는 사용자 클라이언트의 요청에 응답하여 제공하는 기능을 한다.
데이터베이스 서버(104)는 플레이어 캐릭터의 상태 정보, 아이템 정보, 퀘스트 정보 등을 저장할 수 있으며, 게임 서버(102)로부터 캐릭터 상태, 아이템, 퀘스트 등과 관련한 갱신 정보를 수신할 경우 해당 정보를 갱신한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 게임 서버의 모듈 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 게임 서버는 복수의 플레이어 오브젝트(200), 채널 관리부(202), 게임 로직 제어부(204), 메시지 제어부(206), 온라인 플레이어 캐릭터 정보 관리부(208), NPC 관리부(210), 퀘스트 관리부(212), 아이템 관리부(214) 캐릭터 관리부(216) 및 길드 관리부(218)를 포함할 수 있다.
플레이어 오브젝트(200)는 게임 서버에 접속한 사용자 클라이언트(108)들과의 메시지 송수신을 제어하는 기능을 한다. 플레이어 오브젝트(200)는 게임 서버(102)에 사용자 클라이언트가 접속할 때 해당 사용자 클라이언트의 접속에 상응하여 생성되며, 사용자 클라이언트의 접속이 끊어진 경우 소멸된다.
채널 관리부(202)는 레이싱 게임에서 다양하게 존재할 수 있는 게임 영역을 관리한다. 여기서 게임 영역은 퀘스트 수행 영역, 경주 영역 및 상점 영역과 같이 게임 상에서 서로 구분될 수 영역을 의미한다.
게임 로직 제어부(204)는 게임상에서 플레이어 캐릭터의 퀘스트 완료 여부, 경주 우승자 결정과 같이 게임 진행에 필요한 제어 과정을 수행한다.
또한, 게임 로직 제어부(204)는 게임 상에 존재하는 트래픽카의 제어 과정을 수행할 수 있다.
트래픽카의 제어에 있어서, 게임 로직 제어부(204)는 트래픽카의 감속 또는 가속을 위한 이동 정보 계산, 병목 지점에서의 처리, 트래픽카의 차선 변경을 위한 제어 과정을 수행할 수 있다.
상기한 플레이어 오브젝트(200)는 사용자 클라이언트(108)로부터 전송되는 게임 관련 메시지를 메시지 제어부(206)에 제공하며, 메시지 제어부(206)로부터 제공되는 게임 서버의 게임 관련 메시지를 해당 사용자 클라이언트에 전송한다.
메시지 제어부(206)는 사용자 클라이언트로부터 전송된 게임 관련 메시지들을 플레이어 오브젝트(200)로부터 수신하며, 수신된 메시지를 이를 처리할 구성 요 소에 분배하는 기능을 한다. 예를 들어, 특정 플레이어 캐릭터의 착용 아이템 변경 메시지가 수신될 경우, 메시지 제어부(206)는 수신된 착용 아이템 변경 메시지를 아이템 관리부(214) 및 캐릭터 관리부(216)에 제공한다. 또한, 메시지 제어부(206)는 수신된 메시지가 특정 사용자의 퀘스트 수락 메시지일 경우, 퀘스트 수락 메시지를 퀘스트 관리부(212)에 전송한다.
또한, 메시지 제어부(206)는 접속한 특정 사용자 클라이언트에 메시지를 전송하고자 할 경우, 해당 메시지를 해당 사용자 클라이언트와 연관된 플레이어 오브젝트에 제공한다. 예를 들어, 특정 사용자로의 채팅 메시지를 메시지 제어부(206)가 수신한 경우, 메시지 제어부(206)는 채팅 메시지의 수신자에 상응하는 사용자와 연관된 플레이어 오브젝트에 채팅 메시지를 전송하여 채팅 메시지가 해당 사용자의 클라이언트에 전송되도록 한다.
온라인 플레이어 캐릭터 정보 관리부(208)는 게임 서버에 접속한 온라인 사용자의 캐릭터 정보를 관리한다.
플레이어 캐릭터 정보는 온라인 상에 존재하는 플레이어 캐릭터 식별자, 위치, 레벨, 아이템과 같은 캐릭터의 상태 정보를 포함할 수 있다.
온라인 플레이어 캐릭터 정보 관리부(208)의 정보는 메시지 제어부(206)에서 메시지를 전송할 수신자를 판단할 때 사용된다. 예를 들어, 특정 사용자의 캐릭터 착용 아이템을 변경할 경우, 착용 아이템 변경 정보를 주변의 사용자에게 제공할 필요가 있다. 이때, 메시지 제어부(206)는 온라인 플레이어 캐릭터 정보 관리부(208)에서 관리되는 정보를 이용하여 착용 아이템을 변경한 플레이어 캐릭터의 주변에 있는 플레이어 캐릭터들을 추출하고 해당 플레이어 캐릭터들에 상응하는 플레이어 오브젝트에 착용 아이템 변경 메시지를 제공한다.
메시지 제어부(206)는 특정 플레이어 캐릭터의 상태 변경 메시지(예를 들어, 이동 메시지, 착용 아이템 변경 메시지, 충돌 메시지 등을 포함함)를 수신할 경우, 상태 변경 정보가 온라인 플레이어 캐릭터 정보 관리부(208)에 제공하여 온라인 상태인 플레이어 캐릭터의 상태 정보가 관리되도록 한다.
NPC(Non Player Character) 관리부(210)는 게임상에 등장하는 NPC 정보를 관리하는 기능을 한다. 예를 들어, 레이싱 게임의 경우, NPC 관리부(210)는 퀘스트를 제공하는 NPC 정보, 게임상에 등장하는 트래픽 카에 대한 정보를 관리한다.
퀘스트 관리부(212)는 다중 접속 온라인 게임에서 사용자들에게 제공되는 퀘스트에 대한 정보 및 퀘스트 수락 및 퀘스트 완료 여부에 대한 정보를 관리한다.
특정 사용자가 특정 퀘스트를 수락할 경우, 퀘스트 수락 메시지는 메시지 제어부(206)에 제공되며, 메시지 제어부(206)는 퀘스트 수락 메시지를 퀘스트 관리부(212)에 제공한다. 퀘스트 관리부(212)는 퀘스트 수락 정보를 데이터베이스 서버(104)에 전송하여 퀘스트 수락 정보가 반영되도록 한다. 퀘스트 완료 메시지의 경우에도, 상술한 퀘스트 수락 메시지와 동일하게 퀘스트 관리부(212)에 의해 데이터베이스 서버(104)에 반영될 수 있다.
아이템 관리부(214)는 게임 중에 제공되는 아이템에 대한 정보 및 플레이어 캐릭터의 아이템 변경 정보(아이템의 획득, 아이템 드랍 등을 포함함)를 관리한다. 특정 플레이어 캐릭터가 아이템을 획득할 경우, 아이템 획득 메시지가 메시지 제어 부(206)에 제공하며, 메시지 제어부(206)는 아이템 관리부(214)에 아이템 획득 메시지를 제공한다. 아이템 관리부(214)는 아이템 획득 정보를 데이터베이스 서버(104)에 전송하여 아이템 획득 정보가 반영되도록 한다.
캐릭터 관리부(216)는 사용자들이 생성한 플레이어 캐릭터들의 정보를 관리하며, 캐릭터에 대한 상태 변경 메시지(캐릭터 레벨 업, 아이템 획득 정보 등을 포함함)를 수신하여 데이터베이스 서버(104)에 제공하는 기능을 한다.
길드 관리부(218) 다중 접속 온라인 게임 사용자들이 형성하는 길드 정보를 관리한다. 길드 관리부(218)는 길드 구성원의 가입/탈퇴 메시지 및 길드 구성원의 레벨 변경 메시지와 같은 길드 관련 메시지를 수신하며, 수신된 메시지에 포함된 길드 관련 정보를 데이터베이스 서버(104)에 제공한다. 또한, 길드 관리부(218)는 길드 구성원 상태, 길드 구성원 명단과 같은 길드 관련 요청 정보가 있을 경우, 데이터베이스 서버(104)와의 통신을 통해 길드 정보를 제공한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 실시간성 메시지 처리 서버의 상세 구성을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 실시간성 메시지 처리 서버는 플레이어 오브젝트(300), 게임 로직 제어부(302), 메시지 제어부(304), 온라인 플레이어 캐릭터 정보 관리부(306) 및 전송 대상 결정부(308)를 포함할 수 있다.
전술한 바와 같이, 실시간성 메시지 처리 서버(106)는 게임 서버(102)의 역할을 분담하기 위한 서버로서 이동 메시지, 충돌 메시지 및 실시간성 채팅 메시지와 같이 즉시 전송될 필요성이 높은 메시지를 처리한다.
따라서, 실시간성 메시지 처리 서버는 게임 서버의 구성 요소 중 일부의 구성 요소를 포함하되 데이터베이스 서버와 통신이 필요한 퀘스트 관리부, 아이템 관리부, 캐릭터 관리부 및 길드 관리부 등을 포함하고 있지 않다.
플레이어 오브젝트(300), 메시지 제어부(304), 게임 로직 제어부(302) 및 온라인 플레이어 캐릭터 정보 관리부(306)의 기능은 게임 서버의 구성 요소와 동일하므로 이에 대한 상세한 설명은 생략한다.
본 발명의 바람직한 일 실시예에 따르면, 레이싱 게임 중 각 플레이어 캐릭터에 대해 다양한 이벤트(이동 이벤트, 충돌 이벤트, 채팅 메시지 발생 이벤트)가 발생하는 경우, 게임 어플리케이션은 소정 이벤트가 실시간성 이벤트인지 여부를 판단한 후 실시간성이 중요시 되는 경우, 실시간성 메시지를 생성하여 실시간성 메시지 처리 서버(106)로 전송한다.
여기서, 실시간성 메시지에는 이를 전송하는 플레이어 캐릭터 식별자, 이벤트 내용 정보 등이 포함될 수 있다.
본 발명에 따르면, 전송 대상 결정부(308)는 상기한 실시간성 메시지가 수신되는 경우, 온라인 플레이어 캐릭터 정보 관리부(306)로부터 온라인 상에 있는 플레이어 캐릭터 들의 위치 정보 등을 참조하여 메시지를 전송한 플레이어 캐릭터와 소정 거리 내에 존재하는 하나 이상의 플레이어 캐릭터를 판단한다.
이때, 실시간성 메시지 처리 서버(106)가 온라인 플레이어 캐릭터 정보 관리부(306)를 자체적으로 포함할 수 있으나, 이와 달리 전송 대상을 결정하는 경우에만 게임 서버(102)에 포함되는 온라인 플레이어 캐릭터 정보 관리부(208)로부터 각 플레이어 캐릭터의 위치 정보 등을 수신할 수도 있을 것이다.
상기한 바와 같이, 전송 대상은 이벤트가 발생한 플레이어 캐릭터와 소정 거리 내에 존재하는지 여부를 통해 판단될 수 있으며, 예를 들어, 이벤트 발생 플레이어 캐릭터를 중심으로 100 x 100 영역에 존재하는 플레이어 캐릭터가 전송 대상으로 결정될 수 있다.
메시지 제어부(304)는 전송 대상으로 결정된 플레이어 캐릭터에 상응하는 플레이어 오브젝트(300)로 실시간성 메시지를 전송하며, 플레이어 오브젝트(300)는 이에 연관된 사용자 클라이언트(108)로 특정 플레이어 캐릭터에 대한 실시간성 메시지를 전송한다.
한편, 도 4는 본 발명에 따른 플레이어 오브젝트(300)의 상세 구성을 도시한 도면이다.
도 4에 도시된 바와 같이, 플레이어 오브젝트(300)는 버퍼링부(400), 타이머부(402) 및 최신 메시지 모니터링부(404)를 포함할 수 있다. 여기서, 플레이어 오브젝트(300) 및 플레이어 오브젝트(300)가 포함하는 각 구성부는 프로그램으로 구현되거나, 서버의 메모리상에서 구동되는 프로세서로 구현될 수 있음은 본 발명의 기술적 사상에 비추어 당업자에게 자명하다.
버퍼링부(400)는 메시지 제어부(304)에서 전송되는 메시지를 버퍼링한다.
버퍼링된 메시지는 플레이어 오브젝트(300)에 연관된 사용자 클라이언트(108)로 전송된다.
전술한 바와 같이, 레이싱 게임에서는 실시간으로 전송되어야 하는 메시지가 빈번하게 발생하기 때문에, 버퍼링된 메시지가 네트워크 환경 등으로 인해 실시간으로 전송되지 못하는 경우에는 이를 폐기하는 것이 바람직하다.
이를 위해, 본 발명에 따른 타이머부(402)는 소정 시간의 경과 여부를 체크 하며, 미리 설정된 시간이 경과한 경우, 버퍼링부(400)에 임시 저장된 메시지를 폐기할 수 있도록 한다.
한편, 최신 메시지 모니터링부(404)는 특정 플레이어 캐릭터에 관한 가장 최근의 실시간성 메시지만이 사용자 클라이언트(108)로 전송될 수 있도록 한다.
본 발명에 따르면, 버퍼링부(400)에는 특정 플레이어 캐릭터에 관한 이동 메시지가 계속적으로 버퍼링될 수 있다. 최신 메시지 모니터링부(404)는 만일 특정 플레이어 캐릭터에 관한 이동 메시지의 전송 시점에 버퍼링부(400)에 해당 플레이어 캐릭터의 이전 이동 메시지가 존재하는지 여부를 모니터링하며, 이전 이동 메시지가 존재하는 경우에는 이를 최신 이동 메시지의 덮어쓰기(overwrite) 되도록 한다.
상기와 같이, 플레이어 오브젝트(300)는 실시간성 메시지가 최신성을 유지할 수 있도록 하기 때문에 사용자는 최신 실시간성 메시지를 통해 레이싱 게임에서 다른 플레이어 캐릭터의 움직임을 정확하게 파악할 수 있다.
도 5는 본 발명의 바람직한 일 실시예에 따른 사용자 클라이언트에 설치되는 게임 어플리케이션의 모듈 구성을 도시한 블록도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 게임 어플리케이션은 커맨드 해석부(500), 게임 로직 처리부(502), 서버 통신부(504), 시뮬레이션부(506), 게임 데이터 추출부(508) 및 이벤트 판단부(510)를 포함할 수 있다.
커맨드 해석부(500)는 사용자가 입력하는 게임 커맨드 정보를 수신하고 게임 커맨드를 해석하여 해석된 정보를 게임 로직 처리부(502)에 제공한다. 예를 들어, 게임 커맨드 해석부(500)는 사용자가 입력한 게임 커맨드가 퀘스트 수락 커맨드인지 또는 이동 커맨드인지 여부 등을 해석하고 해석된 정보를 게임 로직 처리부(502)에 제공한다.
게임 로직 처리부(502)는 사용자의 게임 커맨드 입력에 상응하여 미리 설정된 게임 로직을 실행하는 기능을 한다. 게임 환경 설정 커맨드와 같이 서버로 전송할 필요가 없는 커맨드일 경우 게임 로직 처리부(502)는 클라이언트 내부에서 게임 환경 설정 프로세스를 수행한다. 플레이어 캐릭터의 이동 메시지와 같이 서버로 전송할 필요가 있는 커맨드일 경우, 게임 로직 처리부(502)는 이동 커맨드에 상응하는 이동 메시지를 생성하여 서버 통신부(504)에 제공한다.
서버 통신부(504)는 게임 로직 처리부(502)에서 생성되는 게임 메시지를 게임 서버(102) 또는 실시간성 메시지 처리 서버(106)에 전송하며, 게임 서버 또는 실시간성 메시지 처리 서버에서 전송되는 게임 메시지를 게임 로직 처리부(502)에 제공하는 기능을 한다.
본 발명에 따르면, 서버 통신부(504)는 게임 서버(102)와 복수의 실시간성 메시지 처리 서버(106)와 모두 커넥션을 유지하면서, 이벤트의 종류에 따라(실시간성 또는 비실시간성 이벤트인지 여부에 따라) 이들 중 하나의 서버로 메시지를 전송하게 된다.
시뮬레이션부(506)는 사용자의 플레이어 캐릭터 및 다른 사용자의 플레이어 캐릭터에 관한 시뮬레이션을 수행하며, 트래픽카에 관한 이동 정보가 수신된 경우, 이동 정보에 따라 트래픽카에 대한 시뮬레이션을 수행한다.
게임 데이터 추출부(508)는 게임 실행을 위해 필요한 게임 데이터를 추출하는 기능을 한다. 예를 들어, 게임 로직 처리부(502)의 제어에 따라 게임 데이터 추출부(508)는 맵 데이터, 캐릭터 정보 데이터 등을 추출한다.
이벤트 판단부(510)는 사용자의 커맨드에 따른 이벤트가 실시간성 이벤트인지 또는 비실시간성 이벤트인지 여부를 판단한다.
본 발명에 따르면, 실시간성 이벤트의 종류는 미리 설정되어 있을 수 있으며, 이벤트 판단부(510)는 사용자에 의한 이벤트가 상기와 같이 설정된 이벤트에 포함되는지 여부를 판단할 수 있다.
이벤트가 실시간성 이벤트인 경우, 게임 로직 처리부(502)는 플레이어 캐릭터 식별자, 이벤트 내용 및 실시간성 이벤트 식별자를 포함하는 실시간성 메시지를 생성하며, 서버 통신부(504)는 이를 실시간성 메시지 처리 서버(106)로 전송한다.
이때, 실시간성 메시지 처리 서버(106)는 복수 개로 구성될 수 있기 때문에 서버 통신부(504)는 현재 부하가 적은 서버(106)를 검색하여 해당 서버로 실시간성 메시지를 전송할 수 있다.
반면에 사용자의 플레이어 캐릭터가 속하는 영역을 담당하는 실시간성 메시지 처리 서버(106)로 실시간성 메시지를 전송할 수 있다.
도 6은 본 발명의 바람직한 일 실시예에 따른 채널 입장 처리 과정의 순서도이다.
도 6을 참조하면, 사용자 클라이언트(108)는 게임 서버(102)로 로그인 정보를 전송한다(단계 600).
여기서 로그인 정보는 사용자 인증을 위한 아이디 및 패스워드를 포함할 수 있으며, 게임 서버(102)는 인증 서버(100)와 연동하여 사용자를 인증한 후 로그인 응답 정보를 사용자 클라이언트(108)로 전송한다(단계 602).
로그인 처리가 완료된 후 게임 서버(102)는 데이터베이스 서버(104)에 사용자 정보를 조회하며(단계 604), 데이터베이스 서버(104)는 요청된 사용자 정보를 게임 서버(102)로 전송한다(단계 606).
여기서 사용자 정보는 플레이어 캐릭터 정보, 퀘스트 관련 정보, 아이템 정보 및 길드 정보 등을 포함할 수 있다.
사용자 정보는 게임 서버(102)의 온라인 플레이어 캐릭터 정보 관리부(208)에 의해 관리된다(단계 608).
이후, 사용자 클라이언트(108)와 게임 서버(102)는 사용자의 조작에 따른 게임 패킷의 송수신을 중개한다(단계 610).
게임 서버(102)는 사용자 클라이언트(108)로 전송된 게임 패킷을 통해 게임 로직에 따른 제어를 수행한다(단계 612). 여기서 게임 제어는 게임 패킷의 다른 플레이어로의 전송, 이동 또는 충돌 메시지에 따른 시뮬레이션 정보 및 트래픽카에 관한 이동 정보의 전송 등을 포함할 수 있다.
도 7은 본 발명의 바람직한 일 실시예에 따른 실시간성 메시지 처리 과정의 순서도이다.
도 7을 참조하면, 사용자 클라이언트(108)에 설치된 게임 어플리케이션(110)은 사용자 조작에 따라 이벤트가 발생하는 경우(단계 700), 해당 이벤트가 실시간 성 이벤트인지 여부를 판단한다(단계 702).
실시간성 이벤트가 아닌 경우에 해당 이벤트에 상응하는 메시지는 게임 서버(102)로 전송되며(단계 704), 실시간성 이벤트인 경우, 게임 어플리케이션(110)은 실시간성 메시지를 생성한다(단계 706).
생성된 실시간성 메시지는 실시간성 메시지 처리 서버(106)로 전송된다(단계 708).
실시간성 메시지 처리 서버(106)는 다시 한번 전송된 메시지가 실시간성 메시지인지 여부를 판단한다(단계 710).
이는 전송된 메시지가 실시간성 메시지 처리 서버(106)가 전담하는 메시지인지를 판단하는 것으로서, 이러한 과정은 경우에 따라 생략될 수 있다.
실시간성 메시지임이 확인된 경우, 실시간성 메시지 처리 서버(106)는 온라인 상에 존재하는 플레이어 캐릭터 정보를 조회한다(단계 712).
바람직하게는 동일 채널 또는 월드에 존재하는 각 플레이어 캐릭터의 위치 정보를 조회할 수도 있다.
이후, 실시간성 메시지 처리 서버(106)는 실시간성 메시지를 전송한 플레이어 캐릭터를 기준으로 조회된 플레이어 캐릭터와의 거리를 판단하며(단계 714), 이를 통해 전송 대상을 결정한다(단계 716).
전술한 바와 같이, 전송 대상은 메시지를 전송한 플레이어 캐릭터와 다른 플레이어 캐릭터의 위치 정보를 참조하여 다른 플레이어 캐릭터 중 소정 영역 내에 존재하는 플레이어 캐릭터로 결정될 수 있다.
실시간성 메시지 처리 서버(106)는 전송 대상이 되는 사용자의 클라이언트로 제1 플레이어의 실시간성 메시지를 전송한다(단계 718).
제2 사용자 클라이언트에 설치된 게임 어플리케이션(110)은 실시간성 메시지가 이동 메시지인 경우, 제1 플레이어 캐릭터에 관한 시뮬레이션 과정을 수행하여 화면에 출력한다(단계 720).
도 8은 본 발명의 바람직한 일 실시예에 따른 이동 메시지 전송 과정의 순서도이다.
도 8은 본 발명에 따른 실시간성 메시지 처리 서버(106)에 포함된 플레이어 오브젝트에서 실시간성 메시지 중 다른 플레이어 캐릭터의 이동 메시지를 전송하는 과정을 도시한 것이다.
도 8을 참조하면, 플레이어 오브젝트의 버퍼링부(400)는 메시지 제어부(304)로부터 전송되는 특정 플레이어 캐릭터에 관한 이동 메시지를 버퍼링한다(단계 800).
버퍼링 후, 타이머부(402)는 미리 설정된 시간이 경과하였는지 여부를 판단하며(단계 802), 미리 설정된 시간이 경과하는 경우, 전송되지 못한 이동 메시지를 폐기한다(단계 804).
이동 메시지의 폐기는 네트워크 사정으로 인해 실시간성이 중시되는 메시지가 전송되지 못하는 경우에 이루어질 수 있다.
한편, 미리 설정된 시간이 경과하기 전에 상기한 플레이어 캐릭터에 관한 다음 이동 메시지가 수신되는 경우(단계 806), 최신 메시지 모니터링(404)는 이전 이 동 메시지가 존재하는 경우에 다음 이동 메시지를 덮어쓰는 과정을 수행한다(S808).
이와 같이, 덮어쓰기된 다음 이동 메시지는 최신 이동 메시지로써 사용자 클라이언트(108)에 전송된다(단계 810).
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 따르면, 다중 접속 온라인 게임에서 실시간성이 중시되는 메시지를 분산 서버에서 처리함으로써 서버의 부하를 경감시킬 수 있는 장점이 있다.
또한 본 발명에 따르면 실시간성 메시지의 경우, 온라인 상에 존재하는 플레이어 중 일부 플레이어에게만 선택적으로 메시지를 전송할 수 있어 서버의 전송 부하를 줄일 수 있는 장점이 있다.
또한 본 발명에 따르면, 사용자 측에서 실시간성 이벤트를 판단하여 실시간성 메시지를 게임 서버와 별개의 서버로 전송하기 때문에 게임 서버의 부하를 감소시킬 수 있는 장점이 있다.

Claims (16)

  1. 하나 이상의 사용자 클라이언트가 접속하는 다중 접속 온라인 게임의 진행을 제어하는 게임 서버와 독립적으로 제공되는 하나 이상의 분산 서버에서 수행되는 방법으로서,
    (a) 상기 사용자 클라이언트로부터 게임 관련 이벤트 메시지 중 실시간성 메시지를 수신하는 단계;
    (b) 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하는 단계; 및
    (c) 상기 결정된 다른 사용자의 클라이언트로 상기 실시간성 메시지를 전송하는 단계를 포함하되,
    상기 사용자 클라이언트에 설치된 게임 어플리케이션은 게임 관련 이벤트가 미리 설정된 실시간성 이벤트인 경우에 상기 실시간성 메시지를 상기 분산 서버로 전송하며, 실시간성이 요구되지 않는 이벤트에 관련된 메시지를 상기 게임 서버로 전송하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  2. 제1항에 있어서,
    상기 실시간성 메시지는 상기 다른 사용자의 클라이언트로 즉시 전송될 필요가 있는 메시지인 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  3. 제2항에 있어서,
    상기 게임이 다중 접속 온라인 레이싱 게임인 경우, 상기 실시간성 메시지는 플레이어 캐릭터의 이동 메시지, 충돌 메시지 및 근접 위치한 사용자에 대한 채팅 메시지 중 적어도 하나를 포함하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  4. 제1항에 있어서,
    상기 (b) 단계는,
    (b1) 상기 실시간성 메시지를 전송한 사용자 클라이언트에 상응하는 제1 플레이어 캐릭터와 다른 플레이어 캐릭터에 대한 게임 상에서의 위치 정보를 확인하는 단계; 및
    (b2) 상기 위치 정보를 이용하여 상기 제1 플레이어 캐릭터와 미리 설정된 거리 이내에 존재하는 다른 플레이어 캐릭터를 판단하는 단계를 포함하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  5. 제1항에 있어서,
    상기 (c) 단계에 선행하여 상기 실시간성 메시지를 버퍼링하는 단계;
    상기 버퍼링 후 미리 설정된 시간이 경과했는지 여부를 판단하는 단계; 및
    상기 미리 설정된 시간이 경과하는 경우, 상기 버퍼링된 실시간성 메시지를 폐기하는 단계를 더 포함하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  6. 제5항에 있어서,
    상기 (c) 단계에 선행하여 상기 실시간성 메시지를 버퍼링하는 단계; 및
    상기 실시간성 메시지를 전송한 사용자 클라이언트로부터 다음 실시간성 메시지가 수신되는 경우, 상기 다음 실시간성 메시지를 상기 버퍼링된 실시간성 메시지에 덮어쓰기 하는 단계를 더 포함하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  7. 제1항에 있어서,
    하나 이상의 분산 서버는 게임 공간을 분할한 영역에 상응하여 제공되는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  8. 제7항에 있어서,
    상기 게임 어플리케이션은 상기 실시간성 메시지를 전송하는 사용자의 플레이어 캐릭터가 속하는 영역을 담당하는 분산 서버로 상기 실시간성 메시지를 전송하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  9. 다수의 사용자 클라이언트들이 네트워크를 통해 게임 서버 및 하나 이상의 분산 서버에 접속하여 게임을 플레이하는 다중 접속 온라인 게임에서 실시간성 메 시지의 처리를 위해 상기 사용자 클라이언트에 설치되는 게임 어플리케이션에서 실행되는 방법으로서,
    (a) 사용자가 입력하는 게임 커맨드 정보를 수신하는 단계;
    (b) 상기 수신된 커맨드에 의한 이벤트가 실시간성 이벤트인지 여부를 판단하는 단계;
    (c) 상기 이벤트가 실시간성 이벤트인 경우, 실시간성 메시지를 생성하여 상기 분산 서버 중 하나로 전송하는 단계; 및
    (d) 실시간성이 요구되지 않는 이벤트에 관련된 메시지를 상기 게임 서버로 전송하는 단계를 포함하되,
    상기 분산 서버는 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하여 상기 실시간성 메시지를 전송하는 것을 특징으로 하는 분산 서버를 이용한 게임 제어 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  11. 다수의 사용자 클라이언트들에 상응하는 플레이어 캐릭터에 대한 게임 진행을 제어하는 다중 접속 온라인 게임에서의 게임 시스템으로서,
    상기 사용자 클라이언트로부터 전송되는 게임 관련 이벤트 메시지를 수신하여 미리 설정된 게임 로직에 따라 처리하는 게임 서버;
    상기 플레이어 캐릭터의 상태 변화를 포함하는 상태 변화 정보를 상기 게임 서버로부터 수신하여 데이터베이스에 저장하는 데이터베이스 서버; 및
    상기 사용자 클라이언트로부터 게임 관련 이벤트 메시지 중 실시간성 메시지를 수신하며, 상기 실시간성 메시지를 수신할 다른 사용자 클라이언트를 결정하고, 상기 결정된 다른 사용자의 클라이언트로 상기 실시간성 메시지를 전송하는 하나 이상의 분산 서버를 포함하는 것을 특징으로 하는 게임 시스템.
  12. 제11항에 있어서,
    상기 사용자 클라이언트에 설치된 게임 어플리케이션은 게임 관련 이벤트가 미리 설정된 실시간성 이벤트인 경우에 상기 실시간성 메시지를 상기 분산 서버로 전송하는 것을 특징으로 하는 게임 시스템.
  13. 제11항에 있어서,
    상기 게임이 다중 접속 온라인 레이싱 게임인 경우, 상기 실시간성 메시지는 상기 플레이어 캐릭터의 이동 메시지, 충돌 메시지 및 근접 위치한 사용자에 대한 채팅 메시지 중 적어도 하나를 포함하는 것을 특징으로 하는 게임 시스템.
  14. 제11항에 있어서,
    상기 분산 서버는,
    접속한 사용자 클라이언트별로, 상기 분산서버의 메모리상에서 생성/소멸되고 상기 접속한 사용자 클라이언트와의 상기 실시간성 메시지 송수신을 수행하는 플레이어 프로세서;
    상기 실시간성 메시지를 전송할 다른 사용자 클라이언트를 결정하는 전송 대상 결정부; 및
    상기 전송 대상 결정을 위한 온라인 상에 존재하는 플레이어 캐릭터의 위치 정보를 관리하는 온라인 플레이어 캐릭터 정보 관리부를 포함하는 것을 특징으로 하는 게임 시스템.
  15. 제14항에 있어서,
    상기 전송 대상 결정부는 상기 위치 정보를 이용하여 상기 실시간성 메시지를 전송한 사용자 클라이언트에 상응하는 플레이어 캐릭터와 미리 설정된 거리 이내에 존재하는 다른 플레이어 캐릭터를 판단하는 것을 특징으로 하는 게임 시스템.
  16. 제14항에 있어서,
    상기 플레이어 프로세서는 다른 사용자 클라이언트에 전송할 상기 실시간성 메시지를 버퍼링하며, 상기 실시간성 메시지를 전송한 사용자 클라이언트로부터 다음 실시간성 메시지가 수신되는 경우, 상기 다음 실시간성 메시지를 상기 버퍼링된 실시간성 메시지에 덮어쓰는 것을 특징으로 하는 게임 시스템.
KR1020060089753A 2006-09-15 2006-09-15 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템 KR100883907B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060089753A KR100883907B1 (ko) 2006-09-15 2006-09-15 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템
US11/853,525 US9555329B2 (en) 2006-09-15 2007-09-11 Multi-access online game system and method for controlling game for use in the multi-access online game system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060089753A KR100883907B1 (ko) 2006-09-15 2006-09-15 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20080025230A KR20080025230A (ko) 2008-03-20
KR100883907B1 true KR100883907B1 (ko) 2009-02-17

Family

ID=39189309

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060089753A KR100883907B1 (ko) 2006-09-15 2006-09-15 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템

Country Status (2)

Country Link
US (1) US9555329B2 (ko)
KR (1) KR100883907B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306825A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for facilitating user interaction with a simulated object associated with a physical location
KR101280924B1 (ko) * 2011-12-21 2013-07-22 엔에이치엔(주) 도전 상대 연결을 통한 게임 제공 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US9233304B2 (en) 2012-03-22 2016-01-12 Empire Technology Development Llc Load balancing for game
US20130297460A1 (en) 2012-05-01 2013-11-07 Zambala Lllp System and method for facilitating transactions of a physical product or real life service via an augmented reality environment
US20150005073A1 (en) * 2013-06-28 2015-01-01 International Business Machines Corporation Providing situational priority to player communications in a multi-player environment
KR101616085B1 (ko) * 2014-05-29 2016-04-29 계명대학교 산학협력단 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법
CN106178500B (zh) * 2016-08-30 2019-11-05 竞技世界(北京)网络技术有限公司 一种基于局域网的棋牌类游戏旁观系统和转播方法
CN108525293B (zh) * 2018-02-08 2020-07-07 腾讯科技(深圳)有限公司 一种信息处理方法、装置及存储介质
CN110876852B (zh) * 2018-09-06 2023-09-26 深圳市贰陆陆科技有限公司 微服务的网络游戏数据处理方法及系统
US11090567B2 (en) * 2018-09-11 2021-08-17 Activision Publishing, Inc. Individualized game data augmented displays
CN113342402B (zh) * 2021-08-05 2021-11-12 北京蔚领时代科技有限公司 一种多人协作游戏编辑方法、系统及装置
KR20230023207A (ko) 2021-08-10 2023-02-17 박주형 단순 게임 서비스를 실시간으로 다수의 서버에 동시 제공하는 방법 및 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08256167A (ja) * 1995-03-17 1996-10-01 Nippon Telegr & Teleph Corp <Ntt> グループ通信方式および方法
JPH11345060A (ja) 1998-06-02 1999-12-14 Dainippon Printing Co Ltd 仮想空間共有システム
KR20030010409A (ko) * 2001-07-27 2003-02-05 주식회사 트리플다이스 멀티 플레이어 온라인 게임시스템

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6015348A (en) * 1996-10-18 2000-01-18 Starwave Corporation Scalable game server architecture
US20030177187A1 (en) * 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
WO2005079938A2 (en) * 2004-01-27 2005-09-01 Opentv, Inc. Facilitating network-based multiplayer games
KR100469826B1 (ko) * 2004-02-05 2005-02-03 엔에이치엔(주) 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템
CN100492382C (zh) * 2005-04-12 2009-05-27 国际商业机器公司 基于服务器/客户机的无缝游戏世界系统及其方法
KR100742357B1 (ko) * 2005-11-18 2007-07-24 한국전자통신연구원 지능형 분산 서버 시스템 및 이의 운용방법
US8874780B2 (en) * 2006-07-17 2014-10-28 Qualcomm Incorporated Data buffering and notification system and methods thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08256167A (ja) * 1995-03-17 1996-10-01 Nippon Telegr & Teleph Corp <Ntt> グループ通信方式および方法
JPH11345060A (ja) 1998-06-02 1999-12-14 Dainippon Printing Co Ltd 仮想空間共有システム
KR20030010409A (ko) * 2001-07-27 2003-02-05 주식회사 트리플다이스 멀티 플레이어 온라인 게임시스템

Also Published As

Publication number Publication date
US9555329B2 (en) 2017-01-31
US20080070696A1 (en) 2008-03-20
KR20080025230A (ko) 2008-03-20

Similar Documents

Publication Publication Date Title
KR100883907B1 (ko) 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템
EP1541209A1 (en) Spatial position sharing system, data sharing system, network game system, and network game client
CN105705211B (zh) 游戏系统、游戏控制方法和游戏控制程序
KR100598481B1 (ko) 동적 대역폭 제어
US7934996B2 (en) Online video game control server and a method of controlling an online video game
US8949336B2 (en) Network game system and program
US9220982B2 (en) Cross-realm zones for interactive gameplay
CN101283329A (zh) 用于提供在线大厅的系统和方法
US20090325712A1 (en) Player character matchmaking with distributed peer-to-peer functionality
US20040116186A1 (en) Distance based distributed online game server system
US20050086301A1 (en) Systems and methods for facilitating multi-user interaction over a network
KR100821722B1 (ko) 다중 접속 온라인 게임에서 p2p 메시지 전송 시스템 방법
EP1323457A2 (en) Network game system, game server system, client system, network game processing method, and recording medium
KR20060122236A (ko) 온라인 게임에서 퀘스트 대리 수행 방법 및 시스템
KR100829810B1 (ko) 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템
JP2024028661A (ja) ゲームプログラム、およびゲームシステム
EP1206955A2 (en) Information terminal, information providing server, online game method and recording medium
US9545577B2 (en) Method and system for renewing screen using mechanics information
KR20130098741A (ko) 가상객체 정보교류 장치 및 방법과 이를 이용한 혼합형 서비스 제공 시스템
US20100093439A1 (en) Interactive network game and methods thereof
JP3998466B2 (ja) ネットワークゲームシステムおよびネットワークゲーム処理方法
KR100733138B1 (ko) 논플레이어블캐릭터 제어방법
KR101355295B1 (ko) 온라인 게임에서 메시지 송신 제어 방법 및 장치
KR100865072B1 (ko) 다중 접속 온라인 게임에서의 트래픽카 제어 방법 및시스템
KR100406325B1 (ko) 온라인 게임에서의 뷰포트 리스트를 이용한 데이터 전송방법 및 그 방법이 구현된 컴퓨터로 읽을 수 있는 기록매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120130

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 12