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

Keep Calm Is Out In The Wild!!!

I am so freakin’ excited!!! Why? I’ll tell you why:

giphy
YAAAAAAAA!!!

Today I release my first personal/solo project!

I talked about Keep Calm: An Interactive Short Story yesterday, in my first post in ages, and I am happy and ecstatic to say you can now play/download a game that is 100% all me!!!

Keep Calm is available to play in your browser on itch.io for FREE! You can also download desktop versions for your Windows and Mac computers!

Keep Calm is a short game, and as I said yesterday it was an awesome exercise in writing for me, but also coding and organizing my own projects with deadlines and all that cool stuff.

The story comes from a whole bunch of inspirational sources, but for now I’ll let you experience the experience for yourselves ;)

That link again: https://pyjamabottomstudios.itch.io/keep-calm

Special thanks goes to my very awesome fiancee who encouraged and cheered on this project from start to finish.

I hope you enjoy :)

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]

My Experiences With Anxiety And Games

Last week here in Canada it was Mental Health Awareness Week, and it’s Mental Health Awareness Week in the UK this week. And to be completely honest with you all, I am having trouble starting to write this blogpost. This is because I have an anxiety disorder: more specifically a Social Anxiety Disorder. The Canadian Mental Health Association describes Social Anxiety Disorder as:

“[involving an] intense fear of being embarrassed or evaluated negatively by others. As a result, people avoid social situations. This is more than shyness. It can have a big impact on work or school performance and relationships.”

In my life this has affected my work life and my social life. Indeed, not only does having an anxiety problem affect my personal relationships with other people, including relationships with loved ones, it also has a profound effect on my personal relationship with myself: how I see myself, how I think about myself, and more importantly how I think others see and think about me. To be truthful it can be pretty debilitating (I have the doctor’s notes to prove it).

The Mental Health Foundation in the UK gives us a pretty good idea about the psychological impact of anxiety:

  • Trouble sleeping
  • Lack of concentration
  • Feeling irritable
  • Feeling depressed
  • Loss of self-confidence

“It can be hard to break this cycle, but you can learn to feel less worried and to cope with your anxiety so it doesn’t stop you enjoying life.” 

I can attest to what the MHF says here: I most often struggle with the first and last points.

What I needed to realize was that I am awesome, and that my lack of self-confidence was internal and generally unfounded. Upon reflection there was no reason to doubt myself, and that through striving to improve myself, for myself, I am able to achieve anything I set my mind to.

I want to break here for a moment to say that I am not a doctor, psychiatrist, or therapist; I’m just a dude with a laptop and a blog, and as such I cannot (nor will I) attempt to recommend any single therapy for dealing with an anxiety disorder. I can only tell you what has worked for me in the past, and what is working for me now (at this very moment as I am writing it is this Spotify Playlist; Bach is pretty great. I can also recommend my favourite composer Beethoven, who coincidently suffered from an intense case of depression; but I digress). If you feel like you are struggling with an anxiety disorder, or any other mental health issues, I urge you to seek out medical advice from a doctor who can recommend therapies; both medicinal and behavioural.

On that note, I have done both. In the beginning of my journey I was prescribed an anti-anxiety medication to use as a milestone between crippling anxiety and seeking a therapist. And I did seek a therapist for something called cognitive-bahavioural therapy.

I am happy to say to you that I can enjoy life! Anxiety is both manageable and treatable and it is absolutely possible to do great things!

So at this point I am sure you’re asking “Adam, this is a blog about games and game design; what does this have to do with that?” Well Dear Reader, I do sometimes talk about other stuff. But this has much to do with games and game design.

Many people seek out video games as a form of coping with anxiety; myself included. I happened to take it a step further and try to channel my anxiety into my game design work and my game design blogging. Often, playing a game for a little while helps distract me from my anxious mind, allows me to calm down by thinking critically about something else, and return to the task at hand refreshed and relaxed. However, video games can easily switch from a healthy coping mechanism to an unhealthy one.

It’s important for us to recognize the difference between using games as a coping mechanism; as a method of working out an internal struggle, and a dependance on games for self assurance, self-esteem, and self-confidence. In one of my first posts here titles What Do Games Do? I say that “Games can provide an escape” and that A game can provide an opportunity to be somebody else, or be the person you really want to be.” In general, these aren’t unhealthy things to seek out; it seems to me to be part of the reason we have things like books, movies, music, and theatre. They provide a respite from the stresses of work and life and as I mentioned above allows us to step back to somewhere else to unwind and return refreshed. This is the case for pretty much any coping mechanism. But what if you are always trying to ‘escape’?

There may come a point where one finds that games are the only things that make them happy for one reason or another. At that point one might begin to turn away from things like work, play, and social interactions by retreating into virtual worlds where they are in control. Not only can one turn their back on the world and on others they can begin to turn their back on themselves by neglecting their personal health, their personal hygiene, their self care, and their self worth. When this happens a person may only feel any self worth or self esteem inside a game. Games at this point have transitioned from constructive coping to detrimental dependancy. And if you can relate to the above; if you feel like your only happiness comes from a game, and that you have turned away from everything else, I once again urge you to seek out medical advice and therapy to help bring you back to health.

Remember that you are more than what you are in a game: you are a problem solver, you are driven, you are passionate, you are awesome.

I want to ask my fellow game designers to take these type of issues into consideration when we create. I think by including things like natural yet regular pauses in games we can allow our players to step away from our games for a time, but still desire to return later. I feel like it’s our responsibility as designers and developers to create not only compelling content, but healthy methods of play; sort of like our own little Hippocratic Oath:

I hereby swear to create games that are fun and compelling, yet who’s methods of play are both safe and healthy for my players; I swear this for the good of the player and the good of the game.


 

Anxiety, depression, and mental illness do not discriminate and are often invisible to those close to the people that suffer from them. If you think you or anyone you know are a victim of mental illness please do not be silent. Talk to your DOCTOR and a COUNSELLOR, right now.

If you or anyone you know are thinking about attempting or plan to attempt suicide, call 911 (or your regional emergency line) IMMEDIATELY! Stop reading this and call right now!

If you or a loved one are in crisis right now you can call:

IN ONTARIO, CANADA:

Kids Help Phone at 1-800-668-6868
Ontario Mental Health Helpline at 1-866-531-2600
Or go to https://ontario.cmha.ca/mental-health/services-and-support/crisis-support/ for more.

NOT IN ONTARIO, CANADA:

USA: National Suicide Prevention Lifeline at 1-800-273-TALK (1-800-273-8255)

UK: The Samaritans at 08457 90 90 90

I got help, you can too.

I know it is difficult to ask for help because that means admitting that there is something wrong; and the stigma around mental health issues makes that even harder. But I will tell you verily that it can help.

Remember that you are awesome, we are awesome, and we can do it; whatever it is!

Maybe They Were Trying To Help

When I was in college (the computer-science time, not the music time) I worked as a Java developer at an applied research centre who’s purpose was to develop an open-sourced EMR solution. Long story short, the code base was a mess, the workflow was a mess, the documentation was a mess; the whole damn thing was just a mess. Lots of components doing repetitive or redundant tasks unnecessarily adding to the complexity of the solution. One day, I came up with a way to simplify the software. I spent a lot of time planning and designing and had a little report ready to show my boss with eager excitement. However, my boss wasn’t up for change. My well thought out idea was shot down; and he wasn’t even nice about it. I felt awfully small, and I went back to my cubicle; tail betwixt my legs with an “I was just trying to help” tear welling up in my eye.

I think that’s how Valve and Bethesda must feel today.

It was a whirlwind of a weekend for them. Bethesda and Valve attempted to implement a marketplace for players to give pay for game mods and user generated content. The introduction of a paid mods system did not hit the community well; the backlash was insane. A seemingly innocent attempt at improving the modding community by pumping some cash into it was shot down like a clay pigeon. It turned from an idea and a new marketplace into the gamers demanding to talk to who was responsible for some heinous crime.

And yesterday the people responsible attempted to explain themselves:

//platform.twitter.com/widgets.jsTwo hours later they threw in the towel:

 

Their model made sense, at least to me. In the past, applying this type of model to user generated content actually improved the output quality and made it better and easier to contribute. To their credit, they did their research and the data showed that this could be a great idea. Sure, there was a bit of revenue sharing between the content creator, Steam, and Bethesda. But as they mentioned in their blog this is a standard practice, and again was a model that proved successful in the past.

Standard or not, we were having none of it.

I can’t imagine that Bethesda was attempting something harmful or malicious to their customers. Again, in their blog they show that income from Steam is only 1% of their revenue stream. In their eyes the past indicated a way for them to make their games, their mods, and their mod developers successful. It seemed to me that they wanted to give a platform for mod-developers to turn their efforts into a revenue stream and become “indie developers.”

But if the past is an indication of anything, we are resistant to change. As the old adage seams to go: if it ain’t broke and you try to fix it, and we’ll run you out on a rail. Even if you are just trying to help.


What do you think about paid mods? Good idea? Bad idea? Was Valve and Bethesda just trying to make a quick buck? Comment here or tweet me on Twitter: @adamthegameguy

//platform.twitter.com/widgets.js