Getting Started : Introduction to Game Development for Beginners

Published March 27, 2013 by Casey Hardman, posted by CaseyHardman
Do you see issues with this article? Let us know.
Advertisement

Introduction

This article aims to teach you the basics about how games are made, and what they're made of. The individual fields of game development will be introduced and explained briefly in a simple way, without getting too technical or confusing. For those who want to jump in and start learning, resources (tutorials, software, stuff like that) will be linked as well.
Please keep this article "Under Review" while it is being completed with help from the community! This article still needs a lot of work and is meant to serve as a starting point for beginners. If you have some resources you'd like me to consider linking to, please PM them to me.

The Fields of Game Development

It takes a set of rather unique skills to create a full game; they're made of a lot of parts. This is why game studios often have teams dedicated to making games, with employees from all the necessary fields. It's hard to make even a simple game all by yourself, though it's getting easier with the advance of technology. Let me introduce you to these fields individually. Once you're introduced, there will be resources to get you on your way to learning whichever field(s) you're interested in.

Programming

Programming makes the gameplay itself, and all of the 'gameplay logic'. Jumping, moving, picking up new weapons, and saving/loading your game wouldn't be possible without a programmer. Essentially, programmers tell the computer what they want it to do. Computers don't speak regular, human languages, though. They aren't that smart. You have to use a programming language to communicate with them, and instead of just using sentences, you use code. This is essentially what programming is, but in order to really decide if you like it or not, you should just look at some beginner tutorials and get the basic hang of actually writing code and how the code works, because that kind of stuff is hard to explain in a few sentences.

Art

Games must have some form of art (conventionally). The kind of art you need depends on whether you're making a 2D game or a 3D game. 2D games use 2D images, made in Photoshop, Microsoft Paint, GraphicsGale, GIMP, and other such programs. The programmer deals with drawing the images to the screen and moving them based on the game mechanics. These images are usually animated, such as to make a character jump, or swing a weapon. This is done by drawing multiple instances of the image, all in different poses as the image does whatever you're animating it to do. 3D games use a mixture of 2D images and 3D 'models'. Models are made of vertices, which are just "places" or "points". Those vertices (also knows as vertexes, or verts) are connected to each other to form triangles (tris), made of 3 vertices, and/or polygons (polys), made of 4 vertices. Some programs allow you to make polygons out of more than 4 vertices. Models are made with programs like Blender, 3DS Max, and Maya. 3D games also have to animate some of their models, like the player and the enemies, otherwise your game would be made of a bunch of still objects sliding around on the floor instead of walking or running (and that would probably be lame). Animations are commonly done by binding a set of vertices to a "bone", and moving all of those vertices at the same time just by moving that bone. So you'd have a bone for the upper left arm, a bone for the lower left arm, a bone for the upper body, a few bones for each leg, and so on. You can move those bones into 'poses', like placing a foot forward. You make a lot of these poses and the software you're using to model and animate will move from one pose to the next when you play the animation. So you could have one pose with the character standing, the next with the right leg lifted, then the right leg set down, then the left leg lifted, set down, and so on, to create a full animation of a character walking forward. 3D games also have to put textures on their models. Textures are made like 2D images, and then they're "put on" the model. Modeling programs often provide you with the ability to "UV map" your model. This is how you decide where your textures are placed. It's hard to explain in text, but essentially, you tell your program how the texture should be laid out across all of the tris and/or polys that make up your model. Textures can be the actual colors that draw the character, like their black-and-white suit and tie, their actual face, like their eyes and eyeballs and their lips, and so on. Those kinds of textures are sometimes called 'skins'. Other times, your textures are like tree bark that you wrap around your tree models, or rocky textures that you put on all your stones and mountains.

Music and Sound

Thanks to Nathan Madsen for helping me write this section. Composers and sound designers don't just create music and sound effects for the game: a large part of their job is implementing the audio. This can be anything from figuring out when and where certain sound effects should play to configuring how dynamic music systems will behave. They will also be in charge of hiring and directing voice actors and musicians for live recording.

Writing

Game writers deal with the characters, dialog, the lore of the world, and so on. But you can't just drag a novel writer in and tell them to write up your game. Games are much different than novels or movies. You have a lot of other means of communicating your narrative to players. The art style, the mechanics themselves, the music and sound, they all have an effect on the mood and environment of the story. Game writers, or "game narrative designers" as some people call them (I think it's more fitting, too), aren't just going to be writing text. There's a lot more to game narrative than text!
Unfinished. I've heard that game companies often don't actually seek out writers, and you kind of have to work your way up if you ever want to be a game writer (like it is with game designers). However, I'm not in the industry, so I need someone to clarify here.

Getting Started

Programming

Let me quote Jason Astle-Adams (username 'jbadams' on these forums) from this post, replying to a user who asked which language to start with:
Ultimately it isn't hugely important; programming languages are just tools, and if you follow through and become an experienced developer you will end up using a huge range of languages throughout your career. After learning your first language, and more importantly the underlying concepts of programming, it becomes significantly easier to learn additional languages as needed, and a skilled programmer can pick up a similar language in a couple of hours and will usually need only around a week to become familiar with a very different language from those they already know. Remember that your choices are not forever, and that the most important thing is to choose any language and actually get started. That being said, given the choice of Python, Java or C++ I would probably rank them in that order of preference. I usually recommend beginners stay away from C++ because it can have a steeper learning curve and is often considered more difficult, and usually encourage higher level languages such as Python because they will allow you to concentrate on the fundamentals of programming and game development without having to worry about so many of the nitty-gritty details of memory management and weird errors that can be difficult for a beginner to understand and solve.
This is the common advice given to budding game programmers. You should just jump in and start programming, because the experience you get will be priceless, and even if you might have to switch languages later, it won't spell the end of the world! Getting Started: This article provides answers to common programming beginner questions, namely these:
  • What programming language should I use?
  • Should I use an engine, or create my own?
  • What library/tools should I use?
It also reiterates some of the previous points we've made here. This article here on GameDev.net is your next step. It gives advice on what to do in your early stages of learning how to program, including the best kinds of games to make, how to approach creating your first game, and so on. Even if you feel the article is repeating things you've already read earlier, keep reading!

Art

If you're getting into 2D art, you have some choices on software to use:
  • Graphics Gale has a free version and a paid version, and is a powerful tool for 2D game artists.
  • GIMP (GNU Image Manipulation Program) is a free tool capable of creating textures for 3D games as well as lower quality pixel art for 2D games. GIMP is like a free version of Photoshop (arguably), and it even supports add-on scripts that you can download from others.
Here are some common choices on software for 3D art:
  • Blender is a 100% free, open source program for making 3D art. It has a large community and the tool is very capable and powerful, with innovative controls (once you learn how to use them). At first, the program can seem dauntingly complex, but that's what the community is for! There are lots of beginner video tutorials and videos, as well as resources to help you with all kinds of things in the realm of 3D art with Blender. Blender is capable of modeling, animating, UV mapping, and even rendering with its own engine for lighting.
  • 3DS Max is capable of modeling, animating, rendering, and so on. It's not free, but you may find you like it more than the other alternatives. Some students may be able to get it for free (you'll have to look into that yourself, I personally don't know much about the software, though it is popular).
  • Maya - I pretty much have the same thing to say about Maya as I did 3DS Max: I don't know much about it, but it's a popular choice among game artists. Look into it if you're interested.
Okay, enough about art software. You're going to have to get down and dirty with art theory and the more creative side of things, outside the realm of how to use a specific computer program. Luckily, there are a handful of great articles here on GameDev to get you going:
  • The Total Beginner's Guide to Better 2D Game Art: This comprehensive article provides a lot of important, very applicable information about 2D art, and even some things you could apply to 3D art.
  • Creating Good Game Art When You're Not An Artist: The title pretty much says it all here.
  • Better Programmer Art: Also aimed particularly at 2D art, this article is particularly useful for those who aren't necessarily looking to become a great artist, but just want better art for the games they program.
  • Though it seems to have died by now, this thread on a forum has various 3D-art-related tutorials for all kinds of stuff. When it comes to 3D art, I'd recommend you learn by first watching beginner tutorials to get introduced to the software you're using, and then practicing a lot and moving onto whatever tutorials and videos you can find that relate to what you're trying to get good at right away. Learn all about the capabilities and features of your software and try to use them frequently to get used to what they're good at.

Music and Sound

There are quite a few DAWs (Digital Audio Workstations) to use for composing music and making sound effects. For Mac users, Garage Band is recommended, as it comes with a lot of built-in instruments and sounds, it's powerful, yet is rather simplified for beginners. Also, look into Logic. Alternatively, check out FL Studio, which also has a free demo. Some free, cross-platform options would be LMMS (Linux MultiMedia Studio) or Audacity. There's also Audiotool, which works inside your Internet browser to provide a powerful song composing tool. As for some resources: This video gives a brief introduction of the history of game audio and music, gives a general introduction to game audio and sound, why it's different from making sound for films, and other useful beginner topics. This website contains many articles and how-to's on game sound design. YouTube, of course! Once you've found out which program you want to use and gotten it up and running, it's time you raid YouTube for help. There are many videos out there capable of teaching you how to use certain programs, and once you learn how to use one of the programs, you shouldn't have much trouble learning the others. You can even try out free trials of the more costly programs and get to know them for a bit to see if you like them.

Writing

Unfinished.

Article Update Log

August 12 2013: Updated the Music and Sound sections. July 14 2013: At last, updated the article with some fresh new links and content, mostly in the Getting Started/Art section. Plans for finally finishing the article with the music and writing sessions are in order. 13 April 2013: (Doing some re-organizing to the article; expect more changes soon) Changed the 'Resources' header to 'Getting Started'; took a different approach at the Getting Started/Programming section. Removed the section about Blender in the Getting Started/Art section in favor of taking a different approach. 27 March 2013: Cleaned up the Resources/Programming introduction 26 March 2013: Added a link to Resources/Art/Blender 22 March 2013: Initial release
Cancel Save
1 Likes 16 Comments

Comments

Michael Tanczos

I see this as both informative and something of a "table of contents" article that links to other site resources. For each section perhaps you could link to some related articles from our article section and we can expand from there.

This would seemingly have relevance to a "Getting Started" article:

ttp://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

March 22, 2013 12:01 PM
CaseyHardman

The main goal is to be simple enough to understand for people with no game development experience, but also extensive in the way that it links to many resources to get you started. I plan on adding lots of links in the future, but in the meantime, it'd be nice if some others could help me fill out the sections that I would have to do a lot of extra research to properly write about.

I'm not sure if you mean that I should only link to articles on GameDev, or just try to find as many as I can that are relevant and link to them?

I think it would be pretty nice if we could have all of the linked resources as articles on GameDev, because then we'd have control over them and we could be sure the links won't be broken years into the future, but there are a lot of good tutorials around that could save us the time of re-writing them.

March 22, 2013 10:09 PM
Michael Tanczos

I think ideally part of what we are trying to do is create a local library of resources. Just like a book we would want to have a local copy of the linked article under ideal circumstances. You or someone assisting you could easily be the point man and try to contact an author of an article you want to link to and try to get permission to reprint their article here. We used to have a lot more linked stuff but when those links break your archive becomes worthless.

March 24, 2013 08:20 PM
NightCreature83

I think for programming you should never start with a game, there is too much you need to know for even a simple game. Starting with basic input/output problems is far better and then move from there into a random number guessing game and so on. This can be done fairly quickly but at least you get the fundamentals of how an application should flow down before trying to do something that is complex.

After that moving to either 3D or 2D comes down to how familiar you are with the math involved and how much pain you can stand in trying to gork everything involved.

March 27, 2013 12:55 PM
Bluefirehawk

thought the guy behind ExtraCreditz worked specifically as a game designer and often gets hired as a consultant. They also put game design in their series "So you want to be X in the game industry"

I think your problem is the target audience. How much know-how do you expect? Is it an article for highschool students with practically no knowledge in any field? Or an article for an hobby Artist interested in game dev, or a hobby programmer etc. The problem here lies that an introduction article to a hobby artist should adress the reader differently than a hobby programmer and you are trying to adress both.

Especially the programming stuff is a bit difficult, where does gamedev.net set the entry level of knowledge, the "beginner level"? From literally nothing or basic knowledge of programming (eg a year of experience) or even more?

I agree with NightCreature, if you aim at bloody programming beginners, you shouldn't even mention XNA before you are sure the reader grasped the idea of variables, loops, methods and oop.

In my opinion it is the best choice to introduce each field and then link to introduction articles in the separate fields. Maybe drop the resources. In field specific articles you can better adress the needs of the reader.

E: I just realised maybe you need a different title, or the other article does. There is an article called "Your First Step to Game Development starts here", which deals more from a programmer perspective to start his/her first game.

March 27, 2013 02:47 PM
CaseyHardman

I think for programming you should never start with a game, there is too much you need to know for even a simple game. Starting with basic input/output problems is far better and then move from there into a random number guessing game and so on. This can be done fairly quickly but at least you get the fundamentals of how an application should flow down before trying to do something that is complex.

After that moving to either 3D or 2D comes down to how familiar you are with the math involved and how much pain you can stand in trying to gork everything involved.

Thank you for the input.

I'd planned on describing the fundamentals first and linking to generic programming lessons in the section before C# and XNA. I've updated the Resources/Programming section to be more clear in stating that you should know the fundamentals of programming before you shoot for a game.

Perhaps you could write an article about the fundamentals of programming, and I'll link to it? smile.png

It doesn't seem like we have an article like that yet, and I imagine it'd be pretty helpful for beginners.

March 27, 2013 09:58 PM
CaseyHardman

thought the guy behind ExtraCreditz worked specifically as a game designer and often gets hired as a consultant. They also put game design in their series "So you want to be X in the game industry"

I think your problem is the target audience. How much know-how do you expect? Is it an article for highschool students with practically no knowledge in any field? Or an article for an hobby Artist interested in game dev, or a hobby programmer etc. The problem here lies that an introduction article to a hobby artist should adress the reader differently than a hobby programmer and you are trying to adress both.

Especially the programming stuff is a bit difficult, where does gamedev.net set the entry level of knowledge, the "beginner level"? From literally nothing or basic knowledge of programming (eg a year of experience) or even more?

I agree with NightCreature, if you aim at bloody programming beginners, you shouldn't even mention XNA before you are sure the reader grasped the idea of variables, loops, methods and oop.

In my opinion it is the best choice to introduce each field and then link to introduction articles in the separate fields. Maybe drop the resources. In field specific articles you can better adress the needs of the reader.

E: I just realised maybe you need a different title, or the other article does. There is an article called "Your First Step to Game Development starts here", which deals more from a programmer perspective to start his/her first game.

Thanks for the input.

The article is primarily aimed at beginner game developers, regardless of age; people who don't know anything about game development.

However, it's also intended to be capable of serving as a "bookmark me for later" reference. For example, someone who used this article when they were a complete noob, learned a good bit of programming from it, and now wants to delve into 3D art. They could come back and read the introductory material on it, then head to the Resources section and go deeper.

I don't really see what is wrong with the way the article is set up right now. It offers introductions to each field, then offers resources for getting into that field. It is meant to be a beginner-friendly introduction to the core fields of game development. Separating it into any more articles doesn't seem like it would call for any changes to the contents of the articles themselves; I can see the multiple articles approach making things a bit more organized and maybe reaching more people because of the specificity of the article titles (people will probably search "introduction to game art" instead of "introduction to game development" if they're looking specifically for art).

March 27, 2013 10:13 PM
TobiasK

I think for programming you should never start with a game, there is too much you need to know for even a simple game. Starting with basic input/output problems is far better and then move from there into a random number guessing game and so on. This can be done fairly quickly but at least you get the fundamentals of how an application should flow down before trying to do something that is complex.

After that moving to either 3D or 2D comes down to how familiar you are with the math involved and how much pain you can stand in trying to gork everything involved.

I started learning programming by making games, and I know a lot of people who has aswell. Sure, this was back in the days when games were A LOT simpler (middle of the 80s), but there's absolutely nothing bad about learning by making games.

March 28, 2013 07:15 AM
Bluefirehawk

@Sir Mac Jefferson

I am sorry, I worded it badly. There isn't anything wrong with your article, I basically wanted to say your job is harder because you can't really assume anything about the reader. And maybe we should discuss the target audience, because then it could make the job easier to decide what belongs to the introduction article and when should you link to a specific introduction article.

March 28, 2013 10:06 AM
Michael Tanczos

Keep this article covering just an overview of the different areas of game development.

I would love to see something like this for each section:

Programming

... overview description here ...

How to Get Started

Game making tools for beginners (need volunteer author.. covers Gamemaker type options)

What language should I use? (need volunteer author)

What engine/platform should I use? (need volunteer.. discuss some of the more commonly available platform sdks.. Allegro, SFML, XNA, Corona, etc)

Here are some local articles that we already have:

http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

http://www.gamedev.net/page/resources/_/business/breaking-into-the-industry/so-you-want-to-be-a-game-programmer-r792

March 28, 2013 03:41 PM
macrotech

Actually Microsoft has announced that they're not developing XNA anymore and will stop supporting it in 2014 (July IIRC) so maybe XNA is not a very good idea, although it's still fine (I personally love it) since it strikes a nice balance between a low level framework and something like Gamemaker which may be too high level for some.

April 01, 2013 10:57 PM
CaseyHardman

Okay, I've done some revamping and took a different approach with the 'Resources' section, changing it over to a 'Getting Started' section.

As was suggested, I'll link to introductory articles/resources rather than listing off all of the possible routes you could go.

If anyone has any resources they could suggest for the other sections in the 'Getting Started' area, please share them!

April 13, 2013 10:12 PM
Flapeth

Hello, thank you very much for this article as well as the follow-up link.

I read thoroughly and have come to the conclusion that Python--as suggested--is a good starting language, even though any language is better to start with than none.

A summary of what I learned, as a beginner to programming...

Learn Python > Program a Pong game > Test Game > Fix Bugs > Submit for Review

Does anyone have anything to add? Is it really as simple (hah) as that?

Thank you again,

Rob

May 16, 2013 12:30 AM
Erik Storrud

You need help with the Writing section?

I've written something but it may not be good enough yet. English isn't my native language and i'm really tired when writing this. If you can use it or parts of it go ahead. If you want me to put more work into it let me know and i'll get cracking.


Writing
Writing for games or, as some would call it working on the games narrative design, is perhaps one of the intuitively accessible aspects of game design, but at the same time one of the hardest parts to integrate with the rest of the development process. As a content writer you have to be intimately aware of all other aspects of game design. You can't use the common split personality or memory loss plot twist you would if you we're writing for a soap opera. The player will remember what happened last episode and will probably go out of their way to break your narrative.

The narrative you want to convey has to be brought to the player through a medium that has an unprecedented level of interactivity. If your game is build around reactivity you have to think out all the options the player want to try out and how they will advance the story.

Even linear games have to be a corroborative effort between different aspects. The challanges the player faces needs to work well with the story being told. The graphics or sound may have limitations towards what kind of visuals you want.

This isn't meant to discourage you from working with the narrative aspects of the game. It's just to clarify that you need lots of understanding of the entire process of creating the game. Furthermore you need to be able to communicate your ideas and material in a way that's clear enough for the rest of the team to understand and work with. Theres a lot more to writing than merely telling energetically about your great ideas.

Basically you'll want to analyse the narrative experience of games you'd like. What made you cry when a beloved side-character died? Why did you feel such hatred towards the boss at the end of the game? What was the lighting in the environment? What tracks of music was playing at the time?

All these aspects are part of the players narrative experience and are a collaborative effort between all elements of the game. The writer or narrative design is what ties it all together in a story or narrative for the player.

There is an unsurprising lack of standard and resources on how to go about writing. You can't just get J.K. Rowling to tell you what made Harry Potter great one sentence. What makes great fiction great is all of the impressions they leave with the consumer with.

However it's a good idea to have a basic understanding on the workings of fiction as you would get from a decent college education.

To get an understanding of the various means games can employ to convey their narratives i recommend watching this artistic analysis of the halflife 2 series:
http://www.youtube.com/watch?v=TJ7vcY-b5kg

(
dont really have any other ressources but this guys youtube channel is a must-see to get into the academics of storytelling in games: http://www.youtube.com/user/MrBtongue/videos )

August 18, 2013 12:32 AM
CaseyHardman

Thank you, Cablefish!

I'm going to take some time to soak up the information you've posted before expanding on the writing section.

August 27, 2013 12:10 AM
Buckeye

Just curious: any intent to do anything more with this article?

The title and apparent intent of the content (self-described as "basic") doesn't seem to fit the "Breaking Into the Industry" category. As mentioned in other posts, the information you present may be very useful to hobbyists and others whose ambition extends no further than learning a bit more how to do "stuff." Maybe Game Programming?

Also, IMHO, the article doesn't really address development of a game, which is more of a process. It seems to be aimed at a beginner who may need resources to learn about individual pieces that may comprise a game.

March 10, 2014 04:25 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!

Interested in game development, but don't know anything about it? Let me introduce you to the creation of games in an understandable way.

Advertisement

Other Tutorials by CaseyHardman

19858 views
Advertisement