Author: Tanay Abichandani
My project is 2D rocket league. Rocket league is a pc/console game that is basically soccer, but with cars. It has certain features like boosting and dodging to hit the ball. To find out more about rocket league watch: https://www.youtube.com/watch?v=Vawwy2eu5sA. It is quite a complicated console game, so I definitely cannot implement it in 3D. However, I could make a version of it in 2D, where there is no lateral movement, only forward and back. In this way, you could think of the game as being sort of similar to the app, Head Soccer. So, there would be 2 goals/cars on the right and left side of the screen with the ball in the middle. You would be able to boost and hit the ball, and the ball would obey the laws of physics. It is possible to implement a 2 player version where both players can play on the same keyboard or make a very simple AI, who would act like a bot that would just go to the ball. With graphics and functionality fully implemented, the project would end up looking very nice.
I have a lot of background knowledge in rocket league, the actual console game. I have put in 314 hours into that game, so I definitely know how that form of car soccer works, along with implementing the boosting and hitting the ball features of the game. I have also taken Physics 211 and 212, so I do now how the physics of the game will work and also how to use the physics library this game will need. I do not have any background knowledge on graphics, but I will attempt to learn it in early weeks or try to find images needed for the game. I chose this project because I thoroughly enjoy rocket league and I think it would look really cool to my friends and I if I was able to implement it. During quarantine, it would be a challenge for me to make and I would stay motivated.
I will being using Box2D, a physics engine made for games. It is compatible with this project and can easily be imported into the project. Here is the link to the library: https://github.com/erincatto/box2d. The physics library will be used for gravity, when people boost into the air or when the ball goes into the air. It will also be used for momentum when the ball is actually hit and the lift that the ball gets when this happens.
By week 1, I would like to have all the classes set up. By this I mean car, ball, the window, the goals, boost and the actual game engine. I would also like the physics library implemented in along with gravity done. By week 2, I would like the car to be able to respond to movements including boosting around. When the ball is hit, I would like the ball to move around properly with phsyics. By week 3, I want the game engine and graphics finished. When the ball goes in the goal something should happen and when time runs out a player should win.
If I finish early, I can implement a simple bot AI to play against. I can also implement the ability to use other cars and different types of boosts. I could also slightly animate the boosts when you move. I could also add in the ability to do more advanced mechanics in rocket league like ceiling dodges and flip resets, which would be very difficult. However, I do not think we will reach that point.