A JavaScript-based (React + Redux) fantasy computer for making, sharing, and playing tiny retro-looking games.
Branch: dev
Clone or download
Latest commit 7ec125c Feb 23, 2019

README.md

SCRIPT-8
SCRIPT-8 is a JavaScript-based (React + Redux) fantasy computer for making, sharing, and playing tiny retro-looking games (called cassettes). It's free, browser-based, and open-source. Cassettes are written in JavaScript.

SCRIPT-8 is designed to encourage play — the kind of wonder-filled play children experience as they explore and learn about the world. In order to support this goal, everything in SCRIPT-8 has immediate feedback. It is what some call a "livecoding" environment.

It features:

  • a code editor where the game changes as you type
    a code editor where the game changes as you type

  • a slider to help you tweak numbers without typing
    a slider to help you tweak numbers without typing

  • a time-traveling tool so you can pause and rewind
    a time-traveling tool so you can pause and rewind

  • buttons that show a character's past and future paths
    buttons that show a character's past and future paths

  • the ability to combine all the above so you can manipulate time
    the ability to combine all the above so you can manipulate time

  • a sprite editor where the game instantly displays your edits
    a sprite editor where the game instantly displays your edits

  • a map editor where changes alter the game's behavior, in real-time
    a map editor where changes alter the game's behavior, in real-time

  • a music editor where you create phrases, group them into chains, and turn those into songs
    a music editor where you create phrases, group them into chains, and turn those into songs

Each cassette is recorded to a URL you can share with anyone.

Play cassettes with a keyboard or gamepad.

You can inspect any cassette's contents (even if it's not yours), change the code, art, or music, and record it to a different cassette — a new version.

SCRIPT-8 is heavily influenced by Bret Victor's ideas (specifically Inventing on principle and Learnable programming) and Joseph White's PICO-8 (the best of all fantasy consoles).

If you have any questions, come join us on the Fantasy Consoles discord server, a friendly place to chat about these sophisticated, cutting-edge computers. The server has a dedicated SCRIPT-8 room.

SCRIPT-8 nyx8 palette by Javier Guerrero. Sprites in Los Hermanos Bros. by Johan Vinet.

Setup for local development

0 - Clone or download this repository

1 - Install prerequisites

2 - Install this repository

yarn

3 - Start a development server

Open up 2 terminals. In the first one, type:

yarn iframe-start

Wait until it says Compiled successfully!. Then, in the second terminal, type:

yarn start

This will open SCRIPT-8 on http://localhost:3000.

Note for windows users

In some circumstances yarn can complain with something like this error:

yarn run v1.13.0
$ npm-run-all -p iframe-start-js iframe-watch-css
$ cd src/iframe; react-scripts start
$ cd src/iframe; stylus src/css/Iframe.styl -o src/css -w
The system cannot find the path specified.
The system cannot find the path specified.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "iframe-start-js" exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

A quick fix is to install Git for windows and configure npm to use Git Bash instead of cmd to run package.json scripts.

yarn config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

To deploy

Switch to dev branch. Pull latest. Then,

  • yarn run version
  • yarn run deploy

Other information

SCRIPT-8 was built with create-react-app. Consult its guide for more instructions (e.g. running tests, building).