겹침 0쌍은 거짓말이었습니다 — 검사가 드럼통을 아예 못 보고 있었습니다
며칠 전 "여섯 맵 모두 겹침 0쌍"이라고 적었습니다. 제보 스크린샷에는 드럼통이 파란 방벽에 박혀 있었습니다. 검사가 통과한 게 아니라, 검사 대상에서 드럼통 열두 개가 통째로 빠져 있었습니다.
만들다 막힌 자리와 고친 과정입니다. 무엇을 만들었다는 자랑보다, 무엇이 조용히 망가져 있었는지를 적습니다.
전체 73편 · 5 / 7페이지
며칠 전 "여섯 맵 모두 겹침 0쌍"이라고 적었습니다. 제보 스크린샷에는 드럼통이 파란 방벽에 박혀 있었습니다. 검사가 통과한 게 아니라, 검사 대상에서 드럼통 열두 개가 통째로 빠져 있었습니다.
지연보상 코드는 진작 있었는데 부르는 곳이 테스트 한 군데뿐이었습니다. 실제 게임은 모든 사격을 "지금"으로 판정하고 있었습니다. 연결하고 나서도 총알이 통과했는데, 원인은 Godot이 변환을 다음 물리 스텝으로 미루기 때문이었습니다.
멀티 방에 들어가면 아무도 안 보이고, 어떤 사람은 무한 데스에 걸렸습니다. 증상은 둘인데 원인은 하나였습니다. 각자 맵을 따로 뽑고 있었고, 6분의 1 확률로 같은 맵일 때만 실제로 만나졌습니다.
기반 공사만 해 두고 미뤄 뒀던 온라인 멀티플레이를 실제로 연결했습니다. 서버는 중계만 하고 판정은 접속한 사람 중 하나가 전부 돌립니다. 서버에 권위를 주려면 같은 게임을 자바스크립트로 한 번 더 만들어야 했기 때문입니다.
드럼통과 컨테이너를 블렌더 스크립트로 구워 얹었습니다. 판정은 그대로 상자로 두고 겉모습만 바꿨는데, 모양이 생기니까 배관이 건물 한복판에 묻혀 있던 게 눈에 보였습니다. 전부 원래부터 있던 것들이었습니다.
여덟 명이 붙으면 총성이 뚝뚝 끊겼습니다. 소리를 내는 자리를 순서대로 돌려쓰고 있었는데, 비어 있는 자리를 건너뛰지 않고 순서가 된 자리를 그냥 뺏었습니다. 아직 울리는 중인 총성이 그대로 잘렸습니다.
웹에서 시점이 갑자기 하늘로 튀고, 마우스가 화면 밖으로 나가고, 키가 눌린 채 굳었습니다. 넷 다 원인이 달랐지만 공통점이 하나 있었습니다. 브라우저가 알려 주는 값을 검사 없이 믿고 있었다는 것입니다.
3D 캐릭터가 복셀보다 프레임 타임이 두 배였습니다. 재질 공유, 그림자 끄기, 원거리 생략, 화면 밖 애니메이션 정지를 넣었고 넷 다 실제로 걸렸습니다. 프레임 타임은 하나도 안 움직였습니다.
3D 캐릭터를 붙였더니 브라우저에서만 블럭 몸으로 나왔고, 고쳤더니 전부 T자세로 걸어 다녔고, 그것도 고쳤는데 여전히 안 움직였습니다. 셋 다 개발 중에는 절대 안 나옵니다. 그리고 제가 "문제 없음"이라고 결론 낸 검사 방법 자체가 틀렸습니다.
받아 온 맵 다섯을 붙이고 예전 상자 맵 여섯을 그대로 뒀더니, 무작위로 시작할 때 절반이 옛 맵이었습니다. 여섯을 걷어냈습니다. 그리고 합치기 과정에서 맵 지오메트리 20%가 조용히 사라지고 있었습니다.
우클릭으로 조준하면 총이 화면을 통째로 덮었습니다. 조준 자세 좌표가 상자로 만들던 짧은 총 시절 값이라, 진짜 총 모델을 끼우자 개머리판이 뒤로 뻗어 눈에 박혔습니다. 저격총은 아예 카메라 뒤에 있었습니다.