게임 Hacker News · 2026-10-25

고전 동방 프로젝트 구작 역공학하던 개발자 결국 은퇴 선언함 (ft. 음수 점수 버그)

핵심 요약
  • PC-98 동방 프로젝트 구작의 리버스 엔지니어링 및 소스 포트 작업을 진행하던 ReC98 개발자가 프로젝트 은퇴를 발표했습니다.
  • 개발 도중 원작 '추상옥'에서 기체가 피격 후 리스폰되는 순간 아이템을 획득하면 점수 계산식상 음수가 나오는 숨겨진 버그를 발견했다고 밝혔습니다.
  • 수많은 기술적 난제와 극단적인 디테일 처리에 번아웃을 겪은 끝에 소스 포트 및 리플레이 검증 도구를 남기고 활동을 종료했습니다.
요약 고전 PC-98 기반 '동방 프로젝트' 구작 게임들의 리버스 엔지니어링 프로젝트(ReC98)를 이끌어온 핵심 개발자가 프로젝트 은퇴를 선언했습니다. 개발자는 오랜 기간 진행해 온 포팅 및 코드 정리 작업 도중 자신과 프로젝트 전체를 무너뜨린 결정적인 계기와 함께, 작업 중 발견한 기상천외한 버그들을 공유했습니다. 대표적으로 서방 프로젝트의 '추상옥(Shuusou Gyoku)' 게임 로직을 분리하고 정리하던 중 발견된 '음수(-) 점수 아이템' 버그가 눈길을 끕니다. 원래 게임 코드상 점수 아이템 획득 공식은 주인공 기체(VIVIT)의 Y 좌표에 비례해 점수를 계산하는데, 통상 플레이에서는 화면 하단 한계선에 걸려 0점 이하로 내려가지 않습니다. 그러나 기체가 피격되어 잔기를 잃으면 화면 아래쪽(Y=659)으로 순간 이동한 뒤 복귀하는 연출이 발생하는데, 이 리스폰 구간에서 화면 아래로 떨어지는 아이템을 먹으면 점수 공식 결과값이 음수가 되는 취약점이 있었습니다. 원작 v1.005에서는 팝업 폰트에 마이너스(-) 기호 스프라이트가 없어 비숫자 문자가 무시된 채 양수처럼 표시되었고, 누적 점수는 감소하지 않고 점수 델타 값에서만 깎이는 구조여서 수십 년간 유저들이 눈치채지 못했던 것입니다. 개발자는 2024년 정적 분석 경고를 해결하려 %d를 %u로 바꿨다가 언더플로우가 터지면서 이 숨겨진 원작의 비밀을 우연히 발견했다고 밝혔습니다. 개발자는 게임 로직 분리, 난수 생성기(RNG) 범위 처리, MSVC의 sprintf() 로케일 비대화 문제 및 C++ 예외 처리 우회 등 기술적 난제들을 해결하며 리플레이 검증 CLI 등을 구축해왔으나, 결국 이러한 극한의 복잡도와 디테일 분리에 지쳐 은퇴를 결심했다고 전했습니다. 오랜 시간 동방 구작 보존에 기여한 전설적인 리버스 엔지니어의 퇴장에 레트로 게이머들의 아쉬움 섞인 관심이 쏠리고 있습니다.
Sponsored · 광고