We were inspired to make this game because we were thinking about winter sports and how covid might affect people's ability to play sports during this time. Therefore, we brought the game online and made it multiplayer so that more people could connect in a time where we must physically stay separate.

What it does

Our hack allows for a multiplayer game of dogging rocks and shooting the other person while trying to ski down a mountain as quickly as possible. Movement and shooting can be controlled to delay the other player as much as possible. Different settings and difficulty levels are also available.

How we built it

We built our hack using flask as our backend. We also used flask socket io to connect the two clients so that they could play it multiplayer. We also used javascript and phaser to build the front end side of the code to build our game. We used python to decide the different elements that would be displayed throughout the game. We then used socket connections to send all the data of positions and velocities to the other clients. Lastly, we used phaser to test for collisions and javascript to determine to keep track of variables and call functions when necessary.

Challenges we ran into

The first difficulty we ran into was in animating with phaser. It took us a while to find out how to animate and make the basic structure of our game because we were completely new to the library. We then faced difficulty getting our players to sync up because there was barley any frames that were being sent, so the other player would appear at 10fps. We solved this by having the changes wait to be implemented, increasing our fps from 10 to 60 and also increased the accuracy greatly. Lastly, we ran into issues having the position of rocks be hard enough for players to play, but also fun at the same time.

Accomplishments that we're proud of

We are proud of the animations for the ski person we made because we made them by hand and had to implement them ourselves. We are also proud of the game movements because it is able to move at a high fps and change the camera angle according to what happened in the game. We are also proud of the collisions because they are configurable and can provide a solid way to delay the player whenever they are hit.

What we learned

We learned a great amount working on this project. We had to learn phaser from the very beginning because it was our first time using it. We also had to learn about how multiplayer games worked and how to use the websockets to connect the clients effectively by sending predictive movements and correcting them. We also had to learn to animate and draw out our characters. Lastly, we had to learn how to implement logic in our game to make obstacles appear in the right place and collisions occur at the right time.

What's next for Ski Game

The next step for the ski game would be to develop multiple rooms for different parties to play simultaneously. We would also want to optimize the movements more to ensure that there is little to no lag in the websocket movements. This would allow for more accuracy in the positions of the players. We also want to add a way to allow more players to enter the game at once and powerups to make the game more interesting.

Share this project: