Crazy Roads - Progress

Thu, Jan 7, 2021 4-minute read

Crazy Roads started as a refresher project to become more familiar with the Unity editor. My ToonyVoices asset scratched that itch, but my time was spent almost entirely within Visual Studio.

The thought for the project was kept simple, an “endless driver” where you must dodge oncoming traffic and obstacles in the way. As such, Crazy Roads was born! Both the concept as described and the execution are nothing revolutionary, which makes it perfect to refamiliarize myself with the Unity Editor.

To kick the project off I needed some art. Since I am not much of a 3D artist - or even 2d for that matter 😅 - I dove headfirst into the Asset Store. I came upon the Simple Series of assets by Synty Studios and knew I had what I was looking for.

Crazy Roads had begun.

I had envisioned the game to be simple to play, swiping left or right on a mobile device to move the player. That was easy enough for me to stick to, but where I was torn was with the art direction. For quite some time in early development, Crazy Roads used an orthographic camera system. To this day I still have a liking for the initial direction I took.

Crazy Roads Isometric

But it lacked something, it lacked depth. I know, I know, this is the point of an orthographic camera system. In the beginning, though, I ran into issues with the rigidbodies attached to the cars plummeting towards the players. They would sometimes get “caught” in the road seams and be hurled skywards. While this was frustrating, and I spent a decent amount of time trying to resolve the issue. The zaniness of objects began to grow on me and eventually led to adopting the issue as a feature.

This is where the camera really played afoul with gameplay. It was rather tough, even with shadows, to tell the true height of oncoming traffic compared to the height of the player’s vehicle. I found the frustrating building where I would take a collision because I couldn’t tell if I would clear a car flying above me or not.

So I decided to explore using a perspective camera, to help give it that much-needed depth. My first experiments were, disapointing.

Sure it solved the issue of depth, no question there. What it did not provide though, was character. Even though the above video was captured early in development, it still lacked a lot of character. I could have added some fog and perhaps a few fancy effects to wow it up a bit. It still would have just been driving along a straight line. This fits the concept laid out but doesn’t do anything to impress in my opinion.

Why does it need to be head-on though? No one is whispering into my ear dictating what I must do. So why not get crazy? Let’s grab the camera and pull it over a touch, maybe throw in a bit of an angle to it. Straight roads? Terribly early 2000s if you ask me, why not make them defy physics a little bit? The cars driving and flying by the players head, those are good, lets keep them.

This is what I have managed to come up with.

Crazy Roads Perspective

By no means is it perfect, but this project was never meant to be a AAA title. This iteration holds far, far more character to the design, with the added bonus of allowing the player to see more upcoming obstacles! The biggest disappointment I had was the need to transition to a horizontal orientation. Though in the end it works together nicely with all the elements and allows for a logical place to put the UI. There will still be a load of polishing and massaging as far as the graphics are concerned. But I will get there, eventually.

For now, though, there are plenty of programming elements left to tackle. Like the graphics though, most of it will be adding those little touches like Game Center and ReplayKit support.

It’s been said before though:

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time. - Tom Cargill

And I am beginning to believe it.