Which Programming Language / Programs?

Started by
27 comments, last by GameDev.net 18 years, 7 months ago
Hello, I am beginning my foray into game programming and although I am just starting out, I am dedicated to continue this endeavor. However, I had a few questions first: 1. What is a good programming language to start out with? I know the guide on this site suggested C/C++ but I heard that .NET is what everyone is starting to migrate to. What is .NET anyway? I heard that it uses both Visual Basic and C#, but can someone give me a dumb-downed answer? All the resources that I've seen about it are confusing. Edit: What about the D programming language? 2. What programs would be beneficial towards game programming? That would include any programs that help with graphics/music/sound and perhaps code maintenance and the sort. 3. How much C/C++/Other do I have to learn before I can start to program games? My first goal, as outlined by the site, is to make a Tetris game. Thank you for your answers and I look forward to being an active member on this forum.
Advertisement
I, prsonally, wouldn't recommend starting with C++. With languages such as Java or C# you're more likely to be able to get down the basics of object orientated design without having to worry about wrestling with the language quirks.

As for .Net, well, your answer will likely be different depending on who you ask. As far as most people here are concerned, I would imagine, it's a common intermediate language, its runtime, and a handy-dandy set of classes that make your life easier. Basically, what happens with .Net is that, unlike C++ or other languages that compile straight to 1s and 0s (machine code), .Net languages compile to a common intermediate language that can, theoretically, be run on any computer that has the runtime, regardless of platform. This means that you can indeed use C# and VB together, as they both compile down to the same thing before being 'proper' compiled at runtime. And that... was probably a very bad explanation, though. Sorry.

Useful programs: A good IDE is invaluable; I like Code::Blocks, myself. Also, I like Audacity for messing around with sounds, The GIMP for images, and Wings3D for 3D models; all of these programs are free and open source, so your wallet need not be afraid.

You'll need to be comfortable in whatever programming language you use before you get graphical. Being able to think like a programmer is a must if you want to get anywhere with your ideas, really... also, I'm tempted to advise against writing Tetris; Tetris has been done to death. But do what you want, though; everyone loves those falling blocks!
I recommend starting out with Python as your first language. You can get all the basic tools needed to start with Python on the website, and there are a few useful tutorials for learning the basics as well. Once you've got the basics down you can use the PyGame library to help you make some games.

Python will allow you to learn some good programming techniques while getting some reasonably quick results, and isn't prone to teaching bad habits as a lot of BASIC variants are.

After Python, I'd recommend moving on to C#, which is still relatively new compared to C or C++ but has recently been gaining in popularity. At the moment there are more recources around for C++, but there is starting to be more information available on development with C#, and in my opinion it will eventually take the place of C++ as an industry standard. Learning C and/or C++ is also a very good option however, and as mentioned there is a massive wealth of recources available on both.

Starting with Python, you should be able to make your first graphical game in a relatively short period of time after getting familiar with the basic syntax of the language and learning some of the commonly used functions. You'll need to use PyGame to help you out with graphics. I recommend making a Pong game before Tetris personally; it's a little bit simpler, but still contains many of the elements common to almost all games.


I'm not going to recommend any programming related software, but for graphics and audio I'll point you to these lists:
- Audio Software
- Graphics Software

In particular, for 2d graphics I'm quite fond of Paint.net and The GIMP.

For 3d, check out Blender and Wings 3d.

Audacity is an excellent free audio editing package. For music I actually recommend purchasing FL Studio if you're really interested, but there is also some pretty good free software around if you aren't particularly interested in this area, such as the excellent Modplug Tracker.


Hope that helps. [smile]

- Jason Astle-Adams

I recommend starting with C++. However most C++ books that you buy aren't actually C++ books, instead they are actually C books that throw in a little C++ code! Thus I recommend Accelerated C++, the only C++ book that is an actual C++ book.
As you can see, you've got 3 responses and 3 different languages recommended thus far. [wink] Most people will simply recommend the language they prefer, some will recommend one they think is a good learning language, and others will recommend what they learnt with (whether it's actually good for learning or not).

Almost any language will do - the important thing is to learn the fundamental programming concepts and the appropriate techniques for developing games. Stay away from BASIC variants as a general rule, but other than that feel free to pick any language and try to learn it.

I myself actually learned first with QBasic and then moved on to Visual Basic before learning some Java and C++, so I actually broke my own rule about BASIC variants quite heavily, but it's not something I would recommend; it's very easy to pick up bad habits which are hard to un-learn when using those languages.

In any case, once you've learned one language (assuming you learn it well and develop a good understanding of programming), picking up most other languages is quite easy to do.

To provide a brief list of some of the common choices, some good potential languages that are recommended often include Python, Java, C#, C and C++. Choose a language that you think will suit your needs and give it a go. Stick with it for a while, and if it really doesn't work out (give it a while, it can take some fair time and effort to first get into programming) you can always try another.

- Jason Astle-Adams

Learn lisp before those other languages clutter your mind with false categories and preconceived notions. stay pure ;p

If you eventually want to use C++ I would recomend learning either Java or C# first. This will get you familiar with the syntactical feel without all of c++'s quirks. Once you learn one of those you will hava a rather easy transition to C++ because you already know the basic loops, control structures, function signatures(methods in Object Oriented Programming). The only real difference you will find are a few things here and there and you learn them.

If you want a personal opinion here I would say start out with C#. Why I hate java. That was the lang I learned before C++ because C# was not around. C++ I recomend not starting with because the only program I have wrote yet that I did not have to debug was a basic hello world console app. In C# I can slam out a whole 200+ line program without any errors. But that is my personal opinion. You can really pick any language you want and can learn it in time.
My JournalComputer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter. (Eric Raymond)"C makes it easy to shoot yourself in the foot. C++ makes itharder, but when you do, it blows away your whole leg."-- Bjarne Stroustrup
There's something to be said for a good authoring system too. You said you were interested in adding graphics, music, and sound easily, so that might be the way to go. I believe the FAQ mentions authoring systems briefly but doesn't go into too much detail.

I've experimented a little using Game Maker ( http://www.gamemaker.nl/ ) - it has a free version with no time limit, and the upgrade to the full version is pretty cheap. People make pretty sophisticated games using Game Maker.

There's also BYOND ( http://www.byond.com/ ) which is completely free and allows you to easily make multiplayer games. I haven't used it much but it looks fairly interesting.

You might also try Game Editor ( http://www.game-editor.com/ ) the free version comes with a time limit, but I've heard it's pretty good and if you want to buy it the cost for a single license is pretty reasonable if you don't care about subscribing for updates.


I think there are advantages and disadvantages to starting out with an authoring system. The biggest advantage is that they're usually easy to learn and you can start making games pretty quickly.

I think the biggest disadvantage is that some people get too comfortable with the authoring system they choose and are reluctant to expand their horizons and learn a more challenging language language later, even when the authoring system isn't well suited to what they want to accomplish.

So I'd say it's a personal thing. Use C++ if you're feeling adventurous and want a lot of power. Use Python if you're looking for something fairly easy and well structured. Use an authoring system like Game Maker if you want to get started quickly and still learn important programming concepts.

[Edited by - Parrot on August 29, 2005 1:39:37 PM]
Python is not my favorite language, my "current" language (whatever that means), or my most frequently used language. But I strongly recommend it for starting out. In my experience, the syntax is nice and clean for beginners and doesn't lead to having to treat certain language elements as "magic".
I would second the python reccomendation. I tried starting with C++, but I got bogged down with some of that languages' problem areas. Python is a more easy to understand syntax, and IS a good learning language.

This topic is closed to new replies.

Advertisement