Sign in to follow this  
Serapth

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

Recommended Posts

DarklyDreaming    367
[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. :)
[/quote]

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

Share this post


Link to post
Share on other sites
Aluthreney    275
[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. :)
[/quote]

Good luck, we've been trying to do that since way [i]way back[/i]. 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.

Share this post


Link to post
Share on other sites
TheCompBoy    120
[quote name='Aluthreney' timestamp='1312503521' post='4844794']
I plan on becoming a game programmer, but my dream isn't to make a MMORPG. Far from it actually.
[/quote]

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

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='Aluthreney' timestamp='1312503521' post='4844794']
[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. :)
[/quote]

Good luck, we've been trying to do that since way [i]way back[/i]. 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?".

Share this post


Link to post
Share on other sites
vreality    436
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 [i][b]hobbyist[/b][/i]. But when I think of someone who wants "to be a game developer", I imagine someone who dreams of making games [i][b]for a living[/b][/i]. 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 [i][b]for [/b][/i]the people I'm thinking of. Fair enough. In that case, forgive me for wasting keyboard clicks.


[size="3"][b]The First Question[/b][/size]
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 [i][b]software engineer[/b][/i]. That means school.

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


[size="3"][b]Programming is... programming[/b][/size]

Ok, let's say that "disagree" is the contrarian speaking again. Programming [i][b]is[/b][/i] programming, but programming is [i][b]not [/b][/i]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.


[b][b][size="3"]Should I use an engine or create my own?[/size][/b][/b]
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.


[b][b][size="3"]What are my language choices?[/size][/b][/b]
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.


[b][b][size="3"]The most important thing is...[/size][/b][/b]
Do something.

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

Share this post


Link to post
Share on other sites
Tom Sloper    16040
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.

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='VReality' timestamp='1312514408' post='4844842']
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 [i][b]hobbyist[/b][/i]. But when I think of someone who wants "to be a game developer", I imagine someone who dreams of making games [i][b]for a living[/b][/i]. 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 [i][b]for [/b][/i]the people I'm thinking of. Fair enough. In that case, forgive me for wasting keyboard clicks.
[/quote]

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.


[quote]

[size="3"][b]The First Question[/b][/size]
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 [i][b]software engineer[/b][/i]. 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 [b]starting[/b] at game programming. I think a number of people should actually start working on large scale projects [b]before [/b]going to school... would sure help the drop out rates!

[quote]
[size="3"][b]Programming is... programming[/b][/size]

Ok, let's say that "disagree" is the contrarian speaking again. Programming [i][b]is[/b][/i] programming, but programming is [i][b]not [/b][/i]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.

[quote]
[b][b][size="3"]Should I use an engine or create my own?[/size][/b][/b]
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!




Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='Tom Sloper' timestamp='1312522633' post='4844881']
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.
[/quote]

In the end, this was the audience I was catering towards.

Reality is if you want to be employed as a programmer at a first tier game company you are 99% likely going to need a degree of some sorts. However, people that are going in to get a degree because they want to create games should really spend some time as a hobbyist first regardless. When I went to university ( mid 90s ) even then the majority of students were there "because they liked games" or because "they were good with computers". Suffice to say, drop out rates in the first year were staggering. Had these people tinkered on a game before going into school they would have realized programming is actually a pretty tricky thing to do. Coincidentally, I had been tinkering with creating games from the moment I got my first Atari, and school was an absolute cakewalk.

That said, market conditions have really changed and this is what has actually inspired me to get back into game programming. My brief experience working in game programming professionally ( as a tools developer ) was an eye opening experience, each person truly was just a cog. Teams were getting massive and this was over a decade ago, things can only have gotten larger and individual roles smaller in that time. That said, with the rise of cheap/free tools, commercial quality engines with very liberal licenses and markets like iphone, android, steam and live, a few friends in a garage can develop a viable and commercially successful game. It's like going back in time to the C64 era, except this time I'm not too young to participate! :)

So, if you are a new developer and reading this, don't be discouraged, this is actually a golden time for the "hobbyist" to make a living at programming.

I tried to cater to as wide an audience as possible with that post, but reality is to cater to a broader audience would have made it even [i]longer! [/i]In which we would be entering small book category. Ultimately I am catering towards the average new poster in this forum and I hope I hit the mark. Only time ( and feedback ) will tell if I hit the mark.

Share this post


Link to post
Share on other sites
Tom Sloper    16040
[quote name='Serapth' timestamp='1312551567' post='4845002']
I tried to cater to as wide an audience as possible with that post, but reality is to cater to a broader audience would have made it even [i]longer! [/i]In which we would be entering small book category. [/quote]
Yep.

Share this post


Link to post
Share on other sites
vreality    436
[quote name='Serapth' timestamp='1312550440' post='4844995']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.[/quote]

You may be happy with your work, and perhaps rightly so, but that doesn't mean someone else is ready to pay you to do the same for them. And they certainly wouldn't hire you to design a house or a neighborhood, based on that good work. My point was simply that, while having innate talent and self taught skill are great for a lot of things, to be a professional, you should also have appropriate training. And in fact, when it comes to taking action, it's the first order of business.

Even if a university doesn't end up having a single thing to teach someone, at least the process of earning the degree helps to both ensure and prove that they [i][b]have [/b][/i]the knowledge and skills associated with it. This principle seems obvious when it comes to building houses. It's just as true of software, if not as obvious.

It's certainly possible that some of the best programmers in the industry have no degree, but they would be the extreme minority exception to the rule, and basing decisions on their circumstances and history would be a mistake. Sometimes people who are perceived as the "best programmers" are really just specialists in specific techniques or pieces of technology, or have a particular talent for solving technical problems quickly, but often lack the exact skills and theoretical background necessary to make large complex projects, involving lots of people, successful.

On the topic of learning for yourself before you go to school, I have nothing against that. However, as you've already hinted at, anyone can learn to program with C++, but unless you have the background of a software engineer, you're unlikely to be using it in a way that is really beneficial. So I wouldn't put a ton of emphasis on trying to teach yourself first.

Again, as has been pointed out repeatedly in this thread, all this is driven by what your goals are. I hope my thoughts can be helpful to those thinking about trying to get into the industry.

Share this post


Link to post
Share on other sites
kunos    2254
honestly the idea that a degree is a prerequisite to being a good game programmer or programmer is just ridiculous... there are so many examples out there that prove this idea wrong that it isn't even worth considering.

having said that.. the odds that somebody who has the need to post on a forum "what I should do?" will find his own way through game programming without guidance are pretty low.. so VR's position is understandable.

Share this post


Link to post
Share on other sites
Radikalizm    4807
That was an excellent read Serapth, great job for finishing this, I hope it will have an impact on those who have unrealistic expectations or on those who are lost when it comes to starting game development
On another note, I've written some similar guides on other forums, mind if I include a link to your guide in those?

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='Radikalizm' timestamp='1312633510' post='4845406']
That was an excellent read Serapth, great job for finishing this, I hope it will have an impact on those who have unrealistic expectations or on those who are lost when it comes to starting game development
On another note, I've written some similar guides on other forums, mind if I include a link to your guide in those?
[/quote]

Off course not, feel free to link away.

Share this post


Link to post
Share on other sites
Serapth    6671
Ugh, just realized updating the post changed the URL ( auto date ) which caused some links to break. I implemented a autoredirector since, but if you got a page cannot be found message of some sort, that is why... sorry.

Share this post


Link to post
Share on other sites
?????????    199
Awesome post, just read the guts of it (no language specifics) and I absolutely would want this to be redistributed, published, and taught all around the globe in every niche possible (even modern day high-school teachers and college instructors should read it IMO). +1

Share this post


Link to post
Share on other sites
vreality    436
[quote name='kunos' timestamp='1312613783' post='4845346']
honestly the idea that a degree is a prerequisite to being a good game programmer or programmer is just ridiculous... there are so many examples out there that prove this idea wrong that it isn't even worth considering.[/quote]

But the idea that you should get one if you want a job is not.

Nor is the idea that computer science and software engineering entail a lot more which an engineering manager may find valuable than just being a good programmer, or the idea that someone with skill can become better with training and a wider background, etc.

[quote name='kunos' timestamp='1312613783' post='4845346']having said that.. the odds that somebody who has the need to post on a forum "what I should do?" will find his own way through game programming without guidance are pretty low..[/quote]

As it is for just about anyone else who hasn't done it before.

But the point is that if you want a hiring manager to seriously consider you, it's a good idea to show up with the minimum requirements. And in my experience industry interviewers don't tend to give personal and small indie projects a lot of weight, in terms of viewing them as relevant experience, because they consider the process to be too different. In fact, when it comes to the intricacies specific to video games, it seems like many of them would almost rather you didn't think you already knew what you were doing. (YMMV, of course)

We can acknowledge all the degreeless programmers we want, but that won't help you get a job. Unless of course you happen to be set apart by actually having a degree or something.

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='VReality' timestamp='1312780736' post='4846058']
And in my experience industry interviewers don't tend to give personal and small indie projects a lot of weight, in terms of viewing them as relevant experience, because they consider the process to be too different. [/quote]


This part I have to disagree with. Personal projects no, but any (quality) published work or work on a high profile mod are probably more effective at getting you hired than education is. One of the biggest things they ask is "What have you worked on already". When you consider that millions upon millions of kids go into programming to create games, education becomes less of a distinguishing factor.



That said, we are pretty tangential to the topic at hand at this point.

Share this post


Link to post
Share on other sites
inavat    317
My advice.

For the aspiring game development professional: Don't make games. It's a waste of time. Make demos showcasing your mastery of techniques that are used in games. Games and game engines are tedious to make and involve lots of code that isn't very interesting and isn't showcasing any skills. It's very likely the company you're hired into will already have at least the base of a game engine in place, and if they don't, it's very unlikely that you're going to be the person who's responsible for writing it -- so showing that you have the ability to implement challenging and interesting techniques maps much better to the role that you'll actually end up playing. A really cool tech demo has much more punch than a crappy game, though the game probably took a lot more time to make.

For the hobbyist: Do whatever seems fun. If you're the type that likes to make things from scratch, then I suggest a higher-level language like python or C# (SlimDX or XNA, for example). If you just want to make the game, I suggest tools like Unity3D or UDK that let you focus on the actual game and take care of everything else.

Share this post


Link to post
Share on other sites
JosephParrilla    171
[quote name='A Brain in a Vat' timestamp='1312902857' post='4846726']
My advice.

For the aspiring game development professional: Don't make games. It's a waste of time. Make demos showcasing your mastery of techniques that are used in games. Games and game engines are tedious to make and involve lots of code that isn't very interesting and isn't showcasing any skills. It's very likely the company you're hired into will already have at least the base of a game engine in place, and if they don't, it's very unlikely that you're going to be the person who's responsible for writing it -- so showing that you have the ability to implement challenging and interesting techniques maps much better to the role that you'll actually end up playing. A really cool tech demo has much more punch than a crappy game, though the game probably took a lot more time to make.

For the hobbyist: Do whatever seems fun. If you're the type that likes to make things from scratch, then I suggest a higher-level language like python or C# (SlimDX or XNA, for example). If you just want to make the game, I suggest tools like Unity3D or UDK that let you focus on the actual game and take care of everything else.
[/quote]

This is really a great point. Making a ton of games in Unity does not show your technical ability to a game studio. These studios want people who are experts in areas such as AI, graphics, etc. Sure there are gameplay programmers ... and making games will show that you can do that. But having a technical specialty is important for the specific jobs.

Share this post


Link to post
Share on other sites
Serapth    6671
I've had an oddity and I am hoping it is only occurring for me when an error occurs in the blogging software I choose, but I need to confirm.

Did any of you encounter an error when looking at this site? Most specifically, did you get redirected to another site ( Flexamail.com ) at some point while browsing Game From Scratch?

I am hoping no, but my logs are suggesting otherwise. Flexamail is my "day job" if you will, and GFS shares space on one of its web servers. This redirection is by no means intended, so I hope it is not occurring. So if it happened to you, please let me know!

EDIT: Crap, figured out the cause... the blog software is allowing illegal URLs ( I had C++ in a URL title on a page I was working on, which was causing the error ), so hopefully none of you ever got redirected inappropriate ( and sorry if you did ).

Now I just have to figure WTF IIS7 is doing redirecting to the wrong site on URL error... or for that matter, what actual error is occurring.

Share this post


Link to post
Share on other sites
Hinch    244
WRT what VReality & Serapth are saying about what interviewers want, there's a big difference between what the HR department (sometimes just 1 person, but not usually anyone with actual developing experience) of a company will be looking for and what the person actually doing the interviews will be interested in. Most established developers will get tons of applications, most of them rubbish, and don't have time to go through looking at the details of every single one so one of the first filters will be "does this person have a degree or higher in a related subject?" if not, thrown in the bin. But still home projects are very useful to have something to show and talk about once you actually get an interview, because the interviewer will be trying to find out what you can actually [i]do, [/i]and probably won't care much about your qualifications.

All my experience is with established game development companies, so I can't really say what indies & startups will be after, but given that they probably have nowhere near the volume of applications, I guess degrees will be of little interest and they'll be able to cut straight to the interesting stuff and see what you've actually done.

Share this post


Link to post
Share on other sites
Sign in to follow this