A Simple Data Serialization System for C++

It’s been a while since I last blogged, as I’ve been quite busy working on Drifter; both the game and the physical rewards for Kickstarter. Many of which, I might add, have already been produced and sent off to my backers. Also a close family member was diagnosed with cancer over the summer and that threw me for a bit of a loop so things have been a bit out of sorts, however while they’re not out of the woods yet things are looking very promising. So in an attempt to return to some level of normalcy I’m going to try and get back to my “hectic” one-blog-a-month-or-so schedule.

Continue reading

Some Thoughts on Kickstarter

So, as you may be aware, I launched a Kickstarter campaign for my upcoming space trading game Drifter a little over a week ago and it’s gone quite well indeed. As of the writing of this post, it’s nearly 70% of the way to its $50,000 goal, and while it’s not over yet, I’m cautiously optimistic that it will meet that goal by the end of the campaign. Even so, a few people have expressed some surprise about the campaign’s performance, and with only 45% of all campaigns succeeding and just 25% of video game campaigns meeting their goals, who would blame them? To be honest, I wasn’t even sure how well it was going to do! Pleasantly surprising performance aside, I must admit this is something I’ve been planning to do since late last year, and a lot of thought and preparation has gone into it which is why I’d like to share some of those thoughts here.

Continue reading

Drifter Update: The Poster

I’m really excited to unveil something that I’ve wanted to have for Drifter for a while now. An official poster, done in a retro sci-fi novel cover/movie poster style. It’s been created by the incredibly talented illustrator Steve Courtney, and I can honestly say I couldn’t be more pleased with how it turned out.

I’m making a very (very) limited run of 18″x24″ archival-quality wide-format prints to take with me to GDC 2012 (in less than two weeks!). I’ll have to think of some clever way to distribute them, assuming anyone actually wants one ;) Chances are you won’t be able to get one of these, however, I have something special in store to announce sometime after GDC which should see them get a wider distribution.

Edit: Steve has blogged about the poster as well.

Anyway, without further ado, here you go:

The Best Damn Cookies… In the World

Mmm... Cookies.The other day I rediscovered a cookie recipe my mother used to make often when I was a small child, but I distinctly remember not liking them or at least thinking I didn’t like them so I never actually really had one until a few weeks ago. When I bit into the first one I briefly toyed with the idea of building a time machine for the sole purpose of hitting my younger self upside the head for being so picky and missing out on a lifetime of enjoying what is surely the Cookie of the Gods.

Continue reading

Pluggable AI Using Polymorphism

I was talking briefly on Twitter the other day about how I was using polymorphism in C++ to handle different types of AI in Drifter and someone suggested I should make a blog post about it. As I’ve been wanting to post something new for a while, I figured why not!

I apologize in advance if this is not the Right Way to do this, but it works, and that’s the main thing. Also I reference C++ but any object-oriented language that supports sub-classing should be able to implement something similar.
Continue reading

How to Finish a Game

I posted a tweet yesterday which offered some advice concerning finishing games:

How to finish a game: get part way through a project, get an awesome idea for another game, ignore it and finish the one you’re working on.

It ended up getting retweeted quite a few times, so I guess it kind of struck a chord with people. With that in mind I got to thinking about other barriers to completing games I’ve encountered over the years and figured it would make a good blog post.

Having tried to start this whole game development thing once before in the late 90′s, I’ve done quite a few things that have derailed me from actually completing a game. When I started again in 2009, I knew I had to avoid all of these pitfalls in order to actually get a game out the door, so that was my biggest priority, actually finishing a game. I’ve finished 2 games since then, and I’m on my way to completing my 3rd, so hopefully this advice may prove useful to you as well.

Continue reading

Mini-Rant: Videogames Are Dead, Long Live Videogames!

Business oriented people that mostly care about money have discovered that the videogame industry generates a lot of money. They have embraced this concept with gusto, creating games that effectively amount to nothing more than psychologically engineered treadmills disguised as toys that force game players to pay money to keep playing. This is upsetting to many people, and understandably so. But instead of realizing that this is an inevitable, if unfortunate, evolution in any popular medium quite a few vocal individuals are wringing their hands and shaking their heads, proclaiming that this is surely the death of videogames as we know them.

Frankly, this line of thought is a festering load of dingo’s kidneys. The videogame is a medium, not entirely unlike the motion picture, and just because Michael Bay is releasing Explosions 4: Revenge of Explosions next summer doesn’t mean that Francis Ford Coppola will never be able to direct a movie again in his life.

Yes it kinda sucks, and yes people have a right and even duty to point out that it sucks, why it sucks, and how they think they can make things better, but it’s not going away and neither are the kinds of videogames that helped to define and continue to define this industry. That is unless we stop making them, but whose fault would that be?

Addendum: Just to clarify, there’s nothing inherently wrong with making games as a business (I mean, that’s what I’m trying to do after all) and there’s nothing particularly wrong with the free-to-play business model. Just like everything else in life, this is not a black and white issue. All I’m ranting against here is this idea that videogames are all of a sudden dead because a certain (tiny) subset of the industry is carrying out business in a way that people find questionable.

Converting Game Sound Assets via OS X to Save Space and Memory

Another audio-related mini-post!

I had mentioned on Twitter earlier how I had written a script to convert all the WAV assets in Red Nova from unnecessarily large 32-bit floating point 44 kHz format to a space and memory saving 16-bit integer 22 kHz format. This basically cut the size of the files to less than half, which is pretty fantastic when you’re dealing with a hand-held device with memory constraints like the iPhone. Hell, it will also improve loading times!

Anyway someone asked me to share the script I made, which is a fairly simple Bash script. Just create a file somewhere, call it something like convertwavs.sh, and paste the following into it:

#!/bin/sh
mkdir oldwavs
for f in *.wav
do
   cp $f oldwavs/$f
   afconvert -f WAVE -d LEI16@22050 $f $f
done

Run chmod +x convertwavs.sh from the terminal to make it executable, then change to the folder containing the WAV files you want to convert and run the script like so:

/path/to/convertwavs.sh

It will make a sub-folder called oldwavs and copy the originals there in case anything goes wrong and then convert the files in place. That’s it!

Low-Poly Modelling Screencast!

It’s been a while since I last posted something to Ye Olde Blog, so time to fix that.

A few days ago someone linked to the low-poly work of Kenneth Fejer on Google+ and apart from being awesome it gave me the idea to try and play around with the style. Not only was it low poly work, but the textures had an almost pixel-art appeal to them which I found intriguing.

You see, I’m a programmer most of the time but I do enjoy doing arty things, which some may say is unusual for a programmer, but when you’re making all of this stuff on your own it certainly helps. I don’t think my models are the best by any stretch of the imagination, but they’re certainly passable, but one thing that I’ve always never been satisfied with is my ability to texture them. This is why this pixel-art style appeals to me, because it’s a lot easier (at least for me) to create pixel-art. Continue reading

Quickly Convert Your Game Music to AAC on OSX

This is just a quick post aimed at iOS developers covering the incredibly easy command-line method to convert your music files to AAC format. The reason you might want to do this is because MP3 is encumbered with a patent which covers the distribution of MP3′s commercially, even as part of a game (see here). It should also be noted that Apple’s license for their hardware MP3 decoder does not in any way cover your distribution of MP3′s in your game.

You could convert to OGG Vorbis, which is of course free and clear to distribute as you please, however many devices (including iOS devices) do not support hardware accelerated decoding of OGG Vorbis files so you are losing some of your CPU cycles for your music decoding. Luckily, there is a third option: The Advanced Audio Coding or AAC format, which of course is supported in hardware by all of Apple’s portable devices. There are patents surrounding AAC but none of them restrict the distribution or streaming of files encoded in AAC.

Anyway now that I’ve spent all that time leading up to a single command, here it is…

afconvert -f m4af infile.mp3 outfile.m4a

And that’s it! As far as I’m aware you can use any of the iOS SDK methods for music playback with this new file.