본 발명의 목적을 달성하기 위하여, 본 발명의 바람직한 일실시예에 따른 온라인 게임에서 캐릭터의 위치 정보를 제공하는 방법은, 제1 사용자의 메신저 클라이언트로부터 제2 사용자의 캐릭터 위치 정보 요청 신호를 수신하는 단계; 상기 제2 사용자의 메신저 클라이언트로 상기 캐릭터 위치 정보 요청 신호에 대응하는 캐릭터 위치 정보 쿼리를 전송하는 단계; 상기 제2 사용자의 상기 메신저 클라이언트로부터 상기 캐릭터 위치 정보 쿼리에 대응하는 캐릭터 위치 정보 응답을 수신하는 단계; 및 상기 캐릭터 위치 정보 응답을 상기 제1 사용자의 상기 메신저 클라이언트로 전송하는 단계를 포함하고, 상기 제1 사용자의 상기 메신저 클라이언트는 상기 캐릭터 위치 정보 응답을 가공하여 상기 제1 사용자의 단말기에 상기 제2 사용자의 캐릭터 위치 정보를 표시하도록 제어하고, 상기 제2 사용자의 상기 메신저 클라이언트는 상기 제2 사용자의 게임 모듈로부터 상기 제2 사용자의 캐릭터 위치 정보를 수신하는 것을 특징으로 한다.
또한, 본 발명의 다른 일측면에 따른 온라인 게임에서 캐릭터의 위치 정보를 제공 받는 방법은, 상기 온라인 게임을 실행하기 위한 게임 모듈을 저장 수단에 유지하는 단계; 소정의 메신저 서버에 접속하여 하나 이상의 사용자와 통신하기 위한 메신저 클라이언트를 상기 저장 수단에 유지하는 단계; 상기 온라인 게임의 게임 서버에 접속한 제2 사용자의 캐릭터 위치 정보 요청 신호를 전송하는 단계; 상기 제2 사용자의 메신저 클라이언트로부터 상기 캐릭터 위치 정보 요청 신호에 대응하는 캐릭터 위치 정보 응답을 수신하는 단계; 및 상기 수신된 캐릭터 위치 정보 응답을 가공하여 상기 제1 사용자의 단말기에 상기 제2 사용자의 캐릭터 위치 정보를 표시하도록 제어하는 단계를 포함하고, 상기 제2 사용자의 상기 메신저 클라이언트는 상기 제2 사용자의 게임 모듈로부터 상기 제2 사용자의 캐릭터 위치 정보를 수신하는 것을 특징으로 한다.
또한, 본 발명의 일측면에 따른 캐릭터의 위치 정보를 제공하는 온라인 게임 시스템은, 하나 이상의 사용자의 메신저 클라이언트 간의 통신을 통하여 제1 사용자의 메신저 클라이언트로부터 수신된 제2 사용자의 캐릭터 위치 정보 요청 신호를 상기 제2 사용자의 메신저 클라이언트로 전송하고, 상기 제2 사용자의 메신저 클라이언트로부터 수신된 캐릭터 위치 정보 응답을 상기 제1 사용자의 메신저 클라이언트로 전송하는 메신저 서버; 상기 온라인 게임 수행에 필요한 소정의 정적(static) 데이터를 기록하는 맵 데이터베이스; 및 상기 하나 이상의 사용자의 게임 모듈 간의 통신을 통해 상기 온라인 게임을 수행하도록 제어하며, 상기 온라인 게임 수행에 필요한 소정의 동적(dynamic) 데이터를 상기 메신저 서버로 전송하여 데이터 동기화를 수행하는 게임 서버를 포함하고, 상기 제1 사용자의 상기 메신저 클라이언트는 상기 메신저 서버로부터 수신한 캐릭터 위치 정보 응답을 가공하여 상기 제1 사용자의 단말기에 상기 제2 사용자의 캐릭터 위치 정보를 표시하도록 제어하고, 상기 제2 사용자의 상기 메신저 클라이언트는 상기 제2 사용자의 게임 모듈로부터 상기 제2 사용자의 캐릭터 위치 정보를 수신하여 상기 메신저 서버로 전송하도록 동작하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를 제공하는 온라인 게임 방법 및 온라인 게임 시스템에 대하여 상술한다.
도 2는 본 발명에 따른 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를 제공하는 온라인 게임 시스템의 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명에 따른 온라인 게임 시스템은 크게 게임 서버(220)와 메신저 서버(230), 맵 데이터베이스(240)을 포함하여 구성되고, 소정의 통신망을 통해 하나 이상의 사용자 단말기(210)가 접속된다.
사용자 단말기(210)는 통신망을 통하여 소정의 게임 서비스 제공 계약 관계에 있는 게임 서버(220)로부터 게임 진행을 위한 게임 데이터 또는 게임 패치를 수신함으로써 온라인 게임 서비스를 제공 받는 인터넷 이용자 측에 구비된 단말기를 의미한다. 이러한 사용자 단말기(210)는 인터넷망, 전화선 등의 통신망을 통해 게임 서버(220)와의 접속 상태를 유지하여 온라인 게임을 구현하는 하는 장치이며, 예컨대 퍼스널 컴퓨터, 핸드헬드 컴퓨터(handheld computer), PDA(Personal Digital Assistant), 휴대폰, 스마트폰 등과 같이 소정의 메모리 수단을 구비하고 소정의 마이크로프로세서를 탑재함으로써 소정의 연산 능력을 갖춘 단말기를 통칭하는 개념이다.
맵 데이터베이스(240)는 본 발명에 따른 온라인 게임 서비스를 수행하는데 필요한 정적 데이터를 기록한다. 본 발명에 따른 온라인 게임 서비스를 수행하기 위한 정보는 크게 정적(static) 데이터와 동적(dynamic) 데이터를 포함할 수 있다. 정적 데이터라 함은, 온라인 게임에 필요한 맵 데이터, 지명, 이름, 지역 구별을 위해 수치화된 정보 등과 같이 온라인 게임 서비스 개시 후 변하지 아니하는 데이터를 의미한다. 또한, 동적 데이터라 함은 MMORPG 수행시 발생하는 성, 해당 지역의 소유 길드 정보 등의 지속적으로 변화하는 데이터를 의미한다. 본 발명에 따른 온라인 게임 시스템에서는 상기 정적 데이터를 맵 데이터베이스(240)에 기록하고, 게임 서버(220) 및 메신저 서버(230)에서는 맵 데이터베이스(240)로 억세스하여 온라인 게임 수행 또는 캐릭터 위치 정보 제공에 필요한 정적 데이터를 얻을 수 있다.
게임 서버(220)는 하나 이상의 사용자 단말기(210)를 통하여 온라인 게임 서비스를 제공하기 위한 것으로서, 온라인 게임 내에 포함되는 하나 이상의 존(zone)에 대한 사용자 접속 관리 및 게임 진행을 제어하는 하나 이상의 존 서버를 포함하여 구성될 수 있다. 이러한 게임 서버(220)는 사용자 단말기와 통신망을 통하여 연결되고, 소정 계약 관계에 있는 사용자에게 온라인으로 게임 서비스가 제공되도록 하는 역할을 수행하는, 예컨대 머드(MUD; Multiple User Dialogue) 게임 서버, 머그(MUG; Multiple User Graphic) 게임 서버 등을 의미할 수 있다. 게임 서버(220)에서 제공하는 게임 서비스는, 사용자 단말기에 게임 관련 프로그램을 설치한 게임 모듈이 본 발명에 따른 게임 서버(220)에 접속하는 경우, 게임에 필요한 소정의 게임 진행 데이터 또는 게임 패치(patch) 데이터를 단말 수단으로 전송하고, 게임 모듈에 의해 제어되는 사용자 캐릭터를 이용하여 게임 진행이 수행되도록 지원한다. 이러한 게임 서버(220)의 구체적인 설명은 도 3a를 참조하여 후술한다.
메신저 서버(230)는 하나 이상의 사용자의 메신저 클라이언트 간의 통신을 수행할 수 있도록 하는 것으로서, 마이크로소프트사의 MSN 등의 종래의 메신저 서버와 유사하게 설계된 메신저 서버이거나, 본 발명에 따른 캐릭터 위치 정보 제공을 위해 특별히 설계된 메신저 서버를 이용할 수 있다. 본 발명에 따른 메신저 서버(230)는 맵 데이터베이스(240)로부터 캐릭터 위치 정보 제공에 필요한 정적 데이터를 훼치(fetch)하고, 게임 서버(220)와의 통신을 통하여 보다 정확한 캐릭터 위치 정보 제공에 필요한 동적 데이터를 얻음으로써, 하나 이상의 사용자의 메신저 클라이언트를 통하여 온라인 게임 상의 캐릭터의 위치 정보를 제공하도록 동작한다. 이러한 메신저 서버(230)에 대한 구체적인 설명은 이하 도 3a를 참조하여 상술한다.
도 3a는 본 발명의 일실시예에 따른 게임 서버 및 메신저 서버의 구성을 도시한 구성 블록도이다.
도 3a를 참조하면, 본 발명에 따른 게임 서버(300)는 로그인 서버(301), 하나 이상의 존 서버(302 내지 304), 캐릭터 정보 데이터베이스(305), 존 정보 데이터베이스(306), 데이터베이스 관리부(307), 및 메신저 서버 통신부(308)를 포함하여 구성될 수 있고, 본 발명에 따른 메신저 서버(320)는 로그인 서버(321), 사용자 정보 데이터베이스(322), 및 게임 서버 통신부(323)를 포함하여 구성될 수 있다.
본 발명에 따른 게임 서버(300)의 로그인 서버(301)는 게임 사용자의 접속 관리를 수행한다. 게임 사용자로부터 입력된 로그인 아이디 및 비밀 번호를 통하여 해당 게임 사용자를 인증하고, 해당 게임 사용자의 로그인 이력 관리를 수행한다. 구현에 따라 로그인 서버(301)는 소정의 과금 서버(도시되지 아니함)와 연동하여 상기 게임 사용자에게 제공된 게임 서비스에 대한 과금을 수행하도록 동작할 수 있다.
존 서버(302 내지 304)는 게임 서버(300) 내에서 게임 진행에 필요한 게임 지도 데이터("월드")를 소정 영역의 범위(크기)로 구획하여 하나 이상의 존(zone)을 정의하고, 정의된 각 존에서 진행되는 온라인 게임 수행 제어를 수행하는 구성 모듈이다. 이러한 존은 하나 이상의 셀로 세분화될 수 있다.
도 3a에서는, 게임 지도 데이터를 3개의 존으로 구분하고, 각 존에 할당되는 3개의 존 서버(302 내지 304)를 예시하고 있다. 상술한 것과 같이, 존은 본 발명에 따른 온라인 게임 시스템의 운영자에 의해 그 크기 및 개수 등이 설정될 수 있으며, 온라인 게임에서의 명령 처리가 존 단위로 한정하여 데이터 분산 처리가 수행되도록 한다. 여기서, 명령 처리는 사용자 클라이언트인 게임 모듈로부터 수신되는 사용자의 명령 신호에 따라 특정 사용자 캐릭터의 조작을 통한 게임 진행이 수행되도록 하는 신호 처리를 의미할 수 있다. 예컨대, 존에서 발생될 수 있는 명령 처리로는 사용자 게임 모듈로부터 수신된 제어 조작에 따라 사용자 캐릭터를 이동시키거나 특정 몬스터에게 공격 행위를 가하는 등의 사용자 캐릭터 조작 제어와 관련된 처리 및 해당 존에 등장하는 배경 사물(나무, 건물, 물 등)이나 기타 캐릭터(몬스터, 타 사용자 캐릭터, NPC 등)가 사용자 캐릭터의 이동에 따라 변경되어 표시되도록 하는 처리 등이 있을 수 있다.
캐릭터 정보 데이터베이스(305)는 본 발명에 따른 온라인 게임을 수행하는 캐릭터에 대한 정보를 기록한다. 이러한 캐릭터 정보 데이터베이스(305)의 테이블 구조의 일예가 도 3b에 도시되어 있다.
도 3b는 본 발명의 일실시예에 따른 게임 서버에 포함된 캐릭터 정보 데이터베이스 테이블의 일예를 도시한 도면이다. 도 3b를 참조하면, 본 발명에 따른 온라인 게임 시스템의 게임 서버(300)의 캐릭터 정보 데이터베이스(305)는 사용자 ID, 캐릭터 이름, 로그인 정보, 현재 해당 캐릭터에 대한 명령 처리를 수행하는 존 서버에 관한 정보, 현재 캐릭터의 위치 좌표 정보 등이 기록될 수 있다.
로그인 정보(380)는 본 발명에 따른 온라인 게임 시스템에서 특정 사용자의 캐릭터 위치 정보를 제공하는 경우, 해당 사용자가 온라인 게임 시스템에 로그인하였는지 여부를 나타내는 것으로서, 로그인 정보가 'On'(381)인 경우 해당 사용자의 캐릭터는 온라인 게임 시스템에 로그인되어 있음을 의미한다. 본 발명에 따른 온라인 게임 시스템에서 사용자는 하나의 사용자 ID에 대응하여 하나 이상의 캐릭터를 보유할 수 있으며, 이는 사용자가 본 발명에 따른 온라인 게임 시스템(300)으로 로그인하는 경우 로그인 서버(301)과의 통신을 통하여 자신이 플레이할 캐릭터를 선택할 수 있도록 함으로써 구현될 수 있다.
존 정보 데이터베이스(306)는 온라인 게임에서 시스템 운영자의 설계에 따라 구획된 하나 이상의 존에 대한 정보를 기록한다. 이러한 존 정보 데이터베이스(306)는 하나 이상의 존 서버(302 내지 304)와 통신을 하여, 해당 존에 위치하는 사용자 캐릭터, 해당 존에서 생성 또는 소멸되는 몬스터 및 아이템 등에 대한 정보를 관리한다.
데이터베이스 관리부(307)은 본 발명에 따른 게임 서버(300)의 캐릭터 정보 데이터베이스(305) 및 존 정보 데이터베이스(306)을 관리하기 위한 것으로서, 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), DB2와 같은 관계형 데이터베이스 관리 시스템(RDBMS)이나, 겜스톤(Gemston), 오리온(Orion), O2 등과 같은 객체 지향 데이터베이스 관리 시스템(OODBMS)을 이용하여 본 발명의 목적에 맞게 구현될 수 있다.
메신저 서버 통신부(308)는 본 발명에 따른 메신저 서버(320)와의 통신을 위한 인터페이싱을 담당하는 것으로서, 게임 서버(300) 내에서 정적 데이터가 갱신된 경우 갱신된 정적 데이터를 맵 데이터베이스(310)에 기록할 뿐 아니라, 게임 수행시 필요한 동적 데이터를 메신저 서버(320)로 주기적 또는 비주기적으로 전송함으로써 게임 서버(300)와 메신저 서버(320) 간의 데이터 동기화를 수행한다.
메신저 서버(320)의 로그인 서버(321)는 하나 이상의 사용자 단말기에 설치된 메신저 클라이언트로부터의 접속 요청을 수신하고, 상기 사용자의 접속 관리를 수행한다. 메신저 클라이언트로부터 전송된 로그인 아이디 및 비밀 번호를 통하여 해당 메신저 사용자를 인증하고, 해당 메신저 사용자의 로그인 이력 관리를 수행한다. 구현에 따라 로그인 서버(321)는 소정의 콘텐츠 제공 서버(도시되지 아니함)와 연동하여 상기 메신저 사용자에게 다양한 콘텐츠(음악, 아바타 꾸미기 등)를 제공하도록 동작할 수 있다.
사용자 정보 데이터베이스(322)는 본 발명에 따른 온라인 게임에서 캐릭터 위치 정보를 제공하거나 제공 받고자 하는 사용자에 대한 정보를 기록한다. 이러한 사용자 정보 데이터베이스(322)의 테이블 구조의 일예가 도 3c에 도시되어 있다.
도 3c는 본 발명의 일실시예에 따른 메신저 서버에 포함된 사용자 정보 데이터베이스 테이블의 일예를 도시한 도면이다. 도 3c를 참조하면, 본 발명에 따른 메신저 서버(320)의 사용자 정보 데이터베이스에는 사용자 ID 등의 사용자 기본 정보 이외에 위치 정보 제공 허용 필드(370)가 포함되어 있다. 이러한 위치 정보 제공 허용 필드(370)는 사용자의 설정에 따라 플래그 설정 또는 플래그 해제가 될 수 있는 것으로서, 다른 사용자로부터 자신의 위치 정보 제공 요청이 있는 경우 이러한 요청에 대응하여 자신의 위치 정보를 상기 다른 사용자에게 제공할 것인지 여부를 나타내는 것이다. 일예로, 사용자 ID 'pencee'의 경우 하나 이상의 캐릭터에 대한 위치 정보 제공 허용 필드에 허용 플래그(371)를 설정해 두고 있다.
도 4a 및 도 4b는 본 발명의 일실시예에 따른 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를 제공하는 온라인 게임 방법을 도시한 흐름도이다.
도 4a를 참조하면, 본 발명의 일실시예에 따른 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를 제공하는 온라인 게임 방법은 다음의 단계를 포함하여 수행될 수 있다.
본 발명에 따른 온라인 게임 시스템은 맵 데이터베이스를 포함한다(단계 401). 상술한 바와 같이 맵 데이터베이스는 본 발명에 따른 온라인 게임 서비스를 수행하는데 필요한 정적 데이터를 기록하는 것으로서, 정적 데이터의 일예로 온라인 게임에 필요한 맵 데이터, 지명, 이름, 지역 구별을 위해 수치화된 정보 등과 같이 온라인 게임 서비스 개시 후 변하지 아니하는 데이터를 들 수 있다.
또한, 본 발명에 따른 온라인 게임 시스템의 메신저 서버 및 게임 서버는 온라인 게임 수행시 발생하는 성, 소유 길드 등의 지속적으로 변화하는 동적 데이터 동기화를 수행한다(단계 402). 이는 게임 서버의 기록 수단에 저장된 동적 데이터를 메신저 서버에서 훼치(fetch)함으로써 수행될 수 있다.
단계 401 및 단계 402의 정적 데이터 또는 동적 데이터는 사용자의 게임 서버 접속 또는 메신저 서버 접속시 사용자 단말기의 저장 수단에 기록될 수 있다.
소정의 제2 사용자의 캐릭터 위치 정보를 검색하고자 하는 사용자인 제1 사용자는 메신저 클라이언트를 통해 메신저 서버로 제2 사용자 위치 정보 요청을 전송한다(단계 403). 이를 수신한 메신저 서버는 제2 사용자가 메신저 서버에 로그인되어 있는지 여부를 확인하고(단계 404, 405)), 로그인이 되어 있는 경우에는 제2 사용자가 온라인 게임에 로그인 되어 있는지 여부를 확인한다(단계 407, 408). 단계 404 및 단계 405는 메신저 서버의 로그인 서버를 통하여 해당 사용자가 로그인되어 있는지 여부를 판단하도록 구현될 수 있다. 또한 단계 407 및 단계 408은 게임 서버의 캐릭터 정보 데이터베이스의 로그인 정보 필드를 검색하여 해당 사용자가 로그인되어 있는지 여부를 판단하도록 구현될 수 있다.
단계 405에서 제2 사용자가 메신저 서버에 로그인되어 있지 아니한 것으로 판단되는 경우에는 제2 사용자의 미접속으로 인해 제2 사용자의 위치 정보 검색이 불가능하다는 취지의 메시지를 제1 사용자의 메신저 클라이언트로 전송한다(단계 406).
또한, 단계 408에서 제2 사용자가 게임 서버에 로그인되어 있지 아니한 것으로 판단되는 경우에는 제2 사용자가 게임 서버에 접속하고 있지 아니하다는 취지의 메시지를 제1 사용자의 메신저 클라이언트로 전송한다(단계 409).
단계 408에서 제2 사용자가 본 발명에 따른 게임 서버에 접속되어 있는 것으로 판단된 경우, 제2 사용자의 메신저 클라이언트로 제1 사용자로부터 수신된 위치 정보 요청을 전송한다(단계 410).
도 4a에 이어, 도 4b를 참조하면 본 발명의 일실시예에 따른 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를 제공하는 온라인 게임 방법은 다음의 단계를 포함하여 수행될 수 있다.
제2 사용자의 메신저 클라이언트는 도 4a의 단계 410에서 전송된 위치 정보 요청을 수신하고(단계 451), 제2 사용자의 단말기에 설치된 게임 모듈로 해당 사용자의 게임 캐릭터 위치 정보 쿼리를 전송한다(단계 452). 제2 사용자의 게임 모듈은 제2 사용자의 현재 위치 정보를 검색하고(단계 453), 검색된 제2 사용자의 현재 위치 정보를 포함한 확인 응답(ACK)를 메신저 클라이언트로 전송한다(단계 454). 제2 사용자의 메신저 클라이언트는 상기 위치 정보를 포함하는 위치 정보 응답을 메신저 서버로 전송하고(단계 455), 이를 수신한 메신저 서버는 제1 사용자의 메신저 클라이언트로 위치 정보 응답을 전송한다(단계 456). 제1 사용자의 메신저 클라이언트는 전송된 위치 정보 응답을 수신하고(단계 457), 해당 위치 정보를 제1 사용자의 게임 모듈로 전달하며, 제1 사용자의 게임 모듈은 전달된 위치 정보를 가공하여(단계 458), 제2 사용자의 현재 위치 정보를 다양한 방식으로 제1 사용자에게 표시하여 줄 수 있다(단계 459).
단계 459에서, 위치 정보를 표시하는 방법은 크게 (1) 텍스트 기반 표시, (2) 그래픽 유저 인터페이스(GUI)를 이용한 표시로 구분될 수 있고, 이러한 표시 방법은 정적 데이터 기반의 표시 및 동적 데이터 포함 표시로 다시 세분화될 수 있다.
텍스트 기반 표시는 제2 사용자의 위치 정보를 소정의 지형 정보와 함께 텍스트 형식으로 가공하여 제1 사용자에게 제공하는 것으로서. 일예로 '바람에 날다 님은 현재 레인 마을 28, 83 지점에 있습니다'의 형식으로 위치 정보를 제공할 수 있다.
그래픽 유저 인터페이스(GUI)를 이용한 표시는 제2 사용자의 위치 정보를 소정의 맵 데이터와 함께 그래픽 유저 인터페이스 방식으로 가공하여 제1 사용자에게 제공하는 것으로서, 제1 사용자의 사용자 단말기 저장 수단에 저장된 맵 데이터와 제2 사용자의 메신저 클라이언트로부터 전송된 위치 정보(좌표 정보 등)를 이용하여 상기 맵 데이터에 제2 사용자의 캐릭터의 현재 위치를 구분되도록 표시하는 방식으로 위치 정보를 제공할 수 있다.
또한, 정적 데이터 기반의 표시는 변동하지 아니하는 데이터, 즉 온라인 게임 진행에서 변화하지 아니하는 지명 또는 좌표 정보에 기초한 위치 정보를 제공하는 방법을 의미할 수 있고, 동적 데이터 기반의 표시는 지속적으로 변동하는 데이터인 성 또는 길드 정보를 포함하여 위치 정보를 제공하는 방법을 의미할 수 있다. 이러한 동적 데이터 기반의 표시의 일예로 '바람에 날다 님은 현재 레인보우 길드 소속의 영지 내의 만다마을 28, 83 지점에 있습니다'를 들 수 있다.
이와 같이 위치 정보를 가공하여 제1 사용자에게 제공하기 위한 지형 정보(존 정보, 셀 정보, 해당 셀의 명칭 정보, 해당 셀의 베이스포인트 좌표 정보 등) 또는 맵 데이터는 사용자 단말기의 저장 수단에 미리 기록되는데, 제1 사용자와 제2 사용자는 메신저 클라이언트를 통하여 위치 정보를 송수신하고, 상기 위치 정보를 이용하여 사용자 단말기 단에서 상기 지형 정보 또는 상기 맵 데이터를 토대로 상기 위치 정보를 가공하여 표시함으로써, 캐릭터의 위치 정보 제공을 위한 게임 서버의 부하를 줄일 수 있다는 장점이 있다.
도 4c는 본 발명의 일실시예에 따라 사용자 단말기로 제공된 위치 정보를 가공하여 사용자에게 표시하는 위치 정보 처리 방법의 일예를 도시한 흐름도이다.
도 4c를 참조하면, 본 발명에 따라 사용자 단말기로 제공된 위치 정보를 가공하여 사용자에게 표시하는 방법은 다음의 단계를 포함하여 수행될 수 있다.
제1 사용자의 메신저 클라이언트는 제2 사용자의 메신저 클라이언트로부터 전송된 위치 정보 응답을 수신한다(단계 471). 수신된 위치 정보는 게임 모듈로 전달되고(단계 472), 게임 모듈은 사용자 단말기의 저장 수단에 지형 정보가 저장되어 있는지 여부를 판단한다(단계 473). 단계 473에서 사용자 단말기의 저장 수단에 지형 정보가 저장되어 있지 아니한 것으로 판단된 경우, 게임 모듈은 메신저 클라이언트에 지형 정보를 요청하고(단계 474), 메신저 클라이언트는 지형 정보를 포함한 확인 응답을 게임 모듈로 전송한다(단계 475). 단계 475에서 메신저 클라이언트는 해당 지형 정보를 메신저 서버로부터 전송 받을 수 있고, 전송된 지형 정보를 게임 모듈로 포워딩하도록 동작할 수 있다.
단계 473에서 사용자 단말기의 저장 수단에 지형 정보가 저장되어 있는 것으로 판단되거나 단계 475에서 메신저 클라이언트로부터 지형 정보를 수신한 경우, 게임 모듈에서는 지형 정보를 이용하여 위치 정보를 가공한다(단계 476). 이러한 위치 정보의 가공 절차는 상술한 바와 같이 (1) 텍스트 기반의 표시 또는 (2) GUI 기반의 표시로 구분될 수 있다.
단계 477에서 해당 위치 정보를 GUI 맵 상에 표시할 것인지 여부를 판단하고, GUI 맵 상에 표시하지 아니하는 경우에는 해당 위치 정보를 텍스트 형식으로 메신저 클라이언트를 통하여 사용자에게 제공한다(단계 478). 단계 477에서 해당 위치 정보를 GUI 맵 상에 표시하는 것으로 판단된 경우에는 GUI 맵 데이터로 표시하기 위한 맵 데이터가 사용자 단말기의 저장 수단에 저장되어 있는지 여부를 판단하고(단계 479), 맵 데이터가 저장되어 있는 경우 상기 맵 데이터를 이용하여 GUI 형식으로 위치 정보를 표시한다(단계 481). 단계 479에서 사용자 단말기의 저장 수단에 상기 맵 데이터가 저장되어 있지 아니한 것으로 판단된 경우, 상술한 단계 474 및 단계 475와 유사하게 해당 맵 데이터의 전송을 메신저 클라이언트로 요청하고, 메신저 서버로부터 해당 맵 데이터를 수신할 수 있다(단계 480).
단계 477에서 해당 위치 정보를 GUI 맵 상에 표시할 것인지 여부는 본 발명에 따른 위치 정보 제공 방법의 구현에 따라 사용자의 설정 또는 시스템 디폴트 설정 등의 방법으로 수행될 수 있다. 즉, 사용자가 텍스트 기반의 표시를 원하는 경우에는 텍스트 기반의 위치 정보를 표시하도록 구현될 수 있고, 사용자가 GUI 맵 상의 표시를 원하는 경우에는 GUI 맵 기반의 위치 정보를 표시하도록 구현될 수 있다.
도 5는 본 발명의 일실시예에 따라 온라인 게임에 접속한 캐릭터의 위치 정보를 가공하기 위한 위치 정보 처리 방법의 일예를 도시한 흐름도이다.
도 5를 참조하면, 제1 사용자의 사용자 단말기에는 지형 정보로서 특정 셀의 명칭 정보, 셀의 베이스포인트(B1 내지 B3), 셀의 반경 정보(R1 내지 R3)가 저장되어 있고, 이러한 지형 정보를 이용하여 제2 사용자의 메신저 클라이언트로부터 전송된 위치 정보를 가공하여 다양한 형식으로 캐릭터 위치 정보를 제1 사용자에게 제공하는 것이 가능하다.
일예로, 제2 사용자의 메신저 클라이언트로부터 소정의 좌표 정보로 구성된 위치 정보가 전송된 경우, 제1 사용자의 게임 모듈에서는 사용자 단말기의 저장 수단에 저장된 지형 정보를 이용하여 다음의 연산을 수행할 수 있다. 즉, 상기 좌표 정보와 하나 이상의 베이스포인트(B1 내지 B3) 간의 거리 정보(D1 내지 D3)를 산출한다. 산출된 거리 정보(D1 내지 D3)와 상기 셀의 반경 정보(R1 내지 R3)를 비교하여 Dx<Rx인 셀을 선택한다. 도 5를 참조하면, 제2 사용자의 메신저 클라이언트로부터 전송된 좌표 정보(400)는 베이스포인트(B1)와의 거리가 D1이고, 산출된 D1은 D1<R1이므로 셀 1이 선택될 수 있다. 선택된 셀 1의 명칭 정보를 토대로 텍스트 기반의 표시 방법의 경우 "바람에 날다 님은 구우마을 28, 83 위치에 있습니다"라는 캐릭터 위치 정보 표시가 가능하다.
본 발명의 또 다른 일실시예에 따르면, Dx<Rx인 셀이 하나 이상인 경우(제2 사용자 캐릭터가 하나 이상의 셀의 경계 부근에 위치하는 경우)에는 해당 셀들의 경계 부근에 위치하고 있다는 취지로 캐릭터 위치 정보를 표시할 수 있고, Dx<Rx인 셀이 없는 경우(제2 사용자 캐릭터가 셀로 구분되는 지역 외부에 위치하는 경우)에는 최단 거리의 Dx를 갖는 셀 명칭 정보를 이용하여 캐릭터 위치 정보를 표시할 수 있다.
도 6은 본 발명에 따라 게임 캐릭터의 위치 정보를 제공하는 사용자 인터페이스의 일예를 도시한 도면이다.
도 6을 참조하면, 본 발명에 따라 메신저 클라이언트를 통하여 게임 캐릭터의 위치 정보를 제공하는 사용자 인터페이스는 크게 맵 데이터(601), 캐릭터의 위치 표시 영역(602), 맵 표시 형식 선택 버튼(603 및 604), 텍스트 형식의 위치 정보 제공란(605), 상세 정보 보기 버튼(606)으로 구성될 수 있다. 맵 데이터(601) 및 위치 표시 영역(602)은 사용자가 GUI 맵 데이터 형식의 위치 정보 표시를 원하는 경우 또는 시스템 디폴트 설정으로 표시될 수 있음은 상술한 바와 같다. 또한 맵 표시 형식 선택 버튼(603 및 604)는 맵을 확대 또는 축소할 수 있는 기능 버튼일 수 있다. 즉, '월드맵 보기' 버튼(603)을 클릭하는 경우, 해당 맵 데이터를 거시적으로 볼 수 있도록 하고, '미니맵 보기' 버튼(604)을 클릭하는 경우, 해당 맵 데이터를 미시적으로 볼 수 있도록 구현될 수 있다.
또한, 텍스트 형식의 위치 정보 제공란(605)에는 특정 게임 캐릭터의 현재 위치 정보가 텍스트 형식으로 표시되고, 상세 정보 보기 버튼(606)을 클릭하는 경우 동적 데이터를 포함한 상세한 위치 정보(일예로, '레인보우 길드 소속의 영지 내의 레인 마을 28, 83 지점에 바람에 날다 님이 있습니다')가 표시될 수 있다.
또한 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
도 7은 본 발명에 따른 메신저 서버와 연동하여 게임 캐릭터의 위치 정보를 제공하는 온라인 게임 시스템에서 채용될 수 있는 범용 컴퓨터 장치의 내부 블록도이다.
컴퓨터 장치(700)는 램(RAM: Random Access Memory)(720)과 롬(ROM: Read Only Memory)(730)을 포함하는 주기억장치와 연결되는 하나 이상의 프로세서(710)를 포함한다. 프로세서(710)는 중앙처리장치(CPU)로 불리기도 한다. 본 기술분야에서 널리 알려져 있는 바와 같이, 롬(730)은 데이터(data)와 명령(instruction)을 단방향성으로 CPU에 전송하는 역할을 하며, 램(720)은 통상적으로 데이터와 명령을 양방향성으로 전송하는 데 사용된다. 램(720) 및 롬(730)은 컴퓨터 판독 가능 매체의 어떠한 적절한 형태를 포함할 수 있다. 대용량 기억장치(Mass Storage)(740)는 양방향성으로 프로세서(910)와 연결되어 추가적인 데이터 저장 능력을 제공하며, 상기된 컴퓨터 판독 가능 기록 매체 중 어떠한 것일 수 있다. 대용량 기억장치(740)는 프로그램, 데이터 등을 저장하는데 사용되며, 통상적으로 주기억장치보다 속도가 느린 하드 디스크와 같은 보조기억장치이다. CD 롬(760)과 같은 특정 대용량 기억장치가 사용될 수도 있다. 프로세서(710)는 비디오 모니터, 트랙볼, 마우스, 키보드, 마이크로폰, 터치스크린 형 디스플레이, 카드 판독기, 자기 또는 종이 테이프 판독기, 음성 또는 필기 인식기, 조이스틱, 또는 기타 공지된 컴퓨터 입출력장치와 같은 하나 이상의 입출력 인터페이스(750)와 연결된다. 마지막으로, 프로세서(710)는 네트워크 인터페이스(770)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.