티스토리 뷰

◈  게임 프레임워크의 구성

 

1. 렌더링 시스템

2. Core Library ( 자료구조, 스크립트, 유틸 함수, 수학 함수 ... )

3. 게임 내 Scene 들의 생성/관리/소멸 처리

4. 게임 내 Entity 객체들의 생성/관리/소멸 처리

    ( 게임 내의 모든 캐릭터, Object, Effect ... )

5. 게임 내 Update 구조 구성

6. User 의 input 에 대한 반응 처리 구성

7. 개임 내 로직들의 처리 및 구성

8. 그 외

 

 

 

 

◈  Manager Base Framework

: 각각의 시스템을 관리하는 매니저들로 구성한다.

   ( 아래 그림은 예시로 여러 매니저들로 구성 )

  각각의 싱글톤 Manager 들이 하위 객체들의 관리를 담당한다.

  Client 요청에 따라 매니저는 등록된 객체들을 생성/삭제/수정 등의 작업들을 처리한다.

  메인 스레드에서 싱글톤 Manager 들의 생성/삭제/수정 등을 처리한다.

  매니저에 속한 객체에 접근하는 경우에는, 그 객체의 매니저를 통해서만 접근한다.

  

  Manager Base Framework 를 사용하는 패턴은 보통, 싱글톤 패턴 / 프록시 패턴 / 팩토리 패턴이 있다.

 

  [ ps. 매니저를 이용하여 관리하는 경우가 많은 것 같다. 매니저 베이스 프레임워크로 짜여진 게임 코드가 많지 않을까.? ]

 

 

Manager Base Framework

 

 


◈  Event Driven Framework

: 각 객체의 메시지를 Event 를 통해서 명령하는 방식이다.

  전역으로 생성한 이벤트 핸들러를 통해 Receiver 들에게 이벤트를 전달하여 동작을 제어하는 방식이다.

  이벤트 생성 주체에 대한 제약이 없기 때문에 서버/ 더미서버/ 클라이언트/ 유닛 테스트 등에 관계 없이 Receiver 객체의 동작을 명령할 수 있다.

  Receiver 들은 독립적으로 설계/구현/교체 가능하다.

  Receiver 들은 자신이 필요해서 등록한 이벤트만을 받게 된다.

  유연한 Client/Server 구조, GUI 설계 등에 유용하다.

  

  Event Driven Framework 는 옵저버 패턴이 있다.

  

 

 

 


◈  Scene Base Framework

: 게임의 상황에 따라 각각의 Scene 으로 구별하여 처리 한다.

  게임의 로직에 따라서 Scene 단위로 게임을 분리한다.

  각각의 Scene 은 자신에 해당되는 객체들과 로직/이벤트를 관리하며, 일정한 조건에 의해서 다른 Scene 으로 전이 된다.

  각각의 Scene 은 다른 Scene 과는 독립적으로 구성되기 때문에, Scene 의 구성 및 순서의 교체로 게임 로직의 변화가 가능하다.

  

  Scene Base Framework 는 전략 패턴, 스테이트 패턴 이 있다.

 

 

 


그 외 게임 프레임워크에 사용되는 아키텍처들은 더 있지만, 여러 프레임워크 아키텐처들의 조합으로 설계/구현된다.

위 세 가지가 범용적으로 사용되는 아키텍처들인데 현재 내가 분석하고 있는 게임 코드에 어떤 프레임워크가 적용되는지 매우 헷갈린다. 

아마 한 가지가 아니라, 시스템마다 여러 가지를 함께 쓰이는 듯 해서 조금 더 분석하기 어려운 듯 싶다.

 

 

댓글