FriceEngine
CI | status |
---|---|
Travis CI | |
AppVeyor | |
CircleCI | |
CodeShip |
An easy, light, native game engine running on JVM.
-
Why easy?
A flappy bird game uses just 56 lines of Java code only.
Written in Kotlin, also work on Java, JRuby, Groovy, Scala and other JVM languages. -
Why light?
The release build jar is about 1.6mb (with a 1mb Kotlin runtime) only. -
Why native?
This engine is completely platform-independent: no JNI linkage, no native methods.
View Document to learn how to use Frice Engine.
Screenshots
Build
Gradle:
repositories { jcenter() }
dependencies { compile 'org.frice:engine:1.8.5' }
Alternatively, you can follow the instruction from JitPack.
Alternatively, you can download a jar from the release page.
Features
This engine is based on Java's built-in GUI framework, both Swing and JavaFX. "Platform" here refers to Swing/JavaFX.
Platform dependent
These features are differently implemented in Swing/JavaFX.
Since this project is still in progress, the unsupported features will soon be available.
Feature | Swing | JavaFX |
---|---|---|
Life cycle | √ | √ |
Dialogs | √ | √ |
Cursor overriding | √ | √ |
Screenshot | √ | √ |
Buttons | √ | √ |
Full screen | √ | √ |
Always on top | √ | √ |
Text font/size | √ | √ |
Multi-instances | √ | × |
Resizability | √ | √ |
Key listener | √ | √ |
Text measuring | √ | √ |
Platform independent
- Animations (moving, scaling, rotating, accelerating, chasing, approaching, etc.)
- Audio playing (*.wav, *.mp3) by JavaSound/JavaFX Media
- Clock system, timers
- Delayed event manager
- Automatic garbage collection (optional, objects far from the screen will be removed)
- Resource manager (caching IO)
- File/Image/Color/URL utils
- Game objects
- Frame animations
- Key-value database
- Particle effects
- Attaching game objects
- Collision detection with collision box
DSL
Contributions
Feel free to open issue for feature request, bug reports, etc.
This is generally a personal project, so please do give your genuine suggestions.
This project is using Issue-Driven-Development.
Issues are well organized and used to managed tasks.
Demos
See FriceDemo
And see TouhouDemo