Things that would make me switch to Unreal from Unity

I’m a Unity developer but I really want to switch from Unreal because Unity never fix any bugs and Unreal looks more fun with Blueprints. But I’m not ready to make the jump just yet. Here are the things that would make me switch:

  1. C# compatibility. (It could still be compiled down to C++ code using .NET Native). I love using C#. C++ is soooo old school.
  2. More modular so that you could make more streamline games just using the bits you need. (The people in the Twitch stream says they’re working on that.)
  3. Unreal to work better on low end laptops like MacBook Air. (Perhaps a lite version that could be used on laptops to make simple mobile games).
  4. Stop it recompiling 300 shaders every so often. What is up with that???
  5. Better widgets.
  6. Make the IDE load quicker in 5 seconds or less.

Basically just better for the casual user. Not dumbing down exactly. But making things more obvious - not so many panels - simplify everything. The good thing about Unity you will notice is that it has very few menus and almost no special functionality. Everything else is basically a plugin. That is an advantage because of it’s unified framework it is easier to learn.

I’m looking forward to Unreal 5 but I don’t think I’m ready to make the jump just yet.

PS. I mostly make mobile games (Android/IOS) and Windows 8 store games for PC.

  1. Not happening natively. UE4 C++ is simple once you get the hang of it.

  2. I honestly have no idea what this means.

  3. If you turn down the viewport quality it runs quite good on low end devices in my experience. Still, there’s only so muh thay can be done.

  4. I had this issue when the derived data cache was being inaccessible. You should ask about that on the answerhub.

  5. What? UMG has all your standard widgets, you can build anything with it.

  6. You want to decrease the load time BY 5 seconds or TO 5 seconds? The latter will never happen for starters, but in any case load times depend on your project. Besides, Unity’s load time was ages long on medium sized projects too.

  1. Anything that ends with “once you get the hang of it” is not a good user experience. :wink: You sould be able to double click an empty blueprint and enter some scripts into it. Can you do this?
  2. They said that in the future only bits of Unreal that you need will be compiled into your project so the file sizes will be smaller.
  3. I’m sure there’s more that can be done. Maybe not use the GPU to render the chrome/menus etc.
  4. It always seems to lake long to compile a single shader. Why does it take so long? CPUs can process millions of instructions a second?
  5. I just mean the size/translate/arrow widget. It doesn’t look nice to me. That’s just my opinion. I prefer the one in Unity. I don’t like the chequered pattern on selected items.
  1. Check this for C# in UE4. I’d recommend using either Cpp or blueprint scripting though.
  2. I’m not sure what you mean here…UE4 is as modular as it gets…I only ever use the bits I need.
  3. It can run quite well on under-powered machines…I have a secondary machine that is 5 to 6 years old that runs the engine fine, it doesn’t even have a core2duo cpu, it’s a dual core pentium (of the early variety) it has a Radion GPU that cost me < 100 quid brand new…It did need a bit more ram though.
  4. This doesn’t happen to me…It only re-compiles if I make any changes to the material and save them
  5. The UI tools are okay aren’t they? what else would you like to see?
  6. The UE4 editor or VS? In any case patience is a virtue…I just loaded up a test project in the editor and it took approx 5-7 seconds…patience is a virtue (or so they say)…
  1. Sounds to me like you’re unwilling / unable to learn a more advanced system and want to be catered to.

  2. Fair enough, but hardly a game breaker.

  3. My bet is that Epoc’s engineers know what they’re doing. There might be possibility for some minor improvements but people need to understand that UE4 is a big boy and requires big boy hardware, and that is not going away. MacBook Air is ***** anyway :smiley:

  4. Compilation is a lengthy process, especially when it includes translating a visual graph. If you don’t like it write your own HLSL shaders.

  5. You can customize the selection pattern to some extent last time I checked. But fair enough, this is a taste thing. =)

Awesome. :smiley:

I would prefer if I could type scripts straight into Blueprint rectangles though. Yep I like to be spoiled. :slight_smile:

I agree with this bit. It would be great to hear on the Twitch stream things like “We’ve managed to make Unreal start in half the time”, “Shaders take 50% less to compile”, “We’ve streamlined the menu system”, “There is a new lite mode for low end machines”, “You can now write code directly in Unreal”, “Unreal IDE is 50% faster”. Things of that nature. Rather than. “We’ve added feature 1023.” Because instead (like Unity perhaps) feature 1023 could be a plugin and that the real improvements were optimising, simplifying and streamlining the Unreal interface. But that’s just my preference. Maybe a lot more people are interested in feature X.

There are two ways to make an IDE. First is the “bells and whistle’s” approach. Which is to have so many panels and menus that leaves certain audience impressed with all the functionality. The second is the streamlined approach. They used to do the first approach to sell hi-fi’s in the 80’s! But now they have the iPod with virtually no buttons at all! Turns out people don’t like complication.

When I first opened UE4 and saw the highly rendered menus and panels. I just thought “Oh dear. This is going to be slow and painful.” When I opened Unity and saw all the simple chrome menus and panels I thought “This is boring but don’t have to worry about the GPU wasting time rendering the menus”.

Also

  1. Make it look better on a laptop screen-size of 1366x768. (i.e. make the panels and fonts smaller).

PS. @DamirH I think you show a bit too much deference. I have noticed this a lot with people using very complicated software. Consider “dwarf fortress”. A game which is slow to load, and had virtually no instructions. Most people would say that is bad? But still defended by it’s hardcore following. And any suggestion that it could be optimised and have simple instructions scorned at as people not willing to take the requisite 100 hours to figure out how everything works. Having worked in software companies I can tell you that we don’t always know best, we don’t always take the best option over the easiest option, and we don’t always optimise everything, and we don’t always test on lower machines. So that’s why I don’t agree with people saying, Unreal knows best and that anyone who finds Unreal too complicated or slow it is their own fault.

Example: Compiling 300 shaders
Consider the example of compiling 300 shaders. How long should that take? Well if they are all on hard-disk. You execute a compile program from hard disk. And re-save them to hard-disk. Meanwhile creating a png of the material for the IDE saved to hard disk, each time updating the IDE with the new material. OK, that’s going to take a long time. But it’s the simplest way of doing it. And people will say. “OK. 300 shaders. Obviously it takes a long time. Why are you complaining? This is is a hardcore gaming engine. It’s not for wimps!”

But then you think. We really need to optimise this because we want to appeal to the general public. So we’re going to store all our shader code in RAM. Have the compiler in RAM. And compile the shader back into RAM. Do this, and 300 compiled shaders takes microseconds. Then, only when we need to see a preview of the material is a PNG created (in RAM) for the IDE. Then send the compiled shaders to the GPU in the background.

So you do all this and you find that actually the week spent making all the shaders compile 100 times faster was well worth the effort.

(Also, with physically based shaders, I thought the idea was you just had one shader for all your needs?)

I agree with that point, computing lighmass in preview mode takes too much time.

Unreal 4 is targeting top notch graphics towards powerfull PC devices, while Unity keeps running good on older hardware. You can’t have advantages of both worlds, you must choose high visuals Vs high portability.

Epic will need some year before getting better stable.

C++ is faster, and it is not more hard then C# once you learned it (Epic provides easy C++ starter tutorials)

Not quite true

Not quite right. Cpp like any other language is just a tool to do computation. Generally you have better performance when you don’t really on garbage collection but then again you could be using assembly. The problem with your comment is that C# is easier. C# was designed to be easier because it focus on abstraction to improve development work flow. It is designed to improve productivity just like Java and other modern languages (scale, groovy, Kotlin…).
We have very powerful compilers nowadays and the new paradigm for high level is memory abstraction and bells and whistles for coders. Coding game logic (game design stuff) is hard enough for small teams.
What I’m trying to say here is that unreal should care more about the indie small team where there is a developer. Developers code and in small teams they need to focus on the game and not the language and tools. Blueprint is good but is just an extension for the game logic.
We might not even need a new language but at least a better way of using modern free and better IDEs than V$. I know we can currently but not without suffering a great deal of setup pain.

.Net Native is not available for PC applications outside the Windows Store. And its not on the roadmap either(I talked about this at TechEd last year with the product manager Visual Studio at Microsoft). Mono has native support I think, but its license is not very friendly(read: expensive).

And as mentioned, once you got the hang of it, C++ in UE aint that difficult if you have C# experience.

For non-performance-critical code. C# is faster to write than C++ or blueprints. Which is also important. In VS 2015 they will support more platforms than Windows including Android and IOS. I started in C++ and C# is just so much nicer to use.

C++ is one of the lowest level programming languages to use, which is why it’s great for software development. When people say it’s faster they mean that it’s capable of getting more out of the hardware than by other methods. Blueprints to my knowledge has an insane amount of overhead. C# has limitations that C++ doesn’t. There’s a reason why most software development is done in stuff like Python and C++ (to my knowledge anyway). Parts of software code are even programmed in assembly which is the lowest you can technically go. There’s machine code but I don’t think that it’s very platform-friendly.

UE4’s priority is greater visual potential over simplicity and low overhead. There is a lot to improve on the performance side but in terms of features UE4 is right up there. I think by next year UE4 will be very solid.

I am sorry if I come across as rude but I do not mince words for anyone or anything - if you are willing to sacrifice usability, reduce stability and cripple performance just to cram C# or any other inane language into UE4 instead of learning the (extremely simplified) C++ that UE4 uses, then this probably isn’t the engine / industry for you. Go weave baskets or something, leave the rest of us and Epic focus on the real issues of the engine

You do realise the Visual Studio is now going FREE and I am not talking about Express.

Don’t turn this thread into another C++ vs C# battle. We all know which language is the best: the one I love!

I understand where you’re coming from but I think usability is a “real” issue. Yes, you can make the interface “hardcore” so that only people with lots of C++ experience and the drive to spend 100 hours figuring out the interface can work it. Or you can make it very easy to use so that even basket weavers can understand the interface. You can still keep the back-end open so the hard-core coders can hack every piece of it, but I don’t think there is anything fundamentally wrong with trying to make the user experience simpler. After all, that’s what blueprints are all about. I think simplifying everything will not only improve the experience for amateurs but also increase productivity of hardcore programmers.

I think Epic are still learning about this, because as the Unreal Engine was an internal tool they don’t have to consider so much the broader public. Maybe the hardcore programmers might resent the newcomers if it was too easy to make games? Like when in the early days of the internet, the first people on the usergroups, the “true geeks”, resented when the general public began to user the internet too. And they resent it even more with all the people going round in T-Shirts saying “geek” on them. Then it’s no longer a badge of honour to say you can use the internet. Like it will no longer be a badge of honour to say you know how to use the Unreal Engine because it will be so easy!

It’s already quite productive as is . As new features are introduced the interface won’t get any simpler. UE4 is still in its infancy and there is a long way to go. Software development will never become wholly “easy” per se. Game development has been around for almost 50 years and not much has changed.

Well. I still think I might wait until Unreal 5 before I consider switching. They might dumb it down enough so even us Unity users can get the hang of it. :D/

instead of increasing i would like to see UE4 to eliminate C# more and more.

with points 2 3 4 5 6 i agree with those.

I don’t think C# would add much to be honest. The problem I always had with C# in Unity is it fell in an awkward middle ground. You didn’t have enough low level access to do really awesome stuff with the engine but it’s also not simple enough that just anyone can pick it up. You still need to learn quite a bit of programing before you can use it. In this way Unity wasn’t really accessible to artists and non-programmers.

Blueprints bridge this gap, someone with almost no programing knowledge can start doing stuff straight away and coders can still do anything they want in C++. What I would like to see is a way of writing blueprints using simple text scripts since it can be slow to hook up all the nodes and everything. I don’t think sandwiching C# in the middle would do anything but make it more complex and hard to manage.

On the stability of Unity, it rarely crashes to desktop because the editor is running in a mono sandbox. Exceptions are caught and displayed as warnings or errors. In my experience of using it it doesn’t actually have less bugs. The bugs it does have are much harder to find since you don’t have source code access and it doesn’t always tell you about them. As much as crashes to desktop are annoying you do get a full stack trace allowing you to identify the issue.