Hot answers tagged game-mechanics
I'm gonna make a wild guess that you are using 3D colliders. Check out the colliders of your character and make sure you froze rotation and Z transformation so that your character will not rotate or bounce in Z direction upon a collision.
You probably need to check for collision first, then check for depth. You can get the wall you are colliding with using wallHit = instance_place(.., .., oWall) then compare depth with wallHit.depth. Since you are checking collision twice, once for movement on each axis, you will need to check twice just in case there is a different collision result in each ...
How the author specifically got that value was via experimentation. From the comments: Q: Hi James, you set acceleration.y to 460. How did you find this number? Is it static? A: Acceleration was experimentally determined. Its value does not change. And this is often the case when determining values for your game. You pick a value and play-test ...
I would use some sort of points system assigned during the race. So each time a player crashes in the corner - add a point to "steering upgrade suggestion", each time he looses a race add a point to "engine upgrade", brakes for prolonged periods and misses an apex - "better brakes", gets overcome by an opponent in a straight line - "booster" and "engine" ...
Only top voted, non community-wiki answers of a minimum length are eligible