Conway's Game of Life - Cellular Automata
A downloadable Game Dev Exercise for Windows
Hi everybody !
This small project has been done within the timeframe of a relaxing weekend, and is part of a game development exercise routine that I started to impose to myself.
Conway's Game of Life, a very famous Cellular Automata (or Automaton), caught my eyes a long time ago and it was time for me to tackle this amazing piece. Also called a zero-player game, the whole system will evolve by itself, without requiring any input from the user. It is also a great example of the phenomena called 'Emergent Behaviour', a fascinating property that can be seen here, as only a handful of instructions are given to the system, before initialization.
The instructions used here are the same ones that were used for the Conway's original Game of Life. Here is the list of the instructions (in the exact order):
- Any live cell with fewer than two live neighbours dies.
- Any live cell with two or three live neighbours lives on to the next generation (next frame in this case).
- Any live cell with more than three live neighbours dies.
- Any dead cell with exactly three live neighbours becomes a live cell the next generation.
To play, all you have to do is click on any number of cells on the screen. This will change the state of the cell (alive or dead). The cells that are lit up are considered alive while the ones that are not are considered dead. Try making shapes with live cells and then click on Space to play the simulation and enjoy the result. You can also alter the state of each cell at runtime (the game doesn't have to be paused).
Of course, I added some extra controls on top of it, to give it some extra kick. You will be able to change the framerate at which the program will run (going from 1 to 60 fps), pause the game and reset the grid/board.
*I feel like this project is finished but if you wish to see more features (like a zoom or a way to change the amount of cells in the grid, for example), please, contact me and I will see what I can do about it.*
As an alternative, you can also find this project on GitHub at this address: https://github.com/PolyDevelop/CellularAutomata
You can 100% use this project, without any limitation. You can pass it on, modify it, sell it or anything else that your heart desire! (...credits are still appreciated though :)...)
Stay safe and thank you for taking a look at this very cool program!
Sincerely,
PtitPoly
Edit: A menu is now accessible by pressing the Esc key. You will then be able to have an overview of all the shortcuts available, a list of the presets available (newly added as well), a few sliders to adjust the post-processing effects and a brand new Exit button (that leaves the game for real this time!).
Soon: A way to change the color of the cells and (maybe) a more optimized and performant code capable of running the simulation in browser.
Status | Released |
Platforms | Windows |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | PtitPoly |
Genre | Simulation |
Made with | Adobe Photoshop, Unity |
Tags | 2D, Automation, cellular-automata, cellular-automaton, conway, game-of-life, zero-player |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Mouse |
Download
Click download now to get access to the following files:
Comments
Log in with itch.io to leave a comment.
how the heck do i leave the game!!!!
I use Alt-F4 for so many things that I may have forgotten an exit button... I will re-upload a newer version with an exit button.
Thanks for the heads-up :)
when?
I am working on it today so expect the update tonight or tomorrow.
I will also add a couple things to it that I wanted to change a while back, hence the little delay.
The game has been modified to include an Exit button.
To access menu, press "Escape" key and click on the "Exit" button to leave the game. You can also view the current shortcuts for the game.
I am currently reworking the menu to include other settings like modifying the color of active cells, adding presets to the game, modifying post-processing values (bloom, vignette, chromatic aberration, etc...) and others simple additions.
I am also working on a way to improve performances to allow me to include a WebGL version, without being limited with 5-6 FPS on browser (which is currently the case). This is probably an addition to the long run as I need to rework the whole grid creation process.
The Git will also be updated as I keep working on it.