I'm trying to make a sticky-worthy post in the For Beginners forum...

Started by
4 comments, last by wintertime 11 years, 2 months ago

As previously mentioned in another thread I made a while back, I'm interested in seeing some good documentation in the For Beginners section. However, it seems like the moderators and staff are very busy making GameDev as awesome as it's shaping up to be in 2013, so I figured I'd take some initiative myself and try to get the ball rolling.

So, I'm trying to make an explanatory, newb-friendly post in the For Beginners section, with answers to frequently asked questions, like "How do I be an idea guy for a game studio?" and "Which programming language should I start with?" and "Which engine should I use?".

Also, another goal for the thread was to explain in minor, not-very-overwhelming detail, what the major fields in game development are, how they do what they do, etc.

I've written some about game programmers and artists and a bit about writers...but I'm pretty sure I'm going to need some help here. I pretty much have no experience with sound effects or music, let alone music as it applies to games, and I'm not a master at anything game development related.

...but I do have a lot of time to devote, so I figured that makes me at least eligible to 'get the ball rolling' here so more experienced and knowledgeable people can contribute.

Also, I put red text in the post for things that aren't finished/I want help with. I plan on removing it eventually, when the thread is ready.

Anyway, here's the post so far. I'm going to try to put it in a spoiler box for convenience, because it's pretty big at the moment:

[spoiler]

Because the For Beginners forum gets a lot of the same questions posted again and again, I decided to make this thread as an attempt at answering some of the frequently asked questions, since this forum doesn't seem to have a FAQ section. Hopefully, I'll be able to add lots of links to helpful articles and other resources as I go on, and hopefully, this will be considered helpful enough to get 'stickied' so it doesn't get swept away by the same questions it aims to answer (which would be pretty ironic).

[rollup='#1 I have an awesome idea for a game! Who do I sell my idea to so I can get rich off of it?]
This isn't how it works. You most likely won't be able to pitch a game idea to someone or some company, and have them make it for you. You pretty much definitely won't be able to actually SELL the idea for a huge check or a percentage of the profits that the game makes.

This is because games are mixtures of quite a few different fields: programming, art, music, sound effects, and sometimes writing a world, story, characters, dialog, etc. (though not all games include those kinds of writing).

These are all rather extensive fields that require skill and knowledge to implement well. Games are tough to make. They're combinations of both artistic and technical fields, each one requiring time and dedication to get skilled with.

The idea for a game, the raw concepts for it, are a tiny fraction of what's involved with making a game. Not only this, but game ideas are often changed a lot during the process of developing them. People make short demos of their game ideas and play-test those demos to see if their games are fun, and they tweak and iterate on their ideas until they're great. Very rarely (if ever) does a game idea just come to someone, perfect and ripe for development, ready to make people rich and entertain on a meaningful, worldwide level.

So...in short, it's very unlikely that you'll sell a game concept/idea, because game studios have lots of these (pretty much anyone who's into game development has their own ideas, too), and they don't consider them valuable. What's truly valuable is the implementation of those ideas, and how you turn them into an actual game.

If you still want to be involved in game development, even though you can't be an 'idea guy', you'll have to learn how to do one or more of these skills, so you have something to contribute to the actual process of implementation.

Please read the next 2 questions. They're related.

[/rollup]

[rollup='#2 I have an idea for a game. How do I make my idea into a game?']

This is a more realistic approach to turning your idea into a game.


Getting a Group to Make Your Game
Most people in this position are looking to find a group of people who have experience in the necessary fields (mentioned in Question #1) and then have those people make their game for them. They'll be the "idea guy" who decides how the game should play, what all the weapons do, how much damage this enemy does with this kind of attack, and so on. These people usually call themselves "idea guys" when they post on GameDev (e.g. "I want to be the idea guy, who tells everyone how the game should be").

Before I properly address the question, let me just clear something up here...

The appropriate title for "the idea guy" is called a 'game designer' (even though that sounds like they make graphics or art...it confused me at first).

At least in these forums, people have separated the idea guy and the game designer into two different kinds of people: the idea guy is the one who has vague ideas, and the game designer is the one who elaborates on those ideas and fills in a lot of technical details (such as damage and health and so on). So don't try and be an idea guy. They aren't loved. Be a game designer.


Anyway, back to the topic...

The cold, hard truth is, game designers (and especially idea guys) won't have an easy time recruiting a team to make their game for them. As mentioned in Question #1 (see it if you haven't yet), developing a game is tough work. You'll need more under your belt than just "game design". You need something that you can contribute to the development process. Again, those skills were mentioned above: programming, art, sound, music, etc.


Learning a Skill to Help Make a Game
If you've read the above section, you now realize that simply being a 'game designer' isn't enough unless you have another skill that you can contribute to the development of the game.

I'll try my best to introduce you to each of the common skills below. Later in this thread, I'll link to some resources to help you learn more about the skills and possibly learn how to do them yourself, if you find you're interested in them.

[hr]

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.

[hr]
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 have 2D images, made in Photoshop, Microsoft Paint, GraphicsGale, GIMP, and other such programs. The programmer draws these images to the screen and moves them based on the game mechanics. These images are usually animated, such as to make a character jump, or swing a weapon.

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 even more vertices, which can be convenient. 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 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 setting 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.

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.

Anyway, 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 usually 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.

[hr]
Music and Sound
This is a part where I'd need help...I really don't know much about music and sound effects.
[hr]
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!

I've heard that game writers, or "game narrative designers", usually don't just get a job in a game studio. Kind of like game designers, they start out in other fields and work their way up. Like I said, I'm not in the industry and have no experience there, so I'll need someone who knows about it to elaborate here. If you don't want to write anything yourself, feel free to give me a link that may help (maybe there's a post about it somewhere on Sloperama?)

[/rollup]

[rollup='#3 Alright, I've decided to learn how to make a game. Where are some tutorials on how to make The Most Awesome MMORPG In the World?']

Once again, this is the wrong way of going about it.

MMOs are incredibly difficult to make. Big companies sink millions of dollars into MMOs and have big teams of many different developers working on them.

Among other things, you need lots of content, you need expensive servers, your programmers have to know how to network games (which isn't something a beginner should be looking into, to say the least)...the list goes on.

It's best to start with smaller games, like Tetris and Pong clones. You'll see results fast, and you won't be completely in over your head. You'll learn about programming from a ground-up, solid route, and get a lot of helpful experience.

My advice is to simply put the idea of an MMO down for a while, and focus on smaller, more achievable goals until you're...well, until you have a huge company with a hundred employees and investors waiting to throw money at you...

[/rollup]

[rollup='#4 I want to learn how to program. What language is best?']
There's no "best" programming language. They're like tools, you use whichever one suits the situation.
You'll want to start with one language, and get really good with it, and then move on to other languages. This is because a lot of what goes into becoming a good programmer is learning the fundamental things that apply to all languages: just general, good programming practices.

The languages are just the way you talk to the computer. They're all still programming, you just have to write and approach the code differently based on your language. This is why it's sometimes more convenient to use a different language.

The Resources section below will give some advice on finding a language you like.[/rollup]

[rollup='#5 What's a game engine?']
A game engine is a computer program that's designed to help you make a game faster and easier than if you wrote it from scratch. Every game is different and has different needs, so there are a lot of engines out there that cater better to certain kinds of games. So don't ask me "What's the gosh darn best game engine out there?!" because I'll just end up telling you something similar to what I said in question #4.

Anyway...

Games often are built out of many different, reusable parts. Every game has graphics, and that means every game has to have some kind of code that draws those graphics to the screen. Every truly 3D game uses 3D models, and they have code that draws those models to the screen based on where the player is.

The purpose of game engines is to offer robust and pre-made systems for those things that pretty much every game is going to need. However, as I mentioned a bit ago, some engines will focus more on specific types of games, and the things they'll be needing. For example, some engines are made to make it easier to create online games, or first-person shooters.

Engines usually come with a way to import your 3D models/2D images and other assets and put them into your game world, as well as a way to handle physics, input, rendering, and other such tasks.

Some well-known and popular game engines are Unity3D and the Unreal Development Kit, both free to download.
[/rollup]

[rollup='#6 What's a scripting language and how is it different from a programming language?']
JBAdams, a moderator on these forums, has an explanatory post about this on his website, so I'll leave this question to him.

[/rollup]

[hr]

Resources

At last, the biggest and most common questions are out of the way. It's time to talk about resources.


[rollup='Programming Resources']
To start learning programming, you should first figure out what kind of games you want to make.
A lot of people will suggest you start with 2D games, because they're a bit simpler, but it's up to you. The most important thing is to pick something and stick to it until you're good enough to comfortably switch to other things that expand your abilities. Like I said before, it's more important that you know general programming fundamentals rather than lots of languages. Get really good at one language, not mediocre at three different ones.

C# and XNA
You can hop into making 2D games with C# as your programming language, using Microsoft Visual Studio C# Express, a free IDE for writing C# code.
Here is the Microsoft official tutorial on making a simple game with C# and XNA.
The tutorial tells you to get Visual Studio to write your code and to make sure you have XNA installed.
Get Visual Studio C# 2010 Express (click on "Visual C# 2010 Express")
Get Microsoft XNA 4.0 (okay I don't really know enough about XNA to recommend which version to get...it seems like there are a lot of them on the Microsoft website. Some help here, please?)

Obviously, I still need to add sections for UnityScript/C# and Unity3D, and scripting languages like Python, Lua, etc.

I plan on adding the UnityScript/C# with Unity3D myself eventually because I have experience with it, but for stuff like Python, Lua, and Ruby, I'll need some others to recommend good tutorials (not just any tutorial you can find on Google - good ones!)

[/rollup]

[rollup='3D Modeling Resources']

Blender

Blender is a great, free program that can be used to model, animate, rig, and UV map (among many other things; it can even be used as a game engine!)

Here is the official website.

The user 'cgboorman' on YouTube has a very helpful beginner's tutorial for Blender. If you're just getting started with Blender and/or 3D modeling, I highly recommend him. Here is a link to the entire playlist on YouTube, with all the tutorial videos in it.

Blender Cookie is a website with lots of tutorials for using Blender.

[/rollup]

[rollup='Music and Sound Resources']

As previously mentioned (I say that a lot...I should just start saying APM...), I don't have enough knowledge with this to determine whether or not resources are good learning material or not. I'd appreciate help from the community here as well.

[/rollup]

[/spoiler]

So obviously, I still have work to do, and I plan on editing that post a lot before I'll consider it extensive enough to call it finished. As well as that, the formatting still feels a bit off, but...I've been at this post for like an hour, so I'll get to that later.

Hopefully, we can make this an awesome, extensive, and greatly helpful post that will be a friendly, easy to understand welcome to beginning game developers.

Thanks to anyone who can offer help!

EDIT #1: Improved formatting with rollup tags and horizontal rules

[twitter]Casey_Hardman[/twitter]

Advertisement

Wow damn. I think we need to get these types of things into an article as well though once we get the article system up and running again (soon if all goes well).

There is a lot of potential to help beginners and pretty much everyone else if we can break things down in a logical fashion. The hardest part about big resources like this is getting people to the information they want to know.

Wow damn.

I suppose that's a good reaction lol

There is a lot of potential to help beginners and pretty much everyone else if we can break things down in a logical fashion. The hardest part about big resources like this is getting people to the information they want to know.

Alright, I gave it a shot with some new formatting, using the rollup tags to make a sort of overview where you can see all of the questions at once, and click 'Show' on whichever question you want. That way, people don't have to scroll past all of the other questions, even if they aren't interested in the answer.

I also used the rollup tags in the Resources section, because I figured it'll end up being pretty big soon enough and this'll keep it clean (I hope).

Do you think this helps, or do you have any other suggestions?

[twitter]Casey_Hardman[/twitter]

My suggestion would be to go through the past 500 or even 1000+ posts, figure out the actual questions that are asked most often, and turn those into the sticky FAQ.

That way we make sure they really are the frequently asked questions.

Also several of the items you brought up are answered in different forum faqs. Employment and breaking in questions have a great set of answers in the Breaking In forum FAQ. You might want to point to those rather than re-answering them.

Sorry for the delay. I'm still working on this post, it's just becoming more complex than I thought it would be. I still plan on fixing it up more, and hopefully making it efficiently organized.

[hr]

Thanks for the suggestions, frob.

My suggestion would be to go through the past 500 or even 1000+ posts, figure out the actual questions that are asked most often, and turn those into the sticky FAQ.

That way we make sure they really are the frequently asked questions.

That's kind of how I got the questions I'm already answering (or trying to answer): by looking at the For Beginner's forum for the past year, or however long it's been, and seeing the same questions cropping up over and over again.

It seems like a lot of For Beginner's questions are either "help me fix my programming issues" (which is too specific to include in a FAQ), or a "where do I start?" kind of thread.

Though now that I think about it, I'm starting to branch off into more of an expansive introduction to game development in general, as well as answering some of the common questions ("what programming language should I use", "which engine should I use", etc.) But I think that's kind of necessary to give beginners and "idea guys" a solid grasp on game development.

Also several of the items you brought up are answered in different forum faqs. Employment and breaking in questions have a great set of answers in the Breaking In forum FAQ. You might want to point to those rather than re-answering them.

I know I've re-answered some questions that may already have answers somewhere in the depths of GameDev.net, but I felt certain questions had to be answered in a more 'introductory' way, to prevent confusion or explanations that were too technical. That's why I gave it a shot myself, to try and explain things on a more fundamental, non-extensive level, and then link to resources that get closer to the core and more technical.

Just thought I'd mention that...

Anyway, I have looked through the Breaking In FAQs at your suggestion, and I found some resources that I plan on including later. Thanks for the note!

[twitter]Casey_Hardman[/twitter]

It seems like a lot of For Beginner's questions are either "help me fix my programming issues" (which is too specific to include in a FAQ), or a "where do I start?" kind of thread.

I think you should include these when they get asked so often. Even if its just telling them to actually read all those error messages they get word by word, read the documentation of their compiler and linker to learn what they tell and how to fix them and tell them they need to learn how to debug their programs theirself and if they still dont know further should actually quote those error messages so others dont have to guess. For the second maybe just tell them to either start learning a programming language or try to use some gamemaking toolkit if that suits them more and then link to some longer guide?

This topic is closed to new replies.

Advertisement