TLINDEN / golsky

game of life with ebitengine
GNU General Public License v3.0
0 stars 0 forks source link
cellular-automata conways-game-of-life ebitengine game-of-life gameoflife golang

golsky - Conway's game of life written in GO

Golsky Logo

License Go Report Card

I wanted to play around a little bit with Conways Game of Life in golang and here's the result. It's a simple game using ebitengine.

John Conway himself: https://youtu.be/R9Plq-D1gEk?si=yYxs77e9yXxeSNbL

Based on: https://youtu.be/FWSR_7kZuYg?si=ix1dmo76D8AmF25F

Screenshots

golsky-mainmenu.png golsky-options.png golsky-bindings.png golsky-evolution-trace.png golsky-zoom.png golsky-debug.png golsky-capture.png golsky-captured.png golsky-dark-theme.png

Youtube video game preview

Features

Install

In the github releases page you can find ready to use binaries for your OS. Just download the one you need and use it.

Build from source

Just execute: go build . and use the resulting executable.

You'll need the golang toolchain.

Usage

The game has a couple of commandline options:

Usage of ./golsky:
  -c, --cellsize int               cell size in pixels (default 8)
  -d, --debug                      show debug info
  -D, --density int                density of random cells (default 10)
  -e, --empty                      start with an empty screen
  -H, --height int                 grid height in cells (default 40)
  -i, --invert                     invert colors (dead cell: black)
  -l, --load-state-file string     game state file
  -n, --nogrid                     do not draw grid lines
  -p, --paused                     do not start simulation (use space to start)
  -f, --rle-file string            RLE pattern file
  -r, --rule string                game rule (default "B3/S23")
  -s, --show-evolution             show evolution traces
  -t, --ticks-per-generation int   game speed: the higher the slower (default: 10) (default 10)
  -v, --version                    show version
  -W, --width int                  grid width in cells (default 40)

While it runs, there are a couple of commands you can use:

Report bugs

Please open an issue. Thanks!

License

This work is licensed under the terms of the General Public Licens version 3.

Author

Copyleft (c) 2024 Thomas von Dein