Cover image for Zig monthly, March 2022: io_uring, physics, chess, gamedev & scripting languages
Stephen Gutekanst for Zig monthly

Posted on

Zig monthly, March 2022: io_uring, physics, chess, gamedev & scripting languages


@saltzm released AsyncIOUring - an event loop that wraps the IO_Uring library with coroutines support.

For context: io_uring is a new-ish Linux kernel feature which allows for much more efficient network/file IO. Zig has an IO_Uring library that is a convenient interface to the Linux API.

Where AsyncIOUring comes in (and why this is so cool): it's an even more convenient interface to this API, adding an async event loop that handles submission and completion via the kernel APIs. It leverages Zig's async functionality to suspend execution, letting you write serial/blocking code naturally while behind the scenes it actually leverages IO concurrency (even within a single thread!)

phyz 2D physics

@silversquirl is working on phyz, a work-in-progress physics engine for 2D games

regz: ATDF file parsing for microcontrollers

@mattnite as part of the Zig embedded group has added ATDF file parsing (used for AVR microcontrollers) to regz (a Zig code generator for microcontrollers)

ZBA (Gameboy advance emulator) updates

Rekai is continuing to work on ZBA, a gameboy advance emulator, recently implementing normal sprites and squashing enough bugs that some titles like Kirby: Nightmare in Dream Land are playable!

Avalanche - UCI Chess Engine using Neural Networks

@SnowballSH has released Avalanche:

(Probably the first) UCI Chess Engine written in Zig :D It uses Neural Networks too.

It is written 99% in Zig, utilizing a lot of Zig's awesome features such as packed structs.

It plays at around 2300 ELO (a.k.a. can beat most human professional players) now :) You can view its games against other engines here https://lichess.org/@/IceBurnEngine/all


@MichalZiulek is back with many more updates to zig-gamedev!

  • zbullet v0.1, bindings for the Bullet Physics SDK complete with 6 intro applications!
  • znoise - bindings for FastNoiseLite
  • zmesh - bindings for par_shapes.h complete with a demo
  • zmath v0.3 - SIMD math library for game developers, now with Fast Fourier Transforms, color management functions, and better docs

Mini Pixel v0.2

@captainhorst has released Mini Pixel v0.2, a pixel image editor which you can get for free on Itch.io

Marble - an experimental metamorphic testing library

@cryptocode released Marble, a metamorphic testing library:

Metamorphic testing is a powerful technique that provides additional test coverage by applying a number of transformations to test input, and then checking if certain relations still hold between the outputs. Marble will automatically run through all possible combinations of these transformations.

Mach engine v0.1 - cross platform Zig graphics in 60 seconds

I released Mach engine v0.1 after some ~9 months of work and 1,100+ commits, giving you cross-platform graphics in 60s:

git clone https://github.com/hexops/mach
cd mach/
zig build run-example
Enter fullscreen mode Exit fullscreen mode

Buzz - small/lightweight typed scripting language

@giann is creating Buzz, a small/lightweight typed scripting language written in Zig:

  • Small in size and complexity (just a bit more than Lua though)
  • Strict typing
  • Unambiguous
  • No nonsense coercion

Thanks for reading!

If you like my work on zigmonthly, Mach engine, etc. consider sponsoring me on GitHub so I can do even more of it!

Top comments (1)

flipbit profile image

Awesome! I just got my red triangle from mach engine :)