Created: 2014-05-19 17:44
Updated: 2018-02-09 19:34
License: other

This project is my project skeleton for jmonkeyengine 3 (jme3).

Use it :

  • to experiment
  • to store common game behavior (not part of a lib).
  • as bootstarp for project, prototype, jam

demo 20140926

Project show, how I integrate:

  • jmonkeyengine (3.0.10)
  • gradle as build tool
  • java8
  • javafx (via jme3-jfx) for gui
  • logback (via slf4j) as logging framework
  • dagger as dependency injection (better suited for android than guice)
  • lombok as sugar syntax over java
  • packaging (via gradle-getdown-plugin)


(I need to collect info about gamepad, can you share with me the content of you app/log/joysticks.txt)


I first experiment with lemur (see the lemur branch) + integration with MigLayout and create a welcome + settings pages. But I switch to jdk8 and give a try to javafx. JavaFX is less integrated into jme but provide reusable knowledge (out of jme), more doc, tuto, css, ttf... and tools like SceneBuilder 2.0 to help you design GUI.

The main downside of javaFX+jME, the need to push "action" in javaFX's Thread or in jME's Thread.

The jme3_skel project provide the following pages :

  • welcome page
  • a fake game page (display action + every inputs)
  • a scores page (TODO)
  • a level selection page (TODO)
  • options / settings page
    • video (resolution, vsync, anti-aliasing, fps, stats)
    • audio (master, music, sound)
    • control (TODO: edition)

Each page is an AppState + FXML (gui)

To Build

I use gradle to build, and run the project.


  • required java 8 installed and available in $PATH
  • required you install JME3-JFX

Command Line

cd jme3_skel
gradle run


I use eclipse 4.4 as main IDE, and netbeans 8 + jme's SDK build to edit asset.

To Do

  • add doc : "howto", "why "
  • implement control 's table load+edit+save
  • missing pages
  • packaging via getdown (W)
Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more