• Projects
  • Racing game - TrackMaster: Free-For-All Motorsport

THIS FIRST POST WILL BE REGULARLY UPDATED WITH THE NEWEST INFORMATION, NO NEED TO SCROLL TILL THE END OF THE TOPIC!

TrackMaster is an all-terrain, all-vehicles, physics based racing game coming for PC: play whatever way you want, in any kind of track and event, with any vehicle!

The game is in early access phase, so I'm always posting new stuff, showing game modes, vehicles and tracks!

PLAY THE DEMO AND BUY THE GAME!

https://store.steampowered.com/app/1536740/TrackMaster_Free_For_All_Motorsport/ https://trackmaster.itch.io/trackmaster-free-for-all-motorsport

So, what is this game about exactly?

TrackMaster is a game about racing, vehicular mess and crazy types of events and competitions: doing unexpected things with unexpected vehicles! Want to take a trailer truck to a stunt track? Why not? Want to do a race in a figure 8 track featuring a monster truck, a muscle car, a truck and a bus? Why not?

The game will let you drive freely in any track in a freeroam mode, race in tracks designed for collisions, and take part in events for doing stunts, dominating the hill, playing football and many others!

Many games, old and new, are inspiration for TrackMaster. Some of them had features "copied and pasted" to TrackMaster (because no one is making it anymore, or just because the idea is too good not to be copied!) others, simply serve as a loose inspiration because of the feeling you had while playing them. Some of the games are: Destruction Derby, Test Drive: Eve of Destruction, Insterstate'76, Twisted Metal (the first one), WreckFest and BeamNG.drive.

It's Physics Based!

The game is designed as a balanced blend of simulation and fun: the vehicles are entirely governed by physics, so that you can always see a different result from collisions, jumps and stunts.

The vehicles sizes and weights are also proportional to each other as in real life. If you drive a 6 ton truck at 100 km/h into regular cars, expect the poor cars to get thown away. But here comes the balance to be fun: the truck won't take 15 seconds to reach 100 km/h (as it would in real life), it's acceleration will let it race against sports cars and other fast vehicles!

The physics based system also allows for different handling of RWD (rear wheel drive), FWD (front wheel drive) and 4WD (4 wheel drive) vehicles.

Local Multiplayer is Back!

TrackMaster will bring back what many modern racing games are missing: local (AKA couch) multiplayer, with up to 4 player in split-screen mode.

And for that, the game already have full support for gamepad/controller! It is easy to navigate the menus and play with a mouse and keyboard, but if some friends come to your home, plug your computer on a TV and only the controller will be enough to play the game, no switching between mouse and controller when on the menus.

Of course, on-line multiplayer is planned too.

Complete List of Planned Features

MULTIPLAYER Local (split-screen) and on-line multiplayer (that can also be played mixed with local multiplayer)

GAME MODES 4 game modes

FreeRoam - Drive freely, no time limits and no goals in any arena or track. Event - Races and other events, see EVENTS, below. Career - Start as a novice driver, with a bad car, and try to climb up the racing ranks! Tournament - Combinations of events in sequence.

EVENTS 14 event types

FreeStyle - Do as many tricks as you can in 2 minutes. Front flips, back flips, spiral flips, long and high jumps. Or, prevent the others from doing their hard trained tricks. Racing - You know, try to reach the finish line first. In this game, that's the only rule. Kamikaze Race - A race event where half the vehicles drive the right way. The other half, the wrong way. There and Back Race - Also race, but you drive one lap the right way, the next lap, the wrong way. And so on until finish. Around the Flag Race - And yet another race event: after each lap, make a circle around a flag in the middle of the track, and then proceed to the next lap. Master of the Hill - Stay as long as you can on top of the hill for 2 minutes. Also, make sure the other vehicles can't make it. Football - You know, one ball, two goals. Period. Red Rover - Drive from one end of the arena to the other. The last vehicle each time is out, until there is only one, the winner. Capture the Flag - Two teams, each one with a flag. Take the other teams flag and bring to your base. Demolition - Destroy anything that moves. Tag - Or "Touch And Go", the playground game, the one you played as a child. Now with big toys. Cops and Robbers - Or "Team Tag ". You also played this one as a child. Now, with big toys too. Hot Potato - Stay most of the time with the potato. Touch the vehicle with the potato to steal it. Cold Potato - Stay away from the potato. The one carrying it, loses points. Touch other vehicles to pass on the potato. Trailer Mode - All of the above, but with trailers attached. Try to finish the event with your trailers, and try to make the other vehicles lose theirs.

Arenas

11 arenas on the works and counting!

TrackMaster arenas are designed to prevent any kind of normal behaviour from the drivers, so that everyone does it's best, or worst...

All tracks/arenas are going to feature at least an asphalt and a dirt version.

Vehicles

So far, there are 17 vehicles/types planned.

Note that each vehicle actually represents a type or class of vehicle. Each vehicle will have variations, that maybe only for aesthetics or can present gameplay variations too. So, for example "Car" will probably have RWD, FWD and 4WD (gameplay variations), in different car models (aesthetics variations).

This separation is not entirely coherent right now, because vehicles like Garbage Truck, Fire Engine and Cement Mixer could all be part of the same class, like "Services Trucks". In the same way, Crawler could be part of Off Road. This is still

Photo mode:

How is the game planned to evolve?

ALPHA The game will be launched in Alpha state: only local multiplayer, 2 game modes, 1 event type (race), 5 arenas and 3 vehicles. The game will be ready for entering Beta stage when all the 14 event types, 11 tracks and 17 vehicles are added.

BETA In this phase, the track editor, on-line multiplayer, career and tournaments will be added. The game will be considered ready for finished stage when this 4 features are added. Of course that new arenas, event types and vehicles are probably going to be added during beta, since the foundations for them will be built in Alpha.

FINISHED GAME AND UPDATES After it's finished, there are going to be constant, free updates adding more of everything that will be already on the game: vehicles, arenas, events (both local and on-line). If the game proves financially sustainable, I really would like to support it as long as there is an interested community. If that happens, there is no limit to how the game can evolve!

Follow the game and get more information at the game website:

Website

Youtube

Twitter

Facebook

Instagram

Physics look pretty functional. Graphics could be improved, but definitely a nice start.

@cybereality said: Physics look pretty functional. Graphics could be improved, but definitely a nice start.

Thanks, physics is something I wanted to have this sense and feel of weigth to the vehicles, from the beginning. As for graphics, there is a lot to do!

Local multiplayer with 4 player split screen working!

11 days later

Presenting the tracks: Freestyle Arena!

Make as many tricks as you can in 2 minutes: back flips, front flips, two wheels and so on!

4 days later

hey! you should include a track editor!! looks nice!

@disemq said: hey! you should include a track editor!! looks nice!

Definitely on the feature list for the complete game!

How did you set up the joints and rigidbodies to make them stable - ie keep the chassis from forcing the wheels through the floor and setting the stiffness and damping to keep the car from bouncing uncontrollably ?

Hi,

are you using VehicleBody? What do you use as a collision mesh? I made mine with VehicleBody and everything worked great in a basic way.

Today I tried adding a track I made in Blender (and collision shape with it) and my car isn't even to get up the hill for some reason ( https://youtu.be/tnVq8yY4H1A )

@Unityfugee said: How did you set up the joints and rigidbodies to make them stable - ie keep the chassis from forcing the wheels through the floor and setting the stiffness and damping to keep the car from bouncing uncontrollably ?

Differently from the VehicleBody class, using only rigid bodies, the chassis won't force the wheels through the floor if it is too heavy, the chassis will only "sit" on the ground and the wheels won't be able to move. That's one of the reasons I'm not using VehicleBody class, I didn't like how the wheels went through the ground and other objects. This fact was too obvious with big wheels (the monster truck).

I'm planning on releasing the vehicle setup as open source in Github, it's just not good enough I think. While I don't do this, here are some pictures.

Some important notes:

  1. The 4 6DOF joints have the same setup.
  2. What does the trick are UPPER and LOWER DISTANCE on LINEAR LIMIT Y, and STIFFNESS and DAMPING, on LINEAR SPRING Y. Stiffness and damping are proportional to the chassis weight and can be measured in the same units, although it is not documented, I found it by trial and error. The monster truck chassis weight is 4000, so each wheel has to be able to support more or less 1/4 of the chassis weight, and the key property here is stiffness, that's the reason for a value of 1000.
  3. Don't forget to set CAN SLEEP on each of the wheels to FALSE.
  4. The wheels have a weight of 300 each.
  5. Angular motor on the X axis of each of the 6DOF joints gives the traction for car movement.

@eyeEmotion said: Hi,

are you using VehicleBody? What do you use as a collision mesh? I made mine with VehicleBody and everything worked great in a basic way.

Today I tried adding a track I made in Blender (and collision shape with it) and my car isn't even to get up the hill for some reason

I'm using a custom solution of only rigid bodies and 6DOF joints, see my answers to @Unityfugee above. I think that for a regular car, or race car, the vehicle body is good. But for big wheels or off-road vehicles, there are too many limitations (when I started my prototypes, in 3.1 there was no per wheel steering nor traction, but even now, it's not what I'm looking for).

About the collision mesh, I'm using the default Godot shapes: cyllinders for the wheels, and combined cubes for the chassis. I've found out that using trimesh collision was unstable for the wheels, and not necessary for the chassis/body.

About your track, your car didn't have traction enough to go uphill, or there was no collision with the track?

I've seen your video before, it is looking nice!

First post updated with some of the tracks being made!

@Saitodepaula said:

About the collision mesh, I'm using the default Godot shapes: cyllinders for the wheels, and combined cubes for the chassis. I've found out that using trimesh collision was unstable for the wheels, and not necessary for the chassis/body. Oh wait, even if using the VehicleBody and VehicleWheel, you need to make collisionshapes around the wheels aswel? I only have a collionshape (just a simple box) around the body of the car and not around the wheels. Maybe that's why my car keeps screwing up in tracks with slight slopes?

About your track, your car didn't have traction enough to go uphill, or there was no collision with the track? The Friction Slip and Engine Force where alright. Somebody on youtube told me my collisionmesh of the road might be to low poly. So I set the segments back to smaller sections (of 1 metres). That helped with driving uphill again (didn't know a collionshape needs that "high" poly), but it still jumps from time to time at certain sections.

I find it odd that when you create a path in Godot and put a CSGPpolygon on it, you set set that "mesh" as a collision detector. So I don't understand why I can't do the same for the road I created in Blender. Just to import it and select the mesh to be a collision aswel. I can understand I need to create a collision mesh for the invisible walls, so you don't slide of, but for the road...

I've seen your video before, it is looking nice! Today I made the start of a small section of the track. I've noticed for me it's hard to lay down a path and afterwards creating stuff around it. So I just create set-pieces (also because of the Split Second inspiration) and when I got a few of them, I'll stitch them together. Tested it just now: I like the shape of the road, but still issues regarding the collision when driving on it.

@eyeEmotion said: Oh wait, even if using the VehicleBody and VehicleWheel, you need to make collisionshapes around the wheels aswel? I only have a collionshape (just a simple box) around the body of the car and not around the wheels. Maybe that's why my car keeps screwing up in tracks with slight slopes?

Hum, no, you don't need to use collision shapes for your VehicleWheels class. I've tried it before and the results were no good.

From the docs:

This node also acts as a collider to detect if the wheel is touching a surface.

@Saitodepaula said: Hum, no, you don't need to use collision shapes for your VehicleWheels class. I've tried it before and the results were no good. I noticed :). I tried it and my car was jumping around even worse.

I still don't get why it isn't a smooth ride when you create roads that go uphill or downhill. On a flat surface, everything seems to mostly run smooth, but as soon as you introduce a real road, problems happen. The 2 things that annoy me right now to the brink of just giving up is that driving uphill makes the car lose a lot of velocity/speed. Not 5km/h but 20 to 30 to even 50km/h. That just won't do. The other thing that annoys me is that although my collison-mesh for the road has enough geometry (as you can see in the image), on sections that aren't flat, it drives like it is off-road, while it needs to drive like it is on tarmac. So the car is constantly wobbling a bit. I've found a setting in the Project Settings at Physics > 3D > Smooth Trimesh Collision and enable it. That seems to help somewhat, but still not enough.

And looking online for answers, coming across lots of examples of car-games in Godot, they all seem to have a few things in common: all rather floaty, all losing speed when driving uphill and all being wobbly when not on a flat surface. Which makes me wonder if Godot is even capable of handling racegames that aren't the floaty/wobbly kind. The Vehiclebody is a nice class/node, but it still to be lacking a lot (especially when you more of a designer than a programmer). And it makes it harder because the documentation/tutorials don't seem to be there to help you address these problems. Seems like Godot is still more something for programmers and not so much for designers (at least regarding [3D] racers).

I have to weigh in that I might have to create my game in Godot alongside an other engine like Unity or Unreal to see which one is more "friendly" to 3D racers for people who are more designers than programmers.

In real world physics terms wheels utilize friction to drag the car up the hill, without drag the wheels would just skid and do effectively nothing towards crawling up the slope. Not sure if that observation is in any way useful though.

Sidenote: the only driving thing I've developed was in blender game engine about 10 or so years ago, bullet physics was a thing, but there was never any kind of vehiclebody solver in that implementation. Similar to @Saitodepaula solution here I had to just build my own custom solution.

@eyeEmotion

Everything you have written, I've noticed when trying VehicleBody and Wheel nodes. Another thing you can do, is set physics FPS to 120 (PROJECT > PROJECT SETTINGS > PHYSICS > COMMON).

The other thing that annoys me is that although my collison-mesh for the road has enough geometry (as you can see in the image), on sections that aren't flat, it drives like it is off-road

Godot's collision shapes behave in weird ways sometimes. Take a look at this.

In real world physics terms wheels utilize friction to drag the car up the hill, without drag the wheels would just skid and do effectively nothing towards crawling up the slope. Not sure if that observation is in any way useful though.

It is useful, a lot. After noticing it, it was one of the reasons I switched to a custom approach, so that I can more easily control the friction.