My project started with the same idea, so I have some resources to share:
https://codeincomplete.com/articles/javascript-racer-v1-straight/
http://www.extentofthejam.com/pseudo/
https://en.wikipedia.org/wiki/3D_projection#Weak_perspective_projection
Including a random Reddit comment you should find helpful for a basic simulation of a car:
https://www.reddit.com/r/gamedev/comments/1320er/math_for_simulating_a_car_transmission_xpost_rmath/c70d670/
And to sum it up myself -- the graphics technique is to project sprites to an XY screen position based on their virtual "3D" position, and to scale the sprites based on their virtual Z distance from the camera and your desired pseudo-field-of-view angle. If you have it set up right, you can alter the pseudo-FOV for an arcade-style nitro boost effect on the camera, if you like.
You can do the road the same way, as a conveyor belt of sprites, or you can try drawing directly to the screen. Godot can 100% do that, but it's not a method I'm familiar with.
These aren't Godot tutorials, but they got me going in a different engine that didn't even involve code, only event-block scripting. The concepts and math are very transferable. :)