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.

34. Some programming required

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

images/programming_1.png

33. The joy of flight

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

images/diract_input.png

32. Learning to fly

Create a simple flight simulator.

images/vbo_speed.png

31. Using vertex buffers to speed up drawing

Let the GPU handle geometry data.

images/diract_input.png

30. Heightmap

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

images/heightmap.png

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.

images/moving_camera.png

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.

images/moving.png

27. Stencil Buffer

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

images/stencil.png

26. Skybox

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

images/skybox.png

25. Fog, transparency and scissors

Some simple effects that can make our games impressive.

images/visuals.png

24. GLSL shaders, an introduction

Using shaders to enhance visual realism in your games.

images/shader.png

23. Collision and Response

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

images/sphere_collision.png

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.

images/trajectories.png

21. Text display

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

images/text_display_small.png

20. Quaternions

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

images/quaternions.png

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...

images/shadows_small.png

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...

images/draw_list.png

17. Adding textures

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

images/textures.png

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...

images/lights.png

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...

images/gl_perspective_thumb.png

14. Polygon triangulation

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

images/triangulation.png

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.

images/game1.png

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.

images/ptinrect1.png

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.

images/line_intersect_thumb.png

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.

images/steering.png

9. Collision detection

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

images/collision.png

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...

images/car_1.png

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...

images/speed.png

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.

images/keybd.png

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...

images/clock.png

2. Simple OpenGL program

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

images/opengl.png

1. Random numbers

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

images/random.png
GusOnGames is member of Obscure Horizons group
Increase your website traffic with Attracta.com