저희는 2인용 게임을 직접 만들고, 직접 테스트해요. 그중 일부는 소파에 앉은 사람들이 직접 해 보는 거예요. 대부분은 그렇지 않아요. 오리지널 게임은 출시 전에 자동 검사 18개를 거쳐요. 이 검사들은 실제 브라우저에서 게임을 열고, 화면에 뜬 내용을 읽고, 키를 누르고, 휴대폰 배치를 탭하고, 레벨을 풀어 봐요. 이 글은 그 검사들이 찾아낸 버그 이야기예요. 그 버그들은 모두 사람의 플레이테스트를 무사히 빠져나갔던 것들이에요.
모든 플레이테스트를 빠져나간 버그
저희 게임은 모두 화면 아래쪽에 조작법을 띄워요. 처음 만든 오리지널 12개 중 7개에서, 플레이 중에 그 줄이 틀려 있었어요. 게임 키 대신 메뉴 키를 보여 줬어요. 가장 많이 플레이되는 Sumo Smash에도 이 버그가 있었어요. 아무도 몰랐어요. 게임은 완벽하게 돌아갔지만, 하는 방법을 한 번도 알려 주지 않았어요. 고치는 데는 게임마다 한 줄이면 됐어요. 교훈은 더 컸어요 — 저희 검사는 화면이 아니라 코드를 읽고 있었어요.
플레이어에게 보이는 말을 읽기
그래서 코드를 읽는 대신 직접 플레이하는 검사를 만들었어요. 이 검사는 1인 경기를 시작하고, 카운트다운을 기다린 뒤, 실제로 화면에 떠 있는 문장을 읽어요. 그 문장에 메뉴 키가 나오면 검사는 실패해요. 그다음 게임 하나에 예전 버그를 일부러 다시 넣었어요. 검사가 그걸 잡아냈어요. 실패할 수 없는 테스트는 테스트가 아니니까, 저희는 검사를 믿기 전에 먼저 일부러 망가뜨려 봐요.
휴대폰에서 겹친 메뉴
저희 타이틀 메뉴는 화면 높이의 몇 퍼센트 위치에, 줄마다 몇 픽셀씩 더해서 그려져요. 노트북에서는 잘 돼요. 휴대폰을 가로로 들면 줄들이 서로 겹쳐 버렸어요. 한 플레이어가 보낸 스크린샷에 게임 하나에서 그게 보였어요. 모든 게임을 화면 크기 5가지로 확인해 보니, 21개 중 18개가 어딘가에서 같은 문제를 갖고 있었어요. 이제 모든 타이틀 메뉴는 자기 공간을 스스로 재는 하나의 묶음이고, 출시 전에 검사가 모든 게임을 모든 크기로 돌려 봐요.
가짜가 아닌 진짜 터치
몇몇 오리지널은 두 사람이 휴대폰 하나를 같이 쓸 수 있어요. 화면이 반으로 나뉘고, 엄지마다 자기 스틱이 생겨요. 위험은 소리 없이 찾아와요. 오른쪽 절반이 몰래 왼쪽 플레이어의 키를 보내면, 화면은 멀쩡해 보이는데 한 사람은 그냥 움직이지 못해요. 저희 터치 검사는 흉내 낸 키 입력이 아니라 실제 브라우저 터치 이벤트를 써요. 절반마다 반드시 눌려야 하는 키와 절대 눌리면 안 되는 키를 적어 둬요. 일부러 한쪽 절반을 틀린 키에 연결해서 이 검사를 시험해 봤어요. 검사는 실패했고, 그게 바로 저희가 원한 결과였어요.
풀 수 없던 레벨
퍼즐 게임에는 풀이 프로그램이 붙어요. Tether는 밧줄로 이어진 구슬 두 개가 동시에 발판 위에 서야 하는 협동 퍼즐이에요. 첫 초안에서는 어떤 레벨도 풀 수 없었어요. 발판이 양 끝에 놓여 있어서, 둘 사이 거리가 밧줄 길이보다 멀었어요. 눈으로 보기엔 괜찮았어요. 숫자는 다르게 말했어요.
Beam에는 더 알아채기 힘든 문제가 있었어요. 모든 레벨은 빛을 어떤 각도로 비추면 풀 수 있었어요. 그런데 6개 레벨 중 3개가 걷는 쪽이 어둠 속에 선 채로 시작했고, 어둠은 타이머예요. 서류상으로는 풀 수 있지만, 첫 프레임부터 치명적이었어요. 이제 검사는 답이 있는지만이 아니라 시작 각도까지 확인해요.
Color Gates는 가장 멀리 갔어요. 한 검사가 각 레벨을 초 단위로 계산했어요. 두 사람이 그냥 번갈아 가면 되니까, 6개 레벨 중 3개는 게임의 핵심 장치를 한 번도 쓰지 않고 끝낼 수 있다는 게 드러났어요. 설계 전체를 두 사람이 동시에 밟고 있어야 하는 압력판 중심으로 다시 만들었어요. 순서를 짜서 피해 갈 수 있는 장치는 장치가 아니에요.
네 번이나 깨진 규칙 하나
모든 오리지널은 같은 작은 약속을 따라요. 처음 뜬 타이틀 화면에서 Space를 누르면 1인 게임이 시작돼요. 숫자 2를 누르면 2인 게임이 시작돼요. Esc를 누르면 타이틀로 돌아가요. 이 규칙을 적어 두고도 저희는 네 번이나 어겼어요. 협동 게임 두 개가 기본으로 2인 모드였기 때문에, 혼자 온 방문자가 Space를 누르면 구슬 하나와 움직이지 않는 짝을 받았어요. 그 둘을 고쳤는데, 나중에 새 검사가 오래된 게임 두 개에서 같은 버그가 아직 살아 있는 걸 찾아냈어요. 네 번 깨진 규칙은 규칙이 아니에요. 운이에요. 이제는 검사 하나가 게임 30개를 전부 직접 돌리면서 이 약속을 확인해요.
일부러 저희 검사를 망가뜨리기
위의 모든 검사는 일부러 넣은 결함으로 시험을 거쳤어요. 버그를 다시 넣고, 검사를 돌리고, 실패하는지 확인해요. 이건 생각보다 중요해요. 한 레이싱 게임에서는, 득점 규칙을 틀리게 고쳐 쓴 뒤에도 그 규칙을 보는 검사가 통과했어요. 그 검사는 규칙을 시험하지 않고 그냥 맞다고 가정하고 있었어요. 이제는 득점하는 순간을 하나하나 전부 확인해요. 한 번도 실패하지 않는 검사는 아무것도 알려 주지 않아요.
이게 여러분에게 왜 중요할까요
이 중 어느 것도 게임을 재미있게 만들지는 않아요. 재미는 소파에 앉은 사람들이 정하고, 저희는 지금도 모든 오리지널을 직접 플레이테스트해요. 검사가 하는 일은 플레이테스트로는 보이지 않는 버그를 없애는 거예요. 거짓말하는 안내, 휴대폰에서 겹치는 메뉴, 풀 수 없는 레벨. 이런 버그 때문에 사람들은 이유도 말하지 않고 탭을 닫아요. 이 이야기의 설계 쪽이 궁금하다면 저희가 죽인 게임들과 저희가 게임 밸런스를 맞추는 법을 읽어 보세요. 아니면 그냥 오리지널 게임을 열고 효과가 있었는지 직접 확인해 보세요.