Starting as a game programmer

Started by
3 comments, last by arka80 9 years, 6 months ago

I just want some advice from all of the experience game developer here.

Do all of you guys feel like you have to learn c++ in order to learn game programming?

I know there's c# but what bothers me is that most game tutorials were written in c++. You can program OpenGL in c++.

C++ is very ugly it think. You will burn out before you even finished all the definition of the function you have just declared. But i feel like i have to learn it. Maybe because I just want to someday get in video game industry and that its something I have to learn yet part of me is telling do i really need to go through this just to make a game? a 2d game since i am just starting out.

C# is elegant. But i feel like when Im going to c# route I feel like Im missing something. Maybe I was worried about the performance issue because of GC

I really need to get started. Start coding but I cant decide. Some part of me wants c++ another is c#. I dont know.

How about you guys. What kind of experiences have you encountered when you are starting out? what kind of decision did u face? Have you face this kind of issue before?

Im not talking about game engines here.. Just asking what are your experiences.

This is not technical question but I hope you guys can share some of your experiences you had or can give me advice.

Thanks

ooookkkkkaaaayyy

Advertisement

I think the general consensus is that c++ is usually not the best place to start with programming. This is due to a few reasons but it mostly boils down to the fact that c++ allows a lot more room for user error (and can create some poor habits in a beginning programmer). However, it's by no means impossible to learn it first.

As far as personal experiences go here, I probably fall pretty close to warning example tongue.png While it wasn't my first language, it was pretty close. I had only been programming for a few months when I started learning c++. That said, I fell into probably most if not all of the pitfalls warned about by those more experienced and am still working my way through a lot of things and spend a lot of time fixing problems in my code tongue.png As far as your concerns about performance and garbage collection, Especially if you're making a 2D game, I think that shouldn't be much of a concern for a long while. c++ can be faster, in the hands of a good programmer (definitely not myself yet), but by the same token, it can be a lot slower if done poorly. While c++ might be the preferred language of large development companies, I'm fairly certain it isn't among independent and small developing groups, and there's a reason for that.

Personally, I don't think it's ugly. It might look a bit confusing, as It does give the programmer a lot of room to do exactly what they want with it, which is a double edged sword.

I don't think you ever "have" to learn it, unless you're planning on programming for a living, and even then I'm certain there are those who never really learned it.

To your point about opengl. There are bindings for other languages such as java and others, so if you'd like to learn it, c++ is not your only choice..

If you're just starting out, my only advice is that programming is a long road and you're likely going to learn many languages. While it might feel at this point like you're going to be stuck with the first language you learn forever, it's not the case. If you haven't read it, the FAQ addresses this question and gives some good advice. Anyhow, I think c++ is great, but I also think you may want to consider learning something else first. You'll probably have an easier time of picking up c++ later down the line anyhow.

Edit*

If you're the stubborn type, and are going to ignore the warnings to to learn something else first (no judgment here, just acknowledging that the personality exists tongue.png), the advice I would give is to invest in some good resources for modern c++ (11 and onward). There's a lot of functionality I missed out on originally by using old tutorials. Additionally, If you're relying on online tutorials, there are a lot of poor ones out there that will do you more harm than good. Make sure you get some good advice on which ones are helpful.

Also, welcome :)

Beginner here <- please take any opinions with grain of salt

I just want some advice from all of the experience game developer here.

Do all of you guys feel like you have to learn c++ in order to learn game programming?

I know there's c# but what bothers me is that most game tutorials were written in c++. You can program OpenGL in c++.

C++ is very ugly it think. You will burn out before you even finished all the definition of the function you have just declared. But i feel like i have to learn it. Maybe because I just want to someday get in video game industry and that its something I have to learn yet part of me is telling do i really need to go through this just to make a game? a 2d game since i am just starting out.

C# is elegant. But i feel like when Im going to c# route I feel like Im missing something. Maybe I was worried about the performance issue because of GC

I really need to get started. Start coding but I cant decide. Some part of me wants c++ another is c#. I dont know.

How about you guys. What kind of experiences have you encountered when you are starting out? what kind of decision did u face? Have you face this kind of issue before?

Im not talking about game engines here.. Just asking what are your experiences.

This is not technical question but I hope you guys can share some of your experiences you had or can give me advice.

Thanks

Hi,

My first post as "advice" so take it as a grain of salt..

Been studying programming for 2 years, Ive "Learned" (although you never stop learning)' C#, Java, Objective-C among other things.. and ive self taught C++

The theory doesn't change: Inheritance, polymorphism, ect just the implementation does. So jump into a language you are most comfortable with because those skills you learn will be portable.

I am personally a fan of C# and although not a recent article C# can get apparently pretty close in DX vs c++.

Resultsx86.png

Source

I think the general consensus is that c++ is usually not the best place to start with programming. This is due to a few reasons but it mostly boils down to the fact that c++ allows a lot more room for user error (and can create some poor habits in a beginning programmer). However, it's by no means impossible to learn it first.


That's not all that general of a consensus.

I wouldn't recommend learning it as a first language on one's own but it's a perfectly reasonable first language in a more structured environment. Unfortunately, far too many C++ books and articles don't teach good C++ which makes it hard to learn on one's own. There's no evidence I have ever found that learning C# or whatever first is going to make you any better at learning C++ properly down the line, though. The hard parts of programming are language-neutral and the hard parts of C++ are rather exclusively hard to languages of its ilk and aren't any easier with prior programming experience (for some people they might possibly be _harder_ if they started with another language). Learning C++ however will make you a far better C# programmer. It's really hard to unlearn the laziness and imprecision of design encouraged by a managed language but it's very easy to apply the skills you learn in unmanaged native land to improving your managed code.

Short version: if you're just starting out then C# is no easier to learn than good modern C++ but if you already have experience then transitioning from C++ to C# is easier than the other way around.

That said, learn whatever you're comfortable with. It's certainly possible to transition from C# to C++ and become a strong game developer in the AAA space. Heck, start with Python or LISP or BASIC or whatever you like best. It's a slower, longer path to get to C++ mastery than just starting out with C++, but it's a valid path nonetheless.

Sean Middleditch – Game Systems Engineer – Join my team!

Learn both, it will not harm you tongue.png

C# is great for writing tools and is a must to have in curriculum, if you will ever look for a programmer job. It is really productive when it comes to desktop applications (or aspnet, why not).

C++ is a beautiful language. It will open your mind and make you a more careful programmer (or a dead one biggrin.png ). It is not true that you will get old declaring functions and stuff. It is also, like you said, the language of choice in the community/tutorial/samples/libraries... widely used, which is a strong argument to persuade you learn it.

This topic is closed to new replies.

Advertisement