/voodoo2d

👹 2D Java Game Engine built in OpenGL

Primary LanguageJavaMIT LicenseMIT

Voodoo 2D

A lightweight engine to easily build complex cross-platform 2D games in Java.

Build Status MIT License

Main Features

  • Basic Game Infrastructure (GameLoop, Configuration, ...)
  • 2D Render Engine (GUI Components, Spritesheet Animations, Ambient Lighting, Particle System, ...)
  • 2D Sound Engine (support for .ogg)
  • 2D Physics Engine
  • Support for Tile Maps in .tmx format (e.g. made with Tiled Editor)
  • Player input via Keyboard/Mouse

Code:

Mesh mesh = Mesh.loadMesh("textures/player.png", 64); // Create new mesh with size of 64x64 pixels
GameObject gameObject = new GameObject(mesh); // Makes a new gameObject from mesh
Animation run = new Animation(gameObject, 0, 3, 6); // Creates new animation with frames 0 - 3 at 6 fps
run.play(); // Play the animation!
INPUT
if(window.isKeyPressed(GLFW_KEY_D)) { // Checks if "D" key is down
    run.play(); // Plays our animation!
COLLISION
aabb = new AABB(); // Make a new collision box
aabb.setCenter(0.5f, 0.0875f); // Set the center point of the boundary
aabb.setDistance(0.5f, 0.0875f); // Set the distance from the center to the edges of the boundary

Maven Dependency

<dependency>
  <groupId>com.github.jacksonhoggard</groupId>
  <artifactId>voodoo2d</artifactId>
  <version>1.0-DEVBUILD</version>
</dependency>

CONTRIBUTING

If you'd like to make a contribution, please refer to CONTRIBUTING.md or read the wiki page on how to set up the project

TROUBLESHOOTING

A game object is not drawing to the screen!

  • Make sure you placed the game object in the gameObjects list that will be passed into the render method of the renderer.
  • Check to see if the object has been instantiated properly.

Animations are not diplaying properly

  • Ensure that you have given the proper range of sprites to be displayed from the spritesheet (i.e. 0 - 3).
  • Remember that, when playing an animation, all other animations attached to that game object will be stopped.

Something else isn't working properly

  • Open up an issue! Someone will get to it as soon as possible.

Current Version

  • 1.0-DEVBUILD (Development Version)

Areas for improvements / involvement

  • GUI
  • Particle System
  • Scenes
  • Lighting options
  • Batched Rendering