Thinking of SweetRide before the end of Fall 2015

At the end of this semester, I want to summary what I got in this semester on the thesis project.

At the start of this semester, I took over the car physics of our game. I have to say that I was a fresher in the past. To start as to do a good car physics is a task full of challenges.  Although we got two unity plugins and many books as references,  it is still a very hard task for me. Luckily, as time goes on. I made part of it! Now we can have a very stable and easy control car for the player. Because I made the the tires more sturdy, the car will not slide easily. What’s more, the car will be able to brake based on the current speed so that the player can stop it quickly even if it is very fast. Those features are exactly what our designers want to see. Because I know how to make the car to offer different feelings to the player, I am very happy with it.

However, for now I think we still have some problems that we should fix as soon as possible:

  1. The car is not stable if we offer it a force or velocity. This is part of our gameplay, since it is not stable, we really should take care of it in the next steps.
  2. I want to try to implement MarioCar’s drifting effect. Because when the car is turning at the corner, it is still hard to turn. Now we only offer player a very flexible car so that the player can control it easily and it is very hard to fail when they turn. However, I think it should be better if we can test some skills of the players driving skill so that we can add more elements to the gameplay and I think that’s what we want to see in the future.
  3. We should take care that do not do different pitches anymore. At this time, we only have about one semester for this thesis project. So we really should focus on the fun part of this game and iterative it as much as possible. As an engineer, I will take more times on the car control feeling. If I can make the MarioCar’s drifting, I think we will be able to try much more gameplay in the game. So I planed to try the drifting effect during this winter holiday. Hope I can figure it out!
  4. We need to slow down a little bit when we want to make some big changes to our game. I think we really should try to see what we can do in current gameplay to make it better, rather than just change it to a different pitch. Because we are really running out of time at this point. So hopefully everyone will agree with me and focus on the iteration and polishment of the game.

Anyway, we really did a lot in the past months. Now it is time to take a little break and start the final rush. Although we have tons of problems, I think our team is an efficient and passional team. We really need to improve ourselves and the project. But I think we can do it.

That’s all. See you next time!


Single Player Mode Again

Last time when we had the meeting, I said that we should keep the game for free because we were a 2-player game, so it will be very very hard to advertise it. Well, after 2 weeks of development, we think maybe it’s time to be a single player game, but a 2-player game anymore.

Because it seemed that it is not necessary to have a builder player.


Personally, I think switch from the 2-player mode to the single player mode is totally fine. It is very rare to see a game that you need to take care of both the track build and driving at the same time.

Next week will be the EAE Open House, which means we will have many different audiences come here and test our games. Because we want to get as much feedback as possible for our current direction, so we really want to show what we have right now on the EAE Open House.

A Busy Fall Break and IGF Submit!

After a very very busy week, we, the Team Rainbow Goats submitted our game, Sweet Ride to the IGF! Here is the link of it SweetIGF.

At this moment,  we should really take a little break. Because we just passed a very busy and pressing week. Although we have a fall break before the IGFsumbit, and because of the IGF submit,  the whole Rainbow Goats team decide to work on our game! No matter how many other stuff we have to do, we were focusing on this project and we made it. Although we have to keep working on our other stuff and we are really really tired, it is worthy to have such an exciting moment.

Because we are a two player game right now, we have to deal with either the gameplay of builder and the driver. I am working on the driver parts because I am still working on the car physics. Now we have 2 totally different cars and they will offer players different kinds of feelings.

The first choice is blue rider. This is a F1 car so it can run very fast. Because we added some sugar cubes on the tracks, so the driver player needs to avoid the sugar cubes and it offered player more difficulty to stay on the track.

On the other hand, the Monster Truck, is a very powerful vehicle. It cannot run as fast as Blue Rider, but it can crash the sugar cubes when it hits them. And, because the Monster Truck will be added some shacking when it hits the sugar cube so  the player still need to take care of the sugar cubes on the track. I think we found a not bad balance between the 2 different vehicles. If the player still failed to stay on the track, we still rely on the “save” function  of the builder player to build a temp piece of track to save the driver player.

Based on our gameplay test, I think most of us enjoy this gameplay. When you are playing with others, it is very easy to make a funny experiences because both me or others can make some mistakes so that we will feel fun or angry or any feeling from this process, which means we are devoted to the game.

Whatever the result is, I think now I should have a good sleep and leave this project alone for a few days.

That’s all. See you next time!


Some Helpful Hints for Players

In recent weeks, we planed to add some helpful mechanisms for our games for the players to understand the space relationships and the target in the level. Because we are a 2 player mode game, so we want to add something helpful for players to finish the level. I’ll take over these features to which assists both the builder player and the driver player.

  1. The first kind of assistance is Direction Rectify. It will adjust the direction of the car’s forward direction to be assist with the direction of the best track pieces.

2.  Direction Arrow for the Builder.

3. Direction Pointer for the Driver.

CrashCity? WarmTirez?

Finally, the fall semester has started! So our thesis game team, Crash City, are considering whether we should change the our project’s name from Crash City to Warm Tirez.

Because our gameplay has changed a lot during the summer semester.

During the semester, some of our us in our team (including me) decide to try something new for our team.  At the end of last semester, we showed our Crash City on EAE day. In this version, our gameplay is:

Players can put down some signs (speed limit, stop, turn left/right) to guide the cars running on the road to rush out and collide with pedestrians and buildings in the city. 

Unfortunately, many players feel boring or confusing when they are playing the game.

However, players love the feeling that when the car actually rush out the track/road and crash with pedestrians and buildings. We also love this kind of feeling very much.

In this case, although we were not quite sure whether the current direction is 100% what we want, we still decided to do something new in the summer to see if we can find some better gameplay.

Now our current gameplay should be:

A puzzle game of building track piece and running car on it, to collide with some buildings/arrive at some destination…, to satisfy the targets in the Levels.  

Why we want to go this way? Because we think we need some mechanism to solve the problem that players should be able to control the car, and not to feel boring at the same time.

The Hot-Wheels, reminded us this idea:

Image result for Hot Wheels


This is simpler both for players to learn and our team to develop, because in most cases, the Hot Wheels track is one-way only, and players will directly know where the cars on the track will go. But our old solution, when the cars are running on the road and letting players use traffic signs, it’s hard for them, especially for younger players, to predict what will happen in the next.

So I think this change is a correct one.  And now we already have a Simple Track Building System, like:




You can drag the piece to attach it to the former piece. There are many different choices, straight, rump up/down, left/right turn. After the track building, the car will drive on it! Woo! The AI will guide it automatically. Like:




One important thing I want to mention is that, those track pieces  are based on the same united grids. Each grid’s size is 10 * 10 unity units. In this case, we can make sure the different two tracks will be able to attach with other pieces. We can also make different sized left/right turn tracks, so that we can make many different left/right turn track pieces for players. As you know, some left turn will allow the car to pass with a longer turn radius, which means the car can pass the turn faster and easier.

What’s more, we also decide to use the Craig Raynolds’s Path Following algorithm to guide the car. So we also saved some information on the track pieces. Like:




OK, now let’s talk about my current tasks: Car physics in our game. So far, I take over most of the Car Physics in our games. It seemed that I am the only one who want to do car physics in our team :-).

A little problem for me is that: I am not a physics major student,  anyway, after a few days reading of Car Physics, more and more stuffs are coming clear to me. Because we are going to build our car based on a plugin Edy’s Car, I also need to understand how this plugin implemented Car Physics, so that we can make what we want based on it.

In Edy’s Car, I  must understand how its VehicleController works.  For the VehicleController, we can adjust many different vehicle’s attributes: WheelCollider, Center Of Mass, Max_Drive_Force, Max_Speed, Friction, Anti-Roll, Breaking force… In the default Edy’s car sample, the vehicles can run very stable. It seemed that I don’t need to do anything XD.

However, we met a problem very soon (of course). Because Edy’s car is simulating real car physics, but we are simulating the cars both Hot Wheel and real. What’s their difference?

Their difference is: in hot wheels, the cars will run very, very fast, or just following the track. If it’s fast enough, it will pass through the Wheels and the cars are also running very strictly following the tracks. In our game, we want to have the hot wheel’s crazy speed, but we also want to make our car looks real. So based on our target, I think this is what I should try to satisfy:

The car should be able to run very fast, at the same time, if the speed isn’t too “crazy”, it should be able to get through most of the track pieces we have, like 90-degree-turn tracks.



So I think that’s a problem I must solve. Based on the car physics I learned,  the car’s wheel traction, coefficient friction between tire and road, will decide whether the car will side or not. If the friction is large enough, the car will not slide. The larger the coefficient friction between tire and road, the more torque on the vehicle’s wheels can be. Suppose there is no slide on the tire, when the vehicle is doing High-speed turns, the lateral force will be the reason to steer the car. The function of lateral force should be:

lateral_force = mass * velocity * velocity / radius_of_turning – MuK * mass * g * cos(Theta)

MuK is the coefficient friction between tire and road, Theta is the angle of the slope where the vehicle is staying. radius_of_turning is decided by the distance of front and rear wheels and the turn angle Phi. Based on different data I read, actually the Phi will be different when the car is running at low speed or high speed.

After reading those materials, I tried to get rid of the slide force from Edy’s car physics. Because Edy’s system is different with what I read, I offered the car more downforce, to offer it the ability to go a high-speed left/right turn. It’s not perfect, and I have more things to improve. But this is my first step on the car physics.

Like this, you can see that the vehicle can even do a 90-degree-turn with a driving speed more than 170 km/h.


This is really crazy and very hard to control! It can never happen on a real car. Although we may not use such a high speed in our game, but I think I can talk with our designers to see what’s the feeling they want, what’s the range of speed they want. That’s totally I think what we need.


That’s all. Looks like a good start, isn’t it?

Thanks very much for your reading! See you next time :-).




Another Busy Tuesday

Because Mate will go to Hrvatska, we want to make a built version so that we can show it at that time. On this Tuesday, our Crash City team worked together and tried to make it down.

At this time, I have a lot of troubles of fixing bugs and merging. I really annoyed by a bug caused by Unity’s Collider.

The Bug is: When we use Collider, the Center variable will get the position in world coordinate to you. However, we you are using the BoxCollider, it will not, it will return you the offset of the BoxCollider center. In this case, I also the fact that the center of a Collider may not be (0,0,0), so my Hydraulic sign was broken.

Thanks to Yuchen and Nick, finally I fixed the problem. Now everything looks so good!


New Signs

Today, our Crash City team worked together to develop our game.

We separated into different groups, level design/coding/Artist.

Because I am working on the AI, so I need to figure out new Interesting signs. From this time, I knew that our game would go to another branch: we will not do serious anymore, instead, we will try to make fun crash and collision in the scene by the interesting signs.

I finished the signs of Mine, Rotating 360 and Hydraulic. The Mine is an area when the car enters will cause an explosion on them. The Rotating360 sign is that the vehicle will start rotating during it locates in the sign’s influence area. The hydraulic is making the vehicle shacking while moving forward.

Right now, I just turn on and off the physics system when the vehicle is influenced by these signs. However, based on our future gameplay,  I think I should talk more about it with Ryan to see how to cooperate the system with Physics.

That’s all. See you next time!