-
-
Notifications
You must be signed in to change notification settings - Fork 556
Core Features
Almas Baimagambetov edited this page Nov 5, 2020
·
16 revisions
- 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
- 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)
- 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
- JBox2D Integration
- FXGL Physics (BBox + SAT)
- Unified Collision Handling (JBox2D + FXGL physics)
- gdxAI Integration
- A* Pathfinding
- GOAP (Goal-Oriented Action Planning)
- FSM (Finite State Machine)
- JavaScript Behavior Injections (for entities) + JavaScript FXGL Environment Variables
- Key & Mouse Bindings
- Bindings Management (players can rebind actions in the game)
- Full Input Mocking
- 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.