KR20180077112A - Game server system considering system expansibility - Google Patents
Game server system considering system expansibility Download PDFInfo
- Publication number
- KR20180077112A KR20180077112A KR1020180071953A KR20180071953A KR20180077112A KR 20180077112 A KR20180077112 A KR 20180077112A KR 1020180071953 A KR1020180071953 A KR 1020180071953A KR 20180071953 A KR20180071953 A KR 20180071953A KR 20180077112 A KR20180077112 A KR 20180077112A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- game
- server
- game server
- servers
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game 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
Description
본 발명은 시스템의 확장성을 고려한 게임서버 시스템에 관한 것으로서, 보다 상세하게는 복수의 게임서버를 구비한 시스템에서 각각의 사용자가 여러 게임서버에서 플레이할 수 있도록 하는 게임서버 시스템에 관한 것이다.BACKGROUND OF THE
최근 수년간 온라인 게임이 비약적으로 진화해 왔다. 특히 인터넷을 통한 데이터 전송 속도가 급속히 발전함으로 인해 국내에서만 동시접속자가 수만에서 수십만에 이르는 대형 온라인 게임들이 상용화되기에 이르렀다.Online games have evolved dramatically in recent years. Especially, since the data transmission rate through the Internet has rapidly developed, large online games ranging from tens of thousands to hundreds of thousands of concurrent users have been commercialized in Korea.
이와 같이 게임의 동시접속자가 증가함에 따라 동일한 하나의 게임을 제공하기 위해 물리적으로 구분되는 다수의 게임서버가 하나의 게임 시스템 내에 구성되는 것이 일반화되었다. As the number of concurrent users of the game increases, it is generalized that a plurality of physically separated game servers are configured in one game system to provide the same one game.
일반적인 게임서버 시스템(10)의 구성을 살펴보면 도 1에 도시된 바와 같이 클라이언트(20)로부터 인증정보를 수신하여 로그인을 수행하는 로그인서버(11)와, 로그인된 유저에게 온라인 게임을 제공하는 게임서버(13), 그리고 상기 게임서버(13)에서 상기 클라이언트(20)로 온라인 게임을 제공하는데 필요한 각종 정보를 제공하는 데이터베이스(17)와, 상기 데이터베이스(17)로부터 유저의 캐릭터 정보와, 각종 게임 정보를 독출하여 상기 게임서버(13)로 제공하는 캐시서버(15)를 포함하여 구성된다.As shown in FIG. 1, the general
그리고 이와 같은 게임서버(13), 캐시서버(15), 그리고 데이터베이스(17)는 서로에게 종속되어, 게임서버 시스템(10)의 동시접속자 수가 늘어나 게임서버의 수를 증가시키고자 하는 경우, 게임서버(13), 캐시서버(15), 그리고 데이터베이스(17)를 하나의 단위로 하여 동시에 증설해야 한다는 문제점이 있었다. When the number of concurrent users of the
또한 이때 사용자가 하나의 게임서버(13)에서 캐릭터를 생성하는 경우, 해당 캐릭터에 대한 데이터는 게임서버(13)에 종속되는 데이터베이스(17)에 저장되므로 다른 게임서버(13')에서는 해당 캐릭터로 게임을 플레이할 수 없다는 불편이 있었다. 이와 같은 경우, 친구와 서로 다른 게임서버에서 캐릭터를 생성한 경우, 함께 플레이를 할 수 없을 뿐 아니라 자신이 캐릭터를 생성한 게임서버에 유저들의 수가 적은 경우 단체 플레이를 하는데 제약이 따르는 등의 문제점이 있었다.In this case, when a user creates a character in one
이와 같은 문제점을 해결하기 위해서 종래에는 게임 웹사이트에서 캐릭터를 다른 게임서버로 이전시키는 요청을 하면 운영자가 이를 일일이 확인하여 처리해주는 서비스가 있었으나, 이와 같은 경우 게임서버 이전에 오랜 시간이 소요될 뿐 아니라, 이전한 게임서버에서 다시 다른 게임서버로 옮기려면 번거로운 절차를 반복해야 한다는 문제점이 있었으며, 운영자의 입장에서도 게임 캐릭터들을 다른 게임서버로 이동시키기 위해 데이터베이스에 저장된 캐릭터 정보를 확인하여 직접 다른 게임서버의 데이터베이스로 이동시켜야 하는 번거로움이 있었다. In order to solve such a problem, conventionally, there has been a service that allows an operator to individually check and process a request for transferring a character from a game website to another game server. However, in such a case, There is a problem that it is necessary to repeat troublesome procedures in order to move the game server from the previous game server to another game server. In order to move the game characters to another game server from the viewpoint of the operator, the character information stored in the database is checked, It is troublesome to move to.
따라서 본 발명은 위와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 유저 증가 시에 서버의 증설이 용이한 확장성을 고려한 게임서버 시스템을 제공하는 것이다. Accordingly, it is an object of the present invention to provide a game server system considering expandability in which a server can be easily expanded when a user increases.
본 발명의 다른 목적은 유저들이 하나의 캐릭터로 복수의 게임서버에서 게임 플레이를 할 수 있도록 하는 확장성을 고려한 게임서버 시스템을 제공하는 것이다.Another object of the present invention is to provide a game server system considering expandability in which users can play a game on a plurality of game servers as a single character.
본 발명은 확장성을 고려한 게임서버 시스템에 관한 것이다.The present invention relates to a game server system considering expandability.
본 발명의 일 실시예에 따르면, 본 발명은 클라이언트들로 온라인 게임을 제공하는 둘 이상의 게임서버를 포함하는 하나 이상의 게임서버그룹과; 상기 게임서버그룹마다 대응하여 구성되고, 상기 게임서버그룹에 포함된 각각의 게임서버에서 요구하는 고유데이터를 저장하는 고유데이터DB를 포함하는 하나 이상의 개별데이터DB와; 모든 게임서버에서 공통적으로 요구하는 공유데이터를 저장하는 공유데이터DB와; 상기 공유데이터DB 및 하나의 개별데이터DB와 연결되고, 모든 게임서버와 연결되어, 각각의 게임서버의 상기 공유데이터DB 및 하나의 개별데이터DB로의 접근을 매개하는 하나 이상의 캐시서버를 포함한다.According to an embodiment of the present invention, the present invention provides a game system comprising: one or more game server groups including two or more game servers for providing online games to clients; At least one individual data DB corresponding to each of the game server groups and including a unique data DB storing unique data requested by each of the game servers included in the game server group; A shared data DB for storing shared data commonly requested by all game servers; And one or more cache servers connected to the shared data DB and one individual data DB and connected to all the game servers to mediate access to the shared data DB and one individual data DB of each game server.
이와 같은 본 발명의 실시예에 의한 게임서버 시스템에 의하면, 유저 증가 시에 서버의 증설이 용이한 구조를 가지므로, 유저 증감에 유연하게 대처할 수 있다는 장점이 있다. According to the game server system according to the embodiment of the present invention, since the server can be easily expanded when the number of users increases, there is an advantage that it can be flexibly coped with user increase and decrease.
또한 본 발명의 실시예에 의한 게임서버 시스템에 의하면, 유저들이 하나의 캐릭터로 복수의 게임서버에서 게임 플레이를 할 수 있으므로, 게임서버 사이의 유저수의 불균등한 분배로 인한 문제점이 해소될 뿐 아니라, 유저들이 자신이 원하는 다른 유저들과 게임 플레이를 할 수 있다는 이점이 있다. In addition, according to the game server system according to the embodiment of the present invention, since users can play a game on a plurality of game servers as a single character, the problem caused by uneven distribution of the number of users between game servers is solved, The advantage is that users can play games with other users that they want.
도 1은 일반적인 게임서버 시스템의 서버 구성을 도시한 구성도.
도 2는 본 발명의 실시예에 의한 게임서버 시스템의 기본 구성을 도시한 구성도.
도 3은 본 발명의 실시예에 의한 게임서버 시스템의 확장된 구성을 도시한 구성도.
도 4는 본 발명의 실시예에 의한 게임서버 시스템의 유저DB의 확장 구성 과정을 도시한 도면.
도 5는 본 발명의 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도.
도 6은 본 발명의 또 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도.1 is a block diagram showing a server configuration of a general game server system;
2 is a configuration diagram showing a basic configuration of a game server system according to an embodiment of the present invention;
3 is a configuration diagram showing an extended configuration of a game server system according to an embodiment of the present invention;
4 is a diagram illustrating a process of expanding a user DB of a game server system according to an embodiment of the present invention.
5 is a configuration diagram showing a configuration of a game server system according to another embodiment of the present invention;
6 is a configuration diagram showing a configuration of a game server system according to another embodiment of the present invention;
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Like reference numerals refer to like elements throughout the specification.
이하에서는 첨부하는 도면을 참조하여 본 발명에 의한 확장성을 고려한 게임서버 시스템에 대하여 상세히 설명하기로 한다. Hereinafter, a game server system considering extensibility according to the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명의 실시예에 의한 게임서버 시스템의 기본 구성을 도시한 구성도이고, 도 3은 본 발명의 실시예에 의한 게임서버 시스템의 확장된 구성을 도시한 구성도이며, 도 4는 본 발명의 실시예에 의한 게임서버 시스템의 유저DB의 확장 구성 과정을 도시한 도면이다. 또한 도 5는 본 발명의 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도이고, 도 6은 본 발명의 또 다른 실시예에 의한 게임서버 시스템의 구성을 도시한 구성도이다.FIG. 2 is a configuration diagram showing a basic configuration of a game server system according to an embodiment of the present invention, FIG. 3 is a configuration diagram showing an expanded configuration of a game server system according to an embodiment of the present invention, FIG. 4 is a diagram illustrating a process of expanding a user DB of a game server system according to an embodiment of the present invention; FIG. 5 is a configuration diagram illustrating a configuration of a game server system according to another embodiment of the present invention, and FIG. 6 is a configuration diagram illustrating a configuration of a game server system according to another embodiment of the present invention.
먼저 도 2에 도시된 바와 같이 본 발명의 실시예에 의한 게임서버 시스템(100)의 기본 구성은, 클라이언트(200)로부터 인증정보를 수신하여 유저 로그인을 수행하는 로그인서버(110)를 포함하여 구성된다. 상기 로그인서버(110)는 후술할 캐시서버(150)를 통해 후술할 유저데이터베이스(171)에 저장된 유저 인증정보를 제공받아 상기 클라이언트(200)로부터 수신한 인증정보와 일치하는지 여부를 확인하여 유저 로그인을 수행한다. 2, the basic configuration of the
그리고 상기 게임서버 시스템(100)은 상기 로그인서버(110)에 의하여 로그인 완료된 유저에 대하여 상기 클라이언트(200)로 온라인 게임을 제공하는 복수의 게임서버(131, 132, 133)를 포함한다. 이때 각각의 게임서버는 서로 구조적으로 분리된 하드웨어 서버를 의미한다. The
상기 복수의 게임서버(131, 132, 133)는 각각 캐시서버(150)로부터 게임 진행에 필요한 데이터를 제공받고 이를 처리하여 클라이언트(200)에 제공함으로써, 상기 클라이언트(200)에서 유저가 게임을 플레이할 수 있도록 하는데, 이와 같은 복수의(적어도 둘 이상의) 게임서버(131, 132, 133)는 모여서 하나의 게임서버그룹(130)을 형성한다. 여기서 복수의 게임서버(131, 132, 133)를 상기 게임서버그룹(130)으로 묶는 기준은, 동일한 하나의 캐시서버(150)에 의하여 후술할 고유데이터를 제공받는지 여부로 결정한다. Each of the plurality of
즉 이하에서는 하나의 동일한 캐시서버(150)로부터 고유데이터를 로드받는 적어도 둘 이상의 게임서버(131, 132, 133)를 하나의 게임서버그룹(130)으로 설명하나 이는 본 발명의 실시예를 설명하기 위하여 편의상 구분하는 것이다.In other words, at least two
한편 상기 게임서버 시스템(100)에는 적어도 하나 이상의 캐시서버(150)가 구비된다. 상기 캐시서버(150)는 각각의 게임서버(131, 132, 133)에 의한 후술할 데이터베이스(170, 180)로의 접근을 매개하는 역할을 하는 서버이다. 상기 하나 이상의 캐시서버(150)는 모든 게임서버(131, 132, 133)와 연결되나, 후술할 고유데이터와 관련하여서는 각각 담당하는 게임서버그룹(130)이 할당된다. Meanwhile, at least one
그리고 상기 캐시서버(150)에는 데이터베이스(170, 180)가 연결된다. 우선 모든 게임서버(131, 132, 133)에 공통적으로 제공되는 공유 데이터(예를 들어, NPC(Non-Player Character) 관련 정보, 아이템 관련 정보 등)를 저장하고 이를 게임서버(131, 132, 133)로 제공하는 공유데이터DB(180)와, 각각의 유저에 대한 개인정보나, 유저의 캐릭터 정보 등 유저관련정보를 저장하는 유저DB(171), 그리고 각각의 게임서버(131, 132, 133)에 대한 고유한 정보를 저장하는 고유데이터DB(173)를 포함하는 개별데이터DB(170)가 구성된다. The
여기서 상기 개별데이터DB(170)는 상기 캐시서버(150)에 대응하는 상기 게임서버그룹(130)에 포함되는 각각의 게임서버(131, 132, 133)에 대한 고유데이터를 각각 저장하고, 전부 또는 일부 유저의 정보를 저장한다. 상기 캐시서버(150)는 이와 같은 상기 개별데이터DB(170)에 저장된 각 게임서버(131, 132, 133)에 대한 고유데이터와 유저 정보를 해당 게임서버로 전달한다. 이때 상기 고유데이터는 모든 게임서버(131, 132, 133)가 함께 공유하는 공유데이터 이외에 각각의 게임서버(131, 132, 133)가 각각 서로 달리 필요로 하는 게임에 대한 데이터를 의미한다. The
이와 같은 구성이 상기 게임서버 시스템(100)의 기본 구성이며, 확장된 구성은 도 3에 도시된 바와 같다. This configuration is the basic configuration of the
도 3에 도시된 바에 따르면, 새로운 제2게임서버그룹(130')이 증설된 것을 확인할 수 있다. 그리고 그에 대응하여 새로운 제2캐시서버(150')가 추가되었다. 이때 상기 제2캐시서버(150')에는 제2개별데이터DB(170')가 연결되며, 제2개별데이터DB(170')는 상기 제2게임서버그룹(130')에 포함된 각각의 게임서버(134, 135, 136) 각각에 대한 고유데이터DB(173')를 포함한다.As shown in FIG. 3, it can be confirmed that a new second game server group 130 'is added. And a new second cache server 150 'has been added correspondingly. At this time, the second individual data DB 170 'is connected to the second cache server 150', and the second individual data DB 170 'is connected to each game included in the second game server group 130' And a unique data DB 173 'for each of the
또한 상기 제2캐시서버(150')는 모든 게임서버들에 대하여 상기 공유데이터DB(180)로의 액세스를 매개할 수 있도록 상기 공유데이터DB(180)로도 연결된다.Also, the second cache server 150 'is connected to the shared
이때 동시 접속하는 유저수의 증가 또는 캐릭터의 증가로 인하여, 상기 캐시서버(150)나 상기 유저DB(171)의 부하가 늘어난 경우, 상기 제2캐시서버(150')에 대응하는 개별데이터DB(170')에 제2유저DB(171')를 추가할 수 있다.If the load of the
이와 같은 경우, 상기 유저DB(171)와 상기 제2유저DB(171')는 전체 유저를 나누어 일부 유저의 유저관련정보는 상기 유저DB(171)에서 관리하고 나머지 유저의 유저관련정보는 상기 제2유저DB(171')에서 관리하도록 할 수 있으며, 이와 같은 경우 상기 캐시서버(150)는 상기 유저DB(171)에 저장된 유저관련정보만을 게임서버들로 로드하고, 상기 제2캐시서버(150')는 상기 제2유저DB(171')에 저장된 유저관련정보만을 게임서버들로 로드할 수 있다.In this case, the
여기서 제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이상인 유저들의 유저관련정보만이 남게 된다.Here, the process of adding the second user DB 171 'is as shown in FIG. After adding the second user DB 171 'having the data obtained by copying the data of the
그에 따라 상기 유저DB(171)와 상기 제2유저DB(171')에는 유저관련정보들이 서로 중첩되지 않고 분산되어 저장된다. 이때 상기 유저DB(171)와 상기 제2유저DB(171')에 저장되는 유저관련정보들은, 상술한 바와 같이 유저 일련번호를 기준으로 나누어 저장되는데, 상기 유저DB(171)와 상기 제2유저DB(171')에 각각 저장되는 유저관련정보들의 유저 일련번호의 수는 일정비율(예를 들어 80 : 20)로 나누어 저장될 수 있다.Accordingly, the user-related information is distributed and stored in the
예를 들어, 상기 유저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인 유저관련정보만을 남기도록 할 수 있다. For example, when user-related information corresponding to 12500 user serial numbers is currently stored in the
한편, 위와 같이 복수의 유저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)가 공유할 수 있다. When the user-related information is distributed and stored in the
또는 위와 같이 게임서버(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가 포함되어 있는지 여부를 확인하여 포함되지 않은 경우 이와 같은 요청을 무시할 수도 있다. Alternatively, each of the
한편 위와 같은 복수의 유저DB(171, 171')를 이용하여 캐릭터를 생성하고, 캐릭터를 이용한 게임 플레이를 하는 방법을 구체적으로 설명한다. On the other hand, a method of creating a character using the plurality of
먼저 새로운 캐릭터가 생성되는 과정을 설명하면, 캐릭터를 생성하고자 하는 유저의 일련번호에 대응하는 캐시서버(150, 150')를 이용하여 캐릭터를 생성한다. First, a process of creating a new character is described. The character is created using the
이를 위하여 이미 설명한 바와 같이 상기 게임서버(131 내지 136)의 구성파일에 포함된 서버구성정보(상기 유저DB(171, 171') 각각에 저장된 캐릭터정보에 대응하는 유저의 일련번호의 범위에 대한 정보와, 각각의 일련번호의 범위에 대응하는 캐릭터정보의 로드를 매개하는 캐시서버(150, 150')의 정보를 포함)를 참조하여, 새로운 캐릭터를 생성할 캐시서버(150, 150')를 결정할 수 있다. For this, as described above, the server configuration information (information on the range of the user's serial number corresponding to the character information stored in each of the
또는 이미 설명한 바와 같이 상기 캐시서버(150)에는 상기 유저DB(171)에 저장되는 유저관련정보의 유저 일련번호 리스트들이 저장되고, 상기 제2캐시서버(150')에는 상기 제2유저DB(171')에 저장되는 유저관련정보의 유저 일련번호 리스트들이 저장될 수 있으며, 그에 따라 새로운 캐릭터를 생성할 캐시서버(150, 150')가 결정될 수 있다.Or the user serial number lists of the user related information stored in the
예를 들면, 도 4에 도시된 실시예에서, 유저 일련번호 999에 해당하는 유저가 새로운 캐릭터 생성을 요청하면, 유저 일련번호 1 내지 10000에 대응하는 유저관련정보가 저장되는 상기 유저DB(171)에 저장되는 정보를 상기 게임서버(131 내지 136)로 로드되도록 중개하는 상기 캐시서버(150)가 새로 생성되는 캐릭터의 캐릭터정보를 상기 유저DB(171)로 기록하고, 유저 일련번호가 10004에 해당하는 유저가 새로운 캐릭터 생성을 요청하면 상기 제2캐시서버(150')가 새로운 캐릭터의 캐릭터정보를 생성하고, 그에 대응하여 상기 제2유저DB(171')에 저장된 유저관련정보를 갱신한다. 4, when the user corresponding to the user serial number 999 requests creation of a new character, the
한편 각각의 캐릭터에는 유저에 대해서와 마찬가지로 일련번호가 부여된다. 이때 모든 게임서버(131 내지 136)에서 유일한 캐릭터 일련번호가 결정되도록 하기 위해, 캐릭터 일련번호는 각각의 유저에게 고유한 유저 일련번호를 변수로 하는 함수를 이용하여 생성되도록 할 수 있다. 예를 들어, 캐릭터 일련번호를 일정범위 내의 정수로 결정되도록 하고 유저 일련번호가 정수 k인 경우, 캐릭터 일련번호는 10k-9 내지 10k 사이의 범위로 결정되도록 함으로써, 다른 유저 일련번호를 갖는 다른 유저의 캐릭터 일련번호와 중첩되지 않도록 할 수 있다. 즉, 캐릭터 일련번호는 유저 일련번호를 변수로 하되, 변수가 변경되더라도 서로 중첩되는 범위가 없도록 결정된 함수를 이용하여 결정될 수 있다. 위에 예시된 함수를 이용하면 하나의 유저 일련번호에 대응하여 10개의 캐릭터 일련번호를 생성할 수 있으며, 곧 이는 한 사람의 유저는 최대 10개의 캐릭터를 생성할 수 있음을 의미한다. 따라서 생성 가능한 캐릭터의 수에 따라 함수를 변경할 수 있다. 물론 이때 캐릭터 일련번호를 결정하는 함수는 위에 예시된 바와 다른 함수가 될 수도 있다. On the other hand, each character is assigned a serial number as for the user. At this time, in order to determine a unique character serial number in all the
즉 정리하면, 상기 유저 일련번호와 상기 캐릭터 일련번호는 모두 일정한 범위의 정수 타입(int 형)의 변수로서, 상기 캐릭터 일련번호는 상기 유저 일련번호를 독립 변수로 하는 종속 변수이고, 상기 유저 일련번호를 이용하여 상기 캐릭터 일련번호를 산출하는 로직은 정수 타입 변수를 다시 정수 타입으로 반환하는 함수를 이용하되, 각각의 독립 변수에 대하여 중첩된 종속 변수를 생성하지 않는 함수이어야 한다.In other words, both the user serial number and the character serial number are variables of a certain integer type (int type), the character serial number is a dependent variable having the user serial number as an independent variable, and the user serial number The logic for calculating the character serial number using the function should be a function that returns an integer type variable again as an integer type but does not generate a superposed dependent variable for each independent variable.
이에 따르면, 각각의 캐시서버(150, 150')를 통해 생성되는 캐릭터 일련번호는 서로 중첩되지 않으며, 그에 따라 모든 게임서버(131 내지 136)에서 유일한 하나의 캐릭터 일련번호를 생성할 수 있다.According to this, the character serial numbers generated through the
그리고 유저 일련번호가 k인 임의의 유저가 최초로 캐릭터를 생성할 때에는, 위에 예시된 함수에서 10k-9를 캐릭터 일련번호로 정할 수 있고, 그 이후에 캐릭터를 생성할 때에는 10k-9 내지 10k의 범위 내에서 오름차순으로 캐릭터 일련번호를 검색하여, 해당되는 일련번호가 등록되지 않은 최초의 일련번호를 캐릭터 일련번호로 결정할 수 있다.When an arbitrary user having a user serial number k is to create a character for the first time, 10k-9 can be defined as a character serial number in the function exemplified above, and when the character is generated thereafter, the range is 10k-9 to 10k The character serial number is searched in the ascending order within the range of the character serial number, and the first serial number in which the corresponding serial number is not registered can be determined as the character serial number.
또한 위와 같이 생성된 캐릭터들을 이용하여 게임을 플레이하는 과정을 살펴보면, 유저 일련번호가 k인 임의의 유저가 상기 게임서버(131 내지 136) 중 어느 하나에 접속하면(게임서버(131)로 예시한다), 상기 게임서버(131)는 유저 일련번호 k를 확인하여 해당 유저 일련번호를 포함하는 유저DB(171 또는 171')에 연결된 캐시서버(150 또는 150')에서 해당 유저의 유저관련정보를 획득하거나 저장한다. 예를 들어, 도 3 및 4에 도시된 예에서 유저 일련번호가 10004인 유저가 상기 게임서버(131)에 접속하면 상기 게임서버(131)는 상기 제2캐시서버(150')를 통해 상기 제2유저DB(171')로부터 유저관련정보를 획득하여 게임을 진행한다. In addition, a process of playing a game using the characters generated as above will be described. When a user having a user serial number k accesses any one of the
한편 도 5에 도시된 바와 같이 새로운 게임서버그룹이 추가되지 않은 경우에도, 상기 캐시서버(150)의 부하가 과도한 경우, 새로운 제2캐시서버(150')만을 더 추가할 수도 있으며, 이 경우 각각의 캐시서버(150, 150')는 상기 공유데이터DB(180)와 상기 개별데이터DB(170)에 각각 모두 액세스 가능하다. On the other hand, in the case where a new game server group is not added as shown in FIG. 5, if the load of the
나아가 도 6에 도시된 바와 같이 본 발명의 다른 실시예에서는, 도 2에 도시된 바와 같은 본 발명의 게임서버 시스템(100)의 기본 구성에 커뮤니케이션서버(190) 등 다른 구성이 더 추가될 수 있다. 상기 커뮤니케이션서버(190)는 각각의 유저들 사이의 대화를 가능하게 하는 서버로서, 복수의 클라이언트(200)가 로그인한 유저 정보를 이용하여 유저 사이의 대화를 중개하는 역할을 수행한다. 이를 위하여 상기 커뮤니케이션서버(190)는 모든 유저들의 유저 정보를 보유하거나 상기 캐시서버(150)로부터 필요한 유저 정보를 제공받을 수 있다. 6, in another embodiment of the present invention, another configuration such as the
당업자는 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직 블록들 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로 구현할 수도 있음을 알 수 있다. 하드웨어와 소프트웨어의 이러한 대체 가능성을 분명히 설명하기 위하여, 다양한 예시적인 단계들을 주로 그들의 기능의 관점에서 상술하였다. 그러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약 조건들에 의존한다. Those skilled in the art will appreciate that the various illustrative logical blocks and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. In order to clearly illustrate this alternative possibility of hardware and software, various exemplary steps have been described above primarily in terms of their functionality. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.
당업자는 설명된 기능을 각각의 특정 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 그러한 구현의 결정이 본 발명의 범주를 벗어나도록 하는 것으로 해석하지는 않아야 한다.Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
상기 실시예는 본원발명을 구체적으로 설명하기 위한 예시일 뿐이며, 본 발명은 이들 실시예에 한정되지 않는다. 본 발명의 취지를 일탈하지 않는 범위에서 구성의 부가, 생략, 치환, 및 그 밖의 변경이 가능하다. 본 발명은 전술한 설명에 의해 한정되지 않고, 첨부한 청구범위의 범위에 의해서만 한정된다.The foregoing examples are only illustrative of the present invention in detail, and the present invention is not limited to these examples. Additions, omissions, substitutions, and other modifications can be made without departing from the spirit of the present invention. The present invention is not limited by the foregoing description, but is limited only by the scope of the appended claims.
100: 게임서버 시스템
110: 로그인서버
130: 게임서버그룹
150: 캐시서버
170: 개별데이터DB
180: 공유데이터DB
190: 커뮤니케이션서버100: game server system 110: login server
130: game server group 150: cache server
170: Individual data DB 180: Shared data DB
190: Communications Server
Claims (3)
상기 게임서버그룹마다 대응하여 구성되고, 상기 게임서버그룹에 포함된 각각의 게임서버에서 요구하는 고유데이터를 저장하는 고유데이터DB 및 각각의 유저에 대한 캐릭터정보가 저장되는 유저DB를 포함하는 복수의 개별데이터DB;
모든 게임서버에서 공통적으로 요구하는 공유데이터를 저장하는 공유데이터DB; 및
상기 공유데이터DB 및 하나의 개별데이터DB와 연결되고, 모든 게임서버와 연결되어, 각각의 게임서버의 상기 공유데이터DB 및 하나의 개별데이터DB로의 접근을 매개하는 캐시서버 복수 개를 포함하고,
상기 복수의 개별데이터DB 각각에 포함되는 유저DB 각각에는 서로 다른 비율로 서로 다른 유저 일련번호에 대응하는 유저관련정보들이 저장되는 것을 특징으로 하여 구성되는, 게임서버 시스템.A plurality of game server groups including at least two game servers for providing online games to clients;
A unique DB for storing unique data requested by each game server included in the game server group and a user DB for storing character information for each user; Individual data DB;
A shared data DB for storing shared data commonly requested by all game servers; And
A plurality of cache servers connected to the shared data DB and one individual data DB and connected to all the game servers to mediate access to the shared data DB and one individual data DB of each game server,
Wherein each of the user DBs included in each of the plurality of individual data DBs stores user related information corresponding to different user serial numbers at different ratios.
상기 게임서버 시스템은,
상기 클라이언트로부터 인증정보를 수신하여 유저 로그인을 수행하는 로그인서버를 더 포함하고,
상기 하나 이상의 캐시서버는,
상기 로그인서버와 연결되는, 게임서버 시스템.The method according to claim 1,
The game server system comprises:
Further comprising a login server for receiving authentication information from the client and performing a user login,
Wherein the at least one cache server comprises:
And is connected to the login server.
상기 개별데이터DB 각각에 대응하여 각각 연결된 캐시서버는,
대응하는 개별데이터DB에 포함된 유저DB에 캐릭터정보가 저장된 유저의 유저 일련번호 리스트를 저장하고, 임의의 유저 일련번호를 갖는 유저의 캐릭터정보 요청이 수신되면 수신된 임의의 유저 일련번호가 상기 유저 일련번호 리스트에 저장된 경우에만 상기 대응하는 개별데이터DB에 포함된 유저DB로의 접근을 매개하는, 게임서버 시스템.The method according to claim 1,
A cache server connected to each of the individual data DBs,
Storing a user serial number list of a user in which character information is stored in a user DB included in a corresponding individual data DB and, when a user character information request of a user having an arbitrary user serial number is received, And mediates access to the user DB included in the corresponding individual data DB only when stored in the serial number list.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180071953A KR101945673B1 (en) | 2018-06-22 | 2018-06-22 | Game server system considering system expansibility |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180071953A KR101945673B1 (en) | 2018-06-22 | 2018-06-22 | Game server system considering system expansibility |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120000136A Division KR101927090B1 (en) | 2012-01-02 | 2012-01-02 | Game server system considering system expansibility |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180077112A true KR20180077112A (en) | 2018-07-06 |
KR101945673B1 KR101945673B1 (en) | 2019-02-08 |
Family
ID=62921233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180071953A KR101945673B1 (en) | 2018-06-22 | 2018-06-22 | Game server system considering system expansibility |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101945673B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210119094A (en) | 2020-03-24 | 2021-10-05 | (주)완씨엔터테인먼트 | Communication traffice control method and communication traffice control method between clinet and game server based on network game |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060069063A (en) * | 2004-12-17 | 2006-06-21 | 한국전자통신연구원 | Database cache system |
KR100635194B1 (en) * | 2005-12-02 | 2006-10-16 | 주식회사 지오마인드 | System and method for changing game server by transferring gamer's property to another game server |
KR20070080363A (en) * | 2006-02-07 | 2007-08-10 | (주)아더스테크놀러지 | Integrated server system |
-
2018
- 2018-06-22 KR KR1020180071953A patent/KR101945673B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060069063A (en) * | 2004-12-17 | 2006-06-21 | 한국전자통신연구원 | Database cache system |
KR100635194B1 (en) * | 2005-12-02 | 2006-10-16 | 주식회사 지오마인드 | System and method for changing game server by transferring gamer's property to another game server |
KR20070080363A (en) * | 2006-02-07 | 2007-08-10 | (주)아더스테크놀러지 | Integrated server system |
Also Published As
Publication number | Publication date |
---|---|
KR101945673B1 (en) | 2019-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167366A1 (en) | Data processing method and device | |
US8024467B2 (en) | Distributed session listing and content discovery | |
JP6320409B2 (en) | Content acquisition source selection and management | |
US9781056B2 (en) | Content source selection in a P2P network | |
CN102217274B (en) | Systems and methods for data authorization in distributed storage networks | |
US20100146128A1 (en) | Decentralised multi-user online environment | |
US20120166611A1 (en) | Distributed storage system including a plurality of proxy servers and method for managing objects | |
US20160140028A1 (en) | Testing systems and methods | |
US7603362B2 (en) | Ordered list management | |
JP6580212B1 (en) | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM | |
CN105681294A (en) | Game service management method and game service management system | |
JP6712744B2 (en) | Network system, cache method, cache program, management device, management method and management program | |
CN105530311A (en) | Load distribution method and device | |
US9021051B1 (en) | Providing selective retrieval of data objects from a network service | |
KR101945673B1 (en) | Game server system considering system expansibility | |
CN109657801B (en) | Shunting method and device of recommendation system and readable storage medium | |
Hassanzadeh-Nazarabadi et al. | Laras: Locality aware replication algorithm for the skip graph | |
CN110891660A (en) | System and method for synchronizing data between computer devices | |
KR101927090B1 (en) | Game server system considering system expansibility | |
US10033817B2 (en) | Stateless technique for distributing data uploads | |
CN118176694A (en) | Method and system for distributed blockchain functionality | |
KR20230118380A (en) | Group signaure based federated learning mehod and system, and recording medium for performing the same | |
WO2018005244A1 (en) | Constraint based controlled seeding | |
JP2008090564A (en) | Content distribution system, identification information allocating method in content distribution system, identification information allocating device in content distribution system, and program for it | |
US11995074B2 (en) | Computing arrangement and method for determining relationships between identity data |
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 |