Aqua wants to provide rudimentary code for developing games in JavaScript. It isn't an engine but it provides work to help produce one.
For building:
- grunt - uglifyjs
var myGame = aqua.game(),
myGameObject = aqua.gameObject();
// setup rendering, physics, etc services
myGame.addService(someService());
...
// its a good idea to have a component type for storing position, rotation, and other location in world state
var transformComponent = function() {
aqua.base(this).constructor.call(this);
this.position = vector(0, 0);
};
transformComponent = aqua.extend(
aqua.component(),
{
// transform methods
});
myGameObject.add(transformComponent());
myGameObject.add(renderingComponent());
myGameObject.add(...);
myGame.add(myGameObject);
myGame.main();
This is an example service that replicates the tasks Game objects has by default.
var UpdateService = function() {
aqua.base(this).constructor.call(this);
};
UpdateService.prototype = aqua.extend(
aqua.gameService(),
{
ongameadd: function(game) {
this.tasks.push(
game.task({callback: game.call.bind(game, 'update')}));
this.tasks.push(
game.task({
callback: game.call.bind(game, 'lateUpdate'),
priority: 'LATE_UPDATE'}));
}
}
);