Reflecting on a Year of Gamedev in Zig
Zig for Gamedev & Ecosystem
- Solo gamedev in Zig is seen as viable, especially when leveraging C/C++ libraries via Zig’s strong FFI and ability to compile C/C++/ObjC directly.
- Native Zig gamedev ecosystem is still thin; many rely on C libraries (e.g., raylib, SDL) and wrappers (e.g., zig-gamedev). Pure Zig alternatives like Mach are emerging but not yet as mature as long‑standing C libs.
- Some warn that spending too much time on language/engine tinkering vs actually making a game is a risk, similar to what’s happened in Rust gamedev.
Breaking Changes & Pre‑1.0 Status
- Breaking changes are acknowledged but described by users as manageable: typically renames or small API shifts, documented in release notes.
- Others consider using a pre‑1.0 language for a shippable game “building on sand” and worry about long‑term maintenance.
Build System & Composability
- Many praise Zig’s build system as simpler and more coherent than CMake/Maven/Gradle: builds are just Zig programs using stdlib APIs.
- Critics argue imperative build scripts are hard to compose and extend (coverage, codegen, etc.), preferring more declarative systems (Meson, Ninja, Cargo). Comparisons to Gradle’s “too much freedom” appear.
Learning Support: Discord vs Stack Overflow vs Forums
- Zig Discord is described as very responsive for beginners, with questions answered in minutes.
- Strong pushback: Discord is proprietary, poorly searchable from the web, and traps repeated Q&A; some call this a regression from Stack Overflow’s canonical, indexed answers.
- Others note SO has become hostile and beginner‑unfriendly; chat feels more engaging and faster.
- Suggested middle grounds: Ziggit (Discourse), AnswerOverflow-style indexing, or exporting Discord threads; debate over whether Discord’s internal search and threading are “good enough.”
Language Features & Bugs
- A reported
atanissue is clarified as acomptime_floatvsf32type quirk in Zig’s type system; considered a stdlib oversight, not absence ofatan. comptimeis generally viewed as simpler and more pleasant than C++ templates, with better error messages, though low‑level and sometimes bug‑prone.- String handling is criticized as too manual (allocators, explicit frees); others show patterns using stack buffers,
allocPrint, and arena allocators to keep it reasonable, noting safety tradeoffs aroundunreachable. - SIMD: Zig has first‑class vectors but no built‑in matrices; some see this as fine (“it’s all vectors”), others point out Odin/C3 offer richer SIMD/matrix ergonomics.
Rust vs Zig & “Developer Joy”
- Several comments frame Zig as “more joyful” or better suited for low‑level OS/gamedev than Rust, citing easier FFI and fewer borrow‑checker contortions.
- Counterarguments emphasize Rust’s high long‑term satisfaction, stronger safety, and that frustration is often front‑loaded into the learning curve or compile times.
- Some see Zig’s current honeymoon phase as typical of new languages; Rust’s ergonomic pain is compared to “paying upfront” for safety.