Back to rankings

AlmasB/FXGL

Kotlinalmasb.github.io/FXGL/

Java / JavaFX / Kotlin Game Library (Engine)

game-developmentgame-enginejavafxgamedevkotlinjavaframeworkgame2d-game-engine2d-frameworkfxgl2d
Star Growth
Stars
4.8k
Forks
711
Weekly Growth
Issues
144
2k4k
Apr 2015Jan 2019Oct 2022Jul 2026
README

promo

Languages

  English

  简体中文

  Русский

About

JavaFX Game Development Framework

Maven Central Build Status codecov sponsor JFXCentral

Why FXGL?

  • No installation or setup is required
  • "Out of the box": Java 8-25, Win/Mac/Linux/Android 8+/iOS 11.0+/Web
  • Simple and clean API, higher level than other engines
  • Superset of JavaFX: no need to learn new UI API
  • Real-world game development techniques: Entity-Component, interpolated animations, particles, and many more
  • Games are easily packaged into a single executable .jar, or native images

Good for:

  • Any 2D game (side-scroller / platformer / arcade / RPG)
  • Any business application with complex UI controls / animations
  • Experimental 3D
  • Hobby / academic / commercial projects
  • Teaching / learning / improving game development skills
  • Fast prototyping of app ideas

Minimal Example

public class BasicGameApp extends GameApplication {

    @Override
    protected void initSettings(GameSettings settings) {
        settings.setWidth(800);
        settings.setHeight(600);
        settings.setTitle("Basic Game App");
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Getting Started

For a quick dive into code, see standalone basic examples.

Otherwise, see:

Maven

  • Maven template project if you use Java and/or Kotlin
<dependency>
    <groupId>com.github.almasb</groupId>
    <artifactId>fxgl</artifactId>
    <version>25</version>
</dependency>

Gradle

  • Gradle template project if you use Java and/or Kotlin

Please refer to the template if there are any errors.

repositories {
    jcenter()
}

dependencies {
    compile 'com.github.almasb:fxgl:25'
}

Modularity

If you wish to develop a modular application, here's a complete example of your module-info.java:

open module app.name {
    requires com.almasb.fxgl.all;
}

Uber jar

Download the latest uber jar from Releases

Community

  • University of Brighton, UK
  • University of Nottingham, UK
  • Georgia Institute of Technology, USA
  • kidOYO, USA
  • Walton High School, USA
  • Conant High School, USA
  • Zealand Institute of Business and Technology, Denmark
  • Federal Institute of Education, Science and Technology of Rio Grande do Sul, Brazil
  • FHNW School of Engineering / Computer Science, Switzerland
  • Johann-Andreas-Schmeller-Gymnasium Nabburg, Germany

If your institution wants to use or is using FXGL, add a note via GitHub Discussions to be added to the list.

Community tutorials:

Community projects (identified using fxgl topic):

If you'd like your project featured here, just add a note via GitHub Discussions.

Development Team

A description of roles is given in the Contribution Guide.

Maintainers (Collaborators):

Coordinators:

Testers:

Contribution & Support

If you want to build FXGL from the source code or want to contribute, please see the Contribution Guide (including non-code). FXGL is fully modular, so new contributors do not need to understand the entire codebase, only the module to which the contribution is made. Contributions will be reviewed in accordance with the Code of Conduct.

You can support the FXGL development or show interest by simply starring the repo or becoming a sponsor.

Sponsors

Users:

  • @Marsl10
  • @SergeMerzliakov
  • @mbains
  • @sabit86
  • @hendrikebbers
  • @ImperaEtConquer
  • @thejeed
  • @chikega

Companies:

  • @karakun

Contact

Related repositories
godotengine/godot

Godot Engine – Multi-platform 2D and 3D game engine

C++MIT Licensegame-enginegodot
godotengine.org
114.5k26.1k
ocornut/imgui

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

C++MIT Licenseguigamedev
74.9k11.9k
bevyengine/bevy

A refreshingly simple data-driven game engine built in Rust

Rustcrates.ioApache License 2.0bevygamedev
bevy.org
47.3k4.7k
phaserjs/phaser

Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering.

JavaScriptnpmMIT Licensephaserphaserjs
phaser.io
40k7.1k
raysan5/raylib

A simple and easy-to-use library to enjoy videogames programming

Czlib Licenseraylibc
raylib.com
34k3.2k
emilk/egui

egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

Rustcrates.ioApache License 2.0guirust
egui.rs
29.8k2.1k
BabylonJS/Babylon.js

Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.

TypeScriptnpmApache License 2.0webglwebgl2
babylonjs.com
25.8k3.7k
libgdx/libgdx

Desktop/Android/HTML5/iOS Java game development framework

JavaMavenApache License 2.0libgdxjava
libgdx.com
25.2k6.5k
4ian/GDevelop

🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.

JavaScriptnpmOthergamejavascript
gdevelop.io
25k1.5k
leereilly/games

Archived — A list of games, add-ons, maps, etc. hosted on GitHub. Any genre. Any platform. Any engine.

game-enginehtml5-games
24.9k3.5k
clockworklabs/SpacetimeDB

Development at the speed of light

Rustcrates.ioOtherdatabasedataoriented
spacetimedb.com
24.8k1k
Donchitos/Claude-Code-Game-Studios

Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.

ShellMIT Licenseai-agentsai-assisted-development
23.3k3.3k