Jump to content
  • Advertisement
Sign in to follow this  
NadimKing

Unity Unreal Engine & Unity (C++ & C#) - Beginner Question

This topic is 1009 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

[I apologize in advance if this is in the wrong section]

 

So I'm currently stuck in a pickle and need your opinions and help regarding my problem. I've recently gotten interested in game development (PC GAMES) and really want to be able to create my own small games, whether they're 2D platformers or FPS it doesn't matter to me. The idea of making games amazes me smile.png

I have no prior knowledge of any programming languages, but have gotten back into reading a C++ book I bought a while back (So far learnt about Dynamic memory allocation & pointers, references etc).

 

Now, to get to the main issue/dilemma I'm faced with. Although I haven't finished reading the C++ book, and this would be the first programming language I know, I downloaded Unreal Engine (Latest version ofc) to get a feel of it and see if I can do something small w/ it. As I looked at tutorials online, using this engine just seemed so daunting and difficult for me (Too many things going on).

 

Due to this, I looked at Unity which seems to be less hectic and complicated, and it seems that it would be a lot easier. The problem here is that Unity uses C#(Which I dont know), and I believe Javascript(?) in the coding parts, and not C++. SO, I want to know what you guys would recommend I do:

 

A) Drop C++ and learn C# (So that I can use Unity)

B) Continue/finish learning C++ then learn C#

C) Use 'insert engine here' instead as it's very easy for beginners

D) Other

Edited by NadimKing

Share this post


Link to post
Share on other sites
Advertisement

Unreal is made to be used by teams of developers, modified to allow Indie developers the ability to make there own game.

It's daunting to learn when you are new to game development, however if you succeed the knowledge you will learn, will be invaluable.

 

Unity is easy to learn, some would say to easy. It doesn't take the same kind of discipline to learn Unity as it takes to make a game, for this reason a lot of people learn how to use Unity long before they learn to make a game.

Unity is better suited to single developers than Unreal.

 

 

The real question is, what kind of developer are you?

 

Learning Unreal Engine first is like diving into the deep end, sink or swim. The frustration could cut your development career short, or it could be the greatest teacher you will ever have.

 

If you are the kind of person who likes to ease them self into something new, then you shouldn't even start with Unity. Start with a 2D game engine, like Game Maker, and make a very simple but complete game.

 

Starting with Unity is like playing a poorly designed adventure game. You never know if the path you are following leads to the main quest or to some kind of treasure, you will always wonder if you need to turn back to see if you missed some thing.

It's a lot more fun learning this way, however it's better suited for someone who isn't dead set on making a game any time soon.

Edited by Scouting Ninja

Share this post


Link to post
Share on other sites

I'm not sure where this concept of Unity being easier than Unreal came from...

They are very similar. Both are going to be really hard for someone who almost knows just one programming language.

Unreal even has a visual script builder called "blueprint" so that you can make an entire game without writing any code.

Share this post


Link to post
Share on other sites

Much of the C style languages are similar enough that you should not have any real problems moving from C++ and C#, the other way is a little harder imho due to C++ putting the responsibility for resource management on the developer.

 

- C# struct and C++ struct are very different. C++ is really a class with different default access while C# is on the stack, unless within a class 

- C# has garbage collection so 95% of time you do not have to worry about memory and resources

- C# runs on its own platform and C++ compiled. You can native compile C# but not sure if unity supports this

- C# has a cleaner lambda syntax but not as much control over closure capture.

- C# does not have separate header and class, they are all in the same file (Unless you split with partial classes)

- C# does not support multiple inheritance

- C# does not support const with the same power as C++

 

All your if/while/for/switch look the same.

 

There are a bunch of other subtle differences but all depends on how deep you really understand C++ as to if you even notice them

 

Unity is still a complex engine but I would say C# is the easier language to work with as it will kick you in the teeth less :)

If you go the C# route get Visual Studio 2015 Community Edition. It is free and the best IDE on the market. Also has better unity support now

Share this post


Link to post
Share on other sites

You could just give each engine a try for a week each considering they are both free. 

There's plenty of video tutorial series on YouTube and the like, to aid getting started.

Share this post


Link to post
Share on other sites

I'm not sure where this concept of Unity being easier than Unreal came from...

They are very similar. Both are going to be really hard for someone who almost knows just one programming language.

Unreal even has a visual script builder called "blueprint" so that you can make an entire game without writing any code.

 

For me, it's the breadth of stuff available online.  I can usually find an explanation of how to do whatever it is I'm trying to do in Unity from a simple internet search.  While for Unreal, I would often hit a brick wall, and not be able to find the information I wanted.  

 

That said, I imagine Unreal will catchup over time, and it's asset store will probably get pretty good as well.

Share this post


Link to post
Share on other sites

Remember that unreal engine supports the blueprint programming language which is very newbie friendly and simpler than C++. It is completely graphical, dragging and dropping nodes and lines to draw a flow chart. You can do anything in it near enough that you can do in C++...

 

Try that, and try unity. I think you'll decide pretty quick which you like best :)

Share this post


Link to post
Share on other sites

Much of the C style languages are similar enough that you should not have any real problems moving from C++ and C#, the other way is a little harder imho due to C++ putting the responsibility for resource management on the developer.

 

- C# struct and C++ struct are very different. C++ is really a class with different default access while C# is on the stack, unless within a class 

- C# has garbage collection so 95% of time you do not have to worry about memory and resources

- C# runs on its own platform and C++ compiled. You can native compile C# but not sure if unity supports this

- C# has a cleaner lambda syntax but not as much control over closure capture.

- C# does not have separate header and class, they are all in the same file (Unless you split with partial classes)

- C# does not support multiple inheritance

- C# does not support const with the same power as C++

 

All your if/while/for/switch look the same.

 

There are a bunch of other subtle differences but all depends on how deep you really understand C++ as to if you even notice them

 

Unity is still a complex engine but I would say C# is the easier language to work with as it will kick you in the teeth less smile.png

If you go the C# route get Visual Studio 2015 Community Edition. It is free and the best IDE on the market. Also has better unity support now

Adding onto this...

C# does not expose pointers to the programmer. A godsend for danger prone programmers.  In C++ pointers are a must to do anything efficiently.

C# Generics are type safe, but no-where near as powerful as C++'s Templates. C++ Templates allows you to do a variety of interesting tricks and hacks.

C# has explicit interfaces. C++ Interfaces are basically just classes.

C# you do not need to include files. You just need to be aware of namespaces. C++ you need to be sure to include files correctly, or you may break something.

C# has RTTI, C++ does... but it's more efficient to roll your own.

C# Data is passed differently. All classes are passed by reference. All variables are copied.

 

 

C# at the surface may seem like it's better than C++. But, the two are actually on par to each other. Both C# and C++ can be an utter pain to learn reguardless of what you are trying to do.

C++ was a breeze for me to learn, even with pointers, polymorphism, inheritance, and it's fuggly errors.

C# was the most confusing thing I ever glanced over, and... in the end it infuriated me with it's hand holding, and confusing cases for when we need to instantiate or not. Also I hate how it passes around data.

 

But from my perspective? Go ahead and learn Unity. I personally hate Unity for a plathora of reasons, and a number of them are unbiased. But I can not deny it's simplicity and amazing api for people just learning.

Edited by Tangletail

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!