Getting Started with Game Design/Programming

Avatar image for trebz
Trebz

488

Forum Posts

1

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#1  Edited By Trebz

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!

Avatar image for karlpilkington
KarlPilkington

2844

Forum Posts

824

Wiki Points

0

Followers

Reviews: 0

User Lists: 13

#2  Edited By KarlPilkington

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.

Avatar image for ediscool
EdIsCool

1140

Forum Posts

112

Wiki Points

0

Followers

Reviews: 3

User Lists: 2

#3  Edited By EdIsCool

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.

Avatar image for ekajarmstro
ekajarmstro

456

Forum Posts

21

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#4  Edited By ekajarmstro

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.).

Avatar image for trebz
Trebz

488

Forum Posts

1

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#5  Edited By Trebz

Thanks for the responses. I think I'll try out Game Maker and Actionscript and then Python when I want to start learning code.  
I want to try XNA, but I don't have an Xbox 360 so it would be a little odd to make something I don't even have the hardware to play.

Avatar image for zidd
zidd

1940

Forum Posts

2905

Wiki Points

0

Followers

Reviews: 0

User Lists: 24

#6  Edited By zidd
@Trebz: XNA games run on windows as well. Learning Actionscript requires that you learn the basics of Flash as well.
Avatar image for therealnelsk
therealnelsk

377

Forum Posts

168

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#7  Edited By therealnelsk

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.  

Avatar image for xeiphyer
Xeiphyer

5962

Forum Posts

1193

Wiki Points

0

Followers

Reviews: 0

User Lists: 8

#8  Edited By Xeiphyer

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.

Avatar image for therealnelsk
therealnelsk

377

Forum Posts

168

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#9  Edited By therealnelsk
@Xeiphyer said:
 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.
Avatar image for trebz
Trebz

488

Forum Posts

1

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#10  Edited By Trebz

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. 

Avatar image for davidh219
davidh219

904

Forum Posts

0

Wiki Points

0

Followers

Reviews: 2

User Lists: 1

#11  Edited By davidh219

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". 

Avatar image for farmer
farmer

344

Forum Posts

1547

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#12  Edited By farmer

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.

Avatar image for cptbedlam
CptBedlam

4612

Forum Posts

7

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#13  Edited By CptBedlam
@Trebz:  Magicka was built with XNA. 
 
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.
Avatar image for duderbattalion
duderbattalion

288

Forum Posts

42

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#14  Edited By duderbattalion
Avatar image for xeiphyer
Xeiphyer

5962

Forum Posts

1193

Wiki Points

0

Followers

Reviews: 0

User Lists: 8

#15  Edited By Xeiphyer
@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)
Avatar image for groin
groin

870

Forum Posts

34

Wiki Points

0

Followers

Reviews: 0

User Lists: 4

#16  Edited By groin
@Xeiphyer said:
" @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.
Avatar image for xeiphyer
Xeiphyer

5962

Forum Posts

1193

Wiki Points

0

Followers

Reviews: 0

User Lists: 8

#17  Edited By Xeiphyer
@groin said:
" @Xeiphyer said:
" @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. "
I know that. I am programming in C and Java currently, I was just making an oversimplification. =P
Avatar image for trebz
Trebz

488

Forum Posts

1

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#18  Edited By Trebz
@Venom2112: Thanks, bookmark'd.
Avatar image for jamespello
jamespello

2

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#19  Edited By jamespello

C# is simple to learn http://csharp.net-informations.com and Object Oriented. For beginer game programmers this is the best language to develop. A very good IDE provide for development so beginers can avoid confusion. pello.

Avatar image for fobwashed
fobwashed

2818

Forum Posts

388

Wiki Points

0

Followers

Reviews: 15

User Lists: 16

#20  Edited By fobwashed

http://www.giantbomb.com/profile/fobwashed/so-you-want-to-learn-to-program/30-87943/