Git Product home page Git Product logo

jot's Introduction

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

jot's People

Contributors

g-amador avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

jot's Issues

Demos not working

There are additional demos (not available) not working properly:

  1. Fluids demos
  • Jos Stam Stable Fluids [2D]
  • Jos Stam Stable Fluids [3D]
  • Mick West Practical Fluids [2D]
  • Mick West Practical Fluids [3D]
  • Ripple/Rain Effect [2D]
  • Ripple/Rain Effect [3D]
  1. Particle System Demos:
  • SPH Particle fluids [2D]
  • SPH Particle fluids [3D]
  • Explosions
  1. Network Demos with Publish/Subscribe architecture:
  • JGroups demo
  • Orbit 1 Legacy demo

Update Readme for v2.0

  1. Add features by module info:
  • Supported pathfinders
  • Physic features
  • available demos list and features
  • others if any ...
    • update architecture image (assimp or jassimp to be included)
  1. Wiki

  • 1st game using core template
  • 1st game using framework template
  1. etc (update latter if forgetting something)

No framework template

The same template as for the core module should be available for the framework module. This template will serve to illustrate the code reduction achieved using the framework module instead of the core module.

Additional pathfinders

Add additional pathfinders (only ones without task box are novelty):

  1. A* and variants:
  • Dijkstra, Best First Search, Fringe search
  • Trace
  • Jump Point Search
  1. Any angle pathfinders:
  • Theta*
  1. General purpose bounded sub-optimal searches
  • Alpha*
  • Static Weighted A*
  • Revised Dynamic Weighted A*
  • Optimistic Search and Skeptical Search
  1. Influence based:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.