FriceEngine
:video_game: JVM game engine based on Swing/JavaFX.
CI|status :---|:---: Travis CI| AppVeyor| CircleCI| CodeShip| The project is written primarily in Kotlin, distributed under the GNU Affero General Public License v3.0 license, first published in 2016. Key topics include: engine, frice-engine, game, game-engine, java.
FriceEngine
| CI | status |
|---|---|
| Travis CI | |
| AppVeyor | |
| CircleCI | |
| CodeShip |
An easy, light, native game engine running on JVM.
-
Why easy? <br/>
A flappy bird game uses just 56 lines of Java code only.<br/>
Written in Kotlin, also work on Java, JRuby, Groovy, Scala and other JVM languages. -
Why light? <br/>
The release build jar is about 1.6mb (with a 1mb Kotlin runtime) only. -
Why native? <br/>
This engine is completely platform-independent: no JNI linkage, no native methods.
View Document to learn how to use Frice Engine.
Screenshots
- <img src="https://coding.net/u/ice1000/p/Gifs/git/raw/master/frice/frice-01.gif">
- <img src="https://coding.net/u/ice1000/p/Gifs/git/raw/master/frice/frice-02.gif">
- <img src="https://coding.net/u/ice1000/p/Gifs/git/raw/master/frice/frice-03.gif">
- <img src="https://coding.net/u/ice1000/p/Gifs/git/raw/master/frice/frice-04.gif">
- <img src="https://coding.net/u/ice1000/p/Gifs/git/raw/master/frice/frice-05.gif">
Build
Gradle:
gradlerepositories { jcenter() } dependencies { compile 'org.frice:engine:1.8.5' }
Alternatively, you can follow the instruction from JitPack.<br/>
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. <br/>
This is generally a personal project, so please do give your genuine suggestions.
This project is using Issue-Driven-Development. <br/>
Issues are well organized and used to managed tasks.
Demos
See FriceDemo <br/>
And see TouhouDemo
Contributors
Showing top 4 contributors by commit count.
