All Projects → floooh → pacman.zig

floooh / pacman.zig

Licence: MIT License
Simple Pacman clone written in Zig.

Programming Languages

Zig
133 projects
HTML
75241 projects
GLSL
2045 projects
Metal
113 projects

pacman.zig

build

Like https://github.com/floooh/pacman.c, but in Zig.

Zig bindings for the sokol headers are here: https://github.com/floooh/sokol-zig

WASM version

Build and Run

Requires Zig version 0.9.0.

Zig installation: https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager

git clone https://github.com/floooh/pacman.zig
cd pacman.zig
zig build run

On Windows, rendering is done through D3D11, on Linux through OpenGL and on macOS through Metal.

On Linux, you need to install the usual dev-packages for GL-, X11- and ALSA-development.

Experimental iOS support

NOTE: this is mostly a "it technically works" demo, the game can't be played with touch inputs yet, only tapping is detected to get from the intro screen into the game loop.

Since building for iOS is a cross-compilation-scenario, Xcode must be installed to provide the iOS platform SDKs.

For the iOS simulator:

git clone https://github.com/floooh/pacman.zig
cd pacman.zig
zig build --sysroot $(xcrun --sdk iphonesimulator --show-sdk-path) -Dtarget=aarch64-ios-simulator

# start the simulator...
open -a Simulator.app

# wait until the simulator has booted up, then install the app with:
xcrun simctl install booted zig-out/bin/Pacman.app

# run the game with:
xcrun simctl launch booted Pacman.zig 

Building for an actual device works like this, but installing and running hasn't been tested yet:

git clone https://github.com/floooh/pacman.zig
cd pacman.zig
zig build --sysroot $(xcrun --sdk iphoneos --show-sdk-path) -Dtarget=aarch64-ios

Experimental web support

Building the project to run in web browsers requires the Emscripten SDK to provide a sysroot and linker:

git clone https://github.com/floooh/pacman.zig
cd pacman.zig

# install emsdk into a subdirectory
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
cd ..

# build for wasm32-emscripten
zig build -Drelease-small -Dtarget=wasm32-emscripten --sysroot emsdk/upstream/emscripten/cache/sysroot

The resulting .html, .js and .wasm files are under zig-out/web.

...to build and start the result in a browser, add a 'run' argument to 'zig build', this uses the Emscripten SDK emrun tool to start a local webserver and the browser. Note that you need to hit Ctrl-C to exit after closing the browser:

zig build run -Drelease-small -Dtarget=wasm32-emscripten --sysroot emsdk/upstream/emscripten/cache/sysroot

Note that the Emscripten build currently requires a couple of hacks and workarounds in the build process, details are in the build.zig file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].