Observer 패턴을 적용한 MMORPG의 파티 시스템 아이템 배분 방법

The Item Distribution Method for the Party System in the MMORPG Using the Observer Pattern

  • 김태석 (동의대학교 공과대학 컴퓨터.소프트웨어공학과) ;
  • 김신환 (대구대학교 정보통신대학 정보통신공학부) ;
  • 김종수 (동의대학교 게임연구소)
  • 발행 : 2007.08.30

초록

인터넷을 이용하는 다양한 게임 장르 중에서 대규모의 게임 유저들이 이용하는 게임 장르인 MMORPG(Massively Multi-player Online Role-Playing Game)를 개발하기위해서는 많은 기술들이 필요하다. 특히 분산 작업의 효율을 높이기 위해서 C++와 같은 객체지향언어가 사용되는데, 대규모의 게임을 만들 때 객체지향개념을 충분히 활용할 수 있는 설계기법이 유용하다. GoF(Gang of Four)의 디자인 패턴에는 소프트웨어 분산 설계에 응용할 수 있는 다양한 패턴이 있는데, 게임 유저들 사이에 커뮤니티를 형성하기 위한 파티 시스템 설계에 Observer 패턴을 이용하면, 필요한 새로운 클래스의 추가나 유지보수를 쉽게 할 수 있다. MMORPG 게임 내에서 파티 사냥 시스템은 게임 이용자들의 커뮤니티를 형성하기 위해 자주 이용되는 중요한 시스템이다. 파티 사냥 시스템에서 중요하게 고려해야 할 사항은 파티 사냥 결과로 얻어지는 획득물과 경험치를 다양한 레벨의 이용자들에게 공평하게 나누어 주는 것이다. 시스템의 유지보수적인 측면을 고려한 파티 사냥 시스템을 구현하기 위하여, 본 논문에서는 GoF의 디자인 패턴 중 Observer Pattern을 이용한 기법을 제안하고, 제안된 기법이 C++언어가 가지는 장점인 동적메모리 할당과 가상 메소드 호출을 이용하여 프로그램 실행 시에 실시간으로 객체를 변경하고 새로운 클래스를 추가하는데 효율적이며, 시스템을 유지 보수하는데 장점이 있음을 보인다.

We need various methods to develop MMORPG that is game genre which many users use among various game genre using Internet. Specially, to heighten efficiency of distributing work, Object-oriented language such as C++ is used and we need design techniques that can take advantage of enough object-oriented concept when making large-scale game. There is various pattern that can apply in software breakup design in GoF's design pattern for these design techniques. If you apply Observer pattern to Party System Design for forming community between game users, you can easily add new class and maintain system later. Party Play is one of the important system that is used to form game users' community in MMORPG games. The main point that must be considered in Party-Play-System is to divide evenly experience value and acquisition that is got by Party-Play among users according to each user's level. To implement Party Play System that consider maintenance of system, in this paper, we propose a method using GoF's Observer-Pattern, showing you that proposed method which has advantage to dynamic memory allocation and to virtual method call can be used usefully to change object to real time at program run and to add new class and to maintain system new.

키워드