Journal Entries By Tag: #games

Assorted journal entries with the tag #games.

Now Playing: "Camp Happy Island Massacre" for DOS

TL;DR — I wrote a simple computer game in 1997 called Camp Happy Island Massacre which I now have running online here.

👓 3 minutes

Way back in 1997, I released my first (and, so far, only) computer game, Camp Happy Island Massacre (hereafter referred to as #CHIM), a comedy-horror text game for the DOS operating system. Originally written while I was still in college, the game is about a cursed summer camp and the 3 surviving counselors who try to stop a horrific force before it claims them. I put it out for free (more-or-less) on the internet of 1997, and though it was never a huge success, I’ve always been proud of it.

Fast forward to 2018: although I’ve known about the Internet Archive’s MS-DOS Software Library for some time, I’d never really thought about the specifics of how it works until I read an article which talked about the Em-DOSBox project. Em-DOSBox is a port of DOSBox emulator which runs in the browser via the Emscripten JavaScript library. As I was reading the article, a thought struck me: could I get CHIM running in the browser?

I decided it was at least worth a shot, so I began with step 1, building Emscripten from source. That went off without an issue, so I moved on to the next step, building the DOSBox JS files, and that’s where I ran into my first snag: the only way I was able to get it to build was by disabling the “emterpreter sync” function (emconfigure --disable-sync ./configure). It complained about the lack of empterpreter sync, but it built, and that lead me to the next step, packaging the dosbox.js file for use in a browser via the ./ command. Even though this seemed to work great, there was obviously something wrong with my resulting files, as the JavaScript engine in my browser kept throwing an error (“missing function in Module”). After toying around with it for a while, I found that, if I used ./ (the Emscripten-less version of the packager) to package my files, I could get an empty DOSBox window to come up, but it still wouldn’t load the actual EXE.

By this point, I was flummoxed, and was about to give up. And that’s when I found the answer: js-dos!

After 30 minutes with this tutorial (and some source viewing on a couple of js-dos game pages), I was able to get CHIM working.

But my work wasn’t finished yet. Even though I’d kept nearly all of the files for CHIM for the last 21 years (with the exception of the game’s original C++ source files, which were lost in a hard drive crash shortly after it was released), I hadn’t really messed with them much in the last decade, so there was some cleaning up to be done. I updated some of the questions (and answers) in the FAQ, replaced the license, and generally tried to clean up the supporting text files. And that’s when I ran into one last unexpected issue: text encoding.

You see, I had forgotten that, when I first wrote the game and the supporting files, I had used some primitive ANSI graphic characters in an attempt to enhance the look of it. And now, when I tried to view those files on my Linux laptop, those graphics came out… weird.

The fix was to convert the files from the “IBM-862” format to the modern UTF-8 format:

> iconv -f IBM862 -t UTF8 INTRO.TXT -o INTRO.UTF.TXT

This allowed me to edit the files in Mousepad (and serve them up with Nginx), while still keeping the graphics intact. Finally, I added the Unicode Byte Order Mark, which makes it display correctly in the browser, even when served from a file:// URL (you can add the BOM via Mousepad, under “Document -> Write Unicode BOM”).

So, if you’d like to try the game out, check it out here, and good luck - you’re gonna need it!

The Mythic Wars Have Begun!

TL;DR — My new card game has been published, so I wrote a card database for it.

👓 2 minutes

TL;DR - I made a game and got it published, so I made an app to help people play the game, and published that, too.

ICYMI, the card game I designed and ran a Kickstarter for was finally published a few months ago.

<gratuitous-plug> It’s called Mythic Wars: Clash of the Gods, and it’s available now at many fine gaming stores, or directly from either the Excalibre Games website or Amazon! </gratuitous-plug>

I had alot of fun designing and playtesting the game, and I’m quite pleased with the finished product. While I admit that I found the entire Kickstarting and publishing process to be somewhat less fun (and quite eye-opening), overall, the fact that I can now hold my game in my hands (and see it for sale at my friendly local game store) makes me enormously happy.

My game, on a shelf, AT A STORE!

Since I am a code monkey by trade (and a web developer by choice), I wanted to complement the game’s publication with the release of a simple, searchable database of all of the cards available for it. Taking inspiration from the Gatherer, the official database for Magic: the Gathering cards (the best example of such an application that I’m aware of), I mocked up something over the course of weekend, tweaked it over the course of a couple more weekends, and soon, The Codex Mythica was born.

It’s my first publicly-available Node / Express application, so the code’s kinda ugly, but I think it has some neat features, like a responsive layout designed to work well on different screens and devices, and a category-based searching / filtering system for sorting and selecting cards (along with the obligatory word search functionality). Plus, each card has links to both its art and to the Wikipedia entry for the its subject (or the Lovecraft wiki entry, in the case of some of the Outer Gods and their minions).

It also (finally) gave me an excuse to share something on GitHub! You can find it at

<gratuitous-plug> So, if you like games about gatherings of mages, ascended beings, or worlds where war is crafted, check out Mythic Wars: Clash of the Gods, available now at many fine gaming stores, or directly from either the Excalibre Games website or Amazon! </gratuitous-plug>

(Sorry, I’m contractually obligated to get in one more of those.)

Anyways, if you have any suggestions for The Codex Mythica, feel free to open an issue on GitHub or drop me a line (I can’t guarantee I’ll implement it, but I always appreciate the suggestions).

Ethics in Shilling Videogames

👓 less than 1 minute

David Wolinsky has a great article on Unwinnable capturing his thoughts on the whole “ethics in game journalism” / #GamerGate thing.

It’s time we retire the term “videogame journalist.”

Most writers in the field need to accept that they, too, are marketers unless their approach or something else in the landscape shifts and changes.

Part of the problem, as he sees it, is that videogame companies aren’t driven to do PR with journalists that might give them serious criticism (a.k.a. bad reviews). As a result, traditional “videogame journalists” have to choose between being a PR puppet for the game companies, or not being at all.

Part of the reason for this all-or-nothing attitude are the YouTube streamers, whose undeniable popularity means that they are getting courted more and more often by the game companies in lieu of print / online journalists. For example, look at Pewdiepie, and his 36-million followers:

Thirty-six million subscribers means roughly anything he puts online is more popular than Nirvana’s Nevermind (somewhere around 30 million sales) or Michael Jackson’s Bad (also around 30 million).

Think about it. An audience that size, bigger than the population of Canada (a country), and they are all paying attention to one person’s opinions about videogames. That is staggering on a basic human level.

He hits on a lot of different notes, and it does tend to run long, but it’s an overall great read for anyone that wants to move beyond the black-and-white #GamerGate in-group / out-group fighting and into a serious discussion about marketing vs. journalism, and what ethics in gaming can (and should) be.