• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
RaoulJWZ

Is c++ good

31 posts in this topic

Hello everyone,

About a week ago i started learning the basics of c++. 

I know it's a long hard way, but my ultimate goal is to make games.

For fun i just looked to the classifieds page and there i saw that most people,

who need a programmer. Need one who knows c#. My question is: is c++

still so good for game programming?

Thanks.

 

2

Share this post


Link to post
Share on other sites

I agree with most of the comments here. C/C++ are great to learn to use but they are fazing out in a lot of more common areas.  They still have their place and will probably have their place for a very long time yet to come.  Learning will make you a better programmer overall even in more modern languages.  For games you really do not need C++ or C.  There are lots of great technologies out there today that are beyond capable of keeping up.  Heck even today much of the games you play are done with scripting languages and those languages hook into the C++ rendering engine on the backend.

 

The main reason I say C/C++ will be for around for a long time is mainly because of specific areas like kernel development as well as embedded micro controller development.  Sure there are new languages coming out that are compiled to machine code like Google's Go.  The big downfall of those types of languages is the lack of direct memory access through pointers and direct interfacing with assembly code.  In the world of Kernels and embedded micro controller (think ARM Cortex M, PIC, AVR) you really need that otherwise you can't really do anything without extreme C interfacing hoops.  Some of those chips are so tiny in memory you would be lucky to get a runtime driven language on them.  These are extreme cases.

 

So in the end if you are learning your first language I would recommend it not be C++.  I would rather see a new programmer on their first language use pure C, C#, Java, or Python.  C is a very simple language to learn and will let you learn some really useful concepts this is still my all time favorite language.  C#, Java, and Python are also relatively simple languages that rule out memory management and will allow you to focus on core algorithm concepts.  Choose something you want to choose not what everyone forces you to choose and stick with it for a while before moving on.  Every language you learn will teach you something new.

2

Share this post


Link to post
Share on other sites

C++ is basically the latin of programming languages.  Its usage (outside of games) is getting smaller and smaller but, it is the go to language that a lot of companies still use for programming tests (even for PHP or Java programming jobs).

It is a powerful language but it is also a language that is full of pitfalls and gotchas.  It is still used by most AAA companies along with some kind of scipting language but for an indie game like the ones that are advertised in the classifieds they are constrained by small team sizes, finances and time so they will tend to use established games engines that will use a higher level language.

 

 

 


understand C++ can transition to most other languages (expect functional)

 

 

Functional programming is just a paradigm and C++11 supports programming in a functional style so why you assume somebody who fully understands C++ would have trouble I don't know.

 

 

 

 


But it doesn't work the other way. Take someone who knows C#, or Java, or Javascript, and show them some C++ code. They will not understand it.

 

Theres no reason why somebody who has used any of these languages would not understand C++ code.

Edited by Buster2000
0

Share this post


Link to post
Share on other sites

I think that it is all alike.

 

The biggest problem for someone who is new to any of the cited languages is the object oriented design. So the focus should be on the question how can you learn that. With the knowledge of OOD the languages all are quiet easy to use.

0

Share this post


Link to post
Share on other sites
Okay thanks everyone.
I'll stick to c++ for a while.
If it Will be too hard i go for c# then to move on later to c++
0

Share this post


Link to post
Share on other sites

C++ is still the lingua franca of the AAA space in gamedev, and it's still very popular in smaller-budget / indie titles (except on the web browser), but it's been somewhat displaced by things like Unity (which is probably like 80% of the C# game developers).
 


C++ is basically the latin of programming languages. Its usage (outside of games) is getting smaller and smaller but, it is the go to language that a lot of companies still use for programming tests (even for PHP or Java programming jobs).

 

I don't think I've ever been asked a C++ question or asked to write any C++ code for a job that didn't involve C++.  Usually it's "X language from the job listing" or "whatever you want".

 


Functional programming is just a paradigm and C++11 supports programming in a functional style so why you assume somebody who fully understands C++ would have trouble I don't know.

 

This is a bit un-topical, but C++'s "functional style" doesn't really prepare you all-too-well for full-blown functional programming.  Great, you know how map, filter, and reduce work.  You're not going to pick up more fundamental things like Lazy evaluation, continuations, or monads.

 


Theres no reason why somebody who has used any of these languages would not understand C++ code.

 

This I have to disagree with vehemently.  Many of the similarities between C++ and Java/C# (Javascript is a totally different beast) are superficial.  Templates are far more powerful, expressive, and hard to figure out than the comparatively simple generics in the aforementioned language.  What the hell is a foo<1>?  What do you think a java programmer without any experience will do when he sees this?  The reference semantics are different too.  It's easy to see "std::vector v;" and say "oh, that must be how C++ programmers use new."  In most cases, it is.  Then they try to return it by reference, and the world breaks.  This is assuming you haven't tried to screw with their head by throwing pointers at them.

2

Share this post


Link to post
Share on other sites

If I have switch from one language to another I do not try to read something right from the start. It must fail if it goes over the simple control statements and assignements.

I try to make simple programs like the hello world to ask the question "in C++ it is called x and done this way. How is it done in java, C# or any other language".

0

Share this post


Link to post
Share on other sites

I learned a few languages before picking up C++ many years ago, but I noticed that after I learned C++, all other languages were much easier to pick up since a lot of concepts in C++ were easy to carry over to other languages.  

0

Share this post


Link to post
Share on other sites


Buster2000, on 15 Jul 2014 - 08:29 AM, said:

Theres no reason why somebody who has used any of these languages would not understand C++ code.

I dont know... C++ has an automatic memory management system (RAII) that is quite different from other languages (especially ones needing a GC). Even though developers new to C++ may be able to understand what the C++ code does, I don't know if I would trust that their code is safe and correct.

 

I think an experienced coder who has used any language should be able to read the code from almost any other language and be able to fatham what the code is doing.   The finer perculiarities of the language syntax maybe not but it shouldn't be too difficult for them to figure out.  I am of course talking about an experienced coder and not somebody who has spent a few months learning a little C# and now calls themselves an expert.

 


Buster2000, on 15 Jul 2014 - 08:29 AM, said:


C++ is basically the latin of programming languages. Its usage (outside of games) is getting smaller and smaller but, it is the go to language that a lot of companies still use for programming tests (even for PHP or Java programming jobs).



I don't think I've ever been asked a C++ question or asked to write any C++ code for a job that didn't involve C++. Usually it's "X language from the job listing" or "whatever you want".

 

I have by several companies including Microsoft, Facebook and Yahoo.  Also outside of the games industry I haven't seen many jobs that say you must know X language.  Once you get to a senior position they pretty much all say you must be a full stack developer who can handle any language that we throw at you.

0

Share this post


Link to post
Share on other sites

material you'll find for it are for the older version. All the old stuff still works (C++ is very big on maintaining backwards compatibility, which is a source of most of its warts and ugliness) 

 

Imagine what it would be if c++ would not hold the backward compatibility ;/

Then you will have 

1) two wersions of c++ in the run (which would will make some to revrite millions of lines probably etc)

2) as the previous c++ would be marked obsolete it would effect in the thing called 'code rot' imo both versions of c++ older and younger will be suffering on this

 

This is even now present by publicing the changes and staying backward compatible - but if it would drop backward compatibility it would raise much more

 

(for some case it is fun/silly of standarization comitee to produce different versions of language, the standarization was born exactly to deny the multiplity of close but not compatible versions and problems and space poluttion 

that it makes - then standarization comietee was starting 

to make those uncompatible verions theyselves ;/ this is

a bit sick) - the one thing that helps with this kind of problems is backward compatibility as you may still use core language (i mean older version and its still alive

 

same think i dislike the rotting proces of opengl (first ogl version was sentenced rotten to the bone, then we have 

the second about wich i cannot be sure will not rot as well

- this makes me feeling a bit disrespectfull to that as i could

respect more some real stable environment and system for decades

Edited by fir
0

Share this post


Link to post
Share on other sites

One thing I find "difficult" dealing with C++ is that it is a big big monster with different heads. You say "C++" but which one? Every C++ codebase I have come across uses a different subset of the language, completely different coding styles and guidelines.. and the more they add to the language the more this become evident.

More modern languages seem to have a better appreciation about coding standards and the importance to promote a clear style that identifies a language. Java comes with a style both "visually" (where the braces go, how you name things, which case you use) and logically.. with the standard library promoting that style. C# is even more on the same line.. Go is forcing the idea of "the one true way to Go". I have been writing C++ for almost 20 years.. I look at Unreal Engine 4 and my eyes hurt... it;s not nice and it wouldn't happen in a more modern language.

2

Share this post


Link to post
Share on other sites
Yeah throughout a career, you'll learn many different styles of C++, some of which are almost as different from each other as C is to C#! ;)

Regarding interview tests, I've usually seen C used for that (even for Lua jobs) to see if someone understands their fundamentals well.
0

Share this post


Link to post
Share on other sites


Regarding interview tests, I've usually seen C used for that (even for Lua jobs) to see if someone understands their fundamentals well.

 

Honestly, when asking interview questions I usually don't care what language the person uses to solve the problems posed, just as long as they can solve them. There are some occasions where we'll specify what language should be used to solve a particular problem, but that's actually pretty infrequent. I can understand it being more common in game development though.

1

Share this post


Link to post
Share on other sites

Not sure. It's hard I can tell you that much. I think c++ is a standard. Away it's my first language and I haven't studied anything else except html.  

 

 

 

Note: global variables are awesome. Learn to love them.

-8

Share this post


Link to post
Share on other sites


But C++ is still the most used language for game programming.
Can't be more accurate.
1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0