Initial reactions as a mac user: not awesome.
So...
I've read https://wiki.unrealengine.com/Unity3D_Developer%27s_Guide_to_Unreal_Engine_4
...and I thought to myself, why not, this sounds like it'll be an interesting thing to play with. Let's give it a whirl shall we?
I have to say, nothing but disappointment here.
Here's a quick list of things that weren't awesome:
- The engine has gone out of its way to make using 'blueprints' the preferred way for scripting.
However, the power of having the source for the engine and being able to 'debug' issues directly only applies if you don't actually use blue prints.
Blue prints are cool, but only when you actually write C++ for them to use. I'm so completely not interested in writing flappy bird using the blueprint system.
To be fair, you can add C++ classes, but the tutorials are all geared for blueprint users.
- It's full source right? So you can drop in say, C-plugins and directly invoke them using C++, which is far far more awesome than unity? Right?
Only, the guide for doing that (https://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System) contains barely enough information to do it, and the actual project that uses it (https://github.com/BobGneu/Flathead/blob/master/Source/Flathead/Flathead.Build.cs) uses a completely different way of linking that (surprise) doesn't work on macs.
The editor also hard crashes if you have a malformed Plugin/Foo directory, so there's no way to even debug what you might be doing wrong.
- Let's make a hello world application!
Well... When you find the basic logging documentation (https://wiki.unrealengine.com/Logs,_Printing_Messages_To_Yourself_During_Runtime#In-Game) it says you can print a message using:
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("%s"), "Hello World"));
Create a new component, and actually write some C++, for about 15 seconds I was actually starting to get excited; but no, the logging doesn't actually work: http://imgur.com/el1mqxM
...and then the editor crashed again.
So, clearly something isn't going according to plan, but the documentation says to use printf format, and last time I checked:
printf("%s", "Hello World");
Shouldn't cause your application to crash.
- In the vague hope that perhaps the automation was meaningful, I looked into that.
I tried looking to see how you could compile your project from the command line, or you know, maybe run some tests or perhaps even just build the project at all
...but seems like none of that stuff works on macs.
- Finally, in the hopes I could customize the build system directly I looked into that, and dang me if the automation tool isn't written in C#.
So... I get to jump from Unity (C# CLR for everything) to UE4, where I have to use some ridiculous visual DSL (blueprints) to write code, write some small parts of it in C++, write build systems in C#, and rebuild the entire engine to link plugins into it?
To say that I'm disappointed thus far, from this amazing engine, is rather an understatement.
Looking at the questions page, it seems very very few mac developers use the engine; are there other people out there on mac using this?
Do you have some thoughts on why it might be worth sticking with it, despite the crashes and terrible tooling?
I'd love to love this engine, but I'm just walking away shaking my head right now.
Posted Mar 15, 2015, 3:59 PM UTC
Blueprints are being stressed as a majority of the people using the engine don't know how to write C++ or read the api docs. There are very few C++ tutorials, yes. I totally agree and wish there were more. However, this engine requires a very high level of know how for programming. Unlike Unity, you have class access to almost everything. Unity kinda holds your hand through the process of programming providing higher levels of access at a cost.
Also I think it's important to remember a few things:
The "terrible tooling" has consistently created hugely successful AAA games.
Blueprints are, in fact, programming. They just allow for a visual style of it.]
API Docs is all you need if you have the experience. If not, blueprints is a great place to start.
Mac isn't the most stable platform at the moment (as well as linux). These two platforms are relatively new and with an engine of this complexity, bugs crashes and leaks take time to sort out.
Sorry if this came off as rude, that was not my intention. But give it time and patience. These is quite a learning curve compared to Unity, but entirely worth it, I promise.