Racing game - TrackMaster: Free For All Motorsport

SaitodepaulaSaitodepaula Posts: 51Member
edited June 9 in Projects

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

First trailer for my first game: TrackMaster: Free For All Motorsport!

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 still in very early development phase, so I'm always posting new stuff, showing game modes, vehicles and tracks!

PLAY THE DEMO!

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


Tags :
«1

Comments

  • fire7sidefire7side Posts: 87Member

    Good start.

  • cyberealitycybereality Posts: 1,031Moderator

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

  • SaitodepaulaSaitodepaula Posts: 51Member

    @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!

  • SaitodepaulaSaitodepaula Posts: 51Member

    Local multiplayer with 4 player split screen working!

  • SaitodepaulaSaitodepaula Posts: 51Member

    Presenting the tracks: Freestyle Arena!

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

  • disemqdisemq Posts: 26Member

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

  • UnityfugeeUnityfugee Posts: 3Member

    Hi, do you use physics joints?

  • SaitodepaulaSaitodepaula Posts: 51Member
    edited March 30

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

    Definitely on the feature list for the complete game!

  • SaitodepaulaSaitodepaula Posts: 51Member

    @Unityfugee said:
    Hi, do you use physics joints?

    Yes, Generic 6DOF Joints.

    If you want more details, see here. Of course, feel free to ask anything else more.

  • UnityfugeeUnityfugee Posts: 3Member

    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 ?

  • eyeEmotioneyeEmotion Posts: 83Member

    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 )

  • SaitodepaulaSaitodepaula Posts: 51Member
    edited March 31

    @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.
  • SaitodepaulaSaitodepaula Posts: 51Member
    edited March 31

    @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!

  • SaitodepaulaSaitodepaula Posts: 51Member

    First post updated with some of the tracks being made!

  • eyeEmotioneyeEmotion Posts: 83Member
    edited April 1

    @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.

  • SaitodepaulaSaitodepaula Posts: 51Member
    edited April 2

    @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.

  • eyeEmotioneyeEmotion Posts: 83Member

    @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.

  • MegalomaniakMegalomaniak Posts: 2,887Admin
    edited April 2

    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.
  • SaitodepaulaSaitodepaula Posts: 51Member

    @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.

  • MegalomaniakMegalomaniak Posts: 2,887Admin

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

    That's a good observation, it's probably "best practice" to cut the track and it's collision mesh up into multiple parts.

  • eyeEmotioneyeEmotion Posts: 83Member

    @Saitodepaula said:
    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).

    Wow, that actually fixes a problem(s). Now, after driving, hitting brake actually keeps the car standing completely still. Before, it still managed to get a little bit speed to go either backwards of forward, depending on what was the last thing you pressed.
    And strangely, now the car slows down when letting go of accelerate. Just in very small steps, still takes too long, but that means it has"drag" built into it, right?
    Still to slow driving uphill. (in the new video, I have enough momentum to not lose so much speed)

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

    Ok, that gives a very good perspective. Watching it closely, that seems exactly what is happening while driving.
    Made a new video with the wobbly physics (this is also after your suggestion to setting the physics to 120fps)

    https://youtu.be/gL8Wzka86-c

    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.

    Too bad I'm not that good at programming anymore (can program a little bit still) and don't know game-engines enough to find these kind of solutions.

  • SaitodepaulaSaitodepaula Posts: 51Member

    First post updated with photo mode!

  • SaitodepaulaSaitodepaula Posts: 51Member

    First post updated with new vehicle: truck!

  • cyberealitycybereality Posts: 1,031Moderator

    It's looking better. Nice.

  • SaitodepaulaSaitodepaula Posts: 51Member

    Anyone: Why would I want to drive a trailer truck in a stunt track?
    TrackMaster: Why not?

  • SaitodepaulaSaitodepaula Posts: 51Member

    First post updated with lots of information about what the game actually is and what is planned!

    Also, check the website, it was completely improved with much more info!

  • eyeEmotioneyeEmotion Posts: 83Member
    edited May 10

    Cool truck! Did you make it yourself? [stupid question, your website says you have done 3d-modelling before ;) ]
    I see you have drifting mechanics. How did you achieve that? I'm still using VehicleBody though.

  • SaitodepaulaSaitodepaula Posts: 51Member

    Cool truck! Did you make it yourself? [stupid question, your website says you have done 3d-modelling before ;) ]

    No question is stupid :# ! I can make a truck like that, but it would take me lots of time. I've modified an existing model. There are lots of CC-0 3D models in BlendSwap and Sketchfab, just to name a few. The model I've used is this one: https://www.blendswap.com/blend/20912

    I simplified it, remade most of it and switched the tires. Anyway, I'll place this link in the credits portion of the game.

    I see you have drifting mechanics. How did you achieve that? I'm still using VehicleBody though.

    I didn't actually tried to make drifting mechanics. It worked this way when I made a RWD vehicle with my setup. It was actually quite realistic, and actually not much fun, because it was too hard to turn, and when accelerating, it was too unstable.

    I think the key for drifting is to not have too much grip (or friction in case of Godot's physics material or FRICTION SLIP in case of VEHICLE WHEEL node), so that, once you achieve a certain speed, if you turn, your vehicle won't topple over, instead, it will slide. Of course this will work when combined with the friction of the ground material.

  • eyeEmotioneyeEmotion Posts: 83Member

    @Saitodepaula said:
    I think the key for drifting is to not have too much grip (or friction in case of Godot's physics material or FRICTION SLIP in case of VEHICLE WHEEL node), so that, once you achieve a certain speed, if you turn, your vehicle won't topple over, instead, it will slide. Of course this will work when combined with the friction of the ground material.

    I've tried adjusting friction slip, but I still have to find a value that works. I get some strange behaviour when I try to change that value, which just make the car to an immediate 180° turn.
    When my VR setup is done, I'm going to try and look into that Raycasting thing, since I apparantly have to abandon that VehicleBody because of the sudden jumps of Bullet-physics collisions. Wouldn't want anyone the get a sudden jump in VR, guess that would be vomit-inducing :#

  • SaitodepaulaSaitodepaula Posts: 51Member
    edited May 15

    I was looking for my old files and videos to see what I have done with the Vehicle Body node, and I didn't find anything. Guess I was so frustrated I didn't even bother to keep a record of anything.

    When it comes to physics in game engines, I've learned that you have to try crazy values to see what happens. So, have you tried values of friction that are not supposed to be used?

    For example, in the physics material docs, the item for FRICTION says that the minimum value is 0, and the maximum is 1. But you can use values like 2 or 5, and it does makes a difference. I remember testing some absurd values for vehicle wheels suspension, and the good ones for my setup were way different than the recommended.

    PS: just noticed that the docs for Vehicle Wheel friction slip tells you to use a value of 1.0. And the default is 10.5...

Sign In or Register to comment.