You're browsing the GameFAQs Message Boards as a guest. Sign Up for free (or Log In if you already have an account) to be able to post messages, change how messages are displayed, and view media in posts.
You're actually reading the sticky!? We're off to a good start already!
When posting, please put a specific summary of the problem in your topic and expand in your post. If it’s errors in code, please post the errors, and the code. If you have a lot of code, it’s easier to use http://pastebin.com/
Also, if it’s not too much to ask, Google it first! We cannot emphasize this enough.
If you’re new to programming, before creating a "help me get started" topic, please look through at least one of these:
http://www.codecademy.com/ (Yeah, I just did that)
All of these links get dropped in every general beginner’s topic, and they're excellent resources. If you don’t take the time to check this great stuff out before posting, you’re probably not cut out for programming, because if you want to succeed with it, you’ll need to be willing to do things for yourself, and to devote a lot, and I mean A LOT, of time to developing your skills.
Great, you now know what’s ahead of you. To business.
## Frequently Asked Questions
Q: What language should I learn first?
A: The short answer: Python.
The right answer: There are many opinions on what to start with, and each is valid. You’ll get "C++ because you might as well start with what you’ll the game industry uses"; "C because it teaches you what goes on at the lower levels and will help you code more efficiently later"; "Java because it handles mundane stuff like garbage collection for you"; And so on. What’s important is learning the concepts, not the languages, of programming. Generally speaking, barring joke languages like brain****, you’ll get the same result no matter where you start.
Q: How do I <verb> a <noun> in <language> using <tool>?
A: Navigate to Google (or, if you're a total pro, DuckDuckGo). Type in <language> <tool> <verb> <noun>. Omit punctuations and prepositions, because honestly, who needs those? Profit!
Q: Does anyone want to help program this game?
A: No, not really, but how about helping me program mine? (No really, you should seriously consider joining someone else's team). If you have a problem and want help, post your troubles here. We are generally willing to help you look for bugs and give advice on design. However, we will not "work" for you. Do not expect us to join your team. Believe it or not, we all have our own projects we’re working on, in addition to school and/or work. Some of us are professionals who are paid for their work, so if you’re not offering money, don’t expect help. If we want to code for a stranger for free, we’ll ask. :)
Q: How do I just make a game without learning all of this technical ****?
A: If all you want to do is design, you have a few options. It’s possible, though unlikely, that you can find somebody who is willing and able to code, who will work with you (see previous question). Programs such as GameMaker, RPG Maker etc. offer a relatively code-free way to create a wide variety of games. Unity and Flashpunk are "some code required" and have become popular among non-programmer indies in recent years. Alternatively, you could find an existing game that’s well-suited to modding, such as Half-Life 2 or Starcraft 2. But the best way to truly have full control over what happens is to program your game from scratch.
Q: What’s a good game design college?
The general consensus is that it’s not a good idea to attend an "exclusive" school like DigiPen or Full Sail, mainly because they don’t leave much room for a backup plan if game design doesn’t work out for you--which is extremely possible given the fickle nature of the game industry. That being said, certain schools including DigiPen have proven themselves to be viable choices for highly talented students with a "game industry or bust" mentality. Other universities, e.g. RIT, RPI, have jumped on the bandwagon and offered game development curricula alongside the traditional fare--this is a good way to hedge your bets wiht a GD program. We still feel it’s better to major in a broader subject that holds your interest, such as Computer Science in the case of programming, and to develop a portfolio of games on your own time. You will actually look better to employers if you programmed your own work because you wanted to, not for homework; and a background in CompSci lends itself to a host of other options in case you lose interest, or fail to make it, in game development. Also (speaking from experience) it pays more :)
Q: Where can I get a compiler/interpreter/IDE for xxx language?
A: There are plenty of free tools out there. Use Google & Wikipedia to determine which one is right for you. We’ll tell you which ones we use if you must ask, but the "best" one is just as nonexistent as the "best" beginner’s language.
Q: I’m tired of guess the number games!
A: That’s not a question, but if you aren’t just being impatient and feel you have a strong grip on coding, you’ll need a graphics library to put some pretty stuff on screen. Your options depend on the language you're using. For Python, it's pretty much Pygame. For C/C++, the big three are SDL, OpenGL, and Direct3D (part of DirectX). The former is well-suited to graphics newcomers in that it isn’t mathematically demanding, and it also handles things such as creating a window, interpreting keyboard input real-time, and playing sound. DirectX is the industry standard in AAA games, but it takes a bit more effort to accomplish things, and it’s Windows only.
Q: Me and my friends have this great idea for an MMORPG--
A: Stop. First that’s incorrect grammar. Second, MMORPGs are currently the epitome of complex games, and even with a team of experts, it takes years to complete one, because these projects are expensive, and they are massive (it’s in the name!). Unless your "friends" are 10 programmers, 10 composers/musicians and 20 artists, who each have a decade of experience under their belts, and plenty of cash, set your sights much lower. You don’t have to throw out your idea (and you never should), but don’t expect to see it come to fruition after a week of hanging out in your friend’s computer room. We’re sorry, but there’s a reason WoW has a monthly fee…besides Blizzard’s world-domination bent, that is ;).
A: Me and my friends have this great idea for a Minecraft-esque--
Q: Aren't there enough already? Yeesh!
Q: Why did you switch the Q and A before?
A: Just to see if you were still paying attention.
Q: Okay, I’m willing to put in the time and I know I have the skills required. Where can I actually find what I need?
A: If Google isn’t playing nice but you know what you’re looking for, we have a handy collection of links of all shapes and sizes. Read on.
## A Maelstrom of Links
* Free Education
* Game Development
The computer ultimately knows two words (1 and 0), but it’s rather inefficient to program in binary ;). Programming languages are essentially a shorthand for the most common things you’ll be telling the CPU to do. Everyone thinks they have their own way to solve the problems of the language and make the perfect "computer language.” Said perfect language has yet to emerge. Here are some of the more popular options.
The Latin of programming, C is a minimalist language that was and continues to be tremendously influential. Although modern software development has gravitated towards higher-level languages that do more with less code, C continues to be used for drivers, robotics, and game consoles, as it is scary-fast, offers almost absolute control over the hardware and is is supported by just about every device known to man.
C++ is, essentially, C with a huge amount of nifty features thrown in. Easy to learn, but difficult to master, C++ is like a box of legos with which you can build just about anything, but it's still best to stick to the instructions. For general-purpose programming, it's fallen somewhat out of favor in recent years, but has found a solid niche in the AAA game space.
Perhaps one of the three most common high-level programming languages in use today. "Write once, run everywhere", as they say. Java is the English to C's Latin--it's a little weird, but almost everybody speaks it, and it continues to be quite popular for general-purpose and business software. It isn't particularly well-suited to games, but that didn't stop Minecraft from becoming a hit, making its creator a millionaire.
Don't let the name fool you. JS is completely unrelated to Java, and is better described as [Scheme](http://en.wikipedia.org/wiki/Scheme_(programming_language) ) pretending to be C. It has become the de facto standard in web programming and has found some support among game devs, despite being generally too slow to power more complex games. With the advent of HTML5, it just might be the next wave in online games.
An extremely flexible language, Python has as many features as C++, but they actually play nice together. It is capable of (but not limited to) functional programming, is well-supported on Windows, Mac and Linux, and even has an [antigravity module](https://xkcd.com/353/). Like JS, Python runs a bit slow for professional games, but it's great for smaller games and quick prototypes. It's found pockets of support in major projects, but has yet to really catch on in industry. Despite that, in my opinion, it's the best all-around choice for beginners.
While most claim this is an obsolete language by now, it serves a few rather important purposes.
1. It is the language the CPU speaks itself.
2. As the CPU's main language, you have unrestricted power
3. If you are an expert, you can beat C code in terms of speed and size.
4. Best reason of all: Learning to optimize in assembly gives you a base for your HLL programming. You learn what is going on behind the scenes, the "easy optimizations" that you can assume the compiler does for you, and the "hard optimizations" that you know you have to do yourself.
## General Advice
There's a lot to learn for an aspiring game creator, but the good news is that it's never been easier to get started. New developments like Codecademy, Project Euler, Khan Academy, and probably plenty others I haven't even heard of, are making it possible for anyone, anywhere in the world to jump right into coding, and tons of other subjects besides.
Write lots of code, and read lots of code. The best way to improve is to practice. The next best way is to learn from the masters. Read the source code to your favorite program. Read the source code to your least favorite program! (Wait, that's probably Windows, so never mind). Read the source code to some random app you stumbled across on Wikipedia.
Use source control. It's a bit of extra work, but you'll be thankful it's there when your entire program blows up in your face and you can't get it back to the way it was five minutes ago.
Make connections. Join organizations that interest you. Find your local IGDA chapter and get involved.
Participate in Game Jams. If there are none going down near you, organize one!
Make games. Make lots of games! But don't forget to play 'em, too.
And remember to eat your veggies.
Thats about it. Please add your comments/help on now.
Trizor – creating and maintaining the original two revisions
Dragontamer5788 – adding to the third revision
kanato - VB and VB.NET info
cmr (Christopher Higgins) - his newbie links
Skel (patrick avella) - his newbie links.
Luminion - DirectX info
To allow this stupid thing to be the living document it should be. Oldbies, ping me for push access, or just fork as you see fit.
Well that was a fast sticky. Props to mods/admins on that one :)
I make games!
Seventh post :D
Either literally dodging metaphorical bullets, or metaphorically dodging literal bullets. Not sure which.
I'm currently a sophmore working on double majors for CompSci and Math. I've actually found a few useful things here that might help me out with my studies. Also, some of the threads here seem to be full of some useful information as well as some friendly and helpful people. Glad to have found your wonderful forum!
Unthinking respect for authority is the greatest enemy of truth.
I am glad this got updated. So much new info it's crazy good! =D
7 is good. I swear the school's 75-100 grading scale has ruined peoples perception of things.
Add user to Ignore List after reporting