GAME DEVELOPMENTSHIPPED

Stop Lickin' POP

A Breakout-style arcade game in Elm. I figured out how the framework routes messages between scenes by reading its source code, and built the tadpole and egg enemies and the random level layouts.

ROLECore mechanics programmer
TEAMTeam project, SJTU
TIMELINEMay 2025 - Aug 2025
CATEGORYGame Development

5+

CORE SYSTEMS OWNED

Reverse-engineered

FRAMEWORK DOCS

Overview

Stop Lickin' POP is a Breakout-style arcade game made in Elm with the Messenger framework. It uses the same tools as GhostBust Hotline, but it's a completely different kind of game. GhostBust was about atmosphere and AI. With this one we wanted to make a really old genre feel fresh, using random layouts and enemies on top of the usual brick breaking.

What I built

  • The core mechanics: paddle movement, the tadpole and egg enemies (they hatch and swim down the screen), falling power-ups with flip animations, and the game over and restart logic.
  • Message routing between scenes and layers. The Messenger docs didn't say much about this, so I read through the framework's source code to see how messages get passed between scenes and layers, and then built our scene transitions based on what I found.
  • Random brick layouts and "Did You Know?" facts. We looked at what makes arcade games worth replaying and decided that every run should start with a different wall.

What I learned

I got a lot better at reading other people's source code. Elm helps with that because everything is explicit, so following the types through the framework was slow, but it always got me to an answer in the end.

APPENDIX A // MEDIA

IMAGE SLOT · AWAITING UPLOAD

FIG.01 · GAMEPLAY WITH THE PADDLE, BRICKS, TADPOLES AND EGGS

IMAGE SLOT · AWAITING UPLOAD

FIG.02 · RANDOM BRICK LAYOUT GENERATION