Which language should i choose?

Started by
21 comments, last by Washu 11 years, 5 months ago
I've had the dream of becoming a video game developer/ programmer for a while now, and wanted to know which language should I learn for video game programming. I have a few books on C++, java, and python, but I dont know which one to start with. Please give your opinions, choices, and advice on the language and other things I should choose.
Advertisement
"I want to be a game developer... now what?"

Ultimately it isn't hugely important; programming languages are just tools, and if you follow through and become an experienced developer you will end up using a huge range of languages throughout your career. After learning your first language, and more importantly the underlying concepts of programming, it becomes significantly easier to learn additional languages as needed, and a skilled programmer can pick up a similar language in a couple of hours and will usually need only around a week to become familiar with a very different language from those they already know. Remember that your choices are not forever, and that the most important thing is to choose any language and actually get started.


That being said, given the choice of Python, Java or C++ I would probably rank them in that order of preference. I usually recommend beginners stay away from C++ because it can have a steeper learning curve and is often considered more difficult, and usually encourage higher level languages such as Python because they will allow you to concentrate on the fundamentals of programming and game development without having to worry about so many of the nitty-gritty details of memory management and weird errors that can be difficult for a beginner to understand and solve.


Do you have any programming experience yet, or are you starting from scratch?

- Jason Astle-Adams

I don't have any experience yet. i've just been looking at a few books and wanted to know where to start.
C# or Java are both really good languages to program in, python is a great language too, I recommend python or C# for developing your first game, even if the game is crap.. There is so many tutorials on C# and python on youtube, once you feel a little more confindent with c#/python start learning C/ C++. With C# use the XNA framework, with Python use the PyGame framework, with C/ C++ use opengl/ directx and with C++ use the sfml framework.
Java is a clunky, unwieldy language. If you already knew Java, it would be fine to use it for game dev, but I don't consider it a good language for learning programming in general, nor is it a good language to learn specifically for game dev. There just are better choices out there.

C++ is reasonably productive when you are already very proficient with it, but it is very hard to get good at. I started with it myself but would strongly recommend against going that route.

Thus, go Python. It's just good. Even if you wanted to use another language later, you would still benefit because you could keep using Python for game scripting, as glue code, to make small tools for your build and testing and analysis processes, etc.
I started out with Python. It's easy to learn, user-friendly and there is plenty of tutorials to help get you started. I would recommend using it with PyGame for game development. PyGame is a very good starting API to use.

http://www.pygame.org

Then I would learn Java if I were you, once I had a firm grasp on game programming of course.
Java is bad language for learning programming? Hum... i don't see why it would less good than C# or Python to learn programming. I'm interested to hear your arguments about that.

If you don't care about starting learning programming with low level languages to get a better understanding of how memory and system work, go with Java would totally fine and it would even be better than Python. I love Python, i used it for game development with PyGame during a while when i was getting started but i ran quickly in performance issues. Python/PyGame couple is good to start but i don't think it's a serious choice for more ambitious games. Of course Python is user friendly, you can make games super quickly once you are familiar with it and PyGame but you will end up writing C code each time you will need a bit of performance, and trust me, it's annoying.

Today i'm considering PyGame as a really slow library but other tools exist, for example, for 3D games, Panda3D seems to be really nice (i only played a bit with the example codes).
Max_spectra: it depends on what kind of games you want to do. AAA titles are generally written in C++ (C and assembler in good, old days), so it has to be best language for programming spectacular games.

Max_spectra: it depends on what kind of games you want to do. AAA titles are generally written in C++ (C and assembler in good, old days), so it has to be best language for programming spectacular games.


Correlation <> Causation

In the 90's Python and Java were not practical alternatives due to lack of adoption and library support. Since then, support for consoles have been of utmost priority for non-MMO AAA games. Those consoles can't support Python and Java, thus (often crippled implementations) of C++ are used.

Max_spectra: it depends on what kind of games you want to do. AAA titles are generally written in C++ (C and assembler in good, old days), so it has to be best language for programming spectacular games.
The reasons of professional developers do not (usually) apply to you.

Whilst AAA developers have good reasons for choosing C++ in many cases, it can be a mistake to blindly follow after them without understanding the reasons and making your own decision. In many cases some of those same professionals would actually love to use another language, and if the reasons they were forced or lead towards C++ are not relevant to you there's no reason you need to also choose it.

Don't get me wrong -- C++ is a fine choice if it's the language you prefer and/or you have your own good reasons to choose it -- but it's a mistake to think that because professional developers choose it it must also be the best choice for you. Your situation is very different to theirs, and the reasons they chose it will probably not apply to you.

([s]Posted from mobile[/s].EDIT: Fixed up formatting from a PC.)

- Jason Astle-Adams

This topic is closed to new replies.

Advertisement