splash

WTF was… Vortex95

with apologies to TotalBiscuit

Screenshot of Vortex95

full text of game README

This is the first in, hopefully, a small series of posts covering some old games I got into at a very young age. I've debated the idea of building a game for myself for several years, but the details of graphics programming and the need for enjoyable mechanics keep me from getting beyond the stage of navel gazing for hours.

I didn't really get games in the 90s. Most of the time I did get on a computer I spent with Crayola Art, a children's drawing program that's long been surpassed by Kid Pix and good old MS Paint. I spent some time with a Boggle game, and a bit of Mastermind (that used sound clips from WarGames), and as soon as I could comprehend proper games, I stumbled through Lode Runner: The Legend Returns, which will surely be a game I cover in these posts.

Vortex95 was more of a curiosity when I discovered it. I'm not sure where it came from or why we had shareware of it on the hard drive. It's not a particularly complex game, mechanically similar to Parcheesi. Roll dice, move tokens, wait for the computer to knock you back. Hope to get ahead first. Win. Not terribly exciting for a young Shizuka soon to discover Myst and Riven.

I look back at it now with a little twinge of nostalgia. I rarely played it, often letting it fight itself in the all-AI demo mode. When I did, the games would take much longer than I felt comfortable playing, since the player has little agency in how the game unfolds beyond "I will move this piece". It's more a connection to my childhood before the memory black hole of my high school years, back when Windows 98 was the coolest thing, and the internet was just another source of stranger danger.

It packs a tada noise straight out of Win95, and a thematically similar chime, though uses the system's ding for error messages, leading to a very modern chime mixed in with the oldies. It uses the old WinHlp32 system, requiring a Windows Update just to read the README. Even that README harks back to the simpler years, proclaiming itself a "brand new board game", and difficulty ranging "from Tic Tac Toe to Chess". There's a registration card in both the loose files next to the executable, and in the help file.

So why Vortex95 for a half-baked retrospective? Why not Lode Runner, or Myst and Riven, the games that properly kickstarted my gaming and writing brain?

I think because it is so mechanically simple, with just enough player agency to keep it from being a highly overcomplicated coin flip. Four players, four tokens each, a 5x5 grid (or circle) with each player carving a spiral track to the center. Click a button to roll a dice, either a d6, a d8, or a d12 (not using the D&D dice notation of course). Pick a token to move, with the constraints that you must roll exactly to reach the center, cannot land on your own token, and skip your turn if either or both of these constraints prevent your tokens from moving.

With more players, the 5x5 grid gets rather crowded, yet still manages to develop distinct early, mid, and late game states. The early game has single tokens from each player inching out the board, before getting sent back by other players. When a player finally reaches the center, the tokens start converging more in the center, with the early spaces still getting knocked out easily. Then more tokens reach the center, and the game drags on as a player gets within 1 space of home, then is sent back. Eventually, someone gets the lucky roll and lands their last token home. All random, yet a visible structure forms as the game goes on.

What better to port as a first attempt at game programming?

I just got Design Patterns for my birthday, and devoured it over the weekend, finally properly learning the various structures I've been trying to understand since I started programming. Java gets flak for encouraging AbstractFactoryStrategyBuilders everywhere, but at least now I understand what that could possibly mean, and how somewhere out there is a program that just might benefit from an architecture that obtuse.

And I want to build something with it. With Hikari still down, I don't have a server to toy with, and HikariBot is completely offline for the foreseeable future. I'm slowly growing tired of Java as my platform of choice, not for the boilerplate code (that's what Netbeans is for!), but for the hassle of making sure the version of JDK running is a version everyone is okay with. And with old versions of Java quickly being declared plague carriers, it's hard to settle somewhere that just works.

So maybe learn C++ at last. Or suck it up and live with Python. Maybe Ruby, what with Jekyll (and by extension, This Vortal Cord) powered by it. Or go straight to Javascript and get things running in a browser, instead of the horrifying spaghetti I slapped together in PHP once. Javascript seems like the best option, but wrapping my head around the architecture is daunting. I'm used to Java; classes go into packages, packages are folders, everything falls out of Netbeans at the end as a single jar, that might reference library jars, and working directory is a thing. I had a good thing started with SQLite providing mass storage to HikariBot. I don't even know where to start taking all that workflow and moving to a browser.

But Vortex95 seems like about the simplest thing I could stand to build as a first time Javascript application. Sure I could do a Cookie Clicker clone, or something else equally mindless, but a game with actually interactive mechanics that demands a bit of proper design to not suck? That sounds like a more engaging project overall.

It just becomes a problem of where to start. How to start. I've religiously avoided Javascript since the days of Dynamic HTML, when screwing with the status bar or title was considered fancy multimedia design. Now there's all manner of tools available to JS app designers, web storage, canvas drawing, even good old cookies, but I don't know any of them, or how to use them. Or if I should. That's the joy of programming.

So I might as well start simple.