2026년 7월 6일 · 4² AI 뉴스레터
맥OS에서 원주율로 변환된 명작 게임 등장
GitHub
파이랩 정리
맥OS에서 원주율로 변환된 명작 게임 등장
소개
GitHub 프로젝트 'Generals-Mac-iOS-iPad'는 Command & Conquer Generals: Zero Hour를 macOS, iPhone 및 iPad에서 네이티브로 실행할 수 있게 하는 프로젝트입니다. 이 프로젝트는 EA의 GPL v3 소스 릴리스를 기반으로 하며, DXVK/MoltenVK 렌더러와 RTS 터치 컨트롤을 사용합니다. 게임 자산은 포함되지 않으며, 사용자는 자신의 복사본을 준비해야 합니다.
프로젝트 개요
- 리포지토리 구조: 다양한 폴더와 파일이 포함되어 있으며, 각 파일은 프로젝트의 특정 기능을 담당합니다.
- 플랫폼 지원: 이 프로젝트는 Apple Silicon Mac, iPhone 및 iPad에서 캠페인, 스커미시, Generals Challenge 모드를 지원합니다.
- 기술 스택: DirectX 8을 Vulkan으로 변환하는 DXVK와 Vulkan을 Metal로 변환하는 MoltenVK를 사용하여 그래픽을 렌더링합니다.
- 터치 컨트롤: RTS 게임에 적합한 터치 컨트롤이 구현되어 있으며, 탭 선택, 드래그 박스, 롱 프레스 해제, 두 손가락 스크롤, 핀치 줌 기능을 제공합니다.
포팅 과정
- 기반 작업: EA의 소스 릴리스와 커뮤니티의 현대화 작업, Fighter19의 Unix 포트, GeneralsX의 macOS/Linux 작업을 기반으로 합니다.
- iOS 포팅 도전: iOS는 2003년 Windows RTS 게임에 적대적인 환경입니다. iOS 앱은 읽기 전용 코드 서명 번들에 존재하며, 모든 구성 파일 쓰기, 캐시 및 저장 경로를 재설정해야 했습니다.
- 렌더링 변환: DirectX 8을 사용하는 엔진을 iPad의 Metal로 변환하기 위해 DXVK와 MoltenVK를 사용했습니다. DXVK는 iPhoneOS용으로 처음 빌드되었으며, Vulkan 로더에 패치를 적용했습니다.
- 터치 이벤트 처리: SDL3를 사용하여 원시 터치 이벤트를 처리하며, RTS 의미론을 추가했습니다. 탭은 2003 GUI가 호버를 처리할 때까지 연기되고, 드래그는 선택 박스 또는 카메라 팬을 결정하며, 롱 프레스는 오른쪽 클릭으로 변환됩니다.
버그 수정 및 개선
- 버그 탐색: 미니맵이 검게 표시되는 문제, 무작위로 음소거되는 EVA 음성 문제 등 다양한 버그를 실제 기기에서 추적하고 수정했습니다.
- 협업: 인간과 AI의 협업으로 이루어졌으며, 엔지니어링 작업은 Claude Code(Anthropic의 Claude, Fable 모델)가 수행하고, 인간이 증상을 설명하고 결정을 내렸습니다.
설치 및 실행
macOS에서 시작하기
- 필수 도구 설치:
- Xcode 선택 및 설치
- Homebrew로 cmake, ninja, meson, pkgconf 설치
- Steamcmd 설치
- Vcpkg 설치:
- Vcpkg 클론 및 부트스트랩
- 환경 변수 설정
- Vulkan SDK 설치:
- LunarG Vulkan SDK 다운로드 및 환경 변수 설정
- 프로젝트 클론 및 빌드:
- 리포지토리 클론
- 빌드 스크립트 실행
- 게임 데이터 가져오기 및 실행
iPhone/iPad에서 시작하기
- macOS 필수 조건 외 추가 요구 사항:
- Xcode 설치 및 Apple ID 로그인
- xcodegen 설치
- 빌드 및 설치:
- DXVK 서브모듈 업데이트
- MoltenVK 프레임워크 가져오기
- Liberation 폰트 설정
- CMake를 사용하여 iOS용 빌드 및 패키징
알려진 문제 및 향후 계획
- 알려진 문제: iPad에서 긴 세션은 메모리 문제로 인해 종료될 수 있으며, 중간에 백그라운드로 전환하면 가끔 충돌이 발생할 수 있습니다.
- 향후 계획: Command & Conquer: Renegade 포팅 작업이 진행 중이며, OpenW3D 커뮤니티 프로젝트와 협력하여 더 깊은 작업을 수행할 예정입니다.
기여 및 크레딧
이 포트는 여러 커뮤니티와 개인의 기여로 이루어졌으며, 각 기여자의 작업이 프로젝트에 통합되었습니다. EA의 GPL v3 소스 릴리스와 커뮤니티의 다양한 작업이 이 포트의 기반이 되었습니다.