Category Archives: Rants

Iridescence mobile development update

When I was at the Boston Festival of Indie Games with Iridescence, I’d tell anyone who asked about the mobile versions that they were about two or three weeks out. At the time I had every reason to believe that to be the case, but it turned out to be a little more complicated than I had anticipated.

This will be a moderately technical post, so the short version: Iridescence is still coming out on mobile devices (iOS, Android, and even Windows 8 phones), but it won’t be as soon as I had hoped.

Now onto the technical side of things.

Iridescence is written in Haxe, which is a language that aims to act as an intermediary between platforms. Instead of writing C++ for desktop platforms, Java for Android, Objective C for iOS, and C# for Windows phone, Haxe allows you to write in one language for all platforms, translating itself into the one that’s best supported by each target. On top of Haxe comes OpenFL, a framework that mimics the Flash API but has support for OpenGL and runs as a native application. A single codebase, a familiar API, and great performance? Almost sounds too good to be true.

It is.

A week before launch, I plugged in my Android tablet to get a build running. It had been my intention to have a tablet on the exhibition table so people could see the game running on a variety of platforms. I’d had it working in the past without any issues and without having to change a single line of code, so I expected it to be uneventful.

It wasn't.

It wasn’t.

I’m at a total loss to explain what’s going on. At first I thought it was just a matter of the renderer acting up, but the music doesn’t start either. Worse, I get this same behavior if the app is entirely empty. Other games work just fine, so it’s not a problem with the device. On my friend’s brand new Moto X nothing displays at all, so it’s not a matter of the tablet being below required specifications.

I’ve spoken to the OpenFL community and development team to no avail. A new beta version of the framework came out and had the same problem. Worst of all, I tried to roll back to an earlier version that had worked before and I couldn’t even compile. The OpenFL ecosystem is in a constant state of flux, with new build toolchains and dependencies popping up seemingly every time it updates, and the older (working) versions weren’t compatible with the new tools.

At this point it was time to start considering my options.

  • I could hunker down, wait for another OpenFL release, and hope that it would solve my problems.
  • Or I could bite the bullet and port the whole game back to C# (the language I wrote the original gamejam version in) and use Unity.

I’m choosing Unity. I’ll be using the Futile framework, partially because the API is Flash-inspired and will be easier to translate code between, but mainly because it’s a fully code-oriented workflow and only has support for 2D. When I first started working on the improved version of Iridescence Unity still didn’t have support for Linux and doing 2D work was a hassle. Not so any more. When I’m finished, this version will replace the current Windows/Mac/Linux Haxe-based one.

It’ll be a tough road but I’m ready to do what it takes. I leave you with the first step.

long road


Disappointments: Amnesia a Machine for Pigs

Amnesia: The Dark Descent is a game that’s near and dear to my heart. It’s a masterpiece not only of the independent scene but of the entire games industry, succeeding brilliantly at delivering a truly terrifying experience that stuck with me long after I finished it. When the sequel, A Machine for Pigs, was announced, I preordered it as soon as I was able. Frictional’s games have only improved with each new title, and I was confident this latest release would be even better than the original.

As it turns out, that’s not the case.

A Machine for Pigs (AMFP from here on out) is developed by TheChineseRoom, best known for their experimental narrative game Dear Esther, with Frictional taking a minor role as producer and publisher. I absolutely adore Dear Esther for what it is: a beautiful dream of a game with breathtaking visuals and fantastic atmosphere. For all that, however, it’s very linear and involves no environmental interaction whatsoever, and unfortunately this design approach is carried right over into AMFP. Dear Esther was an extremely focused game; no element was included that wasn’t directly necessary to tell the story they were looking to tell, including many conventions considered standard in a first-person-perspective game, such as the ability to crouch and jump. While crouching and jumping are still in place in AMFP, it’s astonishing just how many other core systems were removed from the core Amnesia gameplay.

Simplifications in interactivity
Nearly every object in the world of Amnesia: The Dark Descent (just Amnesia from here on) could be picked up and manipulated. Books could be taken from bookshelves, bricks could be used to bash a hole in a damaged wall, and barrels could be stacked to collect out-of-reach items. AMFP limits interactivity strictly to puzzle items, doors and desk drawers. One memorable moment during my playthrough was when I came across a tubular object on the floor and picked it up, overjoyed to have found something to physically connect me to the world I was trying to immerse myself in. As it turned out, the object was a fuse that belonged to a fusebox in the next room. I plugged it in and went on my way.


While the lack of clutter in a level might seem like a petty complaint, the ability to interact with items in Amnesia’s environment was one of the things that really made me feel like I was inhabiting an actual space, rather than proceeding through a tightly directed tour. In AMFP, if you find an object you can pick up, make sure to take it with you, because you’ll definitely need it to solve an upcoming puzzle — or what passes for one in this game, anyway.

Disruption of Balance
Amnesia’s sanity meter has been criticized as being unrealistic and distracting, but I think it’s one of the game’s best mechanics. In a castle filled with murderous creatures and without any means of defending yourself, the obvious tactic is to skulk around in the dark to avoid detection. Amnesia made this very approach inadvisable with the simple rule that the darkness itself is your enemy too, causing hallucinations and insanity if you spent too long without coming into the light. It forced you to balance the preservation of your sanity with the knowledge that standing in the light made it possible for a monster to see you as well.

I’ll never forget one time in particular when I encountered a monster after having spent far too long in the dark. He roared as he spotted me and I sprinted away, veering madly. As I ran towards the door which would take me back to the safety of the main hall, I tried to make a minor correction in my heading and instead spun completely around to face him as he wound up for a swing. I turned again, view flailing, fumbling at the door just as his attack landed. I made it out. Barely.

In AMFP, the sanity mechanic is completely gone. You can creep around in the shadows to your heart’s content with no ill effects. In Amnesia, taking more than a quick glance at a patrolling monster was a good way to induce a noisy panic attack, but in AMFP you can stare at them with impunity, effectively removing the risk involved in learning patrol patterns and turning such segments into uninspired stealth gameplay. Far from being vulnerable and helpless, the player is just as empowered as the hero in any other sneak-em-up.


At least, until you get to the boss fight against this teleporting cybernetic hogman.

Resource management
As with every other aspect of the game, resource management has been simplified to the bare minimum. The inventory has been completely removed; all puzzle elements are physical objects that you carry in your hands, laudanum is no longer available to sooth wounds, and tinderboxes have been replaced with the ability to conjure fire from your fingertips onto certain candles.

None of the above issues are really that big of a deal, but one more mechanic was removed that I can’t come up with a satisfactory justification for: the lantern no longer consumes fuel and can be used infinitely. Ultimately this decision cascades from the removal of the sanity meter and the fact that there’s no downside to being in the dark, but the tension produced by the knowledge that your fuel could run out at any time is noticeably absent. Yet another crucial element falls on the chopping block in the name of accessibility.

Direction over systems
Amnesia had its fair share of scripted events; whenever a door blew open in the wind or a monster broke into the room just after you picked up a puzzle piece, that was a scripted event firing off. For the most part, though, Amnesia was content to leave you to your devices. AMFP, on the other hand, is filled with scripted moments. You can hardly go a dozen steps without triggering a piece of expository voice-over, slow-motion walking sequence, or level-shaking earthquake. Not only do these get tedious after the first fifty or so occurrences, they always broke my immersion for a simple reason that can be applied across all types of games:

There is nothing safer than a scripted event.

When the game takes control away from me and forces me to watch as a monster shuffles through a doorway ahead of me, I know that at that moment there’s no way I’m in any danger. AMFP indulges in these moments all too often, and each time any tension that has managed to build up is dispelled. The director has called for a scene and I am to watch.

Another addition that I found strange is a new behavior of the lantern. If, while creeping around in the dark, you should happen to aim the light at a monster, it will flicker and go out briefly. While the game makes a halfhearted attempt at explaining this effect, the true reason is obvious; it exists wholly as a safety net to give me an opportunity to quickly put out the light and hide. For a horror game, AMFP is surprisingly keen on keeping me alive. Rather than designing systems that terrify, TheChineseRoom has created an experience in which I am constantly reassured that I’m completely safe.

Narrative flaws
AMFP will undoubtedly be praised for its writing, which somehow manages to be even more florid than that of Dear Esther and is the very epitome of style over substance, littered with tangentially related references to great works of literature. The protagonist, Oswald Mandus (whose own name is itself a reference), makes elaborate mementos that reek of thesaurus abuse — why say “earth” when “loam” sounds so much more profound? The two words aren’t, in fact, equivalent; one does not “descend into the loam” when taking a trip underground. This is just one example of the pseudo-intellectual language found throughout all text in the game, from dialogue to notes found in the environment.

When Oswald isn’t making tortured similes in his journal or waxing poetic in one of his frequent monologues, the environmental storytelling is just as confused. No justification is ever given, for example, of the village church’s stained glass windows featuring pig-headed saints and altar piled high with butchered swine. If the titular machine is such a well-kept secret, some explanation is necessary for this inclusion, but there is none. Tom Clancy has been quoted as saying that the difference between fiction and reality is that fiction has to make sense, and when studied carefully, AMFP does not make sense. Gaping plot holes, inconsistencies, and leaps of logic that strain verisimilitude are scattered all throughout, and the climax is never satisfactorily resolved.

I really, really wanted to like Amnesia: A Machine for Pigs, but it seems as far removed from the spirit of Amnesia: The Dark Descent as is possible before losing all resemblance. TheChineseRoom might excel at creating introspective art games, but masters of horror they are not, and AMFP manages to be neither a worthy successor to Amnesia nor a compelling horror game in its own right.

A brief rant about Eragon

I went on a bit of a rant on Facebook today. A friend was wondering whether Christopher Paolini’s book Eragon was worth sticking with if it hadn’t secured her attention in the first 100 pages. The following text was the result. It’s by no means a comprehensive critique, but it’s a start.

Despite my complete disdain for the whole series both from a literary and fictional perspective, I have actually read three of the four books — strictly for research, I assure you.

If you’re familiar with basic writing tropes, you’ll know what I mean when I say that Eragon is a complete Mary Sue. Early on in the first book he manages to stump two Alliance propaganda artists with a single sentence, and that trend continues throughout the book. The only mistake he ever makes (to my memory) exists only as a plot device to introduce a thoroughly uninteresting side character. No matter how foolhardy his decisions, they always work out to a positive result — oftentimes due to the sacrifices of others in order to cover for his incompetence. While this produces a reasonable amount of angst, Eragon’s character never develops as a result.

It’s pretty obvious that Paolini spent the entire time writing the books with a thesaurus in one hand. His vocabulary can seem impressive to the casual look, but in most cases the words he uses are subtly wrong for the situation. As a person who actually does have a wide vocabulary, it really ground on me whenever I would see a word out of place and know that it had been included due to a combination of ignorance and pretended intelligence. One memorable scene involves two characters arguing over which sword is better; a rapier or a flamberge — the fact that in many cases a flamberge is merely a type of rapier is not brought up.

Paolini draws liberally on established fantasy authors when creating his names and “languages”. Many names are either one letter removed from names found in the Lord of the Rings (“Isenbard”? really?), and the magic system is literally a direct copy of the “true name” doctrine in Ursula Le Guin’s Earthsea Cycle. The languages spoken by the various peoples of Alagaesia have none of the believability or linguistic feasibility of the languages of Middle Earth, but that doesn’t stop him from including entire passages of them.

As the series progresses, the narrative becomes more and more convoluted, with new rules being introduced into the magic system (by the middle of the second book a number of the terms from the Sword of Truth books have been adopted), new characters with entire chapters devoted to their tangentially related adventures, and some of the strangest discrepancies in character development that I’ve ever found (Arya won’t eat meat because it’s cruel, but she only ever wears leather?).

I haven’t read the last book. Maybe he cleaned up his act and produced something worthwhile, but I kind of doubt it. My vote: skip it. You could be spending the time spent on those 2800 pages on much better books.

As an added bonus, you can read my very old comic strip comparing the plot of Eragon to that of the original Star wars movies.

So, you want to write an alphabet


Ever since Tolkien, it seems like every fantasy setting to come along feels obligated to feature its own spoken language or writing system — and honestly, why wouldn’t they? It seems like a great way to add depth and believability to an imaginary world, but unfortunately the effort fails completely in the vast majority of cases, and the fact is that most people just don’t put much thought into this kind of thing. With that in mind, I want to go over some of the common pitfalls that it’s easy to fall into when designing a writing system for a fictional setting.

Continue reading

Hitman: Absolution is not a good game

My relationship with the newest Hitman game is…strained, to put it mildly.

I bought Absolution shortly after it came out, hoping against hope that it would be a worthy sequel to one of my favorite all-time games, Hitman: Blood Money. I added Absolution it to my favorites list before Steam had even finished downloading it.

According to the Steam counter, I played for a total of 13 hours before I removed it from that list. I’d be willing to bet that the majority of that time was spent doing something else, leaving the game running in the background as I watched videos on Youtube or worked on one of my programming projects.

Two weeks after removing it from my favorites, I uninstalled it. I don’t think I’ll be back.

Hitman: Absolution is not a good game.

What do I mean by this? Several distinct things at once, actually;

  • It is not a good Hitman game,
  • It is not a good stealth game,
  • It is not a game that respects my time, and
  • It is not a game that respects my intellect.

I’ll go through these one by one.

Continue reading

Magic in fiction

A friend of mine posted this on Facebook recently:

I know this will create some lively discussion, but I want to get Christians thinking.

Exodus 22:18, Deuteronomy 18:10, 2 Kings 17:17, Isaiah 47:9, Micah 5:12, Malachi 3:5, Galatians 5:20, Revelation 21:8, Revelation 22:15

These are a few of the verses I found with only a few minutes search through the Scriptures. All of them clearly condemn witchcraft and sorcery.

So can someone please explain to me *Biblically* why Christians allow themselves to glorify fiction with “good wizards”?

I won’t accept the argument that my conscience is different, and that yours doesn’t condemn you, so you’re okay. In the classic conscience argument, Paul states that the food in question was intrinsically fine. So those people understanding that had a conscience set free.

Such is not the case here, a wizard is not intrinsically moral, or good or pure…

We are commanded to abstain from every form of evil! And to meditate on praise-worthy things. So I also will not accept the argument that it is just fiction.

Continue reading

Stop looking to form gamedev teams

I frequent the Reddit /r/gamedev board, and it seems like every hour there’s a new post by someone looking to start a team to make some awesome game. The poster goes into great detail about the type of gameplay the game will have, lists games that inspired its design, and explains that he only needs a few people to help him out in order to get started.

He then goes on to list the roles that need to be filled; artist, programmer, audio design…finally wrapping up by describing himself as the “idea guy”.

I hate to sound cruel, but at this point I can state with absolute certainty that the project he wants to lead will never get off the ground.

One such topic was posted recently by a guy who wanted to make a game like Telltale’s The Walking Dead, which has been praised for its emphasis on branching storylines and player choice. I wrote a longish reply to help set him on the right track. Unfortunately, he deleted the post before I finished and I was unable to reply, so I’m copying it here.

My recommendation: stop looking to start a team so early on. It sounds like you have little to no experience with making games, and you’re going to need it. Teams that are founded by people with no experience end up falling apart and going nowhere.

If you want to get your feet wet, try out this tutorial for Twine. It’ll help you realize your goal and get a prototype together that is functionally the same as The Walking Dead in regards to choices and interactive storytelling.

Maybe partway through you’ll realize you aren’t actually interested in finishing it. That’s fine; it’s always better to ditch a prototype than a project you’ve invested tons of work into.

Or, maybe you’ll come up with something awesome and other people will look to team up with you and take it to the next level. That’s great! At that point you’ll be more than just the ideas guy; you’ll have demonstrated you have the talent and perseverance to stick through and see a project to the end.

Either way, it can only help you to start off by yourself. The type of people who would offer to join up with you based on your post are not the kind of people who have any serious experience.