Endless Road

Start the game


It turns out that game design is hard. Although I enjoy making novel games with weird gameplay mechanics, it turns out that it's very time-consuming and it's hard to make a good game that way. If you make a conventional game with well-known mechanics, then if the game isn't fun to play, it's easy to fix. You look at other similar games, see what's different and what's fun, and change your game to match them. If you go with a new mechanic that hasn't been seen before, then there are no other examples you can look at to figure out what tweaks will make the game better, so you end up blindly tweaking things to see what might work. This takes a lot of time and not that much fun. It might even be possible that your choice of game mechanic might be inherently a poor mechanic that's not fun to play. The trade-offs necessary to include the game mechanic might be making the game boring or too complicated.

So I decided to try my hand at a more conventional-style game. I'm not yet at the Zynga stage where I would just do a straight-up copy of another game, so I would still put my own little twist on it, but there would be no crazy mix of game mechanics that I would have to spend months working out the details on. Given my mediocre game design, writing, art, and sound skills, I decided to work on a 3d driving game. When I was making my little Xbox Indie Game, I noticed that artists and writers could make great platformers and shooters by borrowing code from other people and focusing on great art and immersive experiences. Programmers like me simply can't compete. Even though racing games seemed to be a fairly popular category, few indie developers made such games because of the difficulty of all the 3d code. Making a good driving game still requires good art and sound, but not a huge amount, and mostly fairly standard pieces, so hopefully I could just borrow other people's art (as a software developer, I suffer from "not invented here syndrome" so I'm still getting used to the indie gaming "mash-up" approach of just borrowing random resources when putting a game together).

Design Notes

I like racing games, but as a casual gamer, some aspects of traditional racing games simply don't appeal to me. I don't like having to understand the details of car physics and handling. I also don't like having to meticulously learn the intricacies of individual tracks. People who like driving games enjoy mastering the behaviour of a complex machine to get the best performance out of it and they enjoy memorizing track layouts so they can perfect their timing and optimise their turns. As a casual gamer, I like the thrill of speed and deftly weaving through traffic, but I don't want to put in a lot of time improving my driving. Another aspect of driving games that I enjoy is seeing new scenery as I drive around. It feels like exploring and discovering new things.

As a result, in my driving game, I decided to use a simplified "fake-3d" driving model from early arcade racing games like Pole Position combined with a procedurally generated road. The driving model is simple, and the random generation of the track means that it will always be new and different with new things to see and it can't be memorised.

Another aspect of traditional racing games that I don't like is that they encourage bold, reckless driving. I personally like a more cautious, hesitant driving style. Part of the reason for this is that there are very little penalties for colliding with other cars or objects of the scenery. Instead, I decided that touching other cars or pieces of the scenery should result in insta-death. The original Test Drive series of driving games used a similar approach, and it really changes the feel of the game (it's also much easier to program). Instead of being about pushing everything to the limit, the game instead focuses on taking strategic risks.

Implementation Notes

I originally planned on whipping together a game in about a month, but it actually took closer to two and a half months. I ended up encountering several unexpected difficulties.

[Home] [Up]