Advertisement

On the fence with game engines

Started by June 07, 2018 02:02 AM
9 comments, last by CocoaColetto 6 years, 5 months ago

Does anybody have an idea for good game engines that have a focus on simulation? I am currently at that stage in my game design document and I am searching and I honestly don't even know where or how to look for an engine. I'm stuck between UE4 and CryEngine right now of course. Except, my project is in the same category as the sims, yet not really a competitor. I would love any ideas regarding where to truly look for game engines for my game. Please be aware that I am relatively new to the business side of the game industry, although I've been a loyal gamer for years. 

You may already know about this one, but, Unity3D? That's a very popular engine.

Advertisement
18 hours ago, CocoaColetto said:

I'm stuck between UE4 and CryEngine

Don't use CryEngine. It is broken and fixing it is probably not possible.

Unreal is a bit heavy to start with but it is a fantastic engine. Unity and Godot is better for new developers.

 

If you plan on starting with Unreal, then start with small parts of your game. Make small prototypes of everything first.

UE4 is nice but also insanely confusing to learn. It has a lot of strange nuances and things that I feel like the developers often don't even know because it's so massive that they lose track of things.

A big problem with UE4 I've found is that the engine basically exists in two levels, the code section and the run-time section. The run-time section has pretty much access to everything, it can see UMG widgets, it can see blueprint, it can see C++ classes. The opposite is not quite true, i.e. if you want to make a UI widget in the editor then as far as I can see you can't spawn it in code without defining it in code to begin with. This sort of ends up with an effect similar to the inheritance problem, you slowly end up pushing everything from the editor down into C++ code instead(so it can be called there.) Some things let you use reflection to spawn or interact with them on the fly, but for a lot of things it is awkward at best.

It's nice Unreal gives you source code access, this makes for a very useful tool for looking things up and seeing exactly how they work, but it's definitely a double edged sword. The engine expects C++ files to be defined a certain way and generally added through the editor, moving or renaming files is a huge process that you can spend a non-trivial amount of time on and sometimes end up accidentally breaking content in the editor. Working with blueprint is definitely slower if you're used to coding though, I've used it for prototyping things or for certain code segments, but often you just want to be able to type down exactly what you want without lots of clicking and dragging(this gets very laggy on large blueprints as well.)

I haven't worked much with Unity, so I couldn't comment on the cons of that but as far as I can tell you work pretty much exclusively in scripts for Unity so it has less of that multi-layer issue that Unreal has, but likely has worse performance as well. Both engines are big and I'm not sure I'd call them good for very accurate simulation. With Unreal at least you don't even get a lot of guarantees on the order certain functions are called in, length of tick functions, etc. It's also a very heavyweight engine and performance can suffer in some areas simply because the engine tries to be so generic(good luck making an RTS like we are billions or something with Unreal actors.)

Ultimately they're both useful tools, I don't know what you mean specifically by "simulation" or what your constraints are. I wouldn't say a game like The Sims is much more of a simulation than your average game, so I wouldn't worry much about that. I would keep in mind that both engines use different pricing schemes too, if you really want full power with Unity you basically have to pay a per-seat fee for the professional version of the engine, Unreal has no licensing limitations like that but they take percentage royalties when your game is released, so the situation is pick your poison really.

5 hours ago, Satharis said:

if you really want full power with Unity you basically have to pay a per-seat fee for the professional version of the engine

No they changed that some years ago, Unity is free (and full featured) as long as your company makes a turnaround on less than 100k USD a year. They do require you to show their logo on a splash screen, but you are allowed to only show a small logo under your own.

Regarding the topic, I think both engines are well suited for most common game types. Unity is also working on a new system (ECS) that would be optimal for making a simulation with thousands of actors. But for a The Sims like game, you should probably consider what algorithms you want to run the simulation. Unreal has some build in Behaviour Trees, but they are very limited, so you would still need to implement a lot yourself. Maybe check the Unity asset store for tools that could help you.

If we knew exactly what type of game/simulation you wanted to make, and what your skill level is, it would be easier to help.

Some methods that might be of interest to you could be: Utility functions, Behaviour Trees, Goal Action Planners or Hierarchical Task Networks (the last two might be a bit harder to implement).

On 6/7/2018 at 1:28 PM, Scouting Ninja said:

Don't use CryEngine. It is broken and fixing it is probably not possible.

What's the problem with CryEngine?

Advertisement
2 hours ago, 0r0d said:

What's the problem with CryEngine?

Over engineered but no focus on usability. So the only people who can actually make games with it is the developers who made it and the insane ones studying it. Nothing is where you expect it to be, the user interface is badly designed and the code is a nightmare.

It's also not a minor thing that can be patched, if you try using it, it feels like you are stuck in a web and fighting to find even the smallest thing.

 

Lumberyard was suppose to be the more user friendly one, except that they decided to add even more advanced stuff on top and then forgot to plug stuff in and even added conflicting libraries to the system.

It is a better now, but after that awful launch, combined with how buggy the engine still is, very few developers use it.

Together CryEngine and Lumberyard only have less than 25 finished indie games since 2016 when CryEngine went free. Compared to the hundreds that Unreal 4 has or the thousands that Unity has, it shows how few people have been able to use it successfully.

 

Unreal has also been "inspired" (Like "Fortnight" is inspired by PUBG) by a lot of the CryEngine stuff and has since then made better versions of it for Unreal.

At this point if you want to make games easily, Unity is the engine of choice (Godot is actually starting to rival Unity). If you want all the latest tools and all the power Unreal is the go to engine.

18 minutes ago, Scouting Ninja said:

 

Ok, so it's just a general problem with complexity and lack of good design rather than something fundamentally broken in the engine?   Those are different things.  Presumably if someone gets to know the engine and the idiosyncrasies, then they can still make a working game with it?  

8 hours ago, 0r0d said:

Ok, so it's just a general problem with complexity and lack of good design

Yes, mostly it's bad design. However it also has a huge list of bugs and problems. Resorting to legacy, more stable, tools often creates a snowball effect; where you have to make workaround for your workarounds.

 

8 hours ago, 0r0d said:

resumably if someone gets to know the engine and the idiosyncrasies, then they can still make a working game with it?

Yes. If you had a team of good team of veteran developers that could code around the problems. Even a solo developer willing to spend a year or so focusing on learning only the engine, then starting there game should be able to make one.

At the moment there is very little CryEngine has that Unreal doesn't. So it is a huge struggle for very little gain.

 

I really wanted to try and explain it but can't, you will have to try it to see what I mean. It is big to download but if you are testing it you can skip the 3rd party tools.

On 6/18/2018 at 1:48 PM, Satharis said:

UE4 is nice but also insanely confusing to learn. It has a lot of strange nuances and things that I feel like the developers often don't even know because it's so massive that they lose track of things.

A big problem with UE4 I've found is that the engine basically exists in two levels, the code section and the run-time section. The run-time section has pretty much access to everything, it can see UMG widgets, it can see blueprint, it can see C++ classes. The opposite is not quite true, i.e. if you want to make a UI widget in the editor then as far as I can see you can't spawn it in code without defining it in code to begin with. This sort of ends up with an effect similar to the inheritance problem, you slowly end up pushing everything from the editor down into C++ code instead(so it can be called there.) Some things let you use reflection to spawn or interact with them on the fly, but for a lot of things it is awkward at best.

It's nice Unreal gives you source code access, this makes for a very useful tool for looking things up and seeing exactly how they work, but it's definitely a double edged sword. The engine expects C++ files to be defined a certain way and generally added through the editor, moving or renaming files is a huge process that you can spend a non-trivial amount of time on and sometimes end up accidentally breaking content in the editor. Working with blueprint is definitely slower if you're used to coding though, I've used it for prototyping things or for certain code segments, but often you just want to be able to type down exactly what you want without lots of clicking and dragging(this gets very laggy on large blueprints as well.)

I haven't worked much with Unity, so I couldn't comment on the cons of that but as far as I can tell you work pretty much exclusively in scripts for Unity so it has less of that multi-layer issue that Unreal has, but likely has worse performance as well. Both engines are big and I'm not sure I'd call them good for very accurate simulation. With Unreal at least you don't even get a lot of guarantees on the order certain functions are called in, length of tick functions, etc. It's also a very heavyweight engine and performance can suffer in some areas simply because the engine tries to be so generic(good luck making an RTS like we are billions or something with Unreal actors.)

Ultimately they're both useful tools, I don't know what you mean specifically by "simulation" or what your constraints are. I wouldn't say a game like The Sims is much more of a simulation than your average game, so I wouldn't worry much about that. I would keep in mind that both engines use different pricing schemes too, if you really want full power with Unity you basically have to pay a per-seat fee for the professional version of the engine, Unreal has no licensing limitations like that but they take percentage royalties when your game is released, so the situation is pick your poison really.

I appreciate you beyond words for taking the time to post this! I wish I could have replied sooner but I've been out of wifi and internet service since Monday. My game is will use a keyboard or dual stick to move the character like in a regular 3d person game but nothing extra such as fighting or shooting, which makes it a similarity to the sims. Thank you so much for this, it really helped me a lot.

This topic is closed to new replies.

Advertisement