Skip to content

A 3D game engine built on top of LibGDX and Bullet3 physics engine.

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE.rtf
Notifications You must be signed in to change notification settings

nrsharip/hammergenics

Repository files navigation

Overview

HammerGenics is a simple, extensible (with Groovy - under development) 3D sanbox game engine built on top of the LibGDX ecosystem and Bullet3 physics engine. It has been designed with an idea that the game development could be as simple, seamless and joyful as playing with Lego.

Major features introduced in current version are:

  • Material Attributes editor: the UI and underlying structures to edit colors, textures and lights
  • Mesh editor: including node transforms and render, vertex analysis for primitive shapes (used for tiles in map/terrain generation)
  • Animation editor: allows to create the keyframes and edit the bones affected with the timeline frame slider
  • Map Generator: with the help of noise4j allows to generate the terrain chunk grids and apply the tiles, which are primitive terrain parts in the form of a squerish mesh
  • Physics: currently all the models that are being added to the project have rigid body created and being added to the Dynamics World (Bullet3) engine
  • AI Algorithms: currently implemented the following features from gdx-ai library: Steering, Formations and Pathfinding Algorithms

Presentations

CREDITS: assets by Kenney (Animated Characters 1, Car Kit, Weapon Pack etc.)

Material Attributes Mesh Editor
Animations Map Generation
Physics AI Algorithms

License

HammerGenics is released under the Apache License Version 2.0.

As an example of another well-known projects under the very same license think of Android OS, Spring Framework, Gradle or Apache HTTP Server (or any of these projects) which are installed and used by the majority of people and organizations accross the globe.

Address any licensing concerns or considerations regarding the use of HammerGenics as you were dealing with any of these projects.

Development

  1. Project Structure
    1. :core Project
    2. Credits for libraries

Project Structure

Run the following command to see the list of the projects in the build: .\gradlew.bat projects.

The output should look like this:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'hammergenics'
+--- Project ':android'
+--- Project ':core'
+--- Project ':desktop'
+--- Project ':html'
\--- Project ':ios'

Other useful commands:

  1. .\gradlew.bat model (also for project specific info, e.g. .\gradlew.bat core:model)
  2. .\gradlew.bat properties (also for project specific info, e.g. .\gradlew.bat core:properties)
  3. .\gradlew.bat tasks -all (also for project specific info, e.g. .\gradlew.bat core:tasks)

:core Project

The following is a high-level component diagram to show the folder/package structure of the :core Project and the dependencies these packages have on the external libraries

Credits for libraries

Dependency Authors License
com.badlogicgames.gdx:gdx:1.10.0 authors file license
com.badlogicgames.gdx:gdx-ai:1.8.2 davebaol license
com.badlogicgames.gdx:gdx-bullet:1.10.0 authors file license
com.github.czyzby:noise4j:0.1.0 czyzby license
com.kotcrab.vis:vis-ui:1.5.0 Pawel Pastuszak license
com.github.mgsx-dev.gdx-gltf:gltf:1.0.0 mgsx-dev license
com.github.Anuken:GdxGifRecorder:1.4 Anuken license
com.strongjoshua:libgdx-inGameConsole:1.0.0 StrongJoshua license
com.github.MarcinSc:libgdx-graph:9f6c886795ad1a201e3140fef262ee5a86f0cac1 Marcin Sciesinski license
org.codehaus.groovy:groovy-all:3.0.8 see wiki