함수 포인터, std::bind, 람다식까지..
Babel 게임 플레이 과정에서, 발생하는 Event들을 일괄적으로 처리할 수 있는 자료구조(컨테이너와 관리자)를
만들고 싶었다.
예를 들면,
- Karma가 일정높이에 도달했을 시, 보스가 잠시 출현해 메시지 몇마디를 던지고 사라지는..
- 일정 조건을 만족했을 때, 화려한 이펙트와 함께 숨겨진 아이템을 획득하는..
과 같은 Plot Event 말이다.
구현을 위해, 우선 저장할 Event를 자료로 생각할 때, 필요조건들을 명확히 할 필요가 있었다.
내 생각에, Event란 해당 2가지 조건을 만족시키는 프로시져를 말한다.
만들고 싶었다.
예를 들면,
- Karma가 일정높이에 도달했을 시, 보스가 잠시 출현해 메시지 몇마디를 던지고 사라지는..
- 일정 조건을 만족했을 때, 화려한 이펙트와 함께 숨겨진 아이템을 획득하는..
과 같은 Plot Event 말이다.
구현을 위해, 우선 저장할 Event를 자료로 생각할 때, 필요조건들을 명확히 할 필요가 있었다.
내 생각에, Event란 해당 2가지 조건을 만족시키는 프로시져를 말한다.
- 일정한 순서(Sequence)를 가지고, 연속적으로 처리되는 복합 프로시져
- CallBack의 방식으로 호출되는 프로시져
유저 입력에 대해, 직접이 아닌 간접적 방식으로 호출되는 모든 Manage 프로시져를 말한다.
종류는, 액션이 될 수도 있고 메시지 출력, 파라메터 변경 등 모든 조작으로 느슨한 범위를 유지하고 싶었다.
왜냐하면 게임을 진행하는 과정에서,
댓글
댓글 쓰기