g-amador / JOT

JOT: A Modular Multi-purpose Game Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JOT (i.e., minimal thing) modular multi-purpose game engine built in Java. JOT is intended to serve as a modular multi-purpose game engine for both academia, hobbyists, and or industry.

JOT was presented as a Videojogos (VJ 2016), Covilhã, 24 and 25 nov. conference article.

Presentation: https://goo.gl/i9eJFy

Article: https://goo.gl/sGBVQT

Back to Table of contents

Step 1: install netbeans for windows

For additional instructions https://goo.gl/N1oy5k

Step 2: install tortoisegit on windows

For additional instructions https://goo.gl/Ks2sTn

Step 3: Clone JOT repository in tortoisegit

In windows explorer inside the intended cloning destination folder (**recommended C:\ **), mouse right click and in the explorer context menu and select Git Clone.

In the field URL paste https://github.com/g-amador/JOT.git and click the Ok button

For additional instructions https://goo.gl/gbqikt

Step 4: Add JogAmp env. variables to windows (only required if step 5 does not work!!!!!)

Add an environment variable to the location of the jogamp operative system libraries, e.g., in the System Variable named Path add (assuming C:\ was where JOT was clonned):

C:\JOT\lib\jogamp-all-platforms\lib

C:\JOT\lib\jogamp-all-platforms\lib\windows-i586 (for 32 bits windows)

C:\JOT\lib\jogamp-all-platforms\lib\windows-amd64 (for 64 bits windows)

For additional instructions on how to add an environment variable to windows (7-10) https://www.opentechguides.com/how-to/article/windows-10/113/windows-10-set-path.html

Step 5: Run demos or templates

Open either the template in the templates folder or either demo on the demos folder in netbeans.

Build and set as main project.

Run demo.

-Options for either template/demo are in the netbeans corresponding demo/template assets/scripts/GameConstants.js, this file can be changed between runs without require recompiling of the project.

Back to Table of contents

(UNDER CONSTRUCTION.)

Step 5: Run demos or templates

Open either the template in the templates folder or either demo on the 'demos' folder in netbeans.

Build and set as main project.

Run demo.

Options for either template/demo are in the netbeans corresponding demo/template 'assets/scripts/GameConstants.js', this file can be changed between runs without require recompiling of the project.

Back to Table of contents

JOT provides as is 4 working netbeans sample project demos, each supporting movement, model loading, direct rendering, FSP and help text, Keyboard and mouse I/O:

-Core template: a minimal example made solely with the Core layer, also includes 3D sound.

-Game World Demo: World/terrain generation demo build resorting to the framework, toolkits and core layers, also includes camera views.

-Physics Demo: Collision detection and light effects demo build resorting to the framework, toolkits and core layers.

-AI Demo: Steering behaviors and path finding demo build resorting to the framework, toolkits and core layers.

(other templates/demos exist but are currently broken thus will be available sometime in the future)

Core Template
Core Template
JOT Game World Demo JOT Physics Demo JOT AI Demo
Game World Demo Physics Demo AI Demo

Back to Table of contents

JOT is a game engine divided into layers, from bottom to top: Infrastructure, Core, Toolkits, and Framework.

Any layer component that resorts to an external library obeys to interface/abstract classes as expected by above layers. Each layer constituents can only use functionalities of the same layer or lower layers constituents. In order to replace a component in the engine, one might solely adapt the respective toolkit or additionally modify its lower layers.

Fig. 1

Infrastructure Layer

These are the libraries/frameworks in which JOT layers and components were built on.

Core Layer

The minimal set of tools that can allow the classification of a piece of software as a game engine.

Toolkits Layer

This layer includes toolkits, which are extensions to the core. There are toolkits for a number of purposes, namely artificial intelligence (AI), geometry generators, physics simulation, etc.

Framework Layer

This is the upper layer of JOT. This layer aims at the following: first, to provide management of the application/game state and scene; second, to separate the game logic from its graphical application.

Back to Table of contents

.
├── assets                                          # Images, music, sound, effects, HOG2 maps, textures, required for the demos to run. 
├── demos                                           # Netbeans projects for working demos.
├── docs                                            # Documentation files
├──── incremental-fluids                            # Original C++ source code of fluid simulators (undergoing integration into JOT).
├──── javadoc                                       # JOT javadoc.
├──── presentation                                  # JOT Videojogos (VJ 2016), Covilhã, 24 and 25 nov. conference article presentation.
├──── smallPT1.ppt.pdf                              # Java RayTracer (undergoing integration into JOT).
├──── TS-3073.pdf  
├── engine                                          # Engine Maven project (requires build prior to either of its layers or components being build/rebuilt).
├──── Core-Toolkit-Components                       # Core layer Maven project.
├──── Extension-Toolkit-Components   
├────── AI                                          # Toolkits layer AI component Maven project.
├────── Communication                               # Toolkits layer Communication component Maven project.
├────── Geometry                                    # Toolkits layer Geometry component Maven project.
├────── Physics                                     # Toolkits layer physics component Maven project.
├──── Framework-Toolkit-Components                  # Framework layer Maven project.
├── lib                                             # Infrastructure libraries and engine by layer/component generated .jars and full engine .jar
├── templates                                       # Netbeans project for core layer template.
├── LICENSE
└── README.md                          

Back to Table of contents

You are free to use and modify JOT as you see fit: to create your own templates/demos/games, to extend it, and to port it to another programming language. You cannot take the credit for making JOT! Please inform me if you either extend JOT, create more templates/demos/games for/with JOT, or port it to another programming language.

If you have any questions, feel free to e-mail me at gmail and ask away.

Good luck!

Back to Table of contents

About

JOT: A Modular Multi-purpose Game Engine

License:GNU General Public License v3.0


Languages

Language:Java 99.3%Language:R 0.3%Language:CSS 0.1%Language:Shell 0.1%Language:Batchfile 0.1%Language:XSLT 0.0%