JMonkey october 2016 share experience please

Hi all! This topic is not actually just 1 question about 1 issue i want to solve. It is all about ur experience of using JME guys, pros and cons. No hate, no rage, just facts and dialogs in real use cases.

Let’s start.

As i java developer at my job i decide to find java based engine to try make my first 3D project. And i found JME. The feautures and examples was enough to me, cause i have no plans to write WOW or XCom or smth really complicated at all. I am newbie at game development, all i did before is just 1 real game for my family using LibGDX and kinect, so i just have no skills yet to make real big projects.
After 2 month reading tutorials and playing jme under IntelliJ Idea + maven i found that i am really like how beautifull Jmonkey engine structured. I mean AppStates, Controls, AssetManager and others is really helpfull and covers almost any game logic.
So the JME is just cool, plus it is free and open source.

But… When i start to playing more i found that i have to use SDK to making scenes, importing blender models, preview character animations and e.g… And imho SDK is garbage. No hate :slight_smile:, but yes, after using Idea is just trash. So we have dilemma: use preffered IDE to comfortably coding, but making assets froms side SDK project or use SDK as real engine should be used(like Unity maybe, looks like it is handy to put controls on spatials in editor and preview reuslts). And i solved problem with assets like this: i made empty JME ADK project inside of my Idea project, and now i can use SDK just to manage assets while Idea to write code. Still can’t use all SDK features but it is enough.

And finally about deploy. If u making just desktop it is ok, u can use even JavaFX+JME which is nice if u don’t want some sort fast reactive GUI. And sometimes JavaFX still lagging when u try to use it too dynamically.
But if u try to port it to android is just full of pain. And this is my arguments:

  1. U have to learn gradle, no way to build ur app from SDK, +1 point to say SDK is trash. Multidex fails and others issues u can’t fix while building brings lot of pain. And not everyone want learn groovy + new DSL.
  2. U can’t use Lemur. Just best GUI for JME. When u put lemur + lemur-proto android gradle plugin fails build. Maybe i just too newb to fix it, but why i have to fix it??? And when i can find magic spells to fix it??? Even Google wizard can’t help me.
    And if u tell me i can use Nifty just gtfo:grinning:, Nifty is absolutely unusable GUI in real project, it so complicated and unfriendly. I don’t know why it is still default framework for JME really. Lemur, Tonegod GUI and JavaFX-JME is created just because of Nifty is bad.

Finally, after i put like 18 hours to just build simlpe code ready game to android (and oh god i did it somehow, magic is real!:grinning:) without lemur-proto :joy: i start interesting how this “GUI, good SDK(editors) and deploying” problems is solved on just another engines like Unity, Atomic, WaveEngine and others.

So, friends, sry for this long text, but i have to ask u what IDE u really using to create real games with JME, why u using it and maybe 2 words about how u using it. What pros and cons of using JME did u have? Really want to read advices and opinions of jme developers, experienced and semi-experienced game developers.
Thank u so much for attension.

You should post questions about your issues with this. Several people have used Lemur on Android before.

Uhm, sdk has an android deployment checkbox which you have to check and for me it just works.

Also sometime ago I tried porting some sdk features to an idea plugin, but never got anywhere with that.

I am not having any trouble using the SDK for Android development. One thing to note, you need to use Java7 or lower. Android is compatible with Java7, using Android Studio you can use Java8 and it will use Jack and Jill, instead of Dex, to compile it, but I don’t think you can use Jack and Jill with the jME SDK.

For Lemur I had trouble using the Groovy library when compiling for Android, removing the Groovy dependency solved the issue. Just note that you’ll have to do your styling in Java since you won’t be able to use Groovy style definitions.

@grizeldi ofc, i read all tutorials and materials about how to deply android app with SDK before post what i post :slight_smile:. Now i just create test android project in SDK 3.0 at my job computer (not 3.1 cause as u can see my another thread SDK 3.1 gives me error about buffer at start and no one can help) and add lemur.jar and lemur-proto.jar to libraries. Wasn’t hard. Than i enable android deployment, uncheck “Compile on save” checkbox, select Android Device profile and press shift+f11.
What a result:

Creating MyGame-release-unsigned.apk for release...
Found duplicate file for APK: com/simsilica/lemur/style/base/glass-styles.groovy
Origin 1: D:\Medvedev\JavaProjects\AndroidTest\mobile\libs\lemur-proto-1.7.1.jar
Origin 2: D:\Medvedev\JavaProjects\AndroidTest\mobile\libs\lemur-1.8.2.jar
D:\Medvedev\JavaProjects\AndroidTest\nbproject\mobile-impl.xml:21: The following error occurred while executing this line:
C:\Android SDK Tools\tools\ant\build.xml:958: The following error occurred while executing this line:
C:\Android SDK Tools\tools\ant\build.xml:969: The following error occurred while executing this line:
C:\Android SDK Tools\tools\ant\build.xml:312: 
com.android.sdklib.build.DuplicateFileException: Duplicate files at the same path inside the APK
	at com.android.sdklib.build.ApkBuilder$JavaAndNativeResourceFilter.checkEntry(ApkBuilder.java:125)
	at com.android.sdklib.internal.build.SignedJarBuilder.writeZip(SignedJarBuilder.java:230)
	at com.android.sdklib.build.ApkBuilder.addResourcesFromJar(ApkBuilder.java:576)
	at com.android.ant.ApkBuilderTask.execute(ApkBuilderTask.java:364)
	...

Cool @Tryder ! Glad for u. Don’t know why it wan’t work to me, looks like lemur-proto and lemur jars just incompatible in android plugin way :slight_smile:. Cause when i build desktop with maven and gradle in Idea lemur has no any issues.

Thx @pspeed! True, i have to maybe post about this issue at different thread, but u really busy guy i think and u already helped me alot with Lemur, so i just wan’t disturb u too frequently

@Dmitry Well my game runs on 3.1 and doesn’t use lemur so can’t really help there sorry.

Should i assume u all using SDK as ur IDE guys to game development?

@grizeldi :slight_smile:. Ok is this means u using SDK, right? Is ur project super simple, prorotype(mediocre) or real game(complicated project)? I should know cause if is just simple toy it is not interesting, u never will have dex problem and stuff, but if u have Nifty or some sort of another additional heavy jars this is another story.

Well check last month’s WIP thread. I use nifty a lot and it’s almost a finished game.

@grizeldi, ok i will, but still don’t wanna use Nifty :grin:

EDIT: Ur game looks tasty man, really good job.
But Nifty arhitecture is really not ok for using in JME IMHO!
My choise is still lemur

What you get with the SDK.

1.) Asset import and material handling.

2.) Visual scene explorer.

3.) Ability to test controls.

4.) Terrain editor.

5.) Material generator.

6.) Deployment scripts automatically pack your resources for one click deployment.

7.) Plus all of the convenience features that come with netbeans.

You can do all of things above manually but it is going to slow you down and create more work. The SDK isn’t necessary for loading or converting assets it’s just very convenient.

Take a look at this. This was done almost entirely in the SDK by adding controls I wrote. The game file itself is about 200 lines of code.

I couldn’t tell you about GUI handling with Lemur/Nifty because I wrote my own GUI.

There are more reasons to use the SDK than reasons not to use it. To be frank I think you’re being impatient. I’ve been working with JME for almost 2 years now. I’ve seen people come and go. Those who don’t last long have this idea that if they don’t make an amazing game in less than a month then JME must suck.

You could use unity / unreal / lumberyard etc but you’ll have the same problems. If you want to use any engine to its full potential you have to put time into learning it. Keep in mind too this is for indie developers and hobbyist. We don’t have massive budgets so don’t expect to see uber fancy polished models and graphics.

P.S. any environment artist want to help me out with level design ? I suck at design :slight_smile:

All this features from 1 to 7 is sounds nice, but not all of them really works nice or even not works at all as u can read above in my posts and post of another developers.
Maybe i impatients person, no one of us can’t tell it clearly about themselves :slight_smile:, but since i reading a lot of JME documentation, threads, topics and book jmonkeyengine_3.0_beginner_s_guide.pdf which was very usefull and have now some prototype u can’t just calling me impatient. Even more the more time i spend with engine then more i like engine, but not tools, cause an almost every simple thing(should be simple i beleive) like import, GUI building and deploying i have many issues. And this is why i want try another tools if i will not resolve current tools problems.
Can’t make a video for now but maybe a a couple of picture should be enough to show u i am not just person who do nothing and expecting the JME will do my game for me.

So for now my brother is making assets, game scenario and pseudo-step-by-step battle system on paper. And i am programming all things. He is not professional, so models r pretty simple, but for our demo is all we need.
Don’t think that code lines is a factor of patience, but i have like 300Kb or java code for now and we only have 1/2 of our scenes and battle system core. So when i put more NPC and their abilities it would be about 800-1000Kb of text.
Don’t call me impatient dude :slight_smile:

2 Likes

Guys, still wanna see ur own opinions, personal experience about JME developing, thank u for all ur replies.

I really really use the JME SDK. No seriously. At work if I code I use Eclipse mostly. But I have used IntelliJ. I don’t really have a preference of 1 IDE over another.

The one part that has been somewhat bothering me is the shader node editor. It’s… gorgeous but sometimes the errors are a bit cryptic (no surprise) but I don’t think that’s a JME issue more of a GLSL issue.

I use Lemur as well. Much easier than Nifty so that’s nice. Although I haven’t tried making my own theme for it yet.

1 Like

I think that sort of thing would be a problem for a lot of jars that include class resources. For example, I know a lot of jars include default logging setup and such and it seems like the APK creation would barf on those.

Lemur definitely does have duplicates here as lemur will include one and lemur-proto will include another… the app ends up loading both. There must be some way to make android happy with this, I would think.

1 Like

@thecyberbob literally is what i m asking, simple and clear. Thx

@pspeed yeap, by the exception text i assume the problem is cause of duplicated files in dependencies. How then ppl have used lemur on android successfully? Magic…
As i think u dont’ know how to solve this problem with SDK, right? Or it is not SDK problem? :slight_smile:

JME works for me :slight_smile:
I mix usage the SDK with IntelliJ, and I’ve chosen a set of tools that I like (gradle, blender, inkscape etc.)
There is a fair amount of experimentation (that sometime gets in the way of the “actual game making”) but of course this is true for every engine.
The only real “bug” of jme is that the dev team is small if you compare it with competing solutions.

1 Like