yet another game of life

namark b6b0dce5a6 Don't complain about missing compiler flag files. 8 mesiacov pred
docs 69df507d7b Updated README and docs. 4 rokov pred
source 0a482102e5 Library update. 8 mesiacov pred
tools c3037d1e15 Added libsimple_file dependency. 4 rokov pred
.gitignore 8f381c910c Ignoring local build configuration file for linked libraries. 9 mesiacov pred
COPYRIGHT ccd021729c Updated copyright. 9 mesiacov pred
LICENSE 202bd9b73f Basic proof of concept. 4 rokov pred
Makefile b6b0dce5a6 Don't complain about missing compiler flag files. 8 mesiacov pred
README.md 0de69e47f2 Updated readme. 4 rokov pred

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.