KR20110127907A - 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체 - Google Patents

온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체 Download PDF

Info

Publication number
KR20110127907A
KR20110127907A KR1020100047415A KR20100047415A KR20110127907A KR 20110127907 A KR20110127907 A KR 20110127907A KR 1020100047415 A KR1020100047415 A KR 1020100047415A KR 20100047415 A KR20100047415 A KR 20100047415A KR 20110127907 A KR20110127907 A KR 20110127907A
Authority
KR
South Korea
Prior art keywords
server
game
client
transfer
data
Prior art date
Application number
KR1020100047415A
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 KR1020100047415A priority Critical patent/KR20110127907A/ko
Priority to PCT/KR2011/003612 priority patent/WO2011145855A2/en
Priority to JP2013511107A priority patent/JP2013529115A/ja
Priority to US13/698,482 priority patent/US8992328B2/en
Priority to TW100117419A priority patent/TW201200216A/zh
Publication of KR20110127907A publication Critical patent/KR20110127907A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • 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
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • 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/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • 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/531Server assignment
    • 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/554Game data structure by saving game or status data
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/807Role playing or strategy games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 명세서는 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체 에 관한 것이다.
본 명세서의 일 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 제 1 클라이언트로부터 로그인을 위한 식별 정보를 수신하는 단계, 상기 제 1 클라이언트에게 온라인 게임 환경 정보를 송신하는 단계, 제 2 클라이언트의 서버 트랜스퍼링을 위한 서버 트랜스퍼링 사전 작업을 외부 서버와 진행하는 단계, 상기 외부 서버 또는 상기 제 2 클라이언트가 송신한 게임 진행을 위한 데이터를 수신하는 단계, 상기 수신한 데이터를 온라인 게임 환경에 적용한 게임 진행 결과 데이터를 상기 게임 진행을 위한 데이터를 송신한 외부 서버 또는 제 2 클라이언트에게 송신하는 단계, 및 상기 제 1 클라이언트 및 상기 제 2 클라이언트간에 발생한 상호 작용의 결과를 상기 제 1 클라이언트의 게임 히스토리로 저장하는 단계를 포함한다.

Description

온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체{METHOD, APPARATUS, AND RECORDED MEDIUM FOR PLAYING GAME USING SERVER TRANSFERING IN ONLINE GAME SYSTEM}
본 명세서는 온라인 게임 시스템에 관한 것으로서, 특히 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하기 위하여 정보를 저장하고, 이를 송수신하는 방법, 장치, 및 및 기록매체를 제공하는 것이다.
온라인 게임(Online game)은 소정의 서버에 컴퓨터, 노트북 등으로 접속하여 실시간으로 다른 게임 플레이어와 게임을 진행하는 게임의 한 장르를 포함한다. 온라인 게임은 실제 사람이 제어하는 플레이어들 간의 게임이라는 점에서 많은 참여를 가져오고 있으나, 온라인 게임들의 게임 방식이 서로 유사하다는 한계를 가지고 있어, 새로운 방식의 온라인 게임을 제공하기 위한 시스템의 구성이 제안되는 것이 필요하다.
본 명세서의 일 실시예는 서버 트랜스퍼링을 이용하여 게임 정보를 송수신하는 것으로, 하나의 서버에 접속하여 게임을 수행하는 과정에서 발생한 정보를 다른 독립된 서버에 접속하여 게임이 수행될 수 있도록 한다.
또한, 각각의 서버 간에 게임을 수행한 정보를 교환 또는 임시로 저장할 수 있도록 하여, 게임 수행 과정에서 발생하는 정보의 변경이 누락되지 않도록 한다.
본 명세서의 일 실시예는 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행할 수 있도록 하는 서버, 클라이언트의 구동 과정 및 기록매체와 시스템을 제안한다.
본 명세서의 일 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 제 1 클라이언트로부터 로그인을 위한 식별 정보를 수신하는 단계, 상기 제 1 클라이언트에게 온라인 게임 환경 정보를 송신하는 단계, 제 2 클라이언트의 서버 트랜스퍼링을 위한 서버 트랜스퍼링 사전 작업을 외부 서버와 진행하는 단계, 상기 외부 서버 또는 상기 제 2 클라이언트가 송신한 게임 진행을 위한 데이터를 수신하는 단계, 상기 수신한 데이터를 온라인 게임 환경에 적용한 게임 진행 결과 데이터를 상기 게임 진행을 위한 데이터를 송신한 외부 서버 또는 제 2 클라이언트에게 송신하는 단계, 및 상기 제 1 클라이언트 및 상기 제 2 클라이언트간에 발생한 상호 작용의 결과를 상기 제 1 클라이언트의 게임 히스토리로 저장하는 단계를 포함한다.
본 명세서의 다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 클라이언트로부터 서버 트랜스퍼링을 요청하는 메시지를 수신하는 단계, 외부 서버와 서버 트랜스퍼링 사전 작업을 진행하는 단계, 상기 외부 서버와의 서버 트랜스퍼링 사전 작업 결과 생성된 트랜스퍼링 관련 정보를 상기 클라이언트에 송신하는 단계, 및 상기 외부 서버로부터 상기 클라이언트의 게임 히스토리를 수신하여 업데이트 하는 단계를 포함한다.
본 명세서의 또다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 클라이언트가 제 1 서버에 로그인을 위한 식별 정보를 송신하는 단계, 상기 제 1 서버에 서버 트랜스퍼링을 요청하는 메시지를 송신하는 단계, 상기 제 1 서버 또는 트랜스퍼링을 진행할 제 2 서버에 접속하는 단계, 상기 접속한 서버에 게임 진행을 위한 데이터를 송신하고, 게임 진행 결과 데이터를 수신하는 단계, 및 상기 트랜스퍼링을 진행할 제 2 서버에 접속한 제 2 클라이언트와 상기 제 2 서버에서 허용된 게임을 수행하는 단계를 포함한다.
본 명세서의 또다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 온라인 게임을 제공하는 제 1 서버 및 제 2 서버로 구성된 온라인 게임 서버 시스템에서 제 1 서버가 제 1 클라이언트와 로그인을 진행하여 게임을 제공하는 단계, 제 2 서버가 제 2 클라이언트와 로그인을 진행하여 게임을 제공하는 단계, 상기 제 1 클라이언트가 상기 제 2 서버에서 게임을 진행할 수 있도록 상기 제 1 서버와 상기 제 2 서버가 트랜스퍼링 사전 작업을 진행하는 단계, 상기 제 2 서버는 상기 제 1 클라이언트 및 상기 제 2 클라이언트에 게임 진행 결과 데이터를 송신하는 단계, 및 상기 제 2 서버가 제 1 서버에 상기 제 1 클라이언트의 게임 히스토리를 송신하는 단계를 포함한다.
본 명세서의 또다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 온라인 게임을 제공하는 제 1 서버, 제 2 서버 및 상기 제 1 서버와 상기 제 2 서버의 게임 히스토리 업데이트로 구성된 온라인 게임 서버 시스템에서 제 1 서버가 제 1 클라이언트와 로그인을 진행하여 게임을 제공하는 단계, 제 2 서버가 제 2 클라이언트와 로그인을 진행하여 게임을 제공하는 단계, 상기 제 1 클라이언트가 상기 제 2 서버에서 게임을 진행할 수 있도록 상기 제 1 서버 및/또는 상기 중계 서버가 상기 제 2 서버와 트랜스퍼링 사전 작업을 진행하는 단계, 상기 제 2 서버는 상기 제 1 클라이언트 및 상기 제 2 클라이언트에 게임 진행 결과 데이터를 송신하는 단계, 및 상기 제 2 서버가 제 1 서버 또는 상기 중계 서버에 상기 제 1 클라이언트의 게임 히스토리를 송신하는 단계를 포함한다.
본 명세서의 또다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법은 온라인 게임을 제공하는 제 1 서버, 제 2 서버 및 상기 제 1 서버와 상기 제 2 서버의 게임 히스토리를 저장하는 게임 히스토리 DB 서버로 구성된 온라인 게임 서버 시스템에서 제 1 서버가 제 1 클라이언트와 로그인을 진행하여 게임을 제공하는 단계, 제 2 서버가 제 2 클라이언트와 로그인을 진행하여 게임을 제공하는 단계, 상기 제 1 클라이언트가 상기 제 2 서버에서 게임을 진행할 수 있도록 상기 제 1 서버가 상기 제 2 서버와 트랜스퍼링 사전 작업을 진행하는 단계, 상기 제 2 서버는 상기 제 1 클라이언트 및 상기 제 2 클라이언트에 게임 진행 결과 데이터를 송신하는 단계, 및 상기 제 2 서버가 상기 히스토리 DB 서버에 상기 제 1 클라이언트 및 상기 제 2 클라이언트의 게임 히스토리를 송신하는 단계를 포함한다.
본 명세서의 또다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 장치는 네트워크를 통하여 데이터를 송수신하는 송수신부, 로컬 클라이언트의 게임 히스토리를 저장하며, 리모트 클라이언트의 게임 히스토리를 임시로 저장하는 히스토리 데이터베이스부, 온라인 게임 데이터를 저장하는 게임 데이터베이스부, 상기 송수신부, 히스토리 데이터베이스부, 게임 데이터베이스부를 제어하여 온라인 게임을 진행하는 중앙제어부를 포함하며, 상기 중앙제어부는 로컬 클라이언트와 리모트 클라이언트가 동일한 온라인 게임 환경에서 게임을 진행할 수 있도록 상기 송수신부를 제어하며, 게임 진행 결과 데이터가 상기 로컬 클라이언트 및 상기 리모트 클라이언트에 직접 또는 간접으로 송신하며, 상기 중앙제어부는 상기 히스토리 데이터베이스부에 임시로 저장된 상기 리모트 클라이언트의 게임 히스토리를 상기 리모트 클라이언트의 베이스 서버 또는 중계 서버에 송신하도록 상기 송수신부를 제어하는 것을 특징으로 한다.
본 명세서의 또다른 실시예에 의한 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 장치는 서버에 데이터를 송수신하는 송수신부, 게임 진행 결과 데이터를 저장하는 저장부, 상기 게임 진행 결과 데이터 및 상기 게임의 환경 정보의 출력을 제어하는 출력부, 및 상기 송수신부, 저장부, 출력부를 제어하는 중앙제어부를 포함하며, 상기 중앙제어부는 상기 송수신부가 제 1 서버에 로그인을 위한 식별 정보를 송수신하고, 상기 제 1 서버에 서버 트랜스퍼링을 요청하는 메시지를 송신하도록 제어하고, 상기 중앙제어부는 상기 제 1 서버 또는 트랜스퍼링을 진행할 제 2 서버에 접속하여 상기 접속한 서버에서 수신한 게임 진행 결과 데이터를 수신하여 상기 저장부에 저장한다.
본 명세서의 또다른 실시예에 의한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체는 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 프로그램을 기록한 기록 매체에 있어서, 제 1 클라이언트로부터 로그인을 위한 식별 정보를 수신하고, 상기 제 1 클라이언트에게 온라인 게임 환경 정보를 송신하는 기능, 제 2 클라이언트의 서버 트랜스퍼링을 위한 서버 트랜스퍼링 사전 작업을 외부 서버와 진행하는 기능, 상기 외부 서버 또는 상기 제 2 클라이언트가 송신한 게임 진행을 위한 데이터를 수신하고, 상기 수신한 데이터를 온라인 게임 환경에 적용한 게임 진행 결과 데이터를 상기 게임 진행을 위한 데이터를 송신한 외부 서버 또는 제 2 클라이언트에게 송신하는 기능, 및 상기 제 1 클라이언트 및 상기 제 2 클라이언트간에 발생한 상호 작용의 결과를 상기 제 1 클라이언트의 게임 히스토리로 저장하는 기능을 구현한다.
도 1은 본 명세서의 일 실시예들이 적용되는 온라인 게임의 구조에 대한 일 실시예이다.
도 2는 본 명세서의 일 실시예에 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버만 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다.
도 3은 본 명세서의 다른 실시예에 의한 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버만 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다.
도 4는 본 명세서의 일 실시예에 의한 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버, 그리고 중계 서버가 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다.
도 5는 본 명세서의 일 실시예에 의한 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버, 그리고 중계 서버가 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다.
도 6은 본 명세서의 일 실시예에 의한 게임 서버군의 서버의 동작 과정을 보여주는 도면이다.
도 7은 본 명세서의 일 실시예에 의한 클라이언트의 동작 과정을 보여주는 도면이다.
도 8은 본 명세서의 일 실시예에 의한 서버의 구성을 보여주는 도면이다.
도 9는 본 명세서의 일 실시예에 의한 클라이언트의 구성을 보여주는 도면이다.
도 10은 본 명세서의 일 실시예에 의한 히스토리 데이터베이스부에 저장되는 정보의 구성을 보여주는 도면이다.
도 11은 본 명세서의 또다른 실시예에 의한 게임 히스토리 데이터베이스부가 하나의 서버에 공통으로 저장된 경우를 보여주는 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 명세서의 일 실시예들이 적용되는 온라인 게임의 구조에 대한 일 실시예이다.
도 1에서 클라이언트의 일 실시예인 컴퓨터(30), 노트북(40), PDA(Personal Digital Assistant)/스마트폰(smartphone)(20)이 인터넷을 통해 게임 서버군(110)에 연결하여 온라인 게임을 수행할 수 있다. 게임 서버군(110)는 하나 이상의 서버(111, 112)로 구성될 수 있다. 게임 서버군(110)의 서버는 물리적으로 독립된 장치가 될 수 있고, 논리적으로 독립되어 작동하는 개체가 될 수 있다. 예를 들어, 물리적으로 분리되어 있는 서버란 네트워크를 통해 서로 구분되는 서버를 포함하며, 논리적으로 독립되어 작동하는 개체란, 서버가 독립된 프로세스로 존재하여, 물리적으로 동일 장치 혹은 다른 장치 내에 위치하는지 여부와 상관없이 독립적으로 작동하는 것을 의미한다.
도 1에서 클라이언트(20, 30, 40)은 인터넷(100)을 경유하여 서버군(110)에 접속한다. 서버군에서는 해당 클라이언트를 어떤 서버(111)에 접속시킬 것인지에 대해 미리 설정할 수 있다. 예를 들어, 클라이언트의 접속 지역별로, 혹은 클라이언트에 로그인한 사용자의 식별 정보(아이디, 이름 등)를 이용하여 미리 설정된 서버에 접속시킬 수 있다. 또한, 클라이언트에서 서버 군(110)에 접속할 경우 미리 특정 서버에 접속할 수 있다. 이는 다양한 방식으로 구현 가능하다.
본 명세서의 일 실시예에 의한 서버 트랜스퍼링은 다수의 서버들로 구성된 온라인 게임 서버군에 접속한 클라이언트가 하나의 서버에서 온라인 게임을 수행하는 도중 다른 서버로 이동(트랜스퍼링, transferring)하여 이동한 서버에서 지금까지 진행해온 게임 히스토리 정보 중 일부를 이용하여 게임을 진행하는 것을 의미한다.
이하, 클라이언트가 원래 게임을 진행하는 서버를 베이스 서버(base server), 이동을 한 서버를 트랜스퍼링 서버(transferring server)라 한다. 게임 서버군에는 베이스 서버와 트랜스퍼링 서버가 있으며, 선택적으로 중앙 서버(center server) 또는 중계 서버(relay server)를 포함할 수 있다. 중앙 서버 또는 중계 서버는 클라이언트에 접속한 사용자의 식별정보를 확인하는 사용자 데이터베이스와 사용자의 게임 히스토리가 저장된 히스토리 데이터베이스를 포함할 수 있다. 중앙/중계 서버가 존재하지 않는 경우, 이러한 데이터베이스는 각각의 베이스 서버에 독립적으로 구현되어 동작할 수 있다.
도 2는 본 명세서의 일 실시예에 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버만 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다.
클라이언트(209)는 베이스 서버(201)와 로그인 과정을 진행한다(S210). 베이스 서버(201)에는 아이디, 패스워드 등 로그인을 진행하는데 필요한 정보가 저장된 사용자 데이터베이스를 포함할 수 있다. 로그인을 하는 과정은 클라이언트(209)가 플레이어의 식별 정보 및 패스워드를 베이스 서버(201)에 송신하고, 베이스 서버(201)가 이를 확인하여 접속을 허락하며 이와 함께 해당 식별 정보에 따른 온라인 게임 환경 정보를 송신하는 것을 포함한다. 온라인 게임 환경 정보는 이전에 플레이어가 게임을 종료할 당시의 스킬, 순위, 획득한 아이템, 온라인 게임 환경 내에서의 가상 위치 등을 포함하며, 온라인 게임 환경 정보는 게임의 특성에 따라 다양하게 설정될 수 있다.
로그인 과정이 진행되면, 클라이언트(209)는 베이스 서버(201)로부터 게임 관련 데이터를 수신하여 게임을 진행한다(S212). 게임 관련 데이터로는 맵을 기반으로 하는 게임인 경우, 현재 위치의 주변 위치, 사물, 다른 플레이어들, 그리고 몬스터들의 정보를 포함한다. S212의 게임 진행 과정에서 다른 플레이어와 상호 작용을 하거나, 몬스터, 주변 사물들과 상효 작용을 할 수 있다. 상호 작용이란 게임 내에서 개임 개체들 간의 상호 작용을 의미하며, 플레이어-플레이어 또는 플레이어 몬스터 간에는 전투를 할 수 있고, 플레이어가 사물을 이동하거나 취득할 수 있으며, 플레이어 간에 대화를 하거나, 서로 돕는 행동을 하는 모든 경우를 포함한다. 게임을 진행하는 과정에서 발생하는 상호 작용 또는 상황의 변화는 전부 또는 일부가 히스토리 데이터베이스에 저장된다. 이는 클라이언트(209)가 베이스 서버(201)로부터 접속을 중단한 후 다시 접속하여 게임을 진행할 때, 이전에 수행하였던 게임 진행 정보를 그대로 이용할 수 있도록 한다. 히스토리 데이터베이스에는 해당 사용자의 스킬(skill) 또는 레벨(level), 관련하여 보유한 아이템(item) 또는 무기, 초능력 등이 될 수 있으며, 게임의 성격에 따라 다양하게 구성될 수 있다.
게임을 진행하는 중 클라이언트(209)는 서버 트랜스퍼링을 베이스 서버(201)에 요청한다(S214). 클라이언트(209)가 특정 서버를 트랜스퍼링 할 것을 요청할 수 있고, 베이스 서버(201)는 요청한 클라이언트가 트랜스퍼링할 서버를 검색할 수 있다. 베이스 서버(201)는 검색 또는 요청된 트랜스퍼링 서버(202)와 서버 트랜스퍼링 사전 작업을 진행한다(S220). 사전 작업은 클라이언트(209)가 트랜스퍼링 서버(202)에서 게임을 진행하는데 필요한 정보를 제공하는 것을 포함한다. 앞서 살펴본 히스토리 데이터를 제공할 수 있고, 클라이언트(209)의 로그인 또는 식별 정보 등을 제공할 수 있다. 또한, 사전 작업은 클라이언트(209)의 레벨, 순위, 보유한 아이템 등 게임의 특성에 따라 다양한 정보를 설정하는 과정을 포함한다.
사전 작업이 완료되면 베이스 서버(201)는 트랜스퍼링 관련 정보를 클라이언트(209)에 제공한다. 제공되는 정보의 일 실시예는 트랜스퍼링 서버(202)의 주소를 포함하는 정보, 로그인시 필요한 정보, 또는 트랜스퍼링 서버(202)에서 사용하게 될 임시 식별정보 등이 될 수 있다. 서버 별로 사용자 식별 정보를 독립적으로 관리할 경우, 베이스 서버(201)의 특정 사용자의 식별 정보를 트랜스퍼링 서버(202)에서 그대로 사용할 수 없으므로, 임시 식별 정보를 할당받을 수 있다. 이는 중복되는 식별 정보의 발생을 방지하고, 트랜스퍼링 서버(202)가 본래의 게임 플레이어들과 트랜스퍼링된 클라이언트를 구별할 수 있도록 하는 기능을 제공한다.
이후 클라이언트(209)는 제공받은 정보를 이용하여 트랜스퍼링 서버(202)와 로그인 과정을 진행한다(S230). 로그인이 성공하면 클라이언트(209)는 트랜스퍼링 서버(202)에서 게임을 진행한다(S232).
게임을 진행하는 과정에 선택적으로 트랜스퍼링 서버(202)는 베이스 서버(201)에 게임 히스토리를 업데이트할 수 있다(S240, S242). 이는 게임 진행 도중에 클라이언트의 플레이어가 획득한 점수, 능력 등과 변경된 사항 등을 베이스 서버(201)에 제공하여, 베이스 서버(201)의 히스토리 데이터를 업데이트 할 수 있도록 한다. 이러한 게임 히스토리 업데이트 과정은 일정 간격을 두고 진행될 수 있고, 업데이트가 발생한 시점에 진행될 수 있다. 또한 게임이 종료되거나 클라이언트가 로그아웃 하기 전까지 별도의 업데이트를 하지 않을 수 있다. 즉, S250과 같이 게임이 종료하면 트랜스퍼링 서버(202)는 베이스 서버(201)에게 그동안 진행된 게임으로 인해 발생한 히스토리 정보가 업데이트 될 수 있도록 게임 히스토리 업데이트(S260)를 진행할 수 있다.
도 2에서 트랜스퍼링 서버(202)에서 진행되는 게임의 일 실시예로 클라이언트(209)가 트랜스퍼링 서버(202)에서 제공하는 맵 또는 월드에서 몬스터로 기능하도록 게임을 제공할 수 있다. 예를 들어, 제 1 서버(베이스 서버)에서 플레이어로 게임을 진행하던 A, B가 제 2 서버(트랜스퍼링 서버)로 트랜스퍼링 하는 경우를 가정한다. 제 2 서버에는 C, D, E가 플레이어로 게임을 진행하며, 몬스터로 M, N이 존재한다. 제 2 서버에서는 C, D, E가 협심하여 M, N과 전투를 진행하는 게임이 진행될 수 있는데, 이 과정에서 A, B가 제 2 서버로 이동할 경우, 이들 A, B는 C, D, E 플레이어에게 몬스터로 인식되도록 제 2 서버가 제어할 수 있다. 그 결과 C, D, E는 M, N 뿐만 아니라 플레이어 A, B와 전투를 진행하게 된다. 물론 플레이어 A, B 역시 제 2 서버에서 C, D, E와 전투를 진행하며 게임의 능력 또는 점수를 획득할 수 있다. 트랜스퍼링 서버(202)에서 진행되는 게임의 특성, 또는 트랜스퍼한 플레이어가 트랜스퍼링 서버(202)의 게임 공간에서 어떻게 표시되는지는 구현예 및 게임에 따라 다양할 수 있으며, 본 명세서가 이에 한정되는 것은 아니다.
도 3은 본 명세서의 다른 실시예에 의한 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버만 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다. 도 2의 구성과 상이한 것은 도 2에서는 클라이언트가 트랜스퍼링 서버에 직접 접속하여 게임을 진행하는 경우인 반면, 도 3 에서는 클라이언트가 베이스 서버를 경유하여 트랜스퍼링 서버에 접속하여 게임을 진행하는 것을 보여준다.
클라이언트(309), 베이스 서버(301), 트랜스퍼링 서버(302)로 구성되며, 로그인 과정(S310), 베이스 서버(301)에서의 게임 진행(S312), 그리고 베이스 서버(301)에 서버 트랜스퍼링을 요청하는 과정(S314)는 도 2의 S210, S212, S214와 동일하게 진행될 수 있으므로, 이에 대한 설명은 도 2의 해당 설명으로 대신하고자 한다.
클라이언트(309)가 베이스 서버(301)에 트랜스퍼링을 요청한 후(S314) 베이스 서버(301)는 트랜스퍼링 서버(302)와 서버 트랜스퍼링 사전 작업을 진행한다(S320). 이때, 클라이언트(309)가 베이스 서버(301)를 경유하여 트랜스퍼링 서버(302)에 접속하게 되므로, 이에 필요한 사전 작업을 진행할 수 있다. 예를 들어, 도 2와 달리, 도 3에서는 클라이언트(309)가 베이스 서버(301)를 경유하여 트랜스퍼링 서버(302)에서 게임을 진행하는데 필요한 정보를 제공하는 것을 포함한다. 베이스 서버(301)를 경유하게 되므로 게임 히스토리 데이터는 실시간으로 트랜스퍼링 서버(302)에 제공할 수 있다. 베이스 서버(301)와 트랜스퍼링 서버(302)간의 사전 작업이 완료 후, 혹은 베이스 서버(301)와 트랜스퍼링 서버(302)간의 사전 작업이 진행되는 도중에 베이스 서버(301)와 트랜스퍼링 사전 작업을 진행한다(S322). 베이스 서버(301)가 중간에 조정하게 되므로, 도 2와 비교할 때, 사전 작업에서 교환되는 정보의 양이 크지 않을 수 있다. 사전 작업이 완료되면 게임을 진행한다. 클라이언트(309)의 플레이어는 트랜스퍼링 서버(302)가 제공하는 게임 공간(예를 들어, 월드, 맵 등)에서 게임을 진행하게 되는데, 게임을 진행하기 위해서 플레이어를 이동시키거나 어떤 동작을 하게 하거나, 혹은 게임 공간의 정보를 요청하는 작업 등을 할 수 있다. 즉, 게임 진행을 위한 데이터를 송신한다(S330). 게임 진행을 위한 데이터는 이동과 관련된 거리, 속도, 혹은 전투 과정에서의 액션, 아이템 취득을 위한 행위, 주변 정보를 요청하는 행위 등을 모두 포함하며, 게임의 특성에 따라 다양하게 구성될 수 있다. 즉, 게임을 진행하기 위해 클라이언트(309)에서 생성하여 송신하게 되는 데이터는 모두 게임 진행을 위한 데이터가 될 수 있다. 이 데이터는 베이스 서버(301)로 송신되고(S330), 베이스 서버(301)는 이 데이터를 트랜스퍼링 서버(302)로 송신한다(S332). 도면에 미도시 되었으나, 베이스 서버(301)가 트랜스퍼링 서버(302)로 게임 진행을 위한 데이터를 송신하는 도중 또는 그 전후로 하여 게임 히스토리를 업데이트 할 수 있다. 게임 진행 데이터를 수신한 트랜스퍼링 서버(302)는 게임 진행을 수행하고 그 결과 데이터를 송신한다(S340). 예를 들어 게임 진행 데이터가 플레이어를 일정 방향으로 움직이는 것이었다면, 게임 진행 결과 데이터는 플레이어가 일정 방향으로 움직인 후 영향을 받은 게임 공간에 대한 정보가 될 수 있다. 보다 상세히 살펴보면, 플레이어가 일정 방향으로 움직인 결과가 될 수 있다. 한편, 게임 진행 데이터가 플레이어와 다른 개체와 전투를 진행하는 경우, 게임 진행 결과 데이터는 전투 결과를 포함할 수 있다. 아이템을 획득하는 것이 게임 진행 데이터인 경우, 아이템의 획득 결과 또는 그로 인한 능력치, 점수 변화 등이 게임 진행 결과 데이터가 될 수 있다. 또한, 클라이언트(309)의 플레이어가 별도의 액션을 수행하지 않아도 다른 플레이어 또는 다른 게임 공간 내의 개체의 변화로 인해 주변 상황에 대해 업데이트된 정보가 송신될 수 있다. 트랜스퍼링 서버(302)가 송신한 게임 진행 결과 데이터는 베이스 서버(301)가 수신하여 이를 클라이언트(309)에게 전달한다. 물론, 이 과정에서 베이스 서버(301)가 일부 정보만을 전달할 수 있다. 또한, 베이스 서버(301)는 게임 진행 결과 데이터를 분석하여 게임 히스토리를 업데이트 할 수 있다(S344). 이후 S330~S344 과정은 게임이 진행되는 동안 반복하여 진행될 수 있다. 이후 클라이언트(309)가 게임을 종료하면(S350), 베이스 서버(301)와 트랜스퍼링 서버(302)간에 게임 종료에 따른 작업을 진행한다(S352). 게임 종료 과정에서 게임 히스토리를 업데이트 할 수 있다(S354).
도 2, 3에서 트랜스퍼링 서버(202, 302)역시 베이스 서버(201, 301)과 같은 서버이므로 트랜스퍼링 서버(202, 302)가 트랜스퍼링한 클라이언트의 게임 히스토리를 임시로 저장한 후, 게임이 종료될 경우 이를 베이스 서버(201, 301)에 제공하여 게임 히스토리 업데이트를 수행할 수 있다. 한편, 이러한 게임 히스토리의 임시 저장을 별도의 중계 서버를 통해 저장하는 방식을 살펴볼 수 있다. 이에 대해서는 도 4에서 살펴보고자 한다.
도 4는 본 명세서의 일 실시예에 의한 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버, 그리고 중계 서버가 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다. 도 4에서는 게임 서버군에 베이스 서버(401), 중계 서버(403), 트랜스퍼링 서버(402)가 포함된다. 클라이언트(409)는 베이스 서버(401)에서 게임을 진행하며 이후 서버 트랜스퍼링을 수행하여 트랜스퍼링 서버(402)에서 게임을 수행하게 된다.
클라이언트(409)가 베이스 서버(401)와 진행하는 로그인 과정(S410), 게임 진행 과정(S412), 서버 트랜스퍼링 요청(S414), 서버 트랜스퍼링 사전 작업(S420), 트랜스퍼링 관련 정보 제공 과정(S422)은 앞서 살펴본 도 2의 S210, S212, S214, S220, S222와 동일하므로, 도 2의 해당 설명으로 대신하고자 한다.
트랜스퍼링 관련 정보를 제공받은 클라이언트(409)는 트랜스퍼링 서버(402)에 로그인하는 과정을 진행한다(S430). 그리고 트랜스퍼링 서버(402)에서 게임을 진행한다(S432). 이 경우, 게임 히스토리는 트랜스퍼링 서버(402)에 임시로 저장되지 않고 중계 서버(403)에 송신되어 중계 서버(403)가 업데이트를 수행한다(S440, S442). 물론, 게임의 진행을 위해 일부 정보는 트랜스퍼링 서버(402)에 저장될 수 있다. 게임의 진행이 완료되게 게임이 종료하면(S450), 트랜스퍼링 서버(402)는 게임 종료후 베이스 서버(401)에 저장되어야 하는 게임 히스토리를 중계 서버(403)에 업데이트(S452)한다. 업데이트가 완료되면, 중계 서버(403)는 베이스 서버(401)와 게임 히스토리 업데이트를 진행한다(S460).
도 4에서는 클라이언트(409)가 트랜스퍼링 서버(402)에서 게임을 진행하며 발생한 게임 히스토리가 중계 서버(403)에 순차적으로 저장되는 과정을 보여준다. 도 4의 구성일 경우, 게임 히스토리의 업데이트와 관련하여 중계 서버가 실시간 혹은 소정 간격을 두고 정보를 저장하게 되므로, 트랜스퍼링 서버(402)에 여러 베이스 서버들에 소속된 클라이언트들이 접속할 경우에도 네트워크의 부하를 줄일 수 있다. 또한, 게임 히스토리를 업데이트하는 과정이 단순해진다.
도 5는 본 명세서의 일 실시예에 의한 의한 게임 서버군 내에 베이스 서버와 트랜스퍼링 서버, 그리고 중계 서버가 존재할 경우, 서버 트랜서퍼링을 진행하는 과정을 보여주는 도면이다. 도 5는 도 4와 달리, 클라이언트가 중계 서버를 통하여 게임을 진행하는 과정을 보여준다.
클라이언트(509)가 베이스 서버(501)와 진행하는 로그인 과정(S510), 게임 진행 과정(S512), 서버 트랜스퍼링 요청(S514)은 앞서 살펴본 도 3의 S310, S312, S314와 동일하므로, 도 3의 해당 설명으로 대신하고자 한다.
클라이언트(509)가 베이스 서버(501)에 서버 트랜스퍼링을 요청하면(S514), 베이스 서버(501)는 서버 트랜스퍼링을 중계하게 되는 중계 서버(503)와 서버 트랜스퍼링 사전 작업을 진행한다(S520). 이 과정에서 중계 서버(503) 역시 트랜스퍼링 서버(502)와 서버 트랜스퍼링 사전 작업을 진행할 수 있다(S522). 베이스 서버(501)와 중계 서버(503)간에 이루어지는 서버 트랜스퍼링 사전 작업(S520)은 클라이언트(509)가 중계 서버(503)에 접속하는 것, 그리고 트랜스퍼링 할 서버(502)의 정보를 확인하는 등의 과정을 포함할 수 있다. 한편, 중계 서버(503)와 트랜스퍼링 서버(502)간에 이루어지는 서버 트랜스퍼링 사전 작업(S522)은 클라이언트(509), 베이스 서버(501)의 정보를 공유하고, 게임 히스토리를 업데이트할 수 있도록 네트워크 정보를 설정하는 과정 등을 포함할 수 있다. 이후 중계 서버(503)는 S522 과정 결과 발생한 트랜스퍼링 관련 정보를 베이스 서버(501)에 제공하고, 베이스 서버(501)는 수신한 트랜스퍼링 관련 정보 중 일부 또는 전부를 클라이언트(509)에 제공한다(S526). 이후, 클라이언트(509)는 게임을 시작하는데, 게임 진행을 위한 데이터를 중계 서버(503)에 송신한다(S530). 게임 진행을 위한 데이터는 앞서 살펴본 바와 같이 이동과 관련된 거리, 속도, 혹은 전투 과정에서의 액션, 아이템 취득을 위한 행위, 주변 정보를 요청하는 행위 등을 모두 포함하며, 게임의 특성에 따라 다양하게 구성될 수 있다. 즉, 게임을 진행하기 위해 클라이언트(509)에서 생성하여 송신하게 되는 데이터는 모두 게임 진행을 위한 데이터가 될 수 있다. 이 데이터는 중계 서버(503)로 송신되고(S530), 중계 서버(503)는 이 데이터를 트랜스퍼링 서버(502)로 송신한다(S532). 도면에 미도시 되었으나, 중계 서버(503)가 트랜스퍼링 서버(502)로 게임 진행을 위한 데이터를 송신하는 도중 또는 그 전후로 하여 게임 히스토리를 업데이트 할 수 있다. 게임 진행 데이터를 수신한 트랜스퍼링 서버(502)는 게임 진행을 수행하고 그 결과 데이터를 송신한다(S540). 예를 들어 게임 진행 데이터가 플레이어를 일정 방향으로 움직이는 것이었다면, 게임 진행 결과 데이터는 플레이어가 일정 방향으로 움직인 후 영향을 받은 게임 공간에 대한 정보가 될 수 있다. 보다 상세히 살펴보면, 플레이어가 일정 방향으로 움직인 결과가 될 수 있다. 한편, 게임 진행 데이터가 플레이어와 다른 개체와 전투를 진행하는 경우, 게임 진행 결과 데이터는 전투 결과를 포함할 수 있다. 아이템을 획득하는 것이 게임 진행 데이터인 경우, 아이템의 획득 결과 또는 그로 인한 능력치, 점수 변화 등이 게임 진행 결과 데이터가 될 수 있다. 또한, 클라이언트(509)의 플레이어가 별도의 액션을 수행하지 않아도 다른 플레이어 또는 다른 게임 공간 내의 개체의 변화로 인해 주변 상황에 대해 업데이트된 정보가 송신될 수 있다. 트랜스퍼링 서버(502)가 송신한 게임 진행 결과 데이터는 중계 서버(503)가 수신하여 이를 클라이언트(509)에게 전달한다. 물론, 이 과정에서 중계 서버(503)가 일부 정보만을 전달할 수 있다. 또한, 중계 서버(503)는 게임 진행 결과 데이터를 분석하여 게임 히스토리를 업데이트 할 수 있다(S544). 이후 S530~S544 과정은 게임이 진행되는 동안 반복하여 진행될 수 있다. 이후 클라이언트(509)가 게임을 종료하면(S550), 중계 서버(503)와 트랜스퍼링 서버(502)간에 게임 종료에 따른 작업을 진행한다(S552). 게임 종료 과정에서, 또는 종료 과정 이후에 중계 서버(503)와 베이스 서버(501)는 중계 서버(503)에 저장된 게임 히스토리를 업데이트 한다(S554). 그 결과, 베이스 서버(501)에는 트랜스퍼링 서버(502)에서 진행된 게임 정보가 저장되며, 이후 클라이언트(509)가 베이스 서버(501)에 접속할 경우, 저장된 게임 히스토리를 이용하여 게임을 진행할 수 있다.
도 2, 3, 4, 5에서는 클라이언트(209, 309, 409, 509)가 베이스 서버(201, 301, 401, 501)에 서버 트랜스퍼링을 요청하지만, 본 명세서가 이러한 구성에 한정되는 것은 아니다. 즉, 클라이언트가 트랜스퍼링 서버의 정보를 획득하여 트랜스퍼링 서버에 직접 서버 트랜스퍼링을 요청할 수 있다. 물론, 클라이언트의 베이스 서버에 대한 정보를 제공하여, 해당 클라이언트의 플레이어에 대한 상세한 게임 히스토리 정보를 트랜스퍼링 서버가 베이스 서버로부터 수신할 수 있다.
도 6은 본 명세서의 일 실시예에 의한 게임 서버군의 서버의 동작 과정을 보여주는 도면이다.
서버는 베이스 서버 및 트랜스퍼링 서버의 기능을 모두 제공한다. 즉, 특정 클라이언트에 대하여 베이스 서버인 장치가 다른 클라이언트에 대해서 트랜스퍼링 서버가 될 수 있다. 반대로, 특정 클라이언트에 대하여 트랜스퍼링 서버인 장치가 다른 클라이언트에 대해서 베이스 서버가 될 수 있다.
본 명세서에서는 클라이언트를 로컬 클라이언트와 리모트 클라이언트로 나눈다. 하나의 클라이언트가 서버의 입장에서 베이스 서버인지, 혹은 트랜스퍼링 서버인지에 따라 로컬 클라이언트, 트랜스퍼링 클라이언트가 될 수 있다. 예를 들어, 앞서 살펴본 도 2, 3, 4, 5에서 베이스 서버(201, 301, 401, 501)의 입장에서는 클라이언트(209, 309, 409, 509)가 로컬 클라이언트인 반면, 트랜스퍼링 서버(202, 302, 402, 502)의 입장에서는 클라이언트(209, 309, 409, 509)가 리모트 클라이언트가 된다.
서버는 제 1 클라이언트의 접속을 요청하는 메시지를 수신한다(S610). 이 메시지는 제 1 클라이언트가 송신할 수 있고, 또는 제 1 클라이언트가 접속한 외부 서버 또는 중계 서버가 송신할 수 있다.
수신한 메시지를 분석하면 제 1 클라이언트가 로컬 클라이언트인지, 또는 리모트 클라이언트인지를 확인할 수 있다(S615). 이는 상기 접속을 요청하는 메시지에 포함된 클라이언트의 식별 정보, 혹은 메시지 타입 등을 이용하여 확인할 수 있다. 물론, 리모트 클라이언트인 경우, 상기 메시지를 리모트 클라이언트가 송신한 것인지, 또는 리모트 클라이언트가 접속한 외부 서버 또는 중계 서버가 송신한 것인지 확인할 수 있다.
제 1 클라이언트가 로컬 클라이언트인 경우, 제 1 클라이언트와 로그인 과정을 진행한다(S620). 제 1 클라이언트를 통해 로그인하게 되는 플레이어의 종래 게임 정보, 즉 게임 히스토리 정보는 서버에 저장되어 있으며, 제 1 클라이언트에 대해 베이스 서버의 기능을 제공한다. 제 1 클라이언트는 로그인 접속을 수행한 후 게임을 진행할 수 있다. 즉 서버는 베이스 서버의 기능을 제공하게 된다. 그 과정에서 서버 트랜스퍼링 요청 메시지를 수신한다(S622). 서버 트랜스퍼링 요청 메시지를 수신하면, 서버는 제 1 클라이언트가 직접 또는 서버를 통해 외부의 트랜스퍼링 서버에 접속하여 게임을 진행할 수 있도록 해야 한다. 따라서, 서버는 외부의 트랜스퍼링 서버 또는 릴레이 서버에 대해 서버 트랜스퍼링을 위한 사전 작업을 진행하고, 그 결과 수신하게 되는 정보를 이용하여 제 1 클라이언트에 대하여 서버 트랜스퍼링을 진행한다(S624). 이후, 제 1 클라이언트는 트랜스퍼링 서버의 게임 환경 내에서 게임을 수행하게 되고, 그 과정에서 발생하는 게임 히스토리를 실시간으로, 혹은 특정 시점에 업데이트를 하게 된다(S626).
한편 S615에서 제 1 클라이언트가 리모트 클라이언트인 경우, 서버는 트랜스퍼링 서버로 동작하게 된다. 한편, S610의 메시지는 앞서 도 2, 3, 4, 5에서 살펴본 바와 같이, 외부의 베이스 서버 또는 중계 서버가 송신할 수 있다. 그러나, 이와 달리 제 1 클라이언트가 직접 요청을 할 수도 있다. 따라서, 서버는 S610에서 메시지를 송신한 장치(베이스 서버, 중계 서버, 또는 제 1 클라이언트와 서버 트랜스퍼링을 위한 사전 작업을 진행한다(S640). 이 과정에서 제 1 클라이언트의 베이스 서버로부터 혹은 중계 서버로부터 제 1 클라이언트에 대한 게임 히스토리의 전부 또는 일부를 수신하여 임시로 저장할 수 있다. 이후, 제 1 클라이언트와 접속을 직접 또는 베이스 서버, 중계 서버 등을 거친 간접으로 진행한 후, 제 1 클라이언트가 생성한 게임 진행을 위한 데이터를 수신한다(S642). 서버가 상기 데이터를 제 1 클라이언트로부터 상기 데이터를 직접 수신하는 경우와 제 1 클라이언트가 베이스 서버 또는 중계 서버에 상기 데이터를 송신한 후, 베이스 서버 또는 중계 서버가 다시 상기 데이터를 서버로 송신하는 경우로 나뉘어질 수 있다.
수신한 데이터는 게임 환경에 적용하고 그 결과를 상기 게임 진행을 위한 데이터를 송신한 장치(제 1 클라이언트, 베이스 서버, 중계 서버 중 어느 하나)에 송시한다(S644). 그리고 제 1 클라이언트의 게임 히스토리를 제 1 클라이언트의 베이스 서버 또는 중계 서버로 송신하여 게임 히스토리 업데이트를 진행한다(S646).
이후 S642, S644, S646 단계를 반복하여 혹은 선별적으로 진행하면서 제 1 클라이언트는 게임을 수행하게 된다.
도 7은 본 명세서의 일 실시예에 의한 클라이언트의 동작 과정을 보여주는 도면이다. 도 7에서는 클라이언트가 베이스 서버에 접속한 후, 서버 트랜스퍼링을 하고 난 후, 트랜스퍼링 서버의 온라인 게임 환경에서 게임을 수행하는 과정을 보여주고 있다.
먼저 베이스 서버에 접속한다(S710). 베이스 서버에 접속하여 게임을 수행하는 과정에서 외부 서버로의 트랜스퍼링을 진행할 수 있다. 베이스 서버 혹은 외부 서버(트랜스퍼링 서버, 중계 서버 등)에 대하여 서버 트랜스퍼링을 요청한다(S720). 서버 트랜스퍼링 사전 작업이 진행된 후, 트랜스퍼링 관련 정보를 수신한다(S730). 트랜스퍼링 관련 정보는 외부 서버로의 접속 방식에 따라 달리 정의될 수 있다. 예를 들어, 클라이언트가 베이스 서버로부터 트랜스퍼링 서버에 대한 정보를 수신한 후, 해당 트랜스퍼링 서버에 직접 접속하는 경우, 트랜스퍼링 서버에 직접 접속하는데 필요한 정보, 혹은 베이스 서버와 트랜스퍼링 서버가 클라이언트의 트랜스퍼링을 위하여 서버간에 설정한 정보들이 트랜스퍼링 관련 정보가 될 수 있다. 한편, 클라이언트가 베이스 서버 또는 중계서버 등을 거쳐서 트랜스퍼러링 서버에 접속할 경우, 베이스 서버가 중간 접속을 책임질 수 있으므로, 트랜스퍼링 관련 정보는 중간 접속을 위해 필요한 사항들이 포함될 수 있다. 트랜스퍼링 관련 정보는 네트워크의 구성, 서버간 공유되어야 하는 정보 및 클라이언트와 서버간에 공유되어야 하는 정보를 기준으로 구성될 수 있다.
트랜스퍼링 관련 정보를 수신한 후, 서버 트랜스퍼링을 진행한다(S740). 서버 트랜스퍼링은 도 3, 5와 같이 클라이언트가 베이스 서버 또는 중계 서버를 경유하여 트랜스퍼링 서버에 접속할 수 있고, 도 2, 4와 같이 클라이언트가 트랜스퍼링 서버에 직접 접속할 수도 있다. 서버 트랜스퍼링 진행 이후 게임 진행을 위한 데이터를 송신한다(S750). 이는 앞서 살펴본 바와 같이 온라인 게임을 수행하기 위해 클라이언트측에서 입력되는 제어 정보를 포함한다. 플레이어의 이동을 지시하거나, 플레이어에게 전투, 아이템 획득과 같은 소정의 활동을 수행하도록 지시하는 정보들을 포함한다. 플레이어를 제어하게 되면, 이는 트랜스퍼링 서버에서 플레이어가 이동, 전투, 아이템 획득 등의 활동이 이루어진 것을 보여줄 수 있다. 그리고 플레이어의 활동에 의해 다른 플레이어에게 발생한 정보, 또는 다른 플레이어가 전투, 이동, 아이템 획득 등의 활동을 수행하여 발생한 결과 등을 포함하는 게임 진행 결과 데이터를 수신한다(S760). 클라이언트가 트랜스퍼링 서버에 직접 또는 간접으로 접속한 경우, 데이터 송수신 역시 직접 또는 간접으로 이루어질 수 있다.
이후 게임이 종료하기까지 S750, S760 과정을 반복하여 진행할 수 있다. 플레이어의 변화가 없어도 S760 과정을 통해 다른 플레이어의 변화된 상황을 확인할 수 있다.
게임이 종료하면(S770) 트랜스퍼링 서버 또는 중계 서버와 베이스 서버간에 게임 히스토리 업데이트를 진행할 수 있다. 물론, 이러한 게임 히스토리 업데이트 과정은 클라이언트와 독립적으로 진행될 수 있다. 앞서 게임 히스토리 업데이트 과정은 도 2, 3, 4, 5 및 도 6에서 살펴보았다.
도 8은 본 명세서의 일 실시예에 의한 서버의 구성을 보여주는 도면이다. 도 8은 베이스 서버와 트랜스퍼링 서버 모두를 나타낸다. 온라인 게임 서버군에서 게임을 진행하게 되는 서버는 특정 클라이언트에 대해서는 베이스 서버가 되며, 다른 클라이언트에 대해서는 트랜스퍼링 서버가 될 수 있다.
서버(800)의 전체 구성은 히스토리 데이터베이스부(810), 게임 데이터베이스부(820), 송수신부(830), 중앙제어부(840)으로 구성된다.
송수신부(830)는 네트워크를 통하여 데이터를 송수신한다. 클라이언트로부터 로그인을 위한 식별정보, 서버 트랜스퍼링을 요청하는 메시지, 그리고 게임 진행 과정에서 발생하는 데이터를 수신하고, 이에 대한 응답 데이터, 예를 들어, 트랜스퍼링 관련 정보를 포함하는 데이터를 제공하거나, 게임 진행 결과 데이터를 송신하거나, 또는 최초 로그인 시 게임 환경에 대한 정보를 포함하는 데이터를 클라이언트에 송신한다. 또한, 외부 서버와 서버 트랜스퍼링을 위하여 데이터를 송수신할 수 있다.
히스토리 데이터베이스부(810)는 로컬 클라이언트의 게임 히스토리를 저장하며, 리모트 클라이언트의 게임 히스토리를 임시로 저장한다. 게임 히스토리는 클라이언트를 통해 로그인한 특정 플레이어가 게임을 진행하며 획득하거나 변경된 정보, 플레이어 관련된 정보를 포함하며, 플레이어가 로그아웃한 후, 다시 로그인 할 경우, 해당 플레이어가 이전에 수행하여 획득한 게임 상태(점수, 위치, 획득 아이템 등의 환경)에 연속하여 게임을 진행할 수 있도록 하는 정보이다. 히스토리 데이터베이스부(810)는 로컬 클라이언트의 게임 히스토리는 지속적으로 저장하며, 리모트 클라이언트의 게임 히스토리는 임시로 저장한다. 임시로 저장된 리모트 클라이언트의 게임 히스토리는 해당 리모트 클라이언트의 베이스 서버 또는 중계 서버로 송신하게 된다.
게임 데이터베이스부(820)는 게임을 진행하기 위해 필요한 데이터를 저장한다. 온라인 게임 데이터를 저장할 수 있다. 예를 들어, 온라인 게임을 진행하는데 있어 맵을 구성하기 위해 필요한 정보, 맵 내의 다수 구조물에 대한 정보, 몬스터에 대한 정보 등을 포함할 수 있다. 게임 데이터베이스부(820)에는 게임을 수행하는데 필요한 정보를 포함하며, 플레이어들의 참여로 인하여 수정되거나 추가될 수도 있다. 따라서, 최초에 모든 서버가 게임 데이터베이스부(820)에 동일한 데이터를 저장한 상태이어도, 서버에 접속한 클라이언트를 통해 게임을 진행하는 다양한 플레이어들에 의하여 게임 데이터가 상이하게 될 수 있다. 따라서, 본 명세서의 일 실시예에 의한 베이스 서버와 트랜스퍼링 서버는 게임 데이터베이스부(820)에 저장된 게임 데이터가 상이할 수 있다.
중앙제어부(840)는 상기 송수신부(830), 히스토리 데이터베이스부(810), 게임 데이터베이스부(820)를 제어하여 온라인 게임을 진행한다.
중앙제어부(840)의 기능을 보다 자세히 살펴보면, 로컬 클라이언트와 리모트 클라이언트가 동일한 온라인 게임 환경에서 게임을 진행할 수 있도록 상기 송수신부(830)를 제어하며, 게임 진행 결과 데이터가 로컬 클라이언트 및 리모트 클라이언트에 직접 또는 간접으로 송신되도록 한다. 이는 앞서 도 2, 3, 4, 5에서의 베이스 서버 또는 트랜스퍼링 서버가 로컬 클라이언트와 리모트 클라이언트에 대하여 다양하게 정보를 송수신하는 과정을 포함한다.
또한, 중앙제어부(840)는 상기 히스토리 데이터베이스부(810)에 임시로 저장된 리모트 클라이언트의 게임 히스토리를 리모트 클라이언트의 베이스 서버 또는 중계 서버에 송신하도록 상기 송수신부(830)를 제어할 수 있다.
뿐만 아니라, 중앙제어부(840)는 리모트 클라이언트의 베이스 서버 또는 중계 서버를 통하여 게임을 진행한 결과 데이터(게임 진행 결과 데이터)를 송신하도록 송수신부(830)를 제어할 수 있도록 할 수 있다.
중앙제어부(840)은 앞서 살펴본 도 2, 3, 4, 5에서의 베이스 서버와 트랜스퍼링 서버의 기능을 제공할 수 있다. 따라서 도 2, 3, 4, 5에서의 베이스 서버와 트랜스퍼링 서버가 클라이언트와 로그인 및 게임을 진행하고, 서버 트랜스퍼링 작업을 수행하도록 서버(800)를 제어하게 된다.
도 9는 본 명세서의 일 실시예에 의한 클라이언트의 구성을 보여주는 도면이다.
도 9의 클라이언트(900)는 송수신부(930), 저장부(920), 출력부(910), 중앙제어부(940)를 포함한다. 보다 상세히 살펴보면 다음과 같다. 송수신부(930)는 서버에 데이터를 송수신한다. 외부의 장치와 데이터를 교환하는 기능을 제공한다. 저장부(920)는 게임 진행 결과 데이터를 저장하는데, 이는 일시적 또는 영구적으로 저장할 수 있다. 출력부(910)는 상기 게임 진행 결과 데이터 및 상기 게임의 환경 정보의 출력을 제어하게 되며, 게임 진행 결과 데이터를 그래픽적으로 변환하여 출력하는 기능 또한 포함한다.
중앙제어부(940)는 상기 구성요소를 제어하여 서버 트랜스퍼링 환경에서 게임을 수행할 수 있도록 한다. 중앙제어부(940)는 상기 송수신부(930)가 제 1 서버에 로그인을 위한 식별 정보를 송수신하고, 상기 제 1 서버에 서버 트랜스퍼링을 요청하는 메시지를 송신하도록 제어할 수 있다. 제 1 서버는 베이스 서버가 될 수 있다. 또한, 중앙제어부(940)는 상기 제 1 서버 또는 트랜스퍼링을 진행할 제 2 서버에 접속하여 상기 접속한 서버에서 수신한 게임 진행 결과 데이터를 수신하여 상기 저장부(920)에 저장하게 된다. 상기 제 2 서버는 중계 서버 또는 트랜스퍼링 서버가 될 수 있다. 도 9의 클라이언트(900)는 도 2, 3, 4, 5의 클라이언트의 기능을 제공한다.
도 10은 본 명세서의 일 실시예에 의한 히스토리 데이터베이스부에 저장되는 정보의 구성을 보여주는 도면이다.
1000은 서버의 히스토리 데이터베이스부에 저장될 수 있는 정보의 일 실시예이다. 플레이어 식별정보(PID, Player ID)는 게임 내에서의 캐릭터의 식별 정보를 의미한다. 서버 식별정보(SID, Server ID)는 해당 플레이어가 외부 서버로부터 접속한 클라이언트의 플레이어인지 여부를 확인할 수 있다. 레벨 및 에너지, 아이템은 모두 게임을 진행함에 있어 필요한 정보로, 이러한 정보는 클라이언트가 접속을 종료한 후에도 로그인하였던 플레이어의 게임 정보로 유지된다.
또한 본 명세서의 다른 실시예에 의할 경우, 게임에 따라 해당 캐릭터와 연관된 모든 데이터가 히스토리 데이터베이스부에 저장될 수 있다. 예를 들어, 특정 캐릭터(플레이어)가 서버에 접속하여 이동한 거리에 대한 정보, 획득하거나 전투를 수행한 상대 플레이어에 대한 정보, 시간순으로 레벨의 변화 과정 등 해당 플레이어가 특정 기간(예를 들어 캐릭터가 생성되거나 게임을 최초로 시작한 시점에서 현재까지)동안 생성한 모든 게임 진행 데이터 또는 게임 진행 결과 데이터가 히스토리 데이터베이스부에 저장될 수도 있다.
각각의 플레이어들에 대해 살펴보면 player-1, player-3은 모두 server-1이라는 외부 서버에서 트랜스퍼한 리모트 클라이언트의 플레이어이다. 또한, player-5 역시 외부 서버에서 트랜스퍼한 클라이언트의 플레이어이다. 따라서, 이들 플레이어들의 정보는 리모트 클라이언트가 접속을 종료하면, 원래의 서버인 server-1과 server-2로 송신하게 되는데, 이는 앞서 살펴본 히스토리 업데이트 과정에서 진행될 수 있다.
player-2, player-4는 SID가 0인데, 이는 로컬 클라이언트의 플레이어임을 의미한다. 서버에서는 player-2와 player-4의 게임 히스토리 정보를 지속적으로 저장하고, player-2와 player-4가 접속을 종료한 후 재접속하는 경우에도 해당 정보를 이용하여 게임을 진행할 수 있도록 한다.
서버는 리모트 클라이언트의 플레이어인 player-1, player-3, player-5는 외부 서버로부터 트랜스퍼한 플레이어이므로, 서버는 이 플레이어를 몬스터와 같이 player-2, player-4가 극복해야 할 대상으로 표시할 수 있다. 물론, 동일한 서버로부터 트랜스퍼한 player-1, player-3에게도 player-2, player-4, player-5를 몬스터로 표시되도록 하여 게임을 진행할 수 있도록 한다.
즉, 서버는 플레이어의 베이스 서버에 따라, 각각의 플레이어가 상대 서버의 플레이어를 몬스터와 같이 극복하거나 전투를 통해 제거해야 하는 대상으로 보여질 수 있도록 게임 진행 결과 데이터를 제공할 수 있다. 이 경우, 동일한 서버의 플레이어들과 다른 서버의 플레이어들 간에 표시되는 정보가 상이할 수 있다.
예를 들어, player-1은 player-3을 제외한 모든 플레이어(player-2, player-4, player-5)는 몬스터로 인식하도록 서버가 게임 진행 결과 데이터를 제공할 수 있다. 물론, 로컬 클라이언트를 통해 플레이되는 player-2, player-4 역시 player-1, player-3, player-5를 몬스터로 인식하도록 서버가 게임 진행 결과 데이터를 제공할 수 있다. 물론, 트랜스퍼된 서버에서이든, 베이스 서버이든 게임을 진행하여 획득한 아이템, 레벨, 에너지는 모두 유지되어 원래의 베이스 서버에서 그대로 이용할 수 있다.
앞서 살펴본 서버 트랜스퍼링에 의한 게임은 다양한 조건을 부가할 수 있는데, 예를 들어, 베이스 서버 내에서 특정 레벨 또는 에너지를 가진 플레이어들만 외부 서버로 트랜스퍼링 할 수 있도록 하는 조건을 부가할 수 있다. 이 경우, 베이스 서버는 특정 레벨 이상의 플레이어가 로그인한 클라이언트에 외부 서버로 트랜스퍼링 할 수 있는 공간을 표시하는 게임 진행 결과 데이터를 제공할 수 있다. 그리고, 특정 레벨 이상의 플레이어가 로그인 클라이언트는 수신한 게임 진행 결과 데이터를 디스플레이하여, 플레이어가 외부 서버로 트랜스퍼링 할 수 있도록 한다. 이 과정은 도 2, 3, 4, 5의 서버 트랜스퍼링 요청 과정에 해당할 수 있다. 또한, 이러한 서버 트랜스퍼링 요청 과정을 특정 플레이어가 시작시킬 수 있다. 예를 들어 다수의 플레이어들 중에서 리더가 되는 플레이어가 서버 트랜스퍼링을 요청하고, 다른 플레이어들이 이에 편승하는 인터페이스를 제공할 경우, 다수의 플레이어가 동일한 외부 서버로 트랜스퍼링 할 수 있다.
서버 트랜스퍼링에 의한 게임을 통해 서버 내에서의 경쟁 구조와 서버 간의 경쟁 구조를 제공할 수 있다. 또한, 서버 간의 경쟁 구조에서 발생한 게임 히스토리가 연속적으로 이용될 수 있다.
도 11은 본 명세서의 또다른 실시예에 의한 게임 히스토리 데이터베이스부가 하나의 서버에 공통으로 저장된 경우를 보여주는 도면이다.
도 11은 히스토리 DB 서버(1103)가 모든 클라이언트의 플레이어들의 게임 히스토리를 저장하고 있다. 따라서, 베이스 서버(1101)와 트랜스퍼링 서버(1102)는 클라이언트가 로컬 클라이언트이든, 리모트 클라이언트이든 히스토리 DB 서버(1103)와 게임 히스토리 업데이트 작업을 진행해야 한다.
먼저 클라이언트(1109)는 베이스 서버(1101)에 로그인을 요청한다(S1110). 베이스 서버(1101)는 요청한 로그인을 수행하기 위하여 히스토리 DB 서버(1103)에 로그인을 수행하는데 필요한 데이터 및 게임 히스토리를 요청하여 데이터와 히스토리를 수신한다(S1112). 이때, 로그인을 수행하는데 필요한 데이터는 해당 클라이언트를 통해 로그인한 플레이어의 개인 정보를 포함한다.
이후 베이스 서버(1101)는 로그인 데이터와 게임 히스토리를 클라이언트(1109)에 송신하고(S1114), 게임을 진행한다(S1120). 이때, 게임 히스토리 데이터베이스가 중앙의 히스토리 DB 서버(1103)에 저장되어 있으므로, 게임을 진행하면서 게임 히스토리 업데이트를 수행한다(S1122).
이후 게임을 진행하는 중 클라이언트(1109)는 서버 트랜스퍼링을 베이스 서버(1101)에 요청한다(S1130). 클라이언트(1109)가 특정 서버를 트랜스퍼링 할 것을 요청할 수 있고, 베이스 서버(1101)는 요청한 클라이언트가 트랜스퍼링할 서버를 검색할 수 있다. 베이스 서버(1101)는 검색 또는 요청된 트랜스퍼링 서버(1102)와 서버 트랜스퍼링 사전 작업을 진행한다(S1132). 사전 작업은 클라이언트(1109)가 트랜스퍼링 서버(1102)에서 게임을 진행하는데 필요한 정보를 제공하는 것을 포함한다. 히스토리 데이터는 히스토리 DB 서버(1103)에 저장되어 있으므로, 별도로 베이스서버(1101)가 트랜스퍼링 서버(1102)에 제공할 필요는 없다. 한편, 베이스서버(1101)는 클라이언트(1109)의 로그인 또는 식별 정보 등을 트랜스퍼링 서버(1102)에 제공할 수 있다. 한편, 클라이언트(1109)의 레벨, 순위, 보유한 아이템의 정보 역시 히스토리 DB 서버(1103)에 저장된 경우, 별도로 베이스서버(1101)가 트랜스퍼링 서버(1102)에 제공할 필요는 없다. 다만, 트랜스퍼링 될 클라이언트(1109)를 트랜스퍼링 서버(1102)가 식별할 수 있을 정도의 정보만 제공할 수 있다.
사전 작업이 완료되면 베이스 서버(1101)는 트랜스퍼링 관련 정보를 클라이언트(1109)에 제공한다(S1134). 제공되는 정보의 일 실시예는 트랜스퍼링 서버(1102)의 주소를 포함하는 정보, 로그인시 필요한 정보, 또는 트랜스퍼링 서버(1102)에서 사용하게 될 임시 식별정보 등이 될 수 있다. 서버 별로 사용자 식별 정보를 독립적으로 관리할 경우, 베이스 서버(1101)의 특정 사용자의 식별 정보를 트랜스퍼링 서버(1102)에서 그대로 사용할 수 없으므로, 임시 식별 정보를 할당받을 수 있다. 만약, 모든 서버의 사용자 정보를 히스토리 DB 서버(1103)에서 관리하는 경우에는 별도로 할당할 필요가 없다.
이후 클라이언트(1109)는 트랜스퍼링 서버(1102)와 게임을 진행한다(S1142). 트랜스퍼링 서버(1102)는 게임 진행 과정에서 발생하는 게임 히스토리를 히스토리 DB 서버(1103)에 업데이트한다(S1150, S1152). 이후 게임이 종료하면(S1160), 게임 히스토리 업데이트를 완료한다(S1162)
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (13)

  1. 제 1 클라이언트로부터 로그인을 위한 식별 정보를 수신하는 단계;
    상기 제 1 클라이언트에게 온라인 게임 환경 정보를 송신하는 단계;
    제 2 클라이언트의 서버 트랜스퍼링을 위한 서버 트랜스퍼링 사전 작업을 외부 서버와 진행하는 단계;
    상기 외부 서버 또는 상기 제 2 클라이언트가 송신한 게임 진행을 위한 데이터를 수신하는 단계;
    상기 수신한 데이터를 온라인 게임 환경에 적용한 게임 진행 결과 데이터를 상기 게임 진행을 위한 데이터를 송신한 외부 서버 또는 제 2 클라이언트에게 송신하는 단계; 및
    상기 제 1 클라이언트 및 상기 제 2 클라이언트간에 발생한 상호 작용의 결과를 상기 제 1 클라이언트의 게임 히스토리로 저장하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  2. 제 1 항에 있어서,
    상기 제 2 클라이언트의 게임 히스토리를 임시 저장하여 이를 상기 외부 서버에 송신하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  3. 클라이언트로부터 서버 트랜스퍼링을 요청하는 메시지를 수신하는 단계;
    외부 서버와 서버 트랜스퍼링 사전 작업을 진행하는 단계;
    상기 외부 서버와의 서버 트랜스퍼링 사전 작업 결과 생성된 트랜스퍼링 관련 정보를 상기 클라이언트에 송신하는 단계; 및
    상기 외부 서버로부터 상기 클라이언트의 게임 히스토리를 수신하여 업데이트 하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  4. 제 3항에 있어서,
    상기 외부 서버는 트랜스퍼링 서버 또는 중계 서버인 것을 특징으로 하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  5. 제 3항에 있어서,
    상기 트랜스퍼링 관련 정보를 상기 클라이언트에 송신하는 단계 이후에
    상기 클라이언트로부터 게임 진행을 위한 데이터를 수신하여 이를 상기 외부 서버에 송신하는 단계; 및
    상기 외부 서버로부터 게임 진행 결과 데이터를 수신하여 상기 클라이언트에 송신하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  6. 클라이언트가 제 1 서버에 로그인을 위한 식별 정보를 송신하는 단계;
    상기 제 1 서버에 서버 트랜스퍼링을 요청하는 메시지를 송신하는 단계;
    상기 제 1 서버 또는 트랜스퍼링을 진행할 제 2 서버에 접속하는 단계;
    상기 접속한 서버에 게임 진행을 위한 데이터를 송신하고, 게임 진행 결과 데이터를 수신하는 단계; 및
    상기 트랜스퍼링을 진행할 제 2 서버에 접속한 제 2 클라이언트와 상기 제 2 서버에서 허용된 게임을 수행하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  7. 온라인 게임을 제공하는 제 1 서버 및 제 2 서버로 구성된 온라인 게임 서버 시스템에서
    제 1 서버가 제 1 클라이언트와 로그인을 진행하여 게임을 제공하는 단계;
    제 2 서버가 제 2 클라이언트와 로그인을 진행하여 게임을 제공하는 단계;
    상기 제 1 클라이언트가 상기 제 2 서버에서 게임을 진행할 수 있도록 상기 제 1 서버와 상기 제 2 서버가 트랜스퍼링 사전 작업을 진행하는 단계;
    상기 제 2 서버는 상기 제 1 클라이언트 및 상기 제 2 클라이언트에 게임 진행 결과 데이터를 송신하는 단계; 및
    상기 제 2 서버가 제 1 서버에 상기 제 1 클라이언트의 게임 히스토리를 송신하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  8. 온라인 게임을 제공하는 제 1 서버, 제 2 서버 및 상기 제 1 서버와 상기 제 2 서버의 게임 히스토리 업데이트로 구성된 온라인 게임 서버 시스템에서
    제 1 서버가 제 1 클라이언트와 로그인을 진행하여 게임을 제공하는 단계;
    제 2 서버가 제 2 클라이언트와 로그인을 진행하여 게임을 제공하는 단계;
    상기 제 1 클라이언트가 상기 제 2 서버에서 게임을 진행할 수 있도록 상기 제 1 서버 및/또는 상기 중계 서버가 상기 제 2 서버와 트랜스퍼링 사전 작업을 진행하는 단계;
    상기 제 2 서버는 상기 제 1 클라이언트 및 상기 제 2 클라이언트에 게임 진행 결과 데이터를 송신하는 단계; 및
    상기 제 2 서버가 제 1 서버 또는 상기 중계 서버에 상기 제 1 클라이언트의 게임 히스토리를 송신하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  9. 온라인 게임을 제공하는 제 1 서버, 제 2 서버 및 상기 제 1 서버와 상기 제 2 서버의 게임 히스토리를 저장하는 게임 히스토리 DB 서버로 구성된 온라인 게임 서버 시스템에서
    제 1 서버가 제 1 클라이언트와 로그인을 진행하여 게임을 제공하는 단계;
    제 2 서버가 제 2 클라이언트와 로그인을 진행하여 게임을 제공하는 단계;
    상기 제 1 클라이언트가 상기 제 2 서버에서 게임을 진행할 수 있도록 상기 제 1 서버가 상기 제 2 서버와 트랜스퍼링 사전 작업을 진행하는 단계;
    상기 제 2 서버는 상기 제 1 클라이언트 및 상기 제 2 클라이언트에 게임 진행 결과 데이터를 송신하는 단계; 및
    상기 제 2 서버가 상기 히스토리 DB 서버에 상기 제 1 클라이언트 및 상기 제 2 클라이언트의 게임 히스토리를 송신하는 단계를 포함하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법.
  10. 네트워크를 통하여 데이터를 송수신하는 송수신부;
    로컬 클라이언트의 게임 히스토리를 저장하며, 리모트 클라이언트의 게임 히스토리를 임시로 저장하는 히스토리 데이터베이스부;
    온라인 게임 데이터를 저장하는 게임 데이터베이스부;
    상기 송수신부, 히스토리 데이터베이스부, 게임 데이터베이스부를 제어하여 온라인 게임을 진행하는 중앙제어부를 포함하며,
    상기 중앙제어부는 로컬 클라이언트와 리모트 클라이언트가 동일한 온라인 게임 환경에서 게임을 진행할 수 있도록 상기 송수신부를 제어하며, 게임 진행 결과 데이터가 상기 로컬 클라이언트 및 상기 리모트 클라이언트에 직접 또는 간접으로 송신하며,
    상기 중앙제어부는 상기 히스토리 데이터베이스부에 임시로 저장된 상기 리모트 클라이언트의 게임 히스토리를 상기 리모트 클라이언트의 베이스 서버 또는 중계 서버에 송신하도록 상기 송수신부를 제어하는 것을 특징으로 하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 장치.
  11. 제 10항에 있어서,
    상기 중앙제어부는 상기 리모트 클라이언트의 베이스 서버 또는 중계 서버를 통하여 상기 게임 진행 결과 데이터를 송신하도록 상기 송수신부를 제어하는 것을 특징으로 하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 장치.
  12. 서버에 데이터를 송수신하는 송수신부;
    게임 진행 결과 데이터를 저장하는 저장부;
    상기 게임 진행 결과 데이터 및 상기 게임의 환경 정보의 출력을 제어하는 출력부; 및
    상기 송수신부, 저장부, 출력부를 제어하는 중앙제어부를 포함하며,
    상기 중앙제어부는 상기 송수신부가 제 1 서버에 로그인을 위한 식별 정보를 송수신하고, 상기 제 1 서버에 서버 트랜스퍼링을 요청하는 메시지를 송신하도록 제어하고,
    상기 중앙제어부는 상기 제 1 서버 또는 트랜스퍼링을 진행할 제 2 서버에 접속하여 상기 접속한 서버에서 수신한 게임 진행 결과 데이터를 수신하여 상기 저장부에 저장하는, 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 장치.
  13. 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 프로그램을 기록한 기록 매체에 있어서,
    제 1 클라이언트로부터 로그인을 위한 식별 정보를 수신하고, 상기 제 1 클라이언트에게 온라인 게임 환경 정보를 송신하는 기능;
    제 2 클라이언트의 서버 트랜스퍼링을 위한 서버 트랜스퍼링 사전 작업을 외부 서버와 진행하는 기능;
    상기 외부 서버 또는 상기 제 2 클라이언트가 송신한 게임 진행을 위한 데이터를 수신하고, 상기 수신한 데이터를 온라인 게임 환경에 적용한 게임 진행 결과 데이터를 상기 게임 진행을 위한 데이터를 송신한 외부 서버 또는 제 2 클라이언트에게 송신하는 기능; 및
    상기 제 1 클라이언트 및 상기 제 2 클라이언트간에 발생한 상호 작용의 결과를 상기 제 1 클라이언트의 게임 히스토리로 저장하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020100047415A 2010-05-20 2010-05-20 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체 KR20110127907A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020100047415A KR20110127907A (ko) 2010-05-20 2010-05-20 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체
PCT/KR2011/003612 WO2011145855A2 (en) 2010-05-20 2011-05-17 Method, apparatus, and recoding medium for playing game with server trasferring in online game environment
JP2013511107A JP2013529115A (ja) 2010-05-20 2011-05-17 オンラインゲーム環境でサーバートランスファリングしてゲームを行う方法、装置及び記録媒体
US13/698,482 US8992328B2 (en) 2010-05-20 2011-05-17 Method, apparatus, and recording medium for playing game with server transferring in online game environment
TW100117419A TW201200216A (en) 2010-05-20 2011-05-18 Method, apparatus, and recoding medium for playing game with server trasferring in online game environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100047415A KR20110127907A (ko) 2010-05-20 2010-05-20 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020120046084A Division KR20120065978A (ko) 2012-05-02 2012-05-02 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체

Publications (1)

Publication Number Publication Date
KR20110127907A true KR20110127907A (ko) 2011-11-28

Family

ID=44992194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100047415A KR20110127907A (ko) 2010-05-20 2010-05-20 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체

Country Status (5)

Country Link
US (1) US8992328B2 (ko)
JP (1) JP2013529115A (ko)
KR (1) KR20110127907A (ko)
TW (1) TW201200216A (ko)
WO (1) WO2011145855A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119453A (ko) * 2018-04-12 2019-10-22 주식회사 넥슨코리아 복수의 사용자들 간에 게임을 진행하여 게임 결과를 기록하기 위한 장치, 방법 컴퓨터 프로그램

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009111510A2 (en) 2008-03-03 2009-09-11 William Levy Verification system for on-line gamers performing automatic verification of game results
US8790185B1 (en) 2012-12-04 2014-07-29 Kabam, Inc. Incentivized task completion using chance-based awards
US10482713B1 (en) * 2013-12-31 2019-11-19 Kabam, Inc. System and method for facilitating a secondary game
US10307666B2 (en) 2014-06-05 2019-06-04 Kabam, Inc. System and method for rotating drop rates in a mystery box
US9717986B1 (en) 2014-06-19 2017-08-01 Kabam, Inc. System and method for providing a quest from a probability item bundle in an online game
US9452356B1 (en) 2014-06-30 2016-09-27 Kabam, Inc. System and method for providing virtual items to users of a virtual space
US10454765B2 (en) 2016-07-15 2019-10-22 Mastercard International Incorporated Method and system for node discovery and self-healing of blockchain networks
US11438439B1 (en) 2021-03-31 2022-09-06 Microsoft Technology Licensing, Llc Detecting non-personal network and connectivity attributes for classifying user location

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030008712A1 (en) * 2001-06-04 2003-01-09 Playnet, Inc. System and method for distributing a multi-client game/application over a communications network
JP3893371B2 (ja) * 2003-10-10 2007-03-14 株式会社スクウェア・エニックス 返信メール作成装置、方法、プログラム及び記録媒体
US20060224761A1 (en) * 2005-02-11 2006-10-05 Vemotion Limited Interactive video applications
JP4553774B2 (ja) * 2005-03-31 2010-09-29 株式会社ドワンゴ 通信システム、中継サーバ、プログラム、および通信方法
KR100589437B1 (ko) * 2005-06-22 2006-06-14 엔에이치엔(주) 동적 서버 초기화 방법 및 시스템
KR100834421B1 (ko) 2006-10-19 2008-06-04 주식회사 넥슨 전 세계 단일 서버 시스템
KR100944233B1 (ko) 2007-08-08 2010-02-24 (주)세중게임즈 유무선 연동 및 통합을 통해 게임 데이터를 통합 관리하는 시스템
GB0717330D0 (en) * 2007-09-06 2007-10-17 Sony Comp Entertainment Europe Entertainment apparatus and method
US8725874B2 (en) * 2007-09-27 2014-05-13 International Business Machines Corporation Dynamic determination of an ideal client-server for a collaborative application network
JP2009086728A (ja) 2007-09-27 2009-04-23 Yamada Masako オンラインゲームにおけるサーバ管理システム及びその管理方法
KR101385336B1 (ko) 2008-02-29 2014-04-14 주식회사 엔씨소프트 온라인 게임을 위한 게임 간 이동 방법
US7824253B2 (en) * 2008-04-02 2010-11-02 Thompson Scott Edward System and method for providing real world value in a virtual world environment
US9550125B2 (en) * 2008-10-14 2017-01-24 Roblox Corporation Dynamic and scalable topology for virtual world environments

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119453A (ko) * 2018-04-12 2019-10-22 주식회사 넥슨코리아 복수의 사용자들 간에 게임을 진행하여 게임 결과를 기록하기 위한 장치, 방법 컴퓨터 프로그램

Also Published As

Publication number Publication date
WO2011145855A3 (en) 2012-02-16
TW201200216A (en) 2012-01-01
WO2011145855A2 (en) 2011-11-24
JP2013529115A (ja) 2013-07-18
US8992328B2 (en) 2015-03-31
US20130059656A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
KR20110127907A (ko) 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체
US8949336B2 (en) Network game system and program
CN105705211B (zh) 游戏系统、游戏控制方法和游戏控制程序
US9242174B2 (en) System and method for dynamically distributing game data
JP6009477B2 (ja) ゲームシステムおよびゲームプログラム
JP5430842B2 (ja) サーバシステム及びプログラム
US9069796B2 (en) Information processing system, computer-readable non-transitory storage medium, information processing method and information processor
KR100829810B1 (ko) 온라인 게임에서 게임 캐릭터 정보 동기화 방법 및 시스템
JP2015221208A (ja) オンラインゲームにおけるプレイヤの協力の容易化
KR20150083488A (ko) 온라인 게임 제공 방법 및 그 게임 제공 서버
KR20060123694A (ko) 휴대단말기를 이용한 대규모 다중 사용자 온라인 롤플레잉게임에서의 캐릭터 특성 육성방법
JP2011200449A (ja) オンラインゲームシステム、バトルサーバ装置、及びプログラム
JP5296732B2 (ja) オンラインゲームシステム、及びサーバ装置群
KR20120065978A (ko) 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체
CN106861192B (zh) 事件执行方法和装置
KR20130124040A (ko) 부활 강화 버프 기능을 제공하는 온라인 게임 제공 방법 및 그 게임 제공 서버
KR101190473B1 (ko) 온라인 게임에서의 친구간의 전적 제공 방법 및 서버
KR100733138B1 (ko) 논플레이어블캐릭터 제어방법
CN115734811A (zh) 用于管理在线游戏的装置及其方法和系统
JP6084746B2 (ja) ゲームシステムおよびゲームプログラム
JP6754654B2 (ja) サーバ装置、及びプログラム
JP6979105B2 (ja) アトラクションシステム、コンテンツ提供プログラム及びコンテンツ提供方法
KR101543415B1 (ko) SNG(Social Network Game)에서의 퀘스트 인터페이스 처리 방법, 상기 방법을 기록한 컴퓨터 판독 가능 저장매체, 사용자 단말
KR20130055844A (ko) 게임 내 이용자 간 자동 매칭 기능을 제공하는 방법, 게임 서버, 단말기 및 기록매체
KR100983543B1 (ko) 인공지능에 의해 조작되는 캐릭터를 이용한 스크린샷 제공시스템 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120507

Effective date: 20130705