프롬프트 한 줄로 SimCity 2000을 다시 짰다 — Opus 5.5의 역분석 워크플로
프롬프트 딱 한 줄로 심시티 2000을 통째로 복원했다고?? 처음엔 어그로인 줄 알았다.
r/ClaudeCode에서 며칠 사이 폭발적인 화제를 모은 게시글이 하나 있다. 누군가 Claude Opus 5.5를 가지고 90년대 전설의 도시 건설 시뮬레이션 게임 SimCity 2000의 클론을 통째로 구현했다는 이야기인데, 흔하디흔한 “AI로 플래시 게임 하나 만들었다~” 수준의 조잡한 결과물과는 차원이 달랐다. 시작은 진짜 프롬프트 딱 한 줄이었다.
create a typescript webgl low-poly version (full replica of game logic)
of simcity 2000. the original is available here for inspection [...].zip
심시티 2000의 모든 게임 로직을 한 치의 오차도 없이 완전 재현하라고 요구하면서, 분석용 원본 게임 바이너리 압축파일(.zip)을 무심하게 툭 던져줬다. 여기서부터 펼쳐지는 AI 에이전트의 문제 해결 과정이 그야말로 압권이다.
원본 기계어를 뜯어서 웹으로 다시 쓰기
프롬프트를 받은 Opus 5.5가 가장 먼저 착수한 작업은 단순한 자바스크립트 코드 생성이 아니었다. 놀랍게도 리버스 엔지니어링 툴인 Ghidra를 직접 꺼내 들더니, 1990년대 매킨토시 PowerPC 네이티브 바이너리 기계어 코드를 함수 단위로 역어셈블하고 디컴파일하기 시작했다.
30년 전 낡은 C/어셈블리 코드를 현대적인 TypeScript 코드로 번역하고 포팅하는 험난한 작업은 무려 27개의 서브 에이전트들에게 체계적으로 분배됐다. 그리고 불과 2시간 남짓 흘렀을 때, 웹 브라우저 위에서 실제로 돌아가는 WebGL 3D 로우폴리 심시티 2000의 알파 버전이 튀어나왔다. 프롬프트 단 한 줄 던져놓고 커피 한두 잔 마시고 왔더니 게임 엔진이 복원되어 있던 셈이다(어릴 적 5.25인치 디스켓 넣어가며 밤새우던 기억이 스쳐 지나가며 눈물이 핑 돌았다).
완성도 역시 감탄이 나온다. 3D 건물 모델과 벡터 그래픽 에셋은 Opus가 WebGL 코드로 직접 절차적 생성했고, 고전 느낌의 비트맵 UI 텍스처만 GPT Image 모델에게 맡겼다. 반면 사운드와 배경음악에는 AI 모델을 전혀 쓰지 않았다. 테스트해 본 오디오 생성 모델들의 음질이 하나같이 조악하다는 이유로, 과감하게 크리에이티브 커먼즈(CC) 라이선스 실사 음원으로 대체했다. 모든 걸 AI 만능주의로 억지 부리지 않고, 품질에 따라 도구를 냉정하게 선별하는 센스가 돋보였다.
진짜 경악한 지점: 1만 일치 게임 시뮬레이션 자율 검증
게임 화면이 그럴싸하게 돌아가는 것과, 원작의 복잡한 도시 시뮬레이션 알고리즘이 100% 동일한가는 완전히 다른 문제다.
“모든 게임 시스템과 세부 로직이 원작과 완벽하게 일치하는지 검증하라”는 후속 프롬프트를 받자, Opus는 상상을 초월하는 방식으로 검증 시스템을 짰다. 스스로 Unicorn PowerPC 에뮬레이터 엔진 위에 고전 Mac OS 시스템 콜을 목업(Mock-up)한 파이썬 테스트 하네스를 빌드한 것이다.
그리고 원본 90년대 게임 바이너리와 자기가 새로 짠 TypeScript 버전을 나란히 띄워놓고, 똑같은 조작 입력을 주면서 게임 내 시간으로 10,000일(Day) 동안 도시를 초고속으로 시뮬레이션했다. 그러면서 예산, 인구 증가율, 범죄율, 화재 발생 빈도 같은 내부 게임 상태(state)가 소수점 단위까지 동일하게 수렴하는지 일일이 대조했다.
복제가 제대로 됐는지 확인하겠다고 90년대 CPU 에뮬레이터를 백그라운드에서 직접 구현해 1만 일 치 연산 상태를 검증했다는 발상 자체가 소름 돋는다. 단순히 겉모습만 흉내 낸 ‘시각적 클론’이 아니라, 내부 톱니바퀴까지 일치하는 ‘수학적 복제’를 달성한 것이다. 더 무서운 건 이 정교한 검증 파이프라인을 사람이 시킨 게 아니라 에이전트가 알아서 자율적으로 설계했다는 점이다.
커뮤니티의 반응과 회의론
물론 모든 반응이 찬양 일색은 아니었다. “이거 그냥 가상머신(VM)에서 원본 게임 돌려놓고 화면만 스트리밍한 거 아니냐??”는 의심 섞인 댓글도 달렸다. 하지만 실제 코드를 까보면 에뮬레이터는 어디까지나 로직 정합성을 비교하기 위한 일회성 검증 도구였을 뿐, 브라우저에서 쌩쌩하게 돌아가는 본체는 100% 순수 TypeScript와 WebGL로 재작성된 코드였다.
다만 “실제 플레이 영상을 보면 프레임 드랍이 살짝 있고 오브젝트가 팝인되는 현상이 있다”는 지적은 팩트였다. 그럼에도 불구하고 프롬프트 한 번으로 이 정도 엔지니어링 결과물을 뽑아냈다는 사실 자체에 개발자들은 혀를 내둘렀다.
- 직접 플레이해 볼 수 있는 라이브 데모: https://dator.dev/city2026/
왜 여기에 주목해야 할까
이 쇼케이스가 주는 충격은 “AI가 게임도 뚝딱 만드네” 수준이 아니다. ‘자율적 엔지니어링 워크플로우’를 에이전트 스스로 완벽하게 조립했다는 점이 핵심이다.
역분석(Decompilation) → 현대적 재구현(Reimplementation) → 무결성 검증(Verification)으로 이어지는 거대한 소프트웨어 공학의 루프를 AI 혼자서 완성했다. 사람이 일일이 지시하지 않아도 “내 결과물이 진짜 맞는지 어떻게 증명할 것인가?”에 대한 해답까지 스스로 만들어낸 것이다.
시니어 개발자들이 신입에게 늘 강조하는 미덕들이 있다. 원본 문서를 깊게 파고드는 집요함, 품질이 떨어지는 기술을 과감히 쳐내는 판단력, 그리고 자기 코드를 의심하며 극한의 엣지 케이스까지 테스트 코드로 검증하는 습관. 바로 그 훌륭한 엔지니어링 습관들을 AI가 흉내 내기 시작했다는 사실이 많은 생각을 하게 만든다.
정리
Opus 5.5가 보여준 것은 고전 게임의 화려한 부활 그 이상이다. 명확한 목표와 소스코드가 주어졌을 때, 에이전트가 스스로 가설을 세우고, 코드를 작성하고, 테스트 하네스를 만들어 검증까지 끝내는 ‘완전 자율 루프’의 가능성을 눈앞에 증명했다.
단 한 줄의 프롬프트가 촉발한 이 거대한 스노우볼을 보면서, 앞으로 소프트웨어 개발자의 역할이 어디로 향해야 하는지 다시금 곱씹어보게 된다.