According to Cain postmortem

Call me Cain.

A recent post here asked, “What’s your IF white whale?” According to Cain was my white whale. I’ve been trying to tell this story for years now.

I don’t recall the exact seed of inspiration. I suspect I was clicking around Wikipedia and came across the Cain & Abel story. Siblings in a heated rivalry leading to murder is a story that crosses cultures and time, from Remus & Romulus founding Rome to the faux Klingon mythology of Star Trek.

It started as a short story, structured as a series of journal entries written by Cain. His younger brother Abel is the favored one, charismatic and charming, while Cain is brooding and introspective. The ejection from Eden affected Adam and Eve in different ways: Adam sorts through his guilt via an industrious work ethic bordering on mania, while Eve languishes in a melancholic nostalgia. Cain and Abel are skeptical of their parents’ farfetched stories of their youth. Things grow alarming when Eve commands her sons to marry their sisters.

Incest, insanity, sibling rivalry, murder: It struck me as a powerful story worth telling.

A little research went a long way. The Targum Jerusalem was my most valuable source. In it, Cain debates Abel before killing him. Cain’s grim worldview cuts to the quick of what I think the final game asks:

There is neither judgment nor Judge, nor another world; neither is a good reward given to the righteous, nor will vengeance be taken of the wicked. Nor was the world created in goodness, nor in goodness is it conducted.

I eventually abandoned the idea, thinking I’d never finish it. Still, every time I set out to start a new writing project, I would pick through its remains wondering if this time I could tame it. (“Call me Cain.”)

Story to game

When I decided to try writing a full-sized IF parser game, I sniffed through those old Cain journal entries once more. I didn’t want to write a “big” game, and since I thought my hands would be full learning the ropes, I didn’t want to have a lot of NPCs. As tempted as I was to have the player play the part of Cain himself, I knew asking (forcing?) the player to kill Abel was out of the question. Having the player go through the aftermath of the murder event seemed my soundest approach.

It’s a murder. Why not have a detective investigate?

But what mystery? The murderer and victim are infamous. What could this detective uncover? I recalled the mark God placed on Cain, which is never described in the Bible.

The subject is esoteric, but I was so drawn to the idea of a detective solving not the crime but the punishment.

The revelations the player divines in the game are taken from Cain’s journal (drastically pared down to accommodate the bursty nature of IF’s prose). The game locations and elements—the settlement, the well, the great fire and tree, the crow, even the still where Abel makes alcohol—all come from the original story and my notes and fragments.


There was no magic system in my original concept. I (naively) planned for the player-detective to wander around, study details, and find scraps of parchment with Cain’s writing.

The alchemy system came from seeking a more involved and interesting way for the player to uncover these fragments. I began by toying with the idea of basing it on the Four Humours. The other alchemy ingredients come by way of Derrida—yeah, that Derrida—who connects the triad of remedy/poison/sacrifice to an ancient Greek ritual of scapegoating and catharsis called pharmakon.

Expulsion—ostracism—scapegoating. Poe writes of a “unity of effect” in fiction. Sacrifices and expulsion all play a part in the storyline. I incorporated these elements into the game as a way of reinforcing the effect.

The alchemy system was by far the most problematic coding challenge. I’m proud of the final result, but damn did it require a lot of fidgeting around to get it just right.

The in-game reference book (my Pharmakon, not Derrida’s) was the other problem child. Coding was not the issue, completeness was. There are 57 entries in the Pharmakon, which may not sound like many, but was a mini-project unto itself. (The character of Hester started as an afterthought, a way to inject a little humor into this dry reference book.)

One happy coincidence: Only after I was well into coding did I realize each of the family members corresponded to a humour. I greedily incorporated this coincidence into the puzzles. I wish I could say this was an early and sage design choice. I kept my imagination open during development, and it worked out.


The game’s ending was new. My original story meandered and did not build toward a conclusion.

I panicked during development: I’d made so much out of the mark of Cain, what could I say about it that could meet, or even exceed, the player’s expectations?

I perceive writing fiction as Promethean: We scale the mountain in the dark, feeling our way from handhold to handhold, and then race down the hill with the fire, eager to share its heat and light with others.

Someone wrote that a great ending is like a door slamming shut that leaves a lingering echo in the reader’s mind. That’s the sense of finality and satisfaction I aimed for. I like to think I achieved it.

Final thoughts

I really want to express my appreciation for everyone who played and reviewed my game. To place in the top ten for my first IF Comp stunned me. Winning the Miss Congeniality award on top of that is an immense honor.

Thanks for reading, and thanks for playing!


This is one of my favourite parts of the mystery. Good you kept your imagination flexible and receptive while writing.


It certainly worked for me. I will carry that lingering echo for a long time.


I might post a full review later, though reading Victor’s review has demotivated me somewhat as he articulates most of the observations that I had far more eloquently! I wanted to say, though, that by now I’ve had a chance to play most the top comp games and According of Cain was my favorite. You stuck the landing in a way that far exceeded my expectations even after seeing how highly the game placed.


Thank you for the kind words!