Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've spent a fair amount of time with UE4 now, and there is good... and bad.

good:

- You can debug everything.

- If you dont know how something works, you can step into the source and see right away (unlike unity, where performance issues are a mystery).

- Its really pretty.

- The material editor is powerful and amazing.

bad:

- Everything else.

- Compiling C++ of a small project for a single file change can take 20 seconds.

- C++ should be fast right? This engine is slow as balls on every platform without a brand new graphics card and cpu. The reflection system, GC and blueprint interaction is powerful...but speed was a major disappointment for me. Use on next gen consoles only.

- Poor cross platform support. Hot reload (ie. reload the DLL with your project code in it while the editor is open) works on windows and 'kind of' on other platforms; and not with plugins (that means if you change a C++ file you have to restart the editor). Some features (eg. 2d physics with box2d) are only implemented on windows; there no way of telling what is implemented for what platform short of reading the engine source.

- Integration of 3rd party C++ libs should be the killer feature... but its not. The build toolchain (UBT) requires every header file to have the same first include. Rtti and exceptions are disabled by the build tool. Fork fork fork, edit edit edit. Dynamic linking and runtime DLL loading should work, but it doesnt (everyone just links to .lib files, see point above...).

- There are plenty of other little annoyances, but probably the only really major one is building a 'production' target. The build toolchain is a massive sprawling mess of C# code (yes, all the UE4 build scripts are C#), which often obscure linker and compiler flags dropped in via command line arguments (but only from that platform) or hardcoded. ...but if you change any of the UBT source code to customize your build, or even add some debug logging... you have to rebuild the entire engine from source, which can take 40ish minutes.

To be fair, if all you use is visual blueprints and you never have to do a build, you miss a lot of these pain points. For designers, its great.

There's a lot of love out there for building things using blueprints; but someone has to do the hard work of the low level C++ to support that.

... if you work with this engine as a developer, you have my sympathy.

Hit up #unrealengine on freenode. At least you'll have the rest of us to cry along side with.



No rtti or exceptions is because most console platforms don't support them.


I'm not arguing, I'm just pointing out it makes integrating 3rd party libraries troublesome.


Thanks for the overview.

However what is you opinion about being able to use C++, eventually C++14, versus the C# 3.5 Unity keeps on using?

Just curious.


Modern C# is a powerful and compelling language; C# vs. C++ on that front is an open debate... one the internet has a great number of easily found topics on.

The old runtime unity uses, despite using newer class libraries and so on from the open source C# stuff from microsoft... well, its terrible. I mean, its usable, but its like C# lite, with none of the features or optimizations from you know, the past 5 years.

C++11 in UE4 is hands down better. C++14 will be even better.

...but their tooling sucks at the moment. Right now, despite the unity runtime, its still a better system to work with as a developer.

In the future, who knows?

Maybe unity will use a new version of C#? (deeply unlikely)

Maybe the UE4 tooling will improve a lot? (very likely)

My advice is 'watch this space'; the UE4 engine has great potential, but right now, despite the good parts, the bad parts are so bad I couldn't recommend using it professionally.

...but hey. Thats just my oppinion. Its free. Download it and try it for yourself. If nothing else, the code is a facinating read in C++ learning.


> Maybe unity will use a new version of C#? (deeply unlikely)

Actually they will upgrade Mono when IL2CPP is stable enough.

http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-...


Cool! It makes me change my opinion on the whole Unity vs Xamarin.


Thanks for sharing.

I am quite comfortable with both languages, just lack the time to do anything and was curious about the experience from someone about both engines.

I do share your opinion.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: