top of page

Connections Lab: Final Project

Writer: Alexis SandersAlexis Sanders

Key concept(s) and/or intention(s) driving the project. Include any noteworthy inspirations or influences

The reason I wanted to create my pong game was I wanted to build off an already popular game and see what I could use from this class to improve upon it. I chose pong as it's a classic game that everyone knows and add a multiplayer functionality. I also wanted to create something for my friends and I to play digitally since that was how we spent time together over the last year during the pandemic. This is why I wanted to add a chat box and the multiplayer functionality to be able to connect with others.


Production decisions (i.e. technical, design, creative, etc.)

For this project, I decided to use sockets to create the multiplayer feel because that was the sole basis of my project. I also understood sockets and how to use them more then NedDB and the databases. For project 2, I originally tried to code the paddles and the ball separately and then add the p5 play library, but I didn't fully understand how to use the library so it didn't work completely. I then had to come up with something different for project 2 and come back to this project once that project was done.


Once I got the p5 play library working, I used it's examples to create the pong game and made sure it worked before I started adding the multiplayer functionality. I started off trying to add a way for the two users to control their own paddles, but I wasn't able to get that to work. Since we had some user testing coming up, I finished the rough draft and started to work on the user flow and figure out how many game state I would need and how the user would experience my game. I presented that during the playtesting and got some really great feedback on how to improve the game and add different ways to play. Some advice that really helped me finish the project was from Vince, which was to focus on what I could complete in a week that would add to creating a more complete game and not so much the extra add-ons or design as that can always be added in later. I continued working on some of the feedback I received, like adding some sort of landing page, and continued focusing on creating a complete game. I added a start alert with instructions on how to play the game. I wanted to add a timer, but I didn't have enough time to figure out the complete functionality of it. I then added the chat box to be able to communicate with others playing the game and added a end game state and reset button to be able to start the game over. It also helped that I referred back to my game that I created over the summer (linked here) to help make sure all the game states and basic game functions were there.



Major challenges and solutions (i.e. the most difficult aspects of the project for you and how you attempted to address them)

One of the first major challenges I had was getting the play library life as I didn't understand it completely so it wasn't working for me in the beginning, but I eventually got it to work. Once I got a working game in place, I tried to add the multiplayer aspect and use sockets to get the user to control their own paddles instead of having one user control both paddles, but I wasn't able to get that to work. I spend probably too much time trying to get the paddle control to separate for the user but I couldn't figure it out. That was one of the reasons I added the chat feature so there was still a multiplayer function. I also added a feature to share your high score after a game ends so it's broadcasted to all the players on the website. I also wanted to add private rooms to the game, so people could create a room with only people they wanted, but I ran out of time to complete that functionality.


Lessons learned as well as potential next steps if work on the project continues

I want to continue working on this project and continue getting the multiplayer functions to work correctly so two people can actually play the game at the same time and not just have the chat to talk with each other. I also want to work on some of the basic design aspects and create a nicer looking game with better colors so the user can always see the paddle on the screen. right now, there is just a basic color randomizer function that creates new colors every time the page is refreshed, but since the game is on a black background that can create some hard to see paddle colors that wouldn't be fair or accessible to everyone. I also want to finish creating the private rooms to create a space for users who may not want to use the public area.


Any relevant references/resources


Comentarios


bottom of page