본문으로 건너뛰기
피드

2003년작 C&C 제너럴 제로아워가 애플 실리콘·아이폰·아이패드에서 네이티브로 돈다

open-source 약 4분
vote
0
댓글
북마크

커맨드 앤 컨커 제너럴 제로아워가 에뮬레이션 없이 ARM64 네이티브로 포팅됐다는 소식이다. DirectX 8 렌더링을 DXVK, Vulkan, MoltenVK, Metal 경로로 이어 붙였고, iOS와 iPadOS용 터치 조작까지 붙었다.

  • 1

    EA가 공개한 GPL v3 엔진 소스와 GeneralsX 포트를 기반으로 iOS·iPadOS 포트를 추가함

  • 2

    게임 에셋은 포함하지 않으며 사용자가 Steam 등에서 직접 보유한 복사본이 필요함

  • 3

    iPad 장시간 플레이 시 메모리 사용량이 3GB를 넘으며 iOS가 앱을 종료할 수 있음

  • 2003년 RTS 게임인 커맨드 앤 컨커 제너럴 제로아워가 애플 실리콘 맥, 아이폰, 아이패드에서 네이티브로 돌아가게 됨

    • 캠페인, 스커미시, 제너럴 챌린지까지 지원한다고 밝힘
    • 아이패드·아이폰용 조작도 따로 만들었고, 탭 선택, 드래그 박스 선택, 길게 눌러 선택 해제, 두 손가락 스크롤, 핀치 줌 같은 RTS용 터치 제스처가 들어감
  • 핵심은 ‘에뮬레이션 아님’임

    • 2003년 엔진을 ARM64로 직접 컴파일한 포트임
    • 렌더링 경로는 DirectX 8 → DXVK → Vulkan → MoltenVK → Metal로 이어짐
    • 옛날 윈도우 게임을 애플 생태계로 끌고 오려면 그래픽 API 호환 레이어를 몇 겹이나 통과해야 하는지 보여주는 좋은 예시임
  • 기반은 EA가 GPL v3로 공개한 소스와 GeneralsX 포트임

    • GeneralsX가 macOS·Linux 포트의 큰 기반을 만들었고, 이번 포크는 iOS·iPadOS 포트와 엔진 수정들을 추가한 형태임
    • 문서도 꽤 알차게 공개돼 있음. 포팅 플레이북에는 블랙 미니맵, 조용한 EVA 음성, 이상한 효과음 같은 버그 추적 기록까지 들어감

중요

> 게임 에셋은 배포하지 않음. 사용자는 Steam 등에서 본인이 보유한 복사본을 가져와야 하고, 저장소는 엔진 코드와 포팅 도구 쪽에 초점이 있음.

  • iOS 쪽은 아직 거친 부분도 있음

    • iPad에서 오래 플레이하면 메모리 사용량이 3GB 이상으로 올라가고, iOS가 앱을 홈 화면으로 그냥 종료시킬 수 있다고 함
    • 게임 중 백그라운드로 보냈다가 돌아오는 상황에서도 드물게 크래시가 남아 있음
    • 개발자가 대놓고 “자주 저장하라”고 적어둔 게 현실적임
  • 라이선스 경계도 명확히 나눠놨음

    • 엔진 코드는 EA 소스 공개 → GeneralsX → 이번 포크로 이어지는 GPL v3 흐름임
    • 게임 에셋은 포함되지 않고, 이 저장소에서 라이선스하지도 않음
    • DXVK, MoltenVK, SDL, OpenAL Soft, FFmpeg 같은 오픈소스 컴포넌트가 같이 언급됨

기술 맥락

  • 이 포트의 기술적 선택은 기존 게임 엔진을 ARM64로 직접 빌드하고, 그래픽 API만 여러 호환 레이어로 이어 붙이는 방식이에요. 게임 로직을 새로 만들지 않아도 되기 때문에 원작 동작을 최대한 유지할 수 있거든요.

  • DirectX 8을 바로 Metal로 바꾸는 대신 DXVK와 MoltenVK를 거친 이유는 이미 검증된 레이어를 재사용할 수 있기 때문이에요. 오래된 윈도우 게임 포팅에서는 렌더링 버그를 줄이는 게 큰 일이라, 완전한 재구현보다 호환 레이어 조합이 더 현실적일 때가 많아요.

  • iOS 포트가 어려운 지점은 렌더링만이 아니에요. 터치 입력, 앱 번들에 에셋을 넣는 방식, Apple Developer 서명, 백그라운드 전환, 메모리 제한까지 플랫폼 규칙을 전부 맞춰야 하거든요.

  • 그래서 이 사례는 단순한 취미 포트라기보다, 클래식 윈도우 게임을 현대 애플 플랫폼으로 옮길 때 어떤 실패 모드를 만나고 어떤 순서로 파야 하는지 보여주는 엔지니어링 로그에 가까워요.

옛날 윈도우 게임 포팅이 단순히 ‘돌아간다’ 수준을 넘어, 렌더링 스택·입력 UX·배포 파이프라인까지 다 건드리는 일이라는 걸 잘 보여주는 사례임. 레트로 게임 보존과 오픈소스 엔진 포팅에 관심 있는 개발자라면 꽤 재밌게 볼 만함.

댓글

댓글

댓글을 불러오는 중...

open-source

러스트 컴파일러 전체를 C로 번역한 ‘크러스트씨’ 공개

한 개발자가 rustc 전체를 C 코드로 번역해 GCC와 make로 빌드할 수 있는 데모 ‘crustc’를 공개했어. 핵심은 Rust를 C로 컴파일하는 cilly 툴체인의 쇼케이스로, LLVM이나 GCC가 직접 지원하지 않는 오래되거나 특이한 플랫폼에서도 Rust를 돌릴 가능성을 노린 프로젝트야.

open-source

밸브, 스팀 머신 전면 전자잉크 화면을 MIT 라이선스로 공개

밸브가 스팀 머신용 전면 전자잉크 디스플레이를 직접 팔지는 않지만, 누구나 만들 수 있도록 설계와 제작 정보를 공개했어. 이름은 ‘인크터페이스’고, 깃랩에 MIT 라이선스로 올라와 있어서 하드웨어 액세서리 업체나 개인 제작자가 바로 따라 만들 수 있는 상태야.

open-source

고도·Zig 등 오픈소스 프로젝트, AI 생성 코드 PR 전면 차단 흐름

고도 재단을 비롯한 여러 오픈소스 프로젝트가 AI가 만든 ‘바이브 코딩’ 풀 리퀘스트를 받지 않겠다고 선을 긋고 있어. 이유는 코드 품질만이 아니라 리뷰어의 시간, 신규 기여자 멘토링, 유지보수자 양성이라는 코드 리뷰의 본래 기능이 무너진다는 데 있어.

open-source

PeerTube, 유튜브식 중앙집중을 피하는 연합형 오픈소스 영상 플랫폼

PeerTube는 유튜브, 데일리모션, 비메오처럼 데이터와 시선을 한곳에 모으는 플랫폼의 대안으로 만든 무료 오픈소스 영상 플랫폼이다. 핵심은 ActivityPub 기반 연합 구조, WebRTC 기반 피어투피어 전송, 인스턴스 간 캐싱으로 작은 서버도 더 넓은 시청자를 감당할 수 있게 하는 데 있다.

open-source

직접 조립하는 오픈소스 로봇청소기 ‘움우’, 클라우드 없이 집을 돈다

메이커스 펫이 직접 만들고 고칠 수 있는 오픈소스 로봇청소기 프로젝트 ‘움우’를 공개했다. 하드웨어, 펌웨어, 소프트웨어를 모두 열고, 2D 라이다와 ROS 2 기반 자율주행, 홈 어시스턴트 연동, 3D 프린팅 섀시를 목표로 한다. 아직 초기 단계지만 부품표, 3D 출력 파일, ROS 2 패키지, 펌웨어, 문서까지 공개하며 커뮤니티와 병렬로 개발하겠다는 점이 꽤 재밌다.