Programming Language for Game Design

Joined
Apr 5, 2008
Messages
3,622
Alright, so I'm wanting to go into the field of game design. I want to start learning now, and that means coding as well as using programs such as Blender...obviously I'll need a bit more than that.

Anyways, I'm torn between languages. C++ is a good language to know I hear...but daunting to beginners. They say Python is much easier however, and much more efficient for game design at least. Which should I use? Or should I use another alternative? I also plan to buy books on one or the other (as well as using Blender and such), so any good books out there? I've found a few on Amazon but would like [H]'s opinion as well.

Thanks.
 
It depends on the requirements of the games you want to design. If you're writing 3D games for DirectX on the XBox or Windows, I'm not sure you can realistically expect success with anything other than C++. If you're making text-based graphics games, or casual web games, you might do fine with Python or PHP. You might consider Flash (and ActiveScript) for casual games, too.
 
And what you want to do. Someone working with C++ (or Python) is not likely to also work with Blender unless you're at a tiny indie developer or something. If you just want to fool around and test out concepts, it seems like PyGame would be ideal.
 
Well, I want to create a game by the time I get out of school (let's give 2 years max) if possible...I would LIKE it to be a 3D game. I've looked into engines such as Ogre, but I don't really know where to start. I've written a paper on it..but that was mostly about getting into the industry and such. I'm suppose C++ would be more "useful" to learn then probably? A flash game honestly wouldn't be a bad place to start, granted the language or skills would help give the basis for larger projects.

And by game...I don't necessarily mean a full featured 3D title obviously...maybe just a level or something.
 
Last edited:
Do you have any programming experience? How much? You haven't given us much background. If you don't have any programming experience, starting with a 3D game engine is the wrong choice. You'll just end up frustrated.
 
Do you have any programming experience? How much? You haven't given us much background. If you don't have any programming experience, starting with a 3D game engine is the wrong choice. You'll just end up frustrated.

Quite true. I had to go back and start from the ground up. There are just no shortcuts, here.
 
Well, I want to create a game by the time I get out of school (let's give 2 years max) if possible...I would LIKE it to be a 3D game. I've looked into engines such as Ogre, but I don't really know where to start. I've written a paper on it..but that was mostly about getting into the industry and such. I'm suppose C++ would be more "useful" to learn then probably? A flash game honestly wouldn't be a bad place to start, granted the language or skills would help give the basis for larger projects.

And by game...I don't necessarily mean a full featured 3D title obviously...maybe just a level or something.

Subscribed, since this is a similar situation to what my little brother is in. I think he has taken a basic course in C++ and is currently taking/is planning to take Java in the future.
 
Do you have any programming experience? How much? You haven't given us much background. If you don't have any programming experience, starting with a 3D game engine is the wrong choice. You'll just end up frustrated.

No. I've used modeling programs before (created basic things, such as a pencil sharpener once...but nothing great), and played around with game editors themselves (those stupid things like FPS Creator and Game Maker, then others like Source SDK), but never done anything from the ground up, and need to learn. I know computers inside and out, it's just the coding and everything that goes into making a game I do not. As I said, I don't know if I want to just delve into 3D games or not, probably not as you said, but I would like to get one accomplished (and by this I mean possibly just a 3D level or a concept) after I actually learn how to code and start coding.
 
My company started a few years ago during which time we developed our own 3D game engine and tools. We're now a few months away from releasing our first batch of games. Don't underestimate the work involved, I would say. If you want to keep it simple, go with 2D, use an existing engine (there are a lot of 2D engines, 3D ones too, but the free ones aren't that great), and you'll probably want to program in C++ or whatever you're familiar with as long as it isn't Java of C#. Art and gameplay are the most important things and can cover up a lot of flaws.

We use C++ throughout the company, by the way.
 
Yeah, I know there is going to be a lot of work to go along with it, that is why I didn't know if 2 years was a reasonable goal all by myself. As for the engine, yeah, I'd obviously be using one out there. Ogre is free, and people say that one is good...but I'm not sure. I haven't looked into 2D engines, but that would be something to do as well. I however have to get the other stuff down before I delve into those though. :p
 
Yeah, I know there is going to be a lot of work to go along with it, that is why I didn't know if 2 years was a reasonable goal all by myself. As for the engine, yeah, I'd obviously be using one out there. Ogre is free, and people say that one is good...but I'm not sure. I haven't looked into 2D engines, but that would be something to do as well. I however have to get the other stuff down before I delve into those though. :p

Well, let's put it this way: making something 2D or 3D is easy. Making it look good and work well is very hard. It took us 2 years with two people to write a game engine (two major revisions), supporting libraries. We are now nearly a year into developing the actual games. We have played with a few dozen game ideas, relocated many to be further developed later on after we have gained more experience, ending up with two games we can develop in a few months time.

2 years with an existing engine and tools plus a good graphics artist and SFX/BGM person is more than reasonable. If you don't have the latter two qualifications, things will get somewhat hard. 3D is easier if your drawing skills suck, as drawing sprites is a PITA and just using a free 3D model and sprucing it up is relatively easy in comparison.

We are pulling in an audio guy soon to help us with the SFX and BGM, the rest we are doing ourselves. It helps whether you are just doing it part-time as a hobby or actually intend to make a profit out of it, like we do :)
 
Well, let's put it this way: making something 2D or 3D is easy. Making it look good and work well is very hard. It took us 2 years with two people to write a game engine (two major revisions), supporting libraries. We are now nearly a year into developing the actual games. We have played with a few dozen game ideas, relocated many to be further developed later on after we have gained more experience, ending up with two games we can develop in a few months time.

2 years with an existing engine and tools plus a good graphics artist and SFX/BGM person is more than reasonable. If you don't have the latter two qualifications, things will get somewhat hard. 3D is easier if your drawing skills suck, as drawing sprites is a PITA and just using a free 3D model and sprucing it up is relatively easy in comparison.

We are pulling in an audio guy soon to help us with the SFX and BGM, the rest we are doing ourselves. It helps whether you are just doing it part-time as a hobby or actually intend to make a profit out of it, like we do :)

Well, like I said, I don't know much about it, but I could do textures and the like myself. Graphics wouldn't be a huge problem if I had to do it myself. I'd just have to do it really abstract to make it not look like I suck so bad...:p. I plan this to be a project, at least primarily, by myself. While I realize in the industry you are going to have to work in a team, and other people can help immensely, this is one of my goals for a few reasons. I do actually have a friend who does graphics though, and could talk to him. As for that, I'm doing it as a project right now, but that is because I'm still in school and not into the industry yet. I want to have sort of a portfolio so to speak, and have stuff that I have done to my name. I also want to be able to know stuff so that when/if I do break out into the industry I'm not going in blind. SFX I could probably do, but BGM...I'd have to get someone else to do that, I'm sure there is someone out there willing to put their music into the game to get "recognized" or something.
But right now, as I said, before I even think about that stuff, the basics are what I need to learn. Also, a question I wanted to know, how are you guys financed? As I said, if I wanted to break off into the industry, I suppose I'd be working for a big company or an upcoming company perhaps, unless I was actually into starting my own which I doubt I could do. I know people like EA and established developers (not saying you aren't, but you know where I'm going with that hopefully) obviously have profits and stuff.

EDIT:
Lol, figured I could find stuff from when I was young. http://www.turbosquid.com/Search/Artists/Tristicus Horrible little objects. I thought I had accomplished something. :p
 
Last edited:
the very first intro CS course at my university assumes you know nothing about programming and at the end of the 10 week course you're writing a 2d game (using a very basic 2d graphics library) in C++
 
But right now, as I said, before I even think about that stuff, the basics are what I need to learn. Also, a question I wanted to know, how are you guys financed? As I said, if I wanted to break off into the industry, I suppose I'd be working for a big company or an upcoming company perhaps, unless I was actually into starting my own which I doubt I could do. I know people like EA and established developers (not saying you aren't, but you know where I'm going with that hopefully) obviously have profits and stuff.
We are self-financed. Colleague is PhD student at a Canadian university and took a break to work on this instead, I'm making money using web- and software development at the moment. We work from home so our overhead costs are extremely low. In itself working for a small gamedev company (assuming they know what a good business plan is) can be a lot more fun than working for a soulless, face-less entity like EA :)


EDIT:
Lol, figured I could find stuff from when I was young. http://www.turbosquid.com/Search/Artists/Tristicus Horrible little objects. I thought I had accomplished something. :p

We all have to start somewhere ;)
 
We are self-financed. Colleague is PhD student at a Canadian university and took a break to work on this instead, I'm making money using web- and software development at the moment. We work from home so our overhead costs are extremely low. In itself working for a small gamedev company (assuming they know what a good business plan is) can be a lot more fun than working for a soulless, face-less entity like EA :)



We all have to start somewhere ;)

Lol yeah, I suppose.

Hmm that is pretty cool. Yeah, I know some developers are like that. I always wanted to shoot for a job at Insomniac or Naughty Dog, but those are out of my reach for a while even if I get successful in the field.

the very first intro CS course at my university assumes you know nothing about programming and at the end of the 10 week course you're writing a 2d game (using a very basic 2d graphics library) in C++

Sounds like a course I'd need to take. However, I'm not, and don't plan to attend any type of college schooling.

Which still brings me back to the question, C++ or Python or other? :p I appreciate all the comments however.
Also, a reason I said something such as Blender is I know I'll have to be making 3D models, correct? I've seen requirements for some game designer positions and they say extensive knowledge of Blender as one of their requirements.
 
Last edited:
Scripting languages like Python are cute as is Java, but serious game engines and game code are written in C/C++ with a scripting engine tacked on top for extensions. WoW uses Lua scripts, IIRC.

Blender is a cute Open Source tool, in my view, but it's interface is idiotic in many respects. I would expect Maya and/or 3D Studio experience to be a lot more useful.
 
So probably C++ is the way to go I'm guessing. It just sounds daunting from what people say and is hard to learn, especially with no other coding like myself.

Thing is, Blender is free, so it is the only thing I would use (legally). IIRC, Maya was what they said also I believe..then again all companies differentiate.
 
its hard enough for college grads to get into the game industry, the odds of trying to make it without a college degree are unrealistic
and with a CS degree you become a well rounded professional who can do various tech jobs or even qualify for jobs not in the computing field if your plan A doesnt happen right away
 
So probably C++ is the way to go I'm guessing. It just sounds daunting from what people say and is hard to learn, especially with no other coding like myself.

Thing is, Blender is free, so it is the only thing I would use (legally). IIRC, Maya was what they said also I believe..then again all companies differentiate.

As for programming languages, people think too much of languages as being very different. The truth is that you can program in any language if you understand the basic principles of programming well enough and can RTFM. I have ported an app from PHP to C# without any prior C# experience without any issues and whipped up a complete Java app within a day with GUI and everything back in college while the other students were struggling to follow the basic examples. A programming language is a programming language, just that some have better library options available. C/C++ is pretty much universal in that regard. Anything has or should have a C/C++ API or binding :)

On Blender, let's put it this way: I doubt we'll ever use it within my company even if it's free. Its GUI is infuriating at best and the learning curve is much better spent on an application which is used professionally. Somewhat like using the Gimp versus PSP or PS if you actually want to do professional graphics editing.
 
As for programming languages, people think too much of languages as being very different. The truth is that you can program in any language if you understand the basic principles of programming well enough and can RTFM. I have ported an app from PHP to C# without any prior C# experience without any issues and whipped up a complete Java app within a day with GUI and everything back in college while the other students were struggling to follow the basic examples. A programming language is a programming language, just that some have better library options available. C/C++ is pretty much universal in that regard. Anything has or should have a C/C++ API or binding :)

On Blender, let's put it this way: I doubt we'll ever use it within my company even if it's free. Its GUI is infuriating at best and the learning curve is much better spent on an application which is used professionally. Somewhat like using the Gimp versus PSP or PS if you actually want to do professional graphics editing.

Oh...that comparison makes me cringe. I love my Photoshop and hate Gimp. I'll have to check into that then.

Well, I suppose I'll delve into C++ first then, if that is the case. From what I read around, it was universal and that is why it is such a good language to know, but if all coding is like that and I can pick it up as you say, then that would be good.

Thanks. :)

Are there any books you recommend for programming or game design in general that I can get off Amazon?

its hard enough for college grads to get into the game industry, the odds of trying to make it without a college degree are unrealistic
and with a CS degree you become a well rounded professional who can do various tech jobs or even qualify for jobs not in the computing field if your plan A doesnt happen right away

Well you pay for me then. Because I'm damn sure not getting in on a scholarship, and I've set it in my mind that I'm not going.
 
not to hate on the op <3, but shouldnt we make an "official gaming programming thread" because ive made these threads and so have many others more than once before.

and c++ is fun :)

and are you doing this for fun or as a job?
 
So probably C++ is the way to go I'm guessing. It just sounds daunting from what people say and is hard to learn, especially with no other coding like myself.
Maybe you should find something to do that isn't as scary. There's no way to be successful without work, though, so I'm not sure what I can suggest for you.
 
Only dead-tree book I got for programming (I essentially started with C++) was 'The C++ Programming Language' by Bjarne Stroustrup, the creator of C++, the rest I figured out myself or looked up on the internet (can't say Googled because it didn't exist back then :p ).

For game design I would recommend browsing around at www.gamedev.net in the reference section and on the forums.
 
i tried this previously, and honestly, without taking a class, its VERY hard to learn to program straight up like this
 
Only dead-tree book I got for programming (I essentially started with C++) was 'The C++ Programming Language' by Bjarne Stroustrup, the creator of C++, the rest I figured out myself or looked up on the internet (can't say Googled because it didn't exist back then :p ).

For game design I would recommend browsing around at www.gamedev.net in the reference section and on the forums.

Alright, thanks for all your posts. :)

not to hate on the op <3, but shouldnt we make an "official gaming programming thread" because ive made these threads and so have many others more than once before.

and c++ is fun :)

and are you doing this for fun or as a job?

I'd say that would be a good idea.

Both, in a sort of sense. Refer to previous posts.

Maybe you should find something to do that isn't as scary. There's no way to be successful without work, though, so I'm not sure what I can suggest for you.

It's not like I don't know what kind of work goes into learning and doing this, I do, and I speculate on how hard it will be.
 
i think if you start it as a hobby itll be a lot quicker and painless, if you take it as a job, its not going to be fun IMO.

and i learned HTML first, then css, then java, now c++, it really helps starting out simple, you learn the fundamentals
 
i think if you start it as a hobby itll be a lot quicker and painless, if you take it as a job, its not going to be fun IMO.

and i learned HTML first, then css, then java, now c++, it really helps starting out simple, you learn the fundamentals

But is HTML going to be beneficial to me? I've delved into basic stuff when I was younger, forgot most of it, but if it isn't beneficial to me, while being one of the most basic languages there is, I don't see why I should learn it.
 
But is HTML going to be beneficial to me? I've delved into basic stuff when I was younger, forgot most of it, but if it isn't beneficial to me, while being one of the most basic languages there is, I don't see why I should learn it.

if you understand the fundamentals, then probably not, i mean, im young, so havent had years of experience, but i found that starting small is easier, if you dont have the correct mindset, but if you understand how you need to think as a programmer, then you should be good and can skip the "simple" stuff, and html always comes in handy.
 
if you understand the fundamentals, then probably not, i mean, im young, so havent had years of experience, but i found that starting small is easier, if you dont have the correct mindset, but if you understand how you need to think as a programmer, then you should be good and can skip the "simple" stuff, and html always comes in handy.

I know what you mean, I just really don't want to learn something that isn't going to benefit me.
 
What does HTML have to do with programming? I'm also a professional webdeveloper and to me 'programming' in that area means using PHP, VB (*twitch*), JS, C#, and perhaps even CF.

"I'm programming HTML" still has to be the most funny remark I have heard from n00bs in the decade or so I have been involved in webdev :D
 
What does HTML have to do with programming? I'm also a professional webdeveloper and to me 'programming' in that area means using PHP, VB (*twitch*), JS, C#, and perhaps even CF.

"I'm programming HTML" still has to be the most funny remark I have heard from n00bs in the decade or so I have been involved in webdev :D

i never said programming html... lolZ
 
I signed up for that MS game competition a while ago, and saw that was the language...is it a good one to learn?
 
I, personally, love c# and the way it pairs so nicely with visual studio. That said, there's a lot of good in learning the basics and having a solid foundation with the simple stuff in any language before going off and trying to use the language's more in depth features. As C# has grown, it's taken on a lot of advanced features that may well beyond the scope of what you need, and may serve only to confuse you. However, sticking with the simple examples from even a C or C++ oriented programming course (learning the basics of programming - conditionals, loops, variables, etc) is a great way to start into C#. The benefit is that its errors are generally *much* more friendly - it's helpful to be told "array index out of bounds" instead of "segfault."

Arguments can be made on all sides. My advice would be to start with just learning to program, then move onto learning to program games. Without one, the other becomes overwhelming.
 
No one in his right mind would use C# for low-level stuff, though. You would basically limit yourself to Windows as well (yes, I'm aware of Mono, but it has its limitations). XNA is interesting, but as we use C++ with OpenGL/OpenAL/PhysX, we would have to start from scratch. It'd of course completely limit your game to just Windows and X360 (small bit of its full resources too). I agree on learning to just program first :)

As for 'learn to make games' books, although I program and make games professionally I have few dead-tree reference books, I tend to use online resources primarily. Once you got the basics down, it's all a matter of looking up details anyway, which you'll find impossible with dead-tree references in most cases as it'll simply not be in the book. To be honest I would find buying such a book a bit of a waste of money, but if you think it'll help you, go ahead :)
 
Well I won't necessarily be buying the books myself, but I would like to use them. I think it will help me, at least a little. It's hard for me to read a lot on the computer screen at times, and I can read pretty fast, so I wouldn't mind having a few books. I would probably just Google if I was in the middle of something and needed help though, not look up in books as it would just be easier.
 
I agree with Tawnos, learning a C-based high-level language like C# or Java will help ease the learning curve and transition to a more complex language like C/C++.
I would recommend C# over Java since C# supports pointers which is fundamental for C/C++. Download Visual C# Express Edition for free from Microsoft.

As far as programming concepts, you can start with the Sorting Algorithms (e.g. HeapSort, MergeSort) and DataStructures (e.g. Linked List, Hashtables) to get a feeling of how to optimize codes and data management.

From there, you can try tackling the classic CS problems like the Travelling Salesman.
All of these will help your transition to C/C++ and game programming easier.
All the complexities of C/C++ is abstracted from you and you can concentrate on actual programming.
 
Back
Top