JavaFX 8 Game Library written in Java + Kotlin
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.AlmasB</groupId>
<artifactId>FXGL</artifactId>
<version>0.2.2</version>
</dependency>
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.AlmasB:FXGL:0.2.2'
}
FXGL is perfect for small to medium sized games and for beginner / intermediate programmers in JavaFX. It is primarily aimed at people who wish to learn and practise game development. It also takes care of the common boilerplate code, so it can be used for fast prototyping. For larger projects the library may not be as suitable, whereas advanced programmers will probably want to work with something like libGDX or JMonkey. If you have a use case (feature) that FXGL doesn't cover, raise an issue, carefully describing the use case.
The samples/ folder will be constantly updated to include demonstrations of various features.
Video Tutorials Playlist - YouTube Link
The videos will walk you through the basics. For advanced examples please see FXGL Games Repository.
For more information check out the project Wiki
- Full JavaFX Integration (FXGL is built on top of JavaFX 8)
- Top level Java interfaces with lower level Kotlin implementation
- JBox2D Physics Engine Integration (fork based on v.2.3.0)
- Ents Entity Component/Control System Integration
- FXEventBus Event System Integration
- AStar AI Pathfinding Integration (A* Search)
- Game Loop
- Input Bindings (Keys + Mouse)
- Automated Asset Management (".png", ".jpg", ".wav", ".mp3", ".txt", ".ttf/.otf", custom binary formats)
- Text/Script Parsers
- Automated Collision Handling (physics collisions are hooked into FXGL)
- Automated Target Screen Resolution (+Fullscreen)
- Particle System with Canvas Rendering
- Multi-Layer Rendering
- Dynamic Texture Manipulation (Texture Processing + Sprite Sheet Animations)
- Time Management System
- Audio System
- Multithreading
- Networking (both TCP and UDP)
- Quick Time Events (QTE) (API INCOMPLETE)
- Customizable Intro Video / Animation
- Customizable Main Menu / Game Menu
- Customizable UI elements (Dialogs, Bars, Buttons, etc)
- Customizable Global CSS for menus / UI elements
- Saving / Loading System
- User Profiles (Save/Load/Restore Game Settings)
- Achievement System
- In-game Notification System
- Log4j2 Logging Framework
- Performance Monitor
- Global Services Framework
- Other minor game dev features
Email: almaslvl@gmail.com
Google+