The APIs Design for the Database Management of the Network Game Using Design Patterns

디자인 패턴을 적용한 네트워크 게임의 DB 관리 APIs 설계

  • 김종수 (동의대학교 정보통신연구소) ;
  • 권오준 (동의대학교 공과대학 소프트웨어공학과) ;
  • 김태석 (동의대학교 공과대학 소프트웨어공학과)
  • Published : 2006.01.01

Abstract

Developing a network game that is serviced on the internet requires a lot of work, time and manpower. Therefore, it is important to design a game in such a way so that existing design codes could be used. The database for the multi-player network game is accessed from many clients. To manage the resource effectively, it is required to design the APIs to be minimized the database access and to be dealt with the related data efficiently. For this, it is needed to apply the object-oriented design for the related software modules. In the paper, we propose the design patterns of GoF to implement the APIs thatis needed to deal with the database resource. The database design through the analysis of some game's GUI has the advantage to create the optimized schema set more quickly, because it minimize the review step and the modification step of the database design generally. In addition, we apply to the design patterns of GoF for the APIs design of the server-side database. These reduce the times of the program call between the game server and the database server. These also make easily the maintenance for the already developed APIs, and it makes easily the addition of new APIs.

현재 인터넷에서 서비스되고 있는 네트워크 게임을 개발하는 경우, 개발 인원과 시간이 많이 투입되는 프로젝트이기 때문에, 게임 제작 시 기존에 작성되어 있는 코드를 재사용이 가능하도록 설계하는 것은 중요한 일이다. 게임에 사용되는 데이터베이스는 많은 클라이언트들이 접근하는데, 자원의 효율적인 관리를 위해서, 데이터베이스의 접근횟수를 최소화하고 데이터를 효율적으로 처리할 수 있는 API(application program interface) 설계가 필수적이다. 이러한 문제를 해결하기 위해 관련 소프트웨어 모듈의 객체지향적인 설계가 필요하다. 본 논문에서는 데이터베이스 자원을 다루는데 필요한 효율적인 API 구현을 위해 GoF(gang of four)의 디자인 패턴을 제안한다. 몇 개의 게임 GUI(graphical user interface) 분석을 통해 설계된 데이터베이스는 일반적인 데이터베이스 설계 단계에서 설계의 검토 및 수정을 최소화하여 최적화된 스키마 집합을 빠른 시간에 생성할 수 있다는 장점이 있고, 이것을 기초로 데이터베이스 서버 측 API 설계에 GoF의 디자인 패턴을 적용함으로써 게임 서버와 데이터베이스의 호출 횟수가 실질적으로 감소하고, 개발된 API를 손쉽게 유지보수 할 수 있으며, 새로운 API의 추가가 쉽다는 장점이 있었다.

Keywords