Have you ever played the video game Speed Race? Not sure? Or perhaps Wheels? Okay, what about a game where you drive a race car at high speed and simultaneously dodge other cars and various obstacles that are sometimes illogical? We think you must have encountered some obstacle-laden racing games at some point in your gaming life! There are too many of these games to count. They have always been super popular, because they are exciting and the rules are so simple. The genre's first representatives appeared back in the days of arcade machines and even let you compete against your friends. And once in 1981, Bill Gates and Neil Konzen wrote a similar game. It was called Donkey.bas (the .bas extension means that Microsoft's former CEO used the BASIC programming language to write it) and was included in early versions of PC DOS, an operating system that today's kids can imagine only in their worst nightmares… In Donkey.bas, the race car driver (player) had to avoid running into donkeys that would suddenly appear on the road. A situation familiar to any fan of the genre! Let's follow in the footsteps of Microsoft's founder and create a similar game. But not in BASIC, of course. And we'll also do without the gray odd-toed ungulates. We're cooler, so we'll use our beloved Java. Let's call our game Racer. In addition to a player who can steer left and right and accelerate, it will have objects that move horizontally and vertically — other cars and stationary obstacles. The objective is to get to the finish line without hitting any of these objects. The finish line appears after a certain number of obstacles are passed. This isn't as hard as it may seem, but effort will be required. Here at CodeGym, we've already split this project into managable tasks that beginning programmers can understand. Shall we get started?