Latest Release Features

  • Graphics & UI

    JavaFX 8
    Multi-Layer Rendering
    Canvas Particle System
    Dynamic Texture Manipulation
    Sprite Sheet Animations
    Target Screen Resolution (+Fullscreen)
    Customizable Intro Video / Animation
    Customizable Main Menu / Game Menu (3 built-in menu styles)
    Customizable UI elements (Dialogs, Bars, Buttons, etc)
    Customizable Global CSS for menus / UI elements
  • Application Framework

    FXEventBus
    Log4j2
    Time Management System (in-game time + real time)
    Multithreading
    Performance Monitor + Profiling
    Global Services Framework
    Developer Panel
  • User Input

    Key & Mouse Bindings
    Full Input Mocking
  • I/O

    EasyIO & Networking (TCP and UDP)
    Asset Management (".png", ".jpg", ".wav", ".mp3", ".txt", ".ttf/.otf", custom)
  • Physics

    JBox2D
    Unified Collision Handling (jbox2d + FXGL physics)
  • Utilities

  • Gameplay

    Ents
    Game Loop
    Quick Time Events (QTE)
    Achievement System
    Notification System
    Saving / Loading System
    User Profiles (Save/Load/Restore Game Settings)
  • AI

    gdxAI
    AStar
    JavaScript Behavior Injections (for entities) + JavaScript Coding Environment
    Text/Script Parsers

If you have a use case (feature) that FXGL doesn't cover, raise an issue, carefully describing the use case.

Basic Usage (Java)


public class BasicGameApp extends GameApplication {

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

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

Basic Usage (Kotlin)


class BasicGameApp : GameApplication() {

    override fun initSettings(settings: GameSettings) {
        with(settings) {
            width = 800
            height = 600
            title = "Basic Game App"
            version = "0.1"
            // other settings
        }
    }
}

fun main(args: Array) {
    Application.launch(BasicGameApp::class.java, *args)
}
        

Maven


<dependency>
    <groupId>com.github.almasb</groupId>
    <artifactId>fxgl</artifactId>
    <version>0.3.2</version>
</dependency>

Gradle


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


Geometry Wars

Fly around and destroy various obstacles while trying to survive.

Source Code

Space Invaders

Destroy an army of aliens.

Source Code

Pong

Control the paddle to defend your side and score more than your opponent.

Source Code

Zephyria

An RPG inspired by Ragnarok Online.

Source Code

Pac-man (Reverse)

Run away from opponents and collect all the coins.

Source Code

Drop

A simple game to get you started. Control the bucket to collect droplets.

Source Code

Breakout

Destroy all the bricks by reflecting the ball into them.

Source Code

Flappy Bird

Fly your way through obstacles and earn points.

Source Code

Slot Machine

Try your luck with this machine and win the jackpot.

Source Code

OutRun

Vertical Flappy Bird Clone.

Source Code

Tic-tac-toe

A classic game of noughts and crosses.

Source Code

Reviews / Suggestions