Postmortem: Writer’s Block – 1GAM January

The first month of the year is gone and I’ve made a game! The January 2016 entry of 1GAM, namely “Writer’s Block”, is now completed (kind of)!

January 2016 has been a great start for this year! During the last months of last year I started a personal journey to fight my inner demons. I don’t want to bore you with some self-improvement/productivity bullshit -it is not the place for that- so I will not. You just have to know that after 6 months of trying and failing this January is the month in which all the good habits really start to stick.

The “One Game A Month” challenge was the perfect way to test myself and doing one of the activities I love most. As usual, we will start from the beginning.

The Goal

For this game I had only one big goal: test my ability to “stick to a plan”. So, before even starting to think on the game itself, I knew the action plan:

  1. Chose an idea so embarrassingly easy that it is impossible that any unexpected will ever happen!
  2. Plan this activity in details, try to make a time estimate for every task.
  3. Follow the plan.

Because I was (and still I am) so bad at planning (oh, the irony of an AI researcher…)  this game respects my Gold  Game Jam Rule: never do a Game Jam if you don’t find a way to try something you never experienced before. This time my inedit experience was to “stick to a detailed plan”.

The Game Idea

Then, I opened the 1GAM website looking for inspiration. I listened to the monthly @McFunkypants keynote (oh gods, this guy has an amazing voice). The optional theme was HOBBY.

As you probably know, my hobby is writing (one of my many hobbies to be honest). The idea comes out automatically: a writing game! But how to replicate the experience of a writing session? I just looked at me in the mirror.

My experience with the act of writing can be summarized in a handful of points:

  • Background music.
  • Keep the motivation up.
  • Write as fast as possible (you will edit your 1st draft at the end anyway)
  • Stay focused. Fun fact: when I lose focus on the writing I find myself start writing animal names, fruits and other random words that I have to delete (of course).

Look at this list! It is already a game! You have a goal (stay motivated, stay focused), a challenge (avoid writing nonsensical words) and even a soundtrack! The game is writing itself.

The Game Plan

The dashboard of HacknPlan for this game.
The dashboard of HacknPlan for this game.

As I said before, this time the important part for me is not the game, is the planning phase. So I started brainstorming and planning everything. I used this new web application, HacknPlan, just for fun. It is very handy for planning a videogame using the “agile” methodology. However, it is obvious that I don’t need such a tool when I am the only developer of the game. But I like to try productivity app, so…

I divided the roadmap into three big milestones:

  1. Planning Phase: Complete a detailed plan, describe gameplay and design in general.
  2. Core Gameplay: Do something horrendous, but with the core gameplay running. The deadline was 17th Jan.
  3. 1GAM Deadline: This is the “polished” final version of the game (graphic, music, packaging and so on). The deadline was 31st Jan.

The total planned time was 20 hours. It is not too much, but I wanted to be realistic. 20 hours was 1 hour a day for the remaining 20 days. This is the maximum amount of time I could guarantee at the time and a fantastic target for someone coming from an awful “stick-to-the-plan” state of mind.

At the end, I used 10 hours of coding and graphic plus, I think, 2 hours of music and sound effects. For some reason, I underestimated myself in many coding tasks.

The Core Gameplay

The 14th of January I had my very first core gameplay prototype. I developed this prototype in an afternoon. This is the tweet (comprehensive of the mandatory typo) to prove this.  The advantage of this game is that there is no graphic involved. Except for an ugly typewriter in the middle, the game is made of UI elements.

The goal of the game is to write a 250 word text (to be precise, the first 250 words of Jane Eyre), without errors and as fast as possible. I don’t want to make this game overly complicated, so you don’t have to write the full text, but you just have to choose between two words: the correct one and a fruit. If you get the correct word, you gain motivation and speed; if you take the wrong one, you lose motivation. When the motivation is zero, it is Game Over.

The concept is very easy, therefore I implemented it in a couple of days. I lost all the rest of the available coding time into fixing some problem in the way the text is displayed while you write and attaching the right sound effect to the right event (if you receive a ‘\n’ you want to perform the new-line “ding” of a typewriter, however, for some reason, this was not so easy as it seems).

Ah, I almost forgot to say that, in order to be compliant with the fast-typing rules, you can play the game with your indexes on the keyboard keys F and J.

The polished game

I completed the first milestone in time. I was so happy for this! Then, unfortunately, I forgot to bring with me the source code of the game while I was away from home. The result is that I completely lost a week of work for the next milestone.

The week after that, I started working again on the game. I was a bit late with the schedule. The first thing I’ve done was to fix the graphic.

It is not a jaw-dropping graphic, but I’ve done my best to make the general appearance less “I’m lazy as shit with Unity” style. Some good, simple graphic can do miracles in this case.

After the graphic, a way more pleasant task was waiting for me: music. I composed 8 loops for this game and everyone was “meh, it doesn’t fit at all”. Then, on a Sunday afternoon I took my MIDI keyboard and I literally improvised 1 minute “jazzy jam”. You can hear it in the game OR download it from SoundCloud.

I am quite satisfied with the result. It is “more right” for the kind of game, I suppose.

The game was completed in time. I planned just 1 level and that is what I delivered. I could have done more, but I prefer to complete something than feeling disappointed of myself for not being able to submit a game in the first “jam” of the year.

Takeaway

I almost spent more time on this postmortem than with the game development. I think is time to end. What I can take away with me on this experience?

  1. I was able to develop and follow a plan.
  2. I overestimated the time for every programming task by 50% and more. Usually programmers do the opposite. I need to fix this because otherwise I will not plan for something more ambitious.
  3. A game done entirely by myself. I usually jam in two, this time I was alone. And I made it!

Next Step

In the next game I want to try Phaser.io. This will probably slow me down a lot (changing technology is always expensive) but I know that it is the only way to force me to study seriously this amazing HTML5/JS gaming library.

Ehi, wait, the game?

You can try the game here. There are some bugs for sure. Tell me and I’ll fix them.