Bootmonkey - bootstrap your JME project

Hey monkeys, so we are in a weird state where we “offcially” dropped the SDK.
Paradoxically, the SDK hasn’t been that well since this annouce thanks to the tremendous work of @Darkchaos and all the monkeys working on it.

But still… We still want a lightweight tool suite, agnostic to any IDE and based on standard builds systems like gradle and maven. Something closer to what libgdx has.
We are working in the underground on several projects that are not ready to be made public for now, but first things first I present you Bootmonkey:

When creating a new JME project (trust me I do that a lot), I was tired of pulling the template git repo, changing names, cleaning unnecessary files etc…
So I made a small app that does that for you:

So what does it do:
It pulls a template repo in the given directory, change project Name, package name, and voilà, you’re good to go.
The template is pretty much the one @pspeed made with gradle.
The templating is very basic and driven by an yml file that has to be in the template project root.
The nice part is that you can make your own template repo and still use the app. So if you want to have a maven template…go ahead.

repo : GitHub - Nehon/bootmonkey: Project scaffolding for JME3
realeases : Releases · Nehon/bootmonkey · GitHub
It’s java 8 (so you’ll need that to run it). It’s a self executable jar for now, I’m trying to dig a nice solution to make native executables for each platform.

This is still in my personal repo, but this will migrate at some point to JME repo. This is a very early version, It could do a lot more things, but yeah for now I’d like to see if if works as intended.
So monkeys !! could you try that up?

35 Likes

Works like a charm with Ubuntu 16.04!

1 Like

Thanks dear Nehon.

Works OK. I am going to upgrade my game project to bootmonkey’s gradle project and make my life much easier. :grinning:

I hope in the future we have android and ios deploying to be integrated with bootmonkey too.

1 Like

Really!!
Great
Can’t wait to know what they are :grinning:
Maybe JME is going to present something for new year :wink:

That’s the plan, @iwgeric already made several temlplate projects for android. I guess ios is gonna be trickier.

Please, post it somewhere. Maybe it should be created something like “useful links” where contained useful projects.

PS. Where I can find your articles about PBR?

For now please use these links. The next time i find free time i will put them in wiki and will create a PR.

3 Likes

Thanks Ali

1 Like

I’ll update the docs once it’s ready.

Good job! :slight_smile:

…this bit is a bit funny, because either:

  1. the developer has Java installed. He can as well double click the jar or a link to it.
  2. the developer don’t have Java installed. In this case, he should quit at once, instead of clicking a nice executable and realizing later that he cannot develop in Java without installing Java.

…and besides, bundling a 90Mb JVM would be a bit weird for a bootstrapper.

heheh yep, but I was planning to use packr that allows you to minimize the JRE. Unfortunately it doesn’t work with java 8 and you are not allowed to minimize any oracle JRE. Which force you to use openjdk 8, for which strangely it’s hard to find distributions for all the platforms.

I was also fiddling with all this to have a template build to make native wrapper for games with an embedded JRE… But yeah it’s more complicated that it sounds. A nice solution is javafx bundler, but you need to build your app on the target platform.

Anyway I settled for a fat executable jar for this (not that fat it’s like 6mb). Because as you said… JME users should have a jdk anyway :stuck_out_tongue:

Now this is way more interesting… offer multiple gradle options and allow the dev choose the one he prefers. JavaFX is one option with its pro and cons, and some devs will appreciate that bootmonkey offers it.

Well that’s something for the template project actually, not really bootmonkey. My idea is that monkeys could contribute their own project templates, in a git repo. Of course we would provide basic templates, but the app is build around this idea.

1 Like

Is it unfair to say that the SDK has an easy way of cross platform Distribution?
And also Check that Oracle Clause. You must not Distribute the jdk but the jre was allowed the last time i checked.

You could also use some gradle Wrapper Code they use to find the platform jdk or fail with an error.

hahah, it’s fair. Tbh I’m just trying to get on par with what we had with the SDK.
I’m not trying to be a competition to the SDK. We decided it wouldn’t be a core team support anymore, it was a team decision and I’ll stick to it. You know after Normen i was the one contributing the most to the SDK, but I really believe we need a tool that can be maintained by anyone, not just a chosen few that are crazy enough to dive into netbeans API.

About Oracle JRE, I think you are not allowed to bundle it modified (like with removed classes) and that’s what Packr does (there is a comment about it in their issue tracker). Anyway idk.

2 Likes

Kirill would be proud.
No, not @Momoko_Fan, this one @kirillcool :slight_smile:

This is great,but i can’t understand how the variable {jmeVersion} is defined…can’t we specify a jme version in the YAML file or when we boot the project in the tool?

yeah … you can’t actually, it’s hard coded. I planned to have it in the little ui, but didn’t do it in the end.
You just have to change it in the generated project’s build.gradle though.

I’m making a PR that adds a little menu to modify hardcoded settings,could you please review and (if it’s ok) merge it?

3 Likes

yep, will do :wink: thanks

1 Like