함수 포인터, std::bind, 람다식까지..

Babel 게임 플레이 과정에서, 발생하는 Event들을 일괄적으로 처리할 수 있는 자료구조(컨테이너와 관리자)를 
만들고 싶었다.

 예를 들면, 
 - Karma가 일정높이에 도달했을 시, 보스가 잠시 출현해 메시지 몇마디를 던지고 사라지는..
 - 일정 조건을 만족했을 때, 화려한 이펙트와 함께 숨겨진 아이템을 획득하는..

과 같은 Plot Event 말이다. 

 구현을 위해, 우선 저장할 Event를 자료로 생각할 때, 필요조건들을 명확히 할 필요가 있었다.
내 생각에, Event란 해당 2가지 조건을 만족시키는 프로시져를 말한다.


  1.  일정한 순서(Sequence)를 가지고, 연속적으로 처리되는 복합 프로시져
  2.  CallBack의 방식으로 호출되는 프로시져


유저 입력에 대해, 직접이 아닌 간접적 방식으로 호출되는 모든 Manage 프로시져를 말한다.

 종류는, 액션이 될 수도 있고 메시지 출력, 파라메터 변경 등 모든 조작으로 느슨한 범위를 유지하고 싶었다.

왜냐하면 게임을 진행하는 과정에서, 
무엇보다 일정한 시퀀스에 의해 Event를 처리하는 매니저가 필요했기 때문이다.







(+참고) - http://carstart.tistory.com/183


댓글

이 블로그의 인기 게시물

(의역) Separating Axis Theorem(SAT) 설명