I've been considering entering the realm of video game design, but I have no idea where to start. I want to begin making small, independent games although I don't know anyone with experience in developing and I have almost no experience with programming, myself. What I'm looking for is a point in the right direction and some tips so that I can find a good place to start learning and then begin to figure things out for myself.
So, Giant Bombers, help a dude out!
Getting Started with Game Design/Programming
Well game programmers use C++.
Python is probably the easiest language to learn that is advanced.
You could learn Actionscript 3.0 to start making flash games.
As a final year Game Development Student, I would say that if you've any artistic talent then Actionscript/Flash is the best way to create nicely polished products which will teach you about game design and mechanics. Theres nothing wrong with @Chabbs0 suggestion of python as a next step. I myself would say C# with XNA(Microsoft's Game Development Framework). C# is a very nice language to learn and once you become skilled you will be able to code more demanding games with it than python.
As for C++,its very debatable whether its necessary for indie games, if you dont have the maths skills/ artistic team to create awesome graphics then its power is largely irrelevant,and it does give you so many chances to fuck up. Pretty much a necessity to get into industry though.
Games Design is more tricky as its all pie in the sky without implementation, i.e you will also have to be the programmer.
I strongly suggest trying out Game Maker -- you can start making games with drag and drop actions (it is super easy) and over time transition into coding with it which is quite similar to C++ so you can learn the basics. Game Maker isn't that performance efficient which is largely why you don't see more major indie games made with it, but if you buy the pro version you can extend your game with DLLs and do pretty much anything (Online Multiplayer, 3D, etc.).
A lot of good suggestions, I think a bigger question would be: Is your primary focus to learn how to program, or design and make games?
In my opinion, these are two wholly different concepts. If programming is simply a means to an end, I'd recommend the Actionscript/Flash approach. A lot of the deeper programming concepts are pretty much irrelevant if you want to get an indie game together. On the other hand, if you interested in programming and possibly want to professionally develop games, you should probably focus on learning programming fundamentals and going from there.
Python is pretty awesome when it comes to rapid development, and its relatively easy to learn when compared with C and C++. However, those two will afford you quite a bit of power, and in the long run, you'll understand what's going on in higher level languages (like python and C#) a lot better.
My recommendation would be to pick up a good beginner's C# book, learn the basics, and fire up XNA. If you're really interested in how all this programming actually works on a deeper level, start with C++ (you'll understand C# behind-the-scenes, and it's extremely popular in industry).
As a side note, a lot of the lower level tools that developers use are written in C++. That doesn't mean that they can't use the data these tools produce to polish up end products with C#. For example, some close friends of mine are working on an indie game, and their level editor is written in C++. This spits out XML files for their level designs, which are in-turn imported into their game engine written in C# with XNA. Most programming languages will be able to handle your problem...it's about choosing the right tool for the job.
Learn C#, then you can develop in XNA. Be prepared because game design is incredibly difficult and frustrating.
Remember that you need lots of different parts to make a game, so you need to learn how to do music and sound effects, and most importantly the art assets. So I suggest practising these as well. Unless you are just making a text adventure ~_~"
Honestly the best way is to try a bit of coding on your own, I would recommend Python since its SO much easier to learn than C#. If you don't hate it, then go find a game design course or program at a post secondary place like college. Having programming or game design entirely taught to you in a structured way will help you avoid getting completely overwhelmed, just make sure its something you want to actually attempt first.
If you aren't old enough yet, practice drawing or using photoshop, theres tons of tutorials out there. Or go learn a 3D modelling program. You need to build up your skills slowly and then bring them together to make the final product, so the sooner you start learning something the better off you will be. Or, maybe you will become really good at modelling and get onto a game design project as the 3D modeller. Don't have to make the entire thing yourself after all.
Having programming or game design entirely taught to you in a structured way will help you avoid getting completely overwhelmed, just make sure its something you want to actually attempt first.Absolutely. I think Xeiphyer has some other valid points in that making a game is typically the effort of a number of different people, all with specific talents. I've made a few games, and although my engine and AIs were tight as a result of my programming experience, the games looked like crap. I'm not an artist despite my attempts, and I think its important to point out that unless you are a jack of all trades, you'll likely need some help with art assets and sound.
Wow, these are way more detailed responses than I was expecting. Awesome and thanks.
@M3RPHY:
Programming is definitely the means to an end, but I also want to know whatever I would need to know so that if I tried to get a job in the industry, I could . So, yeah, I'm more interested in making games than truly understanding programming.
@Xeiphyer:
I'm only in high school, so a college course isn't an option. It looks like I'll do what both of you've suggested and pick up Python and try my hand at that, then learn C# and try and make something with XNA. After that, if I'm still interested, I'll see if I can move onto C++.
Keeping in mind that I have plenty of time to decide that I don't want to have anything to do with making games, this is more of a "trying something new" thing than a serious investment for me. So I'm not going to try and make complete games entirely on my own and I'll be dipping my toes into the water for a while, so I can prepare myself in case I really want to make games for realisies.
Python is definitely one of the easiest languages to learn. Both the language itself and the fact that a python program is just a simple text file. I can't tell you how confusing and overwhelming an IDE like Microsoft's visual studio can be to a newbie programmer. Probably the best thing to do is introduce yourself to all the basic concepts of programming (conditional statements, loops, functions, object oriented design, data structures, search and sort algorithms, etc.) with python and then transition to a harder language like C++ or Java. It will make your life much easier. Trust me.
A pretty good book for learning Python is "The Quick Python Book".
I absolutely love Python. In fact, I'm using it to make my current game. However, I would not recommend as a first programming language, as some of these other fellows do. It's simplicity may be a curse when you try to learn another language; the transition to C can be a bitch when you're constantly thinking "why doesn't this just work?".
Also, geometry. Can't live without geometry.
I think XNA is a great platform to get into game development.
I would also suggest that you look for a partner so one of you can do the coding, programming etc while the other one is doing art assets. At least that's how I and a friend of mine are making our xbl indie game right now. I would guess that doing both is a little bit overwhelming.
I had started a Game programming resource thread a few months back. Lots of links on the front page for starters ..
http://www.giantbomb.com/forums/general-discussion/30/game-programming-discussion-thread/456281/
You could also learn Java before or after learning C#/C++ since they are just about identical. You could make the next Minecraft (made in Java)
" @Trebz: Thats what I figured you were up to. Also, C++ and C# are extremely similar, in fact, you would want to learn C++ and then go into C# since its slightly more advanced. Or just skip C++ =P You could also learn Java before or after learning C#/C++ since they are just about identical. You could make the next Minecraft (made in Java) "That's not really true. C++ and C# may have similar syntax but C# is not an upgrade to C++. C# is not "slightly more advanced". Programming languages are not discarded like old iPhones. C++ and C# are drastically different under the hood.
" @Xeiphyer said:I know that. I am programming in C and Java currently, I was just making an oversimplification. =P" @Trebz: Thats what I figured you were up to. Also, C++ and C# are extremely similar, in fact, you would want to learn C++ and then go into C# since its slightly more advanced. Or just skip C++ =P You could also learn Java before or after learning C#/C++ since they are just about identical. You could make the next Minecraft (made in Java) "That's not really true. C++ and C# may have similar syntax but C# is not an upgrade to C++. C# is not "slightly more advanced". Programming languages are not discarded like old iPhones. C++ and C# are drastically different under the hood. "
Please Log In to post.
Log in to comment