Hey guys im new here hows it goin? anyways i have always wanted to be an artist in the game industry and i would like to better understand the technical aspects of game design. i have zero experience in programming and frankly i feel a bit overwhelmed by it. i guess what i'm asking for is an easy to understand explanation of game programming for beginners. i have tried google and cant find anything significant, i eventually want to learn how to program but what i am looking for right now is an understanding of what it actually is and what different programs u need to use and how they relate to each other if that makes any sense. thank you for your time

Well there's quite a lot of things to say about this, but I'll give a quick intro.

First, you have to chose a language to program in. There are many, including Java, C++, C#, Python, etc etc etc. Each language may be better at doing some things and worst at doing others. Generally, the ones I listed are pretty good all around languages. My recommendation? C#.

Next up, you need to get an IDE aka Integrated Development Environment. Inside the IDE you write your code, you can compile your code into executable files, and it provides various tools that help you program. Alternatively, you could just code in Notepad, and use a compiler. Compilers take your code, process it, and turn it into something that your computer can understand. They produce executables.

Generally, you're better off using an IDE, as it provides this feature, and many more. For C++ and C#, the industry standard is Microsoft Visual Studio. Visual Studio Express is free to use for whatever you need (including commercial projects), however it's missing a few features. As a beginner, you will not need any of the missing features.

Alright, so you downloaded the IDE. Now you will code here for a while. You will create console applications. These are entirely text based applications, that get you used to programming. When starting, you'll probably code a basic calculator, maybe a text based game, or even tic tac toe.

Once you got comfortable enough with console applications (You've went through a few books, done many practice exercises), you'll want to move into graphics. There are many options here.

You could code directly in DirectX or OpenGL. These are very low level, and not recommended for actually producing games with, though they make great learning exercises.

You could grab a framework, or graphics library, that just makes displaying graphics on screen a lot easier. For C#, XNA is great. C++ has SFML, and Python has Pygame. I would stay away from Java.

Or, you could grab a game engine like Unity or UDK. Game engines provide a lot of tools right out of the box, for example physics engine, particle engine, post processing effects, etc. Its generally recommended for beginners to start off with something like XNA, and then move on to using a game engine, as you'll learn a lot more and your code will be better.

To tell the truth I would refrain from using a complex game engine to grasp concepts, Game Maker is fine for that, visual scripting and all.

After that, go with language

For starts pick a language and read about it, syntax and do general purposes exercices to learn how to do some basic stuff, after that pick a simple project and try to create your own little text game, and evolve from there. Thats what I did, kinda.

Well, not as advertising or anything but I am writting a small series in Game Programming Basics and Concepts, right now I only explained a Game Loop, I am not actually teaching how to code, but the concepts behind it. I may not be a professional, and some of my ideas might not be very correct, but that's the way I understood and the way I am trying to make people understand this stuff. So you might enjoy reading those light posts on my blog and might learn a few things. Currently there is not much info, but I usually write a article each two to three days. Anyway....

It is nice that everyone touched on what languages to use and various platforms. But sometimes the obvious is over looked on informing what a beginning programmer needs.

Any beginner in any language needs to understand how to layout instructions. Computers seem to be really smart. What they are is really fast.

you can understand how to program, but if you don't understand how to give instructions your programs may not work very well.

An example of what I mean is to look at your hand and wiggle your fingers. That was the most sophistcated compter executing a set of instructions. Think about it, do you really know how that just happened ?

To further illustrated how programming works, Write out a simple set of instructions for something you do every day, like riding a bike. Now follow those instructions EXACTLEY as you have them written, do not add anything that is not written and your on your way to understanding how a computer program works.

Ok, I'll be the bad guy on this one. If you are an artist be an artist. If you are not an artist be a coder. Both take lifetimes worth of studying, practicing and experience to be good at and it's extremely rare that any one person can be good at both. Simply put coders that try to learn to draw or model end up being horrible at both. Artists that start learning to code lose their artistic edge and normally get bored at staring at text all day long when they are used to color and beauty.

I know this is never what people want to hear, we all like to think that we are that guy that can do everything (me included). I started as a coder, got to the point I was ready to start making games, tried to find artists (failed). Instead of giving up or moving in another direction like commissioning / purchasing graphics assets I figured (screw it I'll do it. Why not learned to program I can learn to draw some lines). So here's what happened....

Learned to use Photoshop (success)

Learned to use Effects and Filters (success)

Learned to draw simple sprite characters (failed)

Learned to draw environments and level assets (mostly failed)

Learned to create 3D models (I know how, no good at it)

Learned to Map & Texture models (failed)

... Uh oh, back to the drawing board to draw the textures?!? (failed)

End result, I can make one mean stick figure! What did that do to my programming knowledge? Well the entire process took a little over a year, I fell behind some trends and techniques, lost a bit of the coding edge, put myself behind and wasn't as used to coding anymore. Took about month to get back into the swing of coding. So after that where's my graphics skills? Non existent that's where.

I guess my entire point here is pick the one you like better and dedicate yourself to that field. You are in much higher demand being really good at one thing than you would be if you are mediocre at many different things. In the case of developing your own game where you don't care if people buy it or not you just want to make it, well it may not matter as much. If you ever expect to make something you have a chance of selling you will need it to look good and work right. It's really not that easy (nearly impossible) to make good looking graphics and write correct code to make it work the way you wanted. Both are very time consuming and complicated fields. When's the last time you saw a brain surgeon in the court room representing a murderer? You don't... Brain surgery (programming) takes a lifetime of dedication, studying and practice to get right. As does lawyering (graphics and modeling). Yes a brain surgeon might know how to get into the court room an how to object but he doesn't know all the laws that will actually help. The lawyer might know you have to cut the head open to get to the brain and maybe even know a few names of brain parts but give him a scalpel and you don't have a surviving patient.

Both take lifetimes worth of studying, practicing and experience to be good at and it's extremely rare that any one person can be good at both. Simply put coders that try to learn to draw or model end up being horrible at both. Artists that start learning to code lose their artistic edge and normally get bored at staring at text all day long when they are used to color and beauty.

That's a very limited view on the capabilities of both types. And overly discouraging. "Lifetimes" worth of study are not required to be more than competent in both fields, otherwise no one would get hired for professional art OR code until they were in their late 50's. And the rest of your post just reads like "I tried and failed, so it's not possible."

You don't know if the OP already has a background in art, and I would argue that both are maintainable pursuits. There's the whole right brain vs. left brain argument, and certainly most people who are good at one side aren't particularly skilled at the other. But you don't forget good coding practices just because you picked up a pencil and sketched for a while, and artists (though I hate the term because it's become so pretentious) aren't allergic to staring at code. I happen to find a certain aesthetic enjoyment to navigating code in search of bugs, or orchestrating clean and clever class interaction.

Here, I'll use your method of experience-as-proof: I actively practice both coding and art, and it does work for me. It helps that I went and got my undergrad in Comp Sci, and actively use it in my day job, but I've always kept an active art hobby that I intersperse regularly into my time off. However, there's a diminishing return on short-term time invested into a craft: if you try to argue that the time I've spent pursuing art could have made me a better coder, I'd say bull, the brain needs time to rest, churn on problems in your subconscious space, and etch learning into your long-term memory. Art has always been an enjoyable, welcome break from a particularly hard debugging task, or design problem. And the break lets me look at it fresh the next day/time.

Where I'll definitely agree with you is to pick a focus to strengthen before too much time gets invested in everything. Valve's hiring guide talks about T-shaped skillsets: a broad category of average skills, with the leg of the T being the one arena where you're deeply intimate with the minutiae of that field. Be an expert at one thing, while rounding yourself out with at least a passing knowledge of complementing fields. Nothing says you can't keep improving the "non-expert" skills though.

That's a very limited view on the capabilities of both types. And overly discouraging. "Lifetimes" worth of study are not required to be more than competent in both fields, otherwise no one would get hired for professional art OR code until they were in their late 50's. And the rest of your post just reads like "I tried and failed, so it's not possible."

They (well, Malcolm Gladwell) says you need to spend about 10,000 hours doing something before you're an expert at it. Based on that rule I'm an expert in at least 2-3 things so far, and I'm only 32

There is definitely value in sticking in with something until you get good at it, mind you, but if you happen to be passionate about more than one thing then why not pursue them? It needs to be for the "right" reasons though, or it'll never "stick".

Edit: more directly related to the thread, here's a great blog post by Tommy Refenes (of Super Meat Boy fame):