Articles
Here you will find articles for the topic Game Development.
JavaScript | Date: 12.5.2010 | Author: Christoph P. | Difficulty: Easy |
Introduction to Game Development | Date: 12.5.2010 | Author: Christoph P. | Difficulty: Easy |
Introduction to Game Development
Overview
Who would like to start with game development should ask itself, first of all, whether he has more graphical, spatial, logical or musical talent. Game development can be very roughly divided into 5 sections:
|
Design and Direction of a game |
|
Creating textures and modeling game worlds, shapes and other objects |
|
Designing and creating game worlds, including atmosphere |
|
Implementation of the game using a game engine to breathe life into the game world |
|
Composition and sound design to create moods |
On this website are especially graphics and programming in the center, so I will describe only these areas in detail, in the article.
General
What should be mentioned first, is, who would like to create his own games as a hobby, it's difficult without
learning programming. Because the code is the base for each game. Only who has anyone that writes the code for
him, or special software as e.g. Game Maker, can avoid this. But the results obtained with such a software are
usually limited. For those who still read and are still interested, they should first acquire a basic knowledge
on this subject.
The source for all kinds of information to mention first, of course, is the Internet.
Seek and you shall find, e.g. links like this:
Game Development Wiki
gamedev - game development categories
Riemers.net XNA Tutorials
download-book.net
However, I would also advise necessarily to buy books or borrow books.
Technical university libraries are well equipped.
And also purchased books have often CD's with software and samples included, that are very useful.
The next, essential, is the right software of course.
Whether for free or 600,000 dollars (Unreal engine), there are incredibly much of it in the worldwide network.
Good software is a different matter, there are quite a lot less.
But now to the, especially for hobby developers, key areas of game development.
Graphics
As already mentioned above, this is mainly about creating textures and modeling game worlds.
The main work is making wire frames of polygons, mapping textures on it (Texture Mapping) and to provide the right lighting.
The most important models that must be created for it, are primarily, of course, the game worlds itself, characters and moving objects as e.g..
boxes, that must be animated later physically correctly and of course equipment such as weapons, Medi Packs, etc..
Then the textures for the surfaces of the models have to be created, as already mentioned.
But here must be made a distinction between ordinary textures, textures for sprites and textures for surface effects.
Sprites are images, e.g.. for special effects such as fire or explosions rendered as 2D animations.
For surface effects, e.g. light reflections or 3D-looking surfaces are used, so-called, Bump Maps, Reflection Maps,
Specular Maps, Luminosity Maps, etc., which I won't comment further.
To get textures as a hobbyist developer, you can download them from sites like
cgtextures.com or
mayang.com,
or if you can work well with Photoshop you can create it yourself. Here is an example how to
create a wood texture.
At the end of this chapter a few links on the topic:
Books:
3ds Max Modeling for Games | good tips and tricks on modeling, and many resources |
free software:
Truespace | professional 3D software with similar features like 3dsMax |
Blender | allround 3D software with many features |
GMax | free version of 3dsMax with restrictions |
proprietary software:
Milkshape3D | probably one of the best programs for beginners (around 35 dollars) |
3dsMax | most important software in this area |
Maya | secondly most important software in this area |
Programming
Many people believe programming is boring and is primarily mathematical. But programming is primarily creative work and anything but boring. I like to compare programming with an incredibly huge Lego Kit with billions of ways to put the components together. Programming is one of the few activities for which you can use both creative and logical talent, so equally employs both brain halves. For the basis of programming, that constitutes a large portion also of professional programming code (source code), it is enough, whether you believe it or not, to know the fundamental operations of arithmetic and to invest two weeks for a good book, to learn the preferred programming language. But what you should definitely bring along is the love to solve logical problems and patience. To really work at the highest level, 3D Physics Engines would be an example, of course, it needs somewhat more.
Game programming is even more exciting as ordinary programming, because to see graphical results after you have written a program, motivates yourself to dive still deeper into the topic. The languages used are primarily the good old C and C++, Assembler, several scripting languages like Python and Lua and increasingly c# and Java are used to implement projects. Game programming is all about speed. It is important to use the available resources as well as possible, because modern games use the hardware to the limits and beyond. Processor and graphics card requirements are thus very high, as for the applied language. Because C++ meets that and also allows object-oriented programming (clear structuring of source code), it is perfect for game programming. In addition Shader languages are used, with which great surface effects, e.g. bumpmapping or geometry transformations can be implemented, that are processed purely from the video card and thus are quickly calculated.
Now to the main areas of a game programmer. In professional projects, specialists are employed for the following areas:
Animation, Physics, Collision Detection, Geometry, Graphics, Shader Programming, Lighting, Special Effects, Scripting and Sound.
Particularly the areas of Animation, Physics, Graphics, Scripting, and Sound are differentiated.
All these areas need to work well together, because they are dependent on each other and only the whole, lastly forms a good game.
Finally a few resources on the subject:
Books for beginners:
Beginning C++ Game Programming | recommended for beginners |
C++ For Game Programmers | optimize your programming and source code performance |
XNA Game Studio Express | who like programming with C# get here a good introduction |
Books advanced:
Game Programming Gems 8 | the standard work for game programmers |
ShaderX 7 | probably the standard work for Shader programmers |
free software:
Eclipse | Open Source - development environment for many programming languages |
Netbeans | Open Source - development environment for many programming languages |
Visual Studio Express | free version of Visual Studio |
XNA Game Studio | Toolset, to program games using C# |
Unreal UDK | 3D engine with editors, free for non-commercial purposes |
Additional recommended resources you can see in my link collection on the topic 3D & Graphics, on the topic Game Programming, and on the topic Programming General.
Conclusion
Of course I would have still a lot to tell here, but I leave you on your own now, to find out if game development is suitable for you. What should not be concealed, for all those who want to develop games professionally, is, the job can often be very hard and you often sit in front of the computer up into the night. But I think those who love this work, will take these hurdles with ease. I hope I could give you a little insight into this subject with this article,
Christoph