Documentation + User Guide


Game Description Delta

Scale Racer was a little more technical than I originally thought.  Most changes from the concept to how it plays now are mainly time-saving cuts. Some unexpected problems arose from trying to marry free roam controls while also following a spline. I think you can get away with simple changes, like moving the vehicle right and left of the spline path, but adding physics and physics based jumps was a recipe for disaster.

That said, I think I could have solved this with more time. I would have cut the physics-based jumps and instead added my own implementation of jumps and loops. This still would have challenges though. If I was to continue improving this project, I would revisit how to construct tracks and stunt elements would be my focus.

When I added jumps and spins - everything worked great. Until the car landed back on the track. It was constantly fighting physics and the spline path. I tried disconnecting it from the spline temporarily to remedy that, but that only exasperated the problem. I also tried limiting the spline influence to only the x and z planes and uses physics for the y. Still in my head, that seems like a good compromise, but it also ended in disaster with cars falling through the thin spline mesh. Changing the Rigidbody's collision type had no effect.

As a compromise, I doubled down on the physical suspension. Not Unity's built-in Wheel Collider, but a Configurable Joint. After a lot of tweaking, it behaved a lot like I hoped. Of course, the wheels now punctured the road mesh instead of the entire vehicle. In the end, I got there with a reasonable approximation by removing jumps and spins.

Although the drifting mechanic made it in, the track is very easy to follow. In some camera angles, the drift looks very convincing. In theory, changing the track difficulty by making the turns pull the vehicle harder would have made drifting more worthwhile. I feel that in reality this would take many hours to get right. So I've erred on the side of too easy. Instead, more opponent cars were added to up the challenge.

I think I nailed overall aesthetic. I can see that with more assets the track would definitely look the part.

Local multiplayer is also supported. I could have added more windows for more players but just trying to control two simultaneously to test was a monumental effort for my brain.  I tried to make the two racers a separate color to themselves and the AI racers, but I couldn't quite get the pallet right. This is another area where I could easily drop many hours and get nowhere, so I made player two a slightly darker shade of white instead. If I was to continue this project, I'd recreate the pallet and get many different skins for each vehicle. One happy accident was the dust particle shader looks kind of cool with multiple players. But, I could have made that particle system a lot better... (No brain! No! It's good enough!) 

Overall, I believe I implemented most of the original concepts.

Feedback

The feedback I received in week 12 was mostly positive. There was one overarching problem with corrupted graphics in some browsers. At first I suspected the Universal Pipeline renderer, but it was most likely the vector meshes I was using for the speedometer. I replaced the vector speedometer with a sprite based on and everything seems fine.

Most suggestions were for more diverse assets - different cars and sounds. Some players didn't like that the illusion was broken when the track took large elevation changes. I redesigned the track to remove some of the extreme angles I was using to test drifting and hid some of the track parts behind elevated parts in the track.

I shortened the ugly tunnel (I still think that would be super cool with the right asset) and added new tree assets on exit of the tunnel.

I added a particle effect when the car drives in the dirt to add a little more visual interest.

Some players didn't like the difficulty in overtaking other vehicles. I think it comes down to how even a light touch causes your car to spin out of control. I removed some of the on-coming vehicles to make overtaking easier.

In general, feedback was positive.

User Guide

User guide is on the game's main page.

Features:

Character art: 3D Alfa Sprint model
Background art: Cubemapped low resolution landscape
Effects particles: Dust particles in dirt
Title art: Title screen
UI: Speedometer, position / lap indication
Local multiplayer controls: Listed on game page.
Attract mode: Camera following the track on the title screen
Scrolling screen: Does this count? It's scrolling... at you.
Others: Animation, billboard shader

Asset References

Curvy Spline Asset: https://assetstore.unity.com/packages/tools/utilities/curvy-splines-7038

Used for the track and trackside object placement.

Shader Graph Billboards snippet: https://www.goldencrabstudios.com/post/adventures-with-shader-graph-billboards

Based my own billboard shader on this snippet.

Sprite trees: https://opengameart.org/content/pixel-art-simple-trees

Trackside trees. These looked a lot better than I expected for a placeholder.

FPS Counter: https://forum.unity.com/threads/fps-counter.505495/

FPS counter code for the FPS display.

AngleAxis: https://forum.unity.com/threads/is-vector3-signedangle-working-as-intended.694105/

I used parts of this snippet to determine when the track was curving left or right.

Cliff: https://opengameart.org/content/magic-cliffs-environment

Trackside cliff tileset that I used to construct my cliffs.

Pixel texture: https://opengameart.org/content/pixel-texture-pack

I used this pixel texture pack to create the tunnel. I'm least satisfied with this, but it's only a placeholder. It'll do for now.

Shapes: https://assetstore.unity.com/packages/tools/particles-effects/shapes-173167

A 3D vector drawing plugin. I used this for the speedometer placeholder.

Kanit font: https://fonts.google.com/specimen/Kanit

A slightly more fun-looking font than what comes with Unity.

Leave a comment

Log in with itch.io to leave a comment.