Keep Calm: A Post Mortem

Keep Calm: A Post Mortem

Wow. It’s been a little over a week since Keep Calm: An Interactive Short Story was released into the world and I couldn’t be happier with how that went! It’s been amazing getting feedback on my baby and interacting with some awesome players!

I decided to do a postmortem because of the amazing response the game got and because it’s a good excuse to write a blogpost.

For those of you just tuning in, welcome! Also, Keep Calm is an interactive short story I developed and published to itch.io. Go play it, read my announcement, and come back. You back? (Thanks for hanging in there people who did play it. Onward we go.)

I’ve been pretty quiet on Twitter and Reddit over the past week regarding Keep Calm because I wanted to see how much “semi-organic” traffic would be directed to the game; which is a weird way to describe web traffic but bear with me. When Keep Calm was published I only did one ‘marketing’ push; a tweet, and two Reddit posts: one on r/gamedev and one on r/Unity2d. That was it. My experiment was to see what traffic would be drawn with little pushing; and I was amazed.

Response:

As of the writing of this post (Aug 2, 2016 1:52pm) the Itch page for Keep Calm was viewed 2,054 times and desktop versions of the game were downloaded 154 times!1

THAT’S AMAZING!!!!!!

zz00w5nNFMnPq
I AM SO AMAZED!!!

I couldn’t have imagined that kind of viewer-ship (player-ship?) for my first project and I’m very thankful all you players took time out of your days to play my little game. After awhile I started receiving some awesome comments on my reddit posts and I found Keep Calm  posted on r/IndieGaming.2 Someone even made a let’s play!!!.

Overall, Reddit and Itch.io were where the largest sources of traffic.

What Went Right:

giphy (8)

Integration of Ink into Unity

Inkle did a really good job of integrating Ink into Unity using the ink-unity integration plugin. This made it easy to create code which would manipulate the player view and ink .json files to move around the story using player input.

With the use of Ink’s external functions feature it was simple to put visual transitions between portions of the story right in the Ink script. This allowed me to streamline the writing process and focus less on code oriented features and more on the narrative design.

Deployment on Itch.io

I had never deployed anything to Itch before and I was pleasantly surprised at how easy it was to upload and deploy an HTML build of a Unity game. Setting up donation and payment methods was also super easy.

In addition to my user experience, Itch.io drove a lot of traffic to my game through their pages; so thanks goes out to the devs at Itch!

Driving user traffic through Reddit

I already talked a bit about the response so I’ll keep this part brief, but the Reddit push went pretty much perfectly.

What Went Wrong:

giphy (7)

QA and Beta Testing

This was by far my biggest problem in this project.

If you played the game early on you may have noticed a few glitches and bugs.3 I had set a deadline for myself to release something by July 21st. I ended up putting myself in a crunch trying to balance the project and personal tasks which resulted in me overlooking some major bugs and issues that caused some players to have a bad experience.

At the same time though, I am really glad some users reached out to me through the Reddit posts and comments on the game page which prompted me to go back and upload patches to fix technical and grammatical issues.

Scope Control

The original scope for this project was HUGE and fairly overwhelming. I wanted to do everything at once which caused me to redo some features, create feature bloat and issues, remove unneeded features, rush some other features, and ultimately extend the development time of Keep Calm. I was eventually able to scope down the game to what it is today, but it would have been better for me to do this prior to working on the project for two weeks.

HTML5 default pages and loaders

When you create a WebGL build in Unity you are given a template index.html which holds the game. Packaging and uploading this to Itch was a breeze. The problem came when I first ran the game: I realized that players were being shown a big white-space area without any sort of feedback before the default Unity splash-screen was displayed. This threw a big ol’ red flag in the webdev part of my brain and I was quickly able to create a pseudo loading view with some CSS animations.

So I upload the new package and then got some feedback about some major bugs which were shipped. I made a patch and uploaded the new package without realizing that the index.html page was overwritten with the blank white page again. Since this was a build the CSS additions I made didn’t get uploaded to my source control. Luckily I was able to find a 1.0 build in my recycling bin and recovered my changes, but had I not been so lucky I would have had to redo a bunch of work.4

What Did I Learn?:

giphy (9)

I learned not to rush. QA is important and I am sure many players who attempted to play Keep Calm and couldn’t did not come back for a second try. A good game released late is better than a bad game released on time. I will be sure to distribute my next project to more beta testers before releasing to the general public.

Admittedly, the response Keep Calm got on Reddit and Itch was incredibly validating. Not only do I feel personally validated and successful but my idea to create a text-adventure was also confirmed as a good idea! I also learned that the communities on Reddit and Itch are amazing sources of feedback, encouragement, and (of course) traffic.

Scoping something back doesn’t necessarily mean your final product will be worse than what you imagined; just different. Scoping back allowed me to set more realistic milestones and goals for myself and, in the end, I ended up with a great game.

Conclusion:

All in all, I am really happy with how Keep Calm turned out. I am now even more pumped to start my next project and I hope you will all walk with me on this journey!

Thanks again for the support.

 


  1. These are pageviews and downloads but not necessarily plays or installs. 
  2. Thank you u/pickledseacat. I think the score topped at around 66. 
  3. Like leaving my name off the start screen… 
  4.  I mean this is my bad and I should have known better, but I wish there was a way that Unity would have kept my changes without having to create template files. But that’s just me. 
Advertisements

Mommy, Where Do Characters Come From?

Mommy, Where Do Characters Come From?

I really like Role Playing Games. RPGs, and most video games for that matter, tell stories in a much different way than other mediums like movies or literature. Although games can be compared to both movies and books, RPGs just have a way of immersing me into their worlds, involving me with their characters, and engaging my brain in a much different way. The main difference between books/movies is involvement. In the case of an RPG I am not only watching a story unfold I am also manipulating the story in a diegetic context. This is to say that my participation in the story comes through my embodiment of a character within that story, and my actions affect the world of the game from within the world of the game. This is opposed to grand-strategy type games where players assume a more omnipresent type role. [side note]

Almost invariably RPGs tell the story of the player character. After spending some time playing I started to wonder where these characters come from and the context of that character’s origin and life as it pertains to the game’s diegesis. How do they effect the game-world/narrative and what’s the game-world/narrative’s affect on them?

What’s going on with the player character prior to the my intervention in the game’s narrative? Did they exist before I showed up? Where did they come from? What’s my role in their lives? What was/is their role in the world?

After some time I realized that there are really only three (well, two and a half) categories for the characters that we play in our RPGs. Sometimes these characters already existed with their own past and attributes, sometimes they are injected into the world generated with our input, and other times they’re a bit of both. I like to refer to these categories as thespians, newcomers, and divinely created characters.

Thespian Player Characters

Thespian Player Character is a player character who’s identity, personality, qualities, and attributes originate strictly from within the game’s diegesis and the player assumes this role as an actor.

As a thespian the player comes to the game as a character who already exists in the world of the game. These characters have a predetermined history, a set of predetermined abilities, and a predetermined identity. In short, the player has litte to no control over the stats of this character, or this character’s place in the story, and simply takes control at the beginning of the game.

Many adventure-RPGs have thespian player characters: The Witcher (CD Projekt Red, 2007) “tells the story of Geralt of Rivia, who is a witcher – a genetically enhanced and trained human with special powers” where the player acts as Geralt; in The Legend of Zelda: Ocarina of Time (Nintendo EAD, 1998) players act as Link, an orphan boy raised by a tree in the Kokiri Forest and destined to save Hyrule; and in To The Moon (Freebird Games, 2011) players act as Dr Rosalene and Dr. Watts who are “tasked with fulfilling the lifelong dream of the dying Johnny Wyles.” In each of these cases the character’s identities and lives have been pre-defined within the game world and the player simply assumes this role like the great William Shatner assumes the role of Shakespeare’s King Henry V.

However, unlike Bill Shatner’s amazingness, the future or destiny of Thespian Characters is not always written in stone. The qualities of a Thespian Character are generally predefined up to the point where the player enters the game world. Depending on how each game works characters can progress and affect the story according to the player’s action. In cases where there are level progression systems or divergent storylines the development of the character is up to the player.

Newcomer Player Characters

The Newcomer Player Character is a player character who’s identity, personality, qualities, and attributes originate outside of the game diegesis and are usually created through some sort of character creation system prior to, or during the early parts, of a game’s narrative.

The character’s back-story and current place in the game’s world is generally as a traveller or passerby or some other type of newcomer with little to no personal ties in the game-world. This serves as a narrative device used to easily inject the character into the world. Here the player comes to the game as a newly generated character who, up to this point, did not exist in the game world.

In The Elder Scrolls V: Skyrim (Bethesda Game Studios, 2011) and Pillars of Eternity (Obsidian Entertainment, 2015) player characters follow the traveller trope. In these games the player character is simply an outsider/foreigner who is passing through a region and is somehow thrust into the main conflict of the narrative (in Skyrim you are arrested; in Pillars of Eternity you fall mystically ill). In both cases the player selects a very vague history for their character by selecting their sex and race. Pillars of Eternity takes it further by allowing the player to not only select their race but also their sub-race, a class, a culture, and a background.

It should be noted that these don’t affect the game-world in any way. These selections simply mould the character towards a player’s playing style and affect the character and the character alone. In general the character is injected into the game world in isolation from it.

It should also be noted that many party-based RPGs such as Pillars of Eternity and Baldur’s Gate (Bioware, 1998) contain both thespians and newcomers in their game-play.

But, like most game design concepts, there are exceptions to the rule and of course characters can exist somewhere between being a Thespian or a Newcomer!

Divinely Created Player Characters

The Divinely Created Player Character is a player character who’s identity, personality, qualities, and attributes originate outside of the game diegesis but who are assumed to have existed inside the games diegesis prior to the player’s involvement and therefore can have a complex history, pre-existing relationships, and pre-determined personality.

These characters are like thespian characters in that they exist in the game-world prior to the player’s arrival. Unlike Thespian characters their attributes originate outside the game-world; they are set by the player during a character creation phase at the beginning of the game like a Newcomer character.

An interesting example of a divinely created player character is in Dragon Age: Origins (Bioware, 2009). Here, the player customizes their character by choosing their sex, race, and class but the player also selects an “origin story” for their character. Unlike Skyrim or Pillars of Eternity the generated characters in Dragon Age have histories that are entwined into the game’s diegesis. Not only is their background story already part of the game-world but it drastically affects the player’s (and their character’s) experience at the beginning of the game.

In all these categories the player is embodying a character, immersed into a new world full of adventure and intrigue. Wherever these characters come from; whether we are playing as a thespian, or as a newcomer, or if we are devinely created isn’t always important. It’s not always about where we come from. What really matters of course is where our characters go from here.


Seriously, RPGs are awesome! Do you prefer to play a thespian character? Or maybe you like the newcomer characters? Either way let me know in the comments here or hit me up on Twitter: @adamthegameguy

Disclaimer: I was not paid to mention any of the games in this post. I just really like RPGs!

As a side note: there are instances where the omnipresent player is assumed to exist in the world of the game. XCOM: Enemy Unknown (Firaxis Games, 2012) players assume the role of XCOM’s new Commander and from that role players manage assets and coordinate missions. Similarly in Medieval II: Total War (Creative Assembly Ltd., 2006) you assume the role of a nation’s nobility. However, in both these cases the player has an omnipresent perspective where they control characters and elements outside of their own in-world existence. For example: in XCOM all the characters are directed by the player, but not embodied by the player. As the commander, I cannot put on an armour suit and join the squad in battle, nor can I navigate through the world as the embodied commander. In these cases, Commander and King serve as narrative devices connecting the player’s actions to the game world. [back to top]