yet another game of life

namark d60a09e8b5 oi! пре 1 месец
docs c40937c912 Updated build instructions. пре 1 месец
source 333d14f1f6 Standard remove_cvref_t. пре 1 месец
tools c3037d1e15 Added libsimple_file dependency. пре 5 година
.gitignore 8f381c910c Ignoring local build configuration file for linked libraries. пре 1 година
COPYRIGHT d60a09e8b5 oi! пре 1 месец
LICENSE 202bd9b73f Basic proof of concept. пре 5 година
Makefile 7206e8598d Replaced the makefile with a template. пре 1 месец
README.md 0de69e47f2 Updated readme. пре 5 година

README.md

Multi-threaded game of life with 8 generation history (current + 7 generations back).

Use instructions

Overview

TODO

Controls

Mouse : draw living cells.
Enter/Return : toggle life at ~60 generation per second.
Right Arrow : step forward one generation.
Left Arrow : step backward one generation.
+ : zoom in
- : zoom out
~ : fill the screen at random
Backspace : clear the screen
Shift+R : start/stop recording, when recording is stopped, it'll take some time to render it to a file, frames being played back at the rate of video encoding
Escape : stop the rendering process (video until that point still saved)

Special secret dangerous command line parameters

Positional:

  1. filename for recording, required to enable the recording functionality

Build instructions

Below are build instructions for GNU systems (including cygwin on Windows), primarily using make. If that does not suit your needs it should not be hard to set this project up with your favorite build system/IDE. See the dependencies in the next section.
Basic setup
Compile and run
More on some of these makeshift tools

Dependencies

libsdl2
libsimple_graphical
libsimple_interactive
libsimple_musical
libsimple_geom
libsimple_support
libsimple_file
libsimple_sdlcore
cpp_tools
Optional:
libtheora
libogg

The SDL2 headers are expected to be in a directory named SDL2. libsimple are all static libraries. cpp_tools is only necessary for building with GNU make as outlined in the previous section.
There are also source archives in releases, which have all the simple libraries included, so using that you won't have to individually setup those.

Licensing

COPYRIGHT and LICENSE apply to all the files in this repository unless otherwise noted in the files themselves.