Should I go with C# and Unity or C++ and Unreal/Some other engine

So I started learning C++ about a few weeks ago, still a rookie, and then I realized that Unreal was paid for and Unity was free, but did not support C++. I initially started learning C++ to design console programs at first with Xcode (yes im a mac user) and then branch out into making games with Unity, Unreal, or some other game engine.

I don’t have nearly enough money to pay for Unreal, which is one of the big reasons why I’m leaning towards dropping C++ and learning C# for Unity.

That’s basically all. So, should I learn C# and go with Unity, or should I learn C++ and somehow get Unreal or get another game engine?

p.s. im leaning towards C# and Unity but i just need some advice

inb4 biased answers

Welcome! :wink:

I personally would go with C++ because it is also used in other engines like cryengine. You just have to pay the 20$ once. After that you can cancle your subscription -> you will be still abel to use the engine/publish commercial games/…, but you wont get any updates until you re-subscribe :slight_smile:

A big advantage of the UE4 are blueprints -> you can easily create entire games with them in a very short time + the community is awesome + you get access to the source code ( this can be very useful -> especially when you are a programmer) :smiley:

C# is a more modern language and easier to pick up and run with.

c++ is powerful and its much more widely used.

Blueprints are an option but personally I dislike them intensely.

C# may be soon available for UE4, via 3rd party developer, so this may be the ideal solution.

c# and unity is way easier to get into, also unity is feature rich and relatively bug free.
ue4 is very beta atm and has been since the start, it also lacks in lots of areas, c++ is much more difficult to use, add in the ‘Epic flavoring’ to the code and its messy and convoluted to say the least.
these are also the reasons why ue4 has much much more potential than unity free, (cant say for unity5)
might be worth getting a months subscription to ue4 just to try it and see for yourself.

ps. i agree with Sammy about blueprints, they are horrible to use and really not the unreal script replacement Epic claim them to be.

$20 is much of a muchness, but free is free, provided you do not need features in the pro version of Unity.

As for Blueprints, I’ll go the other way and say Blueprint’s are great, especially when combined with a healthy dose of C++.

If I need to try something, I’ll often try it out as a blueprint first, then convert the complex or performance related areas to C++.
For some things, this means creating a whole class.
For others, a simple Blueprint accessable function.
In either case, I can still customise things further and quickly using the Blueprint system.

If we talk about money and desktop then UE4. For sure. It’s just $20. And you get everything and forever.
Unity is $1500 for just Desktop development. For mobile its another $1500 for iOS and another $1500 for Android. Their subscription is a bulls**t. It’s 12 months plan. It’s $600 less but it expires. So to make updates for your game for longer period than a year you have to pay more, more and more…
Free unity is a toy. No LOD, no IK-rig, no realtime shadows for spot/point lights, no HDR, no GI, no post-processing, no occlusion culling, etc…

If we talk about mobile then it’s definitely Unity. UE4 is almost impossible for low-, mid-budget devices.

And all of this has nothing to do with C++ or C#. Frankly speaking it’s kinda stupid to compare NET 2.0 and C++.

It’s $20 for UE4, you can cancel your subscription and continue to use the engine forever. If you want to make games you’re probably going to have to spend some money at some point. $20 is nothing. Unity has a free version, but it doesn’t even come close to UE4.

This one is massive for me.

Regardless of what you choose in the end there is no question you will benefit from learning both. Paradigms present in one, but not so much in the other, will broaden your range of approaches to certain situations and improve you as a programmer (versatility is good). Starting to learn one language right after the other might not be the most fun thing to do though, so make sure to apply your fresh knowledge and make some cool applications first!

I love Unreal Engine 4 so I can’t be impartial.

How I see the things.

-Unreal Engine 4 seems to be the future, offering great performance, completely reasonable and humble price and policy, meanwhile super initiative and easy to learn the basics, but hard to master it.
-Unreal Community is truly admirable, it’s hard to see it somewhere else… Everyone is ready to help you, they’re not criticizing and very understanding. There’s no immaturity and fights for which Engine is better.
-They’re always looking how to improve themselves, keep in touch with the technologies and other subject related things, most recent example is Maxwell and Apollo.

Using UE4 feels like a pleasure and a great opportunity to create and learn art, and not like an evil business model to drain your willpower and money. :stuck_out_tongue:

Final words… I really appreciate the opportunity for Unreal to exist! But OP you may find loving Unity too, my advice is to try them both for a week each and your heart will tell you the rest, heh!

I don’t get it. I really love the C++ in UE4, and I come from a C# background. It is practically managed, and can’t be decompiled easily, like the C# in unity games…

I reckon it blows C# away in terms of speed as well, since you write natively and not thru some scripting interface… (?)

On topic: I would reccomend UE4. I have been developing for unity for many years, and it might feel a lot more polished atm, but there are some things in unity that are not good, and you have no possibility of correcting these things directly, since you have to write all code on top (no engine source).

From a technical perspective, UE4 blows Unity on all fields.

If I had to choose between Unity and Unreal based on a single point I would say Unreal wins thanks to source access. Its as simple as that for me, any weakness can be fixed having the right technical knowledge while in Unity it is simple impossible even with that knowledge.

Unreal is better overall. Unity’s good, but very expensive. Cryengine, well, I’m not familiar enough with it.

If C# is a must for you, Xamarin already have developed a c# solution for UE4. See: Mono for Unreal Engine, however I would stick to Blueprints and Cpp

I am in a similar position to the OP, though I am leaning towards UE4. Are there any common pitfalls when making the switch? Any blogs or articles by people who have made the change from Unity to UE4?