Mach Engine

Mach Engine은 Zig 프로그래밍 언어로 게임과 그래픽스 애플리케이션을 만들기 위한 공개 게임 엔진 및 그래픽스 툴킷이다. 2021년부터 개발된 Hexops 프로젝트로, 엔진 전체를 하나의 거대한 필수 구성 요소로 사용하는 대신 창 관리·GPU·자원 처리와 게임 시스템을 필요에...

분류게임 엔진, 그래픽스·응용 프로그램 개발 툴킷
개발 주체Hexops 프로젝트와 커뮤니티
개발 시작2021년
주요 언어Zig
핵심 설계선택 가능한 모듈, 자체 플랫폼·GPU 추상화
대상게임, 시각화, 데스크톱·모바일 앱
기본 실행Mach 애플리케이션·객체 시스템과 이벤트
그래픽스플랫폼별 GPU 백엔드·셰이더 도구
이전 기술과거 WebGPU·GLFW·ECS 사용 버전 존재
빌드Zig 빌드 시스템, 명령줄 초기화 도구
개발 상태0.x 실험 단계
지원 대상Windows, Linux, macOS 중심 크로스 컴파일
라이선스MIT 및 Apache License 2.0
공식 사이트machengine.org
현행 개발Hexops 코드 호스팅
공개 미러hexops/mach

Mach Engine은 Zig 프로그래밍 언어로 게임과 그래픽스 애플리케이션을 만들기 위한 공개 게임 엔진 및 그래픽스 툴킷이다. 2021년부터 개발된 Hexops 프로젝트로, 엔진 전체를 하나의 거대한 필수 구성 요소로 사용하는 대신 창 관리·GPU·자원 처리와 게임 시스템을 필요에 따라 조합하는 모듈형 설계를 지향한다. 현재의 목표에는 게임뿐 아니라 3차원 시각화와 데스크톱·모바일 사용자 인터페이스 응용 프로그램도 포함된다.[1]

Mach는 Zig의 컴파일 시점 기능과 네이티브 코드 생성, 공통 빌드 시스템을 활용한다. 외부 C++ 게임 엔진을 감싸는 언어 바인딩이 아니라 Zig 코드가 직접 핵심 런타임과 플랫폼 계층을 구성하는 방식이다. 프로젝트의 개발 정책은 가볍고 재사용 가능한 라이브러리들을 조합하여 더 높은 수준의 통합 엔진을 형성하는 것이며, 전용 그래픽 편집기까지 갖춘 범용 엔진은 장기 목표와 단계적 개발 대상으로 설명한다.

그래픽스와 창 관리 기술은 개발 과정에서 크게 변경됐다. 과거 버전에는 GLFW와 WebGPU에 대응하는 인터페이스, ECS 기반 객체 모델이 있었지만 현재 개발 문서는 자체 플랫폼·GPU 백엔드와 고유 객체 시스템으로 이동했다고 구분한다. 특히 v0.4까지의 구조를 현재 개발판의 고정된 아키텍처로 설명하지 않는 것이 중요하다. 0.x 개발 단계에서는 공개 API와 지원 운영체제의 세부 구성도 버전별로 바뀔 수 있다.[2]

현행 프로젝트는 Zig로 CLI와 애플리케이션을 빌드하고 mach init을 통해 기본 프로그램을 구성할 수 있도록 안내한다. 초기화된 예제는 창과 GPU에 접근하여 화면에 기초적인 기하 도형을 출력하며, 사용자는 Zig 코드로 앱 상태와 장면을 확장한다. 일반적인 CMake 프로젝트가 아니라 build.zig 및 Zig 패키지 메타데이터를 이용하며, 목표 시스템을 지정하는 빌드 옵션으로 크로스 컴파일을 수행한다.[3]

2026년에는 공식 개발이 GitHub에서 code.hexops.org로 이동했고 GitHub 저장소는 가시성을 위한 미러 역할을 한다. 공개 개발 플랫폼의 변화와 런타임 버전 변경은 서로 별개의 문제다. 역사적 빌드나 예제를 재현하려면 당시의 Zig 컴파일러 버전과 의존성, 소스 커밋을 함께 기록해야 하며 최신 Mach 문서의 예제 코드를 과거 버전에 그대로 적용할 수는 없다.

프로젝트는 MIT·Apache License 2.0 계열 소스 라이선스를 함께 제공하고 모듈별 개별 라이선스를 고지한다. 전용 콘솔 SDK나 특정 모바일 개발 환경 등 외부 소프트웨어는 이 소스 공개 조건과 별개다. Mach는 Zig로 저수준 그래픽스와 고수준 게임 시스템을 모듈형으로 통합해 가는 개발 중 엔진이라는 점에서 역사적 완성 제품과 구별된다.[4]

역사

개발 배경과 기술 계보

엔진 아키텍처와 실행 모델

프로그래밍·스크립팅

렌더링과 그래픽스

객체·장면·물리

입력·오디오·네트워크

자산과 제작 도구

플랫폼과 빌드

라이선스·소스 공개

주요 활용과 영향

관련 문서

  1. Mach 공식 소개 ↩
  2. Mach 공식 표준 라이브러리와 버전 차이 ↩
  3. Mach Getting Started ↩
  4. Mach 원본 저장소 ↩