Skip to content

Core Features

Almas Baimagambetov edited this page Nov 5, 2020 · 16 revisions

Graphics & UI

  • JavaFX 15
  • Multi-Layer Rendering
  • Parallax Background
  • Canvas Particle System
  • Dynamic Texture Manipulation
  • Sprite Sheet Animations
  • Entity / UI Animations (+ interpolators)
  • Adaptive Resolution (w and w/o 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
  • Voronoi Tessellation
  • Post-render Effects

Application Framework

  • Global / Scoped Event Bus
  • Time Management System (in-game time + real time)
  • Multithreading / Async Tasks (+kotlin coroutines)
  • Console / File Logging
  • Performance Monitor + Profiling
  • Developer Panel
  • Developer Console
  • CVar (globally accessible JavaFX properties)
  • GC-free Object Pooling
  • Annotations Metaprogramming
  • Application State Machine
  • DSL (domain specific language, available in Java, Kotlin and JavaScript)

Gameplay

  • Full Game Loop
  • Entity Component Control System
  • Quick Time Events (QTE)
  • Achievement System
  • Notification System
  • Saving / Loading System
  • User Profiles (Save/Load/Restore Game Settings)
  • Level Parsers (.txt, .json Tiled Map Editor Support using jackson)
  • Quest Tracker

Physics

  • JBox2D Integration
  • FXGL Physics (BBox + SAT)
  • Unified Collision Handling (JBox2D + FXGL physics)

AI

  • gdxAI Integration
  • A* Pathfinding
  • GOAP (Goal-Oriented Action Planning)
  • FSM (Finite State Machine)
  • JavaScript Behavior Injections (for entities) + JavaScript FXGL Environment Variables

Input

  • Key & Mouse Bindings
  • Bindings Management (players can rebind actions in the game)
  • Full Input Mocking

I/O

  • IO Task Mechanism (exceptionless functional paradigm)
  • Networking (TCP and UDP)
  • 1-1 Server-Client Support
  • Asset Management (.png, .jpg, .wav, .mp3, .txt, .json, .kv, .properties, .fxml, .css, .ttf/.otf, custom)

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

Clone this wiki locally