It’s lonely being alive (game)

I made a game for Global Game Jam. Check it out at:

Here’s a teaser image:

And some text from the game opening:

After sucking the life out of our planet to fuel our consumption… we left in the hope that we could find life elsewhere.

We wanted to keep living (in the manner to which we had become accustomed).

Life in a luxury capsule isn’t so bad… right?

More details are included on the game page on the Global Game Jam website. (I think that you can vote for me and stuff there…)

Update: Oh, I should mention that it works in Chrome/Chromium, Safari, and (kinda in) Firefox. Performance is best in Chrome/Chromium.

Update: Fixed the embed over at the Global Game Jam site, and changed linked above to point there (click on the “play” link on the linked page).

Every Australia Day I…

Every Australia Day I have the same thoughts:

  1. Australia Day should really be on a different calendar day
  2. We should really be a republic by now
  3. We should really change that flag

Australia has an appalling record of gross mistreatment of Indigenous Australians. Scheduling the national day of Australia to fall on a date representing colonisation is: At best, in awfully poor taste; At worst, an instrument for wilful and malicious socio-cultural subjugation.

Speaking of subjugation, why do we still support a foreign monarch? In this day and age… it’s pretty amazing (and embarrassing). Surely we can work out some other model of governance.

So every Australia Day I come to the same conclusions:

  1. We should become a republic
  2. We should mark the date we do so by making it the new Australia Day
  3. And we should remove the Union Jack from the flag

It seems pretty straight-forward to me. Maybe we could even become a republic on January 26 – provided we do something to properly reconcile all Australians (a simple “sorry” isn’t enough). Hmmm, I’m sure that it will happen eventually.

Narrative in Minecraft

I’ve been playing a fair amount of Minecraft recently, and I figured that I would write a series of blog posts about: narrative in the game, the community, and my experiences hosting a server.

For those who don’t know about Minecraft, here’s an introductory video:

On the face of it, Minecraft is a simple game. There are no explicit objectives or story – just a blocky world in which players can mine resources and build structures. It appears to be just a playground – void of narrative and themes.

That being said, it’s the strong implicit objectives and stories that create the player experience. Rather than rigidly defining a story like a book or film, the game acts as a subtle narrative mirror. Within its environment and events, it creates emotive situations in which players write their own personal stories.

Each player’s story is unique, but likely familiar to any other player. I suppose it’s like a “reading” of a novel. Part of the story is written by the author, but a large part is constructed by the reader (based on their personal experiences and views).

Here’s a common reading of the first hour or so of Minecraft:

I find myself alone in an idyllic world full of greener-than-green grass and bluer-than-blue sky. There are trees, and mountains, and streams. I wander around seeking a higher vantage point. The world seems to go on forever. It’s quiet and peaceful.

I dig holes and collect dirt. I cut wood from trees, but for some reason they don’t fall over. The disconnected sections just float there in some old Warner Bros. cartoon. This world is unlike my own.

Gentle music plays and the world begins to turn dark. A square moon slowly rises into the night sky. I hear something: “Braaahhhh”. I’m being attacked by monsters! I try to run, but I can’t escape. I die.

Shortly after death, I’m resurrected nearby. I barely make out the silhouette of the monster that killed me. It’s standing in a pile of dirt and wood. The dirt and wood that I so painstakingly procured!

Throughout the night I die and reappear numerous times. I’m frustrated and a little embarrassed by my powerlessness. I read about what to do and formulate a plan to survive the next night.

As the the sun appears, I breath a sigh of relief. Many of the monsters burn to ash as the sunlight touches them. Phew! Others remain, but they are easily avoided in the light of day.

I recover the wood I collected earlier and make wooden planks. I construct a workbench and build an axe, and a pick so that I can collect coal. I build a rudimentary house and light it up with torches.

When night falls again, I hide in my house and block the entrance with a pile of dirt. I can hear monsters groaning outside. I feel trapped, but safe. I’ll gather more resources in the morning.

After the initial experience, Minecraft poses many questions to the player:

  1. What is out there? Beyond that sea? Underneath your feet?
  2. If you could build anything, what would you build?
  3. How should one live within the environment?
  4. Why is this room here? Who built this?

And players will often reach similar conclusions:

  1. There are many exciting things to discover, many just beneath you.
  2. I’ll end up building something that reflects my personality.
  3. It’s best to utilise and complement what is already there.
  4. It’s a mystery… what does the author have in mind?

I can appreciate that many of these themes may not have been placed there (consciously) by the creators of the game, but they are there. Maybe an indicator of good writing (and game design) is that universal stories are ingrained in the work.

Those experiences, those questions, and the audience’s participation in interpreting them – form the basis of truly great art, and a fantastic game.

Animated GIF to sprite sheet using ImageMagick

Simon made some animated GIFs to use as loading indicators for an HTML5 game we are working on. Here’s one of them:

Although animated GIFs are easy to place on a basic webpage, it turns out that they aren’t so great for scripting (since you don’t have much control over playback). Sprite sheets are better in this regard, since you can have pretty fine-grained control over the animation.

So I searched for conversion methods and found this very useful TIGForums post explaining how to generate sprite sheets from animated GIFs using ImageMagick.

Following the instruction in that post, I ran:

montage DanceLoading1.gif -tile x1 -geometry '1x1+0+0<' -alpha On -background "rgba(0, 0, 0, 0.0)" -quality 100 loading_1.png

And I ended up with this sprite sheet (click for full-size image):

Unfortunately, it looks like there are bits missing. The problem was that the animated GIF was optimised to use “combine” mode. This means that the image stored for each frame only includes pixels that need to be changed from the previous frame.

Here’s a close-up of where things went wrong:

In order to resolve this problem, I needed to change the GIF to use “replace” mode, which forces it to store a complete image for each frame. I opened the image in GIMP and saved a new copy with appropriate settings:

I then ran the same montage command on the newly exported file, and got pretty much what I wanted (click for full-size image):

Or so I thought… have a look at frame 35:

What is the deal with that? I checked the GIF image exported by GIMP and it’s there as well. Gah. It must be a bug in GIMP.

Nevermind, there must be a way to first convert the GIF via ImageMagick’s command line operations. After reading some documentation, I came up with the following:

convert -layers dispose DanceLoading1.gif temp.gif
montage temp.gif -tile x1 -geometry '1x1+0+0<' -alpha On -background "rgba(0, 0, 0, 0.0)" -quality 100 loading_1.png

And it works. Yay!

Pete (the cat)

On my birthday last year, Heidi took me down to the Vetwest animal rescue to introduce me to the “Ginga Ninja”, an abandoned cat with an amputated leg and a reattached ear.

I was pretty apprehensive that he would get along with Bruce, and that we could properly take care of him. However, they were pretty happy for us to take him on a trial basis (which has since become permanent). On the drive home, we decided to call him Pete (after Peg Leg Pete).

He’s pretty cute. I took some photos of him the other day:


Here’s an old video of him playing with our other cat Bruce:

Indie video games panel

I moderated the indie video games panel at Genghiscon yesterday. It was my first time moderating a panel, and I feel like it went pretty well. I guess an email thread with the panellists and searching online for tips paid off.

There was a logical flow of discussion from speaker to speaker, a good pace of conversation, and we finished on time with a pretty clear wrap-up. All without relying on slide or visual aids (which I had brought on a USB stick, just in case). Of course, this was only possible due of the panellists bringing their knowledge and experience to the table (literally).

I haven’t been to Genghiscon before, but it was pretty close to what I expected: a low-key fantasy and sci-fi geek convention. It reminded me of school life in Canberra (which seems to have a disproportionate number of geeks per capita). It was nice to see people enjoy casually geeking out with their peers.

For those who couldn’t make it, here is a quick recap of the panel discussion:

What are indie games?

This question was directed at Chris McCormick, who I feel epitomises the indie game developer. At the most basic level indie games are games developed by independent developers. They also tend to be projects of passion (rather than developed for commercial interests) and more exploratory in nature (taking more risks than mainstream titles).

Describe the indie game development process.

As part of local seven person team, Rockethands, Brad Power was the perfect respondent to this question. He described a love for making games (over and above playing them) driving persistence and obsessive tinkering. Indie game developers live and breath their games.

How do you build a community around your game?

Aril Cox is the sole programmer behind reveri.es Virtual World. It’s a game that wouldn’t exist without her wanting it to (and working to produce it). She noted that although mainstream companies may never make your dream game, you still can. Moreover, you will find people who want to play it and be part of making it.

How are indie games published and distributed?

We were fortunate to have Scott Reismanis (founder of the world’s largest mod and indie games website) on the panel for this question. He talked about how liberating digital distribution is for indie developers, and how mainstream companies are opting to seek publishing deals rather than buying out smaller developers.

It looks like the next games panel or workshop may be at Swancon and focus on writing for games. Send me a message if you are interested in participating. 🙂

Life During Wartime

I saw Life During Wartime last Friday. It’s an interesting film that I’m happy to recommend to people who enjoy thoughtful cinema.

Here’s the trailer:

Although the scenes in the trailer are from the film, the tone and feeling are entirely different. The trailer feels whimsical and random, whereas the film is considered and confronting.

While watching the film, I got the impression that everything – every scene, every word – was measured and purposeful.

Paedophiles and terrorists were used to demonstrate dehumanisation and demonisation. A spectrum of age groups were used to contrast perceptions of innocence, guilt, and immorality. Locations were chosen carefully, and interactions between characters progressed the development of the film’s core themes at a good pace.

As the credits started, I was left with a fairly cohesive collection of concepts:

  • We’re all animals, with various needs and imperatives
  • The idea that anyone can be all good or all evil is fanciful and ignorant
  • People cannot change their nature, and it’s best to accept this

I’m surprised by the fairly mixed reception to the film. Most of the negative reviews seem to compare it to Solondz’s earlier work, which seems a little unfair. I feel that it stands on its own as a thought-provoking and accomplished film.

Hairetrospective

I’ve been writing notes for a 2010 retrospective, but it’s all getting a bit too much.

A lot happened, and only some of it was mentioned on this blog. While I continue to reflect on what to write about 2010, I’ve decided to post a more light-hearted retrospective.

Here’s the current state of my hair:

I shaved it short because it’s getting crazy hot here in Perth, and I hate long hair on a hot day. Anyhow, keep reading to see how my hair changed in 2010.

Continue reading “Hairetrospective”