npm package: @sujalchoudhari/neptune-js
Description: A JavaScript Based Game Development Framework
Author: Sujal Choudhari
Latest version: 3.3.1

<h1 align="center"> Neptune.js </h1>

<p align="center">
GitHub Stats: <br>
<img src="https://badgen.net/github/stars/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/forks/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/tags/SujalChoudhari/neptune.js"/>
<br>
<br>
Contributors: <br>
<img src="https://badgen.net/github/contributors/SujalChoudhari/neptune.js"/>
<br>
<a href="https://github.com/SujalChoudhari/Neptune.js/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=SujalChoudhari/Neptune.js" />
</a>
<br>
<br>
Releases: <br>
<img src="https://badgen.net/github/tag/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/releases/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/license/SujalChoudhari/neptune.js"/>
<br>
<br>
Issues: <br>
<img src="https://badgen.net/github/issues/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/closed-issues/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/open-issues/SujalChoudhari/neptune.js"/>
<img src="https://badgen.net/github/label-issues/SujalChoudhari/neptune.js/enhancement"/>
<img src="https://badgen.net/github/label-issues/SujalChoudhari/neptune.js/help wanted"/>
<img src="https://badgen.net/github/label-issues/SujalChoudhari/neptune.js/fixed"/>
<img src="https://badgen.net/github/label-issues/SujalChoudhari/neptune.js/bug"/>


## What is Neptune.js?

Neptune is a set of JavaScript modules designed for writing video games. 
Neptune adds functionality on top of the excellent combo of HTML5 canvas and JavaScript. 
This allows you to create games and multimedia programs in the javascript language.
Neptune is highly portable and runs on browsers.
Neptune is free. Released under the MIT licence, you can create open source, 
freeware, shareware, and commercial games with it. See the licence for full details. 

## Easy to use
It's Simple and easy to use. 
Even kids can make simple game in Neptune.
Readable code and Documentation makes it easy to use. 
Neptune almost has all the necessary modules for a 2d game.

## Entity Component based System (v3.0+)
Now the Engine uses a entity component based system.
This makes the engine more advance, as major engines use this system.
Due to more advance Systems, the learning curve is moderate.

## Minimalist design
Neptune is a small framework. 
It does not have hundreds of thousands of lines of code for things you won't use anyway. 
The core is kept simple and is documented neatly.

## Modular
You can use pieces of neptune separately. 
Want to use a different sound library? That's fine. 
Many of the core modules can be initialized and used separately.
Neptune provides various features which can work independently to some extent.

## Fast
You don't have to wory about the main loop and the event cycles. 
Neptune handles these things under the hood, and provides you with a clean but customisable features.


## Features

<details>
<summary> Entity Component based System </summary>
<p>
Neptune uses a entity component based system.
This system is suitable for editor based engines.
</p>
</details>


<details>
  <summary>2D Rendering</summary>
  <p>
    Neptune has a 2D rendering system. 
    It uses HTML5 canvas to render the game.
  </p>
  <ul>
    <details>
      <summary> Shapes </summary>
      <p>
        Neptune has a built in shape renderer. 
        It can render basic shapes like rectangle, circle, line, etc.
      </p>
      <ul>
        <li>Circle</li>
        <li>Line</li>
        <li>Rectangle</li>
        <li>Polygon</li>
        <li>Triangle</li>
      </ul>
    </details>
    <details>
      <summary> UI </summary>
      <p>
        Neptune has a built in UI renderer. 
        It can render basic UI elements like sprites, text, etc.
      </p>
      <ul>
        <details>
        <summary> Containers </summary>
        <p>
          Neptune has a built in UI container renderer. 
          It can render basic UI containers like Margin Container, Grid Container, etc.
        <ul>
          <li>Margin</li>
          <li>HBox</li>
          <li>VBox</li>
          <li>Grid</li>
        </ul>
        </details>
        <li>Panel</li>
        <li>Sprite</li>
        <li>Text</li>
    </details>
     <summary> Text </summary>
    <summary> Images </summary>
  </ul>
</details>



<details>
<summary> Events </summary>
<p>
Neptune has a built in event system.
It can handle mouse, keyboard, touch, etc.
</p>
<ul>
  <li>Keyboard</li>
  <li>Mouse</li>
  <li>Touch</li>
</ul>
</details>

<details>
<summary> Audio </summary>
<p>
Neptune has a built in audio system.
It can play audio files.
</p>
<ul>
  <li>Sound</li>
  <li>Music</li>
</details>

<details>
<summary> Color </summary>
<p>
Neptune has a built in color system.
It can handle colors.
</p>
<ul>
  <li>Color</li>
  <li>Color Templates</li>
</details>

<details>
<summary> Math </summary>
<p>
Neptune has a built in math system.
It can handle basic math functions.
</p>
<ul>
  <li>Vector2</li>
  <li>Math Library</li>