Eldritch: Permalife in Indie Games

About ten months ago, I released Eldritch. I followed it quickly with Mac and Linux ports in November and a free expansion in December. I documented the process on this blog, and stated that “the story of Eldritch isn’t over yet.” I was correct, but not in the way I thought.

Sometime during Eldritch’s development, I had looked up H.P. Lovecraft’s birthday. I can’t remember exactly why. I was probably hoping to launch on that date as a tribute to the author who inspired the game’s world and creatures. But his birthday fell on August 20, and I was nowhere near being able to ship on that date in 2013. So I put that idea in my pocket. Maybe I could do a sale on that date next year, I thought.

In early 2014, around the time I wrote the post-mortem article, I was in preliminary talks to bring Eldritch to an unspecified console. Over the following months, I made decent progress on that port, despite my inexperience on the hardware. But with a limited budget and my own uncertainty about sales on the particular platform, I eventually chose to walk away from that and focus on my next project, NEON STRUCT. I began telling people I was done with Eldritch, that I had made the game I wanted to make and I was ready to move on to something new. I released the source code in April, ostensibly an act of some finality. I dove into production on NEON STRUCT, and Eldritch became my past.

With August 20 approaching this year, I reached out to Humble and Valve to set up a 24-hour sale for Eldritch. My representative at Valve offered to make Eldritch the Steam daily deal for that date, but asked if I would have an update to coincide with the sale. I didn’t have anything prepared; Eldritch was my past, right? But landing a highly visible spot on the front page of Steam was a bigger deal than I had expected. So I took a brief hiatus from NEON STRUCT and began preparing a Steam-centric update for Eldritch.

The community had requested trading cards and achievements since launch—as they do with every game—but I had chosen not to add those things for mostly personal reasons. I didn’t understand the appeal of trading cards, and I felt that achievements were antithetical to the “play it your way” mentality of the game’s design. A year later, my feelings on those have shifted. Achievements exist for players who like to get achievements; people like myself who value the “play it your way” design don’t necessarily care about achievements, or are perhaps the most willing to play a game multiple times to get all the achievements. Either way, the presence of achievements should not detract from a player’s experience. As for trading cards, I still think they’re a bit silly; but I have spent funds from my Steam Wallet to complete my Spelunky card set, so who am I to deny someone their trading cards? I’m happy to finally bring Steam achievements and cards to Eldritch.

Adding cards and achievements was a good start, but it wasn’t a substantial update on its own. I wanted to add new content for people who weren’t also interested in those features; and secondary to that, I wanted to experiment with more Steamworks features like leaderboards. After pitching a handful of ideas around, I lighted on the concept of a small challenge mode that would fundamentally change the objective of Eldritch. Where the original levels were always about going from point A to point B (albeit in creative, player-directed ways), this expansion would be about mining the world for resources. Thorough exploration, not speedrunning, would be the dominant play style.

The result is a new dungeon, the Asylum of Azathoth. In this world, the player is charged with collecting and freeing trapped souls; but she has only three minutes in each level to do so before the chaotic deity Azathoth arrives to gobble her up. The difficulty and the pace of the Asylum are unlike anything previously seen in Eldritch, and I am eager to see what strategies players discover to maximize their soul count in the Asylum.

So, is this the end for Eldritch? I can’t say anymore. I have no further plans for it now, but it is a game that lends itself well to expansion. And every time I return to it, I recall how much fun Eldritch is to develop and to play. Maybe I’ll revisit it again in the future. For now, I hope you enjoy this update! Cthulhu fhtagn!


Eldritch: Mountains of Post-Mortem-ness

Last April, I began working on a game. In October, I released it. This is the story of Eldritch.

(Note: Sales info including pretty graphs is provided near the bottom of this post.)


I’ve written before about the good times at 2K Marin; and if that were the whole story, it would seem ridiculous that I would ever leave that place. Sadly, it didn’t remain that way for long. The story of The Bureau: XCOM Declassified is a complicated thing, and perhaps someday, I’ll be up to the task of telling my version of it. It was a frustrating and depressing project that seemed to never end, and I watched many good friends and colleagues depart for greener pastures over the years. I contemplated finding a new job. I spoke with a few great developers about new opportunities. And I entertained the fantastic notion of “going indie” and making the games I had been longing to make for years.

In March, my wife Kim received a sizable bonus payment for her work on the Skylanders games. It was enough to pay off her student loans as well as mine, which she graciously offered to do. I suggested that I could instead take that amount and use it to fund a few months of independent development. We discussed it for a week, and the following Friday, I gave notice at 2K. Between Kim’s investment, my savings, my 401k, and a very significant number of unused vacation days, I estimated I had enough funding to survive until just about the end of 2013. It was time to get to work.

Making a Video Game

The development of Eldritch was a blur. I planned it carefully to fit my strengths as a programmer and designer, to minimize technical risks, and to be finished with enough time and money left to test, promote, and sell it. The core systems came together rapidly. I shared a playable build with a few close friends after less than two months, and continued to solicit feedback from trusted friends and colleagues on a monthly basis until its release.

The shape of the game hardened around the end of August. My original schedule had Eldritch shipping in December, but a combination of being well ahead of schedule and running a bit short on money urged me to move that up. I chose late October for the release date, avoiding (as much as possible) the hype haloes surrounding the Grand Theft Auto V and PlayStation 4 launch windows. That left me with just under two months to promote Eldritch before its release.

Marketing and Greenlight

With Eldritch mostly finished, I turned my attention to marketing. I created a website, captured footage and screenshots, cut a trailer, set up a Steam Greenlight page, wrote a press release, and prayed anyone would take my game seriously. Making the initial announcement was perhaps the single most nerve-wracking part of the entire development process. The response over the next 24 hours would determine whether I had made a huge mistake by going indie or making Eldritch.

On September 9, I flipped the switch: and the Greenlight page went live, a few dozen press release emails were sent, tweets were tweeted, and I held my breath. Within minutes, PC Gamer had posted a preview. Presale purchases began rolling in. Greenlight “Yes” votes trended above 50%. I exhaled.


I had done extensive playtesting with friends and family, but that group could only provide a narrow cross section of hardware for compatibility testing. Eldritch wasn’t the first game I would ship using my homegrown engine, but it was the first one I was asking money for, and I dreaded seeing a forum full of disappointed users who bought the game and then couldn’t play it.

My solution was to do a soft launch of the finished game, call it a beta, and try to fix all the major issues before the announced release date. For the purpose of compatibility testing, this worked well. I got a lot of useful bug reports, fixed at least one major rendering error, and even had time to incorporate a few small gameplay changes suggested by the early adopters. What I could have done better is to effectively communicate that the game was content complete. In this age of early access games and perennial updates, calling Eldritch a “beta” while presenting a Minecraft-inspired aesthetic invited players to misunderstand the state of the game and my intentions for it. (To this day, some users still mistake Eldritch on Steam for an early access game!)

An unexpected consequence of this phase of testing was discovering how many players felt betrayed by the relative ease of Eldritch compared to most other roguelike games. That was something I had never heard from my family and friends playtest sessions; and for my part, I still feel that Eldritch’s difficulty sits right where I wanted it: challenging for the majority of new players, but giving way to a feeling of mastery within a few hours instead of dozens or hundreds of hours. But happily, the beta phase provided the opportunity for me to make the eleventh hour addition of a more punishing New Game+ mode, which seems to have mostly satisfied the more hardcore players.


Shortly after launching the beta, Eldritch was greenlit for Steam. It took me by surprise; the Greenlight numbers had been strong, but there were still a significant number of games ranked higher than it when it was selected. I can only guess that the impending release date may have been a factor. I have mixed feelings about Greenlight (and the greater Steam developer experience), but my experience with it was obviously very positive compared to many other developers.

For better or worse, being on Steam is not an automatic windfall anymore. In fact, it looks like being on Steam may be the barest necessity for financial success for many developers. It’s a complicated topic which perhaps warrants a separate article.

Let’s Play

Eldritch has received a good amount of press coverage, from its initial announcement to reviews through the recent release of the Mountains of Madness expansion. I’m grateful for all of it, but nothing has made as big an impact on traffic and sales as being featured on high profile Twitch and YouTube channels. During the month when Eldritch was on Greenlight, I observed large boosts in “Yes” votes after each new feature video.

As YouTube and some major publishers continue to make it harder for these creators to monetize their videos, I encourage independent developers to make it easier. Get in contact with YouTubers, and make it easy for them to get in contact with you. Make preview builds readily available. Publish a written statement authorizing monetization of footage of your game. Game developers and YouTubers can have a very healthy symbiotic relationship, and if that’s something that the industry heavyweights aren’t interested in, indies will eat their lunch.

Mac and Linux

I was very interested in doing cross-platform PC development with Eldritch, but I had no prior Mac or Linux experience. I didn’t want to jeopardize the Windows release, so I decided to ship first on Windows and then consider porting to other operating systems. This would also allow me to evaluate the early sales numbers and do a simple cost-benefit analysis to ensure that I would be likely to recoup the time and money spent porting.

Then I got bored waiting for the Windows launch and just started doing it. It took less time than I expected, and I released the first Mac and Linux candidates just three weeks after the Windows launch.

I rewrote the entire Direct3D renderer to remove dependencies on the D3DX helper library. In particular, I had been using D3DX to load .fx shader files and manage render states, and porting to OpenGL would require the engine to manage render states itself. I quietly patched the new Direct3D renderer into the Steam version of Eldritch, and incredibly, it caused zero new bugs and performed slightly better. With the new renderer in place, I was able to implement a parallel OpenGL version. I targeted OpenGL 2.1 because it seemed mostly equivalent to the Direct3D 9 feature set that Eldritch uses.

I also wrote parallel implementations for the windowing, input, and clock systems, replacing Windows API calls with cross-platform SDL calls. (In Windows, I can compile the game either using the Windows API or SDL; the released version still uses the Windows API because switching to SDL seemed unnecessary.)

Finally, I installed Ubuntu and began learning how to actually build an Eldritch executable for Linux. This (and the equivalent work on Mac OS X which followed) was the most tedious part of the port: lots of mucking about with unfamiliar IDEs, searching for obscure compiler flags, and rewriting MSVC-safe code to make gcc happier. It was boring to do, it’s boring to write about, and it’s probably boring to read about. Moving on, then.


Besides the Mac and Linux versions, localization was the biggest feature I wanted to add to Eldritch after release. I had designed the textual parts of my engine to be localization-ready many years ago, but had never actually had an opportunity to use it. I also knew that my system only supported the Latin alphabet and would need to be revised for Cyrillic-based languages.

I couldn’t afford to pay a localization team (my old friend, the cost-benefit analysis, didn’t see a lot of money in translating Eldritch), but after receiving a couple of unsolicited offers to translate Eldritch for free, I decided to test the waters and ask for volunteers. The response was amazing, and I am incredibly grateful to the folks who generously donated their time to translate Eldritch to nine more languages.

In order to support the Russian and Ukrainian translations, I needed to finally make my engine Unicode-aware. This process was surprisingly painless, because UTF-8 encoding meant I only needed to change code where I loaded strings or displayed them. When storing, searching, or modifying strings, I could still just treat them as null-terminated char arrays. The biggest roadblock to Cyrillic support almost ended up being the fonts I had chosen; only one of the three fonts has Cyrillic characters, so the entire game uses a single typeface when playing in Russian or Ukrainian.


The early response to Eldritch was almost universally positive, but even the positive reviews often cited a scarcity of content as a weakness. This response, coupled with the earlier frequent misunderstanding that the game was an early access title or would receive perennial updates, steered a lot of conversation about Eldritch in the direction of “what will the developers add next?”

My initial plan was to add nothing next. In my mind, Eldritch is a complete game, a short but endlessly revisitable adventure that respects the player’s time instead of dragging on. But it is also the sort of game that lends itself well to expansions. It is pure, unburdened by narrative, and straightforward to pin new levels, enemies, and weapons to the existing structure of the game.

When I was reading a lot of Lovecraft and mentally filing ideas away for inclusion in Eldritch, At the Mountains of Madness was a story I felt deserved more room than I could have given it in the original game. I borrowed its shoggoths but left the rest for another day, and the idea of an adventure set in the semi-abandoned cities of Antarctica was the only choice I ever considered for the expansion.

The decision to release the expansion for free was a risky one, which sadly didn’t pay off exactly as I’d hoped. While a few players had expressed a willingness to pay for more content, many more had commented on the brevity of the original release with a more disappointed tone. My plan was to release Eldritch: Mountains of Madness for free as a gesture of appreciation for satisfied players and of good will to those who felt slighted by the length of the original game. It would not generate any revenue directly, but a free expansion would provide another opportunity to promote the game and a good hook for more press coverage. Unfortunately, I didn’t consider that so much of the press would be shut down on holiday just around the time of the expansion’s release. I appreciate the coverage it has received, but it was not the well-timed tidal wave of promotion I had hoped for.


The primary cost of developing Eldritch was the burn rate of my own living expenses: rent, utilities, food, etc. I effectively took a 45% pay cut compared to my former salary, and I did my best to forego unnecessary purchases until Eldritch began generating income. Other significant costs included middleware licensing and contractor payments. All told, it cost somewhere in the vicinity of $22,000 to make Eldritch, $4,000 to port to Mac and Linux, and $5,000 to make Mountains of Madness. My first sales target was simply to recoup those costs (plus taxes) so that I wouldn’t have lost money making this game.


The time from Eldritch’s initial announcement (September 9) to its proper release date (October 21) was exceptionally short by industry standards, and I don’t know exactly what the effect of that may have been. Perhaps the prompt release helped capitalize on initial excitement surrounding the announcement. Or perhaps Eldritch would have been more successful with six months or a year of slowly teased information to build hype.

Inspired by Hitbox Team’s transparent Dustforce sales report, I’m going to share Eldritch’s sales over the past three months. Please be aware that the dollar figures shown below are the gross revenue, before Steam and Humble take their cut, and before taxes are paid. After fees, shares, and taxes, Minor Key Games makes roughly 43% of that amount.

By any measure, Eldritch is a success, but not a mind-blowing one. I would characterize it as a good start for the company, with plenty of room to grow. Its sales have been more than sufficient to hit my modest goals, and enough that I will get to keep making games independently for at least another year.


Eldritch became available for presale via Humble on September 9, the day it was announced. The announcement was echoed around various websites for most of that week, leading to a fairly wide initial spike before dropping to a steady rate of sales. There was a small spike on September 26, when the beta became available, but that event was not heavily promoted and the sales leveled out again.


Then the official launch happened, and the second wave of press coverage hit, and Eldritch was featured on the front page of Steam for a while. The day 1 sales immediately dwarfed the entire presale period. Launch sales were bolstered a little bit by inclusion in the Steam Halloween Sale (at the launch discount of 20% off), and then the daily sales leveled out once again after a couple of weeks. By this time, Eldritch had recouped its initial development cost.


The Mac and Linux ports were released without much promotion in early November—an intentional (albeit questionable) choice to give them a gentler landing at the cost of some coverage. The next spike occurred during the Steam Autumn Sale, when Eldritch was offered at a 50% discount. Shortly after this, I wrote that Eldritch had sold 12,000 units at an average price of $12, and I thought that was the end of the story.


Then this happened. During Steam’s Holiday Sale, Eldritch was offered at an 80% discount ($3) in an overnight Steam flash sale (2 a.m. – 10 a.m. PST). I knew it was coming, but I had virtually no expectations for it. It looked like a poor timeslot, and I didn’t realize just how important front page visibility is during a Steam sale. When I woke up that morning, I quickly tweeted about the sale and then logged in to check the overnight numbers. I thought I was looking at the wrong numbers at first; Eldritch had literally doubled its units sold overnight! Even at such a low price, the revenue from the flash sale exceeded the total revenue of the Autumn Sale and the rest of the Holiday Sale combined. It was also during this sale that the Mac and Linux ports finally recouped their development cost, with an unexpected 11% of purchases during those eight hours coming from Linux users.


In its first three months on sale, Eldritch grossed over $215,000. After subtracting fees, taxes, and Steam and Humble’s shares, it has generated almost $100,000 for our company, or approximately a threefold return on investment.

What Now?

2013 was an amazing year for my career, and the story of Eldritch isn’t over yet. The total number of units sold (about 32,000) is still low enough that there seems to be value in my continuing to promote the game and build awareness. Further sales will surely continue to draw more players, and later, I would be interested in including Eldritch in Humble-style game bundles.

The big question is whether it is worthwhile to continue to develop Eldritch or move on to the next (possibly Eldritch-related) project. Features like mod support and Steam achievements continue to be highly requested, but the cost-benefit analysis for those doesn’t look great. Mod support would be difficult to do right (beyond simple features like texture packs) and would require a larger active user base to flourish. Perhaps mod support could help grow the user base, but we’re living in a post-Minecraft world, and I question how much excitement the addition of mod support to a game like Eldritch could realistically generate.

Thank you all for your support of Eldritch so far, and I hope you enjoy whatever we do in 2014!


Shoes and Ships and Sealing Wax

As independent game developers, Kyle and I want to be more open and transparent about development than we could be in our AAA past lives. Kyle explained the reasons for this in some detail in his indie announcement, but my interpretation is: silence is a form of dishonesty. The ubiquitous “no comment” deflection serves mainly to obscure unattractive truths about a product. I would rather be frank (“Sadly, Eldritch won’t have cooperative multiplayer.”) than to lead a customer on (“We can’t talk about our plans for multiplayer yet.”).

So in September, I announced Eldritch for Windows only, and the inevitable question of other platforms was asked. I explained, in cautiously noncommittal terms, that I was certainly interested in doing Mac and Linux versions, but they would not be available at launch. In retrospect, I wonder if I should have been more open about the reasons (Eldritch was written on a custom engine that only targeted Direct3D, I had only purchased an FMOD license for one platform, etc.), but this answer seemed to satisfy people.

Of course, I would have liked to ship on Windows, Mac, and Linux simultaneously; but I had no prior experience with Mac or Linux development, no idea how long it would take to port my engine, and a very constrained schedule due to my budget. So I planned to ship on Windows first, then do a cost-benefit analysis to determine if and when it would be beneficial to release on the other platforms. For the cost, I estimated 4-8 weeks of my salary (inasmuch as I have a salary), plus the FMOD licensing fees for the additional platforms. That’s a relatively small sum, but my other debts take precedence. Benefits are harder to determine. Common knowledge puts the combined Mac and Linux gaming market share at around 10% of Windows. Being cross-platform also opens other doors, such as the potential for inclusion in Humble Bundle sales, but I could not rationally depend on that in my analysis. I finally determined that if Eldritch sold on the order of 15,000 copies (at full price on Steam), then it would become beneficial to move forward on the port.

Then something unexpected happened. I ran out of bugs to fix during the Eldritch beta. I added a New Game+ mode because I had the time to do it. I started to get bored. So I decided to investigate what it would take to make my engine cross-platform. Investigation turned into implementation, and after a couple of weeks, I was sitting on a relatively portable codebase. The estimated 4-8 weeks from my cost analysis vanished, rolled into the time I had allotted for finaling the Windows build.

At the moment, I have Mac and Linux alpha builds ready for testing, and I intend to send those to interested friends next week. A wide release is still pending the aforementioned FMOD license fee, although I am reconsidering its priority relative to my other debts in light of the new timing.

All of which is a very long-winded way to finally confirm that Eldritch is coming to Mac and Linux. I’ll follow up (probably on Twitter, in somewhat fewer words) when I figure out the release date, but rest assured that it won’t be long.


They Called It Rapture

I quit my job in March.

I worked at 2K Marin for over five years, and I quit my job in March.

I didn’t make a lot of noise about it at the time, in part because I was still figuring out what I would do next, and in part because I didn’t want to draw any negative attention toward 2K Marin and the nascent XCOM project (now re-revealed as The Bureau: XCOM Declassified, which I’m thrilled to see is getting a much warmer reception this time around).

Making XCOM was a long and strange journey, and I hope to share some of those stories after the game is released; but today, I want to reflect on the early days at 2K Marin. Making BioShock 2 has been the highlight of my career so far, and I can’t imagine a more passionate and supportive team than the people I worked with on that project.

I had less than a year of professional experience under my belt when I applied for a job at 2K. I hadn’t yet shipped a game. I had a borderline stalkerish knowledge of the BioShock team. In retrospect, I don’t quite understand how I got the interview, much less the job, but I am eternally grateful to Alyssa Finley and Carlos Cuello for taking a chance on a huge BioShock/Irrational fanboy.

I was introduced to Jordan Thomas on my first day, but I didn’t actually know him by name. Only later, after coworker Johnnemann Nordhagen (now of The Fullbright Company) reminded me of Kieron Gillen’s fantastic PC Gamer article “Journey Into the Cradle,” did I realize that our creative director was the same man who designed Shalebridge Cradle and Fort Frolic.

I geeked out a lot in those days.

The early days of 2K Marin were a surreal experience, far removed from the norms of AAA game development. We were a tiny team, focused on bringing BioShock to the PS3 and full of heady ideas about a sequel. It felt more like a garage band than the newest branch of a multi-million dollar corporation. I was outside my programming comfort zone, maintaining Ruby scripts for a fragile build process, and I didn’t even care. The vibe was amazing.

We soon moved into a larger space and began growing the studio to develop BioShock 2. We hired a couple of fantastic AI programmers, Matthew Brown and Leon Hartwig, who I would later be fortunate to join on the AI team. I got to learn from an incredible design team: Jordan Thomas, Zak McClendon, JP LeBreton, Steve Gaynor, and Kent Hudson, to name a few.

I learned as much as I could. I gave as much as I could.

A tangent: I anchor the years of my life with particular events and use that to contextualize everything else. I guess everyone does this, but I feel like I’m particularly conscious of the process. I moved to Great Falls in 1992 (the year Super Mario Kart launched). Our apartment caught fire in 1998 (the year Unreal launched). I got married in 2007 (the year BioShock launched).

I don’t remember a lot of 2009.

I mean, I do. I remember drinking Anchor Steam and playing Persona 4 in a hot apartment. I remember jocular AI team meetings with Matthew Brown, Kent Hudson, Harvey Whitney, and PJ Leffelman. I remember staying late at work, gorged on bad Chinese food, trying to solve some elusive bug in the last level of the game. But I don’t have an anchor. When I try to contextualize events around that time, that entire year is simply the year I spent making BioShock 2.

And I’m okay with that.

Because that experience is everything I ever imagined game development could be. I loved the game I was making. I loved the people I was working with. I loved the work I was doing. What more could I ask for in a job?

I played BioShock 2 again this week. The last time I played it was the week it launched, in February 2010. Three years later, I still clearly remember the shape of the thing, but I’ve forgotten the details. Some parts are better than the version in my memory. Some are worse. I try to imagine what it would be like to have played this game as a fan, as someone who loved BioShock but wasn’t involved in the creative process for two years.

I can’t do it.

The game is inseparable from my memories of making it. I see the room where the player is first taught to use Electro Bolt to shock multiple splicers in a pool of water, and I immediately recall a bug that made splicers interrupt themselves halfway through a sentence. That room was my test case for that bug—it gave me an easy way to observe enemy AIs using dynamic VO barks without ever attacking the player. I am certain that if I revisit the game in twenty years, that bug will be the first thing I remember when I see that room.

I’m okay with this, too.

I loved BioShock. I loved it as a fan. I loved System Shock 2, as a fan. I wanted to work at Irrational because I was a fan of the games they had made. Years later, with older and wiser eyes, I can look back and be glad I never worked at Irrational. But I will never regret working at 2K Marin during 2008 and 2009. I think I appreciate BioShock 2 more as a developer than I ever could have as a fan. I will never have to question whether it was too similar to the first BioShock, or whether another visit to Rapture was really necessary. It doesn’t matter to me. I was a part of something special, the transient convergence of a hundred or so brilliant people, and that is more important than any video game could ever be.

(RIP Eden Daddy)


In Defense of Immersion

I have built most of my career on and around immersive games; in particular, that murkily defined subsection of first-person action games known as immersive simulations. That genre, defined by the titles of Looking Glass Studios, Ion Storm Austin, and Irrational Games, has experienced a minor resurgence during this generation. But the term “immersion” has also been co-opted as a buzzword for big budget games, where it may be used to mean anything from “atmospheric” to “realistic” to “gripping.”

Recently, Robert Yang wrote an article in which he suggested that “immersion” is now merely code for “not Farmville” and that we as developers should abandon the term.

Although I agree with Yang regarding the unfortunate overloading of the word “immersion,” I believe there is still value in using the word to describe that particular brand of games which evoke that particular kind of player engagement. I propose that instead of abandoning all concept of immersion, we establish a clearer understanding of what makes a game immersive.

Justin Keverne (of the influential blog Groping the Elephant) recently said to me: “I once asked ten people to define immersion, all ten said it was easy, all ten gave different answers.”

This is my answer.

Immersion not about realism

“Realistic” is an unfortunate appraisal in games criticism. Realism is a technological horizon: the infinitely distant goal of a simulation so advanced that it is indistinguishable from our reality. This is problematic for at least two reasons.

As a simulation approaches the infinite complexity of reality, its flaws stand out in increasingly stark contrast. This effect is customarily called the uncanny valley when referring to robotic or animated simulations of human beings; but I find Potemkin villages to be a more apt metaphor for its effect on video games, as a modern action-oriented video game needs to simulate much more than one human character. Games have advanced over the past two decades primarily along the axes of visual fidelity and scope, with very few games exploring the more interesting third axis of interactive fidelity. This arms race toward faux realism has produced a trend of highly detailed but static environments: doors and cabinets which cannot be opened, lights which cannot be switched off, windows that do not break, and props which are apparently fixed in place with super glue.

The second problem with the pursuit of realism is that reality is not particularly well-suited to the needs of a video game. Reality can often be dull, noisy, or confusing; it is indifferent to an individual and full of irrelevant information. A well-made level is architected, dressed, and lit such that it guides the player through its space. Reality is rarely so prescriptive; its halls and roads are designed to lead many people to many destinations. In fact, those non-interactive doors and lights which reveal the pretense of a game world are non-interactive specifically because they don’t matter. This paradox between the expectations of a realistic world and the prescriptive focus of a video game becomes more apparent as games move toward greater realism.

For these reasons, the pursuit of realism is actually detrimental to immersion.

Immersion is about consistency

In his postmortem for Deus Ex, Warren Spector described how the team at Ion Storm Austin cut certain game objects because their real-world functionality could not be captured in the game. It may not be realistic or even especially plausible that Deus Ex’s future world would lack modern appliances, but the decision to cut these objects unasked the more obvious questions about their utility.

Consistency in a game simulation simply means that objects behave according to a set of coherent rules. These rules are often guided by realism, because realism provides the audience with a common understanding of physical properties, but they are not beholden to it. Thief’s exemplary stealth gameplay is based on a rich model of light and sound, quantized into a small number of intuitive reactions. In BioShock, objects exhibit exaggerated responses to real world stimuli like fire, ice, and electricity; but also to fictional forces such as telekinesis.

Adherence to a set of rules provides the opportunity for the player to learn and to extrapolate from a single event to a pattern of similar behaviors linked by these rules. In their GDC 2004 presentation Practical Techniques for Implementing Emergent Gameplay, Harvey Smith and Randy Smith showed how simulations with strongly connected mechanics may allow the player to improvise and accomplish a goal through a series of indirect actions. When a player is engaged in this manner, observing and planning and reacting, she is immersed in the game.

Immersion is broken by objects which behave unexpectedly or which have no utility at all. When a player attempts to use one of these objects, she discovers an unexpected and irrational boundary to the simulation–an “invisible wall” of functionality which shatters the illusion of a coherent world. Big budget games seem especially prone to this failure condition, as they contain large quantities of art which imply more functionality than the game’s simulation actually supports.

Immersion is a state of mind

As I suggested above, a player becomes immersed in a game when engaging with its systems with such complete focus that awareness of the real world falls away. Immersive sims, a more strictly defined genre, may exhibit certain common features such as a first-person perspective or minimal HUD. While these aspects may be conducive to player immersion, they are not strictly necessary; any game which produces this focused state of mind is immersive. (In fact, one of the most immersive games I have played recently is the third-person Dark Souls.)

Outside of video games, there is a term for this state of mind of complete focus and engagement: flow.

Immersive video games are those which promote the flow state via engaging, consistent mechanics, and sustain it by avoiding arbitrary or irrational boundary cases.

Further reading

Adrian Chmielarz recently published a piece criticizing the ways in which highly scripted games break immersion, and suggested a contract of sorts in which players would forego game-breaking behavior if developers would smooth over the edge cases that reveal the boundaries of a game’s scripting.

Casey Goodrow wrote a response to Chmielarz’s article in which he further highlighted the tense relationship between immersion and realism and argued that a player who breaks a game by boundary testing its systems is actually immersed in that game.