이벤트를 씬으로 만들걸 그랬다
디아블로 이모탈의 룰렛 이벤트와 기간제 미션 이벤트 이야기를 하면서 하나 어리둥절했던 점은 이들이 이벤트 인터페이스를 씬으로 만들었다는 것이었습니다. 일단 제가 뭘 ‘씬'이라고 부르는지 잠깐 짚고 넘어가면 언리얼 UI의 '씬’을 말합니다. 거칠게 화면 전체를 덮는 UI를 씬, 화면 일부를 덮는 UI를 팝업이라고 생각하고 읽어나가도 상관 없습니다. 웬만한 모바일 게임의 이벤트 인터페이스는 팝업으로 만듭니다. 다들 비슷하게 팝업에 탭 여러 개가 있고 각 탭마다 서로 다른 이벤트를 표시합니다. 탭에는 빨간점에 따라 어느 이벤트로부터 보상을 받을 수 있는지 표시해 게임을 시작할 때 이벤트 인터페이스로부터 습관적으로 빨간점을 따라 가 보상을 받은 다음 계속하게 만듭니다.
이벤트 인터페이스를 팝업으로 만드는데는 몇 가지 이유가 있습니다. 먼저 이벤트 인터페이스는 게임을 시작할 때 빨리 떠야 하고 또 닫을 때 빨리 사라져 바로 게임을 조작할 수 있어야 합니다. 플레이어가 자의적으로 요청한 인터페이스는 약간 딜레이가 생기거나 로딩이 있어도 상대적으로는 괜찮습니다. 만약 수많은 리스트뷰로 가득한 업적 화면을 불러오는데 딜레이가 1초쯤 생겨도 양해해 줄 겁니다. 하지만 게임을 시작할 때 저 혼자 뜨는 이벤트 팝업에 이런 딜레이가 생기면 짜증이 좀 날 겁니다. 그래서 함부로 씬으로 만들 결정을 하기 어렵습니다. 씬으로 만들었다가 씬을 닫고 레벨을 보여주거나 다른 씬을 열 때 부담이 있습니다. 다른 이유로는 이벤트 팝업을 통해 하는 이벤트가 요구하는 화면 표시 기능에 뚜렷한 한계가 있기 때문입니다. 기껏해야 이미지, 텍스트, 프로그래스바, 빨간점, 탭 정도만 필요하기 때문에 팝업이 아닐 이유가 별로 없습니다. 이벤트 팝업에서 보상을 받아도 그럴싸한 이펙트를 잘 쓰지 않는 이유이기도 합니다. 팝업 위에서 보여주는데 명백한 한계가 있습니다.
반면 이벤트 인터페이스를 씬으로 만들 때 장점도 있습니다. 디아블로 이모탈의 이벤트 인터페이스는 언리얼에서 말하는 씬과는 거리가 있습니다만 이 인터페이스를 씬이라고 가정해 보겠습니다. 인터페이스 구성은 팝업과 별로 다르지 않습니다. 여러 탭이 나타날 자리가 있고 각 탭마다 다른 이벤트가 있습니다. 똑같이 빨간점을 따라 가 무의식적으로 보상을 먹게 해줍니다. 그런데 씬 위에서는 할 수 있는 일이 더 많습니다. 3D 모델과 애니메이션, 이펙트를 편안하게 사용할 수 있어 이벤트 인터페이스를 더 다양하게 꾸밀 수 있습니다. 단점으로는 이벤트 인터페이스 자체가 무거워져 진출입에 딜레이가 생길 거라는 점입니다. 그런데 디아블로 이모탈의 이벤트는 출석처럼 즉시 지급하는 이벤트보다는 인게임의 행동에 의한 결과에 보상을 지급하는 이벤트가 대부분이어서 이 인터페이스에 플레이어가 자의적으로 접근할 가능성이 높아 이 인터페이스가 좀 느리게 동작해도 상대적으로 관대한 취급을 받을 가능성이 있습니다.
이전에 참여한 프로젝트에서 비슷한 고민을 했었습니다. 처음 이벤트 인터페이스를 만들 때는 당연히 남들도 다 그렇게 하니까 별 고민 없이 팝업으로 개발했는데 시간이 지나 이벤트 요구사항이 다양해졌습니다. 누군가는 이벤트 팝업 위에서 3D 주사위를 굴리고 싶어했고 다른 누군가는 말이 판 위를 이동하는 보드게임을 만들고 싶어했습니다. 결국 이 요구사항은 모두 꽤 손이 많이 가는 2D 인터페이스를 통해 구현할 수밖에 없었는데 언리얼에서 팝업 위에 편안하게 표시할 수 있는 에셋에 뚜렷한 한계가 있었기 때문입니다. 엔지니어와 함께 이 요구사항을 고민하다가 이럴 줄 알았으면 처음에 이벤트 인터페이스를 씬으로 만들 걸 그랬다는데 의견을 같이했습니다. 미래에는 이 경험을 바탕으로 바로 씬으로 시작하기보다는 그 시점의 요구사항을 다시 평가해서 결정할 것 같습니다. 하지만 이전보다는 이벤트 인터페이스를 씬으로 만드는 방법을 좀 더 긍정적으로 생각하며 결정할 겁니다.