~/project/sharkcult.md
Shark Cult
Tame sharks for points
- date
- August 27–29, 2021
- type
- Hackathon
- won
- 🏆 Best Domain Name · SharkHacks3
Donald Lee, with Henry Zhou, Matthew Quock

## overview
Built for SharkHacks3, an MLH hackathon over August 27–29, 2021, where it won Best Domain Name from Domain.com.
Ever wanted to start a cult of sharks, or just sharpen your aim? Shark Cult is a browser game: tame sharks for points by clicking them as they leap out of the water.
## demo
## inspiration
Inspiration
The shark theme came from the hackathon. The gameplay borrows from Fruit Ninja, and the collect-them-all loop is straight out of gacha games. We threw Blåhaj in too, because it's a huge meme within MLH.
## what-it-does
What it does
Wild sharks jump out of the water and you tame them by clicking before they get away. You don't have to catch every one, but miss ten and the game ends. Faster sharks are worth more points.
Click a shark and it shrinks, turns cute, and swims back and forth. The more you tame, the higher your score. Fast sharks need quick reactions and careful aim. Don't have that yet? Play more.
## how-we-built-it
How we built it
HTML, CSS, and JavaScript drive the front end. JS spawns the sharks, sends them off in random directions, detects clicks, clears the ones you miss, and tracks failed attempts. CSS handles the shark and wave animations along with layout.
When the game ends you can add your score to the leaderboard. That data runs through Python into a MongoDB database on Google Cloud.
The sharks, clouds, and water were hand-drawn in ArtRage Lite, animated with CSS to give the ocean some life, and the whole UI was designed in Figma.
## challenges
Challenges
Moving and formatting objects on the front end gave us trouble, especially animating the waves and sharks. We don't reach for JavaScript often, so dynamically creating elements and wiring up listeners like onclick and animationend was tricky, and the syntax gap from Python meant a lot of Googling, picking a random list item is just simpler in Python.
The leaderboard was the big one: it wouldn't sort correctly. After hours stuck, we asked an MLH mentor, who pointed us to the fix in minutes.
## what-s-next
What's next
We're keeping it up for a year and collecting feedback from friends. If the reviews are good, we may add new features.
## next-project
VidNotes
Notes that ride along with the video
read the write-up