반가워요! 저는 Oblivion라고 불러주세요. 간단하게 제 소개를 하자면, 저는 원래 프로그래밍, 스크립팅, 모딩을 하던 경험이 있습니다. 오랫동안 대규모 스케일의 RTS에 굶주려왔던 제게 생츄어리 프로젝트는 진수성찬이나 다름없었죠. 생츄어리에서 제 작업은 플레이어들이 “게임 시작” 버튼을 누른 뒤에 상호작용하는 거의 모든 것들을 다룹니다. 스크립트나 아트 에셋을 끼워넣기 위해 약간의 코드를 작성하는 것부터 아예 완전히 다른 메커니즘을 처음부터 새로 만드는 것까지 전부요.
유저들은 수천 개의 유닛들과 동시에 상호작용하며, 다양한 종류의 명령을 내릴 수 있도록 해야 합니다.
플레이어가 상호작용이 빠르고 편하다고 느낄 수 있어야 합니다. 최소한의 입력을 사용해서도 그들의 군대가 복잡한 행동을 할 수 있도록 말이죠.
호스트와 클라이언트 양쪽 모두를 위해 가볍고 잘 작동해야 합니다. 한 개의 유닛을 움직이던 2000개의 유닛을 움직이던 게임이 느려지는 일이 없어야 하니까요.
상호작용은 분명해야 합니다 – 플레이어가 유닛을 클릭할 때 일어날 거라고 생각하는 일이 거의 그대로 일어나거나, 적어도 일관성이 있어야 하죠.
플레이어가 수천의 다양한 유닛들을 지휘하고 그들의 다양한 특성과 능력을 활용하는 경험을 온전히 느낄 수 있어야 합니다.
제가 가장 먼저 맡은 작업 중 하나는 맵 전체에 퍼져있는 동적 크기의 그리드를 만드는 것이었습니다. 이 망의 가장 기초적인 기능은 플레이어들이 기지 건설을 할 수 있도록 하는 것이었죠. 그리드는 빠르고, 반응성도 좋았으며, 플레이어들이 효과적으로 기지 설계를 할 수 있도록 도와주었습니다.
여기 나온 사진은 그리드 안에 포함된 셀들의 묘사입니다.


그리드와 함께 만들어진 것은 우리 팀이 ‘설치물 유령’이라고 부르는 것이었습니다. 플레이어들이 만들고자 하는 건물들의 가상 대표물이죠. RTS 플레이어들이라면 아마 이런 기능에 익숙할 겁니다 – 플레이어들이 만들고자 하는 건물이 어떻게 배치될지 알 수 있는 프리뷰를 제공하는 역할을 하니까요. 플레이어들은 그리드 위에 건물을 배치하고, 관리하고, 움직이고, 업데이트하고, 복사하는 등등의 활동을 할 수 있습니다. 또한 설치물 유령들의 선과 다른 형상들을 나타내고, 건설 계획의 템플릿을 저장하거나 설치할 수도 있죠.
여기 나온 사진은 다양한 설치물 유령들입니다. 모든 스크린샷들은 개발 도중에 촬영된 것이고, 현재에 와서는 많은 변화를 겪었다는 점을 참조해주세요.

그리드와 설치물 유령들은 정교하게 연결되어 있습니다. 모든 플레이어들은 그들의 설치물 유령을 관리할 수 있는 로컬 버전의 그리드를 가지고 있으니까요. 그리드는 여러 요소를 고려해 업데이트됩니다. 설치물 유령을 그리드 위에 올리는 것은 해당 유령을 취소하지 않는 이상 설치물 유령이 위치한 셀을 고정하게 됩니다. 명령을 취소해 유령들을 제거하면 다시 잠금이 풀리게 되고요. 이 셀들 위에 구조물과 유닛이 존재하는가의 여부도 셀의 잠금을 결정하는 요인이 될 수 있습니다.
전장의 안개 안에 있는 그리드 셀은 실제 건물이 있다고 해도 개별적으로 로컬 버전에 업데이트되지 않습니다(유령들을 정찰 목적으로 사용하는 것을 막기 위해서입니다) 마지막으로, 맵의 지형 또한 그리드 셀에 영향을 미칩니다. 대부분의 경우, 이것은 로컬 그리드들 사이에서 똑같이 적용됩니다.
이런 메커니즘들 모두가 기지 건설을 자연스럽게 플레이어의 경험 중 하나로 통합하면서도 숨겨야 하는 정보는 숨기기 위해 기능합니다.
이런 도구들을 활용해, 플레이어들은 빠르고 편하게 짓고자 하는 기지를 건설할 수 있죠.
이제, 이 모든 것들을 유닛 명령과 묶어야 합니다.
당신은 전장에서 사령관입니다. 그렇기에, 당신은 하나, 수백, 또는 수천의 유닛과 건물을 다양한 명령을 내려 지휘해야 하죠. 이런 명령들은 단순한 ‘멈춤’ 명령에서부터, 모든 일꾼 유닛들이 자원을 회수하고, 그들의 진로에 있는 유닛이나 건설 또는 생산에 참여하도록 하는 ‘보조 이동’처럼 여러 명령을 겹쳐 복잡한 행동을 수행하게 하는 명령까지 다양합니다. 이런 명령들은 대기열에 등록해 연속해서 사용할 수 있고, 플레이어들이 연속적인 명령을 계획해 유닛들이 이를 자동적으로 수행하도록 하는 것이 가능합니다.
플레이어들은 유닛 명령을 활용할 때 다양한 기능을 같이 쓸 수 있습니다. 명령들은 대기열에서 쉽게 관리되거나 제거될 수 있고, 목표물들을 재설정하거나, 위치를 마우스로 드래그해 바꾸는 것도 가능합니다. 명령에 유닛을 더하거나 빼는 것도 손쉽게 이루어지고요.
이런 기능들 모두가 우리의 테크니컬 아티스트, Ozonex(그의 개발자 로그는 여기서 확인하실 수 있습니다)가 디자인한 웨이포인트를 통해 깔끔하게 플레이어 여러분들에게 표시됩니다.
생츄어리는 드넓은 전장에서 여러분들의 유닛을 통제하는 새롭고 창의적인 방법들을 도입하고자 합니다. 킥스타터를 시작하기 전에는 작은 비밀로 남겨둘 계획이지만, 이 방법들은 이전에는 전례가 없던 수준으로 여러분들의 군대를 통제할 수 있도록 해줄 수 있을 겁니다. 지금은, 그곳까지 다다르는 과정에 대해 더 많은 개발자 로그를 작성하고자 합니다.
