🎮 Game jam Java framework based on libgdx.
👾 Features | 📦 Installation | 📗 Documentation | 🍻 Collaboration | 🚀 License | 📝 Changelog
Another game development framework? Really?! 🤔
In Java world, we game developers already have libgdx in order to create beautiful, feature-rich games. It allows us to be highly flexible how we design our game, however it is not ideal for small game jams. Especially in the first hours time is spent on wiring everything together, creating game object classes, setting up lighting, physics, tweening, writing shaders and particle management as well as sound manipulation.
From experience, this can take several hours which is costly, especially on small 24 hour game jams. You could move away from Java and use a popular game engine instead, but we Java developers like it simple and we do not want to give up on Java! Alternatively, all the boilerplate work should be done for you - and this is where braingdx comes into play!
This framework does not replace libgdx but gives your game superpowers!
This framework provides:
- Scene transitions how to switch between screens by applying different and custom animations
- Tweening pipeline Using Universal Tween Engine to make the most of animations in a few lines.
- World rendering pipeline no more custom Java classes for game entities. brainGDX offers a way to add objects to a game world, handle physics, collision detection and updating out of the box.
- Lighting brainGDX comes with Box2DLights under the hood. Apply and configure dynamic lighting even for your entities.
- Physics this framework has Box2D support out of the box!
- Particles a game is no game without proper particles. brainGDX comes with full particle support. Attach particles to entities, apply behaviors to particles or define particle fields and effects out of the box.
- Parallaxing beautiful parallax scrolling effects await you in this framework.
- Scene shaders apply different shaders like Bloom, Antialiasing or Vignette effects to your scenes.
- 3D audio support apply 3D sound effects and set sound sources in your world. Additionally, apply sound sources to moving game objects, fade in between music etc.
- Controller support for components plug in your controller and go ahead. No more configuration hell!
- Actor library (button menu, nameplates, tooltips) ever wanted to write an RPG or just show little tooltips on the screen? brainGDX provides several UI components for your needs.
- Extended Tiled Map support Ever wanted to write a multi-layered game by using the map editor of your choice? brainGDX provides a framework to render and handle multi-layered 2D maps
- Entity behaviors brainGDX comes with a various palette of inbuilt entity behaviors, such as flickering torch lights, WASD movement, random movement or directional movement.
This framework is currently developed by a single person. Pull requests are very welcome! The following roadmap is planned for the first 1.0 release of this framework:
<dependency>
<groupId>io.github.bitbrain</groupId>
<artifactId>braingdx-2d</artifactId>
<version>$braingdxVersion</version>
</dependency>
Add the following to your build.gradle
file to your core
module:
compile "io.github.bitbrain:braingdx-2d:$braingdxVersion"
compile "io.github.bitbrain:braingdx-2d:$braingdxVersion:sources"
compile "io.github.bitbrain:braingdx-2d:$braingdxVersion:javadoc"
Replace $brainGdxVersion
with the version on Maven Central.
Important! This framework requires box2dlights >= 1.5.x
which automatically comes with this framework as a dependency. Make sure to remove any box2dlights
dependencies from your core setup which are <1.5!
After that you are ready to go! Learn here how to integrate braingdx into your libgdx game!
Feel free to create a new pull request. When you detect an issue please report it here.
🧟 shelter
💀 pragma
🚀 v0id
This software is licensed under the Apache 2 License.
I would like to thank Mario Zechner and the libgdx community for developing such an amazing framework to work with. Also special thanks to Aurelien Ribon for creating a Java tween engine which can be used all over the place. This project also includes his work.