January's Game: Water Underground

Water Underground

A micro-narrative powered by HyperCard

My one-game-a-month game for January 2016

I've had a fascination with watching and playing games since I was a toddler. But it wasn't until I discovered HyperCard in fifth grade that I realized I could make games too.

HyperCard is a simple tool for connecting ideas through hyperlinks. As a tool that predates the world-wide web by a number of years, it's a fascinating glimpse into earlier attempts to create nonlinear documents. But underneath HyperCard's monochrome graphics and tiny card-based interface is a powerful and forgiving scripting language called HyperTalk. This was where I wrote my very first lines of code.

Games were a vehicle that taught me to program. My foundation in HyperTalk encouraged me to pick up BASIC and Assembly code on my TI-83 graphing calculator (to help pass the time in dull algebra lessons), which in turn set me up to start building games in Visual Basic on Windows 98, and...you get the idea.

HyperCard represents a turning point for me — the inception of something essential in my life. So for my first game of 2016, I decided to go back to where it all began.


Water Underground isn't much of a game. There's no ending, for one thing. There are also no points to score or challenges to overcome. Instead, it's a throwback to the earliest games I made: tiny, self-contained narrative vignettes full of experimentation and lacking in polish.

There's something humbling about jumping back into HyperCard after nearly twenty years away from it. It took me twenty minutes to find the console (called "message box" here) in order to input the only command I remembered — "set userlevel to 5". As I dusted off my monochrome illustration skills, I began to recall the illustration techniques I'd developed in my earlier years: shading techniques with the spraypaint tool, double-clicking the pencil icon to zoom in for pixel-precise details, creating icons for reusable GUI elements, and so on.

If there's one takeaway I have from revisiting a thirty-year-old development environment, it's this: there's value in revisiting your roots. Given how long it took me to get back up to speed on the simplest HyperTalk conventions, I'm starting to think that ten-year-old who begged his dad to order him a book on HyperCard scripting from Amazon (his family's first-ever Amazon purchase in 1996) was actually pretty precocious. We may get more efficient at handling the stresses of life as we grow older, but for true skill development, there's no substitute for raw passion and enthusiasm.

I have no idea how you can play this game. There are some Mac OS emulators out there, but their legality is questionable. As a result, I'm just distributing the HyperCard stack file here

Tools used:

  • MacOS 9
  • HyperCard 2.4

Further reading:

  • Hypercard.org's HyperTalk Reference (pdf)
  • Wikipedia's article on the HyperTalk language