Sign in to follow this  
tsxy

The absolute NEWBIE guide to game development

Recommended Posts

tsxy    128
I'm not good with english, but i'll try my best to explain my ideas. If you see any errors, please post after this, i'll fix them as soon as possible. I'll need all the help I can for this guide :D Introduction Q:Who should read this guide? A:This guide is a very simple guide to lead you into the world of making games. If you know how to use opengl/c++, then this guide may just be too boring for you. But if you want to learn from the very basics, this is exactly what you are looking for :D Q: What do I have to know before use this guide? A: You need some basic knowledge of C(++ is not required) and how to use google. Trust me, if you know how to write a loop to display a sets of "hello, World!", you're in good shape for this guide. Q: How is your guide differ from other guides? A: I'm going to provied simple, clean code that demonstrate the topics i'm going to talk about. I'm not going to give you partial code. I'll make sure there is no error or warning message before I post the code. (Yes, there were some book's code does not even work under debug mode) Q:MS or not MS A:That is a good question. SDL and OPENGL are nice, but I gonna do it in GDI+ and directx. I'm not a MS lover, but trust me, working on windows and VS is nice. Q:What tools do I need for this guide? A:1.Visual Studio will make your life very easy. Version 6 or newer would be enough for this guide. I'm woking on .NET 2003, but since we only work with c/C++, there are not that much difference. 2.Microsoft Windows Platform SDK 3.Microsoft DirectX SDK (I'll use the OCT-2005 copy) Both can be find on msdn.microsoft.com *Suggested by Spoonbender from gamedev.net, min req should be vs.net 2003 *You can also read http://www.gamedev.net/community/forums/topic.asp?topic_id=328532 if you are using visual studio 6. 4. Some kind of 3D modeling tool, GMAX would be enough, or whatever you usually use, as long as you can output it to .X file. but if you don't have this right now, try not to worry about it. Later on i'll do a introduction. *As suggested by Drew_Benton from gamedev.net *GMAX no longer avaible, thus I suggest the alternative - Blender. *This is a open sourced 3D modeler. More details @ blender.org 5. some kind of 2D package. Photoshop, painter or windows' painter would be just fine. You may also choose to use GIMP. More details @ gimp.org 6. IE/Firefox 7. Your hand and your brain. Q: How deep will you go? A: I'm going from how to programming in C/C++ into Vertex Shaders and Pixel Shader. I'll also include basic physics simulation, basic sound editing/authoring, video processing. Trust me, it'll be enough for you to make your own game. Q: How often will you update this guide? A: As often as I can. Since i'm still in school....projects and assigments is bad enough, i'll try my best to update as often as I can. Q: Can I ask questions? A: Of course. But please make sure it's related to this guide. Q: Who are you and what's your experiences? A: I'm a third year student at University of Toronto Canada. Computer engineering. I don't consider myself as an expert in computer programming, but I'll try to explain things in everyday languages. I'm really good with C/C++, algorithms and data structures, macromedia Flash, photoshop and 3d studio MAX. I'm good with DIRECTX, PHP, MySQL. I'm ok with SQL Server, java, OPENGL,win32 api and win32 asm _________________________________________________________________________________________ PART I. Windows event model in a nut shell The minute i stepped into the MS world, i'm confused with the windows event model. There are so many guides on the net that claims to be clear with the idea, but most of them are useless or too complex to understand. So here comes: windows programming 101 :D STEP 1: Create is CALLBACK function to process messages Windoes' code runs in a event based model. In simple words, that means everything is a 'event' to the program that's running right now. And the program will get and process the event using the logic you give it. STEP 2: Registering the Window Class This will assign the process function to the window, set the window's title and other parameters. STEP 3: Create Window and Show window Create windows use the class and show it:) STEP 4: Enter a loop and keeps running and send message to the processing function This is the tricky part.(!) Windows goes into the loop Then there are two choices. I often use peekmessage function. And trust me for now, this is a good choice. After we get the message, we'll translate the message into human language and send(dispatch) it to our logic function. The logic function will process the message and return. Then we get the next message. and keeps going Now...simple enough, we have our very first window. I'll post the code tonight. //Code for this sectionwill be uploaded on nov 28,2005 ______________________________________________________________________________ PartII. Simple input and simple output The easiest way to output a message under windows is the use of a message box. An example would be MessageBox(windowHandler, "Text in the message box", "Titie of the message box", buttons_and_icons_to_be_displayed); The windowsHandler will assosiate the message box to the window you've created and help you deal with events in different windows....but that's for later on. For now, that's just the name of the creater of the messagebox. buttons_and_icons_to_be_displayed is a option for the message box. This varible is a 32-bit, unsigned integer. The type is UINT. Each bit controls a property of the message box. We are going to use MB_OK and MB_ICONINFORMATION. Thus we turn on them in this varible be setting: buttons_and_icons_to_be_displayed=MB_OK | MB_ICONINFORMATION; This is the simple output model we'll use for this part. Now, let's get to the input model. There are two basic input types, keyboard and mouse. Let's deal with mouse first, since it has fewer buttons than keyboard. .....//going to class now, be back tonigh. :P [Edited by - tsxy on November 28, 2005 3:35:44 PM]

Share this post


Link to post
Share on other sites
Spoonbender    1258
Just gonna offer a few suggestions...

You misspelled Microsoft. There's no dollar sign in the word.

Since you're going to work with DirectX, you might want to adjust your min. requirements. Visual Studio 6.0 isn't supported by the DirectX SDK.

Other than that, it might be a good idea if you write a paragraph or something about how much experience you have. Basically, are you worth listening to?

Share this post


Link to post
Share on other sites
ghostbear77    132
honestly, i don't see him spell "Microsoft" with an "$" it's just the abbreviation "M$" he used. can'T remember, when i first read that kind of spelling "Microsoft", but must have been years...

@OT: but, i think they are right. things like that don't belong into any guide.

Share this post


Link to post
Share on other sites
Drew_Benton    1861
Quote:
Some kind of 3D modeling tool, GMAX would be enough, or whatever you usually use, as long as you can output it to .X file. but if you don't have this right now, try not to worry about it. Later on i'll do a introduction.


GMAX is no longer being offered, so an alternative should be made. That and you could not use it anyways to get a .X format, it was very restrictive for specific games and was for modding purposes and additional content deployment by end users. You should mentioned the free program Blender and the shareware program MilkShape instead.

Quote:
some kind of 2D package. Photoshop, painter or just windows' painter would be just fine.

Once agian, not everone can afford some of those, and Paint is not all that good, so you should metioned free alternatives that perform quite well, such as GIMP, GIMPshop, etc...

And I agree, using M$ shows signs of immaturaity and takes the credibility of your resource away.

Just a few things that stand out with the 1st glance, good luck writing this!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Quote:
Original post by tsxy
Q:M$ or not M$
A:That is a good question. SDL and OPENGL are nice, but I gonna do it in GDI+ and directx. I'm not a M$ lover, but trust me, working on windows and VS is nice.


The two are not mutually exclusive. (You can devlop SDL/GL on Windows with Visual Studio)

Share this post


Link to post
Share on other sites
tsxy    128
Thx for all the suggestions :D
I've changed M$ to MS.

Quote:
Original post by Anonymous Poster
Quote:
Original post by tsxy
Q:M$ or not M$
A:That is a good question. SDL and OPENGL are nice, but I gonna do it in GDI+ and directx. I'm not a M$ lover, but trust me, working on windows and VS is nice.


The two are not mutually exclusive. (You can devlop SDL/GL on Windows with Visual Studio)


That's true, in fact, opengl is even easier to use. It needs less initialization than directx, but extensions are not easy to use, where directx updates more frequently. It's just a personal choice, I'm not saying that opengl is any less useful than directx. :)

Share this post


Link to post
Share on other sites
coderx75    435
This guy just signed on today and he's already rated down 26 points for using a dollar sign in Microsoft. I agree that it's as annoying as it is OLD, but IF this guy is new to the board, shouldn't he just be warned rather than rated down? How's he supposed to know what's looked down upon in this forum? After all, it's not in the FAQ. If this is an old user on a new account, I withdraw my statements. Otherwise, it's a little harsh.

tsxy: Stating anything political (OR RELIGIOUS, GAH!), whether it is meant to be humorous or it is as simple as placing a dollar sign anywhere in the same post as the words "Microsoft" or "MS", will most likely get you rated down faster than Bush's approval rating. [looksaround]

Share this post


Link to post
Share on other sites
c0uchm0nster    182
Quote:
Original post by coderx75
...

tsxy: Stating anything political (OR RELIGIOUS, GAH!), whether it is meant to be humorous or it is as simple as placing a dollar sign anywhere in the same post as the words "Microsoft" or "MS", will most likely get you rated down faster than Bush's approval rating. [looksaround]


Irony: a guy using a political joke to explain how political jokes will get you rated down.


tsxy - I don't know for sure on these boards, but I do know most other messageboard software sets a limit on the length of a post. You may be better off writing the guides in a word processor and then either posting a download link so people can review and give constructive criticisms, or else submit it to the articles section of the site. You'll probably find it nicer to work in a word processor as well as far as formatting and spell check and auto-capitalization etc. I'm sure people would be more inclined to edit in that format as well if that is your hope (word format and od format both provide editing/revisioning tools to aid with this).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
lol... I think the point of this forum was about the guide i found it pretty interesting being semi-new to programming. i think he would have wrote out microsoft if he would get this much ridicule for it.

Share this post


Link to post
Share on other sites
vrok137    241
I never knew we could use the message boards to directly display our own tutorials. Hmmm... Sounds to me that someone may not be interested in free web hosting <cough>tsxy</cough>. Just a hint [wink]

I'm almost done with my C++ Primer tutorials. The link to my site is on the bottom.

Share this post


Link to post
Share on other sites
Boku San    428
I'm glad you're doing this. I think it'll be helpful to a lot of people, and if the content's right, it might even be stickied.

But, as vrok mentioned (subtly), are you certain that the forum is the right place to post all of this as you're writing it?

Maybe write it off line, clean it up, format it, and ask us for some review after-or-nearing its completion?

Just as a suggestion. It's also good to see that you're editing your post with answers to suggestions given -- shows that you do care what the readers think, which I haven't seen too much recently.

...Admittedly, I haven't been reading as much as I should lately, the last book I've read any of being "Effective STL"; an old version, too. And not mine.

*cough*

EDIT: Also, your English is fine. It's readable, and formatted into manageable parts. Points :p.

Share this post


Link to post
Share on other sites
tsxy    128
I want to do this guide in a "open discussion" fasion.
I know there are a lot of things I don't know, and i'm sure i'll make mistakes alone the way.
Thus I want to do this guide here, and bring everyone's suggestions alone the way into the guide.

Thx for reading, i'll keep going. :D

Share this post


Link to post
Share on other sites
vrok137    241
I think it will be best if you created a small site and post all of your tutorials on there. Then whenever you make a new tutorial, post a sticky and a link to your tutorial. So that way the forum will be dedicated to discussing your tutorial rather than ridiculing minor errors in it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this