Week 5 – Midterm Progress

The Concept:

For my midterm project, I want to create a scooter game inspired by something I have noticed a lot since starting university, which is how chaotic scooters can be around many university campuses. There are always people riding around, almost crashing into each other, going into bushes, or trying to avoid people walking in front of them. I thought this could be turned into a simple and funny game based around trying to survive riding a scooter through campus.

The player will control a student riding a scooter and use the left and right arrow keys to move around different obstacles. The main goal is to survive for as long as possible and get a high score. The player will have three lives, and crashing into things like bushes, students, or other scooters will make them lose a life.

However, I also wanted there to be something unexpected instead of the game only being about avoiding everything. One idea professor Mang suggested was making professors worth bonus points. If a professor appears, instead of avoiding them, the player can purposely crash into them to gain extra points. I think this makes the game a little more funny and gives the player a reason to pay attention to what is coming towards them rather than treating every object in the same way.

Start Screen and Instructions:

The game will begin with a start screen that explains the controls and objective. The player will be told to use the left and right arrow keys to steer the scooter, avoid obstacles, and look out for professors to gain bonus points. The game will only begin once the player presses a key, such as SPACE.

Main Game:

The game will be from a top to down perspective, with the player and scooter towards the bottom of the screen. Different objects will move down the screen towards the player to create the feeling that they are riding forward through campus. These could include students, bushes, other scooters, and professors.

As the player continues, I want the game to gradually become more chaotic, with obstacles appearing more often or moving faster. The score will increase as the player survives, while hitting a professor will give additional points. The player will have three lives, and once all three are gone, the game will end.

Game Over and Restart:

Once the player loses all three lives, they will reach a game over screen showing their final score and possibly other statistics such as how many professors they managed to hit. There will also be an option to play again without having to restart the entire sketch.

Code and Design:

For the code, I am planning to use a class for the different obstacles that appear throughout the game. The objects can have different types, such as a student, professor, bush, or scooter, while sharing things like their position and movement. I also want to use an array to keep track of the different obstacles on the screen.

Visually, I want the game to look like a university campus from above. For now, I will probably use basic shapes while testing the game, and later I want to replace some of them with images and add more details to make the campus environment feel more complete. I also want to add sounds such as a crash sound, scooter sounds, and possibly a different sound when the player gets bonus points.

Most Frightening / Uncertain Part:

The part I am most uncertain about right now is collision detection. Since most of the game depends on the scooter either avoiding or hitting different objects, I need the code to recognize when the player actually touches something. I also need different collisions to have different results. For example, hitting a bush or student should cause the player to lose a life, while hitting a professor should give them points instead.

Another thing I am slightly worried about is having multiple objects moving on the screen at the same time without making the code too complicated, especially since they will have different effects when the player interacts with them.

What I Will Do to Reduce the Risk:

To reduce this risk, I want to start with a very basic prototype before working on the final images and design. I will first create a simple player using a shape that can move left and right using the arrow keys. I will then make one obstacle move down the screen and test whether the program can recognize when the two shapes collide.

Once I get this basic collision working, I can start using the same idea with different types of obstacles and eventually replace the basic shapes with the actual images I want to use. This way, I can make sure the main mechanic of the game works before focusing too much on how everything looks.

// check if player hits obstacle
  if (
    playerX < obstacleX + 50 &&
    playerX + 40 > obstacleX &&
    500 < obstacleY + 50 &&
    570 > obstacleY
  ) {
    textSize(40);
    text("CRASH!", 220, 300);
  }
 }

Leave a Reply