1 | # Sideral JS
|
2 |
|
3 | [![Stories in Ready](https://badge.waffle.io/js-republic/sideral.png?label=ready&title=Ready)](https://waffle.io/js-republic/sideral) [![Build Status](https://travis-ci.org/js-republic/sideral.svg?branch=master)](https://travis-ci.org/js-republic/sideral) [![Open Source Love](https://badges.frapsoft.com/os/v2/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badge/) [![License: GPL v3](https://img.shields.io/badge/license-GPL--V3-blue.svg)](https://www.gnu.org/licenses/quick-guide-gplv3.fr.html) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
|
4 |
|
5 | :rocket::construction: Project in construction :construction::rocket:
|
6 |
|
7 | Sideral JS is the next generation of video-game framework with JavaScript. This framework is made to create a more complexe 2D game with all features needed like HUD, Event Manager, Map Editor, Quest manager, etc.
|
8 | It also provide complete library to make your game online.
|
9 |
|
10 | ## What is inside this framework ?
|
11 |
|
12 | - A fast and lightweight library to build easily a complete game. It will embark all feature needed like HUD, Event, Map, Character, Input, etc.
|
13 | - A complete map editor to create a platform or a RPG game with a complete event system
|
14 | - A big feature to transform your game into a complete MMO with server calculation, data prediction, etc.
|
15 | - A new way to build your game with ES6
|
16 |
|
17 | ## How does it works ?
|
18 |
|
19 | More than just a framework, Sideral is a complete workspace with HUB and many features to improve your game development.
|
20 | It is separate into 3 features :
|
21 | - the **library** with all you need to develop your game
|
22 | - A second **library** for server side and transform your game into a complete MMO
|
23 | - A **map editor** to build your map in WYSIWYG
|
24 | - A **hub** which list all your games, and give quick access to all features listed above
|
25 |
|
26 | ## Installation
|
27 |
|
28 | At this time, it's preferable to use git and clone this repository like this :
|
29 | ```
|
30 | git clone https://github.com/js-republic/sideral sideral
|
31 | ```
|
32 | Your folder will be your workspaces to create project.
|
33 |
|
34 | ## Usage
|
35 |
|
36 | ### Core library
|
37 | This is all the src you need to create your game. The library has theses classes :
|
38 |
|
39 | #### Scene
|
40 | A **Scene** is typically a canvas. A game can have multiple **Scenes** and *it must have multiple **Scenes***.
|
41 |
|
42 | #### Entity
|
43 | An **Entity** is an object to be render in a **Scene**.
|
44 |
|
45 | #### Engine
|
46 | **Engine** is a singleton instance. The aim of this object is to loop and give information about **FPS**
|
47 |
|
48 | #### Element
|
49 | an **Element** is the superclass of this library. It provide lifecycle of each element such as **initialize**, **update** and **render** functions.
|
50 |
|
51 | #### Component
|
52 | a **Component** is a class which is not inherited from **Element** class because it doesnot have static lifecycle. A component must be composed by an **Element** and add additional instructions into **Element**'s function such as **update** for example.
|
53 |
|
54 | ### HUB
|
55 |
|
56 | The **HUB** will be your best friend to develop your game. To run it, go into your workspace project and run :
|
57 | ```
|
58 | yarn start
|
59 | ```
|
60 | Now you can access to your main hub page at *http://localhost:3000*
|
61 |
|
62 | With the HUB, you can :
|
63 | - See all your games stocked into the **public/games** folder
|
64 | - Create an empty game. It will be stocked into the **public/games** folder
|
65 | - Access to other features of **Sideral**
|
66 |
|
67 | ## Contributing
|
68 |
|
69 | See [CONTRIBUTING.md](./CONTRIBUTING.md) to contribute to this project.
|
70 |
|
71 | ## License
|
72 |
|
73 | SGR project is a licensed under [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).
|