KR101665041B1 - 게임 서버의 종료 처리 방법 및 시스템 - Google Patents

게임 서버의 종료 처리 방법 및 시스템 Download PDF

Info

Publication number
KR101665041B1
KR101665041B1 KR1020150079036A KR20150079036A KR101665041B1 KR 101665041 B1 KR101665041 B1 KR 101665041B1 KR 1020150079036 A KR1020150079036 A KR 1020150079036A KR 20150079036 A KR20150079036 A KR 20150079036A KR 101665041 B1 KR101665041 B1 KR 101665041B1
Authority
KR
South Korea
Prior art keywords
server
game
program
game play
server program
Prior art date
Application number
KR1020150079036A
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 KR1020150079036A priority Critical patent/KR101665041B1/ko
Application granted granted Critical
Publication of KR101665041B1 publication Critical patent/KR101665041B1/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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • 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
    • A63F13/493Resuming a game, e.g. after pausing, malfunction or power failure

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

게임 플레이 도중 서버 프로그램이 종료되면, 소정의 데이터를 백업하는 단계와, 백업된 데이터를 로딩하여 상기 종료 직전의 상태로 게임 서비스를 제공할 수 있도록 서버 프로그램을 재시작하는 단계와, 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정하는 단계를 포함하는, 게임 서버가 종료를 처리하는 방법과 그 시스템이 개시된다.

Description

게임 서버의 종료 처리 방법 및 시스템 {Method and system for processing termination of game server}
본 발명은 온라인(on-line) 게임 서비스를 제공하는 게임 서버가 프로그램 오류로 비정상적으로 종료되는 경우 또는 다른 이유로 종료되는 경우 게임 서버가 다운되기 직전의 시점부터 게임 플레이를 재개할 수 있도록 처리하는 방법 및 시스템에 대한 것이다.
인터넷 인프라의 비약적인 발전으로 인해 온라인 게임 역시 다양한 형태로 발전 및 진화하고 있다. 예컨대, 고전적인 형태의 RPG(Role Playing Game)는 MMORPG(Massively Multiplayer Online Role Playing Game)로 진화하여 국내에서만 동시 접속자가 수만에 이르는 대형 MMORPG 온라인 게임들이 상용화되기 이르렀다.
이와 같이 온라인 게임의 동시 접속자가 폭발적으로 증가함에 따라 부하의 가중이나 프로그램 오류로 인해 게임 서버가 비정상적으로 다운되는 현상이 종종 발생되고 있는데, 종래에는 게임 서버 다운시 게임 클라이언트가 강제 종료되고, 이후 게임 클라이언트를 재실행하여 게임을 처음부터 다시 시도해야 하기 때문에 번거롭고 불편한 문제점이 있었다.
도 1은 종래에 게임 서버의 비정상적인 종료를 처리하는 방법을 설명하기 위한 도면이다.
도 1을 참조하면, 게임 서버(120)가 정상적인 상태로 동작하고 있을 때(S122) 게임 클라이언트(110)도 정상적인 상태로 동작하여 유저가 게임 플레이를 즐길 수 있다(S112).
온라인 게임의 플레이 도중 게임 서버(120)가 프로그램 오류로 다운되어 비정상적으로 종료되는 경우(S124), 게임 클라이언트(110)가 보낸 KeepAlive 메시지에 대해 응답이 없게 되므로 게임 클라이언트 프로그램이 종료된다(S114).
게임 서버(120)에서 서버 프로그램이 재시작되면(S126), 게임 클라이언트 프로그램도 재시작되고 로그인 절차를 거쳐 다시 정상적인 상태에서 게임을 시작할 수 있다(S116).
그러나, 일반적으로 프로그램 오류로 인해 게임 서버가 다운되는 경우 자동으로 크래시 덤프를 생성하고, 서버 프로그램을 빠르게 재시작하는 방식을 사용한다. 생성된 크래시 덤프는 사후적인 오류 분석에 사용될 뿐이다.
이런 방식으로 종료되는 경우, 게임 플레이 중에 저장되지 않은 데이터는 유실되어 게임 플레이어들에게 직접적/간접적인 재화 유실 및 손실이 발생하게 된다. 게임 서비스 제공업체에는 이 유실된 데이터에 대한 정보가 남아 있지 않기 때문에, 플레이어의 손해 복구 요청이 접수되었을 경우 진실 여부 확인이 불가능하여 적절한 조치를 취하기 어렵다. 이러한 문제는 결국 고객 만족도 하락의 큰 원인으로 작용하게 된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해소하기 위한 것으로, 온라인 게임 플레이 중 프로그램 오류로 게임 서버가 다운되는 경우에 데이터의 유실을 방지하여 비정상 종료 직전의 상태로 게임 플레이를 재시작할 수 있게 하는 게임 서버의 종료 처리 방법 및 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 온라인 게임 플레이 중 서버 업데이트 등의 이유로 게임 서버가 종료되는 경우에 데이터의 유실을 방지하여 종료 직전의 상태로 게임 플레이를 재시작할 수 있게 하는 게임 서버의 종료 처리 방법 및 시스템을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 게임 서버의 종료 처리 방법은, 게임 플레이 도중 서버 프로그램이 종료되면, 소정의 데이터를 백업하는 단계와; 상기 백업된 데이터를 로딩하여 상기 종료 직전의 상태로 게임 서비스를 제공할 수 있도록 상기 서버 프로그램을 재시작하는 단계와; 상기 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정하는 단계를 포함할 수 있다.
상기 백업 단계는, 상기 서버 프로그램의 비정상적인 종료시 크래시 덤프를 생성하는 예외 처리 과정에서, 백업 요구 리스트를 참조하여 보존이 필요한 휘발성 데이터에 해당하는 변수값들을 독출하여 임시 파일에 저장하는 단계를 포함할 수 있다.
상기 백업 요구 리스트는, 게임 플레이 도중 실시간으로 저장되는 변수 이외의 적어도 하나의 변수를 가리킬 수 있다.
상기 서버 프로그램 재시작 단계는, 게임 플레이 도중 실시간으로 저장되는 변수값들과 상기 임시 파일에 저장된 변수값들을 참조하여 상기 서버 프로그램이 상기 종료 직전의 상태에서 실행될 수 있도록 복구하는 단계를 포함할 수 있다.
상기 게임 플레이 설정 단계는, 상기 서버 프로그램 재시작 후 소정의 시간 동안 사용자의 재접속 또는 로그인은 허용하되 게임 플레이는 정지 상태로 유지하는 단계를 포함할 수 있다.
상기 게임 서버의 종료 처리 방법은, 상기 게임 서버의 종료시 사용자의 선택에 따라, 클라이언트 프로그램을 종료하지 않고 상기 게임 서버가 재시작되면 상기 게임 서버가 종료되기 이전의 세션으로 재접속하도록 하거나, 상기 클라이언트 프로그램을 종료하도록 하는 단계를 더 포함할 수 있다.
상기 게임 서버의 종료 처리 방법은, 상기 게임 서버가 종료되기 이전의 세션에 대한 정보를 기준으로 새로운 세션을 생성하고, 상기 클라이언트 프로그램이 상기 새로 생성된 세션으로 접속하도록 하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 게임 서버의 종료 처리 시스템은, 게임 플레이 도중 게임 서버로부터의 응답이 없는 경우, 사용자로부터 클라이언트 프로그램을 종료하지 않고 상기 게임 서버가 재시작되면 상기 게임 서버가 종료되기 이전의 세션으로 재접속할지 상기 클라이언트 프로그램을 종료할지 여부를 선택 받는 게임 클라이언트와; 서버 프로그램이 종료되면 소정의 데이터를 백업하고, 상기 백업된 데이터를 로딩하여 상기 종료 직전의 상태로 상기 게임 클라이언트에 게임 서비스를 제공할 수 있도록 상기 서버 프로그램을 재시작하고, 상기 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정하는 게임 서버를 포함할 수 있다.
상기와 같은 본 발명에 의하면, 게임 서버가 비정상적 또는 정상적으로 종료되는 경우에도 게임 플레이어들의 게임 상황에 대한 데이터가 유실되지 않으므로 서버 종료 직전의 상태로 그대로 복구하여 게임을 연속적으로 즐길 수 있게 된다.
또한, 본 발명에 의하면 게임 서버 프로그램이 재시작되는 경우라도 일정 시간이 지난 후에 게임 플레이가 시작되므로, 게임 서버가 종료될 때 게임을 즐기고 있던 사용자들이 시간차를 두고 재접속하거나 로그인하는 경우에도 특정 사용자가 불이익을 당하지 않는다는 효과가 있다.
도 1은 종래에 게임 서버의 비정상적인 종료를 처리하는 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 게임 서버의 종료 처리 시스템의 구성을 도시한 망 구성도이다.
도 3은 본 발명의 일 실시예에 따른 게임 서버의 비정상적인 종료 처리 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따라 게임 서버의 비정상적인 종료를 처리하는 방법을 설명하기 위한 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...수단", "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 2는 본 발명의 일 실시예에 따른 게임 서버의 종료 처리 시스템의 구성을 도시한 망 구성도이다.
도 2를 참조하면, 게임 서버의 종료 처리 시스템은 게임 클라이언트(210) 및 게임 서버(220)로 구성된다.
게임 클라이언트(210)는 게임 서버(220)에 로그인 요청을 하고 로그인을 허가 받으면 게임 플레이 화면이 출력되어 사용자가 게임을 시작할 수 있다.
게임 클라이언트(210)는, 게임 플레이 도중 게임 서버(220)로부터의 응답이 없는 경우, 재접속할 것인지 아니면 클라이언트 프로그램을 종료할 것인지 여부를 묻는 사용자 인터페이스를 출력할 수 있다. 사용자의 선택을 위한 인터페이스 방법으로 화면상에 팝업을 띄우거나 별도의 메시지를 디스플레이하는 방법 등이 사용될 수 있다.
게임 플레이 도중 게임 서버(220)의 응답이 없는 상태는, 게임 서버(220)가 프로그램 오류 등으로 비정상적으로 다운되는 경우에 발생될 수 있다. 그러나, 이에 한정되는 것은 아니며, 서버 업데이트를 위해 기존 서버를 종료하는 경우 등 소정의 이유로 정상적으로 서버를 종료시키는 경우에도 게임 서버(220)로부터의 응답이 없는 상태가 될 수 있다. 이러한 경우에도 본 발명에 따른 게임 서버 종료 처리가 적용될 수 있다. 서버 업데이트에 따른 종료시에는 종료 전후로 컨텐츠의 변경이 생길 수 있기 때문에 백업하여 종료 전으로 유지할 정보와 종료 전으로 유지하면 안되는 정보를 선별하여, 유지해야 하는 데이터만 백업하도록 처리할 수 있다.
사용자가 재접속을 선택한 경우는 클라이언트 프로그램을 종료하지 않고 게임 서버(220)가 재시작될 때 게임 서버(220)가 정상적 또는 비정상적으로 종료되기 이전의 세션으로 재접속할 수 있도록 하거나, 게임 플레이 도중 실시간으로 저장되는 변수 및/또는 본 발명에 따라 백업되는 데이터를 이용하여 이전 세션 정보를 기준으로 이전 세션과 동일 또는 유사한 새로운 세션을 생성하고 이 새로운 세션에 접속할 수 있도록 한다. 사용자가 종료를 선택한 경우는 클라이언트 프로그램을 종료한다.
게임 서버(220)는 서버 프로그램이 정상적 또는 비정상적으로 종료되면 소정의 데이터를 백업하고, 서버 프로그램 재시작시 상기에서 백업된 데이터를 로딩하여 종료 직전의 상태로 게임 클라이언트(210)에 게임 서비스를 제공할 수 있도록 복구한다.
한편, 게임 서버(220)의 정상적 또는 비정상적인 종료로 인해 게임 플레이가 중단된 후, 사용자들이 게임 서버(220)에 재접속하거나 로그인하는 시간이 사용자들간에 서로 다를 수 있는데, 이러한 경우 늦게 재접속하는 사용자가 불이익을 당할 수 있다.
따라서, 게임 서버(220)는 서버 프로그램의 재시작 후 바로 게임 플레이를 재시작 하는 대신, 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 게임 서버의 비정상적인 종료 처리 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 게임 플레이 도중 서버 프로그램이 비정상적으로 종료되면, 게임 서버(220)는 소정의 데이터를 백업한다(S310). 이때 백업되어야 하는 데이터는 게임 서버 프로그램의 각종 변수값들 중 게임 플레이 중 저장되지 않는 휘발성 데이터로서 서버 프로그램의 다운 직전 상태로 게임 플레이를 재개하는데 필요한 정보를 포함할 수 있다. 예컨대, 몹의 상태라든지 떨어진 아이템 등에 대한 정보가 이에 해당할 수 있다.
게임 서버(220)는 프로그램 오류 발생시 크래시 덤프를 생성하는 예외 처리(Exception Handling)를 수행하는데, 이 과정에서 백업을 수행할 수 있으며 백업 대상의 관리를 위해 백업 요구 리스트가 사용될 수 있다. 이 백업 요구 리스트는 게임 플레이 도중 실시간으로 저장되는 변수 이외의 적어도 하나의 변수를 가리킬 수 있다. 게임 서버(220)는 백업 요구 리스트를 참조하여 리스트에 포함된 변수의 현재값들을 독출하여 임시 파일에 저장함으로써 데이터를 백업할 수 있다.
다음으로, 게임 서버(220)는 상기에서 백업된 데이터를 로딩하여 비정상적인 종료 직전의 상태로 게임 서비스를 제공할 수 있도록 서버 프로그램을 재시작한다(S320). 게임 서버(220)는 서버 프로그램이 비정상적인 종료 직전의 상태와 동일한 상태에서 실행될 수 있도록 복구하기 위해, 게임 플레이 도중 실시간으로 저장되는 변수값들과 백업 단계(S310)에서 임시 파일에 저장된 변수값들을 이용할 것이다.
또한, 게임 서버(220)는 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정한다(S330).
이를 위해 게임 서버(220)는 서버 프로그램 재시작 후 소정의 시간 동안 유저의 재접속 또는 로그인은 허용하되 게임 플레이는 정지 상태로 유지할 것이다.
또한, 게임 서버의 비정상 종료시 사용자의 선택에 따라, 클라이언트 프로그램을 종료하지 않고 게임 서버가 재시작되면 게임 서버가 종료되기 이전의 세션으로 재접속하도록 하거나, 클라이언트 프로그램을 종료하도록 할 수 있다.
도 3은 게임 서버(220)가 비정상적으로 종료되는 경우의 처리 방법에 대해 도시하고 있으나, 정상적으로 종료되는 경우에도 도 3의 방법이 적용될 수 있다.
도 4는 본 발명의 일 실시예에 따라 게임 서버의 비정상적인 종료를 처리하는 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 게임 서버(220)가 정상적인 상태로 동작하고 있을 때(S420) 게임 클라이언트(210)도 정상적인 상태로 동작하여 유저가 게임 플레이를 즐길 수 있다(S410).
온라인 게임의 플레이 도중 게임 클라이언트(210)는 게임 서버(220)에 지속적으로 KeepAlive 메시지를 전송하여 게임 서버(220)가 정상적으로 작동하는지 체크한다. 그러나, 게임 서버(220)가 프로그램 오류로 다운되어 비정상적으로 종료되는 경우(S422), 게임 클라이언트(210)가 보낸 KeepAlive 메시지에 대해 게임 서버(220)로부터의 응답이 없게 되며, 게임 클라이언트(210)와 게임 서버(220)의 접속은 끊어지게 된다.
게임 서버(220)는 크래시 덤프를 남기는 과정인 예외 처리 과정을 직접 핸들링하여 현재 서버(220)에 존재하는 주요 데이터들을 백업한다(S424).
게임 클라이언트(210)는 사용자에게 재접속을 할지 종료를 할지 선택할 수 있는 인터페이스를 제공한다(S412).
사용자가 재접속을 선택한 경우 게임 클라이언트 프로그램은 종료되지 않고 소정 시간 간격으로 또는 사용자의 입력에 따라 게임 서버(220)에 재접속 요청 메시지를 전송한다. 게임 서버(220)가 아직까지 게임 서버 프로그램을 재시작하고 있지 않다면 클라이언트(210)의 재접속 요청에 대해 응답이 없을 것이다.
게임 서버(220)는 서버 프로그램을 재시작하고(S426), 백업 데이터(410)를 로딩하여 데이터의 유실 없이 서비스의 연속성을 확보할 수 있도록 서버 프로그램을 복구한다. 이를 통해, 게임 서버(220)는 게임 플레이 중에 DB에 실시간으로 저장했던 변수값들과 완전히 동기화되지 않는 데이터들을 보존할 수 있게 된다. 즉, 게임 서버(220)는 게임 플레이 중에 실시간으로 저장된 DB의 데이터와 본 발명의 일 실시예에 따른 백업 데이터(410)를 이용하여, 다운되기 직전의 상태와 동일한 상태에서 게임 플레이를 할 수 있도록 준비할 수 있다.
상기 과정을 거쳐 게임 서버(220)가 서버 프로그램을 재시작한 경우, 게임 클라이언트(210)의 재접속 요청은 허가되어 게임 서버(220)와 다시 연결된다(S414). 이와 같이 사용자가 재접속을 선택한 경우는, 게임 서버 복구시 게임 서버가 다운되기 이전의 세션으로 재접속하여 게임 플레이를 할 수 있게 되며, 게임 클라이언트 프로그램의 재시작은 불필요하다.
사용자가 재접속을 선택하였지만 서버가 종료되기 이전의 세션으로 재접속하기 어려울 경우는, 이전 세션에 대한 정보를 기준으로 동일 또는 유사한 새로운 세션을 생성하고 게임 클라이언트(210)가 새로운 세션에 접속하도록 할 수 있다. 이 경우 게임 클라이언트(210) 상에서는 이전 세션이 계속 유지되는 것처럼 보일 것이다.
한편, 게임 클라이언트(210)의 사용자가 클라이언트 프로그램의 종료를 선택했던 경우는, 클라이언트 프로그램의 재실행과 함께 게임 서버(220)로 로그인 요청이 전송될 것이며 로그인이 허가된 경우 게임 서버(220)와 다시 연결될 것이다.
서버 프로그램이 재시작된 시점에서 게임 플레이가 가능하다면, 먼저 재접속한 사용자들이 게임에서 유리한 입장이 될 수 있고 접속이 늦은 사용자는 불이익을 받을 수 있다. 따라서, 게임 서버(220)는 서버 프로그램 재시작 후 미리 정해진 일정 시간이 경과한 후에 게임 플레이가 가능하도록 설정할 수 있다. 상기 일정 시간 동안 사용자의 재접속이나 로그인은 허용하되 게임 플레이는 일시 정지된 상태로 유지될 것이다. 게임 서버(220)는 팝업 메시지나 게시판 등의 수단을 이용하여 사용자들에게 게임 플레이가 가능한 시점에 대한 정보를 제공할 수 있다.
도 4 역시 게임 서버(220)가 비정상적으로 종료되는 경우의 처리 방법에 대해 도시하고 있으나, 정상적으로 종료되는 경우에도 도 4의 방법이 적용될 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
110, 210: 게임 클라이언트
120, 220: 게임 서버

Claims (13)

  1. 게임 서버의 종료 처리 방법에 있어서,
    상기 게임 서버가,
    게임 플레이 도중 실시간으로 서버 프로그램의 변수값을 저장하는 단계와;
    게임 플레이 도중 상기 서버 프로그램이 종료되면, 게임 플레이 도중 실시간으로 저장되지 않는 데이터를 백업하는 단계와;
    상기 백업된 데이터를 로딩하여 종료 시점 이후부터 게임 서비스를 제공할 수 있도록 상기 서버 프로그램을 재시작하는 단계와;
    상기 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정하는 단계를 포함하며,
    상기 서버 프로그램을 재시작하는 단계는, 게임 플레이 도중 실시간으로 저장되는 변수값들과 백업된 변수값들을 참조하여 상기 서버 프로그램이 종료 시점 이후부터 실행될 수 있도록 복구하는 단계를 포함하며,
    상기 게임 플레이가 가능하도록 설정하는 단계는, 상기 서버 프로그램 재시작 후 소정의 시간 동안 사용자의 재접속 또는 로그인은 허용하되 사용자들의 접속시간차를 고려하여 게임 플레이는 소정의 시간동안 정지 상태로 유지되는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 백업 단계는,
    상기 서버 프로그램의 비정상적인 종료시 크래시 덤프를 생성하는 예외 처리 과정에서, 백업 요구 리스트를 참조하여 게임 플레이 도중 실시간으로 저장되지 않는 휘발성 데이터에 해당하는 변수값들을 독출하여 임시 파일에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 백업 요구 리스트는,
    게임 플레이 도중 실시간으로 저장되는 변수 이외의 적어도 하나의 변수를 가리키는 것을 특징으로 하는 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 게임 서버의 종료시 사용자의 선택에 따라, 클라이언트 프로그램을 종료하지 않고 상기 게임 서버가 재시작되면 상기 게임 서버가 종료되기 이전의 세션으로 재접속하도록 하거나, 상기 클라이언트 프로그램을 종료하도록 하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 게임 서버가 종료되기 이전의 세션에 대한 정보를 기준으로 새로운 세션을 생성하고, 클라이언트 프로그램이 상기 새로 생성된 세션으로 접속하도록 하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 게임 서버의 종료를 처리하는 방법을 실행하기 위해 기록매체에 기록된 컴퓨터 프로그램으로서,
    상기 게임 서버에서,
    게임 플레이 도중 실시간으로 서버 프로그램의 변수값을 저장하는 단계와;
    게임 플레이 도중 상기 서버 프로그램이 종료되면, 게임 플레이 도중 실시간으로 저장되지 않는 데이터를 백업하는 단계와;
    상기 백업된 데이터를 로딩하여 종료 시점 이후부터 게임 서비스를 제공할 수 있도록 상기 서버 프로그램을 재시작하는 단계와;
    상기 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정하는 단계를 실행하며,
    상기 서버 프로그램을 재시작하는 단계는, 게임 플레이 도중 실시간으로 저장되는 변수값들과 백업된 변수값들을 참조하여 상기 서버 프로그램이 종료 시점 이후부터 실행될 수 있도록 복구하는 단계를 포함하며,
    상기 게임 플레이가 가능하도록 설정하는 단계는, 상기 서버 프로그램 재시작 후 소정의 시간 동안 사용자의 재접속 또는 로그인은 허용하되 사용자들의 접속시간차를 고려하여 게임 플레이는 소정의 시간동안 정지 상태로 유지되는 단계를 포함하는 게임 서버의 종료를 처리하는 방법을 실행하기 위해 기록매체에 기록된 컴퓨터 프로그램.
  9. 게임 플레이 도중 게임 서버로부터의 응답이 없는 경우, 사용자로부터 클라이언트 프로그램을 종료하지 않고 상기 게임 서버가 재시작되면 상기 게임 서버가 종료되기 이전의 세션으로 재접속할지 상기 클라이언트 프로그램을 종료할지 여부를 선택 받는 게임 클라이언트와;
    게임 플레이 도중 실시간으로 서버 프로그램의 변수값을 저장하고, 상기 서버 프로그램이 종료되면 게임 플레이 도중 실시간으로 저장되지 않는 데이터를 백업하고, 상기 백업된 데이터를 로딩하여 종료 시점 이후부터 상기 게임 클라이언트에 게임 서비스를 제공할 수 있도록 상기 서버 프로그램을 재시작하고, 상기 서버 프로그램의 재시작 후 소정의 시간이 경과된 후 게임 플레이가 가능하도록 설정하는 게임 서버를 포함하며,
    상기 서버 프로그램을 재시작하는 과정에는, 게임 플레이 도중 실시간으로 저장되는 변수값들과 백업된 변수값들을 참조하여 상기 서버 프로그램이 종료 시점 이후부터 실행될 수 있도록 복구되는 것이 포함되며,
    상기 게임 플레이가 가능하도록 설정하는 과정에는, 상기 서버 프로그램 재시작 후 소정의 시간 동안 사용자의 재접속 또는 로그인은 허용하되 사용자들의 접속시간차를 고려하여 게임 플레이는 소정의 시간동안 정지 상태로 유지되는 것이 포함되는 것을 특징으로 하는 게임 서버의 종료 처리 시스템.
  10. 제9항에 있어서,
    상기 게임 서버는,
    상기 서버 프로그램의 비정상적인 종료시 크래시 덤프를 생성하는 예외 처리 과정에서, 백업 요구 리스트를 참조하여 게임 플레이 도중 실시간으로 저장되지 않는 휘발성 데이터에 해당하는 변수값들을 독출하여 임시 파일에 저장하는 것을 특징으로 하는 시스템.
  11. 제10항에 있어서,
    상기 백업 요구 리스트는,
    게임 플레이 도중 실시간으로 저장되는 변수 이외의 적어도 하나의 변수를 가리키는 것을 특징으로 하는 시스템.
  12. 삭제
  13. 삭제
KR1020150079036A 2015-06-04 2015-06-04 게임 서버의 종료 처리 방법 및 시스템 KR101665041B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150079036A KR101665041B1 (ko) 2015-06-04 2015-06-04 게임 서버의 종료 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150079036A KR101665041B1 (ko) 2015-06-04 2015-06-04 게임 서버의 종료 처리 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101665041B1 true KR101665041B1 (ko) 2016-10-11

Family

ID=57161812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150079036A KR101665041B1 (ko) 2015-06-04 2015-06-04 게임 서버의 종료 처리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101665041B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101966559B1 (ko) * 2017-12-11 2019-04-08 엔에이치엔엔터테인먼트 주식회사 게임 정보 저장 방법 및 시스템
KR20190043325A (ko) * 2017-10-18 2019-04-26 주식회사 넥슨코리아 사용자에게 보상을 제공하기 위한 방법, 장치, 및 컴퓨터 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014435A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 情報処理装置およびデータの復旧方法
JP2013122660A (ja) * 2011-12-09 2013-06-20 Hitachi Systems Ltd Webアプリケーションシステム及びそのデータ処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014435A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 情報処理装置およびデータの復旧方法
JP2013122660A (ja) * 2011-12-09 2013-06-20 Hitachi Systems Ltd Webアプリケーションシステム及びそのデータ処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
고스트, 롤 서버다운으로 로그인오류 및 접속장애, 그리고 홈페이지 접속장애 현생까지, 네이버 블로그, [online], 2013.02.03., [2016.03.15. 검색], 인터넷:[URL: http://blog.naver.com/imohome/140179710391]* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190043325A (ko) * 2017-10-18 2019-04-26 주식회사 넥슨코리아 사용자에게 보상을 제공하기 위한 방법, 장치, 및 컴퓨터 프로그램
KR102554115B1 (ko) * 2017-10-18 2023-07-12 주식회사 넥슨코리아 사용자에게 보상을 제공하기 위한 방법, 장치, 및 컴퓨터 프로그램
KR101966559B1 (ko) * 2017-12-11 2019-04-08 엔에이치엔엔터테인먼트 주식회사 게임 정보 저장 방법 및 시스템

Similar Documents

Publication Publication Date Title
JP7066784B2 (ja) クラウドゲーミングに関するゲームステートセーブ、転送および再開
CN107158705B (zh) 服务的更新方法和装置
KR101943771B1 (ko) 게임 세션 리플레이 동안에 새로운 타임라인들 스포닝
EP2712119B1 (en) Abnormality handling method, device and client
US9158528B2 (en) Forcibly completing upgrade of distributed software in presence of failures
TW201706837A (zh) 電腦系統
WO2016078529A1 (zh) 业务处理方法、装置及系统
US9325602B2 (en) Low-risk deployment of web services
CN110213298B (zh) 联机房间的提供方法、装置、设备及介质
KR101665041B1 (ko) 게임 서버의 종료 처리 방법 및 시스템
CN103840963A (zh) 一种服务器数据更新方法,及装置
CN108268302A (zh) 实现设备启动的方法和装置
JP5416834B2 (ja) オペレーティングシステム状態の取込み及びローディング
CN112516598B (zh) 游戏服务故障的处理方法、装置、服务器及介质
US10255153B2 (en) Systematic testing of failover and recovery for distributed system components
CN112494931B (zh) 云游戏控制方法、系统、服务器和计算机可读存储介质
JP2006139696A (ja) データ復元方法、及びデータ復元プログラム
CN111111161B (zh) 一种游戏服务器修复方法、装置、服务器和介质
Yee Incompatible: The Challenges in Preserving Taiwanese Video Games
JP6796225B1 (ja) サーバ、ゲームプログラム、情報処理方法
KR102060528B1 (ko) 사용자 협력형 컨텐츠 제공 방법 및 장치
US11429451B2 (en) Managing exceptions on a shared resource
US20240029437A1 (en) Generating customized summaries of virtual actions and events
CN116055820A (zh) 事件处理方法、装置、设备及介质
CN115475381A (zh) 数据处理方法、装置、存储介质和电子装置

Legal Events

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

Payment date: 20190904

Year of fee payment: 4