In the age of free AAA game engines, are we still relevant?

Unreal has two strong points from design side: The editor which is the most powerful I have seen as of yet and the graphical capabilities it offers. The problem, from my experience, comes when you are going to code “the good stuff” for the games you have in mind. Unreal is a shooter game framework with a powerful rendering engine. You can either modify your logic to fit the framework or modify the source code (now available for free) to fit your logic. In both areas you end up doing more work than you should and probably why some believe that you can detect if a game is made with unreal. for Unreal you need to be either a simple quick play game developer or a strong team with different roles.

Unity is not as a powerful editing tool as Unreal but it is way easier to use up to 85% of it’s features. since the code is script (bahavioral) based you can make really clean code and the rendering is quite capable (although not very efficient). My personal gripe with Unity is how deceitful the software is. I can prototype a distinct and unique game in record time, but then I start writing the true code towards release. I have better luck using Komodo Edit or Notepad++ than Monodevelop or Visual Studio. Also Unity runs many routines you don’t even need or use in your game and you can’t do anything about it. Unity has a code framework where you master doing workarounds to get your game idea to work properly because of the many bottlenecks you encounter.

1 Like

Indeed jme3 is relevant. One of the big advantages, as previously mentioned, is that one can change a part of the engine itself with not much effort to fine tune it to a given project/game. If i were to compare it to Unity, i would say that unity is a black box - you supply your code & assets and it will do it’s stuff. Now if the black box does not do what you want it to do, you’re pretty much in trouble.

Please avoid mentioning Stallman and term “Open Source”, at least in one sentence:)
Richard did not like to be associated with Open Source movement, because Open Source did not share his ideas about free software.
You can read more why here.
As far as I can conclude making “AAA engines” as gratis (or “free” like in “free beer”) does not change things at all.
Now Epic games and others explicitly targeting to whole new audience, trying to make indie teams depend on them.

1 Like

All joking aside personally I feel that among the available engines today one is not necessarily better than or more relevant than another, but instead the various options have particular niches that they fit well.

Unity, for instance, is great if you’re just starting out and have little experience as a coder or game developer. It’s super easy to use, but what it gains in ease of use it loses in flexibility.

UE4 I can’t comment on because I was never able to install it due to an apparently rare and never solved crash in the installer.

jME is well suited for myself I think because I particularly like the Java language and am rather stubborn about doing things my own way. :wink: I know this about myself and have learned to live with it.

5 Likes

For me the important difference is that JME works outside the Ms Windows World. I tryed most of the popular Solutions, but if you realy want to work natively on Linux there are just a few. From these there are less complete Solutions as JME seems to be. Using Java and OpenGL makes a great os-indepency possible. Integrated IDE and onboard editors
makes handling easyer. With Gimp, Blender and JME3 i have a good toolchain to spent time on my hobby - making 3D Models and bring them to life in a Game. Even if its not the state of te Art in every aspect, it offers a very good and complete starting Point for an hobbyist like me.

5 Likes

Game-Development is all about textures, sounds, animations, models, composition and being able to target all platforms at once. Developing a game does not require too much of a programmer these days, when engines like Unity5 (etc.) are used. You could argue that’s a bad thing, but effectively, programmers are no artists and artists no programmers. I like to compare products like Unity, UDK, CryEngine to apps like Gimp, PS, Blender, 3ds max, etc. It’s a non-techy way of expressing creativity. Sure, you could do image transformation using python+scipy, but why when there is something like Blender ?

I think jme, or other programming-based solutions are for more specialized problems, where something like Unity simply does not fit. However, from the three major engines, Unity is the closest one to jme. Unity has full engine scripting support through C# and even supports C/C++ integration, so Unity is way more low-level than UDK and/or CryEngine.

The whole Open-Source debate is questionable, at least in my opinion. JME biggest strength is not open source, it’s its modularity and adaptability. Really, if I want to develop a game and want to target as much platforms as possible, all within a few weeks/months, I think an all-in-one solution (unity, udk, cry) is often better suited. But If you do very special things, where you have to go deeply, than an open platform like jme is always a good choice.

BUT: All engines mean nothing, when it comes to success. Look at Minecraft, from scratch using Lwjgl, quite questionable performance (at the beginning), laggy, buggy, etc. But it was a total success.

All in all, I think jME has its use, but has peaked out its universal usefulness. Choose your tool and be happy =)

Just a small notice, with UDK you have full sourcecode access, so you can easily write own stuff nativly.

I totaly agree however that JMe is not the first choice to simple create some generic game, but its a good choice to do non default stuff, that is not another survival in fps template game.

Yes and No.

While it’s true that with engines like Unity and Unreal you can make a game without writing a single line of code (Can’t say about CryEngine). It is the game code that separates a generic game from an unique one. the more unique the game, the more important is the role and skill of the programmer. Also a programmer is has the role of ensuring a smooth execution of code while keeping as much of the design demands as possible. So what has really changed with commercial engines is that the programmer is no longer at the front, but at the backstage listening to instructions to follow.

Many open source engines keep the programmer at the frontline besides the game designer. The programmer can actively participate in the design process since he/she knows the capabilities of the engine, if it can be modified to fit the design or change the design to fit the engine. Not only that, the programmer is backed by a community that knows the nooks and crannies of said engine without any red tape.

Godot Engine can do that too and it’s an open platform.

In reality the choice is more related to the skill of he person as a programmer and as a designer. If you are more of a designer than a programmer then Unity and similar others are better suited since you think on how to make your vision a reality. If you are more of a programmer instead you think of code first and test a lot of ideas before an actual design happens based on your test results

Never heard of Godot to be honest, but it does look interesting. But then there are other aspects like how big is the community, what about plugins (Unity asset store is SO awesome!), how well does the workflow integrate with graphics or modelling apps. I’m just saying that Unity and brothers are battle-tested, well known und well behaving platforms, commercial support is also a huge factor.

I know, I might be alone with my opinion, but commercial products tend to be more reliable, both in terms of API consistency and bug-fixing. This is, of course, just my personal impression and cannot be transferred to ALL OS-projects. But when I use Unity, I always had the feeling that this is some pretty reliable piece of technology, export to almost every platform with literally one click, etc. I know, I seem like a big Unity fan, but I’m actually not in the graphics business anymore. One last troll, so dont take it too seriously: Unity5 is like a Mac, while jME is like a Linux box. :wink:

It’s alright. I am an Unity Developer at work and JME developer at home, and also tested other engines for the sake of curiosity. While I like Unity I find many shortcomings that are particular to my case which burst the Unity bubble and brought me back to JME for a better solution. I understand the fanbase around Unity and Unreal so it’s ok.

Commercial engines in general are more reliable since they have full time programmers backing it up with features, updates, fixes, etc. While open source is from people who have a separate job and work passionately on the engine, so the workflow and update statutes are really different.

What I like about JME3 is the real power of Java and its techs, including performance, portablity and flexibility. Of course i’m using Unity also, but I also use JME3 to make “killer” projects and games from virtual reality to simmulator and it let me finish quick.

I want to compare directly Unity and JME3 at their best feature:

  • JME3 has a community of helps. Unity has a market of sales!
  • JME3 has Java and openGL power, so all open source for you. Unity has its royalty free license and addons, also various plugins and commercial engines from SpeedTree to FaceFx.
  • JME3 has Netbean and Netbean platform power. Unity has ability to adapt and let user extend its as a platform and make custom editors.
  • JME3 is not that “simple” as you want to make multi platform games (mobile game) for example. Unity has its deployment advantages.

I’m talking as a guy who really want to make JME3 to compete-able with Unity:

  • Make customable Editors by expanding Netbean Platform.
  • Using JME3 to make mobile game, and now trying to port JME3 to Web.
    I also using Libgdx which are also grow from just “another java game engine” to somewhat “solid choice for crossplatform game engine”. We are losing our advantages because of reasons… But at least, we are improving day by day. I still think if we can focus in important improvement first, we can make it!

As 3D artists coding gameplay only, JEM3 is just not possible to make a game for me.
I need editor, tools, many shaders features and editor, solid game framework, many high level libraries, advanced complete terrain and vegetation features, high level controls management, high level GUI and editor etc …
All these are in Unity and i can start importing models , textures and start making a game.

While if you give me JME3 i’m simply stuck as i’m not 3D editor or tools or shader coder at all.
So there is no way to see JME3 challenging Unity or Unity users needs.
I think the main challenger for JME3 are open source 3D framework coming with tools for 3D artists :smile:

  • GODOT engine
  • ATOMIC ENGINE
  • PARADOX engine

Anyway open source remains a small niche, while small to bigger 3D engines with tools and editor and that are not free are what people choose when their goal is to make a game without needing to re invent the wheel and code game framework and tools.

Why to revive this thread? We are talking about it already on this thread.

Or are you trying to earn this:

http://www.areadevelopment.com/images/gold-shovel-12/slides/tenn.jpg

2 Likes

JME is not an artist’s engine.

It is not challenging your Unity needs.

2 Likes

…as someone who was in the past, 'bitten ’ by development(commercial) with closed source system, i no longer have any desire to start any new project with system which is not open source…it is relatively difficult to explain what does this mean, to people who didnt went commercial path with their creation, so i will not go there, but so called ‘free’ systems out there, suffering from 2 fundamental flaws, in terms of been ‘free’ .

  1. Actually none of them are free. It is easy to observe that if you carefully read license scheme.
  2. As a developer, you cant really be sure that ‘free’ version you using right now, is not going to turn in to financial nightmare over night. Always keep in mind that so called ‘free’ tools, turn to be ‘free’ due nature/saturation of their respective market, so now is about milking out probably investors (eg. Unity making more debt that you could know) and neverending dreamers, so called bedroom coders, who now are able to make AAA games they always desired. Except, making AAA game was not really that much about underlying tech, but almost always content/media production. And at the end, im confident that fidelity wise, opensource systems exists today, are capable to create just as good visuals as any other ‘AAA’ freeware newdays, but, lets admit, its hard to remove shine of Crysis from eyes of the lone coder, who hold ‘ultimate gun of victory’ in his hands. Road will be long and bumpy, much more as many of them think, but only way to salvation is trough a bit suffering :slight_smile: …so be it…Ill stick with Open Source :slight_smile:
5 Likes

Hi, I just wanted to mention That’s actually not entirely true. I refactor all the time (and have been doing so In unity for well over 2 years) – as you’ve said refactoring is a huge thing sometimes. You just have to rename the file itself from the unity project browser after doing the refactor if its a monobehaviour.

Ie: refactor the class name in the IDE, save all, alt-tab to unity and rename the script from the project file list. Yeah, it’s an extra step, but it only takes 5 seconds more.

With refactoring I mean more than renaming classes.
I am talking about extracting interfaces and other bigger refactorings.
As a matter of fact, Unity can not even work with interfaces on the inspector level, which makes development somewhat tedious at times.

Not saying it’s impossible, but it get’s messy really fast.
I’ve been there and done that for a large project. And I did find ways to improve the workflow, but it is far from comparable to a purely code-based workflow.

1 Like

I’m not saying there isn’t issues with refactoring, but I was specifically replying to what you said about renaming a class and losing all of the data, which is not true. Yes, of course if you change/rename variables or change the inheritance for anything that you’re exposing to be used in the inspector, the data gets lost, and yes, it can be infuriating. There are workarounds for that, which are less than desirable, and I definitely do agree on that. Actually that’s the only thing that I really dislike about Unity at all, is the whole “drag and drop” component system. It makes things much more difficult with data manipulation if you change the underlying code a lot. The majority of my work the past 15 years has been with engines like Source, with Unity only being the past 4 years or so. Without third party tools I cannot even do refactoring in c++ with source, so everything has to be done manually. The fact that with Unity I can, is amazing, though honestly if everything is planned out properly in the first place… I usually don’t have to refactor much other than renaming variables, or classes, and usually because I named them stupidly in the first place.

I do refactoring in unity too, specially at my job since it’s used for making 3D applications. We practically reduced using drag and drop to only Game Objects and have done everything else by code. However, I do have issues with refactoring in Unity when it comes to reusable code for other projects since it’s a monolithic system.

You have alternatives (Copy-Paste, package, link, etc) but that means to do more steps than necessary since at the end you have no choice to wait for Unity to compile so you can run and test your progress. It would be ideal to just be able to run your unity app from the IDE like you can with other gaming libraries and still be able to debug. But the way Unity is designed makes things more complicated that it should be when you want to make multiple projects with refactored and reusable code… And don’t get me started with making dlls in separate solutions…

Making games in unity is very simple, but flexible it is not.

With JME and other open source engines refactoring makes more sense and an editor becomes optional, not obligatory. separating platform specific code from the generic logic is simpler and can be in separate projects in a more organized way within one IDE. Unity would be perfect if we could just work with an IDE without workarounds.

2 Likes

Not really the case. This is largely nothing more than convention. You can put multiple classes in a single Java file if you want, just, not recommended.

for some definition of flexible.

Me too! Though, Oracle may manage to harden my heart yet.