Live data from Hacker News

Unreal vs. Unity Opinion

gist.github.com

151–160 of 319 posts

Re: Unreal vs. Unity Opinion

#151
What’s the story for developing in UE without C++ these days? Can you get along with just scripting and shaders? What sort of functionality would require new C++ and wouldn’t be possible in script?

What draws me to Unity is C# because learning C++ is a decade long project.

Re: Unreal vs. Unity Opinion

#152

Earlier quoted context omitted.

Why does every game engine seem to write their own language? Why not choose an existing one - in this case C# seems like an obvious choice because it's already used in another major game engine and seems to be well liked.

First of all, you need to understand that all current (serious) game engines primarily use C++, in order to provide maximum performance at the low-level. But C++ is incredibly unproductive as a language for actual high-level game development, since C++ takes ages to compile and has more weird and dangerous footguns than any other language. So developers often end up binding a scripting language onto their C++ core, s…

Actually since Burst and DOTS, Unity has been incrementally replacing C++ with C# Burst subset.

Re: Unreal vs. Unity Opinion

#153
post #40
post #30

Having worked in Unity as a hobbyist for about a decade and considering the switch to Unreal due to obvious issues Unity is currently facing (3 rendering pipelines being the main one), I'd like to hear more input from the programmer experience in both engines. I think C# in Unity hits a really nice sweet spot: You have a powerful and expressive type system, can use nice high level features like async/await, you get (…

As someone who generally hates visual programming and just wants a text editor, I'd say blueprints is actually one of the most enjoyable of these. They really nailed the editor and you can have a lot of fun just playing around. Also the c++ unreal shouldn't be compared to pure C++. You're working with the unreal framework which adds a lot of quality of life features. I've been working with it for the last month or so…

so interesting, as a mostly C++ dev, UE's C++ style feels absolutely awful aha. Of course it mostly has to be like this because c++ used to not have reflection at all but I think that nowadays one could use similar principles as the ones I've tried to develop for audio / media objects in https://github.com/celtera/avendish to implement game objects / UObject in a much cleaner way and with better compile times.

Add a couple custom attributes implemented as a clang plug-in like e.g.

    [[ue::name("Player HP")]]
    int hp{};
which can be done in a couple afternoons by an intern and things would look sooo muuuch better.

Re: Unreal vs. Unity Opinion

#154
post #2

This speaks sooo close to the trends that pushed Microsoft to go create WSL, to become a viable healthy platform for multi-platform development: they had to. They had to create a platform people could use as they wanted to, had to support something that takes upstream pull requests. Simply shipping Ubuntu is basically the biggest possible fix they had for long term development, going where the puck is headed. This di…

WSL is basically a way to get the pseudo-Linux crowd that is giving money to Apple for UNIX laptops instead of supporting Linux OEMs.

Anyone could already enjoy a similar experience since Virtual box and VMware exist.

Re: Unreal vs. Unity Opinion

#155
I think it comes down to two points: Unity has much better (real world) mobile support, , and there are many more people trained on Unity. IMHO chasing the elusive AAA carrot is Unity's biggest strategic blunder right now.

Re: Unreal vs. Unity Opinion

#156

What’s the story for developing in UE without C++ these days? Can you get along with just scripting and shaders? What sort of functionality would require new C++ and wouldn’t be possible in script? What draws me to Unity is C# because learning C++ is a decade long project.

The main things found in many games would be procedurally generated assets like maps, and strategy game AI/pathfinding. Most other things should be possible in blueprint scripts or standard components if you can live with the performance, which you can if you can live with unity performance.

Re: Unreal vs. Unity Opinion

#157
post #145

Earlier quoted context omitted.

You clearly have no idea what's he is all about. His message is very clear: Modern software is crap. It's orders of magnitude slower than it should be, it's buggy, and,yes, bloated. And if you ever used any piece of software today I don't see how you can you not agree with it... He is never advocating NOT using engines, but rather that one can be much better and more efficient developer with just a little bit knowled…

> Modern software is crap. It's orders of magnitude slower than it should be, it's buggy, and,yes, bloated. And, that's where he lost me. Software was always crap. Emacs = Eight Megabytes and constantly swapping. Because even if you squeeze every last cent of performance, someone will have a great idea that will spend each dime you saved and then even add some debt on it. Performance is never a positive as much as a…

A game that illustrates that success is tied to performance is factorio. Because it can scale to absurd amounts, while still running on an old labtop.

It’s in a genre with notorious performance issues and limitations as well as bugs, but they managed to put in the time and effort. Some of the lessons and solutions are quite educational even.

There’s games that are ridiculously simple in comparison let your fans spinning for no reason, grind to a halt or crash.

Performance is key here, as it is one of the most limiting factors for _both_ quality and features. Namely the things you can do and how well you can do them is tied to performance. If you are pushing those in any dimension, then you want control.

Re: Unreal vs. Unity Opinion

#158
post #92
post #50

Earlier quoted context omitted.

This is what i was wondering that wasn't explained in the article... does UE offer some guardrails for working with c++ that make the jump from C# an easier decision?

short answer: yes. If you stay within their uclass/uproperty framework, you have garbage collection, guaranteed initialization of class members, type reflection, etc. Rare issues come up like: ``` int* Element = &Array[0]; Array.Add(0); *Element = 3; // could be access violation or memory-stomp if array was resized ``` Which can be addressed somewhat by code style policies. Their garbage collector is also slightly we…

Thanks!

Re: Unreal vs. Unity Opinion

#159
post #131

Earlier quoted context omitted.

Running a unity build [1] means the compiler only has to parse and reason about the headers once. So you lose the parallelism of multiple TUs, but you gain on not doing the header crunching over and over again. Whether your codebase will benefit from that is a matter for testing, but many do. [1]: https://en.wikipedia.org/wiki/Unity_build

also by using unity build you don't need to link object files. I think that is main reason to use unity build, it eliminates need for any build system and compiling source code in a new machine is as simple as compiling a single transition unit.

Unreal is far too big for one unity blob. It still requires a build system for many other reasons.

Re: Unreal vs. Unity Opinion

#160
post #52

Earlier quoted context omitted.

It’s not as bad as you imagine. Here are some of my experiences regarding swapping to unreal: - the c++ gameplay framework is very friendly. It’s GC, with good high level wrappers that provide stuff like options, maps, classes (ie. Reflection). - The unreal discord c++ channel is full of people who will actually answer your questions, it’s brilliant. - Every high level blueprint function is a c++ function. I cannot e…

By unity build I think they mean all cpp files within a module are compiled included into one (so each cpp isn't a separate execution unit, anonymous namespace etc. will bleed over between files unless they are in separate unreal module or plugin). Similar to SQLite amalgamation. Turning it off could parralelize the build more, except linkers are often singlethreaded and bottleneck things enough to undo that benefit…

You really don't want to turn off unity builds in unreal for anything larger than a toy project. The build system is "smart" (albeit itself is slower than say ninja). It breaks the project up into multiple unity "blobs" for you, and they're compiled in parallel. It also integrates with source control to remove files from the "working set" so if you're iterating on a small file it will be removed from the unity blob and compiled on its own for faster iteration.
Post reply on HN