기계 준비와 사람 준비
지난주에 일하다가 질문을 받았습니다. 새로운 스포츠 타입 게임 컨텐트를 만들고 있는데 이전에 개발해둔 로딩 동기화를 사용해 로딩이 끝나는 시점에 모든 플레이어들이 이미 준비된 상태인데도 굳이 카운트다운을 유지해야 하느냐는 것이었습니다. 사실 이 결정을 지금 할 필요는 없다고 생각했습니다. 질문에 이미 답이 있었습니다. 로딩 동기화를 하는 이유는 각 유저들의 기기 사양이 달라 로딩이 완료되는 시점이 서로 다르기 때문입니다. 만일 이를 방치하면 사양이 좋은 기계를 사용하는 누군가는 먼저 게임을 시작해서 포인트를 획득하고 아직 그냥 서있을 뿐일 상대 캐릭터를 썰고 있을지도 모릅니다.
이런 상황을 없애기 위해 게임마다, 장르마다 서로 다른 방법을 사용하곤 합니다. 어떤 장르는 명시적으로 게임을 시작하기 전에 다른 사람들의 로딩을 기다리며 로딩 화면에서 채팅을 하도록 하기도 하고 어떤 게임은 일단 게임 안에 들어가 캐릭터를 움직일 수는 있지만 시작 지역을 벗어나지 못하도록 막아놓기도 합니다. 또 어떤 게임은 모든 장소를 돌아다닐 수 있지만 모든 사람들의 로딩이 끝나고 실제로 게임을 시작할 시점이 되면 이들을 모두 시작 위치로 불러들이고 이들이 방금 전까지 레벨에 가한 변경사항을 리셋한 다음 게임을 시작하게 하기도 합니다. 맨 마지막은 주로 FFA 타입 FPS 게임에서 많이 본 기억인데 이게 간단히 가능한 이유는 레벨에 변경될 만한 요소가 거의 없었기 때문일 것 같기는 합니다.
로딩 동기화를 통해 이미 모든 플레이어들은 로딩이 끝나 게임 화면이 나타난 즉시 공평한 상태에서 게임을 시작할 수 있었습니다. 로딩화면이 사라지고 게임이 시작되면 즉시 플레이어캐릭터를 움직여 게임을 시작해도 됐습니다. 여기에 선택적으로 카운트다운 위젯을 보여주고 이 카운트다운이 끝나는데 맞춰 시작 영역 밖으로 나가도록 구성할 수도 있었는데 질문은 이 지점에 있었습니다. 어차피 모든 플레이어들이 로딩 동기화를 통해 이미 공평한 상황인데 굳이 복잡하게 이 컨텐트를 위한 카운트다운 위젯을 발주하고 시작 영역 밖으로 나갈 수 없도록 제어했다가 카운트다운이 끝나는데 맞춰 길을 열어주는 제어를 할 필요가 있느냐는 것이었습니다.
맞는 말입니다. 굳이 모든 고객들로부터 2~3초의 시간을 매번 더 쓰게 할 필요는 적습니다. 플레이 테스트를 반복해보다가 카운트다운이 거추장스럽다고 느끼면 이를 없애버려도 됩니다. 일단 만들어 놓은 것을 게임에서 빼는 것은 꽤 쉬운 일입니다. 이를 만드는데 직접 관여한 사람들의 속은 그리 편안하지 않겠지만요. 하지만 일단 카운트다운을 만들어 유지해 보자고 가이드했습니다. 사실 로딩 동기화는 플레이를 공평하게 만드는 의도도 있지만 기술적으로 기계를 준비시키기 위해 필요한 과정입니다. 게임에 따라 먼저 시작한 플레이어와 나중에 로딩을 마치고 돌아온 플레이어의 동기화를 중간에 맞추는 건 꽤 고민이 필요한 일일 수도 있습니다. 그리고 카운트다운은 고객들 각각의 동기화를 맞추기 위해 필요합니다. 종종 로딩이 끝난 다음 명시적인 카운트다운이 없더라도 게임이 시작되었음을 짧은 이펙트나 사운드로 강조하는 경우가 있습니다. 이는 기술적으로는 별로 필요하지 않지만 게임을 기다리고 있었을 고객들을 동기화시켜 방금 전까지 기다리던 시간이 끝나고 이제부터는 게임을 시작해야 할 때임을 알려주기 위해 필요합니다.
마지막에 이 카운트다운을 뺄지 말지는 시간이 좀 더 지난 다음에 담당자 본인이 판단하시게 둘 겁니다. 하지만 일단은 사람을 동기화하기 위해 카운트다운을 만들어놓을 겁니다.