KR101945673B1 - 확장성을 고려한 게임서버 시스템 - Google Patents

확장성을 고려한 게임서버 시스템 Download PDF

Info

Publication number
KR101945673B1
KR101945673B1 KR1020180071953A KR20180071953A KR101945673B1 KR 101945673 B1 KR101945673 B1 KR 101945673B1 KR 1020180071953 A KR1020180071953 A KR 1020180071953A KR 20180071953 A KR20180071953 A KR 20180071953A KR 101945673 B1 KR101945673 B1 KR 101945673B1
Authority
KR
South Korea
Prior art keywords
user
game
server
game server
servers
Prior art date
Application number
KR1020180071953A
Other languages
English (en)
Other versions
KR20180077112A (ko
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 KR1020180071953A priority Critical patent/KR101945673B1/ko
Publication of KR20180077112A publication Critical patent/KR20180077112A/ko
Application granted granted Critical
Publication of KR101945673B1 publication Critical patent/KR101945673B1/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 복수의 게임서버를 구비한 시스템에서 각각의 사용자가 여러 게임서버에서 플레이할 수 있도록 하는 게임서버 시스템에 관한 것이다. 본 발명은 클라이언트들로 온라인 게임을 제공하는 둘 이상의 게임서버를 포함하는 하나 이상의 게임서버그룹과; 상기 게임서버그룹마다 대응하여 구성되고, 상기 게임서버그룹에 포함된 각각의 게임서버에서 요구하는 고유데이터를 저장하는 고유데이터DB를 포함하는 하나 이상의 개별데이터DB와; 모든 게임서버에서 공통적으로 요구하는 공유데이터를 저장하는 공유데이터DB와; 상기 공유데이터DB 및 하나의 개별데이터DB와 연결되고, 모든 게임서버와 연결되어, 각각의 게임서버의 상기 공유데이터DB 및 하나의 개별데이터DB로의 접근을 매개하는 하나 이상의 캐시서버를 포함한다. 이와 같은 본 발명에 의하면 유저 증감에 유연하게 대처할 수 있으며, 게임서버 사이의 유저수의 불균등한 분배로 인한 문제점이 해소될 뿐 아니라, 유저들이 자신이 원하는 다른 유저들과 게임 플레이를 할 수 있다는 이점이 있다.

Description

확장성을 고려한 게임서버 시스템{GAME SERVER SYSTEM CONSIDERING SYSTEM EXPANSIBILITY}
본 발명은 시스템의 확장성을 고려한 게임서버 시스템에 관한 것으로서, 보다 상세하게는 복수의 게임서버를 구비한 시스템에서 각각의 사용자가 여러 게임서버에서 플레이할 수 있도록 하는 게임서버 시스템에 관한 것이다.
최근 수년간 온라인 게임이 비약적으로 진화해 왔다. 특히 인터넷을 통한 데이터 전송 속도가 급속히 발전함으로 인해 국내에서만 동시접속자가 수만에서 수십만에 이르는 대형 온라인 게임들이 상용화되기에 이르렀다.
이와 같이 게임의 동시접속자가 증가함에 따라 동일한 하나의 게임을 제공하기 위해 물리적으로 구분되는 다수의 게임서버가 하나의 게임 시스템 내에 구성되는 것이 일반화되었다.
일반적인 게임서버 시스템(10)의 구성을 살펴보면 도 1에 도시된 바와 같이 클라이언트(20)로부터 인증정보를 수신하여 로그인을 수행하는 로그인서버(11)와, 로그인된 유저에게 온라인 게임을 제공하는 게임서버(13), 그리고 상기 게임서버(13)에서 상기 클라이언트(20)로 온라인 게임을 제공하는데 필요한 각종 정보를 제공하는 데이터베이스(17)와, 상기 데이터베이스(17)로부터 유저의 캐릭터 정보와, 각종 게임 정보를 독출하여 상기 게임서버(13)로 제공하는 캐시서버(15)를 포함하여 구성된다.
그리고 이와 같은 게임서버(13), 캐시서버(15), 그리고 데이터베이스(17)는 서로에게 종속되어, 게임서버 시스템(10)의 동시접속자 수가 늘어나 게임서버의 수를 증가시키고자 하는 경우, 게임서버(13), 캐시서버(15), 그리고 데이터베이스(17)를 하나의 단위로 하여 동시에 증설해야 한다는 문제점이 있었다.
또한 이때 사용자가 하나의 게임서버(13)에서 캐릭터를 생성하는 경우, 해당 캐릭터에 대한 데이터는 게임서버(13)에 종속되는 데이터베이스(17)에 저장되므로 다른 게임서버(13')에서는 해당 캐릭터로 게임을 플레이할 수 없다는 불편이 있었다. 이와 같은 경우, 친구와 서로 다른 게임서버에서 캐릭터를 생성한 경우, 함께 플레이를 할 수 없을 뿐 아니라 자신이 캐릭터를 생성한 게임서버에 유저들의 수가 적은 경우 단체 플레이를 하는데 제약이 따르는 등의 문제점이 있었다.
이와 같은 문제점을 해결하기 위해서 종래에는 게임 웹사이트에서 캐릭터를 다른 게임서버로 이전시키는 요청을 하면 운영자가 이를 일일이 확인하여 처리해주는 서비스가 있었으나, 이와 같은 경우 게임서버 이전에 오랜 시간이 소요될 뿐 아니라, 이전한 게임서버에서 다시 다른 게임서버로 옮기려면 번거로운 절차를 반복해야 한다는 문제점이 있었으며, 운영자의 입장에서도 게임 캐릭터들을 다른 게임서버로 이동시키기 위해 데이터베이스에 저장된 캐릭터 정보를 확인하여 직접 다른 게임서버의 데이터베이스로 이동시켜야 하는 번거로움이 있었다.
따라서 본 발명은 위와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 유저 증가 시에 서버의 증설이 용이한 확장성을 고려한 게임서버 시스템을 제공하는 것이다.
본 발명의 다른 목적은 유저들이 하나의 캐릭터로 복수의 게임서버에서 게임 플레이를 할 수 있도록 하는 확장성을 고려한 게임서버 시스템을 제공하는 것이다.
본 발명은 확장성을 고려한 게임서버 시스템에 관한 것이다.
본 발명의 일 실시예에 따르면, 본 발명은 클라이언트들로 온라인 게임을 제공하는 둘 이상의 게임서버를 포함하는 하나 이상의 게임서버그룹과; 상기 게임서버그룹마다 대응하여 구성되고, 상기 게임서버그룹에 포함된 각각의 게임서버에서 요구하는 고유데이터를 저장하는 고유데이터DB를 포함하는 하나 이상의 개별데이터DB와; 모든 게임서버에서 공통적으로 요구하는 공유데이터를 저장하는 공유데이터DB와; 상기 공유데이터DB 및 하나의 개별데이터DB와 연결되고, 모든 게임서버와 연결되어, 각각의 게임서버의 상기 공유데이터DB 및 하나의 개별데이터DB로의 접근을 매개하는 하나 이상의 캐시서버를 포함한다.
이와 같은 본 발명의 실시예에 의한 게임서버 시스템에 의하면, 유저 증가 시에 서버의 증설이 용이한 구조를 가지므로, 유저 증감에 유연하게 대처할 수 있다는 장점이 있다.
또한 본 발명의 실시예에 의한 게임서버 시스템에 의하면, 유저들이 하나의 캐릭터로 복수의 게임서버에서 게임 플레이를 할 수 있으므로, 게임서버 사이의 유저수의 불균등한 분배로 인한 문제점이 해소될 뿐 아니라, 유저들이 자신이 원하는 다른 유저들과 게임 플레이를 할 수 있다는 이점이 있다.
도 1은 일반적인 게임서버 시스템의 서버 구성을 도시한 구성도.
도 2는 본 발명의 실시예에 의한 게임서버 시스템의 기본 구성을 도시한 구성도.
도 3은 본 발명의 실시예에 의한 게임서버 시스템의 확장된 구성을 도시한 구성도.
도 4는 본 발명의 실시예에 의한 게임서버 시스템의 유저DB의 확장 구성 과정을 도시한 도면.
도 5는 본 발명의 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도.
도 6은 본 발명의 또 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하에서는 첨부하는 도면을 참조하여 본 발명에 의한 확장성을 고려한 게임서버 시스템에 대하여 상세히 설명하기로 한다.
도 2는 본 발명의 실시예에 의한 게임서버 시스템의 기본 구성을 도시한 구성도이고, 도 3은 본 발명의 실시예에 의한 게임서버 시스템의 확장된 구성을 도시한 구성도이며, 도 4는 본 발명의 실시예에 의한 게임서버 시스템의 유저DB의 확장 구성 과정을 도시한 도면이다. 또한 도 5는 본 발명의 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도이고, 도 6은 본 발명의 또 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도이다.
먼저 도 2에 도시된 바와 같이 본 발명의 실시예에 의한 게임서버 시스템(100)의 기본 구성은, 클라이언트(200)로부터 인증정보를 수신하여 유저 로그인을 수행하는 로그인서버(110)를 포함하여 구성된다. 상기 로그인서버(110)는 후술할 캐시서버(150)를 통해 후술할 유저데이터베이스(171)에 저장된 유저 인증정보를 제공받아 상기 클라이언트(200)로부터 수신한 인증정보와 일치하는지 여부를 확인하여 유저 로그인을 수행한다.
그리고 상기 게임서버 시스템(100)은 상기 로그인서버(110)에 의하여 로그인 완료된 유저에 대하여 상기 클라이언트(200)로 온라인 게임을 제공하는 복수의 게임서버(131, 132, 133)를 포함한다. 이때 각각의 게임서버는 서로 구조적으로 분리된 하드웨어 서버를 의미한다.
상기 복수의 게임서버(131, 132, 133)는 각각 캐시서버(150)로부터 게임 진행에 필요한 데이터를 제공받고 이를 처리하여 클라이언트(200)에 제공함으로써, 상기 클라이언트(200)에서 유저가 게임을 플레이할 수 있도록 하는데, 이와 같은 복수의(적어도 둘 이상의) 게임서버(131, 132, 133)는 모여서 하나의 게임서버그룹(130)을 형성한다. 여기서 복수의 게임서버(131, 132, 133)를 상기 게임서버그룹(130)으로 묶는 기준은, 동일한 하나의 캐시서버(150)에 의하여 후술할 고유데이터를 제공받는지 여부로 결정한다.
즉 이하에서는 하나의 동일한 캐시서버(150)로부터 고유데이터를 로드받는 적어도 둘 이상의 게임서버(131, 132, 133)를 하나의 게임서버그룹(130)으로 설명하나 이는 본 발명의 실시예를 설명하기 위하여 편의상 구분하는 것이다.
한편 상기 게임서버 시스템(100)에는 적어도 하나 이상의 캐시서버(150)가 구비된다. 상기 캐시서버(150)는 각각의 게임서버(131, 132, 133)에 의한 후술할 데이터베이스(170, 180)로의 접근을 매개하는 역할을 하는 서버이다. 상기 하나 이상의 캐시서버(150)는 모든 게임서버(131, 132, 133)와 연결되나, 후술할 고유데이터와 관련하여서는 각각 담당하는 게임서버그룹(130)이 할당된다.
그리고 상기 캐시서버(150)에는 데이터베이스(170, 180)가 연결된다. 우선 모든 게임서버(131, 132, 133)에 공통적으로 제공되는 공유 데이터(예를 들어, NPC(Non-Player Character) 관련 정보, 아이템 관련 정보 등)를 저장하고 이를 게임서버(131, 132, 133)로 제공하는 공유데이터DB(180)와, 각각의 유저에 대한 개인정보나, 유저의 캐릭터 정보 등 유저관련정보를 저장하는 유저DB(171), 그리고 각각의 게임서버(131, 132, 133)에 대한 고유한 정보를 저장하는 고유데이터DB(173)를 포함하는 개별데이터DB(170)가 구성된다.
여기서 상기 개별데이터DB(170)는 상기 캐시서버(150)에 대응하는 상기 게임서버그룹(130)에 포함되는 각각의 게임서버(131, 132, 133)에 대한 고유데이터를 각각 저장하고, 전부 또는 일부 유저의 정보를 저장한다. 상기 캐시서버(150)는 이와 같은 상기 개별데이터DB(170)에 저장된 각 게임서버(131, 132, 133)에 대한 고유데이터와 유저 정보를 해당 게임서버로 전달한다. 이때 상기 고유데이터는 모든 게임서버(131, 132, 133)가 함께 공유하는 공유데이터 이외에 각각의 게임서버(131, 132, 133)가 각각 서로 달리 필요로 하는 게임에 대한 데이터를 의미한다.
이와 같은 구성이 상기 게임서버 시스템(100)의 기본 구성이며, 확장된 구성은 도 3에 도시된 바와 같다.
도 3에 도시된 바에 따르면, 새로운 제2게임서버그룹(130')이 증설된 것을 확인할 수 있다. 그리고 그에 대응하여 새로운 제2캐시서버(150')가 추가되었다. 이때 상기 제2캐시서버(150')에는 제2개별데이터DB(170')가 연결되며, 제2개별데이터DB(170')는 상기 제2게임서버그룹(130')에 포함된 각각의 게임서버(134, 135, 136) 각각에 대한 고유데이터DB(173')를 포함한다.
또한 상기 제2캐시서버(150')는 모든 게임서버들에 대하여 상기 공유데이터DB(180)로의 액세스를 매개할 수 있도록 상기 공유데이터DB(180)로도 연결된다.
이때 동시 접속하는 유저수의 증가 또는 캐릭터의 증가로 인하여, 상기 캐시서버(150)나 상기 유저DB(171)의 부하가 늘어난 경우, 상기 제2캐시서버(150')에 대응하는 개별데이터DB(170')에 제2유저DB(171')를 추가할 수 있다.
이와 같은 경우, 상기 유저DB(171)와 상기 제2유저DB(171')는 전체 유저를 나누어 일부 유저의 유저관련정보는 상기 유저DB(171)에서 관리하고 나머지 유저의 유저관련정보는 상기 제2유저DB(171')에서 관리하도록 할 수 있으며, 이와 같은 경우 상기 캐시서버(150)는 상기 유저DB(171)에 저장된 유저관련정보만을 게임서버들로 로드하고, 상기 제2캐시서버(150')는 상기 제2유저DB(171')에 저장된 유저관련정보만을 게임서버들로 로드할 수 있다.
여기서 제2유저DB(171')를 추가하는 과정은, 도 4에 도시된 바와 같다. 상기 유저DB(171)의 데이터를 그대로 복제한 데이터를 갖는 제2유저DB(171')를 상기 게임서버 시스템(100)에 추가한 후, 전체 유저의 유저관련정보 중, 유저 일련번호가 k 이상인 유저의 유저관련정보를 상기 유저DB(171)에서 삭제하며, 유저 일련번호가 k 미만인 유저의 유저관련정보를 상기 제2유저DB(171')에서 삭제함으로써 이루어질 수 있다. 이에 따라 상기 유저DB(171)에는 유저 일련번호가 1 부터 k-1인 유저들의 유저관련정보만이 남게 되고, 상기 제2유저DB(171')에는 유저 일련번호가 k이상인 유저들의 유저관련정보만이 남게 된다.
그에 따라 상기 유저DB(171)와 상기 제2유저DB(171')에는 유저관련정보들이 서로 중첩되지 않고 분산되어 저장된다. 이때 상기 유저DB(171)와 상기 제2유저DB(171')에 저장되는 유저관련정보들은, 상술한 바와 같이 유저 일련번호를 기준으로 나누어 저장되는데, 상기 유저DB(171)와 상기 제2유저DB(171')에 각각 저장되는 유저관련정보들의 유저 일련번호의 수는 일정비율(예를 들어 80 : 20)로 나누어 저장될 수 있다.
예를 들어, 상기 유저DB(171)에 현재 12500개의 유저 일련번호에 대응하는 유저관련정보들이 저장된 경우, 상기 게임서버 시스템(100)에 새로운 제2유저(DB(171')를 추가하면서, 상기 유저DB(171)와 상기 제2유저DB(171')에 각각 저장되는 유저관련정보의 유저 일련번호들의 비율을 80:20으로 조정하여, 상기 유저DB(171)에는 10000개의 유저 일련번호에 대응하는 유저관련정보들이 저장되도록 하고 상기 제2유저DB(171')에는 2500개의 유저 일련번호에 대응하는 유저관련정보들이 저장되도록 할 수 있다. 예를 들어 상기 유저DB(171)에는 유저 일련번호가 1 내지 10000인 유저관련정보만을 남기고, 상기 제2유저DB(171')에는 유저 일련번호가 10001 내지 12500인 유저관련정보만을 남기도록 할 수 있다.
한편, 위와 같이 복수의 유저DB(171, 171')에 유저관련정보들을 분산하여 저장한 경우, 상기 캐시서버(150)는 상기 유저DB(171)에 저장된 유저관련정보만을 게임서버들로 로드하고, 상기 제2캐시서버(150')는 상기 제2유저DB(171')에 저장된 유저관련정보만을 게임서버들로 로드하도록 하기 위하여, 게임서버(131 내지 136)의 구성파일(Config file)에는 각각의 캐시서버(150, 150')에 각각 대응하는 유저DB(171, 171')에 유저관련정보가 저장된 유저들의 유저 식별정보의 범위에 대한 정보가 공유된다. 즉, 예를 들어, 유저 일련번호 1 내지 10000에 대응하는 유저관련정보는 상기 캐시서버(150)에서 가져오고, 유저 일련번호 10001 내지 20000에 대응하는 유저관련정보는 상기 제2캐시서버(150')에서 가져온다는 정보를 포함하는 구성파일을 모든 게임서버(131 내지 136)가 공유할 수 있다.
또는 위와 같이 게임서버(131 내지 136)가 구성파일에 포함된 정보를 이용하여 유저관련정보를 요청할 적절한 캐시서버(150, 150')를 선택하는 방법 외에, 각각의 캐시서버(150, 150')에 저장되는 유저 일련번호 리스트를 이용하여 유저관련정보가 게임서버(131 내지 136)에 로드되도록 하는 방법도 가능하다. 각각의 캐시서버(150, 150')에는 각각 상기 유저DB(171)와 상기 제2유저DB(171')에 저장되는 유저관련정보의 유저 일련번호 리스트들이 저장되는데, 임의의 게임서버(131 내지 136)로부터 임의의 유저 일련번호에 대응하는 유저관련정보의 요청이 있으면, 각각의 캐시서버(150, 150')는 저장된 유저 일련번호 리스트를 참조하여, 유저 일련번호 리스트에 상기 임의의 유저 일련번호가 포함되면 요청에 따라 유저관련데이터를 로드하고, 상기 유저 일련번호가 포함되어 있지 않으면 요청을 무시하는 방식으로 동작할 수도 있다. 이에 따라 예를 들어, 임의의 게임서버에서 상기 캐시서버(150)와 상기 제2캐시서버(150')로 일련번호 10004에 해당하는 유저의 캐릭터 정보가 요청된 경우, 상기 캐시서버(150)와 상기 제2캐시서버(150')는 각각 저장된 일련번호 리스트에 일련번호 10004가 포함되어 있는지 여부를 확인하여 포함되지 않은 경우 이와 같은 요청을 무시할 수도 있다.
한편 위와 같은 복수의 유저DB(171, 171')를 이용하여 캐릭터를 생성하고, 캐릭터를 이용한 게임 플레이를 하는 방법을 구체적으로 설명한다.
먼저 새로운 캐릭터가 생성되는 과정을 설명하면, 캐릭터를 생성하고자 하는 유저의 일련번호에 대응하는 캐시서버(150, 150')를 이용하여 캐릭터를 생성한다.
이를 위하여 이미 설명한 바와 같이 상기 게임서버(131 내지 136)의 구성파일에 포함된 서버구성정보(상기 유저DB(171, 171') 각각에 저장된 캐릭터정보에 대응하는 유저의 일련번호의 범위에 대한 정보와, 각각의 일련번호의 범위에 대응하는 캐릭터정보의 로드를 매개하는 캐시서버(150, 150')의 정보를 포함)를 참조하여, 새로운 캐릭터를 생성할 캐시서버(150, 150')를 결정할 수 있다.
또는 이미 설명한 바와 같이 상기 캐시서버(150)에는 상기 유저DB(171)에 저장되는 유저관련정보의 유저 일련번호 리스트들이 저장되고, 상기 제2캐시서버(150')에는 상기 제2유저DB(171')에 저장되는 유저관련정보의 유저 일련번호 리스트들이 저장될 수 있으며, 그에 따라 새로운 캐릭터를 생성할 캐시서버(150, 150')가 결정될 수 있다.
예를 들면, 도 4에 도시된 실시예에서, 유저 일련번호 999에 해당하는 유저가 새로운 캐릭터 생성을 요청하면, 유저 일련번호 1 내지 10000에 대응하는 유저관련정보가 저장되는 상기 유저DB(171)에 저장되는 정보를 상기 게임서버(131 내지 136)로 로드되도록 중개하는 상기 캐시서버(150)가 새로 생성되는 캐릭터의 캐릭터정보를 상기 유저DB(171)로 기록하고, 유저 일련번호가 10004에 해당하는 유저가 새로운 캐릭터 생성을 요청하면 상기 제2캐시서버(150')가 새로운 캐릭터의 캐릭터정보를 생성하고, 그에 대응하여 상기 제2유저DB(171')에 저장된 유저관련정보를 갱신한다.
한편 각각의 캐릭터에는 유저에 대해서와 마찬가지로 일련번호가 부여된다. 이때 모든 게임서버(131 내지 136)에서 유일한 캐릭터 일련번호가 결정되도록 하기 위해, 캐릭터 일련번호는 각각의 유저에게 고유한 유저 일련번호를 변수로 하는 함수를 이용하여 생성되도록 할 수 있다. 예를 들어, 캐릭터 일련번호를 일정범위 내의 정수로 결정되도록 하고 유저 일련번호가 정수 k인 경우, 캐릭터 일련번호는 10k-9 내지 10k 사이의 범위로 결정되도록 함으로써, 다른 유저 일련번호를 갖는 다른 유저의 캐릭터 일련번호와 중첩되지 않도록 할 수 있다. 즉, 캐릭터 일련번호는 유저 일련번호를 변수로 하되, 변수가 변경되더라도 서로 중첩되는 범위가 없도록 결정된 함수를 이용하여 결정될 수 있다. 위에 예시된 함수를 이용하면 하나의 유저 일련번호에 대응하여 10개의 캐릭터 일련번호를 생성할 수 있으며, 곧 이는 한 사람의 유저는 최대 10개의 캐릭터를 생성할 수 있음을 의미한다. 따라서 생성 가능한 캐릭터의 수에 따라 함수를 변경할 수 있다. 물론 이때 캐릭터 일련번호를 결정하는 함수는 위에 예시된 바와 다른 함수가 될 수도 있다.
즉 정리하면, 상기 유저 일련번호와 상기 캐릭터 일련번호는 모두 일정한 범위의 정수 타입(int 형)의 변수로서, 상기 캐릭터 일련번호는 상기 유저 일련번호를 독립 변수로 하는 종속 변수이고, 상기 유저 일련번호를 이용하여 상기 캐릭터 일련번호를 산출하는 로직은 정수 타입 변수를 다시 정수 타입으로 반환하는 함수를 이용하되, 각각의 독립 변수에 대하여 중첩된 종속 변수를 생성하지 않는 함수이어야 한다.
이에 따르면, 각각의 캐시서버(150, 150')를 통해 생성되는 캐릭터 일련번호는 서로 중첩되지 않으며, 그에 따라 모든 게임서버(131 내지 136)에서 유일한 하나의 캐릭터 일련번호를 생성할 수 있다.
그리고 유저 일련번호가 k인 임의의 유저가 최초로 캐릭터를 생성할 때에는, 위에 예시된 함수에서 10k-9를 캐릭터 일련번호로 정할 수 있고, 그 이후에 캐릭터를 생성할 때에는 10k-9 내지 10k의 범위 내에서 오름차순으로 캐릭터 일련번호를 검색하여, 해당되는 일련번호가 등록되지 않은 최초의 일련번호를 캐릭터 일련번호로 결정할 수 있다.
또한 위와 같이 생성된 캐릭터들을 이용하여 게임을 플레이하는 과정을 살펴보면, 유저 일련번호가 k인 임의의 유저가 상기 게임서버(131 내지 136) 중 어느 하나에 접속하면(게임서버(131)로 예시한다), 상기 게임서버(131)는 유저 일련번호 k를 확인하여 해당 유저 일련번호를 포함하는 유저DB(171 또는 171')에 연결된 캐시서버(150 또는 150')에서 해당 유저의 유저관련정보를 획득하거나 저장한다. 예를 들어, 도 3 및 4에 도시된 예에서 유저 일련번호가 10004인 유저가 상기 게임서버(131)에 접속하면 상기 게임서버(131)는 상기 제2캐시서버(150')를 통해 상기 제2유저DB(171')로부터 유저관련정보를 획득하여 게임을 진행한다.
한편 도 5에 도시된 바와 같이 새로운 게임서버그룹이 추가되지 않은 경우에도, 상기 캐시서버(150)의 부하가 과도한 경우, 새로운 제2캐시서버(150')만을 더 추가할 수도 있으며, 이 경우 각각의 캐시서버(150, 150')는 상기 공유데이터DB(180)와 상기 개별데이터DB(170)에 각각 모두 액세스 가능하다.
나아가 도 6에 도시된 바와 같이 본 발명의 다른 실시예에서는, 도 2에 도시된 바와 같은 본 발명의 게임서버 시스템(100)의 기본 구성에 커뮤니케이션서버(190) 등 다른 구성이 더 추가될 수 있다. 상기 커뮤니케이션서버(190)는 각각의 유저들 사이의 대화를 가능하게 하는 서버로서, 복수의 클라이언트(200)가 로그인한 유저 정보를 이용하여 유저 사이의 대화를 중개하는 역할을 수행한다. 이를 위하여 상기 커뮤니케이션서버(190)는 모든 유저들의 유저 정보를 보유하거나 상기 캐시서버(150)로부터 필요한 유저 정보를 제공받을 수 있다.
당업자는 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직 블록들 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로 구현할 수도 있음을 알 수 있다. 하드웨어와 소프트웨어의 이러한 대체 가능성을 분명히 설명하기 위하여, 다양한 예시적인 단계들을 주로 그들의 기능의 관점에서 상술하였다. 그러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약 조건들에 의존한다.
당업자는 설명된 기능을 각각의 특정 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 그러한 구현의 결정이 본 발명의 범주를 벗어나도록 하는 것으로 해석하지는 않아야 한다.
상기 실시예는 본원발명을 구체적으로 설명하기 위한 예시일 뿐이며, 본 발명은 이들 실시예에 한정되지 않는다. 본 발명의 취지를 일탈하지 않는 범위에서 구성의 부가, 생략, 치환, 및 그 밖의 변경이 가능하다. 본 발명은 전술한 설명에 의해 한정되지 않고, 첨부한 청구범위의 범위에 의해서만 한정된다.
100: 게임서버 시스템 110: 로그인서버
130: 게임서버그룹 150: 캐시서버
170: 개별데이터DB 180: 공유데이터DB
190: 커뮤니케이션서버

Claims (3)

  1. 클라이언트들로 온라인 게임을 제공하는 둘 이상의 게임서버를 포함하는 복수의 게임서버그룹;
    상기 게임서버그룹마다 대응하여 구성되고, 상기 게임서버그룹에 포함된 각각의 게임서버에서 요구하는 고유데이터를 저장하는 고유데이터DB 및 각각의 유저에 대한 캐릭터정보가 저장되는 유저DB를 포함하는 복수의 개별데이터DB;
    모든 게임서버에서 공통적으로 요구하는 공유데이터를 저장하는 공유데이터DB; 및
    상기 공유데이터DB 및 하나의 개별데이터DB와 연결되고, 모든 게임서버와 연결되어, 각각의 게임서버의 상기 공유데이터DB 및 하나의 개별데이터DB로의 접근을 매개하는 캐시서버 복수 개를 포함하고,
    상기 복수의 개별데이터DB 각각에 포함되는 유저DB 각각에는 서로 다른 비율로 서로 다른 유저 일련번호에 대응하는 유저관련정보들이 저장되고,
    상기 복수의 개별데이터DB 각각에 포함되는 유저DB는 제1유저DB 및 제2유저DB를 포함하고, 제2유저DB는 제1유저DB가 일정 수 이상의 유저 일련 번호를 포함하는 경우에 추가되며, 제1유저DB에는 제2유저DB보다 많은 수의 유저 일련번호를 포함하는 것을 특징으로 하여 구성되는, 게임서버 시스템.
  2. 제1항에 있어서,
    상기 게임서버 시스템은,
    상기 클라이언트로부터 인증정보를 수신하여 유저 로그인을 수행하는 로그인서버를 더 포함하고,
    상기 하나 이상의 캐시서버는,
    상기 로그인서버와 연결되는, 게임서버 시스템.
  3. 제1항에 있어서,
    상기 개별데이터DB 각각에 대응하여 각각 연결된 캐시서버는,
    대응하는 개별데이터DB에 포함된 유저DB에 캐릭터정보가 저장된 유저의 유저 일련번호 리스트를 저장하고, 임의의 유저 일련번호를 갖는 유저의 캐릭터정보 요청이 수신되면 수신된 임의의 유저 일련번호가 상기 유저 일련번호 리스트에 저장된 경우에만 상기 대응하는 개별데이터DB에 포함된 유저DB로의 접근을 매개하는, 게임서버 시스템.
KR1020180071953A 2018-06-22 2018-06-22 확장성을 고려한 게임서버 시스템 KR101945673B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180071953A KR101945673B1 (ko) 2018-06-22 2018-06-22 확장성을 고려한 게임서버 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180071953A KR101945673B1 (ko) 2018-06-22 2018-06-22 확장성을 고려한 게임서버 시스템

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020120000136A Division KR101927090B1 (ko) 2012-01-02 2012-01-02 확장성을 고려한 게임서버 시스템

Publications (2)

Publication Number Publication Date
KR20180077112A KR20180077112A (ko) 2018-07-06
KR101945673B1 true KR101945673B1 (ko) 2019-02-08

Family

ID=62921233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071953A KR101945673B1 (ko) 2018-06-22 2018-06-22 확장성을 고려한 게임서버 시스템

Country Status (1)

Country Link
KR (1) KR101945673B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210119094A (ko) 2020-03-24 2021-10-05 (주)완씨엔터테인먼트 네트워크 게임 기반의 클라이언트-게임 서버 간 통신트래픽 컨트롤 방법 및 통신트래픽 컨트롤 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100635194B1 (ko) * 2005-12-02 2006-10-16 주식회사 지오마인드 게이머의 게임자산을 다른 게임서버로 이전시키는 게임서버이전시스템 및 그 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670798B1 (ko) * 2004-12-17 2007-01-17 한국전자통신연구원 데이터베이스 캐시 시스템
KR20070080363A (ko) * 2006-02-07 2007-08-10 (주)아더스테크놀러지 통합 서버 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100635194B1 (ko) * 2005-12-02 2006-10-16 주식회사 지오마인드 게이머의 게임자산을 다른 게임서버로 이전시키는 게임서버이전시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210119094A (ko) 2020-03-24 2021-10-05 (주)완씨엔터테인먼트 네트워크 게임 기반의 클라이언트-게임 서버 간 통신트래픽 컨트롤 방법 및 통신트래픽 컨트롤 시스템

Also Published As

Publication number Publication date
KR20180077112A (ko) 2018-07-06

Similar Documents

Publication Publication Date Title
US10747780B2 (en) Blockchain-based data processing method and device
US8024467B2 (en) Distributed session listing and content discovery
US20120166394A1 (en) Distributed storage system and method for storing objects based on locations
US8751668B2 (en) Decentralized multi-user online environment
CN102217274B (zh) 用于在分布式存储网络中实现数据授权的系统和方法
US20120166611A1 (en) Distributed storage system including a plurality of proxy servers and method for managing objects
EP3221797B1 (en) Testing systems and methods
JP2016508253A (ja) コンテンツ取得ソース選択及び管理
CN110519240B (zh) 一种单点登录方法、装置及系统
EP3491808B1 (en) Interchangeable retrieval of content
CN105391795A (zh) 网络游戏中跨服务器用户匹配方法及装置
JP6580212B1 (ja) 通信装置、通信方法、および、通信プログラム
JP6712744B2 (ja) ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム
US9021051B1 (en) Providing selective retrieval of data objects from a network service
KR101945673B1 (ko) 확장성을 고려한 게임서버 시스템
CN110891660A (zh) 用于在计算机装置之间同步数据的系统和方法
KR101927090B1 (ko) 확장성을 고려한 게임서버 시스템
US10033817B2 (en) Stateless technique for distributing data uploads
CN118176694A (zh) 用于分布式区块链功能的方法和系统
CN118216121A (zh) 用于分布式区块链功能的方法和系统
KR20230118380A (ko) 그룹 서명 기반 연합학습 방법 및 시스템, 이를 수행하기 위한 기록 매체
US20140113727A1 (en) Online game system, method, and computer-readable medium
EP3479550A1 (en) Constraint based controlled seeding
EP2722085A1 (en) Online game system, method, and computer-readable medium
US20140113726A1 (en) Online game systems, methods, and computer-readable medium

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant