Skip to content

icela/FriceEngine

Repository files navigation

FriceEngine

image

CI status
Travis CI Build Status
AppVeyor Build status
CircleCI CircleCI
CodeShip CodeShip

Download
Awesome Kotlin Badge ktlint

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

See DSL for FriceEngine

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