An object-oriented Javascript/HTML5 game application framework.
JavaScript PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
classes
dependencies
documentation
examples
README
TODO

README

# Romano

An object-oriented Javascript/HTML5 game application framework.

## Goals

Some pleasantly-abstracted 2D game engine logic in Javascript which is somewhat agnostic about display technology. Or at least enough that, for now, it can drive a canvas element and/or an SVG element.

"Game engine logic" means, for now:

- a viewport abstraction
- a "game space" abstraction, with a "camera" attached to the viewport
- sprite hierarchy, with parent transforms inherited by children
- some basic physics baked in (acceleration, angular momentum, etc)
- collision detection

Some other niceties I'm shooting for:

- compatibility with RaphaelJS (SVG only)
- simultaneous canvas and SVG rendering (??)
- on-the-fly SVG file loading (working)
- oct-tree collision detection
- object graph persistence capable of handling reference cycles

## Dependencies

Currently Romano depends on [RaphaelJS](http://raphaeljs.com) and [jQuery](http://jQuery.com). The Raphael dependency will be optional for those who want it, but jQuery's going to stick around.

## Status

In development. SVG support and much of the basic game engine logic is more or less working in an alpha-ish way. 

There is some basic support for sprites and mouse events in there for canvas surfaces now. More on its way.

Note that example code may crash older WebKit builds. The latest browsers do not crash, but Safari was having issues a while back.

## Next Steps

Maybe in this order, maybe not:

1. Continue refactoring/abstracting for canvas support.
2. More examples.
3. Graph persistence?
4. ?????
5. Profit! (ok, probably not)

## "Romano?"

This project started as a teaching tool for a university course in interactive design. The code was tied to and depended on [RaphaelJS](http://raphaeljs.com). It's moving away from that now, but it needed a name, and Guilio Romano was a pupil of the artist Raphael Urbino. Also, Romano is a kind of cheese and I like cheese. So the name stuck. :)

## License

The Romano core is licensed under [the MIT license](http://www.opensource.org/licenses/mit-license.php).