조건과 이벤트
게임 상에서 어떤 행동을 하기 위한 조건은 시간 개념을 포함하는지 여부에 따라 이벤트로 구분될 수 있습니다.
![조건과 이벤트](/content/images/size/w1200/2024/10/OIG1-20.jpg)
최근에 이전까지 개발된 게임 상에서 어떤 행동을 할 때 확인해야 할 조건들이 서로 다른 기능에 흩어져 있어 엔지니어들이 이들을 단일 기능으로 통합하기를 원해 작업을 지원한 적이 있습니다. 제 관점에서는 플레이어가 어떤 행동을 요청할 때 이 행동을 해도 되는지 확인하기 위한 여러 가지 조건들은 보통 게임 전체에 걸쳐 거의 똑같은 조건 목록이 사용되곤 해 왔기 때문에 어쩌다 보니 이 기능들이 서로 다른 시점, 서로 다른 사람에 의해 개발되다 보니 곳곳에 서로 다른 기능에 근거해 흩어져 있었고 이를 하나의 목록과 하나의 데이터에 기반한 기능으로 정리하면 되는 완전히 말이 되고 또 완전 단순한 일이라고 생각했습니다.
여느 게임에서 비슷한 기능을 사용하려 할 때 항상 사용되던 기능을 나열한 메모를 만들어 놓은 다음 게임 상의 여러 기능에 걸쳐 흩어져 있는 조건들을 찾아 살펴봤는데 제가 미리 만들어 놓은 목록과 별로 다르지 않았습니다. 다른 점이 있다면 저는 모든 조건을 하나의 목록에 나열해 놓고 있었던데 비해 게임의 각 기능이 확인하는 기능들은 각 기능이 개발될 때 요구사항에 언급된 기능만을 확인하고 있었다는 점입니다. 이 상태로도 겉보기에 게임은 아무 문제 없이 동작하겠지만 조건을 추가하거나 삭제하려 할 때 필요 이상으로 일이 복잡해질 수 있었고 또 게임이 계속해서 개발되어 감에 따라 같은 값을 과거의 방식으로 평가하거나 최신 방식으로 평가하는 차이에 의해 의도하지 않은 결함이 생길 가능성도 있어 시간이 더 흐르기 전에 이들을 통합하는 것은 의미 있는 의사결정이었습니다.