0.0.10 • Published 10 years ago

odin v0.0.10

Weekly downloads
25
License
BSD-2-Clause
Repository
github
Last release
10 years ago

Odin

Node.js Canvas/WebGL Javascript Game Framework

Examples - Documentation

How to install with npm

// install the odin.js package
// npm package is not updated as much as the github repository
// right now it is better to download from github
$ npm install odin -g

Game

a instance of ClientGame or ServerGame is the base of your app

// on the client
var MyGame = new ClientGame({ /*options*/ }); // options effect Config.js

// if running with server, you need to call the client's connect method
MyGame.connect(/* optional callback */);
// or attach a listener to the on connect event
MyGame.on("connect", function(socket) {});


// on the server
var MyGame = new ServerGame({ /*options*/ });

// to renderer a game we need an active scene and a camera component that is within the scene
var camera = new GameObject({
    components: [
        new Transform2D,
        new Camera2D
    ]
});
var scene = new Scene;

//add camera to scene
scene.addGameObject(camera);

// then set Game's scene and camera
// set scene first, because Game.setCamera needs an active scene
MyGame.setScene(scene);
MyGame.setCamera(camera);

// to start the game call it's init function
MyGame.init();

Scenes

Scenes hold and manage GameObjects and their Components

var scene = new Scene({ /*options*/ });

//Scenes must be added to game and set as the active scene to be able to render
game.addScene(scene);

//other options are
game.addScenes(scene1, scene2, scene3...);

//same as above
game.add(scene1, scene2, scene3...);

//then set game's active scene with Game.setScene
game.setScene(scene);

GameObjects

GameObjects are containers that hold Components

var player = new GameObject({
    components: [
        // every GameObject needs a Transform
        new Transform2D({
            position: new Vec2(0, 5),
            rotation: Math.PI*0.5,
			
			// every component can be synced with the client and the server
			// by default transforms, are the only ones synced
			// only affects if created on the server
			sync: true,
			
			// every component can has a boolean weather or not to send to the client with the client and the server
			// by default all components will be sent to the client
			// only affects if created on the server
			json: true
        })
    ],
    tags: [
        "player"
    ]
});

//add to scene
scene.addGameObject(player);

//other options are
scene.addGameObjects(gameObject1, gameObject2, gameObject3...);

//same as above
scene.add(gameObject1, gameObject2, gameObject3...);
0.0.10

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.0

10 years ago

0.1.5

11 years ago

0.1.11

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago

0.0.9

11 years ago

0.0.12

11 years ago

0.0.11

11 years ago

0.0.1

11 years ago