밧줄 건너편에서

여덟 명이 하는 대전을 테스트하기 위해, 한 대의 컴퓨터에서 게임 창 여덟 개를 열었습니다. 각 창에서는 AI가 누군가의 자리를 대신 플레이했습니다. 전투 도중에 창 하나를 닫았다가 다시 열었습니다.
이 테스트에 이르기까지 이 장 전체가 걸렸습니다.
먼저 1대1
줄다리기는 밧줄 건너편에 사람이 있을 때 더 재미있기 때문에, 온라인 플레이를 일찍 넣었습니다. 한 명이 Steam으로 방을 만들고 친구를 초대하면, 둘 다 진영과 특전(perk)을 고르고 대전이 시작됩니다. 끝나면 재대결을 누르고, 두 사람이 같은 선택을 유지한 채 준비 완료 상태로 방에 돌아갑니다.
흥미로운 부분은 인터넷을 통해 건너가지 않는 것입니다. 한 전투에는 양쪽에 병력 90명씩이 있을 수 있고, 병력마다 체력, 목표, 경로, 재사용 대기 시간이 있습니다. 이것을 모두 전송하면 무겁고 쉽게 깨집니다. 그래서 전송하지 않습니다.
편지로 두는 체스
편지로 체스를 두는 두 사람을 떠올려 보세요. 각자 집에 자기 말판을 두고, 편지에 실려 오가는 것은 수 하나뿐입니다. "나이트를 f3로." 누구도 편지에 적지 않고 말을 움직이지 않는다면, 두 말판은 영원히 똑같이 남습니다.
Castle Arena의 온라인도 이렇게 작동합니다. 두 컴퓨터가 같은 시뮬레이션을 나란히 돌리고, 주고받는 것은 플레이어의 명령뿐입니다. 여기 건설하고, 저기 진화시키고, 거기 구조를 쓰라는 식입니다. 여러분의 명령은 약 200밀리초 뒤 양쪽 기계에서 실행됩니다.
이 비유는 한 지점에서 맞지 않게 되는데, 그곳이 가장 어려운 부분입니다. 체스에는 주사위가 없지만 Castle Arena에는 있습니다. 치명타, 회피, 추첨이 그렇습니다. 각 컴퓨터가 자기 주사위를 굴리면, 말판은 첫 번째 타격에서 갈라집니다. 그래서 모든 우연은 같은 시드에서 시작하는 하나의 주사위 굴림 순서에서 나옵니다. 어떤 규칙이든 다른 곳에서 난수를 가져오면 자동 테스트가 실패합니다.
같은 시작과 같은 명령이 주어졌다면, 두 기계는 마지막 체력 한 칸까지 똑같은 전투에 도달해야 합니다.
약 1초에 한 번씩 두 컴퓨터는 전투 전체의 지문을 비교합니다. 지문이 다르면 대전을 멈춥니다. 서로 다른 두 게임이 각자 다른 방향으로 흘러가도록 두지 않기 위해서입니다.
공짜로 따라온 것들
이렇게 온라인을 만든 덕분에 선물도 따라왔습니다. 같은 명령에서는 전투가 항상 똑같으므로, 리플레이는 아주 작습니다. 대전 설정, 시드, 명령 목록이면 충분합니다. 0.5배속부터 8배속까지 볼 수 있고, 원하는 지점으로 건너뛸 수 있습니다.
여러분이 플레이하는 동안 스카우트가 각 라인이 매 초 얼마나 뜨거워졌는지 기록하고, 큰 순간들을 표시합니다. 구조, 건물 붕괴, 성의 함락입니다. 대전이 끝나면 하이라이트가 이 장면들을 엮어 30~60초짜리 릴을 만들고, 성이 슬로모션으로 무너집니다. 결과 화면의 그래프도 클릭할 수 있습니다. 점을 클릭하면 리플레이가 바로 그 지점에서 열립니다. "잠깐, 북쪽 라인을 언제 잃었지?"라는 질문에 가장 빨리 답하는 방법입니다.
누군가 끊기면
연결은 끊기고, 게임은 멈추고, 컴퓨터는 재시작합니다. 1대1 대전에서 상대가 사라지면 대전은 2:30의 재접속 카운트다운과 함께 멈춥니다. 끊긴 쪽은 게임을 다시 열고 대전 다시 참가를 고르기만 하면 됩니다. 남아 있던 컴퓨터가 전투의 완전한 스냅샷을 보내고, 둘은 거기서부터 이어서 플레이합니다.
편마다 더 많은 사람
같은 흐름에서 게임 모드도 나왔습니다. 모드는 하나의 레시피입니다. 진영을 고르거나, 추첨하거나, 거울처럼 맞추거나, 드래프트로 정합니다. 시리즈는 N판 중 다승제이고, 그 위에 48개의 명령을 쌓을 수 있습니다. "구조 없음"부터 여러분의 영역에 골드 동전이 떨어지는 것까지 있습니다. 레시피 하나는 -rr3-nt-cc처럼 짧은 코드가 되어, 복사해서 친구에게 보낼 수 있습니다.
그다음에는 2v2와 3v3 팀 대전이 나왔습니다. 플레이어마다 자기 일꾼, 골드, 구조를 갖습니다. 성, 영역, 필드의 병력은 팀의 것입니다. 그리고 얼핏 당연해 보이는 질문이 생겼습니다. 3v3의 성은 세 배 더 튼튼해야 하지 않을까?
측정해 보았습니다.
| 형식 | 대전 길이 |
|---|---|
| 1v1 | 10.1분 |
| 2v2 | 12.1분 |
| 3v3 | 13.0분 |
성의 체력에 플레이어 수를 곱해도 대전 길이는 약 0.3분밖에 바뀌지 않았습니다. 대전은 방어선이 무너질 때 결정되지, 성의 체력으로 결정되지 않습니다. 그래서 성은 모든 형식에서 같고, 늘어나는 것은 각 편의 병력 상한입니다. 90, 135, 180입니다.
여덟 명, 하나의 전투
처음에는 팀 온라인이 여러분과 친구 한 명, 그리고 각자의 AI 아군이었습니다. 그다음에는 빈자리마다 사람이 앉을 수 있게 되었고, 2v2부터 4v4까지 가능해졌습니다.
두 사람이면 두 컴퓨터가 명령을 직접 주고받습니다. 여덟 명이면 모두를 서로 연결하는 데 연결이 28개 필요하고, 연결마다 제각기 실패할 수 있습니다. 그래서 팀 온라인은 별 모양입니다. 게스트는 방장과만 이야기하고, 방장이 명령을 나머지에게 전달합니다.
그리고 4v4에서 누군가 끊기는 상황은 1대1과 같을 수 없습니다. 한 사람을 기다리느라 대전을 멈추면 나머지 여섯 명에게 불공평합니다.
| 누군가 끊기면 | 1v1 | 4v4 |
|---|---|---|
| 대전 | 멈추고 기다림 | 계속 진행 |
| 끊긴 사람의 자리 | 빈자리로 남음 | AI가 즉시 넘겨받음. 모든 컴퓨터에서 같은 턴부터 |
| 그 사람이 돌아오면 | 스냅샷을 받고 계속 | 스냅샷을 받고 다른 사람을 따라잡은 뒤 자리를 돌려 달라고 요청 |
여덟 개의 창이 가르쳐 준 것
그래픽 없는 테스트는 이미 모든 형식에서 끊김과 복귀를 시뮬레이션했고, 모두 같은 전투에서 끝났습니다. 하지만 2v2는 창 네 개로, 4v4는 창 여덟 개로 실제 게임을 열어 보자, 그런 테스트가 잡아내지 못한 네 가지 문제가 드러났습니다:
- 시작되지 않는 방. 모두가 기본 진영으로 들어왔는데, 팀은 진영을 중복할 수 없습니다. 이제 준비 완료 버튼이 즉시 알려 줍니다.
- 참가를 포기하는 게스트. 창 여덟 개가 동시에 로딩되자 방장의 응답이 느려졌고, 참가 요청은 한 번만 나갔습니다. 이제는 최대 20초 동안 계속 재시도합니다.
- 일곱 명이 한 명을 기다림. 첫 버전에서는 장면이 로드되기 전에 재접속한 사람에게 자리가 돌아갔고, 나머지 일곱 명은 약 30초 동안 멈춰 있었습니다. 그래서 AI가 플레이어가 대전을 따라잡을 때까지 자리를 붙들고 있도록 바뀌었습니다.
- 가장 느린 PC. 대전을 준비하는 데 8초가 넘게 걸리면 첫 턴 전에 AI에게 자리를 빼앗겼습니다. 이제 아직 로딩 중인 사람에게는 45초가 주어집니다.
닫았다가 다시 연 창에서도 대전은 이어졌습니다. 마지막에 여덟 개의 창 모두 같은 전투로 끝났습니다.
아직 없는 것
방장이 끊기고 돌아오지 않으면 아무도 방장 자리를 이어받지 못하고, 그 팀은 집니다. 그리고 명령은 항상 방장을 거칩니다. 아군끼리라도 마찬가지입니다. 두 가지 모두 기록해 두었습니다.
한 전투에 모인 여덟 명은 여덟 가지 다른 방식으로 싸우고 싶어 합니다. 바로 그 지점에서 진영이 등장합니다.
— 팀 일동





