AI 에이전트가 20만 줄 생성한 TypeScript 선검기협전 재구현 프로젝트

V2EX그저께조회 2

중국 개발자 커뮤니티 V2EX에 개인 프로젝트 'type-pal'이 공개됐다. 1995년 대만에서 나온 롤플레잉 게임 선검기협전을 TypeScript로 처음부터 다시 구현해 브라우저에서 실행되게 만든 작업이다. 제작자는 4개월 넘게 진행해 시작부터 엔딩까지 플레이 가능한 v1.0.0을 내놨다고 밝혔다.

구현 범위는 단순한 에뮬레이션이 아니다. 원작 데이터 파일인 MKF 언패킹과 YJ_2 압축 해제, 164개 opcode를 처리하는 이벤트 바이트코드 인터프리터, 320×200 인덱스 컬러 프레임버퍼, 원작 규칙을 그대로 옮긴 턴제 전투, SpessaSynth를 이용한 MIDI 합성이 포함된다. 앞서 공개된 sdlpal의 WASM 빌드와 달리 런타임을 TypeScript로 새로 작성했고, sdlpal은 참고용으로만 두고 원본 데이터와 동작을 기준으로 삼았다고 한다.

플레이 화면 왼쪽 아래 설정 패널에는 미니맵(NPC·보물 위치), 전투 정보(내성·훔칠 수 있는 아이템), 대화 기록 검색, 세이브 JSON 가져오기·내보내기, 21개 노드로 구성된 스피드런 타이머가 들어 있다.

2단계 'Reforge'에서는 새 콘텐츠 포맷과 런타임, React 기반 편집기를 만들고 있다. 맵·스토리·캐릭터·아이템·전투·리소스를 다루며 참조 진단, 실행 취소·재실행, 편집기 내부 테스트 플레이, 별도 전투 시뮬레이터를 갖춘다. 원작의 294개 장면과 223개 맵을 이미 옮겼다.

주목할 부분은 코드 작성 방식이다. 제작자는 코드를 직접 한 줄도 쓰지 않았고 전부 AI 코딩 에이전트가 생성했다고 밝혔다. 본인이 맡은 일은 제품 판단, 우선순위 결정, 의견 충돌 조정, 검수다. 20만 줄이 넘는 코드는 19,597개 테스트, 91.3% 라인 커버리지, lint 경고 0건, 구·신 엔진 E2E 비교로 관리한다. 협업 규칙은 저장소의 AGENTS.md에 정리돼 있다.

댓글에서는 모델 선택과 운영 경험이 오갔다. 처음에는 Claude를, 이후에는 GPT를 썼다는 제작자는 모델이 데모 수준에서는 잘하지만 세부 결함이 많아 계속 교정해야 했다고 말했다. 다른 댓글 작성자는 AI에게 스크린샷 도구를 만들게 했지만 상호작용이 만족스럽지 않았고, 같은 오류를 여러 번 고치게 해도 자체 테스트만 통과한 채 다른 문제가 드러나는 일이 반복됐다고 적었다.

남은 과제도 제작자가 직접 밝혔다. 원본 그래픽 소스가 없어 타일에서 원본 이미지를 역으로 재구성해야 하는데 작업량이 크고 AI가 잘하는 영역도 아니라고 한다. 또 원작 스크립트는 전역 범위에서 임의 NPC의 좌표·방향·스프라이트 프레임을 바꿀 수 있어, 특정 스크립트 조각만 보고는 해당 NPC의 초기 상태나 이전에 상태를 바꾼 스크립트를 파악하기 어렵다. 현재는 AI가 게임을 직접 클리어하게 만들어 E2E 테스트 케이스로 남기는 작업을 진행 중이다.

편집기는 아직 온라인에 배포되지 않아 저장소를 복제해 로컬에서 실행해야 하고, 원본 데이터는 README 절차에 따라 직접 준비해야 한다. 프로젝트 저장은 Chrome이나 Edge에서만 된다. 제작자는 비공식 팬·학습 프로젝트로 권리자와 무관하며 이름·그림·음악·스토리 권리는 원 권리자에게 있다고 명시했다. 새 엔진은 원본 1픽셀을 4픽셀로 늘리는 고해상도 대비를 해뒀다고 밝혔지만 이는 아직 계획 단계의 설명이다.