Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mr-ema/zell-life
Conway's Game of Life using the Zig programming language and the Raylib library for graphics.
https://github.com/mr-ema/zell-life
conways-game-of-life game-of-life raygui raylib state-machine zig
Last synced: about 2 months ago
JSON representation
Conway's Game of Life using the Zig programming language and the Raylib library for graphics.
- Host: GitHub
- URL: https://github.com/mr-ema/zell-life
- Owner: mr-ema
- License: other
- Created: 2023-06-23T18:31:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-23T02:38:54.000Z (7 months ago)
- Last Synced: 2024-06-23T05:37:52.621Z (7 months ago)
- Topics: conways-game-of-life, game-of-life, raygui, raylib, state-machine, zig
- Language: Zig
- Homepage:
- Size: 952 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Zig Conway's Game Of Life
This is a simple implementation of Conway's Game of Life using the Zig
programming language and the Raylib library for graphics.## Navigation
- [Demo](#demo)
- [Features](#features)
- [Default Bindings](#default-bindings)
- [How To Build](#how-to-build-and-run-it)## Resources
- [DockerFile For Raylib Projects](https://gist.github.com/mr-ema/d78ec7fefb8ea1ed8b2907eb2f0dc9da)
- [Nix Shell For Raylib Projects](https://github.com/mr-ema/dotfiles/blob/main/nixos/shells/raylib.nix)
- [Zig](https://ziglang.org)
- [Awesome Zig](https://github.com/C-BJ/awesome-zig)
- [Raylib](https://www.raylib.com)
- [Zig Raylib Bindings](https://github.com/ryupold/raylib.zig)
- [Zig Showdown](https://github.com/zig-community/Zig-Showdown)## Features
- [x] Pause the simulation (with key)
- [x] Save/Load grid from file
- [x] Zoom in and out
- [x] Configurable speed## Planned
- [ ] Multiple grids
- [ ] Load/Save configuration using a json file
- [ ] Improve debug logging and errors
- [ ] Custom patterns
- [ ] (UI) Improved user interface for better usability and aesthetics
- [ ] (UI) add a toast notification system to show errors and useful info
- [ ] Performance optimization for handling larger grids and more complex operations
- [ ] Advanced features for managing multiple grids simultaneously## Demo
![Demo](https://github.com/mr-ema/zell-life/blob/main/docs/demo.gif)## Default Bindings
| Action | Binding |
| --------------------------------- | --------------------------------- |
| Pause Simulation | `` |
| Purge Life | `` |
| Toggle Edit Mode | `` |
| Zoom In | `<=>` or `` |
| Zoom Out | `<->` or `` |
| Move Cam Around | `` |
| Toggle Cell State (Edit Mode) | `` |## How To Build And Run It
Before you start, make sure you have the required dependencies for
raylib installed. Refer to the official [raylib - build and installation
guide](https://github.com/raysan5/raylib#build-and-installation) for
instructions on setting up the necessary environment.```
git clone https://github.com/mr-ema/zell-life
```
```
cd ./zell-life
```
```
zig build run
```