Java Developer , Should I use libGDX or Unity3d for cross platform game

Started by
10 comments, last by tebriel 7 years, 7 months ago

I'm Java Developer for long time. and i want to develop a cross platform game for Android , iOS and Web Mainly.

I know a bit about LibGDX and almost understand the global scope about it but need to read the documentation .. but I saw Unity3D as well and I noticed how professional is it in saving more time .. but you know it requires me to study little about C# .

The Question : Do i need to worry about the future if i went with LibGDX for a long business game ? or LibGDX really deserve for 2d & 3D Games ?

or I take the short way and go with Unity3D from now ?

The game idea is similar to the concept of "Clash of Clans"

Advertisement

At a basic level C# is not that different to Java and a lot of the syntax is similar. C# was originally created as a Java clone back in the C# 1 days and is at hear another C style language. Java is more strict on exception handling but on the whole you should not have much of a problem moving from Java to C# if that is required. C# has gained a lot of features over Java imho that make it a language I prefer to work in but that is personal choice :)

I don't know much about LibGDX but Unity will handle the heavy lifting of cross platform work, but I believe if you want mobile target compilation it costs, might have changed but used to be the case. Unity will bring a learning curve with it as it has its own way of working that you need to learn so it is not a magic bullet :)

IMO: If you're considering GDX you should also consider JMonkeyEngine (particularly for 3D stuff but it can handle 2D also). I wouldn't worry much about the future for either GDX or jME, both are open source, so they move a bit slow at times for releases (for jME at least), but they have some pretty good sized communities behind them. Actually, a slower pace release cycle can be a good thing, too.

Unity, well they're certainly popular, and I can't say it's a wrong choice (especially having no experience with it). If you're an experienced Java developer though, I think you're going to feel a bit of pain with Unity. With GDX or jME you have the freedom that you expect as a Java developer to tie into 3rd party libraries (I'm sure you know how valuable that is being from the Java-world). With Unity, while you can probably venture outside of the box with some work, I'm fairly sure that they expect you to do things their way without straying too far. I could be wrong (maybe someone can confirm) so take this with a grain of salt. You might get something thrown together quicker with Unity, once you pass their learning curve, but depending on your objective you may start to feel boxed in.

WozNZ

Tebriel

Thank you so much .. my concern is about the graphic quality in libGDX , i saw the demos in libGDX by comparing the Graphics quality to those made by Unity .. i noticed some difference ? is that related to libGDX or to the design itself ? Also my 2nd concern is about making the animation effects , would it be easy to be done by libGDX like Unity3D ? or i'll face dark way until i do it ?

Both libGDX and Unity try to solve the same problem.

- How can you write your game once and deploy it to many different platforms.

The differences are:

* Unity is closed source with a company behind it trying to make money. libGDX is an open source project.

* Unity uses C# or javascript-like language for scripts. libGDX is Java.

* Unity compiles the projects to native code for all the platforms. libGDX mostly does this, with Desktop applications being a Java jar and needing a JVM to run.

* Unity and libGDX both have a large community, but help for Unity problems will be easier to find.

I know that even though both of these engines say you can "write once, run anywhere" that is never the case. There are always weird things on each platform that need to be handled. But does that even matter? If you just want to release on iOS and Android, it is probably nothing to worry about.

Last time I checked, ~50% of all iOS games are made with Unity. Java has been on the decline for years now and isn't getting any better.

I am currently using Unity for prototypes (even though I'm a Java fanboy).

Hope this helps.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532

Both libGDX and Unity try to solve the same problem.

- How can you write your game once and deploy it to many different platforms.

The differences are:

* Unity is closed source with a company behind it trying to make money. libGDX is an open source project.

* Unity uses C# or javascript-like language for scripts. libGDX is Java.

* Unity compiles the projects to native code for all the platforms. libGDX mostly does this, with Desktop applications being a Java jar and needing a JVM to run.

* Unity and libGDX both have a large community, but help for Unity problems will be easier to find.

I know that even though both of these engines say you can "write once, run anywhere" that is never the case. There are always weird things on each platform that need to be handled. But does that even matter? If you just want to release on iOS and Android, it is probably nothing to worry about.

Last time I checked, ~50% of all iOS games are made with Unity. Java has been on the decline for years now and isn't getting any better.

I am currently using Unity for prototypes (even though I'm a Java fanboy).

Hope this helps.

Actually i'm impressed with your response .. all of it refers to using libGDX .. but at the end i saw your phrase "I am currently using Unity for prototypes" .. my question is Why ?

although of almost all of your works are built by JAVA and you have a book for 2D games in Java

WozNZ

Tebriel

Thank you so much .. my concern is about the graphic quality in libGDX , i saw the demos in libGDX by comparing the Graphics quality to those made by Unity .. i noticed some difference ? is that related to libGDX or to the design itself ? Also my 2nd concern is about making the animation effects , would it be easy to be done by libGDX like Unity3D ? or i'll face dark way until i do it ?

I'm not that familiar with libGDX, but Unity, for 2d, it doesn't really do anything special, so I would be surprised if libGDX couldn't match it for effects. Though perhaps we should define what you mean by effects? shaders? animation frames? Getting a good artist will make all the difference.

WozNZ

Tebriel

Thank you so much .. my concern is about the graphic quality in libGDX , i saw the demos in libGDX by comparing the Graphics quality to those made by Unity .. i noticed some difference ? is that related to libGDX or to the design itself ? Also my 2nd concern is about making the animation effects , would it be easy to be done by libGDX like Unity3D ? or i'll face dark way until i do it ?

I'm not that familiar with libGDX, but Unity, for 2d, it doesn't really do anything special, so I would be surprised if libGDX couldn't match it for effects. Though perhaps we should define what you mean by effects? shaders? animation frames? Getting a good artist will make all the difference.

I meant for effects and animation frames ...

Also i'm still confused about the concept for "Orthometric games" is it under the definition of "2D" or "3D"

Both libGDX and Unity try to solve the same problem.

- How can you write your game once and deploy it to many different platforms.

The differences are:

* Unity is closed source with a company behind it trying to make money. libGDX is an open source project.

* Unity uses C# or javascript-like language for scripts. libGDX is Java.

* Unity compiles the projects to native code for all the platforms. libGDX mostly does this, with Desktop applications being a Java jar and needing a JVM to run.

* Unity and libGDX both have a large community, but help for Unity problems will be easier to find.

I know that even though both of these engines say you can "write once, run anywhere" that is never the case. There are always weird things on each platform that need to be handled. But does that even matter? If you just want to release on iOS and Android, it is probably nothing to worry about.

Last time I checked, ~50% of all iOS games are made with Unity. Java has been on the decline for years now and isn't getting any better.

I am currently using Unity for prototypes (even though I'm a Java fanboy).

Hope this helps.

Actually i'm impressed with your response .. all of it refers to using libGDX .. but at the end i saw your phrase "I am currently using Unity for prototypes" .. my question is Why ?

although of almost all of your works are built by JAVA and you have a book for 2D games in Java

I am using Unity because I am working on only Desktop games (Mac, Windows, Linux) and I don't want them to need a jvm or have to worry about weird JDK/JVM issues with different versions. I have not used libGDX much but it looks comparable to Unity.

There isn't a "right" answer here. Use what you like. If one is more appealing than another, then go with that.


WozNZ

Tebriel

Thank you so much .. my concern is about the graphic quality in libGDX , i saw the demos in libGDX by comparing the Graphics quality to those made by Unity .. i noticed some difference ? is that related to libGDX or to the design itself ? Also my 2nd concern is about making the animation effects , would it be easy to be done by libGDX like Unity3D ? or i'll face dark way until i do it ?

I'm not that familiar with libGDX, but Unity, for 2d, it doesn't really do anything special, so I would be surprised if libGDX couldn't match it for effects. Though perhaps we should define what you mean by effects? shaders? animation frames? Getting a good artist will make all the difference.

Honestly, if I was doing 2D iOS and Android games, I'd seriously consider Cocos2d

http://www.cocos2d.org/


I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532

I've been using LibGDX for over 4 years now and love it. I have developed multiple games using it and the cross-platform functionality is not hard to work with. Unity does take care of a lot of background graphics development when it comes to 3D functionality, but LibGDX can definitely match it. I personally don't like using Unity because you don't have as much control and power over it as you would a framework/library like LibGDX. On top of that you get a good understanding of what is truly happening in the background. This lets you apply the same ideas and principles in different areas in the future whereas with Unity you can't take (much of) the knowledge you learned and apply it in a different work environment.

Regarding your question about the graphics being better on Unity vs LibGDX, the graphics are only as good as you design them to be. By simply looking at LibGDX's website you can see a video displaying great looking graphics in multiple 3D games that were developed with it. If you have good graphic art your game will look good regardless of what framework/engine you use. Anything done in Unity can be done in LibGDX through the use of shaders (when it comes to graphics). They are completely platform-independent as all of the work is done on the graphics card.

My largest project (code and development wise) and most popular game that I have been developing using LibGDX is my Terraria clone: TerraLegion. It is an open-source project that has been in on-and-off development for the past year now. I only recently made it a public, open-source project. Feel free to take a look to get an idea of the power that LibGDX has.

This topic is closed to new replies.

Advertisement