Making the HackMIT Club Penguin 🐧 dream come true.
Make sure you have Go installed. If you don't have Go installed, click here. (If you're on macOS, I recommend using Homebrew)
Make sure Docker is installed, and that the Docker daemon is running. Then, run the following command to start an ephemeral database in the background:
docker run -dp 6379:6379 --name playground-db redis:latest
You'll need our secrets file. If you want to use your own secrets, copy .env.sample
to .env
and paste yours in there. If you need to get the HackMIT ones, message Jack.
To build the project, just run the following command:
go build .
To run the project, you can then just run the binary:
./playground -reset
Use the -reset
flag the first time you run Playground in order to reset the database to its initial state. After you do that once, you don't have to use the flag anymore, unless you want to wipe everything.
Check out the playground-frontend repo for more details about how to set up the user-facing side of this project.
In the coming weeks, we'll be cleaning up the project to a point where it isn't nearly as embarrassing as it is now. If you find any bad coding practices (spoiler: you will), we apologize — much of this project was completed at the last minute. Once we have a chance to clean everything up, we should be ready to receive some contributions!
In the coming months, we plan to clean up this project and get it to a point where you can run an event by just adjusting some config files! This won't be ready for a little while though — stay tuned for more info.
Building it was fun! Also, we didn't want to pay for one, and we didn't love the options that were available back in April, when we decided to take on the project.
We used AWS Elastic Beanstalk during HackMIT in order to handle the load from thousands of concurrently connected users — our project is set up to have multiple ingest servers running in parallel. We'll publish more details about this soon.
Feel free to ask us on Gitter! You can also email us at team@hackmit.org.
Playground is available under the MIT license. See the LICENSE file for more details.
This project wouldn't have been possible without our supportive and energetic team and the greater open source community.
- Jack Cook (HackMIT co-director, project lead)
- Julia Gonik (Jukebox, workshop attendance)
- Natalie Huang (A billion last-minute fixes and improvements)
- Jianna Liu (Character profiles)
- Kat Liu (Settings, Twitter integration)
- Mindy Long (Chat, account creation, world map)
- Michael Lu (Hacker feedback)
- Zoë Marschner (Three.js wizard 🧙♀️)
- Shirlyn Prabahar (Quill SSO)
- Hillary Tamirepi (Playground explorer)
- Allen Wang (Sponsor panel, hacker queue)
- Eva Yi Xie (Pop-up designs)
- Angela Zhang (HackMIT design lead)
- Soomin Chun (Town square, nightclub, stadium)
- Sean Knight (Character selector, sponsor areas/buildings)
- Savannah Liu (Town square, character profiles, hacker arena)
- Gary Nguyen (Non-profit village)
- Aliza Rabinovitz (Settings, achievements, town square 2)
- Anna Sun (Chat, coffee shop, town square 2, stadium interior)
- Eva Yi Xie (Icons, pop-ups)
- Jessica Xu (Icons)
- “Done For You” sound effect, Notification Sounds
- “Beaver” 3D asset, Poly by Google
- Original character model, Quaternius
- Several icons, iconmonstr
- Many open source frameworks