본문 바로가기

프로그래밍/기타정보

게임 엔진 프레임워크

http://hyeonstorage.tistory.com/99


BASE Framework 


Core Layer ( 자료 구조 , 알고리즘, 기초 함수들)


Rendering Englne


게임로직, 네트워크 스크립트 


게임 클라이언트, 툴


스트레티지 (전략) 패턴

MVC 패턴 

이 기본이 되어 설계


각 기능의 Manager 프레임워크

각각의 싱글톤 메니져 들이 하위 객체들의 관리를 담당

메니저는 등록된 객체들을 생성/ 갱신 삭제들의 작업처리

싱글톤, 프록시패턴, 팩토리 패턴


엔진 프레임워크 아키텍쳐

메인스레드 

오브젝트 메니져

신메니져

엑터메니져

UI메니져

사운드메니져


이벤트 이키텍쳐 

리시버된 이벤트를 이밴트 핸들러에 저장해서 이밴트핸들러 업데이트를 통해 처리함

옵저버 패턴



게임 프레임워크

UIScene(UI인터페이스) -> 인게임 Battle Scene(게임로직)


정리

게임 디자인 패턴

 옵저버 패턴

  메시지 발신자와 메시지 핸들러 , 메시지 리시버로 구성 

 이벤트 수신을 등록한 객체에게만 메시지를 전달 

 예 ) Event Driven Framework, GUI

 팩토리 패턴 

 객체를 직접 생성하지 않고 , 팩토리 객체를 통해서 생성 

 클라이언트가 원하는 객체를 팩토리가 대신 생성 / 소멸해줘서 객체 생성 / 소멸의 추상화 

 예 ) 매니저 클래스를 통한 객체들의 생성


 MVC 패턴 

 모델 - 뷰 - 컨트롤러로 역할에 따라 클래스를 분리 

 로직 / 렌더링 / 연결을 각각의 역할에 따라 독립적인 Layer 로 구별 

 예 ) MFC


 스테이트 패턴 

 현재의 상황 ( 스테이트 ) 에 따라서 동작을 정의 

 현재의 상황에서 필요한 이벤트와 동작들만 처리하고 , 조건 에 따라 다른 동작으로 전이     

 예 ) FSM, Scene Base Framework


 어댑터 패턴 

 인터페이스가 다른 객체를 랩핑하여 추상화 

 서로 구조 / 인터페이스가 다른 객체들을 같은 종류의 객체들로 처리 가능하게 함 

 예 ) 외부 UI 라이브러리와 자체 라이브러리 통합


 데코레이터 패턴 

 생성된 객체에 런타임중에 특별한 기능들을 부착 

 동적으로 객체의 추가 기능들을 부착 / 변경 / 삭제가 가능 

 예 ) 게임브리오의 프로퍼티 클래스들 포로토타입 패턴 

 기존에 존재하는 객체를 복사하여 새로운 객체를 생성 

 예 ) 스타크래프트의 유닛 생산