보트 레이싱을 코스 레이싱에서 항해로 바꿨습니다. 기능을 더한 게 아니라 게임이 무엇에 관한 것인지를 바꾼 것이라, 그 이유부터 적습니다.
원에는 이야기가 없습니다
랩은 원입니다. 목적지가 없고, 뒤에 있는 것이 앞에 있는 것보다 나쁠 이유가 없고, 가면서 바뀌는 것은 카운터뿐입니다.
그런데 이 게임이 지금까지 지어 놓은 것들 — 나빠지는 날씨, 맞으면 차오르는 선체, 뒤에 붙는 배 — 은 가려는 곳이 있고 바다가 그걸 막을 수 있을 때 비로소 의미를 갖습니다. 원 위에서는 폭풍이 그냥 랩타임 손해입니다. 목적지가 있으면 같은 폭풍이 "돌아갈까, 뚫을까"가 됩니다.
코스와 항로는 자료 구조도 다릅니다. 코스는 통과하며 채점받는 게이트의 고리이고, 항로는 따라가되 벗어날 수도 있는 선입니다. 차이는 양 끝에 있습니다. 코스에는 출발지도 목적지도 없고, 항해는 대부분 그 둘에 관한 것입니다.
배수가 공짜였습니다
설계의 심장은 여기였습니다.
지금까지 침수는 매초 그냥 줄었습니다. 무조건이고 공짜였습니다. 그러면 바다의 최악이 일시적이 됩니다. 물이 드는 것이 비용이 아니라 잠깐의 지연이 되니까요.
펌프를 배터리 뒤에 놓으니 고리가 닫혔습니다.
거친 물은 쫓는 배를 떨궈 주지만 선체를 채웁니다. 펌프는 선체를 비우지만 배터리를 씁니다. 배터리가 죽으면 레이더가 함께 죽습니다. 날씨로 도망친 대가가 결국 무엇으로 부터 도망쳤는지 볼 수 없게 되는 것입니다.
기능 셋이 서로를 물게 만든 것뿐인데, 이제 스로틀을 올릴지 말지가 매번 계산이 됩니다.
배 위에서 낚시를 합니다
낚시 게임에서 가져왔습니다. 다만 거의 아무것도 가져오지 않았습니다.
저쪽에는 이걸 둘러싼 게임 전부가 있습니다 — 상륙해서 갯바위에서 낚기, 손을 모델링한 1인칭 낚시꾼, 기록장, 트로피 사진. 가져온 것은 선체가 발밑에 있는 동안 벌어지는 부분뿐입니다. 던지고, 기다리고, 챔질하고, 파이팅하는 것. 밀수 항해의 두 구간 사이에 들어갈 수 있는 게 그것이기 때문입니다.
상태 기계는 원본 그대로 뒀습니다. 전이표가 밖에서는 안 보이는 규칙을 담고 있어서입니다. 조준 없이 캐스팅할 수 없고, 챔질은 기다리는 상태에서만 나오고, 랜딩이 독립된 상태로 있어야 물고기가 아무도 보기 전에 배 안에 들어가 있지 않습니다.
새로 더한 규칙은 하나입니다. 배가 거의 멈춰 있어야 합니다(1.5m/s). 사실성 때문이 아닙니다. 이 게임에는 이미 "도망쳐"라는 뜻의 스로틀이 있어서, 35노트에서도 되는 낚싯대는 멈추는 쪽을 순수한 손해로 만듭니다. 정지 활동이어야 캐스팅이 결정이 됩니다 — 2분 동안 고정 표적이 되기로 고르는 것입니다. 쫓기는 중에는 아예 막습니다.
접속하지 않은 동안에도 배는 갑니다
두 번째 시계를 뒀습니다. 나머지는 전부 시뮬레이션 시계로 돕니다 — 초당 예순 걸음, 탭을 닫으면 멈춥니다. 이 시계는 벽시계로 돌고 멈추지 않습니다.
화요일 저녁에 받은 계약은 수요일 아침에도 항해 중입니다. 누가 보고 있었든 아니든 배는 어딘가 있습니다. 더 잠겼거나, 더 갔거나, 없거나.
"항해를 더 길게"와 무엇이 다른지 분명히 해 둘 값어치가 있습니다. 앉아서 보는 판은 앉아 있는 동안만 긴장됩니다. 나 없이 계속되는 판은 다른 방식으로 긴장됩니다 — 펌프를 켜 두고 나왔고 배터리가 40%였고 지금 그게 신경 쓰입니다. 게임이 세션이 아니라 배에 관한 것이 됩니다.
탭이 닫힌 동안 아무것도 안 돕니다. 돌 필요가 없습니다. 어느 시각의 상태는 직전 상태와 경과 시간의 순수 함수라, 돌아왔을 때 그 간극을 적분하면 됩니다. 6분 버킷, 씨앗 생성기. 서버도 타이머도 백그라운드 작업도 없습니다. 나흘이 960스텝이라 즉시 끝납니다.
여기서 결함을 하나 잡았습니다
처음에는 난수 생성기를 호출할 때마다 "마지막 갱신 시각"으로 씨를 뿌렸습니다. 그러면 결과가 경과 시간이 아니라 접속 패턴에 달립니다.
실측입니다. 12시간을 한 번에 적분하면 바다가 너울이고 침수가 두 줄, 같은 12시간을 1시간씩 나눠 적분하면 미풍에 한 줄. 같은 배, 같은 부재, 다른 이야기. 탭을 켜 두는 사람과 닫는 사람이 다른 게임을 하게 됩니다.
경과 시간만으로 씨를 정하도록 고쳤습니다. 오프라인 진행을 만들 때 가장 조용히 어긋나는 자리가 여기라고 봅니다 — 결과가 그럴듯해서 틀린 걸 알아차리기 어렵습니다.