현재 인터넷에서 서비스되고 있는 실시간 네트워크 게임을 개발하는 경우, 개발 인원과 시간이 많이 투입되는 프로젝트이기 때문에, 게임 제작시 기존에 작성되어 있는 코드를 재사용이 가능하도록 설계하는 것은 중요한 일이다. 코드의 재사용을 극대화하기 위해서 연구되고 있는 분야가 디자인 패턴과 관련한 분야인데, 보다 효율적인 게임 제작을 위해 잘 정의된 디자인 패턴을 이용한 다양한 설계기법과 그 적용 예가 개발자에게 제공된다면, 보다 나은 게임 API(Application Programming Interface)를 개발할 수 있고, 또한 API를 바탕으로 한 게임 개발 전용 프레임워크의 개발이 가능하다. 본 논문에서는 2종류의 네트워크 턴 게임 설계와 구현에 있어서, GoF(Gang of Four)가 제안한 디자인 패턴들을 적용하였다. 이를 통해서 네트워크 턴 게임 제작에 있어서 기존에 개발된 게임 API를 효과적으로 재사용하는 효율적인 설계 기법을 제안한다.
현재 인터넷에서 서비스되고 있는 실시간 네트워크 게임을 개발하는 경우, 개발 인원과 시간이 많이 투입되는 프로젝트이기 때문에, 게임 제작시 기존에 작성되어 있는 코드를 재사용이 가능하도록 설계하는 것은 중요한 일이다. 코드의 재사용을 극대화하기 위해서 연구되고 있는 분야가 디자인 패턴과 관련한 분야인데, 보다 효율적인 게임 제작을 위해 잘 정의된 디자인 패턴을 이용한 다양한 설계기법과 그 적용 예가 개발자에게 제공된다면, 보다 나은 게임 API(Application Programming Interface)를 개발할 수 있고, 또한 API를 바탕으로 한 게임 개발 전용 프레임워크의 개발이 가능하다. 본 논문에서는 2종류의 네트워크 턴 게임 설계와 구현에 있어서, GoF(Gang of Four)가 제안한 디자인 패턴들을 적용하였다. 이를 통해서 네트워크 턴 게임 제작에 있어서 기존에 개발된 게임 API를 효과적으로 재사용하는 효율적인 설계 기법을 제안한다.
Developing a real time 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 area which is being studied to maximize the reusability of the existing design co...
Developing a real time 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 area which is being studied to maximize the reusability of the existing design code is related to design patterns. If the developers are given various design techniques and application examples that use well defined design patterns, they will be able to make better game API(Application Programming Interface) and to invent a framework for game development based on this API as well. In this paper, the design patterns that the GoF(Gang of Four) proposed have been applied to develop and implement two kinds of network turn games. In the process, efficient design techniques will be proposed for the effective reuse of the existing game API.
Developing a real time 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 area which is being studied to maximize the reusability of the existing design code is related to design patterns. If the developers are given various design techniques and application examples that use well defined design patterns, they will be able to make better game API(Application Programming Interface) and to invent a framework for game development based on this API as well. In this paper, the design patterns that the GoF(Gang of Four) proposed have been applied to develop and implement two kinds of network turn games. In the process, efficient design techniques will be proposed for the effective reuse of the existing game API.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
제공한다. 게임 소프트웨어를 객체 지향적으로 설계하기 위해 사용될 수 있는 여러가지 패턴들이 있지만, 이번 연구의 대상은 GoF가 제안한 디자인 패턴을 어떻게 네트워크 게임 개발에 적용할 것인가 하는 것이다. GoF가 제안한 여러가지 디자인 패턴들이 있지만 본 논문에서는 3개의 큰 디자인 패턴 분류인 생성, 구조, 행위패턴에 속하는 다음의 패턴들을 적용한다.
본 논문에서 카드를 사용하는 두 개의 게임을 대상으로 GoF의 디자인 패턴을 적용하여 구현된 두 개의 네트워크 게임을 통해서, 새로운 게임을 개발하거나 기존에 개발된 게임 소프트웨어를 추가적으로 개발하기 쉬운 최적의 설계 기법을 제안하였다. 또한 게임 API 설계의 여러 부분에서 이미 검증된 다양한 디자인 패턴이 적용될 수 있다는 것을 알 수 있었다.
본 논문에서는 사용자가 자신의 순서를 기다려서게임하는 네트워크 턴 게임 개발에 있어서, 객체 지향 패러다임을 적용하여 이와 유사한 게임 제작에 필요한 API를 제작하였다. 소프트웨어 개발에 있어서 객체 지향 패러다임을 적용하는 이유는 여러 가지가 있지만, 분산된 개발을 가능하게 하고, 기존에 개발된 코드의 재사용이 쉽다는 장점이 있기 때문이다.
본 논문의 목적은 게임 개발자들이 네트워크 턴 게임을 설계하고 구현하는데 있어서 효과적으로 사용할 수 있는 GoF의 디자인 패턴을 제시한다. 그래서 이미 검증된 디자인 패턴들로 만들어진 게임 API 들이 애플리케이션의 추가적인 개발이 있을 시에 효과적으로 재사용할 수 있음을 보인다.
현재도 시스템 개발에 있어서, 여러가지 다양한 디자인 패턴 개발과 적용에 대한 연구가 이루어지고 있지만, 본 논문에서는 여러가지 다양한 디자인 패턴들 중에서 지금까지 검증된 디자인 패턴이라고 할 수 있는 GoF (Gang of Four) 가 제안한 디자인 패턴을 위주로 설계 최적화 기법을 제안한다. 본 논문의 주된 연구 범위는 GoF가 제안하고 있는 생성패턴 (Creational Patterns), 구조패턴 (Structural Patterns), 행 위 패 턴 (Behavioral Patterns) 이 다[5].
가설 설정
카드와 (b)의 카드는 형태와 모양이 틀리고, 게임에서 사용되는 카드의 개수도 다르다. 그리고 게임에 참여하는 사용자의 경우도 그림 (a)의 게임룸은 3명, 그림 (b)의 게 임룸은 2명 에서 5명 이 참여할 수 있다.
제안 방법
게임 소프트웨어를 객체 지향적으로 설계하기 위해 사용될 수 있는 여러가지 패턴들이 있지만, 이번 연구의 대상은 GoF가 제안한 디자인 패턴을 어떻게 네트워크 게임 개발에 적용할 것인가 하는 것이다. GoF가 제안한 여러가지 디자인 패턴들이 있지만 본 논문에서는 3개의 큰 디자인 패턴 분류인 생성, 구조, 행위패턴에 속하는 다음의 패턴들을 적용한다.
MVC는 기존에 개발된 클래스의 유연성과 재사용성을 증대시킨다. MVC에서 뷰와 모델 간에 자료를 요청하고 보내는 프로토콜을 만들어 종속성을 없앴으며, 뷰는 외형이 모델의 상태를 반영하도록 작성하였다[3丄
그리고 객체지향 패러다임이 가지고 있는 분산 개발과 소프트웨어 재사용이라는 측면에서 네트워크 게임을 구성하는 최적의 설계기법을 제시한다.
본 논문에서 구현된 네트워크 게임의 설계에 있어가장 큰 구조는 클라이 언트/서버 기반의 다계층 구조(multi-tier architecture)다. 이 구조는 일계층(one- tier) 이나 이계층(two-tier) 구조에 비해 광범위한 데이터를 읽기 쉽게 만들어 주고, 네트워크를 통한 접근을 쉽게 하고, 데이터 은닉을 용이하게 한다는 장점이 있다(2).
본 논문에서는 네트워크 게임 설계에 있어서, GoF 가 제안한 디자인 패턴을 다양하게 적용하였다. 그리고 객체지향 패러다임이 가지고 있는 분산 개발과 소프트웨어 재사용이라는 측면에서 네트워크 게임을 구성하는 최적의 설계기법을 제시한다.
클라이언트 테스트에 웹 브라우저가 가지고 있는 자바 콘솔을 사용할 수도 있지만, 브라우저를 통한 실행 결과 확인은 많은 시간이 소요되기 때문어), 그림 13과 같이 JDK가 제공하는 애플릿뷰어(Appletviewer) 를 사용해서 확인하였다.
대상 데이터
자바의 어댑터(Adapter) 클래스가 구조 패턴을 적용한 예다. 본 논문에서 연구 대상이 된 구조 패턴은 어댑터 (Adapter), 데코레 이 터 (Decorator) 패턴이다. 어 댑터 패턴은 다양한 형태의 Card클래스 구현에 적용 가능하고, 데 코레 이 터 패 턴은 카드를 꾸미 기 위한 클래스 구현에 적용 가능하다.
설계 최적화 기법을 제안한다. 본 논문의 주된 연구 범위는 GoF가 제안하고 있는 생성패턴 (Creational Patterns), 구조패턴 (Structural Patterns), 행 위 패 턴 (Behavioral Patterns) 이 다[5]. 디 자인 패턴을 사용함으로써, 애플리케이션의 구조를 간단하면서 이해하기 쉽게 만들 수 있다.
이론/모형
그리고 특히 여러 개의 애플리케이션을 한 클라이언트에게 서비스하는 경우에 같은 자원을 공유할 수 있어서 자원의 효율을 극대화 할 수 있다. 대기실의 GUI를 구성하고 있는 여러가지 컴포넌트들 중에서 같은 역할을 하는 컴포넌트도 추상화 팩토리패턴이 적용되었다.
스트림 모델을 사용할 수 있다. 본 시스템 에서는 입출력을 다루기 위한 스트림 모델로 Object Inputstream, ObjectOutputStream을 사용하였다.
성능/효과
그리고 전체 설계의 구조를 형성하기 위해 사용된 구조 패턴은 카드 객체가 일으키는 이벤트의 구현, 게임의 각 컴포넌트들이 일으키는 이벤트의 구현, 서버의 플랫폼이 다를 경우와 원시 API를 참조해야 하는 클래스 설계 그리고 메모리 소모가 많은 여러 가지 그림을 처리해야 할 경우 적용할 수 있었다.
쉬운 최적의 설계 기법을 제안하였다. 또한 게임 API 설계의 여러 부분에서 이미 검증된 다양한 디자인 패턴이 적용될 수 있다는 것을 알 수 있었다. GoF의 생성패턴, 구조패턴, 행위패턴들은 네트워크게임 API 설계에 있어서 유용하게 적용되었다.
마지막으로, 객체간의 기능 배분과 구현에 사용된 행위 패턴은 화면 입출력에서 각 GUI 컴포넌트가 일으키는 이벤트 처리나 클라이언트와 서버 프로그램에서 실시간으로 생성되는 Rooms 객체와 Users 객체를 생성하고 필요한 정보를 삽입, 수정, 삭제하는 곳에서 이용될 수 있었고, 또 다양한 객체가 발생하는 이벤트를 처리나 네트워크 연결을 통한 패킷의 송수신에 적용할 수 있었다.
먼저 객체의 생성에 관련하는 생성 패턴은 여러 종류의 네트워크 게임 제작에서 특성에 맞는 다양한 GUI의 구현이나 게임 룸 설계와 종류가 많고 가변적일 수 있는 카드 객체를 구성하고, 실행 시에 새로운 카드의 삽입이나 삭제가 필요한 부분과 게임의 진행을 총괄하는 서버의 전체 자원을 효율적으로 관리하기 위해 적용할 수 있었다.
사용하였다. 본 시스템에서 구현된 두 개의 게임 서버는 클라이언트와의 통신을 위해서 정의된 프로토콜 구현에서도 많은 유사성을 보였다. 각각의 서버는 클라이언트가 요청한 자료를 효율적으로 분배해주고, 회원 정보와 같은 자료를 데이터베이스에 기록하고 읽어오는 역할을 한다.
경우가 많다. 소프트웨어의 구현에 따르는 문제를 해결하기 위해서 디자인 패턴을 적용함으로써, 시스템의 구현에서도 분산작업과 재사용에 효과적이라는 것을 알 수 있었다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.