playground
Making the HackMIT Club Penguin
Setup
Make sure you have Go installed. If you don't have Go installed, click here. (If you're on macOS, I recommend using Homebrew)
Start the database
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
Set up secrets
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.
Build
To build the project, just run the following command:
go build .
Run
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.
Run the frontend project
Check out the playground-frontend repo for more details about how to set up the user-facing side of this project.
Contributing
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!
FAQs
Can I use this for my own event?
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.
Why did you build your own virtual platform?
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.
How can I deploy this?
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.
I have another question!
Feel free to ask us on Gitter! You can also email us at [email protected].
License
Playground is available under the MIT license. See the LICENSE file for more details.
Credits
This project wouldn't have been possible without our supportive and energetic team and the greater open source community.
Dev team
- 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)
Design team
- 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)
Resources
- โDone For Youโ sound effect, Notification Sounds
- โBeaverโ 3D asset, Poly by Google
- Original character model, Quaternius
- Several icons, iconmonstr
- Many open source frameworks