How do I get started?

Started by
5 comments, last by superpig 18 years, 8 months ago
Hey everyone, I'm new at this forum. And I learned all the basics of c++ now. So what do I do now? How do I start making a game? I have questions that need to be answered. -How do I start making games? -Do I need another program to make games? -If so, which program would you recommend? -How do I start making a 2-d game? -What's SDL? -How do I put the coding together with the pictures and stuff like that to make it all work together? Thanks in advance.
Advertisement
Try the 'for beginners' link in my sig. Welcome to gamedev buddy.

ace
Thanks for the welcome and link.

But I need to talk to someone that knows their stuff.

My aim: ThE aLcHeMiSt146
My msn: dbzgtyugioh58@hotmial.com
Hey..

Check this out
Firstly you're going to have to learn at least some basic Win32 programming (assuming you want to make games for Windows, rather than console games). Most game programming books will contain an introduction to Win32 in them (in fact it's quite annoying after a while to find this in almost every single book on the subject) Search on these forums for information on Win32, some basic foundations will suffice:

http://www.gamedev.net/community/forums/search.asp

Don't bother too much with complex Win32 code, you'd be more interested in what follows it.

After that, I would reccommend deciding on which API you want to use for your graphics. Basically it's a choice of either OpenGL or DirectX. The pros and cons of each have been discussed in detail all over the web so just do a search on them. Basically the benefits of OpenGL for a beginner are that it is highly portable and has more free documentation online (thanks to NeHe and other web tutorial sites). In my experience, it's more difficult to find info about DirectX on the web. The primary benefit of DirectX for a beginner is that it has a number of in-built functions under the D3DX library for texture and 3D model loading as well as it's support for shader effects files (which I believe OpenGL does not have an equivalent for).

For a beginner I'd personally suggest taking a look at OpenGL first, most beginners seem to take a liking to it quickly.

Check:

http://nehe.gamedev.net

Search the books section for resources:

http://www.gamedev.net/columns/books/


Also, the "red book" manual for OpenGL programming can be found here:

http://www.opengl.org/documentation/red_book_1.0/


If you are doing a 2D game, you will probably need an image editor, such as Photoshop or GIMP. If you are doing a 3D game you will probably need a 3D modeller such as Milkshape, 3DS Max, SoftimageXSI, Lightwave3D or Maya.

I would not reccommend learning DirectDraw these days to use for 2D games. In my experience, it's better to use either Direct3D or OpenGL to simulate a 2D game.

I don't know much about SDL, but here's the website: http://www.libsdl.org/index.php


It's quite a lengthy process to use images in your code so I can't describe everything here. Basically, you load the images into memory using special pointers and you use certain libraries of functions to tell the GPU to process the data, then display it to screen around 30 times a second. Look up some game programming books for a better explanation (Tricks of the Windows Game Programming Gurus by Andre LaMothe is a good starting point)
Thanks for the help guys, I really appreciate it.
You don't need Win32 to write games for Windows. There are plenty of other options, including .NET, Shockwave/Flash, or SDL.

Aaaanyway..

Quote:
-How do I start making games?

Thinking about the game you want to make is probably the first step.

Quote:
-Do I need another program to make games?

In theory, no. In practice, it depends on the methods you want to use. Remember, you're just trying to create some instructions and data for the computer to run through; you could write them all by hand in a hex editor, which would work but would take you ages, or you could write your instructions in a high-level language like C++ and run them through a compiler, or you could write them in a language like ActionScript and have the Flash engine run them for you. Similarly with the artwork and other data - could type all the numbers in by hand, could write programs to generate it, or you could open up your copy of MS Paint and start drawing things.

Given that you say you know the basics of C++, the "write instructions in a high-level language and run them through a compiler" is probably the simplest option for you. The other programs you'll need will depend on the kind of data you want to create - if you're going to want some graphics, it may be helpful to have tools to create graphics data (like MS Paint or Photoshop). If you're going to want sounds, you will probably want some sound editing tools. And so on.

Quote:
-If so, which program would you recommend?

There are hundreds of tools out there, covering different tasks in different styles. It all depends on exactly what you want to do. The only general recommendations I might make would be to look at The GIMP as a general-purpose graphics tools, and at Audacity as a sound-editing tool.

Quote:
-How do I start making a 2-d game?

The same way you start making any other game. Think about what you want to make. Once you know that, you can start thinking about how you could achieve that, start looking at how other people have achieved similar things, etc.

Quote:
-What's SDL?


SDL (or its full name, Simple DirectMedia Layer) is a technology that assists in handling of graphics, input, sound, timing, and some other stuff. One big advantage is that it abstracts away the operating system, so if you write a game that sits entirely on top of SDL, you should be able to build it for different OSes (for example, Windows, Linux and MacOSX) without changing any code.

Quote:
-How do I put the coding together with the pictures and stuff like that to make it all work together?
Ahh. Well, you'll need to establish some method of getting stuff onto the screen - back in the bad old days of DOS and VGA Mode 13h, we just had a big block of memory that represented the screen, and setting values in that block of memory would set pixels on the display. These days, abstractions (like SDL, or Direct3D, or OpenGL, or GDI) exist that allow you to write one chunk of code that correctly handles a wide range of hardware. Once you've picked your method, the rest should follow logically.

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

This topic is closed to new replies.

Advertisement