Hello to all Gamedevelopers out there. Many of your have already wanted to get into game development but came to a stand still due to the lack of resources.

Please don't post Spam or Thank you posts in this thread since this is meant to be used as a guide for all beginners. I hope you understand this.

My first post will deal with starting game development using external libraries and API's since it doesn't make sense to start coding a killer Game Engine or a Physics engine as your first attempt.

1. For a list of free game engines along with their reviews look here

2. As far as 3D modelling tools are considered, if you have big bucks you can go for the professional tool 3ds max or Maya. A free 3d modeller is Blender and has the features which match the professional ones (though its a bit tough to learn it).

3. Level editors are also aplenty out there but sadly they require you to pay for using it. A free one is Deled

4. Good sound libraries are:
Fmod: http://www.fmod.org
OpenAL: www.openal.org

5. Network API's
RakNet: http://www.rakkarsoft.com
Zoidcom: http://www.zoidcom.com

6. Physics Libraries:
Newton Game Dynamics: http://www.newtondynamics.com
Novodex: http://www.novodex.com
ODE: http://ode.org
Tokamak: http://www.tokamakphysics.com

As far as my experience and persoanl recommendation is concerned go with Irrlicht

Reaons:
1. Supports a lot of file formats
2. Has a level editor and support for .NET languages.
3. Has a very active community.
4. You can start being productive in a week or so.

IF you are really up for a challenge and want to do some serious development go with Ogre ( which is a free professional level engine ). And believe it or not , it has got a book written on it (by Apress ), so if you really serious about it, consider buying the book.

Performance wise Irrlicht falls flat compared to Ogre but the tradeoff is the level of complexity.

Some comparisions between those two here:
Here
And here

Feel free to experiment with the rest in the same way I did before choosing one since it really serves as a good experience on what you should expect from a Game or a 3d engine.

The only problem I think which game programmers face in game development project is artwork, coz programmign without good artwork sucks realtime.

I will keep on adding resouces as and when I get time.

Hope it helped, bye.

Looks like ~s.o.s~ beat me to creating this thread. I had it half-written, sitting on my computer, until I noticed that the thread was already started :D. In that case, I'll simply add to this thread.

OpenGL

The Red Book: http://fly.cc.fer.hr/~unreal/theredbook/

Now to actually compile the tutorials, you'll need the OpenGL SDK. On Windows, this is actually pretty easy, because modern versions of OpenGL come with the OpenGL runtime, and compilers come with the SDK. So on Windows, it's just a matter of figuring out how to configure your environment:
http://www.zeuscmd.com/tutorials/opengl/02-SettingUpYourEnvironment.php

On Mac OS X, you'll need to either install the Developer's Tools that came on a CD with your Mac, or download it. Note that if you want to download it, you'll need to create a (free) Apple Developer's Account before you can download it:

Once you've got this, you still need to configure it. You can either check out my modified NeHe tutorial, or use http://www.OneSadCookie.com/tutorials.

On Linux, the OpenGL SDK is included with the major distributions (Debian, Ubuntu, RedHat, SuSE, Caldera). However, if you do not have it, you should download the open source implementation of OpenGL, Mesa. You may also want to download FreeGLUT. The last part of this web page will help you in compiling GL apps in Linux:
http://www.zeuscmd.com/tutorials/opengl/02-SettingUpYourEnvironment.php

DirectX

To start off with DirectX programming, you'll need to download the DirectX SDK. Sorry, Windows-only. Then you'll need to configure your compiler. It's easiest to create DirectX applications with Visual Studio, so if you don't have that, I recommend downloading Visual Studio Express Edition. Here's a configuration guide for DirectX using Visual Studio:
http://cs.gmu.edu/~jchen/graphics/bookx/Notes/IntroDirectX.doc

It will be a lot harder using a compiler like Dev-C++ for DirectX development, although it's still possible (note that guide is a little outdated):
http://nexe.gamedev.net/directKnowledge/default.asp?p=DirectX%20Development%20Using%20DevCpp

Hope this helps

http://www.cgempire.com/forum/showthread.php?t=379

This tutorial isn't 100% complete but the author goes into great detail in explaining what you're doing. Makes a really good First Game. You will have a ASCII rpg game by the time you complete it. I expect the 5th part to be completed soon.

This is also a good tutorial if you don't completely understand classes. All of the code is in C++.

commented: Really good site for beginners, keep up the good work +19

Most of the resources mentioned here are a bit advanced , used for 3D games, and requires quite a bit of reading to actually use in a game.

Here are a few libraries that should hopefully help in making simple games, with a much lower learning curve.

What do games need?
Graphics -> something draw on the screen, primitives (lines,circles,quads) and textures (pictures)
Sound -> bangs and bams, background music to make the game come alive.
Input -> To let the user actually interact with the game

So here are some simple libs which can help you with the above:

Frame Buffer: http://www.pixeltoaster.com/
Something to draw on. For beginners, it's recommended you use fairly low-level APIs and do things yourself. This should help you get a buffer to draw on and to learn some rendering techniques (and to develop a greater appreciation for the reasons why somethings are the way they are)

Rendering: http://freeglut.sourceforge.net/
Once you've learned to draw, you can let an API do it for you. Freeglut is pretty hand for that and can do wonders to simplify OpenGL initialization and rendering across various platforms.

Image Loader: http://corona.sourceforge.net/
Every game needs it's art. This lib makes loading images in a variety of formats easy. It can be used with any application. It just loads the image from file into a buffer in any mode(eg RGB).

Sound: http://audiere.sourceforge.net/
Open Source sound library. Like FMod, it can load and play a variety of sound formats like .wav, .mp3, .ogg, etc. It is completely free and very very easy to use.

Input: O.o
Sry, this is still platform specific. BUT ... PixelToaster, Freeglut etc have their own simple methods for getting user input.


Compiler: http://www.codeblocks.org/
A very nice and simple compiler IDE to use. It has many similarities with the Visual Studio C++ IDE and is extremely easy to use. A huge plus for beginners is that it has support for DevPaks, which are used to download and setup libraries easily. It means you just have to open up a little tool box, select the libs you want, hit download, wait for them to finish and then be automatically setup for use. You can also get project templates for these so that all paths and libs are already included for you to start coding.


Oh and all the above mentioned tools are cross-platform, so it does not matter if you are on windows or linux (or mac).


And to knock you out:

Scripting: http://www.somedude.net/gamemonkey/
Poweful C++ class based scripting API. Some people cant stand anything other than LUA but GameMonkey is quite easy to use, smaller and has an encapsulated interface. Not as powerful as LUA nor as much documentation, but still wonderful for games.
Others: LUA
Squirrel

Physics 2D: http://box2d.org/
An adorable 2D physics library. Simple and cross-platform (with bindings for other languages). It's really easy to learn and add physics to your games.


That should give you all the basic APIs to develop any game you can think of in 2D. I've not mentioned any other libraries for particles, models, shaders etc all of which can be used in 2D and 3D, but they are out there and you will run into them once you start making your own games.

Enjoy the journey (one from which you may never be able to depart, should you be able to start).

commented: Nice one. +20

allegro is a marvelous 2d/3d api for c, it is c++ compatible. i believe it is cross platform, it has 2d graphics primitives, and sprites 3d manipulation and a primitive GUI capability, an active community and is well documented

i :* allegro.

Member Avatar for Geek-Master

I agree that Allegro is an awesome API for 2D gaming. I'm using Allegro and FMOD together to create a simple Mario clone. I've just started using FMOD, but I have been using Allegro for a while now and I love how easy it is to import graphics as a sprite. Everyone wants to create 3D games off the bat but I still want to bring back the side scrollers like Super Metroid, Castlevania SOTN and Mario Bros 3. Those games ruled.

I have a question about FMOD. Are there any tutorials other than the documentation included? I'm using FMOD 3 and not Ex since it is tried and true. When I'm ready to add 3D sound effects and other neat stuff I'll switch over to Ex. The samples give some insight into how to use the API, but the only good comments are at the top of the code.

Thanks

Member Avatar for Geek-Master

For Artificial Intelligence

Book Title: Programming Game AI by Example (Paperback)

http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782

For Everything Game Development

Book Title: Game Programming Gems (Game Programming Gems Series) (Hardcover)

This is actually a series of books that can get pretty expensive, but for serious developers it is a nice thing to have.

http://www.amazon.com/Game-Programming-Gems/dp/1584500492/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1214227702&sr=1-1

Been reading the book, Game Programming Tricks of the Trade by Andre LaMothe and have been enjoying it thus far.

Also been messing around with the free version of Unity.

I know this thread has been inactive for a while and a number of the links in it are now quite old or broken, but I recently wrote a tutorial for absolute beginners that covers all aspects from language selection, to learning materials and libraries and tools to use. Hopefully some of you find it of use.

GameFromScratch -- I want to be a game developer... now what?

If you are interested in specific languages, there are direct jumps to the C++, C# and Java sections.

For the more artistically inclined, there is also a list of the most popular 3D Applications including download links.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.