I'm considering engine switch after current project is done. Which one should I choose?

Started by
9 comments, last by corliss 7 years, 8 months ago

After my current project is done, I am considering an engine switch. I'm currently using Unity and kinda like it, but I really need something else, that's also easy to use.

I am not good at C++ (more of C#/Lua/Java/other managed or scripting langs guy), so UE4 is most likely off the table (Blueprints looks like my earphones when I decide to take them out of my pocket after whole day, i.e. clumped, unmaintainable mess). How any of the following compares to Unity, mostly in terms of import pipeline and ease of use?

- CryEngine. I'm really not sure here... On the other hand it uses C#, but on the other, I've heard bad things about its import pipeline and also that their C# api is both undocumented for the most part and terrible. Also it seems to be locked to one or two genres (FPS or walking sim, which is actually FPS without guns).

- JMonkeyEngine. It's Java-based and I've actually learned Java long before I've started using Unity. I've used it in the past, but the community was really caustic. It also had no editor last time I've used it.

- UE4 with free version of SkookumScript. Not sure how powerful free tier of it is, but since my main problem with UE4 is that it either you have to use C++ or Blueprints, with no middle ground, it could work.

I don't have time nor will to evaluate all of them (since proper evaluation can take months). Can someone help me there? Should I go into one of these or do you know of any other easy engines that I could use and which are powerful enough?

Also, before you propose, I know of Banshee3D which essentially aims to be open-source Unity, however at this stage it's not good enough (it may be though by the time I finish my game) and I simply don't consider it a viable alternative at this point.

Advertisement

In my mind the only serious contenders for an indie working in the 3D world are Unity and UE4. I wouldn't recommend CryEngine to anybody, having known people who worked for Crytek. So if you're not keen on C++ I'd normally suggest you stick with Unity. You might also be interested in the Godot project but I can't vouch for it personally.

I've Only Been Able To Get Results (1st) With XNA And (2nd) With Unity (2D And 3D) Only Ever Been Indie.
C# Born And Raised. Just Go With The Flow, You Should Be Able To Port A Solid Game Concept Across Platforms And Languages.
Game Concept First, Technical BS Second. Break-A-Leg.

You could check out Autodesk Stingray (formally Bit Squid) if you're ok with Lua.

I'd be curious to know what it is that you are trying to do that you say you "need" to use something else for. Unless you need to do something specialized, like massive RTS, Unity should be able to handle it, and if the case is that you need something specialized, you are going to have to code your own(maybe on top of something if you are lucky) or find a pre-made engine specific for the game type(good luck unless you have a nice budget). The only "general usage" engine that I know of that beats Unity is some things is UE4, but you've already stated you aren't interested in using C++. I can tell you though, many other engines also work with C++, or some other language that you may not know.

But yeah, a better way to get a better recommendation would be to know exactly what you are trying to do that Unity can't handle for you.



I wouldn't recommend CryEngine to anybody, having known people who worked for Crytek.

Can you tell any 'tellable' explanations about this ? Is the API/SDK/code bad in some ways ? Code spaghetti maybe ?

I wouldn't recommend CryEngine to anybody, having known people who worked for Crytek.


Can you tell any 'tellable' explanations about this ? Is the API/SDK/code bad in some ways ? Code spaghetti maybe ?

My only experience with CryEngine was that I took a small job to add PSVR support to it one time... I thought, "this should be easy, they already have Oculus support!".
Oh was I wrong.
For starters, their Oculus support was added by someone who had no idea what they were doing, or alternatively, simply didn't care what they were doing -- they took the head-tracking data and converted it into mouse input events, and fed it into a massively complicated, XML-routed event system, which eventually ended up modifying the camera rotation somehow. I found the part of the code that generated this message fairly quickly, but it took hours of wading through spaghetti before I found the part of the code that received the message... Backing up for a second though, mouse inputs are two dimensional, but head-tracking is 6 dimensional, so positional offsets and "roll" of the rotation were simply ignored!
What I thought would've been a simple half a day task turned into a multi-week epic task, because of the unnecessary complexity in their code-base. In the end, this game simply gave up on supporting PSVR, because adding actually decent VR support into Cry (and hitting their performance targets) was too much effort.
Another example -- every engine at some level has a cross-platform wrapper around D3D/etc (e.g. RHI), so that you can port your graphics code to multiple platforms easily... I was very confused when I found PS4-specific code that was calling D3D11 functions! It turns out that their cross-platform graphics layer was such a mess, that part of it is a portable Cry API (like RHI) and other parts just use D3D11 directly... Of course you can't run D3D11 code on PS4... so some bright spark has decided that rather than clean up their code base, they'll just add another layer of complexity to it by emulating select parts of the D3D11 API as GNM (PS4) wrappers :o

You can really, really tell that it's written by 100 different people who simply do not get along with each other at all... and having known a bunch of people who have worked there, apparently this makes sense, because internal cliques, egos and office-politics are a big problem apparently.

tl;dr, it does produce some pretty pictures, but the quality of the engineering is embarrassing.

Like kburkhart84, I'm curious of what you are unhappy with when it comes to Unity..?

Thanks for your feedback Hodgman. I must also deplore that this kind of practice (we are a team but everyone is doing it himself the way it should not be) is more and more common. I can remember that in a previous company, almost everyone involved in 3D had its own version of matrix...

In my mind the only serious contenders for an indie working in the 3D world are Unity and UE4. I wouldn't recommend CryEngine to anybody, having known people who worked for Crytek. So if you're not keen on C++ I'd normally suggest you stick with Unity. You might also be interested in the Godot project but I can't vouch for it personally.

I was just running Star Citizen yesterday ... /sadpanda

But I agree, Unity and UE4 are the main contenders right now for a full kit and if you don't want C++ then Unity comes to the top pretty quickly.

I'll add Gamebryo to the list which, like CryEngine, primarily uses Lua for its scripting though it's a bit dated.

- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara

This topic is closed to new replies.

Advertisement