logo home tutorials utilities downloads contact

Tutorials

Here we provide some tutorials to help you start with game programming. There are several areas that we try to cover here. One is pure programming like a the simple application or reading the keyboard. Some others are more algorithm oriented such as collision detection and random number generation. And some are more physics tutorials like the car physics series.

This is the basic concept behind our work. Visit this page regularly to see what's new. This is list of the tutorials so far.

programming_1

34. Some programming required

Some programming tips to make the game code easier to manage.

read more...

direct_input

33. The joy of flight

Here is how to use a joystick to fly our airplane.

read more...

flight_sim

32. Learning to fly

Create a simple flight simulator.

more...

heightmap

31. Using vertex buffers to speed up drawing

Let the GPU handle geometry data.

more...

heightmap

30. Heightmap

Learn how to encode 3D geometry information in an image.

more...

moving camera

29. Create a moving camera

A really cool feature in video games is a camera that follows the action. Something like a movie camera following the actors around in the film, looking at the car from a short distance.

more...

moving around

28. Moving around in a virtual city

So far we have developed several techniques that we can use to make our games look interesting. Move around in a virtual city using quaternions to handle view.

more...

stencil buffer

27. Stencil Buffer

Clip drawing using an arbitrary shape, not a rectangle. It is not very hard to do using stencil buffers.

more...

skybox

26. Skybox

Have you ever wanted to draw the horizon in your game? Here is how.

more...

visual effects

25. Fog, transparency and scissors

Some simple effects that can make our games impressive.

more...

shaders_introduction

24. GLSL shaders, an introduction

Using shaders to enhance visual realism in your games.

more...

collision_and_response

23. Collision and Response

Continue adding realism in your games with the simulation of the collision between two spheres.

more...

trajectories

22. Trajectories

What happens when you throw a ball? What path does a canonball follow? Read this introductory physics article and start developing some more realistic games.

more...

text_display

21. Text display

Learn the basics on how to display 3D and 2D text in 3D environments.

more...

quaternions

20. Quaternions

In the year 1843 the Irish mathematician Sir William Rowan Hamilton published his work on Quaternions.

more...

textures

19. Casting shadows

Have you ever wondered what shadows are? Well we all know that shadows are the indication that the light from a source has hit an obstacle...

more...

draw lists

18. Accelerate with Draw Lists

It is time now to speed up our drawing a little bit. Improving the drawing speed is crucial for applications that draw complicated scenes, especially games...

more...

textures

17. Adding textures

Realistic 3D environments, especially in games, are based on illusions. Illusions generated by images. These are the textures applied on surfaces...

more...

lights

16. Lights please

In real world we see because there is light. Let's add some light to our virtual world to make it look real...

more...

perspective

15. Into the 3rd dimension

What is happening when we draw in three dimensions? How can we control the perspective and view of 3D environments? Read this introduction and stay tuned...

more...

game1

14. Polygon triangulation

Our Computational Geometry journey continues with this polygon triangulation algorithm. Desintagrate your polygons into triangles for accurate rendering in OpenGL.

more...

game1

13. Our first game

In this tutorial we ignite the fire of real game programming. We put all the other tutorials together to create our first game. A small car that drives in the streets of a small town. Collision detection, geometry of steering, timers, user input is all here.

more...

segintersection

12. Point in polygon

Suppose you are writing some 2D drawing application and you want to check weather the user has clicked inside or outside some arbitrary polygon. Knowing the coordinates of the mouse and the vertices of the polygon can you tell? Well read on and you will.

more...

segintersection

11. Line segment intersection

How can we tell if two 2D objects intersect? We have to check all their edges. The algorithm in this tutorial shows how you can find the intersection between two line segments.

more...

steering_turning

10. Steering your car

In this tutorial we address the mathematics (geometry) of steering and turning. How can we calculate the path our car follows when we turn the wheel? It is not that hard to calculate the exact line the car follows and even compensate for some sliding with the applications of simple physics laws.

more...

collision detection

9. Collision detection

Collision detection is essential in a game, unless we are playing cards or chess.

more...

engine

6. Car Physics part 1 - 7. Car Physics part 2 - 8. Car Physics part 3

Putting the torque on he road. Read on and find out...

more...

speed

5. Speed and acceleration

One of the first things we realize in nature is speed. How fast things are happening or the objects are moving. As we grow we start to feel the acceleration of objects. The are moving faster or they slow down and stop...

more...

reading keyboard

4. Reading the Keyboard

Getting input from the keyboard under Windows is easy. The system notifies the application via the WM_KEYDOWN and WM_KEYUP messages. All we have to do is respond to these messages. We will insert some code in the window procedure and get the key that was pressed or released.

more...

keeping time

3. Keeping track of time

Our perception of the world and events has to do with time. Everything happens at some speed and that is what we need. A car covers some distance at a specific time interval while a free falling object accelerates at a standard rate. Another thing is the processing speed of different computer systems...

more...

simple app

2. Simple OpenGL program

Create a simple application to use a basis for the rest of the tutorials.

more...

Random numbers

1. Random numbers

Create your own random number sequence. Read the simple tutorial and get on with it...

more...

Increase your website traffic with Attracta.com