Midterm Project: Face Pong

Groupmates: Christina, Esther, Syam.

For our midterm project, we did a Facepong game, where a ball bounces around the screen and the paddle is the face through face detection. To score points, the player has to hit the ball with the paddle. However, if the ball touches the bottom of the screen, a point will be deducted.

To increase the difficulty, there will be different stages where after reaching certain scores, like the ball getting smaller, the paddle getting smaller, and also a wall coming down from the top of the screen to make the play space smaller.

What went well? What didn’t?

Even when we split the work amongst ourselves, there was no issue when combining codes as we took most of our reference from the same source and the coding style and how we organise the code is similar between 3 of us.

The main challenge for the coding is still definitely how to make it work as a lot of the codes in a way overlaps each other. If we tweak one code to fix one problem, it will mess up the other codes and we would need to frequently backtrack our process if we were to make any changes.

Who did what?

Christina did the hardest one, in my opinion, which is the face detection. She faced the biggest problem but managed to overcome it.

Esther did the shrinking effect, where it would be applied to the ball and the paddle after some time which is to increase the difficulty.

As for me, I did the wall that comes down from the top of the screen. I also did the scoring system, where a point will be added whenever the ball hits the paddle and be deducted when the ball touches the bottom of the screen.

What major difficulties were there?

There are quite a few difficulties faced.

  1. The ball keeps going through the paddle, in between the top and bottom of the paddle, and every time that happens the scoring system adds multiple points.
  2. Initially, we wanted to add a game over + lives function, but then we realise that would make the game almost unplayable as the ball will keep falling to the bottom.
  3. The mirroring function did not work properly so we had to look for codes online to see how to fix it. This took the longest to fix.

Click here to see the issue we had with the face detection and mirroring.

What problems still exist? How might you solve them?

The paddle and the ball would still glitch when interacting with the ball. We might need more time to fix this with trial and error.

How would you move this project forward?

Would definitely still try the lives system which would make the game more challenging. Adding more levels would be awesome too, like adding more obstacles and challenges or objectives would make the game more interesting. Sound and music could be added to make the game more fun too.


Graphics done by Christina.