상기의 목적을 이루기 위한 본 발명의 일실시예에 따른 온라인 게임 서버의 데이터 분산 처리 방법은, 하나 이상의 게임 존으로 구획되는 게임 지도 데이터를 저장하기 위한 존 정보 데이터베이스를 유지하는 단계와, 사용자 캐릭터에 대한 명령 처리의 수행을 위한 존 서버를, 상기 게임 존 각각으로 할당하는 단계와, 소정의 디스플레이 수단에 표시되는 표시 영역을 상기 게임 지도 데이터에 매핑하고, 상기 매핑된 표시 영역이 위치하는 게임 존을 식별하는 단계, 및 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 단계를 포함하며, 상기 식별된 게임 존에 할당되는 존 서버와 소정의 클라이언트를 접속시키는 상기 단계는, 소정 사용자 캐릭터가 위치하는 제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)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.