Game
Conway's Game of Life
12 years ago

What is Life? Part #1


If Game of Life was a person, it could’ve been my father, as it is 44 years old. Did John Conway realize how much of a phenomenon he created back in 1970? We may never know.

What is Game of Life not?

First of all, in contrary to its name, it is not a game per se. Or, according to wikipedia, we might call it a zero-player game. Nomenclature aside, it means that the game “plays itself” with no user input other than setting an initial state.

Also, despite the fact that some GoL structures may resemble living organisms, we can’t consider it any form of artificial intelligence. Honestly, it takes much more than 200 lines of code to model a sensible AI algorithm.

So, what is *Game of** Life* then?

It is a cellular automaton - in theory, an infinite graph (let’s call it an array) of nodes (cells) that have a finite number of states, that can change in discrete time moments (generations); with a set of rules (typically based on Moore or von Neumann neighborhood¹) determining what the next state of the given cell will be.

Of course, we aren’t very good at creating infinite arrays, so typically we assume that cells outside programmed boundaries cannot change state and it still works fine.

In classic GoL variant we have a 2D array containing square cells that can exist in two states: dead and alive. Rules are following:

  1. If a dead cell has exactly three living Moore neighbors in generation t, it will become alive in generation t+1 because of reproduction, else it stays dead;

  2. If an alive cell has less than two or more than three Moore neighbors in generation t, it dies in generation t+1 because of under- or overpopulation, else it stays alive.

There are of course other cellular automata (another well-known example could be very confusing Langton’s ant), but Game of Life is somewhat unique because of how suprisingly accurate it seems in comparison to some primitive forms of Earth life - hence the name. And because with a lot of imagination we can use some structures as logic gates etc. it is considered a Turing-complete machine.

What’s next?

I mostly covered the theoretical introduction in this part. In the next article I’m willing to share how much fun I had implementing Game of Life in Ruby and show you some amazing contraptions you can make.


¹ These are the two most used neighborhood types in orthogonal-grid graph theory:

Von Neumann neighborhood - consists of 4 closest nodes orthogonal to given cell (i.e. Manhattan distance = 1);

Moore neighborhood - consists of 8 nodes adjacent to given cell (i.e. Chebyshev distance = 1).



0 comments

Loading...

Next up

Just as Pecaminosa's musicians #improvise this rendition of #LittleSunflower 🌻, so do we improvise with this post you're reading. 😂

What's coming out of your own improvs? 🤔

#Pecaminosa | #IndieDev | #OST | #Jazz

Heya! I wanted to show some gameplay progress i made so far. I hope you like it ^^

Sometimes the suction cup get sticky. Small animation I made in Blender after doing my tutorial on picking up/dropping objects in animations. Crate model by jQueary (https://sketchfab.com/3d-models/game-ready-sci-fi-crate-d98deca6…).

In the quest for accessibility, I'm adding Resurrection Shrines for players on the 'novice' end of the platforming spectrum.

In order to unlock the power of a Shrine, you must collect 3 'Souls' from your dead corpses! (the floating blue orbs)

Demonstration of the spells and their effects :)!

Let me introduce you to the new Mech line: Gendai Spec. Those are Mech that specializes in surprise attacks, covered operations, and stealth. They are equipped with melee weapons but one of Gendai's frames supports sniper rifles.

If you’ve played the Vault demo and enjoyed it, please consider ‘liking’ the game page here on Gamejolt and/or leave a comment!

Also please consider tossing Vault on your Wishlist, I really appreciate your support!

https://store.steampowered.com/app/1251800

Explosive domino effect

We're knee deep in multiple large features and "game feel". Quick peek behind the scenes in this weeks Dev Blog: https://bit.ly/2QmmaQM

Out of boredom and curiosity, I coded Sailor Jupiter's Argentine Backbreaker.