GT Advance Remaster [My Personal Unity Racing Game]

  • Thread starter GTvsForza
  • 84 comments
  • 17,666 views
As great as that would be it's too big an ask I think.
I wouldn't even know where to start. I've never seen tutorials on how to make a track generator for Unity. There are assets that do that for 3D, but I don't think there's anything for 2D.
 
March 2020 Update Now Available!

16 New Cars!!! (JDM Legends)
Mazda MX-5 (NA, NB, NC and ND)
Mazda RX-7 (FB, FC and FD)
Nissan Skyline (R31 GTS-R, R32 GT-R, R33 GT-R and R34 GT-R and R35 GT-R)
Subaru Impreza 22B
Toyota Supra (A70, A80 and A90)

OTHER FEATURES
- Updated the main menu screen so it now shows the current version
- Changed main menu background to coincide with the latest update

WHAT'S NEXT
- Next month will be the one year anniversary of World Tour's development! Don't know what I'm going to add, though...
- More tracks are planned (takes a while)​
 
Nothing really new to report. There is a small, yet big improvement that I am happy to introduce to the game: WORKING SHADOWS AND BRIDGES!

I currently have Meridian and Tsukuba reworked with the effects, but Brands Hatch will take a while with all the trees...
 
Another update:

Working on adding a lap timer. It does work, but it's the trigger to stop the count that's giving me trouble...
 
Update #2:

Timer now works! I even have a best time display, however it resets whenever you pick a new car for the same track. Probably something easy to fix with PlayerPrefs.

And another thing I am happy to add, but I'll let you guys guess :)
 
World Tour One Year Update (4/28)

What's In It?
- New Shadow and Bridge/Tree Effects to make the tracks more 3D
- Lap Timer with Best Lap
- All cars now have ENGINE SOUNDS! Courtesy of the Real Engine Sounds Asset pack by
slaczky - Skril Studio
- To go with the new engine sounds, I also added gearboxes for the cars with the new Gear Display!
- MPH and KPH speed display at the same time now!


Next Update?
- If I can't get Goodwood to work in time, it'll come next time with maybe a second track
- I'm really wanting to re-texture the tracks to make them fit with the car designs more
 
Haven't touched this game for a while. I managed to get an updated car physics system working that gives you a bit of a drifting factor. However, there are no brakes. I'll try to find a way to implement it.

As for tracks, I'm giving up on Goodwood for now and probably will add something else.
 
Found a more efficient and clear way to get tracks loaded in. Goodwood is almost ready and I think I'll add another one or two to make up for the long wait :)

I might toss in a few more cars as well. Expect a late September/ early October release.
 
So, bad news and good news:

Bad news is that I'm going to stop developing this game. Getting the resources is tedious and expensive on the download side.

Good news is that I'm going to rework this into a 3D version with my own car and track models!

Version 1.0_Dev
- 1 car (Ford Focus RS)
- 1 track (Fuji Speedway)
- Dynamic Time Implementation (added a slider to change the time. This is temporary until I get an updated track menu scene)

No download yet, want to make sure everything works before I decide to share it.
 
Here's a demo of the current build.


Still need to work on adding car audio. Also have to find a way to "flatten" the track because of the invisible bumps. The lights are toggleable.
 
Little update:

Tweaked the lighting a bit so it's not completely dark at night. Also added a functional clock that can be toggled between 24 and 12 hours. What I'd like to add next is an actual moon in the sky. Unfortunately, Unity can't support multiple directional lights that well.
 
@GTvsForza
I was working on a driving simulator in Blender a few years ago, before they decided to scrap their game engine. I mainly focused on simulating the engine and transmission. I had ignition, idling, starter engine, engine braking, manual clutch and manual gearbox (including a reverse gear that was very painful to implement :lol:). So if you run into some drivetrain simulation problems, I’ll be happy to help!

Here’s an example of what my driving sim was capable of:

 
Cool! Problem is that I don't use Wheel Colliders with my car. It's basically a cube with arcade car controls.

I already got the engine sound implemented, it's just a matter of getting the pitch right to mimic the shifting.
 
Cool! Problem is that I don't use Wheel Colliders with my car. It's basically a cube with arcade car controls.

I already got the engine sound implemented, it's just a matter of getting the pitch right to mimic the shifting.

If you don't have actual gear shifts you can mimic the sound by mapping the pitch to a graph of a function of speed. I made an example where pitch = speed*gear_ratio/k, where gear_ratio is a number between 1 and 0, where first gear has a ratio of 1 and each new gear has a smaller number. For example:

1st gear = 1, 2nd gear = 0.6, 3rd gear = 0.4, 4th gear = 0.3, 5th gear = 0.2.

The constant k is the max speed of first gear, in this case I set k = 45 because I want first gear to achieve a maximum speed of 45.
I suppose the easiest way to do this would be to have a condition that says something like (in pseudo code):

if speed > k/0.2: gear_ratio = 0 (this would give no engine sound if the speed is greater than the top speed of the car)
else if speed > k/0.3: gear_ratio = 0.2
else if speed > k/0.4: gear_ratio = 0.3
else if speed > k/0.6: gear_ratio = 0.4
else if speed > k/1: gear_ratio = 0.6
else if speed > 0: gear_ratio = 1
else: gear_ratio = -1 (this would be a reverse gear)


Then calculate: engine_pitch = speed*gear_ratio/k


pitchandspeed.png



It will probably sound a bit strange when you're right at the shifting point, so if you want you could implement a special shift sound that plays just when you pass the shifting point, to mask the jump in pitch. You could do that by storing the gear ratio from the previous physics tic and checking if it's the same as you have in the current tic:

if gear_ratio is not equal to old_gear_ratio: play shift sound
old_gear_ratio = gear_ratio
(this is to save the current gear ratio to the next physics tic)

The volume of the engine sound I'd set to equal (pitch+throttle)/2, so the volume would be the greatest when you're at max revs and on the throttle. Alternatively you could add weights to each component so that you can decide how much each aspect will influence the volume:

volume = (w1*pitch+w2*throttle)/(w1+w2)

where w1 and w2 are the weights (which you can set to basically any number greater than zero). Perhaps you want the throttle to have a bigger impact on volume than the pitch has, for example.

Of course, once you have all this you can basically use the same method to implement actual gear shifts too :D
 
Last edited:
It is a testament to how far game-making engines have come that there are as many GTPers working on (or having released) something in full 3D. 👍

@GTvsForza -- I began with a sliding cube. :) Personally, I recommend going your own way instead of built-in Wheel Colliders. My impression is that they're a can of worms, intended more for games in which vehicles are incidental (eg. shooters) than for racing game fans like us.

@eran0004 -- Drivetrain simulation is tricky, particularly reverse! As familiar as I am with how engines and drivetrains work, I could not wrap my head around translating it into programming without an example to get me started -- it was simplistic and didn't bother with reverse, so it became more of a template.
 
Personally, I recommend going your own way instead of built-in Wheel Colliders. My impression is that they're a can of worms, intended more for games in which vehicles are incidental (eg. shooters) than for racing game fans like us.

Yeah, that’s the problem I had with blender. I wanted to access the tyre model to modify how they gripped the road but I couldn’t find any information about how to do that.

@eran0004 -- Drivetrain simulation is tricky, particularly reverse! As familiar as I am with how engines and drivetrains work, I could not wrap my head around translating it into programming without an example to get me started -- it was simplistic and didn't bother with reverse, so it became more of a template.

For me it was tricky at first, I encountered some hilarious bugs with my first attempts. But once I got better at programming and more methodical in laying out the physics of the drivetrain it simply became a matter of using a negative gear ratio for the reverse gear.
 
Just do keep in mind that I'm not the best at track design. That Fuji in my clip was made like 5 years ago. I want to remodel it to make it match up a little bit to the real track. It will be a while though, so I might make a smaller track for testing like Tsukuba or Lime Rock.

The cars on the other hand are a joy to make. I plan to remake the Starter Pack from the 2D version, but for now I have the Focus for testing.
 
@GTvsForza -- You are of course welcome to take a look in my devlog thread. I've begun outlining what I've learned as I've been working on my project, with links to resources you should surely find useful. :)

For me it was tricky at first, I encountered some hilarious bugs with my first attempts. But once I got better at programming and more methodical in laying out the physics of the drivetrain it simply became a matter of using a negative gear ratio for the reverse gear.
Along the way I've learned that plenty of things become a fairly simple matter once you've accumulated a solid foundation.
 
Last edited:
I am getting stupid close to perfecting the gearing. Once I get it finely tuned, I'll probably put an update video up.
 
I'm really tempted to get an API key for the Google Maps SDK, since it's compatible with Unity. If I do that, I can just type in the coords for the tracks and everything will be loaded in.
 
Last edited:
If anyone is wondering, I made the PT Cruiser in like half an hour. It's low poly, so I don't need to worry about too much detail.

Next cars to add are:
Dodge Dart GT '13
Ford Fiesta ST '13
Toyota GR Yaris '20
Volkswagen Beetle Turbo '16
 
I added the lap timers and even got a working countdown. However, as I was working on a finish script, something happened to the car controls.

The tutorial I followed was showing me how to disable the controls of the car for the countdown and finish. The countdown worked before I implemented the finish, now the car isn't moving when the race starts.

I spent quite a while tonight trying to get the controls working again, but I'm burnt out now. Maybe I'll tinker with it in the morning before I leave for work.

EDIT:
It was as simple as retyping the speed variable in the Inspector panel :dunce:
 
Last edited:
Next demo video will feature the car (and possibly track) selection. Just need to finish the models and write up some scripts.
 
Mapbox just revealed their new Tiling Service feature. So, if I really want to (which I might), I could make my game "open world".

It would almost be like Monster Milktruck :lol:
 
Last edited:

Still need to work on a garage-like setting for the background. Also am going to tweak the Manufacturer selection so it'll be on the side and have a vertical scrolling effect with the cars shown on the side.

And yes, the Chrysler Imperial Airflow is going to be in the game. I want to add as many vintage and whacky vehicles as possible. So, expect to see some other unique manufacturers you don't normally see in other car games :)
 


I'm getting close to a download, just need to add some tiny details and it'll be ready by hopefully next week!

As you can see, I have "teased" the first two car packs I'm going to bring into the game. Here are the rest of the cars:

Oldies and Goodies
- Buick Roadmaster '36
- Ford F100 '48
- Oldsmobile Special 66 Station Wagon '47
- Studebaker Starlight Coupe '50

The Rising Sun
- Honda NSX '90
- Mazda RX-7 (FD3S) '00
- Mitsubishi Eclipse GSX '99
- Toyota Supra (Mk. IV) '93

Don't expect these packs to come out soon, they take a while to make.
 
Last edited:
I'm going to be using GitHub as the download source for the game. It should be ready either tomorrow or Thursday.

I also added another preview car (although it's clearly not a car ;)), I'm sure you'll get a kick out of it.

EDIT:
My first build was messy. I forgot to anchor the UI objects so you can play on any resolution, so everything was scrunched in the center. I also want to add a little thing that once the event is done, it'll return you to the selection. Because of this little bump, I'll push the release to this weekend (or later depending on how I feel after my first COVID shot...)
 
Last edited:
Back