Dev Blog 2: Attempts

Allright, let’s have some fun here.

If you read my first dev blog, you might have understood that Snow Plow Project is also a learning journey. Several attempts at creating the game were made in the last years. Before getting to the actual version, a few ugly versions have been made. Want to see what it was looking like?

First attempt

Yeah. So… Not knowing how to use professionnal software (and not wanting to learn it) gave interesting results. 3D modeling was initially made using the free version of what was known as Google Sketchup (Now Trimble Sketchup), which is a great software, but aimed for architecture. Not much for complexe 3D models. The free version had many limitations, and the paid version was out of price.

The game engine I used was 3DRad. Never heard of it? Normal.

Snow Plow: 1st attempt.
The grader lacked… details?
The snow wasn’t very thick…

But, again, the learning of basic game dev principles was there. Even if I soon realized it could have been made better. Lesson learned.

Second attempt

This time, I wanted to overhaul the city, using new texturing techniques I had learned. I did use the same tools, unfortunately.

The game engine, 3DRad, was a free software with little to no support and was very limited. Coding was in Angel Script, a language derived from C/C++. Due to those limitations, it was pretty much impossible to create volumetric snow. The snow was, in the end, just a texture on the ground.

Worst than that is the tweak I made up to create “snow plow” illusion. It was simpler to start with a white map, and put a ground texture as you go. So your plow was actually pretty much laying asphalt on the ground… With a few white puffs to wrap up the effect and voilĂ !

The city looks better, sure!
Let’s lay asph… I mean plow the snow!

Third attempt

Now, this is when it got the real kick! I decided to change the game engine to Unity. Unity is a professionnal tool used in the game development industry. And the way their license work is pretty cool. Basically, the personnal version is free until the user (individual or company) reaches a certain amount of revenue. A great way of giving your project a kick for a minimal amount of money. Plus, there is a large community supporting Unity (I have to mention that it is the same with Unreal Engine, an other similar tools. I just happened to choose Unity). The great thing is that when you get stucked, or need a tutorial, or a pre-made script or asset, you can find plenty of ressources onling, both free and payware.

Some parts of the old project I could keep, some had to be trashed. Importing existing models in Unity not only gave the graphics a boost, but allowed me to successfully create a volumetric snow system with the help of online ressources and assets I bought.

Now with Unity, the graphics were sharper, the light was more realistic…
… and we now had a volumetric snow system.

I can’t stress enough the importance of taking the time to learn how to use the proper tools. We all want to see our project take shape quickly, but believe me, if you do it wrong the first time (and the second, and third, and fourth), it’s gonna take much, much longer. Plenty of tutorials and even full courses are available online, both freeware and payware.

What I did personnaly is I registered to a payware learning program by CGCookie, and took the full course on Unity and 3D modeling…

Fourth attempt

This time, it was time to learn how to do 3D modeling properly. I got bored of this awkward kleenex-box-shaped truck. Let’s make something that will strangely ressemble a model you see often on the road. I registered to a course on how to model using Blender, and spent a couple months learning it in my spare time. Then got to work…

Ta-dah!

Beside switching to Blender, I also complexified the map in a more realistic manner with hills and curves instead of the very flat and angular map I had before. I also added (thanks to the power of Unity and the ressources from the web community) many realistic elements like trees and power lines swinging in the wind.

Fifth attempt

There is a fundamental rule in game development. Start with a core mechanic and build from it.

In other words, unlike what I did, make it work before you make it look great.

The first part of the game that should be completed is the mechanic. By mechanic I mean coding everything that needs to work in order to make the game playable. In Snow Plow, this means to have the snow behaving like it should, have the trucks drivable and most of their systems working, the weather engine working, the first person controller and the enter-exit systems operationnal. Once you are able to wander around, embark in a truck, drive and plow some snow, then it’s time to make it look good.

That’s one of the first advices I got when I started working on Snow Plow. And that’s also the biggest mistake I made: building all the trucks and a big part of the map, but the basic systems were barely working. The code was a mess, and I was always expanding the map instead of making the core of the game work.

By starting working on version 5, I wanted to get the core mechanics to work before anything else. That’s why on recent screenshots, you see only a truck on a flat snowy terrain. There’s not much to be seen, but trust me, an impressive amount of work has been successfully accomplished under the hood. See our gallery for the most up-to-date screenshots and videos.

All for now! Talk to you soon!