Subscribe to:

The Kiwi's TaleWitchBlasterDerelict Blow Stuff Up

Syndicate content

Blow Stuff Up: 2011 Release Candidate 3

New build of Blow Stuff Up has been released. The new stuff:

  • Mecha sprites by Anthony Lau.
  • Danish and German translations by Christian "Chroelle" Toft and Pater Alf of Curly's World of Freeware.
  • Easy mode. The amount of time you start with, as well as the amount of time you get from destroying stuff is doubled.
  • Aspect ratio fix. Widescreen resolution now shows more to the sides, rather than less on the top and bottom.
  • Misc bug fixes.

This will probably be my last release of Blow Stuff Up before the Earok 2011 collection is released. Though I started experimenting with terrain deformation today, it was kind of fun carving a canal through the city with my grenade launchers (Look out, Minecraft!).

Firestart's next release should be in the next fortnight or so.

Koi Kitsune on Firestart and Derelict

Koi Kitsune, first person shooter fan and wickedly foul mouthed video game reviewer has discovered Derelict and Firestart and given both a good write up on his blog. An excerpt:

So, I have discovered 2 very fun games made by a kind fellow named Earok. I gave AqualungGameReview’s a project to review one of Earok’s games, “Direlict”. I also found another fun game by him called Firestart which is a remake of a C64 game, but remade into a first person shooter.

I'm always glad to hear when people have enjoyed my games =). Another excerpt:

Will these games be reviewed? Hell yeah, why do you even need to ask? I’m gonna ask Ken if he is definitely reviewing Direlict. I want him to review it and I’ll review Firestart.

Awesome, if this pans out, I'll finally be able to see a video review of my games. Naturally I'll repost the reviews here when they've been uploaded.

Giant robot

Today Anthony sent me some concept artwork for my Battlesuit Mecha project (the one I wrote a script for in April). I think it's awesome, and I intend to put the sprites in Blow Stuff Up, at least until such time I can get a 3D model for the game.

So anyway, here is a quick poster I made from Anthony's sketches.

So, I decided against upgrading to Drupal 7 in the end.

It was going to be too much of a hassle. Fortunately, the bitchin' Blue Masters theme is available for Drupal 6. So I thought, why not just do it? I wasn't going to get a whole lot else out of a Drupal 7 upgrade (except for being able to update modules without needing to use FTP. Ahwell).

The new theme certainly isn't perfect, but I think it looks head and shoulders above the last one. Not sure if I like the white background on the blog posts though. Any suggestions?


Drupal 7 Migration

I decided to bite the bullet and attempt a Drupal 7 upgrade. Unfortunately it didn't work and I was forced to restore a backup copy of my site.

Don't know for sure why it broke, but frankly the site is bit of a mess. Lots of modules that were used and now not used, as well as probably some artifacts left over from previous migrations (Originally a Blogger blog, then a Wordpress site before going to Drupal 6).

So, I decided to just start a new Drupal 7 site, and attempt to import the old content later. The development build is online at Not really any content yet, but I love the new theme and slider menu. It's from here if you want to try the theme on your own Drupal 6/7 site.

The new Earok logo is by Cobra Blade, I'm likely to start using it in my games.


The Room Knight

This will make more sense if you've seen the Room. Well, maybe not, but I still think it's awesome.

Going to see Rocky Horror Picture Show tonight.

Edit - No actually I'm probably not. I wrote the post awhile ago to publish today, have since reconsidered.

Dynamically adding or removing items from a C# collection in a loop.

Bit of a random post this one.

Strictly speaking, there is no way to dynamically add or remove items from a Collection in a C# Foreach loop. There are at least three ways I know of that this can be faked though, do you know any others?


The "Right" Way

for(i = list.Count()-1;i>=0;i--)



if (item.Delete) list.Remove(item);


This way cycles through the list backwards with a plain old For loop. Doing this forwards could be problematic if the size of the collection changes, but backwards should always be safe.


The "Easy" Way

foreach(var item in list.ToList())


if(item.Delete) list.Remove(item);


Simply create an entirely new list from the first one. I say "Easy" rather than "Right" as creating an entirely new list probably comes at a performance premium over the previous method (I haven't bothered with any benchmarking.) I generally prefer this pattern, it can also be useful in overcoming Linq-To-Entities limitations.


The "Strange" Way

var outList = new List(CustomObject);

foreach(var item in list)


if(!item.Delete) outList.Add(item);


list = outList;

I encountered this particular pattern in early versions of the Monkey programming language. Monkey originally had no way of removing items from a collection (No longer an issue), so the only way you could do it is to create a smaller list to supplant the larger one. This is probably the clumsiest and slowest of the three methods, but it has the unusual (but probably useless) advantage of not needing a remove method.


The Linq Way


Completely forgot about Linq, which is the simplest as far as code goes. Though I haven't tested the previous code it should work fine. Thanks to Arran for pointing it out.

Air New Zealand Safety Video

I had to watch this "entertaining" video twice over Easter, both on my trip away and my trip back. Now you have to as well.

Three steps to winning NaNoWriMo

A couple of weeks ago LifeHacker posted a three steps Systematic Approach to solve just about any problem. Except for the bizarre example of how to find a missing leg, I thought overall it was pretty framework for doing stuff.

The three steps in the article are surmised as:

  1. Understand the problem.
  2. Create a plan.
  3. Keep yourself motivated.

The article inspired me to write a post about the three steps in the context of writing a NaNoWriMo winning novel. So, here it is.

1: Understand the problem

A big problem with novel writing is that there are a lot of misconceptions. It's important to understand what novel writing is, and what novel writing isn't.

A novel is a lot of hard work, and nothing, even inspiration or constructive feedback will make it easy. It's a marathon that, at times, you need to force yourself through.

That said, writing a novel is a lot more fun than you might think. It's a fantastic voyage to meet the characters who inhabit your creative subconcious, and it's worth taking at least once, even if the end result is completely unreadable. It's the journey, not the destination, that's important.

However, a novel is not going to be good, no matter how hard you try, on it's first draft. Even when written by an experienced author. If Stephen King says that the first draft of anything is always shit, you'd better believe it. As the official NaNoWriMo guide "No plot? No problem!" (NPNP) suggests, you need to learn to "turn off your inner editor".

Writers block is not a legitimate excuse not to write. A talk by Charlie Higson I attended made me realise how lame the Writers block excuse is, it's akin to a Plumber claiming "Plumber's block", or someone using "Jogger's block" as an excuse not to go for a run in the morning. Good inspiration won't always be there, but it won't come back by doing nothing at all.

You will need to make sacrifices. In order to reach the 50,000 words in a month, you'll almost certainly need to limit your access to TV and the Internet.

2: Create a plan

Once you've fully understood the issues around writing a novel in a month, you can begin to plan it. Break up the 50,000 words into 30 days, that's 1,666 words per day, and make sure you can easily find out what the daily total is for any day. I did this by writing each daily total on a calendar.

Although NPNP suggests that you simply write freeform without worrying about the overarching story, I have personally found basic planning with The Snowflake Method to be enourmously helpful in constructing scaffolding around the story.

If you can make what seems to be a plausible plan on paper, you may be able to do it. If it's not possible for you to do that simple task, there's no way in hell it's going to work in reality.

3: Keep yourself motivated

Keeping motivated is the hardest part, approximately 80% of the people who attempt NaNoWriMo year on year fail.

Make sure you aim to keep at least ahead of your daily target every day, and reward yourself for success. Watching a TV show might be a good reward, and NPNP suggests that you should do this anyway as research for story structure.

Also use 'negative motivators' where possible. Constantly tell people about how you're going to write a novel, so you can suffer their humilation if you don't. NPNP suggests that you should offer to donate to a political cause you dislike, if you fail to win. (I wonder if GOP donations spike about the end of November..)

Keep remembering how great it'll feel to tell people that yes, you have written a novel and you are a legitimate novelist.

Sometimes, the motivation just isn't there, and there's nothing you can really do to help it. You just have to force yourself to keep going.


Well, that's it! Hope what I had to say is helpful to someone, somewhere. Maybe I'll do this again for game development.

Part of the reason why it was so crazy for me to take on ScriptFrenzy, is that simutaneously I took on an experimental Drupal project. is the brainchild of Simon Verbiest, an avid XBox 360 fanboy who was sick and tired of getting p0wned by foul mouthed Americans with better ping times. XBox Live doesn't make it easy to set up games against previously unknown local players, so his idea was to establish a site to allow XBox 360 owners to find and play against gamers in their local region who are into the same games that they are.

The original site was done in .NET, and the first thing I thought when seeing it was "Hey, I could do this in Drupal". It's certainly not the first site that's been ripped off in Drupal - Drupal developers Lullabot demonstrated how to make a free Drupal clone of Basecamp (a pay site) way back in 2008 - so I thought I might give it a shot. I let Simon know my intentions (Purely academic, I had no desire to compete with him) and we ended up deciding to bless the Drupal clone as the official version. So, it's now live.

There isn't much to see at the moment, but I'm cautiously optimistic the site might grow into something bigger and more useful.