Note: proprietary materials fall under different rules, per the LICENSE.
Local Setup (all platforms)
You will need to first install Node.js
Setup Your Project
Check this project out from source:
git clone email@example.com:code-dot-org/craft.git cd craft
Next, inside the project, you need to install the project's various NPM dependencies:
And you should now be ready to spin up a development build of your new project:
npm run dev
A browser should open with a Minecraft Hour of Code test page displayed:
All of the files required to run the game live in the
npm build task is invoked, these files are compiled to a
Files in the
dist directory will always be generated and excluded from Git by the
.gitignore, as such these will removed without warning and should generally not be edited.
What's being used?
- If you intend to store development assets (i.e PSD's, Texture Packer files, etc) inside your project, store them outside of the
srcdirectory to avoid unnecessary copying during dev builds.
- Phaser.io Examples — lots of great example code
- Game Mechanic Explorer - set of game mechanic demos with Phaser source below
- Kenney.nl assets — public domain placeholder assets for spritesheets, backgrounds, etc.
- Freesound — public domain placeholder sounds
Display a list of all scripts that can be run with NPM. Notable options include:
npm run build
npm run dev
Configures and runs an un-minified development build optimised for fast watch performance with source maps and live reload. Opens browser window pointing to a test page on first build.
npm run lint
npm run test:unit
Updating or adding libraries
The project comes with an unminified version of Phaser with arcade physics, this can be replaced if you require updates or one of the alternate physics engines.
You can install new npm-compatible libraries with:
npm install --save my-package-name
Then require it in your code with e.g.
import MyCoolTimesavingLibrary from 'My-Cool-Timesaving-Library'.
Raw vendor packages can be added to
src/test-build-only and added directly to
If adding new libraries that aren't CommonJS compatible, you'll have to additionally update the Browserify shim configuration in our
We will try to follow the Airbnb ES6 styleguide.