인터랙션 오브젝트는 어쩌면 통합이 능사가 아닐지 모른다
지금까지 비슷한 기능을 하는 여러 장치를 한 가지 시스템으로 통합하거나 처음부터 그렇게 설계해 왔는데 어쩌면 그게 늘 옳은 방법이 아닐지도 모르겠습니다.
2년 전 어느 여름날 갑자기 생각나서 인터랙션 오브젝트 설계 (1), 인터랙션 오브젝트 설계 (2), 인터랙션 오브젝트 설계 (3)을 작성한 적이 있습니다. 여러 회사마다 MMO 게임에 비슷한 역할을 하는 요구사항을 각기 다른 이름으로 정의하곤 하는데 여튼 핵심은 인게임에서 플레이어가 이 물체에 인터랙션을 하면 그 결과로 뭔가 또 다른 사건이 일어나고 설정에 따라 이 인터랙션과 이로 인한 사건이 다른 플레이어에게 동기화 되거나 동기화 되지 않거나를 선택할 수 있는 것입니다. 저 글들을 작성할 때는 한참 모바일로 출시된 디아블로 이모탈을 플레이 하고 있었는데 이 게임에서는 닫힌 문을 조작해서 열거나 보물상자 뚜껑을 열어 아이템을 먹고 또 독서대에 놓인 책을 펼치면 책 내용이 음성으로 재생되기도 합니다.
이런 물체들은 게임 전체에 걸쳐 다양한 모습으로 나타나지만 핵심은 인터랙션 가능한 상태로 세계에 나타났다가 플레이어가 다가가 인터랙션을 하고 인터랙션에 성공하면 상태가 변하며 미리 정해진 행동을 한 다음 다시 인터랙션 가능한 상태가 되거나 사라지는 등의 서로 다른 행동을 통해 인터랙션을 마무리하는 동작으로 정규화할 수 있다는 점입니다. 처음에는 근본적으로 인게임에 등장하는 여러 물체가 서로 다른 동작을 요구하지만 결국 이들의 동작을 정규화 해 보면 에셋과 인터랙션 규칙이 다를 뿐 서로 모두 똑같은 물체이기에 이들을 한 가지 요구사항으로 개발한 다음 계속해서 돌려 쓰면 된다고 생각하고 요구사항을 만들어 왔습니다. 최근에도 서로 다른 시점에 다른 요구사항에 기반해 개발된 여러 인터랙션 오브젝트처럼 보이는 물체들을 한 가지 확장성 있는 규칙에 기반해 통합하는 일에 관여한 적이 있는데 당연한 흐름이라고 생각했습니다.