What is Frozen?
Frozen is an open-source HTML5 game engine delivering ease-of-use, rapid development through tooling and modularity.
Our goal is to apply techniques used in building modern webapps to game development, such as AMD modules, dependency management, build process, and project scaffolding.
Get Frozen
- Package Managers
Note: We supply a jam package and specify dependencies. Although these should work for game creation using the engine, frozen cannot be built or run with jam deps only
- Frozen Source (but don't forget your dependencies)
Clone it from github -git clone git://github.com/iceddev/frozen
or grab the zip: Frozen Source
Getting Started
Yeoman Generator
npm install -g yo grunt-cli bower generator-frozen
- Install yo, grunt-cli, bower, and generator-frozenmkdir your_game
- Create a new directory for your gamecd your_game
- Enter directory for you gameyo frozen
- Answer a few questions, scaffold a new game and install all dependenciesgrunt
- Starts a static server with live reloading and opens your browser to your game
Volo Create
npm install -g volo
- Install volovolo create your_game frozenjs/boilerplate
- Scaffold a new game and install all dependenciesvolo grunt
- Starts a static server with live reloading and opens your browser to your game
Documentation
Documentation is available at http://frozenjs.com/docs/
Examples
Play examples at http://frozenjs.com/examples/
Examples source code can be found at https://github.com/iceddev/frozen/tree/master/examples
Examples source code can be found at https://github.com/iceddev/frozen/tree/master/examples
Source
Source available on github: https://github.com/iceddev/frozen
Browser Support
We have tested in:
- Chrome 27 & 30-canary
- Firefox 21 & 22
- IE10 (sound with supported codecs)
- Safari 6.0.3
- Chrome for Android 27 & Beta 28 (limited sound support) - Suggestion: in
chrome://flags
, turn on "Disable gesture requirement for media playback" & "Enable WebAudio" - Firefox for Android 22 & Beta 23 (Doesn't load some Box2d examples - unsure why)
- PhantomJS 1.9.1
Most modern browsers should support this game engine if they support requestAnimationFrame or canvas, but YMMV with sounds
Rapid Development Through Tooling
Our Frozen Box2d Editor is available at http://phated.github.com/frozen-editor/
Yeoman generator can be found at https://github.com/frozenjs/generator-frozen
Volo boilerplate can be found at https://github.com/frozenjs/boilerplate
Technologies behind Frozen
While builds of Frozen may be tiny, we use some libraries and technologies behind the scenes as to not reinvent the wheel.
These technologies include:
- Node.js and npm - used for dependecy mangement for our build process and development workflow
- Grunt - task runner for our development workflow, and allows for a single entry point into development configuration
- Volo - clientside dependency management and project scaffolding tool
- Lo-Dash - low-level utility library used inside the library
- Hammer.js - multi-touch library used for mouse/touch/pointer event normalization and gestures
- dcl - used for generating constructors and supplying AOP convenience methods
- Box2d - used for physics calculations in games
- Dojo - used for AMD loader and some utility modules inside the library, Dojo build process is used to build a single JS file
- JSDoc - generates documentation for code
- Jasmine - tests all use Jasmine
- AMD - all modules are written with AMD and the single layer includes an AMD module loader
Development
Dependencies
All development tasks depend on having dependencies installed.
Use
npm install
to get all the build process dependencies Use volo add
to get all the library dependenciesBuilding the dist/frozen layer
grunt build
to lint, test, doc, and run dojo build process to build the single layerGenerating the docs
grunt docs
will lint and generate docsRunning the tests
grunt test
to lint, run tests in PhantomJS and open your default browser at the test URLLinting the project
grunt jshint:all
to lint the projectBuilding when files change
grunt watch:all
to execute grunt build
whenever a file changes.
from https://github.com/iceddev/frozen