c++ or c# for 2d and 3d game creation?

Started by
36 comments, last by Kylotan 7 years, 2 months ago

Question: C++ or C#?

Answer: Yes.

If you're wondering where to start then it depends on where you're going. If you want to make something bizarre and performance intensive then go with C++. If you want to make something quickly that doesn't go too far off the beaten path in terms of computation then go with C#. In either case it's more about what middleware you want to use. If you like UE4 then learn C++ first. If you like Unity then learn C# first. If you like brain injuries then learn Java first.

Agreeing with Kylotan's earlier post, if you're asking this question then Unity may be a good place to start. It has a shallow learning curve but is still a professional-level tool.

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
Advertisement

Question: C++ or C#?

Answer: Yes.

If you're wondering where to start then it depends on where you're going. If you want to make something bizarre and performance intensive then go with C++. If you want to make something quickly that doesn't go too far off the beaten path in terms of computation then go with C#. In either case it's more about what middleware you want to use. If you like UE4 then learn C++ first. If you like Unity then learn C# first. If you like brain injuries then learn Java first.

Agreeing with Kylotan's earlier post, if you're asking this question then Unity may be a good place to start. It has a shallow learning curve but is still a professional-level tool.

That does make sense, But I just realized I neglected to point out that I'm 14 and chances are I wont make any ground breaking game any time soon, so would it be worth it to dedicate the next 4 years' free time to learning C++ so that when I do start doing stuff I have C++ on my belt? or Should I just start making games with unity so that I can learn how game creation works?

Question: C++ or C#?

Answer: Yes.

If you're wondering where to start then it depends on where you're going. If you want to make something bizarre and performance intensive then go with C++. If you want to make something quickly that doesn't go too far off the beaten path in terms of computation then go with C#. In either case it's more about what middleware you want to use. If you like UE4 then learn C++ first. If you like Unity then learn C# first. If you like brain injuries then learn Java first.

Agreeing with Kylotan's earlier post, if you're asking this question then Unity may be a good place to start. It has a shallow learning curve but is still a professional-level tool.

That does make sense, But I just realized I neglected to point out that I'm 14 and chances are I wont make any ground breaking game any time soon, so would it be worth it to dedicate the next 4 years' free time to learning C++ so that when I do start doing stuff I have C++ on my belt? or Should I just start making games with unity so that I can learn how game creation works?

Unity - is not that good to start with. It is good when you know c# well. Take C# and monogame, it is less complicated than ?++, you can start making things faster. You can always start to learn C++, better not to rush

That does make sense, But I just realized I neglected to point out that I'm 14 and chances are I wont make any ground breaking game any time soon, so would it be worth it to dedicate the next 4 years' free time to learning C++ so that when I do start doing stuff I have C++ on my belt? or Should I just start making games with unity so that I can learn how game creation works?

Computer languages are not like natural languages where it takes years to learn each one. For starters, there is hardly any vocabulary. So it doesn't take long to get the basics down. And once you know C++, it would take you days or weeks, not months or years, to be able to start being useful in C#. The same goes for the other way around, or with Java.

So, you don't need (or want) to plan 4 years ahead. Do what you want to do now. You can always change later.

That does make sense, But I just realized I neglected to point out that I'm 14 and chances are I wont make any ground breaking game any time soon, so would it be worth it to dedicate the next 4 years' free time to learning C++ so that when I do start doing stuff I have C++ on my belt? or Should I just start making games with unity so that I can learn how game creation works?

Both paths are ok.

My suggestion is to use any engine and try to make a Tetris, or maybe something even simpler like a Tic tac toe. You will have to do all the gameplay programming by yourself but the engine will manage a lot of stuff under its hood. In the process you will have to learn a programming language and also realize what things an engine usually handle and what things are left for that specific game you're trying to make.

Anyway, have fun doing whatever you choose :)

That does make sense, But I just realized I neglected to point out that I'm 14 and chances are I wont make any ground breaking game any time soon, so would it be worth it to dedicate the next 4 years' free time to learning C++ so that when I do start doing stuff I have C++ on my belt? or Should I just start making games with unity so that I can learn how game creation works?


Computer languages are not like natural languages where it takes years to learn each one. For starters, there is hardly any vocabulary. So it doesn't take long to get the basics down. And once you know C++, it would take you days or weeks, not months or years, to be able to start being useful in C#. The same goes for the other way around, or with Java.

So, you don't need (or want) to plan 4 years ahead. Do what you want to do now. You can always change later.

I was trying to figure out how to say this.
Think about this. Most pro programmers have mastered multiple languages. From my own experience, learning c++ made c# easiery to understand. C# is strictly an object oriented language and it forces that onto you without really explaing why. C++ can be oo or functional, in my opinion learnibg both styles will help you understand oo better

If i told you C++ was the best, do you think that would improve your chances of making an amazing game? Its not a proper question to ask, which language is better, because you are going to get the same answer as "which operating system is better", or "which fruit is better". It doesn't matter, it really doesn't, I know you think it does but that's just because you need to gain experience as a developer to know not to ask such a question.

This is not meant to sound mean, its just to point out that you should not be focusing on things of this nature, because it doesn't matter. Minecraft was made in Java, it could have been made in C++, it could also have been made in HTML, so it doesn't matter.

What does better even mean, better at rendering, better at expressing instructions, better compilers; you should get to the root of the question if that's where you want to go.

If you actually want to make a video game, why don't you program in both? If its because you are afraid that you will head down a path that will doom your game before it has even started, then you have doomed your game by thinking about absurd questions like this.

Make your game in both languages, and see where it takes you, if that's what your focus is, or if your focus is on making video games instead, then focus on that and use a tool to solve a specific problem, after you have identified it as actually being a problem.

Programming languages are not the problem, the problem domain is the problem, focus on solving that, because there is nothing wrong with C# or C++ or Java or Phython et al, even though you have groups of people that prefer one over the other, you have groups of people that rather eat an apple instead of a steak, and it doesn't matter because apples are awesome and so is steak, so eat both and be happy.

</rant>

Thanks for the reply! But I must say I don't entirely agree with what you're saying, like for what I've learned in the past few days from this thread is that c++ is a superior language in game development. Most, if not all AAA games are programmed mostly in c++ but one caveat is that its super difficult and that all triple A games take years of development with scores of people, but c# would probably be better for me because on how its much easier for a beginner like me to work with because it can be used a powerful scripting language and its much more simple compared to C++. You don't need to worry about whats going on with your memory with C# and so on.
Bottom line is that from what I learned from this thread is that

if I want to learn how to make big games, learn C++
and if I want to make a game fast learn C# and use Unity.

How come nobody is suggesting C++ and UE4? Is Unity really that much easier?

-potential energy is easily made kinetic-

How come nobody is suggesting C++ and UE4? Is Unity really that much easier?

Taking a shot in the dark I'd say the reasons are probably:

-More people have tried Unity than Unreal.

-Just spitballing but it seems like Unity has a more wide acceptance by small time developers than Unreal does, we often see UE4 used for more professional quality games whereas Unity is often more indie. I would assume that means it probably has more community content available to help novices understand it. The Unity store is pretty well known for making it easy to grab assets to stick in your game too, and a lot of content on there is aimed at small time developers.

That said I don't think anyone is really ruling out UE, you could use it too.

This topic is closed to new replies.

Advertisement