Command & Conquer Generals: macOS, iPhone 및 iPad용 네이티브 포트

Apple Silicon에서 네이티브 실행

Command & Conquer Generals: Zero Hour는 이제 Apple Silicon Mac, iPhone 및 iPad에서 네이티브로 플레이할 수 있습니다. 이 구현은 원본 2003 엔진을 ARM64용으로 컴파일하여 에뮬레이션을 피하고, 게임의 캠페인, 스커미시 및 Generals Challenge 모드를 최신 Apple 하드웨어에서 직접 실행할 수 있게 합니다.

모바일 플레이를 용이하게 하기 위해, 이 포트는 다음과 같은 맞춤형 RTS 터치 컨트롤을 포함합니다:

  • Tap-selectdrag-box를 사용한 유닛 선택.
  • Long-press를 사용한 선택 해제.
  • Two-finger scrollpinch zoom을 사용한 카메라 이동.

기술 아키텍처 및 렌더링 파이프라인

이 포트는 레거시 DirectX 8 호출을 Apple의 Metal API와 호환되는 형식으로 변환하기 위해 복잡한 렌더링 체인을 사용합니다. 렌더링 파이프라인은 다음 경로를 따릅니다: DirectX 8 $\rightarrow$ DXVK $\rightarrow$ Vulkan $\rightarrow$ MoltenVK $\rightarrow$ Metal.

이 아키텍처는 렌더링 엔진을 완전히 재작성할 필요 없이 기존 번역 레이어를 활용할 수 있게 합니다. 이 프로젝트는 EA의 GPL v3 소스 릴리스를 기반으로 하며, fbraz3/GeneralsX 포크를 기반으로 구축되었습니다. GeneralsX가 macOS 및 Linux 포트의 초기 작업을 담당했지만, 이 특정 포크는 iOS/iPadOS 지원 및 다양한 엔진 수정 사항을 추가합니다.

빌드 및 배포 과정

macOS 요구 사항

macOS에서 게임을 실행하려면 다음 도구 체인이 필요합니다:

  • Build Tools: cmake, ninja, meson, pkgconf, 및 xcode-select.
  • Dependency Management: vcpkg (전체 복제) 및 LunarG Vulkan SDK.
  • Assets: 게임의 합법적인 복사본(Steam을 통해)이 필요합니다. 프로젝트에는 게임 에셋이 배포되지 않기 때문입니다.

iOS 및 iPadOS 요구 사항

모바일 기기에 배포하려면 추가 도구가 필요합니다:

  • Xcode: Apple ID에 로그인된 전체 설치.
  • Developer Account: 앱 서명을 위한 무료 또는 유료 Apple Developer 팀 ID.
  • Tooling: 프로젝트 생성을 위한 xcodegen.

AI와 함께하는 엔지니어링: Claude Code의 역할

이 프로젝트는 인간의 지시와 AI의 협업으로 개발되었으며, 특히 Claude Code(Anthropic의 Fable 모델)를 사용했습니다. 개발자 Ammaar Reshi가 프로젝트를 지도하고 플레이 테스트를 수행했으며, AI가 엔지니어링의 상당 부분을 담당했습니다.

이 접근 방식은 레거시 소프트웨어 포팅에서 AI의 효율성에 대해 기술 커뮤니티 내에서 논의를 촉발했습니다. 일부 기여자는 기본 macOS 포트가 이미 GeneralsX에 의해 구축되었다고 언급했으며, 다른 이들은 대규모 변환 및 버그 고고학의 지루한 작업을 AI가 처리하는 가치에 주목했습니다.

알려진 문제 및 제한 사항

성공적인 포트에도 불구하고, 모바일 플랫폼에서는 몇 가지 안정성 문제가 남아 있습니다:

  • Memory Management: iPad에서 장시간 세션이 메모리 사용량이 높아(3GB 초과) iOS에 의해 종료될 수 있습니다.
  • Lifecycle Crashes: 게임 중에 앱을 백그라운드로 전환하면 라이프사이클 일시 정지 메커니즘의 경쟁 조건으로 인해 가끔 충돌이 발생할 수 있습니다.

커뮤니티 인사이트 및 반론

Hacker News의 기술 관찰자들은 구현에 대해 여러 가지 점을 제기했습니다:

"제가 제대로 읽은 건가요? 실제로 렌더링되기 전에 5개의 다른 레이어를 거치는 API 호출을 한다니? 꽤 놀랍네요."

비평가들은 렌더링에 사용된 "간접성의 젠가 타워" 효율성을 의문시하며, LLM을 사용해 렌더링 코드를 직접 Metal로 포팅할 수 있었을 것이라고 제안했습니다. 다른 이들은 프로젝트 제목이 다소 오해를 불러일으킬 수 있다고 지적했는데, 주요 macOS 포팅 작업은 GeneralsX 프로젝트가 수행했으며, 이 포크는 iOS/iPadOS 확장에 초점을 맞추고 있기 때문입니다.

반대로, 일부 개발자는 이를 게임 보존의 미래를 위한 청사진으로 보고 있으며, LLM이 공식 소스 릴리스가 없는 클래식 타이틀을 역공학하고 포팅하는 작업을 크게 쉽게 만들 것이라고 제안합니다.

Sources

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • Dispatch
  • Dispatch