KR101966559B1 - 게임 정보 저장 방법 및 시스템 - Google Patents

게임 정보 저장 방법 및 시스템 Download PDF

Info

Publication number
KR101966559B1
KR101966559B1 KR1020170169063A KR20170169063A KR101966559B1 KR 101966559 B1 KR101966559 B1 KR 101966559B1 KR 1020170169063 A KR1020170169063 A KR 1020170169063A KR 20170169063 A KR20170169063 A KR 20170169063A KR 101966559 B1 KR101966559 B1 KR 101966559B1
Authority
KR
South Korea
Prior art keywords
game
room
play data
memory
physical
Prior art date
Application number
KR1020170169063A
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 KR1020170169063A priority Critical patent/KR101966559B1/ko
Application granted granted Critical
Publication of KR101966559B1 publication Critical patent/KR101966559B1/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/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/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • 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/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

게임 정보 저장 방법 및 시스템이 개시된다. 컴퓨터에 의해 실행되는 게임 정보 저장 방법에 있어서, 개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 단계, 상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 단계, 상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 단계, 및 상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 단계를 포함할 수 있다.

Description

게임 정보 저장 방법 및 시스템{METHOD AND SYSTEM FOR CONTROLLING STORAGE OF GAME DATA}
아래의 설명은 게임 데이터를 저장하는 기술에 관한 것으로, 게임 등의 온라인 서버 환경에서 클라이언트 단말들(즉, 게임 참가자)들이 참여한 게임 방에서 진행된 게임에 해당하는 데이터의 저장을 제어하는 기술에 관한 것이다.
유무선 인터넷이 발달함에 따라, 웹 기반의 컨텐츠뿐만 아니라 모바일 기반의 컨텐츠도 다양화되고 있다. 예컨대, 모바일 기반의 학습 프로그램, 게임 프로그램 등이 증가하고 있다. 클라이언트 단말의 사양이 향상됨에 따라, 게임 역시 단순 보드 게임에서, 롤플레잉 게임, 시뮬레이션 게임 등의 형태로 다양화되고 있다.
기존에는 게임이 종료되면 해당 게임의 결과(예컨대, 게임 점수)와 필요 정보(예컨대, 게임 참가자의 식별자 정보 등)를 간추려서 데이터베이스(DB)에 시간 등을 고려하여 저장하였다.
그러나, 기존의 게임 정보 저장 방식은 종료한 게임의 필요한 정보만을 저장하고, 게임이 수행된 방 정보를 남겨두지 않기 때문에 게임 서버 기준으로 게임이 삭제되거나 없어질 수 있다. 예를 들어, 게임 서버에서 게임 방관련 프로그램을 메모리에 올려 놓고 실행시킨 후, 게임을 플레이(play)한 결과가 나오면, 게임 결과를 저장한 후 해당 게임 방을 제거한다.
한국공개특허 제 10-2016-0119033호는 네트워크 상태에 따른 게임 데이터 저장 시스템 및 방법, 그 단말에 관한 것으로, 게임 프로그램 실행 중 저장이벤트가 발생함을 감지하면, 게임서버와의 네트워크 상태를 측정하고, 네트워크 상태에 대한 측정값이 기설정된 임계값 보다 양호한 경우, 게임데이터를 게임서버로 전송하는 기술을 개시하고 있다.
게임의 리플레이(replay)가 가능하고, 이미 진행된 과거 게임의 진행 방법을 추적 가능하도록 하는 게임 저장 방법 및 시스템을 제공한다.
컴퓨터에 의해 실행되는 게임 정보 저장 방법에 있어서, 개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 단계, 상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 단계, 상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 단계, 및 상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 액티브 이벤트는, 게임 진행 중에 적어도 하나의 게임 참가자와 연관하여 발생되는 이벤트들 중 상기 게임 방에 참여한 모든 게임 참가자에게 영향을 미치는 이벤트를 나타낼 수 있다.
게임 정보 저장 시스템은, 개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 모니터링부, 상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 메모리 DB 저장 제어부, 상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 물리 DB 저장 제어부, 및 상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 재참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 게임 재구성부를 포함할 수 있다.
컴퓨터로 구현되는 서버 장치와 결합되어 이 게임 정보 저장 방법을 실행시키기 위해 기록매체에 저장된 컴퓨터 프로그램에 있어서, 상기 게임 정보 저장 방법은, 개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 단계, 상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 단계, 상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 단계, 및 상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 재참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 단계를 포함할 수 있다.
용량이 제한된 메모리 DB이외에 물리 DB를 추가적으로 이용하여 게임이진행된 해당 게임 방의 키(key) 정보와 게임 진행 중에 발생한 이벤트를 연관하여 저장함으로써, 게임의 리플레이(replay)가 가능하고, 이미 진행된 과거 게임의 진행 방법을 추적 가능하고, 게임 이어하기를 자동으로 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기, 서버, 및 게임 정보 저장 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 게임 서버 및 키 관리 서버를 포함하는 네트워크 환경을 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 게임 정보 저장 시스템의 프로세서가 포함할 수 있는 구성 요소의 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 게임 정보 저장 방법의 예를 도시한 흐름도이다.
도 6은 본 발명의 일실시예에 있어서, 물리 DB에 저장된 게임 플레이 데이터를 기반으로 게임을 재구성하는 동작을 설명하는 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 실시예들은 게임 저장 방법 및 시스템에 관한 것으로서, 특히, 게임 서버 및 클라이언트 환경에서 게임 실행을 위한 메모리 DB뿐만 아니라 백업용의 물리 DB를 이용하여 게임 방의 키(key) 정보와 게임 플레이 데이터를 매칭하여 저장해두었다가, 이후 클라이언트 단말로부터 게임 진행이 다시 요청되면, 메모리 DB 및 물리 DB 중 적어도 하나에 저장된 게임 플레이 데이터를 기반으로 해당 게임을 재구성하여 제공하는 기술에 관한 것이다. 즉, 본 실시예들은 서버의 액티브성을 낮추어 서버의 프로세스 파워(power)를 절약함으로써, 성능을 올리는 기술에 관한 것이다.
본 실시예들에서, "액티브 이벤트(active event)"는 게임 진행 중에 게임 참가자들에 의해 발생하는 게임 이벤트로서, 특히, 게임 방에 참여한 모든 게임 참가자들에게 영향을 미치는 이벤트를 나타낼 수 있다. 즉, 게임 서버에 영향을 미치는 액션(action)을 나타내는 것으로서, 카드 게임인 경우, 게임 참가자가 특정 카드를 제출한 이후 다른 카드를 가져간 경우 등이 액티브 이벤트에 해당할 수 있다.
본 실시예들에서, "메모리 DB"는 게임 방에 참여한 게임 참가자들(즉, 게임 참가자의 클라이언트 단말들)을 대상으로 게임을 실행하기 위한 DB로서, 용량이 제한적이고, 물리 DB보다 상대적으로 빠른 처리 시간을 가질 수 있다.
본 실시예들에서, "물리 DB"는 메모리 DB의 용량적 제한을 해소하기 위한 백업용 DB로서, 용량에 제한이 없으며, 메모리 DB보다는 처리 시간이 느릴 수 있다.
본 실시예들에서, "클라이언트 단말"은 사용자가 소지한 단말을 나타내는 것으로서, 예컨대, 스마트폰(smart phone), 태블릿(tablet), 노트북, 데스크탑 등을 나타낼 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 서버(150), 게임 정보 저장 시스템(160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 전자 기기 1(110)은 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140), 서버(150), 및/또는 게임 정보 저장 시스템(160)과 통신할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150)는 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.
일례로, 서버(150)는 네트워크(170)를 통해 접속한 전자 기기 1(110)로 어플리케이션의 설치를 위한 파일을 제공할 수 있다. 이 경우 전자 기기 1(110)은 서버(150)로부터 제공된 파일을 이용하여 어플리케이션을 설치할 수 있다. 또한 전자 기기 1(110)이 포함하는 운영체제(Operating System, OS) 및 적어도 하나의 프로그램(일례로 브라우저나 상기 설치된 어플리케이션)의 제어에 따라 서버(150)에 접속하여 서버(150)가 제공하는 서비스나 컨텐츠를 제공받을 수 있다. 예를 들어, 전자 기기 1(110)이 어플리케이션의 제어에 따라 네트워크(170)를 통해 서비스 요청 메시지를 서버(150)로 전송하면, 서버(150)는 서비스 요청 메시지에 대응하는 코드를 전자 기기 1(110)로 전송할 수 있고, 전자 기기 1(110)은 어플리케이션의 제어에 따라 코드에 따른 화면을 구성하여 표시함으로써 사용자에게 컨텐츠를 제공할 수 있다.
게임 정보 저장 시스템(160)은 네트워크를 통해 서버(150)와 통신을 수행하며, 서버(150)에 플랫폼 형태로 구현될 수도 있고, 서버(150)와 별도로 외부에 위치할 수도 있다. 예컨대, 게임 정보 저장 시스템(160)은 서버(150)와 네트워크로 연결된 메모리 DB에 모듈화되어 구현될 수 있으며, 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.
게임 정보 저장 시스템(160)은 서버(150)를 통해 복수의 전자 기기들(110, 120, 130, 140)로부터 전달된 액티브 이벤트에 해당하는 게임 플레이 데이터의 저장을 제어할 수 있다. 예컨대, 게임 정보 저장 시스템(160)은 서버(150)를 통해 전자 기기 1(110)에서 발생한 게임 이벤트를 전달받고, 전달된 게임 이벤트 중 액티브 이벤트에 해당하는 게임 플레이 데이터를 메모리 DB에 저장하도록 제어하고, 필요에 따라 메모리 DB에 누적 저장된 게임 플레이 데이터를 물리 DB에 저장하도록 제어할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기, 서버, 및 게임 정보 저장 시스템의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 하나의 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 하나의 서버에 대한 예로서 서버(150)의 내부 구성을 설명한다. 다른 전자 기기들(120, 130, 140) 역시 동일한 또는 유사한 내부 구성을 가질 수 있다. 그리고, 도 1 및 도 2에서는 하나의 서버를 도시하였으나, 이는 실시예에 해당되며, 서버는 게임 서버 이외에 키 관리 서버 등 복수개 존재할 수 있다.
전자 기기 1(110)과 서버(150), 게임 정보 저장 시스템(180)은 메모리(211, 221, 231), 프로세서(212, 222, 232), 통신 모듈(213, 223, 233)을 포함할 수 있다. 그리고, 전자 기기 1(110) 및 서버(150)는 입출력 인터페이스(214, 224, 234)를 더 포함할 수 있다. 메모리(211, 221, 231)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(211, 221, 231)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 게임을 위한 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221, 231)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223, 233)을 통해 메모리(211, 221, 231)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221, 231)에 로딩될 수 있다.
프로세서(212, 222, 232)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221, 231) 또는 통신 모듈(213, 223, 233)에 의해 프로세서(212, 222, 232)로 제공될 수 있다. 예를 들어 프로세서(212, 222, 232)는 메모리(211, 221, 231)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(213, 223, 233)은 네트워크(170)를 통해 전자 기기 1(110), 서버(150), 게임 정보 저장 시스템(180)이 서로 통신하기 위한 기능을 제공할 수 있다.
입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를 포함하고, 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 서버(150)를 통해 게임 정보 저장 시스템(180)이 제공하는 게임 플레이 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기 1(110), 서버(150), 및 게임 정보 저장 시스템(180)은 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있음을 알 수 있다.
도 3은 본 발명의 일실시예에 있어서, 게임 서버 및 키 관리 서버를 포함하는 네트워크 환경을 도시한 도면이다.
도 3을 참고하면, 서로 다른 복수의 게임 참가자들이 동일 게임을 위해 모인 가상의 공간인 게임 방에 참여한 게임 참가자들(310)과 게임 서버(320)는 네트워크를 통해 통신을 수행할 수 있다. 그리고, 게임 서버(320)는 키 관리 서버(330)와 네트워크로 연결될 수 있다. 키 관리 서버(330)는 게임 방이 개설될 때마다 각 방을 구별하기 위한 방 번호에 해당하는 키(key)를 생성 및 관리할 수 있다. 예컨대, 32비트(bit)의 키를 이용하여 게임 방이 생성될 때마다 해당 방에 키를 부여할 수 있다. 이외에, 64 bit 또는 128 bit를 키로 이용할 수도 있고, 처음에는 32bit의 키로 시작하였다가, 개설되는 게임 방의 개수가 증가함에 따라 32bit를 점차적으로 64 bit, 128 bit로 증가시킬 수도 있다.
게임 서버(320)는 게임 방에 참여한 게임 참가자들(310), 즉, 클라이언트 단말들을 대상으로 게임을 실행하기 위해 메모리 DB(340)와 네트워크로 통신을 수행할 수 있다. 예를 들어, 현재 개설된 게임 방과 관련된 데이터가 메모리 DB(340)에 저장될 수 있다. 이때, 메모리 DB(340)는 처리 속도가 빠르지만 수십 기가(GB) 등으로 메모리 용량에 제한이 존재하므로, 개설되는 모든 게임 방의 게임 플레이 데이터(예컨대, 게임 진행 정보, 리플레이 정보, 게임 결과 정보 등)를 메모리 DB(340)에 저장하기 어려울 수 있다. 그러면, 메모리 DB(340)는 네트워크로 연결된 물리 DB(350)로 메모리 DB(340)에 저장된 게임 플레이 데이터를 이동 저장할 수 있다. 이동 저장한 이후, 메모리 DB(340)에서 해당 데이터는 삭제될 수 있다. 개설된 게임 방 별 게임 플레이 데이터를 메모리 DB(340)와 물리 DB(350)에 저장하는 자세한 동작은 도4 및 도 5를 참고하여 자세히 설명하기로 한다.
도 4는 본 발명의 일실시예에 있어서, 게임 정보 저장 시스템의 프로세서가 포함할 수 있는 구성 요소의 예를 도시한 도면이고, 도 5는 본 발명의 일실시예에 있어서, 게임 정보 저장 방법의 예를 도시한 흐름도이다.
도 4에 도시된 바와 같이 게임 정보 저장 시스템(180)의 프로세서(232, 400)는 구성요소들로서 모니터링부(410), 메모리 DB 저장 제어부(420), 물리 DB 저장 제어부(430), 및 게임 재구성부(440)를 포함할 수 있다. 이러한 프로세서(232, 400) 및 프로세서(232, 400)의 구성요소들은 도 5의 방법이 포함하는 단계들(510 내지 540 단계)을 수행하도록 게임 정보 저장 시스템(180)을 제어할 수 있다. 이때, 프로세서(232, 400) 및 프로세서(232, 400)의 구성요소들은 메모리(231)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 또한, 프로세서(232, 400)의 구성요소들은 운영체제나 적어도 하나의 프로그램이 제공하는 제어 명령에 따라 프로세서(232, 400)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(232, 400)가 상술한 제어 명령에 따라 게임 방에 참여한 적어도 하나의 게임 참가자들(즉, 클라이언트 단말들)로부터 액티브 이벤트(active event)가 발생했는지 여부를 모니터링하는 기능적 표현으로서 모니터링부(410)가 사용될 수 있다. 이처럼, 모니터링하려는 액티브 이벤트는 게임 서버(320)가 아닌 게임 참가자인 클라이언트 단말(310)로부터 발생할 수 있으며, 게임 참가자에 기반하여 액티브 이벤트를 받는 방식을 이용함으로써, 게임 서버(320)에서 타이머(timer) 및 루프(loop)를 사용하는 부분이 감소하여, 결국, 게임 서버(320)의 프로세스 파워가 크게 감소할 수 있다.
도 4 및 도 5에서, 게임 정보 저장 시스템(180)은 메모리 DB에 모듈화되어 구현되는 경우를 예로 들어 설명하기로 한다.
510 단계에서, 모니터링부(410)는 개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링할 수 있다.
예를 들어, 포커 게임, 고스톱 게임 등을 제공하는 경우, 모니터링부(410)는 포커 게임을 위해 개설된 적어도 하나의 게임 방, 고스톱 게임을 위해 개설된 적어도 하나의 게임 방을 모니터링할 수 있다. 이때, 키 관리 서버(330)는 개설된 각 게임 방 별로 생성된 키(key)를 방 번호로서 부여할 수 있다. 그러면, 메모리 DB 저장 제어부(520)는 게임 서버(320)를 통해 키 관리 서버(330)로부터 수신한 키(key)를 개설된 방 별로 매칭하여 저장 및 유지할 수 있다. 예컨대, 게임 방 1에 키 1을 연관시켜 저장하고, 게임 방 2에 키 2를 연관시켜 저장할 수 있다.
520 단계에서, 모니터링을 통해 액티브 이벤트가 발생한 것으로 감지되면, 메모리 DB 저장 제어부(420)는 해당 이벤트관련 게임 플레이 데이터를 해당 게임 방의 키(key) 정보와 연관하여 메모리 DB에 저장하도록 제어할 수 있다.
여기서, 액티브 이벤트는, 특정 게임 방에 참여한 적어도 하나의 게임 참가자들(즉, 클라이언트 단말들)로부터 발생하는 게임 이벤트 중 게임 방에 참여한 모든 게임 참가자들에게 영향을 미치는 게임 이벤트를 나타낼 수 있다. 즉, 게임 서버(320)에 영향을 주는 게임 이벤트를 나타낼 수 있다. 예를 들어, 포커 게임을 위해 개설된 게임 방인 경우, 포커 게임 진행 중에 게임 참가자 1이 에이스 카드를 제출하고 카드 패를 가져가거나, 고스톱 게임의 경우, 게임 참가자 1이 매화 패를 내어 낸 매화 패와 홍단 매화 패를 가져간 경우 등과 같이, 다른 게임 참가자가 가져갈 카드에 영향을 주는 게임 이벤트가 액티브 이벤트에 해당할 수 있다.
이때, 에이스 카드를 내고 다른 카드 패를 가져 가는 등의 게임 참가자의 액션(action)은 게임 진행 정보로서 게임 플레이 데이터로 저장될 수 있다. 예를 들어, 메모리 DB 저장 제어부(420)는 액티브 이벤트가 발생할 때마다 해당 이벤트와 관련하여 발생한 게임 진행 정보(예컨대, 특정 카드 패를 내고, 다른 특정 카드 패를 게임 참가자 1이 가져감 등), 게임 방의 키 정보, 및 이벤트 식별 정보를 연관하여 메모리 DB에 누적 저장하도록 제어할 수 있다. 여기서, 게임 진행 정보는 액티브 이벤트를 발생시킨 게임 참가자 별로 구분되어 저장될 수 있다.
일정 시간 동안 게임 방 1에 참여한 3명의 게임 참가자들을 대상으로, 게임 방 1에서 50개의 액티브 이벤트가 발생한 경우, 메모리 DB에 게임 방 1의 키정보와 연관하여 50개의 게임 플레이 데이터가 누적 저장될 수 있다. 이때, 메모리 DB는 용량적 제한이 존재하며, 게임 방 1 이외에 복수의 다른 게임 방들에서 모니터링된 게임 플레이 데이터고 메모리 DB에 누적 저장되므로, 메모리 DB의 가역폭이 미리 지정된 기준값을 초과하면, 메모리 DB에 저장된 정보들이 물리 DB로 이동 저장되어야 할 수 있다.
530 단계에서, 물리 DB 저장 제어부(430)는 메모리 DB에 누적 저장된 게임 방에 해당하는 게임 플레이 데이터를 해당 게임 방의 키(key) 정보와 연관하여 물리 DB에 저장하도록 제어할 수 있다.
일례로, 메모리 DB의 가역폭이 미리 지정된 기준값보다 크면, 즉, 메모리 DB의 잔여 용량이 얼마남지 않아 게임 서버(320)의 오버 플로우를 발생시킬 수준에 도달하면, 물리 DB 저장 제어부(430)는 메모리 DB에 누적 저장된 게임 방에 해당하는 게임 플레이 데이터를 해당 게임 방의 키(key) 정보와 연관하여 물리 DB에 저장하도록 제어할 수 있다. 이때, 물리 DB 저장 제어부(430)는 메모리 DB에 저장된 복수의 게임 방 별로 누적 저장된 게임 플레이 데이터들을 대상으로, 게임 플레이 데이터가 마지막으로 저장된 이후 미리 지정된 일정 시간이 경과한 데이터에 해당하는 게임 방을 결정할 수 있다. 즉, 물리 DB 저장 제어부(430)는 결정된 게임 방에 해당하는 게임 플레이 데이터를 물리 DB로 이동 저장할 데이터를 결정할 수 있다. 그러면, 물리 DB 저장 제어부(430)는 상기 결정된 게임 플레이 데이터 및 해당 게임 방의 키 정보가 연관하여 물리 DB에 저장되도록 제어할 수 있다.
다른 예로, 메모리 DB의 가역폭이 미리 지정된 기준값보다 큰 경우, 물리 DB 저장 제어부(430)는 메모리 DB에 누적 저장된 게임 플레이 데이터들을 대상으로, 누적 저장된 데이터의 용량이 가장 큰 데이터에 해당하는 게임 방을 물리 DB로 이동 저장될 것으로 결정할 수 있다. 그리고, 물리 DB 저장 제어부(430)는 결정된 게임 방에 해당하는 누적 저장된 전체 게임 플레이 데이터를 해당 방의 키 정보와 연관하여 물리 DB에 저장할 수 있다. 이때, 특정 하나의 게임 방에 해당하는 게임 플레이 데이터를 물리 DB로 이동 저장할 수도 있고, 누적 저장량이 큰 순서로 복수개의 게임 방에 해당하는 게임 플레이 데이터를 물리 DB에 저장할 수도 있다.
이외에, 용량 및 시간을 결합하여 물리 DB로 이동 저장할 수도 있다. 예컨대, 게임 플레이 데이터의 마지막 저장 시간이 일정 시간 이상 경과한 게임 방들 중 해당 게임 방의 누적 저장 용량이 큰 순서로 물리 DB에 이동 저장될 수 있다.
이처럼, 물리 DB 저장 제어부(430)는 메모리 DB의 가역폭이 미리 지정된 기준값보다 큰 경우, 게임 방에서 게임이 종료되지 않고 게임이 진행 중인 상태에서 해당 게임 방과 연관하여 누적 저장된 게임 플레이 데이터들을 메모리 DB에서 물리 DB로 이동 저장하도록 제어할 수 있다. 이때, 게임이 종료된 경우, 게임 플레이 데이터는 게임 진행 정보 및 리플레이(replay) 정보 이외에 게임 종료에 따른 게임 결과 정보를 더 포함할 수도 있다. 예컨대, 게임 결과 정보는, 해당 게임에서의 게임 점수, 승패, 획득한 아이템 등을 포함할 수 있다.
540 단계에서, 게임 참가자들이 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 게임 방에 참가한 경우, 게임 재구성부(440)는 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공할 수 있다.
일례로, 게임 방에 3명의 게임 참가자가 참여하여 게임을 진행 중에 게임을 종료하지 않고 게임 방에서 3명의 게임 참가자 모두가 퇴장한 이후 다시 적어도 하나의 게임 참가자가 해당 게임 방에 재참가한 경우, 게임 재구성부(440)는 해당 게임 방의 키 정보를 기반으로 물리 DB에서 해당 게임 방의 키 정보에 매칭하는 게임 플레이 데이터들을 메모리 DB로 업로드할 수 있다. 이때, 게임 진행 정보 및 리플레이 정보는 물리 DB로 이동 저장될 때 압축되어 저장될 수 있으며, 메모리 DB로 업로드 시 압축 해제된 후 메모리 DB로 업로드될 수 있다. 그러면, 게임 재구성부(440)는 메모리 DB에 업로드된 해당 게임 방의 게임 플레이 데이터를 기반으로 마지막으로 저장된 시점(즉, 마지막으로 발생한 액티브 이벤트에 해당하는 시점)부터 게임이 이어서 진행되도록 제공할 수 있다. 즉, 게임 재구성부(440)는 자동으로 게임 이어하기를 제공할 수 있다. 이때, 게임 재구성부(440)는 게임 방에 재참가하지 않은 게임 참가자와 관련하여 오토 플레이(auto play)를 제공할 수 있다.
다른 예로, 방에 3명의 게임 참가자가 참여하여 게임을 진행 중에 게임을 종료하지 않고 게임 방에서 3명의 게임 참가자 모두가 퇴장한 이후 한 명 이상의 새로운 게임 참가자가 해당 게임 방에 참여한 경우, 게임 재구성부(440)는 해당 게임 방의 키 정보에 기초하여 물리 DB에 저장된 해당 게임 방의 게임 플레이 데이터를 메모리 DB로 업로드하여 게임 이어하기를 자동으로 제공할 수 있다. 이때, 게임 재구성부(440)는 게임 방에 없는 게임 참가자(즉, 퇴장한 3명의 게임 참가자)와 관련하여 오토 플레이(auto play)를 제공할 수 있다.
이후, 메모리 DB 저장 제어부(420)는 게임이 종료될 때까지 발생한 액티브 이벤트와 관련된 게임 플레이 정보(예컨대, 게임 진행 정보 및 리플레이 정보 등)을 메모리 DB에 업로드된 게임 플레이 데이터에 이어 누적 저장할 수 있다. 그리고, 게임이 종료되면, 메모리 DB 저장 제어부(420)는 게임 결과 정보를 해당 게임 방의 키 정보와 함께 연관하여 메모리 DB에 저장하도록 제어할 수 있다. 이어, 게임이 종료됨에 따라, 물리 DB 저장 제어부(430)는 메모리 DB로 업로드되어 누적 저장된 해당 게임 방관련 게임 플레이 데이터를 다시 물리 DB로 저장하도록 제어할 수 있다.
이때, 물리 DB 저장 제어부(430)는 메모리 DB로 복귀한 게임 플레이 데이터들과 이어 누적 저장된 게임 플레이 데이터들(즉, 마지막으로 저장된 액티브 이벤트에 해당하는 게임 플레이 데이터들 이후에 액티브 이벤트가 발생함에 따라 누적 저장된 게임 플레이 데이터들)을 압축할 수 있다. 그리고, 물리 DB 저장 제어부(430)는 압축된 데이터들을 해당 게임 방의 키 정보와 연관하여 물리 DB에 저장할 수 있다. 그리고, 게임 결과 정보는 압축하지 않은 상태로 해당 게임 방의 키 정보와 연관하여 물리 DB에 저장할 수 있다.
도 6은 본 발명의 일실시예에 있어서, 물리 DB에 저장된 게임 플레이 데이터를 기반으로 게임을 재구성하는 동작을 설명하는 흐름도이다.
도 6에서 각 단계들(610 내지 640 단계)은 도 4의 구성 요소인 메모리 DB 저장 제어부(420), 물리 DB 저장 제어부(430) 및 게임 재구성부(440)에 의해 수행될 수 있다.
610 단계에서, 메모리 DB 저장 제어부(420)는 게임 서버(320)를 통해 적어도 하나의 게임 참가자(즉, 클라이언트 단말, 310)로부터 특정 게임 방에 해당하는 게임의 진행 요청을 수신할 수 있다.
일례로, 게임을 종료하지 않은 상태로 게임 방에 참여한 게임 참가자들이 해당 게임 방을 모두 퇴장한 이후, 적어도 하나의 게임 참가자가 해당 게임 방에 재참가하거나, 새로운 게임 참가자가 해당 게임 방에 참가하기 위해 해당 게임 방에 입장한 경우, 게임 서버(320)는 재참가하거나 입장한 게임 참가자(즉, 클라이언트 단말)로부터 해당 게임 방의 게임 진행 요청을 수신할 수 있다. 그러면, 게임 서버(320)는 해당 게임 방의 키 정보와 함께 게임 진행 요청을 메모리 DB 저장 제어부(420)에 전달할 수 있다.
620 단계에서, 메모리 DB 저장 제어부(420)는 게임 방의 키 정보에 기초하여 게임 진행이 요청된 게임 방에 해당하는 게임 플레이 데이터를 메모리 DB에 요청할 수 있다.
즉, 메모리 DB 저장 제어부(420)는 메모리 DB에 누적 저장된 게임 방 별 게임 플레이 데이터들 중에서 상기 게임 방의 키 정보에 해당하는 게임 플레이 데이터를 검색할 수 있다. 이때, 메모리 DB에서 게임 플레이 데이터가 검색된 경우, 게임 재구성부(440)는 검색된 게임 플레이 데이터를 기반으로 해당 게임 방과 연관하여 마지막으로 발생한 액티브 이벤트를 기준으로 게임 참가자(예컨대, 재참가자 또는 새로운 게임 참가자)에 의해 발생한 액티브 이벤트가 이어지도록 게임을 재구성할 수 있다. 예컨대, 메모리 DB 저장 제어부(420)는 상기 마지막으로 발생한 액티브 이벤트에 해당하는 게임 플레이 데이터에 이어 새로운 액티브 이벤트에 해당하는 게임 플레이 데이터를 메모리 DB에 누적 저장할 수 있다. 이에 따라, 자동으로 게임 이어하기가 구현될 수 있다.
이때, 요청된 게임 방에 해당하는 게임 플레이 데이터가 메모리 DB에서 검색되지 않은 경우가 존재할 수 있다. 즉, 메모리 DB에서 상기 요청된 게임 방에 해당하는 키 정보가 검색되지 않을 수 있다.
그러면, 630 단계에서, 물리 DB 저장 제어부(430)는 메모리 DB에 게임 플레이 데이터가 존재하지 않음에 따라(즉, 게임 이어하기가 요청된 게임 방의 키 정보가 검색되지 않음에 따라), 물리 DB에 상기 게임 플레이 데이터를 요청할 수 있다. 예를 들어, 물리 DB 저장 제어부(430)는 물리 DB에 저장 및 유지되고 있는 게임 방별 키 정보를 대상으로, 상기 요청된 게임 방의 키 정보와 매칭하는 키 정보가 존재하는지 여부를 검색할 수 있다. 이때, 요청된 게임 방의 키 정보와 매칭하는 키 정보가 존재하는 경우, 물리 DB 저장 제어부(430)는 상기 게임 방에 해당하는 게임 플레이 데이터가 물리 DB에 존재하는 것으로 확인할 수 있다.
640 단계에서, 게임 진행 요청에 대한 응답으로(즉, 게임 이어하기에 대한 응답으로), 물리 DB 저장 제어부(430)는 물리 DB에 저장된 게임 방에 해당하는 게임 플레이 데이터가 메모리 DB로 업로드되도록 제어할 수 있다. 이때, 해당 게임 방에서 진행되던 게임이 종료되지 않은 상태였으므로, 게임 이어하기를 제공하기 위해, 물리 DB에 저장된 상기 게임 플레이 데이터(예컨대, 게임 진행 정보 및 리플레이 정보)는 압축 해제될 수 있으며, 물리 DB 저장 제어부(430)는 압축 해제된 게임 플레이 데이터를 해당 게임 방의 키 정보와 연관하여 메모리 DB에 업로드할 수 있다. 그러면, 게임 재구성부(440)는 메모리 DB에 업로드된 해당 게임 방의 게임 플레이 데이터를 기반으로 해당 게임을 재구성하여 제공할 수 있다.
일례로, 메모리 DB에 업로드된 게임 플레이 데이터들을 대상으로 히스토리컬 포인트(historical point)에 기초하여 해당 게임 방의 게임을 재구성할 수 있다. 여기서, 히스토리컬 포인트는 10 턴(turn), 게임 참가자의 게임 점수(또는 게임 머니 등)가 얼마 이상인 경우 등으로 지정될 수 있다. 즉, 물리 DB에 마지막으로 저장된 액티브 이벤트에 해당하는 게임 플레이 데이터들(예컨대, 10턴 뒤의 현재 상태)에 이어, 게임 진행 요청 이후 모니터링을 통해 새로 감지된 게임 참가자의 액티브 이벤트에 해당하는 게임 플레이 데이터를 메모리 DB에 누적 저장할 수 있다.
이때, 메모리 DB 저장 제어부(420)는 해당 게임 방의 게임이 종료될 때까지 발생하는 액티브 이벤트마다 해당 게임 플레이 데이터를 메모리 DB에 누적 저장할 수 있다. 게임 종료 이전에 메모리 DB의 가역폭이 기준값을 초과하는 경우, 메모리 DB 저장 제어부(420)는 도 5에서 설명한 바와 같이, 일정 시간이 경과한 오래된 게임 플레이 데이터, 또는 용량이 큰 게임 플레이 데이터를 물리 DB로 이동 저장할 수 있다. 예컨대, 메모리 DB에 로딩된 게임 방들에 해당하는 게임 플레이 데이터들은 게임이 종료되지 않고 현재 진행 중인 게임 방의 데이터이지만, 메모리 DB의 용량은 수십 GB 등으로 제한되며, 게임 서버(310)의 오버 플로우를 방지하기 위해, 메모리 DB에 로딩된 게임 방들 중 물리 DB로 이동할 게임 방들이 선별될 수 있다. 그리고, 선별된 게임 방들에 해당하는 게임 플레이 데이터는 물리 DB로 이동될 수 있다. 이처럼, 물리 DB에 저장된 게임 방의 키 정보(즉, 방 번호)는 시간이 지나 게임 방이 개설될수록 계속 증가하고, 대체(replace)되지 않을 수 있다.
이상에서 설명한 바와 같이, 게임 정보 저장 시스템은 게임 참가자(즉, 클라이언트 단말)의 액티브 이벤트를 모니터링하고, 게임 참가자의 액티브 이벤트가 감지될 때마다 해당 게임 플레이 데이터를 누적 저장함으로써, 게임 서버가 스스로 액티브할 때보다 서버에서 소모되는 프로세스 파워를 크게 감소시킬 수 있다. 즉, 게임 참가자 기반으로 이벤트를 받아 게임 플레이 데이터의 저장을 제어함으로써, 게임 서버의 액티브성을 낮춰 서버에서의 타이머 및 루프를 사용하는 부분을 감소시켜 프로세스 파워를 감소시킬 수 있다
또한, 게임이 종료되지 않은 상태로 모든 게임 참가자가 퇴장한 경우, 해당 게임 방의 키 정보(즉, 방 번호) 및 게임 플레이 데이터(예컨대, 특정 게임 참가자가 어떤 카드 패를 제출하고, 어떤 카드 패를 가져갔는지 등의 게임 진행 정보)가 모두 물리 DB에 저장되므로, 해당 게임 방을 모든 게임 참가자가 퇴장하더라도 해당 게임 방에서의 게임이 유지될 수 있으며, 결국, 나중에 게임 참가자가 해당 게임 방에 재참가하거나, 신규 게임 참가자가 입장한 경우에 게임 이어하기가 자동으로 구현될 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 컴퓨터에 의해 실행되는 게임 정보 저장 방법에 있어서,
    개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 단계;
    상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 단계;
    상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 단계; 및
    상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 단계
    를 포함하고,
    상기 물리 DB에 저장하도록 제어하는 단계는,
    상기 메모리 DB의 가역폭이 미리 지정된 기준값보다 크면, 상기 누적 저장된 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 상기 물리 DB에 저장하고, 상기 메모리 DB에 상기 게임 플레이 데이터를 저장한 이후 미리 지정된 일정 시간이 경과하면 상기 메모리 DB에 저장된 게임 플레이 데이터를 압축하여 상기 물리 DB에 저장하는 단계
    를 포함하고,
    상기 해당 게임을 재구성하여 제공하는 단계는,
    게임을 종료하지 않은 상태로 상기 게임 방에 참여한 게임 참가자들 모두가 상기 게임 방을 퇴장한 이후, 상기 게임 방에 참가한 게임 참가자로부터 게임 진행 요청을 수신하고, 수신된 상기 게임 진행 요청에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보에 기초하여 상기 메모리 DB에 요청하고, 상기 메모리 DB에 상기 게임 플레이 데이터가 존재하지 않음에 따라 상기 물리 DB에 상기 게임 플레이 데이터를 요청하고, 상기 요청에 대한 응답으로, 상기 물리 DB에서 상기 메모리 DB로 전달된 상기 게임 플레이 데이터에 기초하여 상기 해당 게임을 재구성하고, 상기 해당 게임이 재구성됨에 따라, 상기 물리 DB에 마지막으로 저장된 게임 플레이 데이터와 연관하여 상기 게임 진행 요청 이후에 모니터링된 액티브 이벤트에 해당하는 게임 플레이 데이터가 누적 저장되고, 상기 모든 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 일부의 게임 참가자가 상기 게임 방에 재참가한 경우, 재참가하지 않은 게임 참가자들과 관련하여 오토 플레이(auto play)가 제공되는 단계
    를 포함하는 게임 정보 저장 방법.
  2. 제1항에 있어서,
    상기 액티브 이벤트는, 게임 진행 중에 적어도 하나의 게임 참가자와 연관하여 발생되는 이벤트들 중 상기 게임 방에 참여한 모든 게임 참가자에게 영향을 미치는 이벤트를 나타내는 것
    을 특징으로 하는 게임 정보 저장 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 해당 게임을 재구성하는 단계는,
    상기 게임 방에서 모든 게임 참가자들이 퇴장하기 전에 발생한 마지막 액티브 이벤트를 기준으로 상기 해당 게임이 재구성된 이후에 발생한 액티브 이벤트가 이어지도록 상기 해당 게임을 재구성하는 것
    을 특징으로 하는 게임 정보 저장 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    상기 게임 플레이 데이터는, 게임 진행 정보, 게임 결과 정보 및 리플레이(replay) 정보 중 적어도 하나를 포함하고,
    상기 게임 진행 정보 및 상기 리플레이 정보는 압축되어 상기 물리 DB에 저장되는 것
    을 특징으로 하는 게임 정보 저장 방법.
  10. 제1항에 있어서,
    상기 메모리 DB는 게임 실행을 위한 DB를 나타내고,
    상기 물리 DB는 백업용 DB를 나타내는 것
    을 특징으로 하는 게임 정보 저장 방법.
  11. 개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 모니터링부;
    상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 메모리 DB 저장 제어부;
    상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 물리 DB 저장 제어부; 및
    상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 재참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 게임 재구성부
    를 포함하고,
    상기 물리 DB 저장 제어부는,
    상기 메모리 DB의 가역폭이 미리 지정된 기준값보다 크면, 상기 누적 저장된 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 상기 물리 DB에 저장하고, 상기 메모리 DB에 상기 게임 플레이 데이터를 저장한 이후 미리 지정된 일정 시간이 경과하면 상기 메모리 DB에 저장된 게임 플레이 데이터를 압축하여 상기 물리 DB에 저장하는 것을 포함하고,
    상기 게임을 재구성부는,
    게임을 종료하지 않은 상태로 상기 게임 방에 참여한 게임 참가자들 모두가 상기 게임 방을 퇴장한 이후, 상기 게임 방에 참가한 게임 참가자로부터 게임 진행 요청을 수신하고, 수신된 상기 게임 진행 요청에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보에 기초하여 상기 메모리 DB에 요청하고, 상기 메모리 DB에 상기 게임 플레이 데이터가 존재하지 않음에 따라 상기 물리 DB에 상기 게임 플레이 데이터를 요청하고, 상기 요청에 대한 응답으로, 상기 물리 DB에서 상기 메모리 DB로 전달된 상기 게임 플레이 데이터에 기초하여 상기 해당 게임을 재구성하고, 상기 해당 게임이 재구성됨에 따라, 상기 물리 DB에 마지막으로 저장된 게임 플레이 데이터와 연관하여 상기 게임 진행 요청 이후에 모니터링된 액티브 이벤트에 해당하는 게임 플레이 데이터가 누적 저장되고, 상기 모든 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 일부의 게임 참가자가 상기 게임 방에 재참가한 경우, 재참가하지 않은 게임 참가자들과 관련하여 오토 플레이(auto play)가 제공되는
    게임 정보 저장 시스템.
  12. 제11항에 있어서,
    상기 액티브 이벤트는, 게임 진행 중에 적어도 하나의 게임 참가자와 연관하여 발생되는 이벤트들 중 상기 게임 방에 참여한 모든 게임 참가자에게 영향을 미치는 이벤트를 나타내는 것
    을 특징으로 하는 게임 정보 저장 시스템.
  13. 삭제
  14. 삭제
  15. 제11항에 있어서,
    상기 게임 재구성부는,
    상기 게임 방에서 모든 게임 참가자들이 퇴장하기 전에 발생한 마지막 액티브 이벤트를 기준으로 상기 해당 게임이 재구성된 이후에 발생한 액티브 이벤트가 이어지도록 상기 해당 게임을 재구성하는 것
    을 특징으로 하는 게임 정보 저장 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제11항에 있어서,
    상기 게임 플레이 데이터는, 게임 진행 정보, 게임 결과 정보 및 리플레이(replay) 정보 중 적어도 하나를 포함하고,
    상기 게임 진행 정보 및 상기 리플레이 정보는 압축되어 상기 물리 DB에 저장되는 것
    을 특징으로 하는 게임 정보 저장 시스템.
  20. 컴퓨터로 구현되는 서버 장치와 결합되어 이 게임 정보 저장 방법을 실행시키기 위해 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 게임 정보 저장 방법은,
    개설된 게임 방에 참여한 게임 참가자들을 대상으로, 미리 지정된 액티브 이벤트가 발생하는지 여부를 모니터링하는 단계;
    상기 액티브 이벤트가 발생함에 따라 해당 이벤트 관련 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 메모리 DB에 저장하도록 제어하는 단계;
    상기 메모리 DB에 누적 저장된 상기 게임 방에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 물리 DB에 저장하도록 제어하는 단계; 및
    상기 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 하나의 게임 참가자가 상기 게임 방에 재참가한 경우, 상기 물리 DB에 저장된 게임 플레이 데이터에 기초하여 해당 게임을 재구성하여 제공하는 단계
    를 포함하고,
    상기 물리 DB에 저장하도록 제어하는 단계는,
    상기 메모리 DB의 가역폭이 미리 지정된 기준값보다 크면, 상기 누적 저장된 게임 플레이 데이터를 상기 게임 방의 키 정보와 연관하여 상기 물리 DB에 저장하고, 상기 메모리 DB에 상기 게임 플레이 데이터를 저장한 이후 미리 지정된 일정 시간이 경과하면 상기 메모리 DB에 저장된 게임 플레이 데이터를 압축하여 상기 물리 DB에 저장하는 단계
    를 포함하고,
    상기 해당 게임을 재구성하여 제공하는 단계는,
    게임을 종료하지 않은 상태로 상기 게임 방에 참여한 게임 참가자들 모두가 상기 게임 방을 퇴장한 이후, 상기 게임 방에 참가한 게임 참가자로부터 게임 진행 요청을 수신하고, 수신된 상기 게임 진행 요청에 해당하는 게임 플레이 데이터를 상기 게임 방의 키 정보에 기초하여 상기 메모리 DB에 요청하고, 상기 메모리 DB에 상기 게임 플레이 데이터가 존재하지 않음에 따라 상기 물리 DB에 상기 게임 플레이 데이터를 요청하고, 상기 요청에 대한 응답으로, 상기 물리 DB에서 상기 메모리 DB로 전달된 상기 게임 플레이 데이터에 기초하여 상기 해당 게임을 재구성하고, 상기 해당 게임이 재구성됨에 따라, 상기 물리 DB에 마지막으로 저장된 게임 플레이 데이터와 연관하여 상기 게임 진행 요청 이후에 모니터링된 액티브 이벤트에 해당하는 게임 플레이 데이터가 누적 저장되고, 상기 모든 게임 참가자들이 상기 게임 방을 퇴장한 이후 적어도 일부의 게임 참가자가 상기 게임 방에 재참가한 경우, 재참가하지 않은 게임 참가자들과 관련하여 오토 플레이(auto play)가 제공되는 단계
    를 포함하는 기록매체에 저장된 컴퓨터 프로그램.
KR1020170169063A 2017-12-11 2017-12-11 게임 정보 저장 방법 및 시스템 KR101966559B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170169063A KR101966559B1 (ko) 2017-12-11 2017-12-11 게임 정보 저장 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170169063A KR101966559B1 (ko) 2017-12-11 2017-12-11 게임 정보 저장 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101966559B1 true KR101966559B1 (ko) 2019-04-08

Family

ID=66164429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170169063A KR101966559B1 (ko) 2017-12-11 2017-12-11 게임 정보 저장 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101966559B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112546619A (zh) * 2020-12-14 2021-03-26 网易(杭州)网络有限公司 游戏挂机方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060001274A (ko) * 2004-06-30 2006-01-06 엔에이치엔(주) 온라인 게임 서비스 시스템
KR101665041B1 (ko) * 2015-06-04 2016-10-11 주식회사 엔씨소프트 게임 서버의 종료 처리 방법 및 시스템
KR20170020883A (ko) * 2014-06-27 2017-02-24 아마존 테크놀로지스, 인크. 게임 세션 리플레이 동안에 새로운 타임라인들 스포닝

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060001274A (ko) * 2004-06-30 2006-01-06 엔에이치엔(주) 온라인 게임 서비스 시스템
KR20170020883A (ko) * 2014-06-27 2017-02-24 아마존 테크놀로지스, 인크. 게임 세션 리플레이 동안에 새로운 타임라인들 스포닝
KR101665041B1 (ko) * 2015-06-04 2016-10-11 주식회사 엔씨소프트 게임 서버의 종료 처리 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112546619A (zh) * 2020-12-14 2021-03-26 网易(杭州)网络有限公司 游戏挂机方法、装置和电子设备
CN112546619B (zh) * 2020-12-14 2023-11-17 网易(杭州)网络有限公司 游戏挂机方法、装置和电子设备

Similar Documents

Publication Publication Date Title
JP7066784B2 (ja) クラウドゲーミングに関するゲームステートセーブ、転送および再開
KR102258278B1 (ko) 시즌별 보상 분배 시스템
US9694276B2 (en) Pre-loading translated code in cloud based emulated applications
EP3891607A1 (en) Machine learning driven resource allocation
CN103118750A (zh) 信息处理系统、信息处理方法、信息记忆介质和程序
CN110898428A (zh) 多虚拟对象交互的方法、装置、服务器及存储介质
CN102750435A (zh) 用于动态配对群体召集的系统和方法
KR102616401B1 (ko) 온라인 게임을 플레이하기 위한 시스템 및 방법
KR101966559B1 (ko) 게임 정보 저장 방법 및 시스템
CN114191822A (zh) 一种测试方法、装置、计算机设备、存储介质和产品
US20230277929A1 (en) Game moment implementation system and method of use thereof
CN114344913B (zh) 一种游戏数据处理方法、装置、设备以及可读存储介质
KR20200138891A (ko) 스포츠 게임의 스킬 승계를 이용한 게임 방법 및 시스템
KR20190107535A (ko) 게임 리플레이 방법 및 시스템
WO2014052206A1 (en) Replay and resumption of suspended game
US20220370921A1 (en) Player profile management system
JP7397432B1 (ja) ゲームプログラム、方法、情報処理装置、システム
KR102523618B1 (ko) 게임로그를 활용한 베팅 서비스 제공 방법 및 시스템
KR102050968B1 (ko) 모바일 디바이스 및 이의 동작 방법
KR102106551B1 (ko) 토너먼트 게임 제공 장치 및 시스템
US11654363B1 (en) Interaction management for virtual environments
US20130073551A1 (en) Method and apparatus for awarding trophies
US20150302682A1 (en) Methods to Determine Luck Profile of a User
CN117085335A (zh) 游戏编辑方法、游戏编辑装置、存储介质与电子设备
CN114489408A (zh) 动画处理系统、方法、设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant