AI 에이전트로 인기 FPS 게임 디컴파일, 5000억 토큰 쓰고 얻은 교훈
- 3개월 동안 AI 에이전트를 돌려 인기 FPS 게임을 디컴파일했고, 목표는 간단한 증명이 아니라 정확하고 안정적이며 기능이 완전한 재구현임
- 1개월 차에 작업 에이전트 3개와 리뷰 에이전트 1개로 게임의 80%를 디컴파일해 메뉴 표시와 맵 로딩까지 됐지만, 코드 의미가 틀려 있었음
- 컴팩션 임계치를 기본값 90%에서 42%로 낮춰 쓸모없어진 디컴파일 정보를 빨리 지웠고, 매시간 cron으로 지침 문서를 다시 읽게 함
- 에이전트들은 Discord 공용 채널로 소통하고, GitHub 이슈(번역 단위 .cpp 파일당 하나)로 진행을 추적하며, CI 실패는 웹훅으로 알림받음
Hacker News opinions
이거 구독 요금으로 돌리는 거라 실제 API 가격이랑 다름. Anthropic이 성장 수치 올리려고 구독을 싸게 파는 것 같음.
10만 달러치 컴퓨팅을 4천 달러에 판다는 게 말이 됨? 근데 비공개로 둘 게임 디컴파일에 그 돈 쓸 사람이 있을지 솔직히 의문임.
가격 근거 좀 보여줘. OpenAI랑 Anthropic 입력 가격은 백만 토큰당 10달러 수준인데, 5000억 토큰이면 계산이 최소 수백만 달러부터 나옴. 150에서 400달러는 어디서 나온 숫자임?
대부분이 캐시 입력 토큰이라 API 가격으로 계산해도 훨씬 적게 나옴.
바이트 매칭 안 할 거면 더 빠른 방법 있음. 에이전트 A가 의미상 같은 코드랑 테스트를 쓰고, 하네스가 VM에서 원본이랑 RAM 읽기/쓰기 순서가 같은지 보고 분기 커버리지 100%를 요구함. 게임에서 꽤 잘 먹힘.
테스트 세트 완성도에 따라 동작이 달라지지. 바이트 동일 빌드는 그런 걱정 안 해도 되는데 이건 오버플로우 같은 버그를 놓칠 수 있음.
RAM 읽기/쓰기 순서만으로는 의미 동일성 증명 안 됨. FPU 스택 같은 데서는 순서가 같아도 틀릴 수 있고, 반대로 순서가 달라도 의미가 같을 수 있음. 바이트 비교가 피드백이 빨라서 에이전트가 더 빨리 반복함.
함수랑 변수 이름 자동으로 붙이는 건 LLM 아니면 못 함. 그 부분은 확실히 쓸모 있음.
게임은 전역 상태나 외부 데이터 의존이 커서 테스트를 수만 개 돌려도 원본이랑 똑같다는 보장 못 함. 같은 실행파일을 재현하는 게 아니면 확신 못 함.
법적으로 리버스 엔지니어링한 코드를 공개하면 뭐가 침해되는지 모르겠음. 1986년 Whelan 판례는 구조랑 순서까지 보호했는데, 1992년 Altai 판결 이후로는 추상화-필터링-비교 테스트를 대부분 법원이 씀.
게임은 Call of Duty: Modern Warfare 2 (2009)로 보임. 이전 페이지 버전에 그렇게 적혀 있었고, 레딧 진행 보고 글에도 같은 얘기가 있음.