Racing Game Dev blog

This is the racing game I've been working on since the beginning of 2009. It is based upon an engine framework I started working on in the middle of 2008 (When I seriously started creating the collision system and rigid body physics engine. The static and animated model code is a bit older. Alot of time was also spent on a triangle collision system that never worked out. STP triangle intersection ideas are still in use. - note to myself)

Seaside Racing

posted Oct 9, 2010, 5:45 AM by Gustav Olsson   [ updated Oct 19, 2010, 7:39 AM ]

The game is now finished and released on the Xbox Live Indie Games channel!


posted May 11, 2010, 7:19 AM by Gustav Olsson   [ updated May 11, 2010, 7:25 AM ]

Here is a screenshot of the second map without any textures applied.

Nearing completion

posted May 9, 2010, 6:03 AM by Gustav Olsson   [ updated May 9, 2010, 2:39 PM ]

Hello internet! Long time no see!

Since the last post back in January I've implemented a lot of important features that aren't very noticeable but needs to be in the game. Some of the features include: a flexible menu system, a user interface when racing, the racing logic itself and Xbox Live avatars as well as a lot of minor features and bug-fixes. I also submitted a preview build of the game to the DreamBuildPlay competition but unfortunately didn't make it into the top 20 list.

It's very difficult to work as efficient and being as motivated as I was one year ago, when I started this project. I think it has been good not to work on multiple projects at the same time, it really forces you to complete things, but at the same time, you really don't get a lot of feedback and it can be difficult to not be able to finish projects more often. In the future I plan to either keep working on smaller projects, one at a time, or one major project with smaller ones going on alongside it, to keep motivation up.

Currently the game can be played online or locally with up to 4 players on each console, each with their own avatar. One map is more or less complete and I'm working on the second one at the moment. I think the game is pretty fun to play with friends and I can't wait to be able to play with more people online! The plan is to have the game ready for release on Xbox Live Indie Games in the beginning of June with 3 cars and 3 maps.

Take care readers! Both of you.

The map showed in the video is nearly finished geometry wise, but I will add a lot more objects soon. Also, since this is the pc debug build of the game, the Xbox Live Avatars don't show up in the cars.

Progress update

posted Jan 13, 2010, 11:31 AM by Gustav Olsson   [ updated Jan 27, 2010, 4:05 AM ]

Here are a few new screenshots from the current version of the game:


posted Dec 8, 2009, 12:00 PM by Gustav Olsson   [ updated Dec 8, 2009, 1:10 PM ]

It has been quite some time since my last update. I have been working on and off the project for the last couple of weeks, improving a lot of gameplay and back-end code. Among other things, I rewrote the rendering system to be faster and better suited for split-screen play and finished much of the networking set-up code.

I have added 2 new objects to the game, a wooden bridge and a wooden fence. While making these models and textures I discovered that it takes me about one to two full days of work to create one object. I imagine that it will take even longer when I start making objects that require me to draw actual concept sketches beforehand and I really hope that I get better at it as I go. I've been sort of avoiding working on new objects because of this but now that I can't think of any more improvements to the current code I'll either start making more art or start working on one of the few major features that I still haven't implemented yet. (Basically particle systems and the GUI)
I haven't made as much progress as I would have liked to lately but I plan to work much harder in coming months and the game will hopefully get released soon!
Here is a screenshot of the game in it's current state:

Blue sea

posted Oct 6, 2009, 6:59 AM by Gustav Olsson   [ updated Oct 11, 2009, 2:36 PM ]

As you may have seen in the last update, there is now water in the game! Since that update, I've spent some more time working on it and this is the final (for now at least) result.

I've been planning to write a blog post further on where I explain in more detail how I created the water, but for now, here are some screenshots :)

Map Editor progress

posted Sep 22, 2009, 1:34 PM by Gustav Olsson   [ updated Oct 1, 2009, 4:53 AM ]

I've been working on the map editor on and off for the last week or so and now it has all the features necessary to create a complete map! It's now possible to insert a new object into the game and place it in the right spot without any additional C# code. The editor features a very simple set of tools, you can add, duplicate and remove objects as well as move them around and rotate them. Everything is controlled using the gamepad, which has a very limited number of buttons available but editing the map is quite intuitive because of smart button layout.

I'm not planning an in-game map editor for users in the final game, though i have thought about making it possible in a post release update, this is currently just a development tool.

The current content pipeline for general objects look like this at the moment:
  1. The object is modeled as it should appear in the game using Blender
  2. The model is then exported to a file (my own model file format) which is placed in the game project folder
  3. In the project folder, an xml file is written describing the object type and the physical properties of the object
  4. The object can now be added to any map using the map editor
I haven't talked about Blender on the blog yet but I've been thinking of writing a dedicated post on what it is and how it works. Blender is really the greatest modeling application I've ever tried, and, it's open source!

Now that most of the code is finished I can start making objects to populate the maps with, which will hopefully make the game look more believable and alive!

The editor widgets makes it easy to see how an object is positioned and orientationed as well as indicates what mode the editor is in.

Older work-in-progress screenshots:

Terrain rendering

posted Sep 14, 2009, 1:47 PM by Gustav Olsson   [ updated Sep 15, 2009, 9:43 AM ]

I've not been able to work on the project as much I've wanted lately, mostly because I've had trouble deciding whether to attend university this fall or not. I've decided to wait a year and hopefully start studying next year. I hope I will have the time to complete this project this year.

What I have been working on the last couple of days are small improvements in the code. I've also redesigned the terrain rendering system in order to support repeatable high resolution textures. This was really needed because it was too hard to tell how fast the car was going without any additional objects to help the viewer. Here are some screenshots with place holder textures:

(Rendering quality and shadow resolution have been temporarily lowered in order to get better performance on my laptop)

Multiplayer and art style

posted Aug 13, 2009, 4:07 PM by Gustav Olsson   [ updated Aug 13, 2009, 4:41 PM ]

There has been a couple of days since my last update. Since last time, I've redesigned much of the internal object management code, enabled map loading (there is no map editor yet though) and implemented much of the networking code! I'm very satisfied with the networking support, it's now possible to create/join a network game or a local game and play several players on the same machine in split-screen. The player synchronization is quite lightweight and does not use alot of bandwidth so it'll be possible to play with 14+ players in a network game!

I'll try to capture more screenshots of multiplayer sessions in action soon.
I've also been working on the graphics and thinking about the art style of the game. The main problem I have is that it'll be hard to tell what speed the car is traveling at, since I don't plan to use very detailed textures for the ground. I plan to place alot of objects like trees, stones and bushes etc. all over the map, which will hopefully help the player to get a sense of speed when playing the game.
Here is a test I did with very simple textures and rim lighting: (and a broken sky apparently)
I like the rim lighting effect alot and I'll keep experimenting with other effects.

Engine updates

posted Aug 4, 2009, 4:59 AM by Gustav Olsson   [ updated Aug 4, 2009, 6:19 AM ]

I've made some updates to the physics engine in the last couple of days. The space partitioning tree has been optimized and I've implemented proper sleeping. (Making rigid bodies inactive if they don't move) These updates has made the game run much faster and because sleeping rigid bodies does not use alot of computing time there can now be hundereds of objects in the game without the performance dropping. (There can still only be a set amount of active objects in the world, but most objects will be sleeping in a typical scenario)

I've previously had the physics update frequency set to 100 Hz but I've decided to use 60 Hz from now on, making it possible to use more active objects in the game. It was quite unnecessary to set it to such a high value in the first place since the difference isn't visible at all. Finally I've also rewritten some of the integration code in order to get rid of jittering in the simulation. (This took byfar the most time)
The great news it that these optimizations has made the Xbox build of the game run very fast! (The floating point performance on the Xbox when using the XNA framework is not very good) It will now be possible to play a finished map at 60 Hz. (I expect a finished map to have a about 2000 rigid bodies in it)
Since there are no updates to the graphics side of things I won't post any screenshots in this post, but I'm going to work on the map editor and ocean next so stay tuned :)

1-10 of 11