One club meeting. One haunted canvas. Everyone leaves with a game where you click the ghosts before the clock runs out. Beginners finish it; everyone else breaks it in new directions.
Fork the p5.js starter and code a ghost or Halloween-themed game in the meeting.
Get the core loop working end to end: start screen, play, game over.
Show it off at the showcase and get candy on the spot, no follow-up needed.
Ghost Hunt is a click-the-ghost arcade game with the smallest possible core loop: something spawns, you click it, your score goes up, a timer ends the run. That loop takes about 30 lines of p5.js, which means everyone in the room can have it working in the first half hour, and the entire rest of the meeting is theirs to spend making it their own version of spooky. The premise is simple: ship a ghost or Halloween-themed game in p5.js, get candy. It's a mini YSWS, same shape as a real Hack Club ship (build something, ship it, show it off), compressed into one meeting instead of one summer, with the reward handed over in person instead of mailed.
Build Ghost Hunt: a 2D browser game where ghosts appear on screen and the player clicks them to score points before time runs out. Start from the shared p5.js template, get the core loop running, then spend the rest of the meeting adding upgrades from the menu. Ship something playable, get candy: a small finished game beats a big unfinished one, and only shipped games count.
Written for a 90-minute meeting.
Play the finished build on the projector: ghosts, fog, a jump-scare. This is the hook, not the tutorial.
setup(), draw(), mouseClicked(), random(), dist(): the five functions that run this entire game.
Everyone opens the shared p5.js Web Editor sketch, hits Fork, confirms it runs, clicks one ghost.
Pick upgrades from the menu, code, playtest yourself. This is the bulk of the meeting. Protect it.
Paste your share link into the one-question form. Link stays live even if the code isn't "done."
Three volunteers demo live. Popcorn shoutouts: Spookiest, Most Creative, Most Polished.
Hand everyone a working, boring game. Boring is the point: the upgrade menu is where it gets fun.
dist(mouseX, mouseY, ghost.x, ghost.y) < ghost.r removes it and adds to score.millis().Zero install, forkable in one click, and the share link doubles as the submission link. Keep a GitHub Pages / Glitch option on hand for anyone who wants real version control.
Pick from lower tiers first: they're what make a base game feel finished.
Give each ghost a velocity and bounce it off the canvas edges instead of sitting still.
A spawn blip, a click pop, a game-over stinger: three loadSound() calls.
A real title screen and a restart button, not just a console log when the timer hits zero.
Flash the score text or the ghost itself on a successful hit: a one-line size/color pulse.
Fast ghost worth more, slow pumpkin worth less, bat that costs you a life if it escapes.
Lose a life when a bat crosses the screen unclicked; game ends at zero, not just at 0:00.
A rare pumpkin that freezes spawns for 3s, doubles points, or clears the whole screen on click.
Shrink the spawn interval as millis() climbs, so the back half of the run is harder than the front.
A big ghost with an on-screen health bar that takes multiple clicks and has its own attack pattern.
A semi-transparent particle layer for fog, a screen-flash for lightning, a full-screen sprite for a miss-streak jumpscare.
Persist a top-5 list across runs so the leaderboard survives a refresh.
Consecutive hits within a short window stack a score multiplier; a miss resets it to 1x.
YSWS (You Ship, We Ship) is Hack Club's ship-something-get-something model. Here the trade is concrete: ship a ghost or Halloween-themed p5.js game, get candy. This meeting compresses the usual weeks-long YSWS loop into 90 minutes: the "ship" bar is a working link and a repo, not a finished product. The point is that everyone actually finishes and submits something real, not that it's polished.
Anyone at the club meeting. No prior JavaScript or p5.js experience needed: the tutorial builds the base game from a blank sketch.
For unblocking a single line, sure. Not for writing your upgrade. The point of the meeting is that you wrote the thing you're showing off.
Ship what you've got. A working base game with zero upgrades still counts: the bar is a playable link, not a polished product.
Talk through problems together, but write your own file. Two people submitting the same code both need to have actually built it.
The end of the meeting. Submissions and candy happen live at the showcase, not after the fact.
No. Everything runs in the p5.js Web Editor in a browser tab.