KR100469826B1 - 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템 - Google Patents

온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템 Download PDF

Info

Publication number
KR100469826B1
KR100469826B1 KR1020040007586A KR20040007586A KR100469826B1 KR 100469826 B1 KR100469826 B1 KR 100469826B1 KR 1020040007586 A KR1020040007586 A KR 1020040007586A KR 20040007586 A KR20040007586 A KR 20040007586A KR 100469826 B1 KR100469826 B1 KR 100469826B1
Authority
KR
South Korea
Prior art keywords
zone
game
server
display area
client
Prior art date
Application number
KR1020040007586A
Other languages
English (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 KR1020040007586A priority Critical patent/KR100469826B1/ko
Application granted granted Critical
Publication of KR100469826B1 publication Critical patent/KR100469826B1/ko
Priority to PCT/KR2005/000341 priority patent/WO2005076189A1/en
Priority to JP2006550958A priority patent/JP4166809B2/ja
Priority to CNB2005800040953A priority patent/CN100511249C/zh
Priority to US11/496,931 priority patent/US20070184904A1/en

Links

Classifications

    • 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
    • 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
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • 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
    • 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
    • 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/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (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 Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 인접하는 게임 존 경계의 소정 부분을 버퍼 섹터로 정의하고, 표시 영역이 상기 버퍼 섹터를 포함하는 양태에 따라 클라이언트와 접속되는 존 서버가 유연하게 제어되도록 하는 데이터 분산 처리 방법 및 데이터 분산 처리 시스템에 관한 것이다.
본 발명의 일실시예에 따른 온라인 게임 서버의 데이터 분산 처리 방법은, 하나 이상의 게임 존으로 구획되는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스를 유지하는 단계와, 사용자 캐릭터에 대한 명령 처리의 수행을 위한 존 서버를, 상기 게임 존 각각으로 할당하는 단계와, 소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하고, 상기 매핑된 표시 영역이 위치하는 게임 존을 식별하는 단계, 및 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 단계를 포함하며, 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 상기 단계는, 소정 사용자 캐릭터가 위치하는 제1 게임 존의 제1 존 서버와 상기 클라이언트를 접속시키는 단계와, 제2 게임 존과의 경계를 기준으로 상기 제1 게임 존의 일부를 버퍼 섹터로 정의하는 단계, 및 상기 표시 영역이 상기 버퍼 섹터의 적어도 일부를 포함하는 경우, 상기 제2 존 서버와 상기 클라이언트를 접속시키는 단계를 포함한다.
본 발명에 따르면, 게임 존의 경계를 기준으로 한 소정 범위를 버퍼 섹터로 정의하고, 표시 영역에 버퍼 섹터의 일부 영역이 포함함에 따라 사용자 캐릭터가차기 이동할 게임 존의 존 서버를 클라이언트에 접속시키는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공할 수 있는 이점이 있다.

Description

온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템{METHOD FOR PROCESSING THE DATA DISTRIBUTED AT ONLINE GAME SERVER AND A SYSTEM THEREOF}
본 발명은 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템에 관한 것으로서, 더욱 상세하게는 인접하는 게임 존 경계의 소정 부분을 버퍼 섹터로 정의하고, 표시 영역이 상기 버퍼 섹터를 포함하는 양태에 따라 클라이언트와 접속되는 존 서버가 유연하게 제어되도록 하는 데이터 분산 처리 방법 및 데이터 분산 처리 시스템에 관한 것이다.
일반적인 온라인 게임 환경에서, 광범위한 게임 영역을 하나의 게임 서버로신호 처리하는 데에는 시스템 능력으로나 신호 처리의 효율면에서 많은 문제점을 발생하게 되고, 이러한 문제점을 해소하고자 다양한 데이터 분산 방식이 등장하여 서비스 운영 중에 있다.
종래에 소개된 데이터 분산 방식 중 대표적인 것이, 게임 영역을 일정한 기준에 따라 존(Zone)으로 구분하고, 구분된 존에 전용 게임 서버가 할당되도록 하여 데이터 분산이 유도되도록 하는 방식을 예로 들 수 있다.
이러한 존의 구분 및 전용 게임 서버를 이용한 데이터 분산 처리에 있어서, 클라이언트의 캐릭터가 게임 진행 중 현재의 존에서 다른 존으로 이동할 경우, 차기 접속할 전용 게임 서버의 접속 시기 또는 접속 양태는 중요한 요소가 되고 있다. 이는 클라이언트로의 전용 게임 서버의 접속 시기 또는 접속 양태에 따라 데이터 분산 처리의 효율성에 극명한 차이가 발생할 수 있기 때문이다.
현재, 제시되고 있는 전용 게임 서버의 접속 시기 또는 접속 양태를 고려한 데이터 분산 방식에 대해 하기에 간략하게 설명한다.
우선, 클라이언트와 전용 게임 서버 사이에 세션 서버(Session Server)를 구비하는 데이터 분산 방식이 있을 수 있다. 이 데이터 분산 방식은 세션 서버를 경유하여 클라이언트로 전용 게임 서버의 데이터가 전송되도록 하는 구성으로, 전용 게임 서버에서 생성된 데이터는 세션 서버에 일시 기록되고 이를 클라이언트에서 수신 받게 된다. 이에 따라, 클라이언트로 제공되는 존이 2개 이상인 경우, 세션 서버는 각 존과 관련된 전용 게임 서버에 소정의 데이터를 요청하여 이를 수신하고 이를 클라이언트에 전달되도록 한다. 이러한 데이터 분산 방식은 필요로 하는 존과 관련된 데이터를 항상 세션 서버를 경유해야 하기 때문에 데이터 처리에 따른 부하가 세션 서버에 집중될 수 있는 단점을 가지고 있다.
또한, 세션 서버 없이 클라이언트의 캐릭터가 존 경계에 근접할 때 생성하는 인접 존 관련 데이터를, 현재 캐릭터가 위치하는 존의 전용 게임 서버에서 수신하여 클라이언트에게 제공되도록 하는 데이터 분산 방식이 있을 수 있다. 예컨대, 클라이언트의 캐릭터가 존 A에 있지만 인접 존인 존 B도 보고 있는 경우, 클라이언트는 전용 게임 서버 A와 접속하게 되며, 전용 게임 서버 B가 존 B에서 일어나는 이벤트에 관한 데이터를 전용 게임 서버 A에 전달하고, 전용 게임 서버 A에서 게임 존 A, 게임 존 B 모두의 데이터를 종합하여 클라이언트에게 전달하게 된다.
하지만, 이러한 데이터 분산 방식은 전용 게임 서버 간에 통신 부하가 급증하는 문제점이 있다. 또한, 캐릭터가 존 A에서 존 B로 넘어가는 경우, 클라이언트가 존 A와의 접속을 차단하고 존 B와의 접속을 설정하여야 하기 때문에 접속 간 시차가 발생할 수 있다. 클라이언트 입장에서는 존의 이동에 따라 일정 시간을 로딩해야 게임 진행이 가능하다는 제약이 있어, 게임의 집중도를 저하할 수 있는 우려를 내재하게 된다.
따라서, 특정 전용 게임 서버로 데이터의 부하가 집중되는 것을 방지 함으로써 효과적인 데이터 분산 처리가 수행되도록 하는 새로운 개념의 데이터 분산 처리 모델의 등장이 절실히 요구되고 있다. 더불어, 인접하는 게임 존 경계의 소정 범위를 버퍼 섹터로 정의하고 표시 영역이 버퍼 섹터를 포함하는 경우, 차기 존 서버를 클라이언트에 접속 시킴으로써 통신 부하를 현저하게 감소시킬 수 있는 데이터분산 처리 모델이 한층 요구되고 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 게임 존의 경계를 기준으로 한 소정 범위를 버퍼 섹터로 정의하고, 표시 영역에 버퍼 섹터의 일부 영역이 포함함에 따라 사용자 캐릭터가 차기 이동할 게임 존의 존 서버를 클라이언트에 접속시키는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공하는 것을 목적으로 한다.
또, 본 발명의 목적은, 표시 영역이 이종 게임 존 상에 위치함을 확인하고, 연관되는 존 서버를 클라이언트에 접속 시킴으로써 데이터의 부하가 특정 존 서버에 집중되는 것을 억제할 수 있는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공하는 데에 있다.
또, 본 발명의 다른 목적은, 표시 영역 내의 사용자 캐릭터가 게임 존을 변경하여 위치하는 시점에서 캐릭터 정보에 대한 정보 이관이 수행되도록 하는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공하는 데에 있다.
본 발명은 사용자 캐릭터 위치에 따른 캐릭터 정보에 대한 갱신 처리 및 정보 이관이 유연하게 이루어지도록 함으로써 캐릭터 정보의 유실이나 왜곡을 최대한 억제하는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공하는 것을 다른 목적으로 한다.
도 1은 본 발명에 따른 데이터 분산 처리 시스템의 개략적인 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 데이터 분산 처리 시스템을 나타내는 구성도이다.
도 3a는 본 발명에 따른 게임 지도 데이터 및, 게임 지도 데이터를 구획하여 형성되는 게임 존을 설명하기 위한 도면이고, 도 3b는 사용자 캐릭터 이동에 따른 클라이언트와 존 서버의 접속 양태를 설명하기 위한 도면이다.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 분산 처리 방법을 구체적으로 도시한 작업 흐름도이다.
도 5a는 본 발명에 따른 표시 영역의 매핑 위치에 의거하여 접속되는 존 서버의 변경 방법을 나타내는 작업 흐름도이고, 도 5b는 존 서버에서의 처리 종류가 특정되도록 하는 방법을 나타내는 작업 흐름도이다.
도 6a는 본 발명에 따른 캐릭터 정보의 갱신 처리 방법을 나타내는 작업 흐름도이고, 도 6b는 캐릭터 정보에 대한 정보 이관 방법을 나타내는 작업 흐름도이며, 도 6c는 제1 존 서버와 클라이언트와의 접속 차단 여부를 판단하는 방법을 나타내는 작업 흐름도이다.
도 7은 본 발명에 따른 표시 영역의 매핑 지점을 재설정하는 방법을 나타내는 작업 흐름도이다.
도 8은 본 발명에 따른 데이터 분산 처리 방법을 수행하는 데 채용될 수 있는 범용 컴퓨터 장치의 내부 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
200 : 데이터 분산 처리 시스템 210 : 존 정보 데이터베이스
220 : 존 서버 관리 수단 230 : 버퍼 섹터 정의 수단
240 : 표시 영역 매핑 수단 250 : 게임 작동 제어 수단
260 : 캐릭터 위치 확인 수단 270 : 캐릭터 정보 데이터베이스
상기의 목적을 이루기 위한 본 발명의 일실시예에 따른 온라인 게임 서버의 데이터 분산 처리 방법은, 하나 이상의 게임 존으로 구획되는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스를 유지하는 단계와, 사용자 캐릭터에 대한 명령 처리의 수행을 위한 존 서버를, 상기 게임 존 각각으로 할당하는 단계와, 소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하고, 상기 매핑된 표시 영역이 위치하는 게임 존을 식별하는 단계, 및 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 단계를 포함하며, 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 상기 단계는, 소정 사용자 캐릭터가 위치하는 제1 게임 존의 제1 존 서버와 상기 클라이언트를 접속시키는 단계와, 제2 게임 존과의 경계를 기준으로 상기 제1 게임 존의 일부를 버퍼 섹터로 정의하는 단계, 및 상기 표시 영역이 상기 버퍼 섹터의 적어도 일부를 포함하는 경우, 상기 제2 존 서버와 상기 클라이언트를 접속시키는 단계를 포함한다.
또한, 상기 목적을 달성하기 위한 기술적 구성으로서, 온라인 게임 서버의 데이터 분산 처리 시스템은 하나 이상의 게임 존으로 구획되는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스와, 사용자 캐릭터에 대한 명령 처리의 수행을 위한 존 서버를, 상기 게임 존 각각으로 할당하는 존 서버 관리 수단과, 인접하는 게임 존과의 경계를 기준으로 상기 게임 존의 일부를 버퍼 섹터로 정의하는 버퍼 섹터 정의 수단과, 소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하고, 상기 표시 영역이 위치하는 게임 존을 식별하는 표시 영역매핑 수단, 및 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 게임 작동 제어 수단을 포함하며, 게임 작동 제어 수단은 상기 표시 영역의 적어도 일부가 상기 버퍼 섹터에 위치하는 경우, 상기 인접하는 하나 이상의 게임 존과 연관되는 상기 존 서버를 상기 클라이언트에 접속되도록 제어하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 데이터 분산 처리 방법 및 데이터 분산 처리 시스템에 대하여 설명한다.
본 명세서에서 지속적으로 사용되는 게임 존은 게임 진행의 배경이 되는 게임 지도 데이터를 소정 기준에 의해 구획한 일 지역을 의미할 수 있으며, 게임 존 각각으로는 해당 지역에서 발생되는 명령 처리를 한정하여 수행되도록 개별 게임 서버(이하, 존 서버라 함)가 할당된다. 이러한 게임 존은 대규모 범위의 게임 지도 영역을 하나의 게임 서버에서 담당하는 데에 시스템적으로 무리가 있다는 판단에 기인한 것으로, 구획되는 게임 존의 영역 범위는 할당되는 존 서버의 시스템 능력 등을 고려하여 본 시스템의 운영자가 유연하게 설정할 수 있다. 또한, 존 서버는 담당하는 게임 존에 대한 명령 처리를 수행하는 게임 서버를 지칭하며, 게임 진행에 따른 사용자 캐릭터의 캐릭터 정보(예, 능력치, 보유 아이템 등)를 갱신시키는 역할을 수행한다.
도 1은 본 발명에 따른 데이터 분산 처리 시스템의 개략적인 구성을 설명하기 위한 도면이다.
데이터 분산 처리 시스템(100)은 소정의 지역으로 구획되는 게임 존(112) 단위로 데이터가 처리되도록 제어 함으로써 온라인 게임 서비스에서의 명령 처리를 분산시키는 역할을 수행한다.
우선, 온라인 게임 서버(110)는 본 발명의 데이터 분산 처리 시스템(100)을 통해 클라이언트(120)의 소정 단말 수단(도시하지 않음)과 연결되며, 소정 계약 관계에 있는 클라이언트(120)에게 온라인으로 게임 서비스가 제공되도록 하는 역할을 수행하는, 예컨대 머드(MUD; Multiple User Dialogue) 게임 서버, 머그(MUG; Multiple User Graphic) 게임 서버 등을 의미할 수 있다. 온라인 게임 서버(110)에서 제공하는 게임 서비스는, 단말 수단에 게임 관련 프로그램을 설치한 클라이언트(120)가 온라인 게임 서버(110)에 접속하는 경우, 게임에 필요한 소정의 게임 진행 데이터 또는 게임 패치를 단말 수단으로 전송시키고, 클라이언트(120)에 의해 제어되는 사용자 캐릭터를 이용하여 게임 진행이 이루어지도록 지원한다. 또한, 온라인 게임 서버(110)는 게임 진행에 필요한 게임 지도 데이터를 소정 영역의 범위(크기)로 구획하여 게임 존(114)으로 형성시키고, 형성된 각 게임 존(114)에 존 서버(112)가 할당되도록 한다. 예를 들어, 도 1에서는, 게임 지도 데이터를 4개의 게임 존(게임 존 A∼게임 존 D)으로 구분하며, 각 게임 존에 할당되는 4개의 존 서버(존 서버 A∼존 서버 D)를 예시하고 있다. 상술한 것과 같이, 게임 존(114)은 본 시스템의 운영자에 의해 영역 크기 및 갯수 등이 설정될 수 있으며, 온라인 게임에서의 명령 처리가 게임 존(114) 단위로 한정하여 데이터 분산 처리가 수행되도록 한다.
여기서, 명령 처리는 클라이언트(120)로부터 수신되는 명령 신호에 따라 특정 사용자 캐릭터의 조작을 통한 게임 진행이 이루어지도록 하는 신호 처리를 의미할 수 있다. 예컨대, 게임 존(114)에서 발생하는 명령 처리로는 클라이언트(120)의 제어 조작에 따라 사용자 캐릭터를 이동시키거나 몬스터에게 공격 행위를 가하는 등의 사용자 캐릭터 조작 제어와 관련된 처리 및, 해당 게임 존(114)에 등장하는 배경 사물(나무, 건물, 물 등)이나 여타 캐릭터(몬스터, 타 사용자 캐릭터, NPC 등)가 사용자 캐릭터의 이동에 따라 변경되어 표시되도록 하는 처리 등이 있을 수 있다.
클라이언트(120)는 통신망(130)과의 접속을 위한 단말 수단을 보유하며, 소정의 게임 서비스 제공 계약 관계에 있는 온라인 게임 서버(110)로부터 게임 진행을 위한 게임 데이터 또는 게임 패치를 수신함으로써 온라인 게임 서비스를 제공 받는 인터넷 이용자를 의미할 수 있다. 단말 수단은 인터넷망, 전화선 등의 통신망(130)을 통해 온라인 게임 서버(110)와의 접속 상태를 유지하여 온라인 게임을 구현하는 하는 장치이며, 예컨대 퍼스널 컴퓨터, 핸드헬드 컴퓨터(handheld computer), PDA(Personal Digital Assistant), 휴대폰, 스마트폰 등과 같이 소정의 메모리 수단을 구비하고 소정의 마이크로프로세서를 탑재함으로써 소정의 연산 능력을 갖춘 단말기를 통칭하는 개념이다.
데이터 분산 처리 시스템(100)은 사용자 캐릭터의 이동에 따라 단말 수단 상에 표시될 게임 존(114)의 영역을 식별하고, 식별된 게임 존(114)에 할당되는 존 서버(112)를 클라이언트(120)에게 접속되도록 제어하는 역할을 수행하게 된다. 이러한 존 서버(112)에 대한 접속 제어는, 특정 존 서버(112)에 데이터 부하가 가중되지 않는 방향을 고려하여 구현하며, 이하 도 2를 참조하여 본 발명의 데이터 분산 처리 시스템(200)의 구체적인 구성을 설명한다.
도 2는 본 발명의 바람직한 실시예에 따른 데이터 분산 처리 시스템을 나타내는 구성도이다.
본 발명의 데이터 분산 처리 시스템(200)은 존 정보 데이터베이스(210), 존 서버 관리 수단(220), 버퍼 섹터 정의 수단(230), 표시 영역 매핑 수단(240), 게임 작동 제어 수단(250), 캐릭터 위치 확인 수단(260), 및 캐릭터 정보 데이터베이스(270)를 포함한다.
우선, 존 정보 데이터베이스(210)는 하나 이상의 게임 존(114)으로 구획되는 게임 지도 데이터를 저장하기 위한 장치이며, 소정 온라인 게임에서 사용되는 맵에 대한 정보를 저장하는 역할을 수행한다. 즉, 존 정보 데이터베이스(210)는 게임 진행에 필요한 전체 맵을 보유하며 후술되는 게임 작동 제어 수단(260)에 의해 특정 지역에 대한 맵 추출 요구가 발생하는 경우, 해당 영역의 게임 지도 데이터를 추출하여 제공되도록 한다. 게임 존(114)의 구획은 본 시스템의 운영자에 의해 각 게임 존(114)에 할당되는 존 서버(112)의 능력 또는 수를 고려하여 설정할 수 있으며, 이하 도 3a를 참조하여 게임 지도 데이터(310)를 구획하는 게임 존(320)에 대해 설명한다.
도 3a는 본 발명에 따른 게임 지도 데이터 및, 게임 지도 데이터를 구획하여 형성되는 게임 존을 설명하기 위한 도면이다.
도 3a에 도시한 바와 같이, 게임 지도 데이터(310)는 다수의 섹터(330)로 구성되며, 하나의 게임 존(320)은 소정 갯수의 섹터(330)를 군집하여 형성한다. 도 3a에서는 6×6 섹터를 갖는 게임 지도 데이터(310)를 예시하고 있으며, 구획되는 3개의 게임 존(320), 즉, 게임 존 A와 게임 존 B는 3×4 섹터, 게임 존 C는 6×2 섹터를 보유하고 있다. 각 섹터(330)는 해당 영역에서의 게임 캐릭터(사용자 캐릭터, NPC 등), 아이템(무기, 포션 등), 물체(산, 길 등)에 대한 제어 관리, 또는 사용자 캐릭터의 게임 진행에 따른 캐릭터 정보에 대한 갱신 처리의 기본 단위가 된다. 또한, 일부의 섹터(330)는 인접하는 타게임 존(320)과의 경계로부터 소정 갯수(또는 폭)를 버퍼 섹터로 정의될 수 있으며(도 3b 참조), 정의된 버퍼 섹터에 관한 정보는 존 정보 데이터베이스(210)에 저장된다.
존 서버 관리 수단(220)은 구획된 게임 존(320) 각각으로 명령 처리의 수행을 위한 존 서버(112)를 할당하는 장치로서, 특히 게임 존(320)으로 한정되는 범위 영역에서 발생하는 명령 처리를, 특정 존 서버(112)에서 전용으로 처리되도록 함으로써 데이터 분산을 통한 데이터 부하의 집중 현상을 억제할 수 있다. 예컨대, 도 3a에서는 게임 존(320)이 3개로 구획됨에 따라 각 게임 존(320)에 할당되는 존 서버(112) 역시 3개 이상이 구비되어야 한다. 이 때, 게임 존(320)에 대한 존 서버(112)의 할당은 게임 존(320)이 보유한 섹터(330) 수에 기초하여, 많은 섹터(330) 수를 보유하는 게임 존(320)에는 우수한 능력의 존 서버(112)가, 반대로 적은 섹터(330) 수를 보유한 게임 존(320)에는 비교적 덜 우수한 능력의 존 서버(112)가 할당되도록 할 수 있다. 이는 명령 처리를 수행할 영역 범위에 비례하여 최적한 능력의 존 서버(112)가 할당되도록 하기 위한 것으로, 예컨대 도 3a에서는 각 게임 존(310)이 동일 갯수의 섹터(330)를 보유함에 따라 비슷한 능력의 존 서버(112)가 할당되도록 한다. 본 실시예에서는 구획된 게임 존(320)에 포함되는 섹터(330)의 수를 고려하여 존 서버(112)가 할당되도록 하는 것을 예시하여 설명하고 있지만, 이는 설명의 편의를 위한 것으로, 예컨대 존 서버(112)의 능력을 고려하여 각 존 서버(112)마다 적합한 섹터(330)의 수를 설정하고 설정된 섹터(330) 수에 맞게 게임 존(320)이 구획되도록 하는 등의 다양한 구획 방식이 있을 수 있음은 물론이다.
버퍼 섹터 정의 수단(230)은 인접하는 게임 존(320)과의 경계를 기준으로 게임 존(320)의 일부를 버퍼 섹터로 정의하는 장치이며, 정의되는 버퍼 섹터의 영역 범위는 예컨대 게임 진행 속도에 따른 표시 영역의 매핑 변경 속도, 또는 접속 변경되는 존 서버(112)와 클라이언트(120)의 접속 로딩 시간을 고려하여 설정할 수 있다. 즉, 게임 진행 속도가 빠르거나 접속 로딩 시간이 지연되는 경우, 버퍼 섹터로 정의되는 영역을 넓게 하여 안정한 존 서버(112)의 접속 변경이 이루어지도록 한다. 특히, 게임 지도 데이터(310)가 다수의 섹터(330)로 구성되는 본 실시예에 한정하여, 버퍼 섹터 정의 수단(230)은 타게임 존(320)과의 경계에 인접하는 섹터(330)를 버퍼 섹터로 정의할 수 있다. 또한, 버퍼 섹터 정의 수단(230)은 소정 갯수의 섹터(330)를 버퍼 섹터로 정의하는가의 여부에 따라 버퍼 섹터의 영역 범위를 결정할 수 있다(예, 도 3b에서는 섹터(330) 1개의 폭을 버퍼 섹터의 영역으로 결정하고 있다.). 여기서, 버퍼 섹터는 게임 진행에 의해, 사용자 캐릭터가 이동하면서 위치하는 게임 존(320)의 변화가 발생하는 경우, 클라이언트(120)와 접속되는 존 서버(112)의 변경을 미리 본 발명의 데이터 분산 처리 시스템(200)이 인지되도록 하는 기능을 보유한 섹터를 지칭할 수 있다. 본 실시예에서는 클라이언트(120)의 디스플레이 수단(도시하지 않음)에 게임 화면으로서 제공되는 표시 영역의 매핑 위치와 상기 버퍼 섹터를 비교하고, 그 상관 관계에 따라 클라이언트(120)와 접속되는 존 서버(112)를 조정하게 된다. 즉, 매핑되는 표시 영역이 상기 정의된 버퍼 섹터의 적어도 일부를 포함하는 경우, 인접한 게임 존(320)의 존 서버(112)를 클라이언트(120)에 접속시킨다.
표시 영역 매핑 수단(240)은 클라이언트(120)의 디스플레이 수단에 표시되는 표시 영역을 게임 지도 데이터(310) 상에 매핑하고, 상기 표시 영역이 위치하는 게임 존(320)을 식별하는 장치이다. 즉, 표시 영역 매핑 수단(240)은 클라이언트(120)에게 제공되는 맵을 게임 지도 데이터(310)로부터 추출할 수 있도록, 게임 지도 데이터(310) 상에 위치 표시가 이루어지도록 하는 역할을 수행한다. 이를 위해, 게임 지도 데이터(310)에는 소정의 가상 좌표가 설정될 수 있으며, 상기 가상 좌표를 통해 표시 영역의 위치가 게임 지도 데이터(310) 상에 매핑될 수 있도록 한다. 본 실시예에서는 게임 지도 데이터(310)가 다수의 독립적인 섹터(330)로 구성되며, 게임 지도 데이터(310) 내에서의 섹터(330) 위치로서 매핑되는 표시 영역의 위치를 결정할 수 있다. 이때, 표시 영역의 크기는 섹터(330) 넓이의 정배수가 되도록 제어할 수 있으며, 이에 따라 표시 영역 내에 섹터(120)가 완전하게 포함되도록 하여 섹터(120) 단위로 수행되는 명령 처리가 안정되게 이루어지도록 한다.
게임 작동 제어 수단(250)은 식별된 게임 존(320)에 할당되는 존 서버(112)와 클라이언트(120)를 접속시키기 위한 장치로서, 게임 지도 데이터(310) 상에서 매핑되는 표시 영역 및 사용자 캐릭터의 위치를 식별하고, 소정 조건에 따라 선택적으로 특정 존 서버(112)와 클라이언트(120)를 접속시키거나, 또는 캐릭터 정보에 대한 정보 이관(Hand off)이 수행되도록 한다. 데이터 분산 처리에 있어, 게임 존(320) 별로 명령 처리를 분담하는 존 서버(112)를 클라이언트(120)에게 접속시키는 시점이 중요하며, 본 실시예에서는 상술한 버퍼 섹터를 이용하여 특정 존 서버(112)에 대한 접속 시점을 판단하게 된다. 이하, 도 3b를 참조하여 클라이언트(120)와 존 서버(112)의 접속 양태를 다양한 사례를 예시하면서 설명한다.
도 3b는 본 발명의 사용자 캐릭터 이동에 따른 클라이언트와 존 서버의 접속 양태를 설명하기 위한 도면이다.
도 3b에서, 사용자 캐릭터(360)가 게임 존 A(존 서버 A 할당)에서 게임 존 B(존 서버 B 할당)로 이동하면서 게임이 진행되고 있다고 가정한다. 또한, 버퍼 섹터(340,345)는 게임 존 A와 게임 존 B 경계에 인접하는 섹터(330)의 열(列)로 정의하며, 표시 영역(350)의 크기는 섹터(330) 넓이의 4배수가 되도록 가정한다(버퍼 섹터는로 표시함).
우선, 화면 1에서 표시 영역(350)은 제1 버퍼 섹터(340)가 아닌 게임 존 A의 소정 섹터(330)에서만 매핑이 이루어지고, 이에 따라 클라이언트(120)는 존 서버 A와 접속되어 명령 처리를 수행하게 된다. 즉, 화면 1에서는 클라이언트(120)와 존 서버 A가 접속된 상태이고, 존 서버 A에 의한 명령 처리에 따라 변경되는 캐릭터정보는 존 서버 A에 보유된다.
게임 중, 사용자 캐릭터(360)의 이동이 진행되고, 화면 2에서와 같이 표시 영역(350)의 일부가 게임 존 A의 제1 버퍼 섹터(340) 상에 매핑되는 경우, 게임 작동 제어 수단(250)은 사용자 캐릭터(360)가 차기 위치될 것으로 예상되는 게임 존 B의 존 서버 B를 클라이언트(120)에 접속되도록 한다. 이때, 존 서버 A는 클라이언트(120)와 접속 유지된다. 특히, 게임 작동 제어 수단(250)은 표시 영역(350)의 제1 버퍼 섹터(340) 진입을 확인하고, 표시 영역(350)의 매핑 방향에 기초하여 차기 접속 가능한 존 서버(112)에 대한 네트워크 주소(URL, IP address, domain 등 : 도 3b에서는 존 서버 B의 네트워크 주소)를 클라이언트(120)의 단말 수단으로 제공하여 존 서버 B와의 접속이 이루어지도록 한다. 이러한, 네트워크 주소에 대한 정보는 섹터(330)로부터 공급 가능하고, 섹터(330)는 표시 영역(350)의 매핑이 이루어짐에 따라 기설정되어 저장하고 있던 특정 존 서버의 네트워크 주소에 관한 정보를 게임 작동 제어 수단(250)에게 공급한다. 단, 화면 2에서 사용자 캐릭터(360)는 게임 존 A에 위치되며 존 서버 A에 의한 명령 처리가 유지되도록 한다. 즉, 화면 2에서는 클라이언트(120)와, 존 서버 A 및 존 서버 B가 동시에 접속되는 상태이고, 표시 영역(350)에서 게임 존 A에 해당되는 지역은 존 서버 A에 의해 표시되도록 하고, 사용자 캐릭터(360)의 이동에 따라 차기 표시 영역(350)으로 포함할 게임 존 B에 해당되는 지역은 존 서버 B에 의해 표시되도록 한다. 이때, 존 서버 A는 상술한 명령 처리가 지속적으로 수행되도록 유지하고, 존 서버 B는 이벤트 처리(존 서버 B의 명령 처리에 의한 수행되는 타 캐릭터의 움직임 등이 디스플레이 수단에구현되도록 하는 처리)가 수행되도록 한다. 캐릭터 정보는 사용자 캐릭터의 위치에 따라 존 서버 A에 보유된다.
화면 3은 사용자 캐릭터(360)가 게임 존 A에서 게임 존 B로 이동되는 경우를 나타내며, 매핑되는 표시 영역(350)은 게임 존 B의 제2 버퍼 섹터(345)를 일부 포함하는 경우이다. 이에 따라, 존 서버 A와 존 서버 B의 처리 종류가 상호 교환되어, 존 서버 A에서는 이벤트 처리가, 존 서버 B에서는 명령 처리가 수행된다. 또한, 사용자 캐릭터(360)의 게임 존(320) 변경에 따라 캐릭터 정보에 대한 정보 이관가 발생하여, 기존 존 서버 A에서 보유하던 사용자 캐릭터(360)의 캐릭터 정보를 복제하여 존 서버 B에 전송되도록 한다. 단, 존 서버 A에 보유하는 캐릭터 정보는 소정 조건이 만족될 때까지 삭제하지 않고 보유되도록 함으로써 정보 이관에 따라 발생할 수 있는 캐릭터 정보의 유실이나 전송 오류에 따른 캐릭터 정보 변경에 대비하도록 한다.
화면 4는 사용자 캐릭터(360)의 이동이 더욱 진전되어 표시 영역(350)의 매칭 지점이 제2 버퍼 섹터(345)를 이탈하게 되고, 제2 버퍼 섹터(345)가 아닌 게임 존 B의 섹터(330)에서만 표시 영역(350)의 매핑이 이루어지는 경우를 나타낸다. 이에 따라, 게임 동작 제어 수단(250)은 존 서버 A와 클라이언트(120)와의 접속을 차단하게 되며, 더불어 존 서버 A에 보유하던 캐릭터 정보에 대한 삭제 처리가 수행되도록 한다.
이에 따라, 버퍼 섹터(340,345) 상에 표시 영역의 매핑이 이루어지는 경우에 한하여, 각 게임 존(320)에 연관되는 존 서버(112)가 클라이언트(120)에 접속되도록 제어함으로써, 유기적인 정보 이관의 실현 및 데이터 분산 처리에 효율적인 존 서버 접속 변경이 이루어지도록 할 수 있다.
또한, 도 3b에서 표시 영역(350)에 포함되는 이동 제어선(370)은 표시 영역(350)에 대한 매핑 변경이 이루어지도록 하기 위한 것으로, 사용자 캐릭터(360)의 위치가 이동 제어선(370)과 일치하는 경우, 사용자 캐릭터(360)의 진입(이동) 방향에 기초하여 표시 영역에 대한 매핑 작업이 재수행되도록 한다. 이에 따라, 사용자 캐릭터(360) 이동에 따른 표시 영역(350)의 매핑 재수행이 가능해지며, 더불어 사용자 캐릭터(360)가 위치하는 게임 존(320) 변경에 따라 존 서버(112)에 대한 접속 변경 제어가 가능하게 되어 데이터 분산 효과를 극대화 할 수 있다.
도 3b에서 표시 영역(350)에 대한 매핑은 섹터(330)를 완전하게 포함하도록 하는 방식으로 설명하고 있지만, 게임 화면 전환의 유연성을 고려하여 특정 섹터(330)의 일부 만이 표시 영역(350)에 포함되도록 할 수 있음은 본 발명이 속하는 기술 분야의 당업자에게 당연하다 할 것이다.
캐릭터 위치 확인 수단(260)은 게임 진행 중 사용자 캐릭터(360)가 위치하는 맵(또는 스테이지)을 확인하여 캐릭터 위치 정보를 생성하기 위한 장치이며, 생성된 캐릭터 위치 정보는 표시 영역(350)의 매핑 위치를 설정하는 데에 기준 자료로서 이용될 수 있다. 즉, 캐릭터 위치 확인 수단(260)은 클라이언트(120)에게 제공되는 온라인 게임에서의 캐릭터 위치를 인지하고, 표시 영역 매핑 수단(240)에 의한 표시 영역(350)의 매핑 위치가 선정되도록 지원한다.
캐릭터 정보 데이터베이스(270)는 게임 진행에 따라 변경되는 캐릭터 정보를 갱신 저장하기 위한 장치로서, 갱신 처리 권한을 갖는 존 서버(112)로부터 갱신 처리되는 캐릭터 정보를 기록 유지하게 된다. 본 실시예에서의 캐릭터 정보 관리는 상기 캐릭터 정보 데이터베이스(270)에서 주로 관리하지만, 클라이언트(120)의 접속에 따른 게임 진행 중에는, 명령 처리를 수행하는 존 서버(112)로부터 캐릭터 정보에 대해 관리가 이루어지도록 할 수 있다. 즉, 캐릭터 정보 데이터베이스(270)에 저장되던 캐릭터 정보는 갱신 처리 권한이 부여된 존 서버(112)로 복제, 전송되고, 전송된 캐릭터 정보에 대한 갱신 처리가 존 서버(112)에 의해 수행되도록 한다. 존 서버(112)에서 갱신된 캐릭터 정보는 갱신 처리 권한의 변경에 따라 다른 게임 존(112)(또는 캐릭터 정보 데이터베이스(270))으로 정보 이관될 수 있으며, 또는 클라이언트(120)의 게임 접속 종료 신호에 따라 캐릭터 정보 데이터베이스(270)로 전송되도록 할 수 있다.
도 2에는 도시되어 있지 아니하지만, 본 발명의 바람직한 일실시예에 따른 데이터 분산 처리 시스템(200)은 상술한 데이터베이스(210,270)를 관리하기 위한 데이터베이스 관리 모듈을 더 포함할 수 있다. 본 발명에 따른 데이터 분산 처리 시스템(200)의 데이터베이스 관리 모듈은 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), DB2와 같은 관계형 데이터베이스 관리 시스템(RDBMS)이나, 겜스톤(Gemston), 오리온(Orion), O2 등과 같은 객체 지향 데이터베이스 관리 시스템(OODBMS)을 이용하여 본 발명의 목적에 맞게 구현될 수 있다.
이러한 구성을 갖는 본 발명에 따른 데이터 분산 처리 시스템(200)의 작업흐름을 상세히 설명한다.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 분산 처리 방법을 구체적으로 도시한 작업 흐름도이다.
본 실시예에 따른 데이터 분산 처리 방법은 상술한 데이터 분산 처리 시스템(200)에 의해 수행된다.
우선, 데이터 분산 처리 시스템(200)은 하나 이상의 게임 존(320)으로 구획되는 게임 지도 데이터(310)를 저장하기 위한 존 정보 데이터베이스(210)를 유지한다(S410). 본 단계(S410)는 게임 지도 데이터(310)를 구성하는 게임 존(320)에 대한 정보를 기록 유지하기 위한 과정으로, 게임 진행이 이루어지는 전체의 맵을 저장하게 된다(도 3a 참조).
다음으로, 데이터 분산 처리 시스템(200)은 게임 존(320) 각각으로, 사용자 캐릭터(360)에 대한 명령 처리의 수행을 위한 존 서버(112)를 할당한다(S420). 본 단계(S420)는 특정 영역별로 담당 존 서버(112)를 연관시킴으로써 물리적인 데이터 분산 효과가 발생되도록 하기 위한 과정으로, 게임 존(320)에 대한 존 서버(112)의 할당은 존 서버(112)의 데이터 처리 능력 또는 게임 존(320)의 크기(보유 섹터(330) 수)를 고려하여, 최적의 데이터 분산 효과가 발생하는 방향으로 연관되도록 한다.
또한, 데이터 분산 처리 시스템(200)은 소정의 디스플레이 수단에 표시되는 표시 영역(350)을 게임 지도 데이터(310) 상에 매핑하고, 표시 영역(350)이 위치하는 게임 존(320)을 식별한다(S430). 본 단계(S430)는 게임 상에서의 사용자 캐릭터(360) 위치를 게임 지도 데이터(310)에서 확인하고, 사용자 캐릭터(360)를 포함하는 소정 영역을 추출하여 디스플레이 수단 상에 표시되도록 하는 과정이다.
계속해서, 데이터 분산 처리 시스템(200)은 식별된 게임 존(320)에 할당되는 존 서버(112)와 클라이언트(120)를 접속시킨다(S440). 본 단계(S440)는 사용자 캐릭터(360)에 대한 클라이언트(120)의 조작 제어 명령을 처리할 존 서버(112)를 결정하고, 결정된 존 서버(112)가 클라이언트(120)와 접속되도록 하는 과정이다. 특히, 본 단계(S440)는 표시 영역(350)의 매핑 지점에 따라, 접속되는 존 서버(112)의 갯수를 유연하게 조정할 수 있으며, 이러한 존 서버(112)의 접속 유연성을 보장하기 위해 본 발명에서는 게임 존(320)의 소정 영역 범위를 버퍼 섹터로 정의하게 된다. 이하, 도 5a를 참조하여 표시 영역(350)의 매핑 위치에 따라 클라이언트(120)에 접속되는 존 서버(112)의 변화에 대해 설명한다.
도 5a는 본 발명에 따른 표시 영역의 매핑 위치에 의거하여 접속되는 존 서버의 변경 방법을 나타내는 작업 흐름도이다.
여기서, 기술되는 제1 게임 존은 사용자 캐릭터(360)가 현재 위치하는 게임 존(320)을 지칭하며(예, 도 3b에서의 게임 존 A), 제2 게임 존은 사용자 캐릭터(360)가 이동하고자 하는 차기 위치할 게임 존(320)을 지칭(예, 도 3b에서의 게임 존 B) 할 수 있다.
우선, 데이터 분산 처리 시스템(200)은 사용자 캐릭터(360)가 위치하는 제1 게임 존에 할당되는 제1 존 서버와 클라이언트(120)를 접속시킨다(S510). 본 단계(S510)는 클라이언트(120)로부터 수신되는 조작 제어 명령을 처리하는 제1 존서버(112)의 접속 과정으로, 이 때 클라이언트(120)와 접속되는 제1 존 서버는 사용자 캐릭터(360)에 대한 명령 처리를 수행하게 된다.
다음으로, 데이터 분산 처리 시스템(200)은 제2 게임 존과의 경계를 기준으로 제1 게임 존의 일부를 버퍼 섹터로 정의한다(S520). 본 단계(S520)는 사용자 캐릭터(360)의 이동에 따라 제1 게임 존과 제2 게임 존의 경계를 데이터 분산 처리 시스템(200)에서 인지되도록 하는 과정으로, 예컨대 버퍼 섹터 정의 수단(230)에 의해 섹터(330)를 버퍼 섹터로 정의하거나, 게임 존(320) 경계로부터 소정 영역(폭)의 범위를 버퍼 섹터로 정의할 수 있다. 본 실시예에서는 설명의 통일을 위해 게임 존(320)이 소정 갯수의 섹터(330)로 구성되는 것을 고려하여 특정 섹터(330)가 버퍼 섹터로 정의되는 것을 한정하여 설명한다.
계속해서, 데이터 분산 처리 시스템(200)은 표시 영역(350)이 버퍼 섹터의 적어도 일부를 포함하는가를 판단한다(S530). 본 단계(S530)는 사용자 캐릭터(360)의 이동에 따라 매핑되는 표시 영역(350)의 매핑 지점이 상기 버퍼 섹터로 정의한 범위(폭)와 겹치는 부분이 있는가를 판단하는 과정으로, 예컨대 게임 작동 제어 수단(250)에 의해 소정의 가상 좌표로 특정되는 버퍼 섹터와 표시 영역(350)과의 일치 여부를 확인하게 된다.
상기 판단 단계(S530)에서, 표시 영역(350)이 버퍼 섹터의 일부 영역을 포함하는 것으로 판단되는 경우(S530에서 Yes 방향), 데이터 분산 처리 시스템(200)은 제2 게임 존에 할당된 제2 존 서버의 네트워크 주소를 클라이언트(120)에게 전송한다(S540). 본 단계(S540)는 사용자 캐릭터(360)의 이동에 따라, 근시간 이내에 사용자 캐릭터(360)가 위치하는 게임 존(320)의 변경을 예고하기 위한 과정으로, 예컨대 표시 영역(350)의 매핑 진행 방향(사용자 캐릭터(360)의 이동 진입 방향)을 고려하여 표시 영역(350)의 차기 매핑이 가능한 게임 존(320)을 미리 인지하게 된다. 이때, 차기 매핑이 가능한 게임 존(320)은 하나 이상일 수 있으며, 게임 존(320)에 할당되는 존 서버(320)의 네트워크 주소로는 IP 어드레스, URL, 도메인(Domain) 등이 있을 수 있다.
또한, 데이터 분산 처리 시스템(200)은 전송된 네트워크 주소에 기초하여 제2 존 서버와 클라이언트(120)를 접속시킨다(S550). 본 단계(S550)는 표시 영역(350)의 일부가 버퍼 섹터에 진입함에 따라, 기전송 받은 네트워크 주소에 기초하여 클라이언트(120)와 제2 존 서버가 접속되도록 하는 과정이다. 즉, 본 단계(S550)는 클라이언트(120)에게 제공되는 게임 화면 중 근시간 이내에 제2 게임 존과 관련된 게임 화면의 제공 필요성에 기인한 것으로, 사용자 캐릭터(360)가 게임 존 경계에 근접함에 따라 관련되는 존 서버(112)를 모두 클라이언트(120)에 접속되도록 한다. 이에 따라, 클라이언트(120)와 접속되는 존 서버(112)는 제1 존 서버 및 제2 존 서버가 되며, 표시 영역(350)의 매핑 지점이 버퍼 섹터 상에 위치하는 경우에 한정하여 둘 이상의 존 서버(320)가 접속되도록 함으로써 데이터 분산 효과를 효율적으로 발생시키도록 하기 위한 본 발명의 목적에 충실히 이행되도록 한다.
또한, 상기 단계(S550)에서, 데이터 분산 처리 시스템(200)은 표시 영역(350) 내의 사용자 캐릭터(360) 위치에 따라 클라이언트(120)에 접속되는 존서버(112)가 담당하는 처리 종류를 상이하게 제어할 수 있으며, 이와 관련하여 도 5b에서 설명한다.
도 5b는 본 발명에 따른 존 서버에서의 처리 종류가 특정되도록 하는 방법을 나타내는 작업 흐름도이다.
도 5b에 도시한 바와 같이, 데이터 분산 처리 시스템(200)은 명령 처리를 제1 존 서버에서 담당하도록 제어한다(S552). 본 단계(S552)는 사용자 캐릭터(360)가 제1 게임 존에 위치함을 고려하여, 사용자 캐릭터(360)에 대한 명령 처리가 제1 존 서버에 의해 수행되도록 하는 과정이다.
또한, 데이터 분산 처리 시스템(200)은 표시 영역(350)에 표시되는 제2 게임 존에서의 이벤트 처리를 제2 존 서버에서 담당되도록 제어한다(S554). 본 단계(S554)는 제2 존 서버에 의해 명령 처리되는 여타 캐릭터(타 사용자 캐릭터, NPC, 몬스터 등)의 게임 진행 양상이, 사용자 캐릭터를 제1 게임 존에 위치시키는 클라이언트(120)에게 시각화하여 제공되도록 하는 과정으로, 이러한 이벤트 처리가 제2 존 서버에 의해 수행되도록 한다.
따라서, 사용자 캐릭터(360)가 게임 존(350) 경계에 근접하여 서로 상이한 존 서버(112)로부터 데이터를 수신 받을 필요가 발생하는 경우에 한정하여, 관련된 존 서버(112)가 동시에 클라이언트(120)에 접속되도록 함으로써 특정 존 서버(350)로 데이터가 집중되는 현상을 방지하는 효과를 얻을 수 있다.
다만, 본 실시예에서는 사용자 캐릭터가 제1 게임 존과 제2 게임 존의 경계를 넘었는가에 대한 여부를 특별히 한정하고 있지 않으나, 만약 사용자 캐릭터가게임 존 경계를 넘어 제2 게임 존에 진입할 때에는, 기존 제2 게임 존이 제1 게임이 되고 상술한 각종 실시예에 준하여 제1 존 서버 또는 제2 존 서버가 담당하는 처리 종류의 변경이 이루어짐을 용이하게 유추할 수 있을 것이다.
이하, 본 발명의 다른 실시예로서, 게임 진행에 따라 변경되는 캐릭터 정보에 대한 갱신 처리 및 캐릭터 정보의 정보 이관에 대해 설명한다.
도 6a는 본 발명에 따른 캐릭터 정보의 갱신 처리 방법을 나타내는 작업 흐름도이다.
도 6a의 캐릭터 정보에 대한 갱신 처리 및 캐릭터 정보의 정보 이관은 도 5a의 단계 S550에 이어 수행될 수 있다.
우선, 데이터 분산 처리 시스템(200)은 사용자 캐릭터(360)의 캐릭터 정보를 저장하기 위한 캐릭터 정보 데이터베이스(270)를 유지한다(S610). 본 단계(S610)는 사용자 캐릭터(360)가 보유하는 능력치, 아이템, 기술 등에 관한 캐릭터 정보를 저장하는 과정으로, 캐릭터 정보 데이터베이스(270)로의 캐릭터 정보 저장은, 각 존 서버(112)로부터 실시간으로 갱신되는 정보를 입력 받아 저장되도록 하거나, 갱신 처리 권한이 환원되는 시점에서 존 서버(112)로부터 해당 사용자 캐릭터(360)의 캐릭터 정보를 일시에 입력 받아 저장되도록 할 수 있다. 본 발명은 상술한 두 가지의 저장 방식을 모두 적용할 수 있으며, 이하 실시예에서는 설명의 편의를 위해 갱신 처리 권한의 변경에 따라 캐릭터 정보의 저장이 이루어지도록 하는 방식을 예시하여 설명한다.
다음으로, 데이터 분산 처리 시스템(200)은 캐릭터 정보 데이터베이스(270)로부터 캐릭터 정보를 복제하여 제1 존 서버에 제공한다(S620). 본 단계(S620)는 사용자 캐릭터(360)가 위치하는 제1 게임 존의 제1 존 서버에 캐릭터 정보를 제공하는 과정으로, 예컨대 클라이언트(120)의 게임 최초 접속 시에 캐릭터 정보에 대한 전송이 이루어질 수 있다.
또한, 데이터 분산 처리 시스템(200)은 제공된 캐릭터 정보에 대한 갱신 처리 권한을 제1 존 서버에게 부여한다(S630). 본 단계(S630)는 사용자 캐릭터(360)의 게임 진행 따라 변경되는 각종 수치 또는 획득되는 아이템/기술 등에 관한 갱신 처리가, 사용자 캐릭터(360)에 대한 명령 처리를 수행하는 제1 존 서버에게 부여되도록 하는 과정이다. 즉, 사용자 캐릭터가 위치하는 게임 존(320)의 존 서버(112)에 의해 캐릭터 정보에 대한 업데이트가 수행되도록 한다.
계속해서, 데이터 분산 처리 시스템(200)은 제1 존 서버의 명령 처리에 따라 캐릭터 정보에 대한 갱신 처리를 수행한다(S640). 본 단계(S640)는 사용자 캐릭터에 대한 명령 처리를 통해 발생하는 데이터 변경 사항을 캐릭터 정보에 반영되도록 하는 과정으로, 이에 따라 지속적이고 실시간적인 캐릭터 정보에 대한 업데이트가 가능하게 되며, 갱신된 캐릭터 정보는 제1 존 서버의 소정 기억 수단(도시하지 않음)에 기록하게 된다.
게임 진행 중 사용자 캐릭터(360)의 이동에 따라, 제1 게임 존으로부터 사용자 캐릭터(360)가 이탈하는 경우, 데이터 분산 처리 시스템(200)은 부여된 갱신 처리 권한이 환원되도록 한다(S650). 본 단계(S650)는 사용자 캐릭터(360)가 위치하는 게임 존(320)을 변경할 때, 기존 제1 게임 존에 부여하던 갱신 처리 권한을 환원하고, 사용자 캐릭터(360)가 이동한 게임 존(320)의 존 서버(112)에 해당 사용자 캐릭터(360)에 대한 갱신 처리 권한이 부여되도록 하는 과정이다. 이때, 데이터 분산 처리 시스템(200)은 상술한 갱신 처리 권한 이외에, 갱신된 캐릭터 정보를 사용자 캐릭터(360)가 이동한 게임 존(320)의 존 서버(320)(또는 캐릭터 정보 데이터베이스(270))에 정보 이관되도록 제어할 수 있다.
따라서, 본 발명에 따르면 사용자 캐릭터(360) 위치에 따른 캐릭터 정보에 대한 갱신 처리 및 정보 이관이 유연하게 이루어지도록 함으로써 캐릭터 정보의 유실이나 왜곡을 최대한 억제하는 효과를 얻을 수 있다.
이하, 도 6b를 참조하여 사용자 캐릭터(360)의 게임 존(320) 이동에 따른 캐릭터 정보의 정보 이관에 대해 설명한다.
도 6b는 본 발명에 따른 캐릭터 정보에 대한 정보 이관 방법을 나타내는 작업 흐름도이다.
데이터 분산 처리 시스템(200)은 제1 존 서버로부터 갱신 처리된 캐릭터 정보를 복제하고, 복제된 캐릭터 정보를 제2 존 서버로 전송한다(S660). 본 단계(S660)는 사용자 캐릭터(360)가 제1 게임 존을 이탈하여 제2 게임 존으로 진입하는 경우, 캐릭터 정보에 대한 정보 이관이 수행되도록 하는 과정으로, 예컨대 게임 작동 제어 수단(250)에 의해 갱신된 캐릭터 정보를 제1 존 서버로부터 복사하여 제2 존 서버에 기록되도록 한다. 이때, 제1 존 서버는 캐릭터 정보를 기록 유지되도록 함으로써 발생할 수 있는 캐릭터 정보의 유실 또는 왜곡에 대비한다.
다음으로, 데이터 분산 처리 시스템(200)은 제2 존 서버에게 갱신 처리 권한을 부여함으로써 명령 처리가 제2 존 서버에서 담당하도록 제어한다(S670). 본 단계(S670)는 사용자 캐릭터(360)에 대한 명령 처리를 제2 존 서버에서 수행되도록 함으로써 정보 이관된 캐릭터 정보를 게임 진행에 따라 갱신되도록 하는 과정이다. 즉, 사용자 캐릭터(360)가 제2 게임 존에 위치함에 따라, 명령 처리를 수행하는 존 서버(112)를 변경하게 된다.
더불어, 데이터 분산 처리 시스템(200)은 표시 영역(350)에 표시되는 제1 게임 존에서의 이벤트 처리를 제1 존 서버에서 담당되도록 제어한다(S680). 본 단계(S680)는 기존의 명령 처리를 수행하던 제1 존 서버가 이벤트 처리를 수행하도록 처리 종류의 전환이 이루어지도록 하는 과정으로, 표시 영역(350) 상의 제1 게임 존과 관련된 화면을 클라이언트(120)에게 제공하게 된다(도 3b 참조).
따라서, 사용자 캐릭터(360)의 게임 존(320) 이동에 따른 존 서버(112) 사이에서의 유연한 처리 종류 전환이 이루어지도록 함으로써 게임 존(320) 경계 사이의 데이터 분산 처리가 효율적으로 이루어지도록 하는 효과를 얻을 수 있다.
본 발명의 다른 실시예로서 상술한 갱신 처리 권한이 환원되도록 하는 단계(S650)는, 표시 영역(350)의 매핑 지점이 제2 게임 존에 정의되는 버퍼 섹터를 이탈하는가의 여부에 따라 제1 존 서버와 클라이언트(120)와의 접속이 차단되도록 한다.
도 6c는 본 발명에 따른 제1 존 서버와 클라이언트와의 접속 차단 여부를 판단하는 방법을 나타내는 작업 흐름도이다.
우선, 데이터 분산 처리 시스템(200)은 제1 게임 존과의 경계를 기준으로제2 게임 존의 일부를 제2 버퍼 섹터로 정의한다(S651). 본 단계(S651)는 버퍼 섹터 정의 수단(230)에 의한 제2 게임 존의 일부 섹터(330)를 버퍼 섹터로 정의하는 과정으로, 상술한 버퍼 섹터의 정의 과정(단계 S520)의 설명으로 갈음하고 여기서는 생략한다.
다음으로, 데이터 분산 처리 시스템(200)은 표시 영역(350)이 제2 버퍼 섹터의 적어도 일부를 포함하는가의 여부를 판단한다(S652). 본 단계(S652)는 사용자 캐릭터(360)의 제1 게임 존 이탈 후, 표시 영역(350)의 매핑이 제2 버퍼 섹터에 형성되는가를 확인하는 과정으로, 즉 제2 게임 존에 위치한 사용자 캐릭터(360)가 제1 게임 존과의 경계에 어느 정도 근접하는 식별하고, 클라이언트(120)에게 제공되는 게임 화면 중에 제1 게임 존과 관련한 게임 화면의 제공 필요성을 확인하게 된다.
판단 결과, 표시 영역(350)이 제2 버퍼 섹터의 일부를 포함하는 경우(단계 S652의 Yes 방향), 데이터 분산 처리 시스템(200)은 제1 존 서버와 클라이언트(120)의 접속을 유지한다(S653). 본 단계(S653)는 제1 존 서버에 의한 이벤트 처리가 가능하도록 제1 존 서버와의 접속을 지속시키는 과정이며, 일정한 주기 경과 후 상기 단계(S652)로 귀환되도록 제어하여 표시 영역(350)이 버퍼 섹터의 적어도 일부를 포함하는지의 여부를 지속적으로 판단되도록 한다.
반면, 판단 결과 표시 영역(350)이 제2 버퍼 섹터를 포함하지 않는 경우(단계 S652의 No 방향), 데이터 분산 처리 시스템(200)은 제1 존 서버와 클라이언트(120)와의 접속을 차단한다(S654). 본 단계(S654)는 표시 영역(350) 내에 제1 게임 존과 관련하여 이벤트 처리 대상의 소멸에 따라 제1 존 서버와 클라이언트(120)의 접속을 해제하는 과정으로, 이후 클라이언트(120)는 사용자 캐릭터(360)에 대한 명령 처리를 위한 제2 존 서버만의 접속을 유지한다.
더불어, 판단 결과 표시 영역(350)이 버퍼 섹터를 포함하지 않는 경우, 데이터 분산 처리 시스템(200)은 제1 존 서버에 보유하는 캐릭터 정보를 삭제한다(S655). 본 단계(S655)는 사용자 캐릭터(360)의 위치가 제2 게임 존으로 변경되고, 표시 영역(350)의 매핑 지점이 제2 버퍼 섹터를 이탈하게 되는 시점에서, 제1 존 서버에 있는 캐릭터 정보를 소거시키는 과정이다. 즉, 캐릭터 정보의 정보 이관 시에, 유실이나 왜곡에 대비하여 제1 존 서버에 보유하고 있던 캐릭터 정보를 삭제하며, 캐릭터 정보에 대한 갱신 처리가 제2 존 서버에서 수행되도록 한다. 본 실시예에서 캐릭터 정보의 삭제는, 표시 영역(350)의 매핑 지점이 제1 게임 존을 이탈하는 시점을 기준으로 하고 있지만 이는 본 발명의 일 실시예에 불과하며, 예컨대 사용자 캐릭터(360)의 위치가 게임 존(320)을 변경하게 되는 시점을 기준으로 하는 등 다양한 기준 설정 방식이 있을 수 있음은 물론이다. 이러한 캐릭터 정보의 삭제 시점에 대한 기준 방식은, 시스템 환경을 고려한 본 시스템의 운영자에 의해 유연하게 결정될 수 있다.
따라서, 본 발명에 의하면 사용자 캐릭터(360)의 이동에 따라 클라이언트(120)와 접속되는 존 서버(112)의 변경이 최적화되도록 하여 특정 존 서버(112)로 데이터 부하가 집중되는 현상을 억제하고, 더불어 캐릭터 정보의 정보 이관 시의 정보 유실이나 왜곡을 최소화하는 효과를 얻을 수 있다.
이하, 본 발명의 다른 실시예로서 사용자 캐릭터(360)의 이동에 따른 표시 영역(350)의 재매핑에 대해 설명한다.
도 7은 본 발명에 따른 표시 영역의 매핑 지점을 재설정하는 방법을 나타내는 작업 흐름도이다.
본 실시예는 상술한 표시 영역(350)이 위치하는 게임 존(320)을 식별하는 단계(S430)에 포함되어 수행될 수 있다. 또한, 이동 제어선(370)은 상술한 도 3b에서 점선으로 표시한다.
우선, 데이터 분산 처리 시스템(200)은 표시 영역(350) 내에 게임 지도 상에서의 매핑 지점 변경을 위한 이동 제어선(370)을 확정한다(S710). 본 단계(S710)는 표시 영역(350)의 매핑 지점 변경을 인지하기 위해 일종의 가상선을 구획하는 과정으로, 이동 제어선(370)은, 예컨대 사용자 캐릭터(360)의 이동과 이에 따라 부드러운 게임 화면이 클라이언트(120)에게 제공되도록 하는 최적의 범위를 고려하여 본 시스템의 운영자에 의해 유연하게 결정될 수 있다.
다음으로, 데이터 분산 처리 시스템(200)은 표시 영역(350)에서의 사용자 캐릭터(360) 위치를 식별한다(S720). 본 단계(S720)는 매핑되는 표시 영역 내에서 사용자 캐릭터(360)의 위치를 인지하는 과정으로, 특히 사용자 캐릭터(360)의 위치가 이동 제어선(370)과 일치하는지의 여부를 판단하게 된다(S725). 즉, 사용자 캐릭터(360)의 이동이 일정 방향으로 지속됨에 따라 사용자 캐릭터(360)가 이동 제어선(370)에 근접하게 되고, 소정 시점에서 이동 제어선(370) 상에 사용자 캐릭터(360)가 위치되는지를 식별하게 된다.
상기 판단 단계(S725)에서 사용자 캐릭터(360)의 위치가 이동 제어선(370)과 일치하는 경우, 데이터 분산 처리 시스템(200)은 사용자 캐릭터(360)의 진입 방향에 기초하여 표시 영역(350)을 게임 지도 상에서 재매핑한다(S730). 즉, 게임 화면의 배경이 되는 소정의 게임 지도 데이터(310)를, 사용자 캐릭터(360)의 이동을 고려하여 재추출하고, 추출된 맵을 클라이언트(120)에 제공하게 된다.
반면, 판단 단계(S725)에서 사용자 캐릭터(360)의 위치가 이동 제어선(370)과 일치하지 않는 경우, 데이터 분산 처리 시스템(200)은 게임 화면으로 제공되는 맵을 유지하며 사용자 캐릭터(360)에 대한 명령 처리가 수행되도록 한다. 또한, 데이터 분산 처리 시스템(200)은 소정 주기(또는 실시간)마다 상기 판단 단계(S725)가 수행되도록 하여 사용자 캐릭터(360)의 위치에 대한 지속적인 식별이 이루어지도록 한다.
따라서, 본 발명에 의하면 사용자 캐릭터(360)의 이동에 따른 표시 영역(350)의 재매핑이 이루어지도록 하여 유연한 화면 전환이 이루어지도록 할 수 있다. 더불어, 일정 범위 내에서의 사용자 캐릭터(360) 이동을, 화면 전환 없이도 가능하도록 보장함으로써 불필요한 화면 전환을 억제하고 시스템 자원을 절약하는 효과를 얻을 수 있다.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
도 8은 본 발명에 따른 데이터 분산 처리 방법을 수행하는 데 채용될 수 있는 범용 컴퓨터 장치의 내부 블록도이다.
컴퓨터 장치(800)는 램(RAM: Random Access Memory)(820)과 롬(ROM: Read Only Memory)(830)을 포함하는 주기억장치와 연결되는 하나 이상의 프로세서(810)를 포함한다. 프로세서(810)는 중앙처리장치(CPU)로 불리기도 한다. 본 기술분야에서 널리 알려져 있는 바와 같이, 롬(830)은 데이터(data)와 명령(instruction)을 단방향성으로 CPU에 전송하는 역할을 하며, 램(820)은 통상적으로 데이터와 명령을 양방향성으로 전송하는 데 사용된다. 램(820) 및 롬(830)은 컴퓨터 판독 가능 매체의 어떠한 적절한 형태를 포함할 수 있다. 대용량 기억장치(Mass Storage)(840)는 양방향성으로 프로세서(810)와 연결되어 추가적인 데이터 저장 능력을 제공하며, 상기된 컴퓨터 판독 가능 기록 매체 중 어떠한 것일 수 있다. 대용량 기억장치(840)는 프로그램, 데이터 등을 저장하는데 사용되며, 통상적으로 주기억장치보다 속도가 느린 하드 디스크와 같은 보조기억장치이다. CD 롬(860)과 같은 특정 대용량 기억장치가 사용될 수도 있다. 프로세서(810)는 비디오 모니터, 트랙볼, 마우스, 키보드, 마이크로폰, 터치스크린 형 디스플레이, 카드 판독기, 자기 또는 종이 테이프 판독기, 음성 또는 필기 인식기, 조이스틱, 또는 기타 공지된 컴퓨터 입출력장치와 같은 하나 이상의 입출력 인터페이스(850)와 연결된다. 마지막으로, 프로세서(810)는 네트워크 인터페이스(870)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
이상의 설명에서 알 수 있는 바와 같이, 본 발명에 따르면, 게임 존의 경계를 기준으로 한 소정 범위를 버퍼 섹터로 정의하고, 표시 영역에 버퍼 섹터의 일부 영역이 포함함에 따라 사용자 캐릭터가 차기 이동할 게임 존의 존 서버를 클라이언트에 접속시키는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공할 수 있다.
또, 본 발명에 따르면, 표시 영역이 이종 게임 존 상에 위치함을 확인하고, 연관되는 존 서버를 클라이언트에 접속 시킴으로써 데이터의 부하가 특정 존 서버에 집중되는 것을 억제할 수 있는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공할 수 있다.
또, 본 발명에 따르면, 표시 영역 내의 사용자 캐릭터가 게임 존을 변경하여 위치하는 시점에서 캐릭터 정보에 대한 정보 이관이 수행되도록 하는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공할 수 있다.
또, 본 발명에 따르면, 사용자 캐릭터 위치에 따른 캐릭터 정보에 대한 갱신 처리 및 정보 이관이 유연하게 이루어지도록 함으로써 캐릭터 정보의 유실이나 왜곡을 최대한 억제하는 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터 분산 처리 시스템을 제공할 수 있다.

Claims (10)

  1. 삭제
  2. 온라인 게임 서버의 데이터 분산 처리 방법에 있어서,
    하나 이상의 게임 존으로 구획되는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스를 유지하는 단계;
    사용자 캐릭터에 대한 명령 처리의 수행을 위한 존 서버를, 상기 게임 존 각각으로 할당하는 단계;
    소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하고, 상기 매핑된 표시 영역이 위치하는 게임 존을 식별하는 단계; 및
    상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 단계
    를 포함하며,
    상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 상기 단계는,
    소정 사용자 캐릭터가 위치하는 제1 게임 존의 제1 존 서버와 상기 클라이언트를 접속시키는 단계;
    제2 게임 존과의 경계를 기준으로 상기 제1 게임 존의 일부를 버퍼 섹터로 정의하는 단계 - 상기 제2 게임 존은 상기 제1 게임 존에 인접하는 게임 존임 -; 및
    상기 표시 영역이 상기 버퍼 섹터의 적어도 일부를 포함하는 경우, 상기 제2 존 서버와 상기 클라이언트를 접속시키는 단계
    를 포함하고,
    상기 사용자 캐릭터에 대한 조작 제어와 관련된 상기 명령 처리는 상기 제1 존 서버에서 담당하도록 제어하고, 상기 표시 영역에 표시되는 상기 제2 게임 존과 관련된 이벤트 처리는 상기 제2 존 서버에서 담당되도록 제어하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  3. 제2항에 있어서,
    상기 제2 존 서버와 상기 클라이언트를 접속시키는 상기 단계는,
    상기 사용자 캐릭터의 캐릭터 정보를 저장하기 위한 캐릭터 정보 데이터베이스를 유지하는 단계;
    상기 캐릭터 정보를 복제하여 상기 제1 존 서버에 제공하는 단계;
    상기 제공된 캐릭터 정보에 대한 갱신 처리 권한을 상기 제1 존 서버에 부여하는 단계;
    상기 제1 존 서버의 명령 처리에 따라 상기 캐릭터 정보에 대한 갱신 처리를 수행하는 단계; 및
    상기 사용자 캐릭터가 상기 제1 게임 존을 이탈하는 경우, 상기 부여된 갱신 처리 권한이 환원되도록 하는 단계
    를 더 포함하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  4. 제2항에 있어서,
    상기 제2 존 서버와 상기 클라이언트를 접속시키는 상기 단계는,
    상기 제1 존 서버로부터 갱신 처리된 상기 캐릭터 정보를 복제하고, 상기 복제된 캐릭터 정보를 상기 제2 존 서버로 전송하는 단계;
    상기 제2 존 서버에게 갱신 처리 권한을 부여하고, 상기 명령 처리가 상기 제2 존 서버에서 담당하도록 제어하는 단계; 및
    상기 표시 영역에 표시되는 상기 제1 게임 존에서의 이벤트 처리를 상기 제1 존 서버에서 담당되도록 제어하는 단계
    를 더 포함하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  5. 제3항에 있어서,
    상기 부여된 갱신 처리 권한이 환원되도록 하는 상기 단계는,
    제1 게임 존과의 경계를 기준으로 상기 제2 게임 존의 일부를 제2 버퍼 섹터로 정의하는 단계
    상기 표시 영역이 상기 제2 버퍼 섹터의 적어도 일부를 포함하는가의 여부를 판단하는 단계; 및
    상기 판단 결과, 상기 표시 영역이 상기 제2 버퍼 섹터를 포함하지 않는 경우, 상기 제1 존 서버와 상기 클라이언트와의 접속을 차단하는 단계
    를 포함하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  6. 제5항에 있어서,
    상기 제1 존 서버와 상기 클라이언트와의 접속을 차단하는 상기 단계는,
    상기 제1 존 서버에 보유하는 상기 캐릭터 정보를 삭제하는 단계
    를 더 포함하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  7. 제2항에 있어서,
    상기 매핑된 표시 영역이 위치하는 게임 존을 식별하는 상기 단계는,
    상기 표시 영역 내에 상기 게임 지도 상에서의 매핑 지점 변경을 위한 이동 제어선을 확정하는 단계;
    상기 표시 영역에서의 상기 사용자 캐릭터 위치를 식별하는 단계; 및
    상기 사용자 캐릭터 위치가 상기 이동 제어선과 일치하는 경우, 상기 사용자 캐릭터의 진입 방향에 기초하여 상기 표시 영역을 상기 게임 지도 상에서 재매핑하는 단계
    를 포함하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  8. 온라인 게임 서버의 데이터 분산 처리 방법에 있어서,
    인접하는 제1 게임 존과 제2 게임 존 사이에 소정 크기의 버퍼 섹터를 배치하는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스를 유지하는 단계;
    상기 제1 게임 존에 제1 존 서버를, 상기 제2 게임 존에 제2 존 서버를 각각 할당하는 단계
    소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하는 단계; 및
    상기 표시 영역의 매핑 위치를 식별하고, 상기 식별된 매핑 위치에 근거하여 상기 제1 존 서버 또는 제2 존 서버를, 소정의 클라이언트에 접속되도록 제어하는 단계
    를 포함하고,
    상기 식별된 매핑 위치에 근거하여 상기 제1 존 서버 또는 제2 존 서버를, 소정의 클라이언트에 접속되도록 제어하는 상기 단계는,
    상기 표시 영역이 상기 버퍼 섹터의 적어도 일부를 포함하는 경우, 상기 제1 존 서버 및 상기 제2 서버를, 상기 클라이언트에 접속시키는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 방법.
  9. 제2항 내지 제8항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  10. 온라인 게임 서버의 데이터 분산 처리 시스템에 있어서,
    하나 이상의 게임 존으로 구획되는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스;
    사용자 캐릭터에 대한 명령 처리의 수행을 위한 존 서버를, 상기 게임 존 각각으로 할당하는 존 서버 관리 수단;
    인접하는 게임 존과의 경계를 기준으로 상기 게임 존의 일부를 버퍼 섹터로 정의하는 버퍼 섹터 정의 수단;
    소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하고, 상기 표시 영역이 위치하는 게임 존을 식별하는 표시 영역 매핑 수단; 및
    상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 게임 작동 제어 수단
    을 포함하며,
    게임 작동 제어 수단은 상기 표시 영역의 적어도 일부가 상기 버퍼 섹터에 위치하는 경우, 상기 인접하는 하나 이상의 게임 존과 연관되는 상기 존 서버를 상기 클라이언트에 접속되도록 제어하는 것을 특징으로 하는 온라인 게임 서버의 데이터 분산 처리 시스템.
KR1020040007586A 2004-02-05 2004-02-05 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템 KR100469826B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040007586A KR100469826B1 (ko) 2004-02-05 2004-02-05 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템
PCT/KR2005/000341 WO2005076189A1 (en) 2004-02-05 2005-02-04 Method for processing the data distributed at online game server and a system thereof
JP2006550958A JP4166809B2 (ja) 2004-02-05 2005-02-04 オンラインゲームサーバのデータ分散処理方法およびデータ分散処理システム
CNB2005800040953A CN100511249C (zh) 2004-02-05 2005-02-04 用于处理分布于在线游戏服务器的数据的方法及其系统
US11/496,931 US20070184904A1 (en) 2004-02-05 2006-07-31 Method for processing the data distributed at online game server and a system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040007586A KR100469826B1 (ko) 2004-02-05 2004-02-05 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020040008756A Division KR20050079606A (ko) 2004-02-10 2004-02-10 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템

Publications (1)

Publication Number Publication Date
KR100469826B1 true KR100469826B1 (ko) 2005-02-03

Family

ID=34836692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040007586A KR100469826B1 (ko) 2004-02-05 2004-02-05 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템

Country Status (5)

Country Link
US (1) US20070184904A1 (ko)
JP (1) JP4166809B2 (ko)
KR (1) KR100469826B1 (ko)
CN (1) CN100511249C (ko)
WO (1) WO2005076189A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150138871A (ko) 2014-05-29 2015-12-11 계명대학교 산학협력단 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법
KR101959181B1 (ko) 2018-12-21 2019-03-15 유충열 프린트 오더링을 위한 데이터 차원 배분 시스템
KR101996786B1 (ko) 2019-04-18 2019-07-04 유용호 데이터 다중 병렬 처리를 통한 원격 프린트 콘트롤 시스템
CN115317922A (zh) * 2022-09-01 2022-11-11 上海纵游网络技术有限公司 游戏角色数据分布式管理方法、系统、设备及存储介质

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4865366B2 (ja) * 2006-03-03 2012-02-01 株式会社ドワンゴ ネットワークゲームシステム及びネットワークゲーム方法
KR100883907B1 (ko) * 2006-09-15 2009-02-17 엔에이치엔(주) 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템
TWI398283B (zh) * 2007-10-02 2013-06-11 Legend Entertainment Co Ltd X 線上遊戲之伺服器架構系統及其方法
TWI357245B (en) * 2007-12-31 2012-01-21 Ind Tech Res Inst System and method for downloading real-time intera
JP5363505B2 (ja) * 2008-12-04 2013-12-11 株式会社ソニー・コンピュータエンタテインメント 仮想空間管理システム
US8602875B2 (en) 2009-10-17 2013-12-10 Nguyen Gaming Llc Preserving game state data for asynchronous persistent group bonus games
US11990005B2 (en) 2009-11-12 2024-05-21 Aristocrat Technologies, Inc. (ATI) Gaming system supporting data distribution to gaming devices
US9626826B2 (en) 2010-06-10 2017-04-18 Nguyen Gaming Llc Location-based real-time casino data
US8864586B2 (en) 2009-11-12 2014-10-21 Nguyen Gaming Llc Gaming systems including viral gaming events
US8597108B2 (en) 2009-11-16 2013-12-03 Nguyen Gaming Llc Asynchronous persistent group bonus game
CN102137068B (zh) * 2010-01-26 2014-07-09 王荣 一种实现网络游戏无缝世界服务器的方法
US8696470B2 (en) 2010-04-09 2014-04-15 Nguyen Gaming Llc Spontaneous player preferences
US9595161B2 (en) 2010-11-14 2017-03-14 Nguyen Gaming Llc Social gaming
US12100260B2 (en) 2010-11-14 2024-09-24 Aristocrat Technologies, Inc. (ATI) Multi-functional peripheral device
US9486704B2 (en) 2010-11-14 2016-11-08 Nguyen Gaming Llc Social gaming
US10052551B2 (en) 2010-11-14 2018-08-21 Nguyen Gaming Llc Multi-functional peripheral device
US9564018B2 (en) 2010-11-14 2017-02-07 Nguyen Gaming Llc Temporary grant of real-time bonus feature
US9235952B2 (en) 2010-11-14 2016-01-12 Nguyen Gaming Llc Peripheral management device for virtual game interaction
US9672686B2 (en) 2011-10-03 2017-06-06 Nguyen Gaming Llc Electronic fund transfer for mobile gaming
US9630096B2 (en) 2011-10-03 2017-04-25 Nguyen Gaming Llc Control of mobile game play on a mobile vessel
CN103297446B (zh) * 2012-02-23 2016-10-12 腾讯科技(深圳)有限公司 游戏资源分配的方法及服务器
US9233304B2 (en) * 2012-03-22 2016-01-12 Empire Technology Development Llc Load balancing for game
US9325203B2 (en) 2012-07-24 2016-04-26 Binh Nguyen Optimized power consumption in a gaming device
US10176666B2 (en) 2012-10-01 2019-01-08 Nguyen Gaming Llc Viral benefit distribution using mobile devices
EP2745892B1 (en) * 2012-12-21 2018-12-12 Dassault Systèmes Partition of a 3D scene into a plurality of zones processed by a computing resource
US9600976B2 (en) 2013-03-15 2017-03-21 Nguyen Gaming Llc Adaptive mobile device gaming system
US10421010B2 (en) 2013-03-15 2019-09-24 Nguyen Gaming Llc Determination of advertisement based on player physiology
US9814970B2 (en) 2013-03-15 2017-11-14 Nguyen Gaming Llc Authentication of mobile servers
US11398131B2 (en) 2013-03-15 2022-07-26 Aristocrat Technologies, Inc. (ATI) Method and system for localized mobile gaming
US9483901B2 (en) 2013-03-15 2016-11-01 Nguyen Gaming Llc Gaming device docking station
CN103699415A (zh) * 2013-12-23 2014-04-02 中国航空工业集团公司第六三一研究所 一种高效的机载设备地形数据加载方法
JP2017037446A (ja) * 2015-08-10 2017-02-16 日本電信電話株式会社 ゲームサーバ装置および分散処理方法
US10916090B2 (en) 2016-08-23 2021-02-09 Igt System and method for transferring funds from a financial institution device to a cashless wagering account accessible via a mobile device
US11386747B2 (en) 2017-10-23 2022-07-12 Aristocrat Technologies, Inc. (ATI) Gaming monetary instrument tracking system
CN112675534A (zh) * 2020-12-22 2021-04-20 北京像素软件科技股份有限公司 数据处理方法和装置、服务器及存储介质
US11571619B1 (en) * 2021-08-16 2023-02-07 Amazon Technologies, Inc. Cross-region management of game server fleets
US11571618B1 (en) * 2021-08-16 2023-02-07 Amazon Technologies, Inc. Multi-region game server fleets

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734701A (en) * 1994-04-26 1998-03-31 Brother Kogyo Kabushiki Kaisha Information transmission/reception device
JP3737885B2 (ja) * 1998-06-02 2006-01-25 大日本印刷株式会社 仮想空間共有システム
GB9817834D0 (en) * 1998-08-14 1998-10-14 British Telecomm Predicting avatar movement in a distributed virtual environment
KR100331603B1 (ko) * 1999-08-13 2002-04-06 안병엽 분산 가상 환경에서의 확장성을 위한 영역간 상호 작용 관리방법
KR100355990B1 (ko) * 2000-08-12 2002-10-18 (주)아이엠티소프트 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법
JP2003144754A (ja) * 2001-08-28 2003-05-20 Square Co Ltd サーバ装置、プレイヤ情報管理方法、プレイヤ情報管理プログラム、及びプレイヤ情報管理プログラムを記録した記録媒体
KR20040010038A (ko) * 2002-07-26 2004-01-31 이남재 온라인 롤플레잉게임용 서버

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150138871A (ko) 2014-05-29 2015-12-11 계명대학교 산학협력단 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법
KR101959181B1 (ko) 2018-12-21 2019-03-15 유충열 프린트 오더링을 위한 데이터 차원 배분 시스템
KR101996786B1 (ko) 2019-04-18 2019-07-04 유용호 데이터 다중 병렬 처리를 통한 원격 프린트 콘트롤 시스템
CN115317922A (zh) * 2022-09-01 2022-11-11 上海纵游网络技术有限公司 游戏角色数据分布式管理方法、系统、设备及存储介质

Also Published As

Publication number Publication date
WO2005076189A1 (en) 2005-08-18
CN1918574A (zh) 2007-02-21
US20070184904A1 (en) 2007-08-09
JP2007528762A (ja) 2007-10-18
JP4166809B2 (ja) 2008-10-15
CN100511249C (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
KR100469826B1 (ko) 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템
JP5967672B2 (ja) データベース管理システム、計算機、データベース管理方法
US7783737B2 (en) System and method for managing supply of digital content
WO2012117453A1 (ja) 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法
RU2701118C2 (ru) Администрирование центра обработки данных многорежимных серверов
KR100481140B1 (ko) 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를제공하는 온라인 게임 방법 및 온라인 게임 시스템
CN100347692C (zh) San系统中虚拟化智能控制器的实现方法
CN113900773B (zh) 一种基于国产平台虚拟机和容器的超融合调度方法
CN106133676A (zh) 存储系统
US9092158B2 (en) Computer system and its management method
JP2002259172A (ja) 情報処理システム
CN103678892A (zh) 一种角色对象管理的方法和装置
CN105912698A (zh) 磁盘中数据文件的删除方法及系统
CN111090531B (zh) 一种图形处理器分布式虚拟化的实现方法及分布式系统
TW531706B (en) Method and apparatus in a data processing system for dynamic graphics context switching
JPWO2013175609A1 (ja) データベース管理システム、計算機、データベース管理方法
KR20050079606A (ko) 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템
WO2023125875A1 (en) Correlation-based streaming method for game data
US12028269B2 (en) Method for optimal resource selection based on available GPU resource analysis in large-scale container platform
Kumar et al. An extended approach to Non-Replicated dynamic fragment allocation in distributed database systems
CN110659312B (zh) 数据处理的方法、装置、设备和计算机存储介质
JP2003288243A (ja) 記憶装置システムの制御方法および記憶装置、管理装置、およびプログラム
CN106528447A (zh) 一种分布式san的缓存同步方法
KR100651824B1 (ko) 캐시 상의 프레임을 처리하는 방법 및 프레임 처리 시스템
CN104571953B (zh) 一种扩展进程中内存地址控制的方法

Legal Events

Date Code Title Description
A201 Request for examination
A107 Divisional application of patent
A302 Request for accelerated examination
E902 Notification of reason for refusal
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: 20111228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 16