A downloadable tool

Buy Now$15.00 USD or more

The Race 3D template for Godot provides all you need to create a racing game:

- 4 different vehicles ready to use

- 1 test race circuit

- Player car controller

- AI car controller

- Drift smoke

- Skidmarks

- Stop lights and front lights

- Engine sound

- SFX & music

- Select car menu

- Main menu

- HUD with race positions, lap time, best lap time, lap number and total laps

- Final race positions screen

Suitable for beginners as well as for experts in Godot. Scripts are fully commented in english.

Setup:

1. Download file

2. Unzip and import project into Godot.

4. Enjoy & have fun!

Do not hesitate to contact me if you have any questions.

Purchase

Buy Now$15.00 USD or more

In order to download this tool you must purchase it at or above the minimum price of $15 USD. You will get access to the following files:

Race3D - Godot 4.2.zip 44 MB

Development log

Comments

Log in with itch.io to leave a comment.

Clearly, Godot needs its own "Assets Store" ASAP!

I agree!

Hi, great template. My question might be a basic one since I am still a beginner/learning Godot. So, I got your template (which is fully functional). In my tests I changed the camera/cars/expanded track and a few other details ... but when the race is completed (like all cars pass thru the finish line and shows the podium), I was trying to change scene (with a simple button in the podium window). At that point, the game crashed referencing two lines in the if statement (in car_controller.gd) ...

if is_AI and RaceManager.is_countdown_finished: 

     # Calculate the direction to the target 

     var target_direction = (waypoints[current_waypoint].global_transform.origin - model.global_transform.origin).normalized() 

     # Calculate the cross product of the car's forward direction and the target direction 

     var cross = model.global_transform.basis[2].cross(target_direction)

So, I added a silght modification to your code ... but cannot manage to fix the issue. Here is what I did, might be helpful ...

if is_AI and RaceManager.is_countdown_finished:

    # Check if the model and the current waypoint are still valid and inside the tree

    if is_instance_valid(model) and model.is_inside_tree() and is_instance_valid(waypoints[current_waypoint]) and waypoints[current_waypoint].is_inside_tree():

        # Calculate the direction to the target

        var target_direction = (waypoints[current_waypoint].global_transform.origin - model.global_transform.origin).normalized()

        

        # Calculate the cross product of the car's forward direction and the target direction

        var cross = model.global_transform.basis[2].cross(target_direction)

Now it does change scene, but the cars from the previous race remain in the middle of the screen, and if I try to select a car for a new race ... it crashed again.

My plan was for making a restart race or go to next race ... but trying to change scene just leads to another crashed game.


Please advise,

Thanks in advance.

(+1)

hi! Reach me at my discord server so I can help you:

https://discord.gg/FTSmxZtY3W

And I will do my best!

I am working on a "select race track menu" so I think I may know what you need to change.

Thanks

Can I adapt it to use in a commercial project?

(+1)

Of course!