jme3_skel : my jme3 skeleton/bootstrap project

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

I use it :

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

Project show, how I integrate:

  • jmonkeyengine (3.0.10)
  • gradle as build tool
  • java8
  • javafx (via jme3-jfx) for gui (with ttf font, css stylesheet,...)
  • 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)

Download

I need to collect info :

  • about gamepad, can you share the content of you app/log/joysticks.txt, via ticket or post in this topic (it’s a dump of joysticks’ info).
  • about ease to run,… thanks for your futures comments.

[video]jme3 skel 20140926 - YouTube

more info : GitHub - davidB/jme3_skel: my project skeleton for jme 3.0 projects (gradle based)

You’re free to comments, fork, PR, improve,…

JavaFX as a GUI but still intended for android? How does that work? And what about iOS?
We thought about moving the SDK project type to gradle for 3.1 but this doesn’t seem to be usable for that as it misses almost all features of the SDK project. Looking at it its a pretty bare bones gradle build, isn’t it? You basically just applied the getdown plugin to a vanilla gradle build afaics?

Any interest in making this configurable and up to par with the SDK project? Then gradle projects might be more of an option for 3.1, otherwise we’ll probably stick to ANT (if I develop the SDK further at all).

Lot of questions, I’ve to go offline, I’ll reply when I’ll be back (~3H).

Context: I switched from webgl to jme to be able to use more opengl 3/4 features and resources (on linux, on windows) and to be try some “techniques” (eg: I did a prototype using distance field raymarching, but it performs badly with webgl on windows (due to ANGLE translation to DirectX9))
=> So Desktop (Linux, Windows, MacOSX) is my main target.

@normen said: JavaFX as a GUI but still intended for android? How does that work?

A month ago, I did a quick search about javafx8 on android, some slides say it’s OK, but I didn’t try it, nor performance or jme integration.
Some samples :

And some features aren't yet supported javafx port Android's roadmap

IMHO, it’s too early to use javafx8+jme on android.

@normen said: And what about iOS?

Same slides say it’s OK via RoboVM. I don’t know.

@normen said: We thought about moving the SDK project type to gradle for 3.1 but this doesn't seem to be usable for that as it misses almost all features of the SDK project. Looking at it its a pretty bare bones gradle build, isn't it?

I don’t know. I’m new to gradle I start learing it with jme3 few month ago, and I did my first plugin this week. IIRC in 2009 I build a Netbeans RCP application with maven (the app had few similar features to SDK : view/edit 3D scenes, assets, animations). So it may be possible. I can spend some time to investigate, if you like? What will be the gain ?

@normen said: You basically just applied the getdown plugin to a vanilla gradle build afaics?

Not only, the plugin can create the full web site :

  • with launcher (unix script, launch4j generated exe)
  • with unarchive app to check content (include generated getdown.txt and digest.txt)
  • with jres (the plugin auto-download for oracle jre, remove few files, repackage into jar to be getdown compatible)
  • with bundles (embeded jre or not)

The plugin is WIP (main todo : support of mac osx - I need help -, support versionned mode)

see gradle-getdown-plugin I aslo open a topic on the forum.

@normen said: Any interest in making this configurable and up to par with the SDK project? Then gradle projects might be more of an option for 3.1, otherwise we'll probably stick to ANT (if I develop the SDK further at all).

Yes

Cool. The main thing would not really be getting the build script straight, thats the easy part. Its embedding the whole shebang in the SDK with the current gradle plugin for NetBeans so it can be configured “visually” like the current project.