엠엠오알피지(MMORPG : Massively Multiplayer Online Role Playing Game, 네트워크를 사용하여 여러 명의 이용자가 인터넷에 동시 접속하여 같은 가상공간에서 상호작용하면서 각자의 역할을 수행하는 온라인게임)온라인게임의 일종입니다. 온라인게임의 구조를 간략하게 살펴보면, 서버(Server)컴퓨터에서 실행되고 있는 서버 프로그램에 의해 운영되는 하나의 커다란 가상사회가 있고, 게임 이용자들 각자가 자신의 컴퓨터에서 게임 클라이언트(Client) 프로그램을 실행시키면 게임 클라이언트 프로그램이 위 서버 프로그램에 접속하며, 그 결과 개개의 게임 이용자들은 게임 클라이언트 프로그램을 통해 위 가상사회에서 자신의 아바타(게임 속 캐릭터)를 조종하여 여러 가지 활동을 하고 게임을 즐기게 됩니다.

 

이외에도 데이터(Data)들의 집합체인 데이터베이스(Data Base)라는 것이 존재합니다.

 

앞서 서술했던 내용들을 그림으로 표현해보면 다음과 같습니다.

 

   

    41d313e362ad174d132f15fce932fb5a.png

   

 

   

보통의 온라인 게임은 위의 그림에 표시되어있는 대로 다음과 같은 구조를 가지고 있습니다.

 

Game Clients 클라이언트라는 프로그램을 통해서 실행되는 게임 이용자들의 컴퓨터들을 가리킵니다.

Server Computer 게임 이용자들과 DB에서 작성된 정보를 관리하거나 처리하는 역할을 담당합니다.

Login Server 로 그 인 작업을 제공하기 위해 필요한 Server Computer, 계정DB등이 해당됩니다.

Game Server 게임에 관련된 전반적인 작업을 제공하기 위해 필요한 Server Computer, Game DB등이 해당됩니다.

계정 DB 게임 이용자 계정정보 관련된 내용들이 저장되어있는 공간입니다.

Game DB 게임 관련 정보가 수록되어 있는 공간을 가리킵니다. Game DB는 게임회사의 필요에 따라 아이템DB, 홈페이지DB 등 여러 가지로 나뉘게 됩니다.

 

 

1. 게임이용자가 게임 클라이언트(Game Client) 프로그램을 실행시키면 클라이언트는 먼저 게임의 로그인 서버(Login Server)에 접속해서 게임이용자로부터 게임계정 정보를 입력 받아 로그인 서버로 전송하고, 로그인 서버는 전송 받은 계정정보를 데이터베이스에 질의를 해서 계정 정보가 정확한지 확인합니다.

 

2. 계정 정보가 일치하면, 로그인서버는 게임이용자에게 게임 서버(Game Server)를 선택할 수 있도록 합니다. 그러고나서 게임이용자는 자신이 선택한 게임 서버에 접속을 합니다.

 

3. 게임 서버에 접속이 되면, 게임 서버는 사용자의 계정 정보를 계정DB로부터 가지고와서 사용자의 캐릭터에 대한 정보를 Game DB에 질의하여 가져오고, 이를 클라이언트로 전송합니다.

 

4. 게임이용자는 자신의 캐릭터 중 하나를 선택하여 게임을 시작하거나 캐릭터가 없을 경우 새로운 캐릭터를 생성하여 게임을 시작합니다.

 

5. 게임이용자가 새로운 캐릭터를 생성했다면, 게임서버는 계정DB에 새로운 캐릭터에 대한 정보를 입력합니다.

 

6. 게임이용자가 선택한 캐릭터에 대한 정보 - 레벨, 능력치, 소유하고 있는 아이템, 퀘스트 정보, 위치 등 - 를 계정DB로 부터 읽어 들여 게임을 시작합니다.

 

7. 게임이용자가 게임을 진행하면서 바뀌는 정보 캐릭터의 경험치, 능력치, 아이템 이동 사항, 위치 정보 등 - 를 게임서버가 적절한 시점에 계정DB에 기록을 합니다.

cf. 게임이용자는 게임서버 내의 가상사회 또는 가상공간인 게임에서 게임개발자가 이미 게임DB(Game DB)에 설정해놓은 게임 내용대로 게임 활동을 해서 계정DB에 기록을 남길 수는 있어도 Game DB를 구성하고 있는 개별적인 데이터에는 직접적인 접근권한이 없습니다.

 

8. Game DB는 아이템DB, 홈페이지DB 등 필요에 따라 여러 개의 DB로 분산설계 되어있습니다. 그리고 앞에서 서술했던 계정DB라는 것이 존재합니다. 이처럼 아이템DB와 계정DB가 분리되어있는 구조이기 때문에 전체적인 아이템능력치는 모두 아이템DB에 저장되어있고, 게임 운영자는 Game DB중 하나인 아이템DB에 등록된 아이템 정보를 수정하는 명령어를 입력하고, 명령어가 입력되면 계정 DB내 캐릭터정보에 기록된 아이템의 내용이 변경되는 절차를 통해 계정 DB내에 저장되어 있는 다수의 게임 캐릭터가 보유하고 있는 해당아이템의 능력치를 조절합니다.

 

이러한 설계구조는 MMORPG(Massive Multiplayer Online Role Playing Game)가 대규모 다중사용자의 데이터를 관리해야하기 때문입니다