도시 건설 게임에서 건물은 대개 아이콘입니다. 놓으면 숫자가 올라가고, 그다음부터는 쳐다볼 일이 없습니다. Little City Story는 처음부터 그러기 싫어서 시민 한 명으로 도시를 걸어 다니고 건물 안으로 들어갈 수 있게 만들었습니다. 그런데 문을 열고 나면 더 큰 문제가 생깁니다. 들어갔는데 할 게 없으면 한 번 구경하고 다시는 안 들어갑니다. 문을 연 게 오히려 손해입니다.

25곳 중 15곳만 채워져 있었다

방문 가능한 실내는 상점, 카페, 식당, 사무실, 헬스장, 관공서, 학교, 진료소, 도서관, 문화회관, 우체국, 경찰서, 소방서, 공장, 창고, 군 지휘소, 군 생활관, 격납고, 방송국, 편집국, 요금소, 변전소 통제실, 지하철역, 주차장, 놀이공원 게임존까지 25종입니다.

이 중 미니게임이 있는 곳은 15곳이었습니다. 나머지 10곳은 들어가면 "학습", "근무" 같은 버튼이 있고 누르면 결과 숫자만 나왔습니다. 나쁘지는 않지만 재미도 없습니다. 오늘은 그 10곳에 전용 활동과 게임을 붙여서 25곳을 다 채웠습니다. 게임은 34종이 됐습니다.

답이 화면에 없는 게임을 하나 만들었다

기존 메커닉은 대부분 "고르기"였습니다. 순서를 고르거나, 우선순위를 고르거나, 자원을 배치하거나. 잘 만들면 재밌지만 공통된 약점이 있습니다. 선택지가 화면에 있으니 몰라도 찍으면 됩니다.

그래서 계량이라는 걸 새로 만들었습니다. 화면에 주는 건 두 개의 수뿐입니다. 카페라면 "원두 12, 추출 비율 1:3". 헬스장이라면 목표 심박과 운동 강도. 여기서 나올 값을 직접 계산해서 ±1과 ±10 버튼으로 계기를 맞춰야 합니다. 정답 버튼이 없으니 찍을 수가 없고, 서버는 자기 공식으로 답을 다시 계산해서 얼마나 가까운지로 점수를 줍니다. 가장 가까이 붙였을 때 최고점이 나옵니다.

이걸로 메커닉은 8종이 됐습니다. 타이밍, 선택, 순서, 배치, 우선순위, 조준, 반응, 계량. 놀이공원의 다트와 활 쏘기는 조준이고, 사격 게임과 두더지 잡기는 반응이고, 소방 출동 배치는 자원을 한 번씩만 쓸 수 있는 배치입니다. 같은 "미니게임"이라도 손이 하는 일이 다릅니다.

점수는 클라이언트가 주장할 수 없다

이 게임은 나중에 공개 멀티플레이를 보고 있습니다. 그러면 미니게임 점수는 곧 남의 도시에서 버는 돈이 됩니다. 그래서 처음 만들 때부터 규칙을 하나 박아 뒀습니다. 클라이언트는 점수를 보내지 않는다.

세션은 활동, 플레이어, 시설, 몇 일차인지를 묶은 해시에서 결정론적으로 만들어집니다. 클라이언트는 플레이어가 누른 원시 입력만 보내고, 서버는 같은 재료로 같은 세션을 다시 만든 뒤 그 입력을 자기가 채점합니다. 클라이언트가 "만점 받았어요"라고 말할 자리가 아예 없습니다. 입력 검증도 서비스 계층과 시스템 계층 양쪽에 똑같이 뒀습니다. 개수와 값 범위를 둘 다 확인하고, 빈 입력은 거부합니다. 한쪽을 뚫어도 다른 쪽에 걸립니다.

오늘 두 번 틀렸다

처음에는 이미 있던 활동에 게임을 붙였습니다. 집중 근무, 운동, 민원 상담 같은 것들입니다. 바로 테스트가 깨졌습니다. 활동에 미니게임이 붙으면 실행할 때 입력을 요구하는데, 기존 퀘스트와 테스트는 그 활동을 입력 없이 부르고 있었으니까요. 붙였던 걸 떼고 전용 활동을 새로 만들었습니다. 원래 활동은 그대로 뒀습니다. 이제 테스트가 이 규칙을 지킵니다.

두 번째는 더 단순합니다. 어제 놀이공원에 놀이 6종을 넣었는데, 활동 버튼 슬롯이 3개뿐이라 링 던지기와 두더지 잡기와 힘 측정 망치가 화면에 아예 안 나왔습니다. 만들어 놓고 못 보고 있었던 겁니다. 슬롯을 6개로 늘리고 버튼 목록을 스크롤 영역에 넣어서 패널이 조이스틱과 하단 바를 덮지 않게 했습니다. 그리고 "슬롯 수가 활동 수보다 적으면 실패"라는 테스트를 하나 추가했습니다. 같은 실수를 두 번 하지 않으려면 사람이 기억하는 것보다 테스트가 기억하는 게 낫습니다.

왜 여기까지 하나

건물을 100종 만드는 것보다 25종 안을 채우는 게 시간이 훨씬 더 듭니다. 건물은 밖에서 보면 되지만 실내는 들어가서 뭘 할지를 매번 새로 정해야 하니까요. 그래도 이쪽이 맞다고 봅니다. 도시를 키우는 재미와 그 도시에서 한 명으로 사는 재미를 같이 주겠다고 시작한 게임인데, 후자가 비어 있으면 그냥 도시 건설 게임입니다.

카페에서 커피를 뽑고, 우체국에서 소포를 분류하고, 도서관에서 반납된 책을 제자리에 꽂는 것. 대단한 일은 아닙니다. 대신 그 도시가 내가 지은 도시라는 게 조금 더 실감납니다. 브라우저에서 바로 확인하실 수 있습니다.