시뮬레이션을 화면에서 떼어 놓았습니다 — 층마다 컴포넌트를 만들지 않는 이유
쿼터뷰 게임을 웹으로 만들며 제일 먼저 정한 것은 게임 로직이 화면 프레임워크를 모르게 하는 것이었습니다. 좌표 변환은 한 파일에만 두고, 키보드와 클릭이 같은 스냅샷을 내게 했습니다. 층이 120개라도 화면은 이벤트 종류만큼만 있습니다.
만들다 막힌 자리와 고친 과정입니다. 무엇을 만들었다는 자랑보다, 무엇이 조용히 망가져 있었는지를 적습니다.
전체 73편 · 4 / 7페이지
쿼터뷰 게임을 웹으로 만들며 제일 먼저 정한 것은 게임 로직이 화면 프레임워크를 모르게 하는 것이었습니다. 좌표 변환은 한 파일에만 두고, 키보드와 클릭이 같은 스냅샷을 내게 했습니다. 층이 120개라도 화면은 이벤트 종류만큼만 있습니다.
압축으로는 못 넘겼습니다. gzip을 걸어도 97MB로 여전히 한도의 네 배였습니다. 조각을 내서 워커가 이어 붙이게 했는데, 한꺼번에 받으면 137MB가 워커 메모리에 얹힙니다.
상의·하의·신발을 부위별로 골라 섞어 입는 시스템을 넣었습니다. 그냥 얹으면 입힌 만큼 그릴 것이 늘어납니다. 실행 중에 한 벌로 합쳐 구워서, 몇 개를 끼워도 표면이 하나만 늘어나게 했습니다.
만들어 둔 게임을 통째로 다시 썼습니다. 기능이 모자라서가 아니라 한 번 고치고 확인하는 데 드는 시간이 길어서 손이 안 갔기 때문입니다. 33커밋으로 처음부터 온라인 대전까지 왔고, 액체 표현은 이참에 셰이더로 다시 만들었습니다.
조이스틱을 끌면 총이 계속 발사되고, 버튼을 탭하면 화면이 돌고, 글씨는 작아서 안 보였습니다. 원인 셋이 다 달랐고, 공통점은 제가 모바일 화면을 한 번도 안 봤다는 것이었습니다.
FPS Arena를 브라우저에서 돌게 만드는 과정에서 걸린 함정들입니다. 전부 "빌드는 성공했는데 화면이 틀린" 종류였고, 하나는 배포한 뒤에도 한참 동안 원인을 못 찾았습니다.
교전 중에도 높은 자리를 잡게 하고 포복을 넣었습니다. 그 과정에서 계단 세 개가 애초에 못 올라가는 물건이었다는 걸 알았습니다. 하나는 몇 주째 그 상태였습니다.
화물선 맵에서 20초 동안 총알이 한 발도 안 나갔습니다. 봇은 다 살아 있었고 다 움직이고 있었습니다. 제가 보고 있던 지표로는 이 고장이 절대 안 보였습니다.
봇 일곱이 각자 놀던 걸 분대로 묶었습니다. 정보를 공유하고 역할을 나누게 하자 곧바로 명중률이 25%에서 7%로 떨어졌습니다. 전술을 추가할 때는 그게 기존 규칙과 어떻게 곱해지는지를 먼저 봤어야 했습니다.
폭파 모드를 넣고 검증했더니 같은 맵에서 성공과 실패가 섞여 나왔습니다. 원인을 세 번 짚었고 세 번 다 틀렸습니다. 셋 다 게임이 아니라 테스트 쪽 문제였습니다.