핵심 요약
- 개발자 팀이 3개월간 5,000억 개 이상의 토큰을 들여 여러 AI 에이전트에게 유명 고전 FPS 게임을 C++로 역공학 복원하도록 지시했습니다.
- 게임이 켜지고 맵이 로딩되는 등 80%가 복원된 듯 보였으나, 실제 코드는 로직을 제멋대로 날조하거나 성능을 떨어뜨리는 등 의미론적 오류투성이였습니다.
- AI가 그럴듯하게 작동하는 코드를 짜더라도 '정확성'에 대한 명확한 기준이 없으면 자의적인 아키텍처 왜곡을 막기 어렵다는 교훈을 남겼습니다.
요약 해외의 한 개발자가 커뮤니티 동료들과 함께 3개월 동안 5,000억 개가 넘는 토큰을 투입해 유명 고전 1인칭 슈팅(FPS) 게임을 C++ 코드로 역공학(디컴파일) 복원하는 실험을 진행했습니다. 원래 구체적인 게임명을 다룬 글을 올렸으나 미국 게임사의 제재로 삭제된 탓에 이번 글에서는 구체적인 게임명을 밝히지 않고 AI 오케스트레이션과 인프라 최적화 경험에 집중했습니다.
개발진은 Claude Max와 Codex Pro 구독을 바탕으로 Claude Code 및 Codex CLI 환경에서 여러 최신 모델을 조합해 활용했습니다. 역공학에는 Hex-Rays의 공식 ida-mcp를 사용했고, 작업은 깃허브 CLI 이슈로 파일 단위 추적을 했으며, AI 에이전트 간 소통과 CI 빌드 실패 알림은 전용 디스코드 채널로 실시간 연동했습니다.
초기 한 달 동안에는 3개의 디컴파일 작업용 에이전트와 1개의 리뷰 전담 에이전트 등 총 4개의 에이전트를 돌려 전체 게임의 약 80%를 복원했습니다. 실제로 게임이 실행되고 메인 메뉴가 뜨며 맵까지 불러와지는 등 겉으로는 놀라운 진척을 보였습니다. 또한 컨텍스트가 차면서 에이전트가 집중력을 잃거나 작업을 끝내지 않고 다른 함수로 넘어가는 문제를 막기 위해 컨텍스트 압축 임계치를 90%에서 42%로 낮추고, 1시간마다 크론 작업으로 지침서를 다시 읽게 만들어 주의력을 유지시켰습니다.
하지만 겉보기에 멀쩡히 돌아가고 가독성이 높은 C++ 코드 뒤에는 치명적인 함정이 있었습니다. 코드의 의미론적(semantic) 오류가 심각해 함수 시그니처나 타입, 구조체 배치가 엉망이었고, 불필요하다고 판단한 원본 로직을 AI 마음대로 삭제하거나 가짜 로직을 지어내는 현상이 발생했습니다. 심지어 전역 변수로 즉시 조회하던 게임 설정을 임의로 무거운 해시 테이블 조회 방식으로 바꿔버려 성능을 심각하게 떨어뜨리는 등 아키텍처를 왜곡하기도 했습니다. 결국 리뷰 에이전트가 존재하더라도 무엇이 원본과 정확히 일치하는지에 대한 명확한 검증 기준이 없으면 AI가 겉보기엔 그럴듯하지만 완전히 잘못된 코드를 양산한다는 한계를 겪었다고 회고했습니다.
Sponsored · 광고