레트로 게임 리버스 엔지니어링·현대화로 본 AI의 경제적 충격
What reversing, modernising old games tells us about the economic impact of AI
TL;DR Highlight
에이전트 하니스로 1989년 게임을 일주일 만에 웹으로 이식했다
Who Should Read
코딩 에이전트로 장기·복잡 작업을 맡겨 보려는 개발자
Core Mechanics
- 로컬 모델이 일주일에 게임을 이식했다
- 저자는 Qwen-3.8-Flash-Next에 War of the Lance(1989)의 리버스 엔지니어링과 브라우저 이식을 맡겼다.
- VRAM 제약으로 레인을 하나만 돌려 약 일주일이 걸렸다.
- 결과는 Three.js 렌더러로 만든 렌더링·게임 규칙의 충실한 재현이다.
- 사람 개입은 일주일에 4시간 미만이었다
- 저자는 풀타임 직장인이고 하니스에 쓴 집중 시간이 4시간 미만이라고 한다.
- IDE·Blender·커맨드라인·소스 관리를 한 번도 안 만졌다고 한다.
- 하니스가 매 실행마다 린트와 코드 품질을 강제하고 테스트로 고정했다.
- 하니스가 직접 게임을 플레이하며 QA한다
- DOSBox-X에서 원본을 돌리며 메모리 덤프와 디스어셈블리를 본다.
- Playwright로 자기가 만든 포트를 플레이하고 DOM·메모리·비전으로 검증한다.
- 회귀를 막는 테스트도 함께 작성한다.
- 모델 역할을 나눠 썼다
- 로컬 Qwen이 리버스 엔지니어링과 코딩, Claude Fable 5.1이 3D 모델과 리뷰를 맡았다.
- GPT-Codex-Spark는 대량 고속 코드 변환용이다.
- 3D 모델링은 Blender headless에 파이썬 코드를 쓰게 해 GLB를 만든다.
Community Reactions
- 리버스 엔지니어링은 검증 루프가 닫힌 세계라는 의견
- 메모리 상태를 비교하며 원본에 가까워지는지 싸게 확인할 수 있다는 지적이다.
- 요구사항이 모호하고 계속 바뀌는 일반 개발에는 이런 검증 함수가 없다는 의견이다.
- 게임 이식 업계 개발자의 반응은 과장이라는 의견
- 리버싱은 모델이 특히 잘하는 분야라는 의견이다.
- 약한 하드웨어로의 신작 이식과 새 게임 제작은 훨씬 어렵다는 의견이다.
- DeepSeek 하니스로 Prince of Persia를 Swift로 이식했다는 경험
- 3시간, 토큰 $3로 플레이 가능한 게임이 나왔다는 경험이다.
- 한 문장 지시(원본 그대로 이식, 엔진은 전면 재작성)만 줬다고 한다.
- 3D 에셋 품질 주장에 반박한 댓글
- Astra Max에 Blender를 줘 Persona 5 스타일 캐릭터를 만들어 봤다는 경험이다.
- 결과는 시니어 3D 아티스트 수준과 거리가 멀다는 의견이다.
- x86을 WASM으로 JIT 재컴파일해 원본 바이너리를 실행했다는 경험
- 웹 플레이어가 약 600KB이고 게임 설치본만 입력으로 받는다고 한다.
- 게임을 소유해야 하므로 원작자에게 더 공정하다는 의견이다.
How to Apply
- 오늘 하니스에 테스트 강제 규칙 넣기
- 쓰는 코딩 에이전트(Claude Code, codex 등)의 지침 파일에 린트·테스트 통과 전 완료 금지를 적어라.
- 작업 중 만든 테스트는 삭제 금지로 두어 회귀를 막아라.
- 검증 가능한 작업부터 에이전트에 맡기기
- 레거시 포팅처럼 원본 동작과 비교할 수 있는 작업을 고르라.
- 출력 비교나 스냅샷 테스트 같은 자동 검증 함수를 먼저 만들어 줘라.
- 프로젝트 헌장에 목표와 비목표 쓰기
- 정확도 요구 수준을 명시하고 바이트 단위 일치 같은 과한 기준은 뺀다.
- 먼저 모델에게 알려진 자료를 조사·정리시켜 시작점을 만들어라.
- 모델 역할을 비용·속도로 분리하기
- 대량 기계적 변환은 빠른 모델에 맡겨라.
- 리뷰와 어려운 판단은 프런티어 모델에 맡겨라.
Try It
# Claude Code에 붙여넣기 (원문 방법의 간이 버전: 검증 루프 하니스 규칙)
작업: {{포팅/리팩터링 대상}}을 {{목표 환경}}으로 옮긴다.
규칙:
1. 시작 전에 알려진 자료(문서, 매뉴얼, 기존 코드)를 조사해 RESEARCH.md로 정리한다.
2. 원본과 새 구현의 동작을 비교하는 자동 테스트를 먼저 만든다.
3. 매 실행마다 린트와 테스트를 돌리고, 실패하면 완료라고 보고하지 않는다.
4. 작업 중 만든 테스트는 삭제하지 않는다.
5. 바이트 단위 일치는 목표가 아니다. 동작 일치가 목표다.
끝나면 진행 상황과 남은 문제를 PROGRESS.md에 적어라.
이어서 해 볼 것: 진행 보고용 모바일 페이지를 만들어 달라고 요청해 보라.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓