Should I use jMonkeyEngine 3 (jME 3) or Unity 4.3 to teach game programming to my children? [closed]
Asked Answered
G

6

9

I'm looking to teach my kids programming, and it looks like I've narrowed it to two options:

  • jMonkeyEngine 3 (jME 3)
  • Unity 4.3

I couldn't find any "current" comparisons, and so I thought I'd ask:

Which is better jME3+ or Unity4.3+ for Teaching Programming vs Engine Benefits?

I'm not a game developer, but as a corporate & control systems developer I have experience in both C# and Java.

I'm currently leaning towards Unity4.3+ because:

  1. From a Programming perspective, I think C# is a little cleaner than Java, though this means little if the Engine Coding & Object model encourage poor programming

  2. Engine Benefits: Unity4.3+ will "supposedly" have upcoming support for both XBox One & PS4

Note: in fairness to jME, I will make note of this "pre-alpha state" iOS option for jME which is better than a marketing "supposed" perhaps: (http://hub.jmonkeyengine.org/wiki/doku.php/jme3:ios)

If they are equal in all other regards, which one has better Service integration?

Grisons answered 7/2, 2014 at 0:27 Comment(3)
Its UDK (Unreal Engine) or Unity3d you're talking about? They're two different engines.Spongin
Sorry, I'll make the correction above. It's my relative inexperience with the gaming side, I made up the abbr UDK for Unity Dev Kit; not realizing it that Unreal already "uses" that acronym. Thanks for the clarification.Grisons
I'm not going to vote to reopen this question; sorry. It's still too much of a "what do you think" kind of question. Every language and tool has its benefits and its drawbacks. There's just no objective way to say "this one's better". It mostly just comes down to personal preference.Timmytimocracy
S
26

Glad that you interesting in JME3.

I’m also working for a project that target making education programs (youngs and adults) in gaming enviroment.

If you going to let your children learn programming via game developing, it’s a good idea. But both JME3 and Unity are far more complicated to start with ( I assume your children are still young )… There are also few projects suitable for children to learn programming visually.

Greenfoot ww.java.com/en/java_in_action/alice.jsp

Alice ww.greenfoot.org/door

Kojo ww.kogics.net/sf:kojo

Those things (languages come with IDEs) have short learning curve and easy to get with, require minimum knowledge and suitable for children and starter. That’s the education side.

For the engine side. [This is my personal opinion]

I prefered JME. I’m also left Unity ( did about 4-5 commercial games in unity my self) to go to JME. Before Unity, i also worked in Ogre, UDK, Torque and a lot other engines ( 10 more). I also worked with commercial engine in daytime job in C++, which code dirty as hell but run extremely smooth and cost millions dollar.

The reason is: Those engine tied you up with its limitation and pre-made sollutions. Of course that’s also half of the reason why you choose and engine at first. But when you hit that limitation, for example the license fee or the closed technologies. You will hate them as much as i did.

So that’s why i come to JME in a search of “complete” game developing and entertaining technology.

If you are an experienced Java and C#, in association with JME and Unity developer, i will name you a few things that can be *strong text*compared between the two:

  • License : free open source vs free / commercial

    • IDEs : Netbean – an open and extensible platform ( leading quality) vs MonoEdit (the most buggy IDE you can find on earth)

    ** The based technolgy:**

    • Graphics: OpenGL v2+ vs Modified renderer ( openGL compatiable v3+) Unity win in this one i suppose :( . It’s sad for a long term java developer like me seeing this. But we can improve the graphics from time to time i hope.
    • Data management: You choose ( H2, HyperTable, Neo4j …from Java world 100+ of those) VS Unity database
    • Data oganization: You choose (ES, OO, COD, data driven …) VS ES and data driven only.
    • Networks: You choose ( Java rocks in this one) VS Unity network ( high performance but never… ever defeat Java)
    • Cloud and distributed: You choose (Storm, Hadoop..) VS home grown "cloud techs”

Note that i still usually using Unity and JME3 at the same time, for my job and for my hobby. I used Unity 4 with fancy mecanim animation, sub stance material … at day, and using JME3 for research and improve it at night. IMO, JME3 is the game engine which worth to learn, and it will rocks and shine in the future!!!

Hope this help!

Sumy answered 7/2, 2014 at 14:17 Comment(0)
D
8

It's hard to make a comparison when I have never actually used Unity. I have seen demo's and it's interface however. But having used the jMonkeyengine for about 2 and a half years, I can say I am a happy customer :).

Unity probably has a bit more of everything: developers, users, bells and whistles, but there is a cost associated to that.

Similarities between the 2: - Big communities (Unity is bigger) - Many free tutorials - Rapid development (here's a link to a couple ludum dares I've been involved with using jME http://www.ludumdare.com/compo/ludum-dare-28/comment-page-3/?action=preview&uid=16152, http://www.ludumdare.com/compo/ludum-dare-24/comment-page-1/?action=preview&uid=16152) - Easy to distribute to Windows/Mac/Linux/Android

The jMonkeyEngine is completely free and all open source (New BSD License). So you can see all the inner workings of the engine, and even change it if you do not like something (of course you are welcome to commit the changes back :)). So you will learn a lot more by delving into the jME source code.

C# and Java is a debate that can go on for ages, but I don't think it should be a defining factor, they are very similar in nature. There doesn't exist a usable iOS version in jME, and I don't think there is any immediate plans for Xbox One and PS4, so Unity will win there.

Denotative answered 7/2, 2014 at 12:7 Comment(1)
Note: in fairness to jME, I will make note of this "pre-alpha state" iOS option for jME which is better than a marketing "supposed" perhaps: (hub.jmonkeyengine.org/wiki/doku.php/jme3:ios)Grisons
T
6

JME is a bit more hardcore engine than Unity.

JME: - strong community (english language mostly) - OpenSource and free to use. - has many cool tools. But Unity has much more i guess. - Simple to compile and code with all platforms. - Supports Linux. You can develop games in Linux OS.

Unity: - Strong community (with many local communities and languages) - Non free. But it has professional tools. - Has javascript support. You can add scripts inside of the editor. - Has really cool world editor. But coding is better in JME SDK.

I use JME. But it's hardcore in many cases.

Thyroxine answered 7/2, 2014 at 13:6 Comment(0)
A
4

It really depends on what you aim for.

The pro on unity is especially way to get assets into the engine (via the shop). With jme3 you need to be able to at least partly work with blender/3dsmax or similar. Or use a graphic style where it does not matter (eg 2d or blockworld) Also it has better state of the art features in terms of lighting and shadowing. But you kinda need to pro license sooner or later, as even basic stuff as lod is tied to it http://unity3d.com/unity/licenses and it is not that cheap.

The pro with jme3 is that it does not limit you. It is only a core engine but also not tailored for some use-cases.

As far as I understand Unity uses a kinda Entity-component system but without separate systems. (The components contain the logic)

In jme3 you are free to use whatever you want, and are encouraged to make a clean split between logic and graphic. You are free to use whatever programming type you prefer (eg ES,OO) As jme is jvm based you also have access to other jvm languages, eg for functional programming via scala.

So it depends on what your target(and budget) is, more about developing and their specifics, or more about making a own game.

Regarding the version controll, JME3 works fine with git and svn and kind everything else. As there are no special files or logic tied to any of them.

Abash answered 7/2, 2014 at 13:38 Comment(0)
T
3

I can't say I've ever used Unity but here are some things I love about JME3:

  • Completely free & open-source under BSD license
  • Awesome SDK based on awesome NetBeans
  • Deployment to Linux, Mac & Android (as well as windows) with 1 click, I have no idea if Unity can do this
  • Amazing active community, constantly creating new plugins and features (IOS deployment coming soon, possibly), they will also help you with any trouble you run into
  • Networking is awesome
  • Can use other Java libraries or features alongside


    As far as features of the engine go, Unity probably has more. However, I highly recommend JME, it is a great engine. Somebody else said you need knowledge of blender, whereas with Unity they have an asset shop. While Blender knowledge is (very) useful, there are hundreds of websites online that sell or give away for free assets (for instance www.turbosquid.com).
Tuneless answered 7/2, 2014 at 16:47 Comment(0)
K
3

I have to ask, is whomever you're teaching actually ready to program for a game engine?

If the first thing that has to be taught is a hello world script followed by learning what variables are, then both options do nothing but over-complicate what needs to be a simple learning environment.

Even if they have the basics of programming down, they should know what the basics of game programming are. They should know what a vector is and how matrix math works with some underlying understanding of how an engine operates.

I don't know about jME, but with Unity, this would be the point where they could actually write code that does something in which they can earnestly say they understand why (which should be the most important part of teaching someone). I describe Unity as the simplest, big boy toy out there. That still means they have to be ready for the big boy toys in the first place.

Oh, and stick with the free version of Unity. Most pro features are graphical elements like bloom lighting that don't effect a programmer's capabilities.

Kramlich answered 7/2, 2014 at 18:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.