Twitch Plays Conway's Game of Life

Twitch Plays Conway's Game of Life


Turning the most famous zero-player game into a Massively Multiplayer Online Game


Play Twitch Plays Conway's Game of Life when the stream is on.

How to play Twitch Plays Conway's Game of Life:

  1. Login in to Twitch.tv and join the BZH314 channel chat (https://www.twitch.tv/bzh314)
  2. Enter chat commands to turn cells alive or dead. All commands start with an exclamation mark and are case insensitive.

    Command structure:

    !<COMMAND> coordinate1 coordinate2 ...

    Examples:

    • !on 0,0
    • !on 0,0 -1,-1 0,1
    • !off 5,5

    See the list of commands below for all the commands.

  3. The World is a square grid. Its size is displayed at the top of the video stream.
  4. The World origin (coordinates 0,0) is at the center of the square, so for a 101x101 grid, the coordinates of the cells range from -50 to +50.

    Example with a 69x69 Grid:

    • the top left is at -50,+50
    • the top right is at +50,+50
    • the bottom right is at +50,-50
    • the bottom left is at -50,-50

NOTE: There can be up 10 seconds delay between a chat command and its result on screen.


Learn more:


Stay tuned for updates:

List of Commands

!ON

Description

Turn on cell(s).

Note that turning on a single cell might not be enough for it to survive the next generation if it does not have at least two live neighbors (underpopulation) or if it has more than three live neighbors (overpopulation).

Format

!ON coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!OFF

Description

Turn off cell(s).

Note that turning off a cell might lead to it being reborn right away on the next generation. For instance in the case of a block, turning only one of its cell off will not destroy the block.

Format

!OFF coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!SHOW

Description

Display a marker at the location of cell(s).

When too many markers are requested, ECS (Entity Component System) markers are displayed for performance reasons. These markers do not display the coordinates.

Format

!SHOW coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!OWNER

Description

Display the owner of cell(s).

Format

!OWNER coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!HELP

Description

Quick help for each command.

Format

!HELP <COMMAND>

Examples

!TTL

Description

Natural death of cell(s) after N generations.

Format

!TTL <GENERATION COUNT> coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!RANDOM

Description

Randomize the life of cell(s).

Format

!RANDOM coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!RLE

Description

Run Length Encoded (RLE) is a short way to represent patterns in the Game Of Life.

o means a live cell, b a dead cell and $ is the new line character. Each of these (o, b and $) can be preceded by a number which indicates how many times a dead/alive cell (or new line) occurs.

Twitch has a limit of 500 characters per chat message. Some RLEs are longer than this (example: Sir Robin). Twitch Plays Conway's Game of Life supports these long RLEs automatically if you split them in less than 500 characters chunks:

Format

!RLE <RLE STRING> coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!RRLE

Description

Reverse Run Length Encoded, or Negative RLE, treats a RLE string and flips the cell status: live cells are dead and dead cells are alive.

This silly command allows to reuse the whole RLE catalog while performing a "negative" filter on them.

Format

!RRLE <RLE STRING> coordinate1 coordinate2 ...

The coordinates can be comma separated (ex: 0,0) or period separated (ex: 0.0) for faster use with the numpad.

Ranges: Coordinates support ranges with the colon separator. Example: !on 0:2,5 is equivalent to: !on 0,5 1,5 2,5

Wildcards: Coordinates support the * wildcard. Example: !on *,0 will turn on the whole horizontal line where y=0 (the x axis)

Keywords: Coordinates support the all keyword. Example: !on all will turn all the cells on (resulting in clearing the whole grid)

Examples

!PLAY

Description

Start or join a Battle Royale game.

Once the first player starts a new Battle Royale game, additional players have 60 seconds to join the current game.

A minimum of 2 players is required to start a game.

A player joining while a game is in progress will be entered to play in the next game.

The gameplay is similar in spirit to Fortnite, PUBG, Realm Royale, ... or any of your favorite Battle Royale game: last one standing wins.

A Battle Royale game in Twitch Plays Conway's Game of Life works as follows:

Format

!PLAY

Examples

<MYSTERY COMMAND>

Description

The mystery command has not been found yet. Can you find it?