This repository contains the source code for a multiplayer snowball fight game made for the 2022 Winter Carnival, 2023 Blizzards Bash and 2024 Game Dev Club's independent event at Pierre Elliott Trudeau High School.
The client was written in Python using the Pygame framework, and the server is written in javascript, communication using websockets.
It may be evident that the code is completely undocumented and an absolute mess of technical debt, but understand this was made under time constraints.
The server hosted on Heroku will be down after the event is over. To run it yourself, see Installation.
This project is licensed under the LGPL-2.1, please read LICENSE for more information on how you may use the contents of this repository.
Made for Winter Carnival, but it was never played due to an inclement weather day causing the cancelation of the event.
Made for Blizzards Bash 2023, with significant graphics, mechanical, and backend upgrades.
Made for Game Dev Club's independent event in 2024, with tons of quality of life improvements and two new power-ups.
If for whatever reason you wish to play the game after the event, you may follow the instructions below. Again, note that the server will not be up after the event, so you would have to run the server locally.
- Install Node.js
- Clone this repository:
git clone https://github.com/trudeaugamedev/Blizzard-Bash.git
cd Blizzard-Bash
npm install
node server.js
The server should now be started on localhost:1200
.
The distributions connect to the Heroku server which will not exist.
The game is built and distributed for Windows, download the executable by going under Releases and double click the executable to run.
GitHub actions for this repository generate build artifacts for MacOS.
No distribution is available. However, you may run from source.
- Dependency management of this repository is done with Poetry, either follow their installation instructions and initiate a Poetry project under this repository, OR install each dependency manually defined in
pyproject.toml
. python main.py
to run the client, make sure to modify the ip address underclient.py
according to your situation
Run pyinstaller build.spec
and the resulting executable should appear under dist/
.
- Programming by Andrew Wang and Lucas Fu
- Art by Richard Zhang
- Programming help from Martin Baldwin
- Playtesting by our club members! ❤️