Zig游戏引擎和图形工具包-Mach
2023-08-16 08:56:03 阿炯

Mach 是一款游戏引擎和图形工具包,使用 Zig 编写,用于创建游戏、图形应用程序和桌面/移动应用程序。用于构建高性能、真正跨平台、健壮且模块化的游戏,可视化图形用户界面应用程序。采用 ApacheMIT 协议授权。


Zig game engine & graphics toolkit for building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps.

Mach 使用 Zig C/C++ 编译器构建所有内容:GLFW、Google Chrome 的 WebGPU 实现,甚至是 DirectX 着色器编译器。预构建的二进制文件用于 WebGPU,甚至不必等待编译 - 只需添加 `-Ddawn-from-source=true` 即可实现 100% 从源构建。


特性
数据驱动,工具导向
可组合,可与 Unity 和 Unreal 竞争(等编辑器等组件完全成熟时)

注意:Mach 处于早期阶段,尚未准备好投入生产。

尝试

60 秒内创建跨平台图形,拥有统一的着色器语言和计算着色器:


git clone --recursive https://github.com/hexops/mach-examples
cd mach-examples/
zig build run-boids

仓库

Mach 有许多库可用于 Zig 中的游戏开发 —— 不必使用整个引擎,所有的库都可以轻松安装,均提供交叉编译和平台支持:
mach-glfw :具有 100% API 覆盖率的 Ziggified GLFW 绑定
mach-freetype :Ziggified Freetype 2 & HarfBuzz 绑定
mach-gpu-dawn :Google 的 Dawn WebGPU 实现,与 Zig 交叉编译成一个静态库
mach-system-sdk :用于与 Zig 交叉编译的更多库

支持的平台


最新版本:0.2
团队开发 Mach 已有两年,此版本经历了一年多的开发周期,包含数千次 commit,修复了 300 多个 issue,于2023年8月中旬发布。0.2 版本的一项重要变化是将 Mach Core 和 Mach Engine 完全分离 —— 方便用户更好地选择所需的功能。比如有人只需要使用底层窗口、输入和 GPU 功能,不需要其他特性,那么他就可以只选择 Mach Core。如果只对引擎有需求,那就只用 Mach Engine 即可。


Mach Core
其目标是实现真正的跨平台底层窗口、输入和 GPU 功能。它目前支持 Linux、Windows 和 Mac,对 WebAssembly 和浏览器的支持正在积极开发中,未来还将支持移动设备。通过使用 Zig 的构建系统编译 Google Chrome 浏览器的 WebGPU 实现,它将 Vulkan、DirectX、Metal 和现代 OpenGL 的强大功能集成到一个简洁的图形 API 和着色器语言中。

此外还提供无缝多线程功能,这意味着渲染和输入处理完全可以相互解耦,可以获得平滑的窗口大小调整,渲染循环和输入处理还能够以不同的频率运行。比如对于 60FPS 的渲染循环,通常应用程序处理键盘和鼠标事件的动态速度要快得多(与操作系统所能提供的速度相当)。

Mach Engine
开发团队表示 Mach Engine 尚未准备好公开提供,v0.2 版本的重点是对其基础架构进行深度修改和改进,主要是构建 Zig gamedev 生态系统,并为 Mach Core、Engine 和正在开始开发的一款游戏构建所需的基础软件包。


更多详情查看发行公告

项目主页:https://github.com/hexops/mach