A FLOSS Java/Lua Bloxel game engine. This is a read-only mirror of the GitLab repository.
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.
common
jme-client
server
.gitignore
CONTRIBUTE
LICENSE
README
bonsaimind-code-style.xml

README

Quadracoatl
===========

Quadracoatl is an engine for moddable, multiplayer bloxel games created with
Lua.

Its goal is to provide a feature rich platform for creating and powering
bloxel games of all kinds with the following goals:

 * Multiplayer by default, Singleplayer is "just offline/direct multiplayer".
 * Core API written in Java, scriptable in Lua.
 * Games are moddable by default, a "game" is just a fancy package for mods.
 * Client can connect to any server, the lient receives all necessary
   information/data/logic from the server upon connecting to it.


License
-------

Quadracoatl is licensed under the Lesser GNU General Public License version 3 or
later.


Components
----------

Quadracoatl is powered by the following components:

 * [Java 1.8+][java], main platform
 * [jMonkeyEngine][jmonkeyengine], main engine
   * [LWJGL][lwjgl-github], OpenGL layer
 * [KryoNet][kryonet-github], Network layer
   * [Kryo][kryo-github], serialization system
 * [LuaJ][luaj-sourceforge], Scripting system


Components licenses
-------------------

The licenses of all libraries are as follows (please refer to the attached
license file of each library for detailed information):

 * KryoNet
   * asm, BSD-like
   * jsonbeans, BSD-like
   * kryo, BSD-like
   * kryonet, BSD-like
   * minlog, BSD-like
   * objenesis, BSD-like
   * reflect-asm, BSD-like
 * jMonkeyEngine
   * jme, BSD-like
   * lwjgl, BSD-like
 * jopt-simple  
   * jopt-simple, MIT
 * LuaJ
   * bcel, Apache
   * luaj, BSD-like
 * RSyntaxTextArea
   * rsyntaxtextarea, BSD-like
 * Trove
   * trove, LGPL 2.1


Terminology
-----------

    Cosmos -> Realm(s) -> Chunks -> Blocks
    
    Game -> Mod(s) -> Scripts
                   -> Resources (textures, models, etc.)

### Block

A block is the smallest unit of the engine, it resembles exactly one block in
the game world.

### Chunk

A chunk is a collection of blocks within the realm.

### Cosmos

The cosmos is the over-arching data structure, it can contain multiple realms.

### Realm

A realm defines one world and contains chunks.



 [java]: https://www.java.com/
 [jmonkeyengine]: https://jmonkeyengine.org/
 [kryo-github]: https://github.com/EsotericSoftware/kryo
 [kryonet-github]: https://github.com/EsotericSoftware/kryonet
 [luaj-sourceforge]: https://sourceforge.net/projects/luaj/
 [lwjgl-github]: https://github.com/LWJGL/lwjgl3