22년 된 게임이 애플 실리콘에서 네이티브로 실행되기까지: 코드 번역의 시대

22년 된 게임이 애플 실리콘에서 네이티브로 실행되기까지: 코드 번역의 시대

Fable게임Mac포팅ClaudeApple Silicon커맨드 앤 컨커

데이터 소스:HN + web research · HN

22년 된 게임이 애플 실리콘에서 네이티브로 실행되기까지

7월 4일, 「Generals-Mac-iOS-iPad」라는 이름의 오픈소스 프로젝트가 기술 커뮤니티 Hacker News의 첫 페이지를 장식하며 292포인트를 획득했다. 프로젝트 설명은 단 한 문장이었다: 2003년 클래식 실시간 전략 게임 『커맨드 앤 컨커: 제너럴』이 이제 Apple Mac, iPhone, iPad에서 네이티브 속도로 실행된다. 가상 머신도, 에뮬레이터도 필요 없다.

필자가 이 소식을 처음 접했을 때의 반응은 이랬다: 「그냥 옛날 게임 하나 포팅된 것 아닌가, 뭐가 그리 대단하다고?」 하지만 자세히 읽어 내려갈수록, 이 일은 「포팅」이라는 단어 두 글자보다 훨씬 복잡하다는 것을 깨달았다. 이 프로젝트의 배후에는 Fable이라는 코드 번역 도구가 있다. Windows 프로그램의 코드를 직접 「번역」하여 Apple 기기가 실행할 수 있는 명령어로 바꾼다. 그 어떤 것도 모방하지 않는다.

이 일의 의미는 22년 된 게임 하나의 부활을 훨씬 뛰어넘는다.

C&C Generals Zero Hour의 Apple 기기 실행 스크린샷 ▲ C&C Generals: Zero Hour가 Apple Silicon Mac에서 네이티브로 실행되는 모습. 출처: GitHub ammaarreshi/Generals-Mac-iOS-iPad

에뮬레이터의 「원죄」: 왜 지금까지의 방식으로는 충분하지 않았나

Mac에서 Windows 게임을 해 본 적이 있다면, 십중팔구 두 가지 방법을 써 봤을 것이다.

첫 번째는 가상 머신 — Mac 안에 Windows 시스템을 하나 더 설치하는 것이다. 자신의 집 안에 또 하나의 방을 짓고 그 안에서 생활하는 격이다. 이 「방」 자체가 막대한 자원 — 메모리, 프로세서, 전력 — 을 소모하며, 그 안에서의 생활은 결코 본채만큼 편할 수 없다. 가상 머신에서 게임을 돌리면 프레임 저하, 입력 지연, 팬이 미친 듯이 도는 현상은 일상이다.

두 번째는 에뮬레이터 — 소프트웨어로 자신이 Windows 컴퓨터인 척하며, Windows 명령어를 하나하나 「흉내 내어 실행」하는 방식이다. 마치 영문 메뉴판 앞에서 알파벳 하나하나 사전을 찾아가며 읽는 사람과 같다. 느리고 실수하기 쉽다. 에뮬레이터의 성능 손실은 보통 30%에서 80% 사이이며, 대형 게임에게는 거의 용납할 수 없는 수준이다.

Apple은 2020년부터 Mac의 칩을 인텔에서 자체 설계한 M 시리즈(흔히 「Apple Silicon」이라고 부르는)로 전환했다. 이 전환은 엄청난 성능 향상을 가져왔지만, 하나의 부작용도 함께 가져왔다: Windows와 Mac 사이의 「언어」가 완전히 달라진 것이다. 예전에는 적어도 동일한 칩 아키텍처였지만, 이제는 가장 밑바닥의 작동 방식조차 완전히 다르다.

즉, Apple Silicon Mac에서 Windows 게임을 하고 싶다면, 예전보다도 더 어려워졌다는 뜻이다.

Fable은 에뮬레이터가 아니라 번역가다

Fable이 이 문제를 해결하는 방식은 에뮬레이터와 본질적으로 다르다.

에뮬레이터는 「흉내 내는 것」이다: 시시각각 소프트웨어로 Windows의 하드웨어 환경을 모방하며, 게임이 한 걸음 움직일 때마다 한 걸음씩 따라 흉내 낸다. 이 모방 과정 자체가 곧 막대한 성능 오버헤드다.

Fable의 접근은 번역이다: 게임의 원본 코드를 직접 읽어 들여, Apple Silicon이 이해할 수 있는 형태로 다시 써낸다. 번역이 완료된 결과물은 진짜 네이티브 Apple 애플리케이션이다 — 그 어떤 것을 「흉내 내기」 위한 중간 계층도 필요 없다.

비유하자면: 에뮬레이터는 동시통역사를 고용한 것과 같다. 한마디 한마디 말할 때마다 통역을 거쳐야 하므로 느리고 오류도 잦다. Fable은 책 전체를 미리 번역해서 인쇄해 두는 것이다. 독자가 손에 쥔 것은 모국어로 된 책 한 권이며, 읽는 속도는 원서와 완전히 동일하다.

이 차이는 성능으로 직결된다. Apple M 시리즈 칩을 탑재한 Mac에서, Fable을 통해 포팅된 『커맨드 앤 컨커: 제너럴』의 실행 부드러움은 「네이티브 앱에 필적한다」 — 이것은 프로젝트 저자의 표현 그대로다. 필자가 직접 테스트하지는 않았지만, Hacker News의 여러 개발자 피드백에 따르면 M1 MacBook Air 같은 엔트리급 기기에서도 안정적인 프레임률을 유지하며, 팬이 고속으로 회전할 필요조차 없다고 한다.

더욱 놀라운 것은 그래픽 렌더링 파이프라인이다. 이 2003년 게임은 Microsoft의 Windows 전용 그래픽 기술을 사용하고 있어, Apple 기기에서는 전혀 지원되지 않는다. 게임 화면을 Apple 기기에서 표시할 수 있도록, 포팅 작업자는 하나의 「번역 체인」을 구축했다 — 게임의 그래픽 명령을 한 계층 또 한 계층 변환하여, 최종적으로 Apple이 이해할 수 있는 그래픽 언어로 바꾸는 것이다.

비유하자면: 서로 직접 통하는 공통 언어가 없는 사람들 사이의 대화와 같다. 첫 번째 사람에게 중국어로 말하고, 첫 번째 사람은 영어로 번역해 두 번째 사람에게 전달하고, 두 번째 사람은 프랑스어로 번역해 세 번째 사람에게, 세 번째 사람은 아랍어로 번역해 최종 목적지에 전달한다. 번역 계층이 하나 더해질 때마다 오류 가능성도 한 번씩 더 늘어난다 — 하지만 이 프로젝트에서는 모든 「번역」이 사전에 컴파일된 프로그램이며, 게임 실행 중에는 추가 오버헤드가 거의 없다.

HN의 한 개발자가 「이게 실제로 돌아간다는 게 놀랍다」라고 감탄하는 것을 보았다. 다른 개발자는 정확히 핵심을 찔러 답했다: 「이런 로우레벨 라이브러리들은 이미 충분히 성숙하고 안정적이다. 놀랄 일이 아니다 — 애초에 이런 시나리오를 위해 설계된 것이다.」

Apple의 담장 정원, 그리고 담을 넘는 사람들

여기서 피해 갈 수 없는 주제가 있다: Apple의 폐쇄 생태계.

Apple은 Mac에서 Windows 그래픽 인터페이스(DirectX)를 지원한 적이 없으며, 오픈소스 크로스플랫폼 그래픽 표준 Vulkan의 지원도 거부해 왔다. 즉, Windows 게임을 Mac으로 가져오려는 사람은 누구나 스스로 「다리」를 놓아야만 한다 — 이 프로젝트의 5계층 번역 체인처럼 말이다.

Apple이 이렇게 하는 논리를 이해하는 것은 어렵지 않다: Mac 고유의 기술로 게임을 개발하게 하고, 그럼으로써 게임이 Apple 기기에서만 실행되도록 하여 「해자」를 형성하려는 것이다. 비즈니스 관점에서는 비난할 일이 아니다. 하지만 플레이어와 개발자에게 이 벽은, 수많은 클래식 게임들이 Apple 생태계 밖에 갇혀 있다는 것을 의미한다.

Fable과 같은 도구의 출현은 본질적으로 「담 넘기」다 — 기술적 수단으로 플랫폼 간 장벽을 우회하는 것이다. 이 도구가 말해 주는 메시지는 이렇다: Apple의 허락도, 게임 회사의 공식 포팅도 기다릴 필요 없다. 개발자 한 명과 AI 코드 번역 도구 하나만 있으면, 22년 전 Windows 게임을 오늘날의 Apple 네이티브 앱으로 만들 수 있다.

이 「담 넘기」 행위는 흥미로운 논의를 촉발시켰다: 코드 번역이 충분히 쉽고 신뢰할 수 있게 된다면, 플랫폼 간의 벽은 여전히 존재할까?

Hacker News의 한 개발자는 필자의 인상에 깊이 남는 말을 남겼다: 「최근에 GTA VI가 플랫폼에 락인되어 있어 좋아하는 책을 친구에게 건네듯이 전할 수 없다고 불평했어요. 하지만 아마도 설치 패키지 전체를 잘 보관해 두기만 하면, 머지않은 미래의 AI가 극히 낮은 비용으로 어떤 플랫폼에서든 그것을 ‘부활’시킬 수 있을지도 모릅니다.」

또 다른 개발자는 더 직설적으로 응수했다: 「DRM(디지털 저작권 보호)이 방해하지 않는다고 가정하면, GTA6가 포팅이 필요할 만큼 ‘낡을’ 때가 되면, 이런 종류의 포팅은 HN에 글 하나 올라올 가치도 없을 정도로 흔해질 거라고 장담합니다.」

이 사건의 함의

냉정하게 말해, 이 프로젝트는 Fable이 단독으로 이룬 위업이 아니다. HN의 여러 개발자 분석에 따르면, Fable(즉 Anthropic의 Claude Fable 모델, Claude Code 도구를 통해 사용)은 실제로 약 19회의 코드 커밋에만 기여했으며, 전체 프로젝트는 2000회 이상의 커밋으로 구성되어 있다. 진짜 주력은 GeneralsX 프로젝트 — EA가 GPL v3 라이선스로 오픈소스화한 『커맨드 앤 컨커: 제너럴』 원본 코드를 바탕으로, Windows에서 Mac과 Linux로의 저수준 포팅 작업을 완료한 개발자 그룹이다. Fable이 한 일은, 그 기반 위에 iPhone과 iPad의 터치스크린 지원을 추가한 것이다.

HN 사용자 중에는 이것이 「좀 제목 장사 같다」고 — 모든 공로를 Fable에 돌리고 선행 작업자들의 막대한 노력을 무시했다고 직격하는 사람도 있었다. 이 비판은 공정하다.

하지만 필자는 「Fable이 얼마나 했는가」에 집중하는 것이 오히려 핵심을 흐린다고 생각한다. 진정으로 주목할 가치가 있는 시그널은 이것이다: AI 보조 크로스플랫폼 코드 번역이, 실험실 단계의 컨셉에서 실제 사용 가능한 도구로 진화하고 있다. 오늘은 2003년산 게임 하나를 iPad로 옮기는 데 도움을 줬다. 내일은 당신이 10년 전에 산 Windows용 생산성 소프트웨어를 Mac으로 옮겨 주지 못할 이유가 있는가? 모레는 이것이 운영체제의 일부가 되어, 모든 프로그램이 태생적으로 크로스플랫폼이 되는 건 아닐까?

이 방향이 한번 걷히기 시작하면, 바뀌는 것은 게임 업계만이 아니다. 오피스 소프트웨어, 디자인 도구, 전문 소프트웨어 — 소프트웨어 생태계 전체의 크로스플랫폼 논리가 다시 쓰일 수 있다.

물론, 아직 환호하기에는 훨씬 이르다. Fable의 현재 실질적 능력, 재현 가능성, 그리고 복잡한 상업 소프트웨어를 처리할 때의 신뢰성은 모두 검증이 더 필요하다. 하지만 HN의 292포인트 뒤에는, 기술자들이 한扇의 열리고 있는 문을 목격했다는 사실이 있다.


참고 링크:

이미지 설명: 본문 원본 자료(GitHub 프로젝트 README 및 HN 토론 페이지)에는 콘텐츠 이미지가 1장만 포함되어 있으며, 바로 위의 게임 실행 스크린샷입니다. 페이지 내 나머지 img URL은 GitHub 아이콘/로고 등 장식 요소(favicon, fluidicon)로, 다른 콘텐츠 이미지는 없습니다.