Skip to main content
GameDev.net gamedev.net
🔒 Locked

NEWBIES: START HERE

Started by Teej Oct 25, 2000 at 2:28 PM 40 replies 4.9k views
Original Post
Teej
Teej
On behalf of the folks here at GameDev who show a genuine interest in helping all who are eager to be a part of the game programming community, I present this starting point. You are going to need to know this stuff if you expect to dodge the wrath of some of the more 'unpleasant' members at sites. Up Front -------- (1) In case you hadn't noticed, you are considered a 'newbie'. Some people here (and elsewhere) will embrace your questions and be of great help; others will attack your lack of programming knowledge. This differs from other areas of learning, unfortunately. If they had a degree in History, they would not be laughing at your 'intellectual neglect' if you asked them something historical, for instance. (2) Although there is no such thing as a 'stupid' question, many here assume that you have made some progress on your own and are at a sufficient level of knowledge whereby your questions are more practical. We'll fix this in a moment. (3) Game Programming is a VERY diverse field. This is why you get flamed for asking broad questions. You need to know what aspects to game development exist before you can exploit other people's knowledge on them. Hopefully the following points will help. (4) You have to be able to program to write games. You might be thinking that there is a such thing as a game programming language, and I hate to break it to you, but a game is a simply program that uses graphics and sound, and takes input from the keyboard/mouse/joystick. Furthermore, a game is considered one of the most difficult types of programs you can write -- if you REALLY want to make games, you are going to have to be above par in your chosen programming language, as well as intimate with the machine, operating system and graphics API that you are using. (5) All of the books you see in the bookstore that claim to teach you to master C/C++ are LYING TO YOU. They can teach you all of the keywords in the language, and help you with some sample programs, but that's the equivalent of teaching you all 26 letters of the alphabet and claiming that you've mastered english. In fact, the reason that many people get hostile towards newbies is because they have invested COUNTLESS hours typing code, racking their brains, falling down and getting up again and again, and having long overdue moments of enlightenment, and they know that that's where the REAL experience comes from. They've developed a self-learning approach through every program they made, and consequently feel that others must also take this long hard path of perserverence. They aren't wrong -- If you are anywhere near serious, expect the many trials and tribulations that come with learning a new skill. Just don't let them scare you off before you've even tried. (6) It goes without saying that there are plenty of books to help you along. In this respect, most anyone on this site will be happy to recommend some -- sking for book recommendations and site links with tutorials etc. won't incur a flaming penalty (you're safe asking for these). (7) Games are MOSTLY data manipulation. You will not feel like you are making a game when you are knee deep in code. In reality, drawing on the screen is the easy part. Why do you think so many people begin a game and yet never finish it? Code gets big and ugly, with convoluted intentions and overwhelming complexity at times. The ones who survive are the ones who have solid coding skills and have been in the trenches many times before. You will fail, repeatedly, but will always learn. When success finally comes, everyone here will know your accomplishments. (8) I program in C/C++ using MS VC++ 6.0 using DirectX7, both 2D and 3D. For Windows, I personally believe this to be the optimum setup, but you MUST be aware of the alternatives. I only mention this because I won't be able to write about other operating systems, languages or APIs to the extent that I can with what I konw, so keep in mind why I'm being specific. (9) People are vaguely measured by their level of knowledge in various areas of programming and game development. Your goal here is to get yourself up to a common level so that your questions no longer sound 'stupid' to some, and you are able to contribute to others as well. People will usually tell you what learning path they took, and have some notion of an ideal approach based on their own experience. The trick is to know what you need to learn in the first place! (10) You've got a lot to learn! I went through 11 books on C/C++, 4 books on data structures and coding techniques, 3 books on Windows programming, and 3 books on game programming and DirectX (2D/3D), and then I got STARTED on the hundreds on online tutorials and message threads on the subject. Every day of my life involves optimizing a routine, reading about some new poly-sorting algorithm or the likes, sifting through the Platform SDK (MSDN) or searching for useful utilities over the Internet... and I still wouldn't dare flex on a message board. I also managed to learn what I know without asking ANYONE for help. You don't need them to learn. People here are a valuable asset though -- a lot of them will go out of their way to lend a hand on some godaweful routine you've lost a wrench in. Where To Start -------------- (10) If you need some programming lessons, put away the idea of writing games for a while. Work towards picking up three different books on the language of your choice. Why three? You are going to need to be reading the same stuff from different points of view. For information on a specific language, feel free to reply to this post and ask. (11) Go directly to Chapters or Amazon or your local computer bookstore and peruse the game programming titles that are available. If possible, skim the table of contents on these books. Are you starting to see some patterns? Maybe similar chapter names in different books? Ah hah! (12) Plan on buying a few of these books, if not now, then soon. Start saving. I know, I know, they're expensive... And yes, the majority of the material is available online. But you're missing the point here -- you need to ingest TONS of this stuff. You need to read and reread this stuff over and over so that it truly clicks. And what's more, books are a little more organized and written a little more carefully than your average online tutorial. In a nutshell, you'll be reading them all if you're serious. (13) Are you ready for perhaps the biggest secret in becoming a solid coder? PRACTICE CONSTANTLY. Write programs, smaller to larger, easier to harder. Write applications for everything you can think of. For Windows programmers the MSDN library is one of your best friends. By sitting in front of the computer and coding, you are learning. Every time you have to pause because you don't know how to do something, you'll be looking it up and learning from it. Write little programs that solidify your knowledge of pointers, memory allocation and usage, trees, linked lists, sorting... When you find yourself able to write anything you can think of because you know how to figure it out, you are CAPABLE. Take the day off and go get drunk. (14) Writing a game is merely an extension to writing any other program. You know how to program, now you just need to be able to display graphics and move images around on the screen. That's what the graphics APIs are for. You can learn about DirectX and GLIDE all over the Internet, as well as in game programming books... (15) Anyone who has started out in game programming by attempting to make the next UT or QuakeIII has failed miserably, I'm sure. Even if someone gave you the engine's source code, you'd still be nowhere. Does it not make sense to you that you should start at the beginning? How can you write Halflife when you can't even make PacMan? I believe that this is where the majority of people fail -- they don't start at the basics. You should be writing some old classic clones to start; it will give you experience with graphics, input, sound, game loop mechanics, etc. And hey, you don't have to invent the game; you know exactly how it should look and play. Good choices are PacMan, Tetris, Asteriods, Space Invaders, or any oldies that you can remember well (or have already). If you can write these games, you are already in the loop! (16) I'm guessing that most of you are itching to do some 3D. If you look at Direct3D(IM) (and I'm sure that GLIDE is basically the same idea), you'll see that the way hardware acceleration works dictates to a certain extent what a typical 3D app is going to look like. You'll be reading about the 'pipeline', triangles and other polygons, concave and convex. You'll get bombarded with vectors and translations, rotations, scaling, trigonometry, projections, object, view and world space, planes and normals, poly sorting, trees and more trees, texture mapping, mipmapping, filtering, lighting, oh God the list is endless... of course, when you're at this point, you're definitely GameDev material. The Short Version ----------------- I'm sorry; many of us have a tendency to type on and on... If I had some meaningful advice to give, it would be: - Learning something from more than one viewpoint is always important. If you are trying to learn about polygon sorting with BSP trees for instance, you'll want to read as many tutorials as possible before digging in so that you have a well-equipped frame of mind. Things that confuse at first come together with enough reinforcement - For C/C++/VB people using DirectX, the SDK documentation is fairly complete. You should be able to get a grip on using it without any other sources. As a matter of fact, some 3D books do nothing more than regurgitate the SDK documentation. For shame... - Get a decent collection of game programming-related bookmarks in your browser. Surf these sites regularily and read any tutorials that are available. Feel free to ask questions here after exhausting these freely available resources. Ask people 'where to find'...there is an amazing amount of useful material online; easily enough to keep you occupied for ages. - Write small programs that serve as tests; they solidify your knowledge and give you confidence when tackling larger, broader-ranged projects. - Stick to the world of 2D games for a while; just until you feel confident. Much of what you learn comes with you when you move to 3D. Oh, and BTW, 2D games are still alive and kicking! Dream up something original and have the determination to implement it! Aside: You know, why isn't there some type of 'RoadMap' article on this site to serve as a Getting Started resource? This wey we wouldn't have to rehash this whole issue every three weeks? This is my $0.02. I hope that its of some use. I'd love to see some replies with book recommendations, website bookmarks, and overall comments that we could collect so that the next newbie doesn't have to stick his/her neck out in order to ask that very first, (and in my opinion VERY IMPORTANT) very innocent question, which should always be taken as a compliment by those of us who have jumped so many hurdles. The best of luck! Teej UPDATE: Due to the reponse this post has generated, I've started a new Hands-On Interactive Game Development Tutorial that you should check out. Here's the link: Click here to visit the main page. The corresponding forum is in the discussion groups list. Edited by - Teej on 11/16/00 12:26:27 PM
Gladiator
Gladiator
I think you''ve done a great thing by writing all that, and certainly that''s what it takes to become a game developer. The thing is though, that this article-like should be posted somewhere for everony to see, or your message will go deep down into the pile of threads on this forum.

Nicely done!

-------------------------------
I'll screw up whoever screws around with the gamedev forum!

..-=gLaDiAtOr=-..
STVOY
STVOY
Well Now,

That must have taken you ages to type. I agree whole heartedly. I am in effect a newbie. I''ve only been at gamedev for around 5 months and only have Pascal & some C knowledge. But I like to think it''s a learning process. I love to help others if I can. So well done teej. And as for SDK''s there cool if you have the right knowledge but there not that simple infact some of them are quite bewildering (to me anyways)...

STVOY





Pyre Light Studios (Under Construction)



Casanova
Casanova
I copied and pasted this great advice to my Inbox, so I can read it again some other time. Thanks for this handy reference.

Its true, oh its true
"There is no speed limit in the pursuit of excellence"
AynRand
AynRand
It''s really hard to practice programming because of school...

"Im all done now"
Fremmed
Fremmed
I''ll just join in; great article. this should be posted to http://www.gamedev.net/reference/start_here/ imho.
Gaiiden
Gaiiden
Jeez man, this is some good stuff for people just starting out. Rewrite it into an article and submit it!

==============================
"Need more eeenput..."

- #5, "Short Circuit"
==============================
Drew Sikora
Executive Producer
GameDev.net
Teej
Teej
You know what, I just might do that.

Ummm, write up something a bit more formal, that is.

A while back, I tried to start a series of tutorials on learning games programming by actually writing simple games routine by routine and having discussions on design and implementation details. Unfortunately, there wasn''t much following, and my free time was scarce.

These days however, I feel that I need to be constantly involved in game development, and I absolutely love the idea of a series of interactive tutorials (forum(s)?) that concentrate on the meat and potatoes of making games from the ground up.

If I ever get the impression that there are those who would be interested in a workshop approach to learning-while-doing, I''d seriousely be willing to devote much time and effort. Although concentrating on the beginner, I have this crazy feeling that it would appeal to the vast majority out there, even if they don''t actually participate directly.

Think about it -- where on the Internet do you find tutorial forums documenting the true heart of game development as a group, step-by-step?

I''ll check back for replies to see whether I''m talking to myself, or starting a movement here -- let me know if you''re in!

Are you ready to get busy?

Teej
crazy-vasey
crazy-vasey
That would be great! I''m sure theres a lot of newbies that would appreciate that. I would find it really helpful. Hell I''d put the forums on my site if it would help.

My Homepage


Visit my forums
Ronald Forbes
Ronald Forbes
Wow, that was REALLY good. Thanks for all the info. The funny thing is we get one of these gems every 4 or 5 months. We really do need a page that has links to all of these getting started threads. About the workshop, I''d be really interested in it. Sounds really cool. I hope alot more people read this thread before it dies out and falls to the bottom of this forum, never to be seen again.
C:DOSC:DOSRUNRUN DOSRUN
Quantum
Quantum
wow, that is some great advice!
and i definately would be interested in those interactive tutorial thingos
there can never be enough information and resources on game programming.
Teej
Teej
I''m in total agreement with you all.

Prepare yourself for one hell of a post/article onslaught come Monday morning. I''ll be preparing all weekend. After that, we won''t have to worry so much about this thread sinking... we''re going to leave a *lasting* impression

See you then,
Teej
Dire
Dire
Thank you so much for writing this. I have currently sold my soul to go to FullSail for there game design program. I am one week into the course and plan on spending every moment of free time working on my programming skills. I am a newbe and would love to be involved in the project.

Back to the top.

hope to see more people join in.

My nose hairs are plotting to kill us.

neophyle.com //insert your own quote here
Teej
Teej
I''m in the process of setting things up for my first set of posts...please bear with me.

Teej
crazy-vasey
crazy-vasey
If you need a forum setting up or anything to help this I''ll be more than willing to help.

My Homepage


Visit my forums
wrenhal
wrenhal
quote:
Original post by crazy-vasey

If you need a forum setting up or anything to help this I''ll be more than willing to help.

My Homepage


Visit my forums

I would love it if it was kept here on Gamedev, because I do most of my forum reading at work and the proxy is limited on the sites I can access.

I''m very much looking forward to the posts though. Sounds like a great thing Teej.



BeS
It's Da BOMB Baby!!!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.