How to contribute to jME

jMonkeyEngine contribution : How To

Continuing the discussion from Contribution workflow using GitHub / Gradle
The aim of this topic is to gather useful information, to ease the path to contributions.
First of all you should read this : Contributing.


  • Know Java and JME … obviously you won’t be able to contribute to JME if you don’t know the programming language Java neither if you are new to JMonkeyEngine.
  • JME use Git. Have a basic knowledge of subversion tool (svn,git,hg). How to be a Git master : docs, tutorials and also there

Git setup

  1. fork jmonkeyengine, on GitHub
  2. checkout your fork.
  3. create your working branch ‘my-branch-name`.
  4. Switch to the branch using ‘git checkout my-branch-name`.

step by step :

  1. go on GitHub and click on fork
  2. git clone
  3. & 4. git checkout -b my-branch-name

Building jME
jMonkeyEngine use Gradle for automated building. It works like Maven. Gradlew is a wrapper for a specific version of Gradle.

You want :

  • to build the engine : ./gradlew build
  • to build the libs : ./gradlew dist then the libs are in /dist/lib folder
  • to run examples : ./gradlew run
  • to see all the available tasks : ./gradlew tasks

In order to make development easier you can install a plugin for your favorite IDE to be able to open Gradle projects.
Then open jMonkeyEngine as a Gradle project, all the tasks should be available. You can also use the jME-sdk (which is based on NetBeans).


  • How to import engine changes into the SDK ?
Two options : 
1. build libs place them manually into the sdk
2. build the sdk with the modified engine
  • How to compile it for test runs?
"./gradlew test" will runs the unit tests.
"./gradlew run" will runs the examples.
  • How to make the pull request when you’re done?
First commit your changes on your branch. 
Then push your branch to your fork. 
Finally create a pull request from GitHub web interface. 
Note : the branch "head" can be read as "from" , "base" as "to"

This topic is now a banner. It will appear at the top of every page until it is dismissed by the user.


This topic is no longer a banner. It will no longer appear at the top of every page.

1 Like

What community think about using a Kotling languge in this engine? Because Kotlin is fully bacward compatible with java, we can rewrite it partially step-by-step. Therefore we will be always in the trend :slight_smile:. But the really big reason, that Kotlin is more flexible than java, and it can do more things with less number of words. If you want to see it in action you can visit this page. My personal oppinion, that i have got from some number of personal projects, Kotlin really is very good language, that can increase readability of jvm world :slight_smile: .

1 Like

I find that if you put a little Tequila in the ground beef when you make chili, it gives it a little extra flavor.

Oh… sorry… I thought we were just posting randomly off topic stuff.


to contribute with something I have to think an idea and develop it, or you already have some tasks that could be done?

1 Like

Communication always comes first.

Start with a small project.

For example you can grab an issue on github that interest you (or you think you can deal with, look at ‘contribution welcome’ issues as well).

I think it’s all properly explained here

Though, in general, the quality of the solution is directly proportional to how much you will use it yourself.

There is a saying about “eating your own dog food” and it tends to be definitely true in software development. You don’t really understand a solution until you need it yourself.