FastJ is a free and open-source Java-based 2D game engine and framework. It aims to provide the best 2D game-making experience using Java (and the JVM languages).
This project is still under heavy development. There is a very good chance bugs are still prevalent and untracked, as the engine is not fully covered by unit tests. Documentation is readily available, but may change over time. Feel free to help us out by contributing to the project!
Feature | Description | Support |
---|---|---|
2D Rendering | Rendering of Shapes, Models, Text, Sprites, Lighting | ✔ |
Scene System | Scene-based Rendering & Scene Switching | ✔ |
Scriptable Behaviors | Control GameObject state | ✅ |
Desktop Support | Full Compatibility on Windows, Linux, and macOS | ✅ |
Audio Engine | Loading, Playing, and Controlling .wav, .ogg, .mp3 files | ✅ |
Image Support | Image rendering, Spritesheet Creation | ✅ |
Animation Engine | Interpolation, Sprite Animation, Tweening Framework | ⭕ |
UI System | Flexible UI System to replace Swing UI | ⭕ |
Particle Engine | Particle Emitters, Interaction with Game Elements | ⭕ |
Physics Engine | Custom 2D Physics Engine | ❌ |
Asset Manager | Load, Unload, and Hot Reload Game Assets | ⭕ |
FastJ Model Creator | Create & Export 2D Models with an editor | ⭕ |
FastJ Editor | Make Games in FastJ with an editor | ⭕ |
Web Support | Run FastJ in Modern Web Browsers | ❌ |
✅ is complete and satisfactory.
✔ is implemented and usable, but is missing certain features.
⭕ is in progress.
❌ is not yet implemented.
Features with examples available have their prime example linked.
There are many ways to learn FastJ -- check them out below!
Use a template project! It's the fastest way to jump into using FastJ. You just need to pick a programming language from the ones below. We suggest Java, as it has the most tutorial content, but Kotlin and Groovy are fine options as well.
FastJ provides article tutorials on its website to accommodate as many types of developers as possible. From beginners to experts, the website tutorials are written to give enough information to satisfy anyone willing to learn!
Explore FastJ's code examples to see the different ways FastJ can be used, and all of its features. These come with in-example explanations and easy plug-and-playability to give you the best chance at understanding how FastJ works.
Check out FastJ's documentation to get a better understanding of the code FastJ provides to improve your game-making experience.
Well in that case...
Click here to expand the manual dependency instructions.
This library can be found in the following places:
- jitpack.io, as a dependency.
- Maven Central, as a dependency or as a jarfile.
- The Releases section of this repository.
When adding the dependency, make sure to replace [latest version here]
with the actual version (you'll find this
in the jitpack.io or Maven Central link up above). The current latest version is 1.7.0-SNAPSHOT-2.
A few common dependencies are provided below:
- Gradle Build Script
- Groovy:
repositories.mavenCentral() dependencies.implementation('io.github.lucasstarsz.fastj:fastj-library:1.7.0-SNAPSHOT-2')
- Kotlin:
repositories.maven { setUrl("https://jitpack.io") } dependencies.implementation("io.github.lucasstarsz.fastj:fastj-library:1.7.0-SNAPSHOT-2")
- Groovy:
- Maven POM
<dependency> <groupId>io.github.lucasstarsz.fastj</groupId> <artifactId>fastj-library</artifactId> <version>1.7.0-SNAPSHOT-2</version> </dependency>
You'll also want to make sure you add a dependency for a logging framework from SLF4J, since FastJ uses it for all its logging purposes. Take your pick!
FastJ's community of developers is growing day by day!
- Join the FastJ Discord Server to join a growing community of game developers, artists, and more! We host Game Jams every few months, so keep an eye out 😄
Want your FastJ game featured? Open an issue, or ask in our discord!
Plan on contributing to the repository? Awesome! We're glad to have you ❤️
Please be sure to read over the contribution guidelines so that you can get started.
This repository is Free and Open Source, licensed under the MIT License.
- SLF4J for logging support.
- [JOrbis] and [VorbisSPI] for .ogg support.
- [MP3SPI] for .mp3 support.
- [tritonus-share] for utility processing tools related to above audio libraries.