Original game and concept by Anna Anthropy.

Code by Leon Arnott.

Sounds by Liz Ryerson.

World files "Demo World" (defaultworld.js) and "Babycastles World" (defaultworld_bc.js) by Anna Anthropy.

The emoji image assets used are copyright Apple, Inc.

Libraries used

Compilers used

  • Babel for ES6 backwards-compatibility compilation.
  • Browserify for CJS module compilation.
  • node-sass to compile SCSS to CSS.

Codebase taxonomy

  • A cell is a single graphical slot that can hold an emoji. These are used to implement the game field, the drag-and-drop editor palettes, and the drop slots within the editor.

  • Cells can be configured by the player to have a certain behaviour. There are three hard-coded behaviours: Player, Item (called "terrain" in the codebase), and Solid.

  • Cells can have up to three brains, which are sets of actions to perform when a player cell touches the cell.

  • A shout is a short flashing string that appears when a player cell interacts with another cell. The "Say these words" brains options control these.

  • The game field is known as the grid. It consists of a square of cells, plus a background colour. It is also responsible for receiving player input, by calling events on all the cells with "player" behaviour.

  • The interface elements below the grid are the tray, which holds frequently used emoji, and the graveyard, which is automatically populated with emoji that are deleted.

  • Also, the interface element where a cell's behaviour and brains are configured is called the bench.

How to build

Run sudo npm install at the command line to install the libraries, then grunt to hopefully create the files acitome.css and acitome.js. Distribute these in the same folder as acitome.html, apple.png, bg.png and the sounds directory.


BSD 2-clause. Included sound effects (the contents of the sounds directory) are copyright Liz Ryerson, CC-BY 3.0.