이종 온라인 게임 서버 간의 게임 캐릭터 이주를 위한 웹 서비스 시스템 설계 및 구현
1)석 진 원
*
, 김 주 연**
, 강 준 규**
Design and Implementation of Web Service System for Game Character Migration between Different-type
On-line Game Servers
Suk Jin Weon
*
, Kim Ju Yeon**
, Kang Joon Gyu**
요 약
온라인 게임에서 게임 플레이어를 대신하는 게임 캐릭터는 동일한 게임 내에서만 존재하며, 다른 온라인 게임으 로 이주하는 것이 매우 어렵다. 또한 게임 플레이어는 자신의 게임 캐릭터의 성장에 많은 시간과 노력을 빼앗기고 있으며, 최근에는 이것이 많은 사회적 부작용을 낳고 있다. 따라서 본 논문은 이러한 문제점을 해결하기 위해서 기 존 연구를 기반으로 이종 온라인 게임 서버 간의 게임 캐릭터 이주를 위한 웹 서비스 시스템을 설계 및 구현하였다.
그리고 제안된 시스템은 실험을 통하여 게임 캐릭터 이주 요소 중에서 4가지 능력치 (금전, HP:Hit Point, MP:Mana Point, 레벨)를 중심으로 검증하였다.
▸Keyword : 온라인 게임, 게임 서버, 캐릭터 이주, 웹 서비스
Abstract
In the online game, a game character to replace game player exists within the same game and it is very difficult to migrate to another on-line games. Also, players have taken a lot of time and effort in the character's growth. In recent years, it has raised many social side effects. Therefore, in order to solve these problems, this paper was implemented web services system based on previous studies for the migration of game character between different-type on-line game severs, and the proposed system verified through the experiment focused on 4 capability numerical value (money, HP:Hit Point, MP:Mana Point, level) between migration element of game character.
▸Keyword : On-line Game, Game Server, Character Migration, Web Service
∙제1저자 : 석진원 교신저자 : 김주연
∙투고일 : 2010. 11. 25, 심사일 : 2010. 12. 08, 게재확정일 : 2010. 12. 10.
* 경희대학교 컴퓨터공학과(Dept. of Computer Engineering, Kyung Hee University)
** 부천대학 전산정보처리과(Dept. of Computer Science, Bucheon University)
Ⅰ. 서 론
오늘날 온라인 게임은 많은 사람들이 즐기는 하나의 문화 이며 온라인 게임에서 게임 플레이어의 게임 캐릭터는 게임을 위한 등장인물 보다는 게임 플레이어 자신을 대신하는 존재가 되었다. 게임 플레이어는 하나 이상의 캐릭터 성장에 많은 시 간과 노력을 투자하고 있으며, 이러한 게임 캐릭터는 하나의 게임 내의 게임 서버 안에서만 존재하고 있어 다른 게임으로 의 이주는 매우 어렵다. 이것은 게임 플레이어가 만든 게임 캐릭터는 게임 플레이어가 속한 게임 서버에서만 유효하고, 게임 서버를 벗어나서는 게임 캐릭터가 존재할 수 없기 때문 이다. 따라서 지금의 게임 플레이어의 게임 캐릭터가 가지고 있는 한계를 극복할 수 있는 온라인 게임 서비스, 즉 자신이 만든 게임 캐릭터를 이용해서 어떤 게임 서버든지 이동하여 활동할 수 있는 온라인 게임 서비스가 차세대 게임 서비스라 고 할 수 있을 것이다[1][2].
그러나 현재 국내의 온라인 게임들은 온라인 게임 내부에 서 정하는 게임 플레이어 제한치가 있으며, 이 제한치를 넘으 면 게임 플레이어를 수용하기보다는 다른 게임 서버 군을 오 픈하여 게임 플레이어에게 이동을 요구하는 방법을 적용한 경 우가 대부분이다. 온라인 게임에서 하나의 게임 캐릭터로 서 로 다른 게임 서버들을 옮겨 다니면서 온라인 게임을 즐길 수 있게 만드는 것은 기술적으로 쉽지가 않다[3].
그러므로 본 논문에서는 기존 연구의 문제점을 보완한 이 종 온라인 게임 간에 게임 캐릭터의 이주를 지원하는 웹 서비 스 시스템을 설계 및 구현하여 적용 가능성을 확인하려고 한 다. 이러한 게임 캐릭터 이주 방법을 통하여 새로운 게임 서 버에서의 게임 캐릭터 성장 시간 단축으로 게임 플레이어는 더욱 다양한 게임 서비스를 제공받을 수 있으며, 게임 플레이 어가 캐릭터 성장에 투여하는 시간과 노력을 줄여 온라인 게 임의 사회적 부작용을 감소시킬 수 있을 것으로 본다.
본 논문은 2장에서는 게임 아이템, 게임 서버의 구조와 게 임 서버 간의 이주 방법을 살펴보고, 3장에서는 본 연구에서 제안된 이종 온라인 게임 간의 게임 캐릭터 이주를 위한 웹 서비스 시스템의 설계 내역을 기술한다. 4장에서는 제안된 시 스템의 구현 및 게임 캐릭터의 이주 실험을 통하여 적용가능 성을 검증해보고, 5장에서는 연구결과를 돌아보고 향후 연구 방향을 제시한다.
II. 온라인 게임과 게임 서버 구조
온라인 게임의 구성요소는 게임 계정, 게임 캐릭터, 게임 아이템, 사이버 머니로 이루어진다. 여기서 게임 계정은 단순 한 식별정보뿐만 아니라 게임 캐릭터와 게임 아이템의 소유 사실에 관한 정보도 가지며, 게임 캐릭터는 게임 스토리를 연 결해 나가는 게임 속의 등장인물을 의미한다. 그리고 온라인 게임에서 사용되는 게임 아이템은 게임 장르와 게임 시나리오 설계 등에 따라 무기류, 방어구류 등의 다양한 형태로 나타나 며, 사이버 머니는 일종의 가상 화폐로써 아이템을 구매하거 나 거래를 하는데 사용된다. 이러한 게임 아이템은 게임 플레 이어 간의 직거래 또는 온라인 중개 거래 사이트를 통하여 거 래가 된다. 게임 아이템은 게임성을 높여주는 대화적인 (Interactive) 요소로써 게임 플레이어에게 다양한 쾌감을 제공하는 요소이다[4][5].
다음으로 온라인 게임을 실행하기 위한 게임 서버는 P2P (Peer to Peer) 구조, C/S (Client/Server) 구조, 분산된 (Distributed) 서버 구조로 구분한다. 먼저 P2P 구조는 어 느 컴퓨터나 게임 호스트가 될 수 있으며, 전략 시뮬레이션 게임인 “스타그래프트” 게임이 대표적인 P2P 구조이다. 그리 고 C/S 구조는 서버와 클라이언트 역할을 하는 컴퓨터를 고 정시킨 구조로써 서버를 담당하는 컴퓨터는 항상 서버 역할만 을 수행한다. “디아블로 2” 게임의 렐름(Realms) 서버가 대 표적인 C/S 구조로써 하나의 렐름 서버에서 성장한 게임 캐 릭터는 다른 렐름 서버로 이전할 수 없다. 그러나 분산 서버 구조에서는 2개 이상의 서버 구성이 가능하다. 서버들 간에 게임 데이터가 공유되는 강결합 구조 방식과 그렇지 않은 약 결합 구조 방식으로 구분하며, 게임 데이터가 공유되는 방식 을 대칭(Replicated) 서버라고 하고, 그렇지 않은 경우는 비 대칭(Non-Replicated) 서버라고 한다. 대칭 서버 방식은 동 일한 게임 서버를 연결하여 서비스가 가능한 게이머의 수를 늘리는 방식이다. 대칭 서버 방식에서 각 게임 서버의 평균 부하는 감소하나 게임 서버 간의 정보 분산은 전혀 이루어지 지 않는다. 비대칭 서버 방식은 각 게임 서버에서 게임의 맵 데이터를 나누어 가지는 운영 형태로써 각 게임 서버 간의 정 보 공유가 가능하다. 여기서 서버들은 맵 데이터를 나누어 가 지므로 게임 진행에 따라 각 게임 서버를 오가는 게임 플레이 어들이 발생한다. 기존의 몇몇 온라인 게임에서는 게임 서버 간에 비대칭 서버 구조를 채택하여 내부적으로 서비스 된다 [3][6][7][8] [9][10].
지금까지 온라인 게임 아이템의 거래 방법, 온라인 게임
서버의 구조, 온라인 게임에서 서버 간의 정보 공유에 관한 연구는 많이 이루어졌으나 온라인 게임 공간에서 다른 게임 서버 간의 게임 캐릭터 이주에 관한 연구 및 구현 사례는 찾 아보기가 쉽지 않다. 따라서 본 논문에서는 이종 온라인 게임 서버에서 게임 캐릭터 이주를 위하여 웹 서비스를 적용한 게 임 캐릭터 이주 시스템의 설계 및 구현 기법을 제시한다.
III. 게임 캐릭터 이주를 위한 웹 서비스 시스템 설계
3.1 웹 서비스 시스템의 구조
웹 서비스 (Web Service)는 ‘웹 상에서 모듈화된 소프트 웨어 컴포넌트들’을 말하며, 개방형 표준 데이터 표현 기법인 XML과 인터넷 프로토콜을 결합시킨 새로운 패러다임에 의해 서 탄생된 차세대 분산 컴퓨팅 기술이다. 이러한 웹 서비스는 인터넷이라는 개방형 네트워크와 유연한 아키텍처를 통해 장 소, 시간 및 장치의 종류에 구애받지 않고 통합 서비스 환경 을 제공함으로써 기업 내부나 기업 간의 정보를 매우 효율적 으로 공유시켜 줄 수 있다[11].
본 논문에서 제안하는 이종 온라인 게임 간의 원활한 게임 캐릭터 이주를 위한 웹 서비스 시스템 구조는 그림 1과 같다.
구성은 게임 플레이어 (Game Player), 원본 서버 (Source Server), 목적지 서버 (Destination Server), 관리자 (Manager), 웹 서비스 기반의 이종 게임 서버 간의 게임 캐릭터 이주 시스템 (CMS : Character Migration System)으로 이루어진다.
Source Server Destination Server
SOAP Game Player
CMS
Immigration Service Emigration Service Reporting Service
WSDL
CMS
Immigration Service Emigration Service Reporting Service
WSDL
Manager
그림 1. 캐릭터 이주를 위한 웹 서비스 시스템 구조 Fig. 1. Web Service Structure for Character Migration
3.2 이종 온라인 게임 간의 캐릭터 이주 모델 그림 2는 기존 연구인 “온라인 게임 간의 캐릭터 이주 모델에 관한 연구”에서 제안하는 게임 캐릭터의 이주 모델을 보완한 게임
캐릭터 이주 시스템을 UML (Unified Modeling Language) 표기법의 순차도 (Sequence Diagram)를 사용하여 게임 캐릭 터 이주 과정에서 기본 정보의 흐름을 나타낸다[12].
여기서 GP (Game Player)는 새로운 게임을 시작하려고 하는 DS (Destination Server)에 회원으로 가입하여 원하는 형태의 게임 캐릭터를 생성한 후, MRI (Migrated Request Information, 이주신청 정보 : 목적지 서버, 목적지 게임 캐릭 터 아이디, 원본 서버, 원본 게임 캐릭터 아이디, 금전)를 이용하 여 지금까지 게임 플레이어가 성장시켜 놓은 게임 캐릭터가 존재 하는 SS (Source Server)에 게임 캐릭터 이주를 신청한다. 다 음으로 SS는 게임 캐릭터 이주 신청을 받을 경우 대상 게임 캐릭 터의 정보인 SCI (Source Chraracter Information : 목적지 서버, 목적지 캐릭터 아이디, 원본 서버, 원본 캐릭터 아이디, 금 전, 환산 생명치, 레벨, HP, MP, 플레이어 인증키)를 DS로 전 달하고, DS에서 이주 승인이 허용될 경우 필요한 정보들을 전달 하며 금전 등과 같이 이주 후 갱신된 정보들도 함께 관리한다.
그리고 DS는 SS로부터 원본 게임 캐릭터 정보를 전달 받 아서 게임 캐릭터가 이주한 이후에 예상되는 게임 캐릭터 능 력치를 나타내는 PCI (Predicted Character Information, 예상 게임 캐릭터 정보 : 접수번호, 결과, 금전, 레벨, HP, MP, 플레이어 인증키)를 생성하고, 이주 완료 후에 NCI (New Character Information, 신게임 캐릭터 정보 : DS 에서 해당 게임 캐릭터 정보 갱신)를 관리한다.
그림 2. 이종 온라인 게임 서버의 캐릭터 이주 모델 Fig. 2. Character Migration Model Between Different-type
On-line Game Servers
3.3 데이터베이스 설계
그림 3은 게임 캐릭터 이주를 위한 웹 서비스 (Character Migration Web Service) 시스템에서 사용되는 데이터들에 대한 개체 관계도 (Entity Relation Diagram)이다. 게임 캐릭터 이주를 위한 웹 서비스 시스템 구현에 필요한 테이블 들의 상세한 사항은 다음과 같다.
1) 게임 캐릭터 이주를 위한 사용자 정보 테이블 (USERINFO)
게임 캐릭터를 이주할 때 해당 사용자 확인을 위하여 표 1과 같이 사용자 아이디, 비밀번호, 사용자 이름, email 주 소, 휴대폰 번호 등의 정보를 저장하여 관리해야 한다.
2) 게임 캐릭터 이주를 위한 서버 정보 관리 테이블 (CMS_SVR)
다음 표 2에서 CMS_SVR 테이블의 데이터 구성항목인 SERVERNAME은 게임 캐릭터 이주를 지원하는 온라인 게임 서버의 이름을 나타내며, 게임 플레이어가 이주 요청서를 작 성하는 곳에서 선택할 수 있도록 한다. 그리고 SERVERID 는 해당 게임 서버를 구분하기 위한 정보로 이주 요청서 작성 시에 선택한 게임 서버를 웹 서비스에서 구분하기 위해서 사 용한다. DISCOUNTRATE는 해당 서버에 적용할 할인율로 써 자료는 백분율을 정수로 표현하여 저장한다.
CMS_CMR SERVERID MAXHP MAXMP HPHEALING MPHEALING MAXLV HPPRICE MPPRICE
CMS_EMPCI ARN USERID RESULT GAMEMONEY LV HP MP PVK DSADR DSPCID SSADR SSPCID
CMS_IMPCI ARN DSUSERID RESULT GAMEMONEY LV HP MP PVK DSADR DSPCID SSADR SSPCID USERINFO
USERID PASSWD UNAME EMAIL MPNUM
CMS_SVR SERVERID SERVERNAME DISCOUNTRATE
그림 3. 웹 서비스 시스템을 위한 데이터베이스 구조 (개체 관계도) Fig. 3. Database Structure for Web Service System (Entity
Relationship Diagram)
표 1. USERINFO 테이블 구조 Table 1. Structure of USERINFO Table
USERINFO Table
USERID varchar(20) PK
PASSWD varchar(20)
UNAME varchar(20)
EMAIL varchar(80)
MPNUM varchar(20)
표 2. CMS_SVR 테이블 구조 Table 2. Structure of CMS_SVR Table
CMS_SVR Table
SERVERID varchar(20) PK
SERVERNAME varchar(20)
DISCOUNTRATE int
3) 게임 캐릭터 이주를 위한 승인 정보 관리 테이블 (CMS_CMR)
다음 표 3의 구성항목 중에서 MAXHP는 시스템에서 최 대 HP 값을 의미하고, MAXMP는 시스템에서 최대 MP를 의미한다. HPHEALING은 HP 기본 회복 아이템을 사용했 을 경우 적용되는 회복 수치이며, MPHEALING은 MP 기 본 회복 아이템을 사용했을 경우 적용되는 회복 수치이고, MAXLV은 시스템에서 적용하고 있는 최대 레벨 값이다.
HPPRICE는 HP 기본 회복 아이템의 가격이며, MPPRICE 는 MP 기본 회복 아이템의 가격이다. 이 정보들은 게임 캐릭 터 이주 신청 시에 계산되는 SCI (Source Character Information)에 적용하며, 또한 이주 후 예상되는 게임 캐릭 터의 능력치를 나타내는 PCI (Predicted Character Information)에 적용한다.
표 3. CMS_CMR 테이블의 구조 Table 3. Structure of CMS_CMR Table
CMS_CMR Table
SERVERID varchar(20) PK
MAXHP int
MAXMP int
HPHEALING int
MPHEALING int
MAXLV int
HPPRICE int
MPPRICE int
4) 이주된 게임 캐릭터 정보 저장 및 관리 테이블 (CMS_IMPCI)
표 4에서 DSUSERID는 이주를 요청한 DS의 게임 플레 이어 아이디를, ARN는 이주 요청 시에 부여받은 접수번호를 저장하며, RESULT는 진행 상태에 대한 결과를, GAMEMONEY 는 환산된 금전을 저장하고, LV, HP, MP는 환산된 레벨, HP, MP를 저장한다. 다음으로 PVK는 요청 게임 플레이어 가 DS와 SS에서 동일한 게임 플레이어 여부의 확인을 위하 여 전화번호와 이메일 주소를 저장하여 구성한다. DSADR 은 목적지 서버의 정보, DSPCID는 목적지 게임 캐릭터 아이 디, SSADR은 원본 서버의 정보, SSPCID는 원본 서버의 게 임 캐릭터 아이디를 각각 저장하게 된다.
표 4. CMS_IMPCI 테이블 구조 Table 4. Structure of CMS_IMPCI Table
CMS_IMPCI Table
ARN varchar(20) PK
DSUSERID varchar(20)
RESULT int
GAMEMONEY bigint
LV int
HP int
MP int
PVK varchar(100)
DSADR varchar(20)
DSPCID varchar(20)
SSADR varchar(20)
SSPCID varchar(20)
5) 이주하는 게임 캐릭터 정보 저장 및 관리 테이블 (CMS_EMPCI)
표 5의 테이블은 CMS_IMPIC 테이블과 동일한 구조를 갖지만 USERID 항목에 저장되는 자료는 이주를 요청한 SS 의 게임 플레이어의 아이디를 저장하는 것이 다르다.
CMS_IEMPCI Table
ARN varchar(20) PK
USERID varchar(20)
RESULT int
GAMEMONEY bigint
LV int
HP int
MP int
PVK varchar(100)
DSADR varchar(20)
DSPCID varchar(20)
SSADR varchar(20)
SSPCID varchar(20)
표 5. CMS_EMPCI 테이블 구조 Table 5. Structure of CMS_EMPCI Table
3.4 게임 캐릭터 이주를 위한 웹 서비스의 설계 3.4.1 시스템 설계 시 고려 사항
온라인 게임에서 캐릭터의 이주 대상은 레벨, 금전, HP (Hit Point), MP (Mana Point)의 4가지 요소이며, 원본 게임 서버와 목적지 게임 서버 상에서 동일 게임 플레이어인 경우에만 이주를 지원한다. 동일 게임 플레이어 여부를 확인 하기 위해 각 게임 서버는 게임 플레이어를 등록할 때 이메일 주소와 전화번호를 입력 받게 한다. 이메일 주소는 이메일 인 증을 통하여 확인하고 전화번호는 휴대폰 인증을 통해 처리하 며 이들 정보는 게임 플레이어 인증키 생성에 활용한다[12].
3.4.2 이주 단계별 웹 서비스의 설계 1) 이주 신청
그림 4와 같이 게임 플레이어로부터 이주 신청 정보를 입력 받아 SCI 정보를 생성하여 SS의 UserTransferRequest를 호출하며, SCI 정보는 다음과 같은 방법으로 생성한다[12].
. SS의 금전 : 이주 신청 단계에서 게임 플레이어가 신청 한 환전 금액
. SS의 환산HP = SS의 기본 회복 아이템(소)의 가격 * (SS의 1회 사용 회복 수치 / SS의 최대 HP 수치) . SS의 환산MP = SS의 기본 회복 아이템(소)의 가격 *
(SS의 1회 사용 회복 수치 / SS의 최대 MP 수치) . SS의 환산생명치 = max(SS의 환산HP, SS의 환산
MP) : DS의 금전 산정할 때 환율 결정에 사용 . SS의 레벨 = SS의 현재 레벨 / SS의 최대 레벨 . SS의 MP = SS의 MP 현재 수치 / SS의 시스템 최대
MP 수치
. SS의 HP = SS의 HP 현재 수치 / SS의 시스템 최대 HP 수치
. 인증키 : 이주를 신청한 SS와 DS의 사용자가 동일인임을 확인을 위한 정보 저장, 이메일 주소와 전화번호로 구 성,이메일 주소 끝에 전화번호를 연결하고 남는 부분은 공백으로 채움
이주 신청에서 UserTransferRequest는 내부적으로 DS의 IMPCIRequest를 호출해서 DS로부터 접수번호를 받아서 CMS_EMPCI 테이블에 게임 플레이어의 아이디와 접수번호 를 저장한다. 표 6은 웹 메서드의 원형을 나타낸다.
Game Player Source Server Destination Server
UserTransferRequest
IMPCIRequest
그림 4. 이주 신청 Fig. 4. Migration Request
표 6. 이주 신청을 위한 웹 메서드 Table 6. Web Method for Migration Request
웹 메서드 반환값
string UserTransferRequest(string 게임 플레이어 아이디, string 목적지 서버 주소, string 목적지 캐릭터 아이디, string 원본 서버
주소, string 원본 캐릭터 아이디, string 금전)
성공: 접수번호 실패: ERROR string IMPCIRequest(string 목적지 서버 주소,
string 목적지 캐릭터 아이디,string 원본 서버 주소, string 원본 캐릭터 아이디, string 금전, float MP, float HP, float 레벨, float 환산
생명치, string 게임 플레이어 인증키)
성공: 접수번호 실패: ERROR
DS의 IMPCIRequest는 다음의 계산식과 같이 PCI 정 보를 생성하여 CMS_IMPCI 테이블에 정보를 저장한다.
. 적용 환율 = DS의 환산 생명치 / SS의 환산 생명치 * 할인율
. DS의 금전 = SS의 금전(이주 요청 금전) * 적용 환율 . DS의 레벨 = DS의 최대 레벨 * SS의 레벨 + 가중치 . DS의 HP = min((DS의 최대 HP * SS의 HP)), (DS
의 레벨의 평균 HP)) + 캐릭터 특성상의 가중치 . DS의 MP = min((DS의 최대 MP * SS의 MP), (DS
의 레벨의 평균 MP)) + 캐릭터 특성상의 가중치 2) 이주 처리 통보
SS로부터 게임 캐릭터 이주 요청을 받으면 서버의 여러 상황을 고려하여 DS의 관리자가 이주 승인, 이주 거부, 이주 완료를 결정한다.
Manager Destination Server Source Server
MigrationProcessing
MigrationNotification
그림 5. 이주 처리 통보 Fig. 5. Migration Processing Notification
DS 관리자는 이주 처리에 대한 통보를 위해 그림 5와 같이 DS의 MigrationProcessing을 호출한다.
MigrationProcessing은 SS의 MigrationNotification 을 호출하여 이주 처리 정보를 통보한다. DS와 SS에서는 각 각 접수번호를 이용하여 관리자 처리에 따른 테이블 (CMS_IMPCI, CMS_EMPCI)의 RESULT를 수정한다.
표 7은 웹 메서드의 원형을 나타내며 RESULT 결과값의 의미는 1 (이주 신청), 2 (신청 승인), 3 (신청 거부), 4 (이 주 요청), 5 (이주 완료), 6 (이주 취소)를 나타낸다.
표 7. 이주 처리 통보를 위한 웹 메서드
Table 7. Web Method for Migration Processing Notification
웹 메서드 반환값
int MigrationProcessing(string 접수번호, int 결과값) 성공 : 1 실패 : 0 int MigrationNotification(string 접수번호, int
결과값)
성공 : 1 실패 : 0
3) 이주 처리 상태 요청
그림 6과 같이 게임 플레이어는 접수번호를 이용하여 DS 에게 이주 처리에 대한 상태 정보를 요청한다. 이때 SS의 MigrationResultRequest를 사용하며 SS에서는 전달받은 접수번호를 이용하여 MigrationResultResponse를 호출하 고 처리 상태 정보 (RESULT)를 되돌려 받는다. 이에 대한 웹 메서드 원형은 표 8과 같다.
Game Player Source Server Destination Server
MigrationResultRequest
MigrationResultResponse
그림 6. 이주 처리 상태 요청 Fig. 6. Request for Migration Processing Status 표 8. 이주 처리 상태요청을 위한 웹 메서드
Table 8. Web Method for Migration Processing Status Request
웹 메서드 반환값
int MigrationResultRequest(string 접수번호) 성공 : RESULT 실패 : 0 int MigrationResultResponse(string 접수번호) 성공 : RESULT
실패 : 0
4) 이주 정보 요청
그림 7과 같이 게임 플레이어는 이주 후에 예상되는 게임 캐릭터의 능력치를 알아보기 위해서 DS의 PCI 정보를 요청 한다. 이때 게임 플레이어는 접수번호를 사용하여 SS의 GetPCIRequest를 호출한다. GetPCIRequest는 다시 DS 의 PCIInfoRequest를 호출하고 PCI 정보를 되돌려 받아 CMS_EMPCI 테이블의 정보를 갱신한다. 사용되는 웹 메서 드의 원형은 표 9와 같다.
Game Player Source Server Destination Server
GetPCIRequest
PCIInfoRequest
그림 7. 이주 정보 요청 Fig. 7. Request for Migration Information
표 9. 이주 정보 요청을 위한 웹 메서드
Table 9. Web Method for Migration Information Request
웹 메서드 반환값
int GetPCIRequest
(string 접수번호) 성공 : 1
실패 : 0 RetPCIList
PCIInfoRequest (string 접수번호)
RetPCIList {게임 플레이어 아이디, 접수번호, 결과, 금전, 레벨, HP, MP, 게임 플레이어 인증키, 목적지 서버 주소, 목적지 캐릭터 아이디, 원본 서버 주소, 원본 캐릭터
아이디}
5) 이주 결정
그림 8과 같이 게임 플레이어가 접수번호를 이용하여 게임 캐릭터의 이주를 결정하려면 SS의 MigrationRequest를 호 출한다. SS의 MigrationRequest는 DS의 MigrationResponse 를 호출하고, DS는 접수번호를 이용하여 DS의 CMS_IMPCI 테이블의 RESULT를 이주 요청으로 갱신한다. 사용하는 웹 메서드 원형은 표 10과 같다.
Game Player Source Server Destination Server
MigrationRequest
MigrationResultResponse
그림 8. 이주 결정 Fig. 8. Migration Decision
표 10. 이주 결정을 위한 웹 메서드 Table 10. Web Method for Migration Decision
웹 메서드 반환값
int MigrationRequest(string 접수번호) 성공 : 1 실패 : 0 int MigrationResponse(string 접수번호) 성공 : 1 실패 : 0
6) 이주 신청 취소
그림 9와 같이 게임 플레이어가 신청한 이주 게임 캐릭터의 예상 능력치가 게임 플레이어의 예상과 다르게 나올 경우 등의 이유로 이주 신청을 취소하기 위해서는 접수번호를 이용하여 SS의 MigrationCancelRequest를 호출한다. SS는 다시 DS 의 MigrationCancelResponse를 호출하여 이주 신청을 취소 한다. DS는 이주 완료가 아닌 경우 바로 이주 신청을 취소하고 CMS_IMPCI 테이블의 RESULT를 이주 신청 취소로 갱신한 다. 이주 신청 취소의 웹 메서드 원형은 표 11과 같다.
Game Player Source Server Destination Server
MigrationCancelRequest
MigrationCancelResponse
그림 9. 이주 신청 취소 Fig. 9. Cancel of Migration Request 표 11. 이주 신청 취소를 위한 웹 메서드
Table 11. Web Method for Migration Request Cancel
웹 메서드 반환값
int MigrationCancelRequest(string 접수번호) 성공 : 1 실패 : 0 int MigrationCancelResponse(string 접수번호) 성공 : 1 실패 : 0
Ⅴ.시스템 구현 및 검증
4.1 시스템 구현 및 실험 환경
제안된 이종 온라인 게임 서버에서 게임 캐릭터 이주를 위한 웹 서비스 시스템의 구현 및 실험 환경은 다음과 같다.
. OS : Windows XP Professional SP3, IIS 5.1 . NET Framework 3.5 SP1 기반의 ASP.NET 웹 서비스 . Microsoft SQL Server 2005
그림 12. 이주 신청 접수 정보 확인 Fig. 12. Confirmation of Migration Request Received
Information
그림 13. 이주 정보 결과 요청 Fig. 13. Request of Migration Information Result . CPU : 1.6GHz
. RAM : 2GB
그리고 제안한 웹 서비스 시스템의 이용을 위하여 필요한 WSDL(Web Service Definition Language)은 상호 제공되고 있 다고 가정하며 그림 10은 실험에서 사용한 WSDL이다.
그림 10. 게임 캐릭터 이주를 위한 WSDL Fig. 10. WSDL for Game Character Migration
4.2 실험을 위한 게임 캐릭터 이주 정보 초기값 설정
최대 HP와 최대 MP 등은 해당 온라인 게임에서 제공하는 게임 캐릭터에 따라서 많은 차이가 난다. 또한 온라인 게임 간의 할인율과 게임 캐릭터에 따른 가중치도 온라인 게임들 간에 서로 합의로 정해져야 하는 항목으로 본 논문에서는 표 12와 같이 임의의 데이터 값을 설정하여 실험을 진행하였다.
표 12. 실험을 위한 데이터 값 설정 내역
Table 12. Setting Description of Data Value for Experiment
항목 SS DS
최대 HP 수치 6200 4200
최대 MP 수치 9000 4100
HP 회복치 890 225
MP 회복치 1 1
최대 레벨 50 85
HP 회복 아이템 가격 900 121
MP 회복 아이템 가격 1 1
할인율 7% 5%
캐릭터 특성상의 가중치 0 0
4.3 실험 및 검증
그림 11과 같이 게임 캐릭터 이주 정보를 입력하여 이주를 신청하면 그림 12와 같이 접수 정보를 확인할 수 있다. 접수 정보에서 4가지의 게임 캐릭터 이주 요소의 예상치를 확인하 고 그림 13과 같이 이주를 요청한다.
그림 11. 이주 신청서 작성 Fig. 11. Create of Migration Request Form
게임 플레이어가 자신의 게임 캐릭터 이주를 요청하면 DS 의 관리자는 그림 14와 같이 이주 요청 목록에서 이주 신청을 확인하고 처리를 진행한다. DS 서버 상황에 따라 필요한 경우 는 그림 15와 같이 직접 게임 캐릭터 이주 예상 정보를 수정할 수 있으며 그림 16과 같이 게임 캐릭터 이주를 승인한다.
그림 14. 이주 요청 승인 Fig. 14. Accept of Migration Request
그림 15. 이주 요청 승인 - 정보 수정 Fig. 15. Accept of Migration Request - Modify Information
그림 16. 이주 승인 처리 결과 Fig. 16. Result of Migration Accept Processing
표 13은 원본 서버 (SS)에서 요청한 게임 캐릭터의 이주 정보가 목적지 서버 (DS)에서 PCI로 변환한 결과이다. 본 논문에서 구현된 게임 캐릭터 이주를 위한 웹 서비스 시스템 의 실험 결과에서 원본 서버의 레벨과 같은 등급으로 목적지 서버로 게임 캐릭터의 4가지 능력치가 변환된 것을 확인할 수 있다. 게임 캐릭터 이주 신청에 대한 변환 과정을 표 12의 실 험 데이터 값을 적용하여 표 13의 첫 번째 열의 값을 기준으 로 검증해보면 다음과 같다.
. SS의 환산생명치 = 900 * 890 / 6,200 = (129.19354838709677419354838709677...)
. SS의 HP = 6,125 / 6,200 = 0.9879 . SS의 MP = 8,642 / 9,000 = 0.9602 . SS의 레벨 = 50 / 50 = 1.0
. DS의 환산생명치 = 121 * 225 / 4,200 = (6.4821428571428571428571428571429...)
. 적용 환율 = (6.4821428571...) / (129.1935483870...)
* 0.95 = (0.0476651952...)
. DS의 HP = 4,200 * 0.9879 = 4,149 . DS의 MP = 4,100 * 0.9602 = 3,937
. DS의 레벨 = 85 * 1.0 = 85
. DS의 금전 = 2,000,000*(0.0476651952...) = 95,330
이 실험을 통하여 게임 플레이어가 게임 캐릭터의 성장에 투자하는 시간적, 금전적 비용이 상당 부분 절약될 것으로 예 상되며 이종 온라인 게임 서버 간에 게임 캐릭터 이주에 대한 실현 가능성이 매우 큼을 알 수 있다. 제안한 시스템을 통하 여 온라인 게임의 사회적 부작용에 대한 해소 가능성과 게임 캐릭터 이주를 통한 새로운 사업모델로써의 가치 창조도 기대 할 수 있다.
표 13. 목적지 서버 (DS)에서 요청된 캐릭터 이주 정보로부터 변환된 PCI 값
Table 13. Converted PCI Values from Requested Character Migration Information in Destination Server (DS)
SS(원본 서버) DS(목적지 서버)
레벨 HP MP 금전 레벨 HP MP 금전
50 6,125 8,642 2,000,000 85 4,149 3,937 95,330 36 4,793 4,192 1,200,000 61 3,247 1,910 57,198 31 1,769 5,151 1,500,000 53 1,198 2,347 71,497 31 3,506 3,483 1,000,000 53 2,375 1,587 47,665
Ⅵ. 결론
본 논문에서는 기존 연구에서 제안한 내용을 보완한 이종 온라인 게임 서버 간의 게임 캐릭터 이주를 위한 웹 서비스 시스템을 설계 및 구현하고, 게임 캐릭터 이주에 대한 실험 결과를 보였다. 그러나 이종 온라인 게임 서버 시스템에 대한 실제 정보 수집이 어려워 현실적인 데이터 값을 적용한 실험 은 진행하지는 못하였다. 따라서 본 연구는 게임 서버 간의 원활한 게임 캐릭터 이주에 대한 실현 가능성을 확인하는 연 구로써 그 의미를 부여할 수 있다. 향후에는 본 논문에서 구 현한 게임 캐릭터 이주를 위한 웹 서비스 시스템을 온라인 게 임 서버에 적용하기 위하여 본 연구에서 임의로 적용하였던 할인율과 게임 캐릭터를 온라인 게임 서버와 게임 캐릭터 종 류에 따라 최적의 가중치를 부여하는 방안에 대한 연구 및 검 증이 필요하다.
참고문헌
[1] srcho, "A Study on the Method of Sharing Character Information between Servers for On-line Game,"
Master's Thesis of Soong Sil University, Jun. 2001.
[2] hmjung, and dslee, "A Study on Difference of Internet Game Addiction Tendency According to The Game with Use," Journal of The Korea Society of Computer and Information, Vol. 13, No. 12, pp. 159-166, Mar.
2008.
[3] jwnam, "On-line Game Server Programming," Hanbit Media Inc., May 2004.
[4] bskim, "A Study on the Improvement of Cash Transaction Issues for Online Game Items," Master's Thesis of Kwang Woon University, Feb. 2007.
[5] ihkim, and kskim, "A Thought on Efficient Item Productions and Managements for MMORPG," Journal of The Korea Game Society, Vol. 5, No. 1, pp. 61-66, Mar. 2005.
[6] dkkim, "A Study of Character and Dungeon Size Correlation in MMORPG Game," Journal of The Korea Society of Computer and Information, Vol. 14, No. 11, pp. 53-60, Nov. 2009.
[7] smjang, and jsroo, "An Efficient MMORPG Distributed Game Server," The Korea Society of Computer and Information, Vol. 15, No. 1, pp. 1-10, Nov. 2010.
[8] ihkim, "Efficient and Scalable Online Game Server Architecture for Massive Users," Journal of The Korea Game Society, Vol. 2, No. 2, pp. 20-26, Nov. 2002.
[9] jbmoon, "A Study on Factors and Steps in Online Engine Development," Master's Thesis of Sang Myung University," Aug. 2003.
[10] jhkim, "A Study on Incrementally Expandable Online Game Server Architecture," Journal of The Korea Society of Computer Industry Education, Vol. 7, No. 3, pp. 237-244, Jun. 2006.
[11] kclee, and sylee, "Standard Technology Trends and Prospects of Web Service," Journal of Korean Institute of Information Scientists and Engineers, Vol. 22, No. 10, pp. 11-18, Oct. 2004.
[12] jykim, and jkkang, "A Study on the Character Migration
Model between On-line Games," Journal of The Korea Information Processing Society : Technology Eduction, Vol. 3, No. 3, pp. 217-222, Dec. 2008.
저 자 소 개 석 진 원
1996년: 국방대학교 국방과학석사 2004년: 경희대학교 박사과정수료 현재: (주)비전앤바이오테크 이사 관심분야: 분산 시스템 및 네트워크,
RFID/USN, 시뮬레이션 E-mail : [email protected] 김 주 연
1997년: 금오공과대학교 공학석사 2001년: 금오공과대학교 공학박사 현재: 부천대학 전산정보처리과 부교수 관심분야: 정보검색, 인공지능 E-mail : [email protected]
강 준 규
2000년: 금오공과대학교 공학석사 현재 : 부천대학전산정보처리과전임
강사
관심분야 : 지능형에이전트, 온라인게임 E-mail : [email protected]