I want to be a game developer... now what? A beginners guide to game development.

Started by
35 comments, last by Serapth 12 years, 6 months ago
I have noticed a generality to the questions asked on this forum by new developers and this post is my attempt to answer them ( from my perspective and obviously in my opinion ). I know quite often the answer is (validly) "Read the FAQ", but I feel they are not comprehensive enough to really start a new developer down the road to success. On the other hand, if you hit google you will be overwhelmed with results, many of them so far out dated as to be near useless. Look how many people come in here looking for help with DevC++! This is directly the result of stale and outdated instruction.

This post is intended as ( and will in the future be posted in response to ) an answer to the most common questions of a new game developer.


I have previously posted it in WIP form as a response to prior applicable questions, but this is the version I consider finished.


So please, to new developers, have a read and let me know what you think. After finishing this rather long post, I hope you have a better sense of direction on how to learn to program games. If you don't, I have failed at the task I set out to solve.

To experienced developers, please let me know if I have made any mistakes or glaring omissions.

Opinions, suggestions and comments appreciated. I intend to keep this as a live document, so I will update it when applicable. So, without further ado:

I Want to be a Game Developer... now what?
Advertisement
Ahh you finished it! Hopefully this will decrease the "I wanna make a MMORPG but I dont want to work hard or do any math stuffs!!" posts. :)
Never, ever stop learning.
- Me

Ahh you finished it! Hopefully this will decrease the "I wanna make a MMORPG but I dont want to work hard or do any math stuffs!!" posts. :)


Good luck, we've been trying to do that since way way back. So far, hasn't made a dent - the decease is a damn strong one!
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
Looks good! I don't have time right now to read the whole thing but i will..

[quote name='Joe P' timestamp='1312496238' post='4844743']
Ahh you finished it! Hopefully this will decrease the "I wanna make a MMORPG but I dont want to work hard or do any math stuffs!!" posts. :)


Good luck, we've been trying to do that since way way back. So far, hasn't made a dent - the decease is a damn strong one!
[/quote]

I plan on becoming a game programmer, but my dream isn't to make a MMORPG. Far from it actually.

Aluthreney -- the King of sheep.


I plan on becoming a game programmer, but my dream isn't to make a MMORPG. Far from it actually.


Its not only for people who want to make MMORPG's its for everyone that want to create a game but don't realy know how to begin..

[quote name='DarklyDreaming' timestamp='1312502830' post='4844789']
[quote name='Joe P' timestamp='1312496238' post='4844743']
Ahh you finished it! Hopefully this will decrease the "I wanna make a MMORPG but I dont want to work hard or do any math stuffs!!" posts. :)


Good luck, we've been trying to do that since way way back. So far, hasn't made a dent - the decease is a damn strong one!
[/quote]

I plan on becoming a game programmer, but my dream isn't to make a MMORPG. Far from it actually.
[/quote]

Yeah, it's has absolutely nothing to do with MMORPG's, except to address the fact that creating one is complete folly. It's a very common things in these parts... "I want to make an MMO, now what?" which is about the same as going to a high school science class and saying "I'm going to cure cancer, now what?".

First, I want to say that the article was well thought out. Clearly a lot of experience, thought, and effort went into making it. That being said...

Maybe it's just the contrarian in me, but on many of the points made, I take the opposing view.

I'm not saying I think the opinions presented are wrong. What I'm saying is that they seem to be tailored to the person who wants to become a game tinkering hobbyist. But when I think of someone who wants "to be a game developer", I imagine someone who dreams of making games for a living. My point of view is tailored to that audience. If that's not you, then forewarned, you can safely ignore my opinions here.

Now maybe this forum isn't really for the people I'm thinking of. Fair enough. In that case, forgive me for wasting keyboard clicks.

The First Question
So, assuming that by "developer" we mean software engineer, not tester, production assistant, level designer, etc. in my view, the first question isn't C# or C++. It's more along the lines of UCI or USC. My point is that if you want to be a software engineer in the video game industry, the first thing you need to do is become a software engineer. That means school.

And the reason for this is that I also disagree with the second point...

Programming is... programming
Ok, let's say that "disagree" is the contrarian speaking again. Programming is programming, but programming is not software engineering.

The larger and more sophisticated a software project is, the more important it is that the developers excel at software engineering. I've worked in the aerospace, cell phone networks, and medical systems industries, and the video game projects I've worked on are by far the most complex and sophisticated. I can absolutely see teaching yourself Javascript, SQL, and maybe even C#, and getting an entry level web development job. But Bachelors of Science degrees take years of school for a reason, and you'll find it easier to become a software engineer, and easier to be good at it, after you earn one.

The article warns you off of C++. Among other reasons, that's because it assumes you don't have a degree in computer science. You need one. You don't hear anyone saying, "So you want to be a real estate developer. First question: Claw, or ball-peen hammer?" As with anything else one might want to do, you should get good training.

Should I use an engine or create my own?
This is not a question that most engineers (especially entry level engineers) generally get to ask. It's a complex business and engineering question. But perhaps a better question is, what do you want to work on? Do you want to develop technology, or do you want to iterate on game-play? If you go to work for a company that is developing their own technology, both options may be available. If you go to work for a company that is using a commercial engine, you will only be doing the latter. Aim accordingly.

What are my language choices?
C++.

If you're unclear as to why developers use C++ above all other languages, a good school will help answer that.

If you will be working on development tools, you'll probably need to know C#. Any other language you may end up using will be simple enough in comparison that you'll have no trouble picking it up.

The most important thing is...
Do something.

Just make sure it's the right first step for what you're trying to accomplish.

There is validity to both Seraph's article and VR's post above -- depending on who the target audience is. And where in the scheme of things the particular reader is, where he's coming from, and where he wants to wind up. What his mindset is.
Someone who wants to get started on his own and tinker, whether or not he's eventually going to seek employment as a game programmer, would probably not be well advised to skip all beginner tools and dive straight into C++ due to its steep learning curve; basic concepts need to be learned first.
Someone who wants to go into business for himself as an indie developer might not need to learn C++ at all, depending on the platform he plans to develop for.
But yes, C++ is the primary language used in console and PC game development, and anyone who seriously wants to become a serious game programmer would be well advised to get a degree.

For the most part, this website seems to cater primarily to the aspiring indie or amateur or hobbyist, and a large portion of the people who post never even consider the idea of "job" at all. A large portion of those who respond to questions assume that the questions come from the same mindset they themselves hold.

A good FAQ needs to take these disparate audiences and mindsets into account.

-- Tom Sloper -- sloperama.com


First, I want to say that the article was well thought out. Clearly a lot of experience, thought, and effort went into making it. That being said...

Maybe it's just the contrarian in me, but on many of the points made, I take the opposing view.

I'm not saying I think the opinions presented are wrong. What I'm saying is that they seem to be tailored to the person who wants to become a game tinkering hobbyist. But when I think of someone who wants "to be a game developer", I imagine someone who dreams of making games for a living. My point of view is tailored to that audience. If that's not you, then forewarned, you can safely ignore my opinions here.

Now maybe this forum isn't really for the people I'm thinking of. Fair enough. In that case, forgive me for wasting keyboard clicks.


To a degree, this forum is aimed towards the hobbyist although that is isn't to say people here won't go on to be professionals. My post was not intended as a primer on how to get a job in the industry, but to address the majority of people that come here wanting to develop a game and a bewildered at what the next step is. If you take a look at the majority of posts in this forum ( and that obviously was my target audience, they really aren't the people you are thinking of.




The First Question
So, assuming that by "developer" we mean software engineer, not tester, production assistant, level designer, etc. in my view, the first question isn't C# or C++. It's more along the lines of UCI or USC. My point is that if you want to be a software engineer in the video game industry, the first thing you need to do is become a software engineer. That means school.

And the reason for this is that I also disagree with the second point...
[/quote]

You know whats funny, when I was writing it I was flipping back and forth between using the word programmer and developer and generally settled on developer no because I wanted to be inclusive. Again, this is not a primer on how to get a job in the industry, it's a matter of how to get started developing games. I used the more generic "developer" because starting out the person is going to be wearing many hats ( designer, programmer, tester, artist, etc... ). Then again, this disagreement all stems from having different target audiences.


As to schooling......... that's a whole different can of worms. I personally of a BA of computer sciences and this was in the 90s before that degree got watered down, so I am not completely in the anti-school camp but it is not a prerequisite, especially for indy developers. More to the point, you don't need to complete a CS degree before starting at game programming. I think a number of people should actually start working on large scale projects before going to school... would sure help the drop out rates!


Programming is... programming

Ok, let's say that "disagree" is the contrarian speaking again. Programming is programming, but programming is not software engineering.

The larger and more sophisticated a software project is, the more important it is that the developers excel at software engineering. I've worked in the aerospace, cell phone networks, and medical systems industries, and the video game projects I've worked on are by far the most complex and sophisticated. I can absolutely see teaching yourself Javascript, SQL, and maybe even C#, and getting an entry level web development job. But Bachelors of Science degrees take years of school for a reason, and you'll find it easier to become a software engineer, and easier to be good at it, after you earn one.

The article warns you off of C++. Among other reasons, that's because it assumes you don't have a degree in computer science. You need one. You don't hear anyone saying, "So you want to be a real estate developer. First question: Claw, or ball-peen hammer?" As with anything else one might want to do, you should get good training.
[/quote]

Again, different audiences. Frankly a CS grad wouldn't need the language section of the article at all. This is part of the reason I provided direct jump links, so people interested in a specific language can skip over that entire section and just get a list of resources and recommendations. This is how I would expect and experienced programmer who simply lacked game programming to read the document.

However, I still don't hold your opinion regarding the capacity of the non-educated. Some of the best programmers in the industry have no degrees. Even more to the point, I am not a real estate developer but I did manage to construct my unfinished basement to a near to professional level, entirely self taught. A pro might be a bit better and would be a hell of a lot faster, but reality is I did manage to learn the skills and got the job done. The same can be applied to development.


Should I use an engine or create my own?
This is not a question that most engineers (especially entry level engineers) generally get to ask. It's a complex business and engineering question. But perhaps a better question is, what do you want to work on? Do you want to develop technology, or do you want to iterate on game-play? If you go to work for a company that is developing their own technology, both options may be available. If you go to work for a company that is using a commercial engine, you will only be doing the latter. Aim accordingly.
[/quote]

Again, different audiences. For 95%+ of the people here, they very much do get to ask that question, one of the joys of either being your own boss, or working on a hobby project!




This topic is closed to new replies.

Advertisement