Learning Something Every Day of 2016: September Report

I made some art and not much else. Previously: January February March April May June July August Hopefully a quick update this month since I’m packing and getting ready to go to Japan! Visuals In the name of moving forward on game visuals I focused on art this month, with some success. Went through some drawing tutorials and practices, did some modeling in Blender. And most productively, tried out the pipeline for getting blender animations into Unity, trying to get a feel for how materials, animation clips, etc.

Learning Something Every Day of 2016: August Report

Month 8 down. How is a year simultaneously so long and so short. Previously: January February March April May June July A Wizard Is Never Late If only I were a wizard. So here we are almost half way through September and I’m writing the August update. Not great as far as being on time goes, but it is getting done. How did August go? Well it was a mixed bag I’ll tell you.

Learning Something Every Day of 2016: July Report

Month 7 down, and 4 months of working on my side project. Previously: January February March April May June Ugh It’s Boring It was very temping to procrastinate on writing this post, but it’s sort of part of the plan and practice in itself, so here we are! And Inspiring? One of the things that has stood out to me so far this year in talking with friends and coworkers, or whoever it comes up with, about my learn-a-thing project is that a decent number of people respond along the lines of “that’s a great idea!”, or “wow, that’s so inspiring!”.

Learning Something Every Day of 2016: June Report 'Half Way There'

A bit late on the update this month, as I spent part of the Canada Day long weekend at a rental cottage with my family. Happy Canada Day! Previously: January February March April May There’s Good News And Bad News The good news is: I made it to the half way mark! Huzzah! I am very pleased with this result-so-far. The bad news is: Lots of interruptions this month. The other good news is that the things that were happening to interrupt weren’t particularly bad things in themselves, but I did let them distract me from making progress on learning a thing.

Learning Something Every Day of 2016: May Report

I’m approaching the halfway mark now. Some of the things I am feeling at this point include: Cool, this is going really well; Is that really all I’ve accomplished in five months?; and How is the year almost half over!? Every day for five consecutive months is almost certainly the most consistently I’ve ever done anything aside from maybe playing World of Warcraft during certain years past, but that wasn’t really a choice as much as something that just happened.

Learning Something Every Day of 2016: April Report

So this is still a thing that I’m doing, that’s good. The hardest part is probably taking the time to make these review posts, but they are a nice way for me to check in with where I’m at. While last month had a focus on drawing, as well as some general programming background knowledge, and a detour to play around with Arduino which was a lot of fun… this month was about getting serious.

Map Of The Ninja

I’ve been meaning for a long time to write about how I did some of the things that went into Mark of the Ninja, and since somebody asked about the map rendering on twitter, it’s as good a time as any. There isn’t much to tell, it’s done in a very simple way, but I was ultimately quite happy with how it turned out. It was potentially one of the very first real rendering tasks that I did on the job as a game developer, so there was a lot of learning for me while I was working on it.

Game AI Pro Articles Available For Free

The first Game AI Pro book was published back in 2013. As part of the publishing deal, those articles have now been made available for free on the web: Game AI Pro …including one I wrote covering some of the details of the AI in Mark of the Ninja: Chapter 32. How to Catch a Ninja: NPC Awareness in a 2D Stealth Platformer Or, if you want to enjoy reading

Learning Something Every Day of 2016: March Report

Three months and still going strong-ish. A whole quarter of a year has passed, yikes. At times this month the marathon feeling of this endeavor started to sink in. Am I still doing this I ask? Looks like! Dedicating 30 minutes to learning is still not a problem. But I had another goal for this month… drawing! How’d that work out? Pretty well. Originally my goal was Draw every day of March but that turned into Complete all 30 exercises from You Can Draw In 30 Days.

Learning Something Every Day of 2016: February Report

After two months, the 30 minutes of learning every day has become routine enough that I don’t really notice it. It’s just a thing that I do, the time flies by, and then I have the rest of the evening to do whatever. It no longer feels any different from before when that 30 minutes would have simply been burnt away idly reading twitter or some other ill-defined, unrewarding activity. You may notice a pattern.

Learning Something Every Day of 2016: January Report

For the past month I’ve had a mission: to learn something new every day. And I’m pleased to declare this mission a resounding success. There was that one day where I just played games all evening, but I’m not looking for perfection, only progress. Some of these things were completely new to me, some of them were review, some of them were known but not well understood, or just forgotten. Why Last year I read an article which described a technical topic relevant to my job.

In Which Statements Are Made Against #gamergate

It took me a really long time to write this post. I’ve re-written it several times. Every time I try I can’t quite figure out the best way to put together the things I want to say, so I give up until I think about it again a few weeks later. So instead of putting them together, I’ll just put them apart: There are many subjects about which I have opinions, of both great and small importance, but I generally don’t feel inclined to share them because, really, who cares?

Mark of the Ninja AI article published in Game AI Pro

Over a year ago, I submitted an article to a new AI book project by Steve Rabin (of AI Game Programming Wisdom). That article was on the sensory/detection system we used in Mark of the Ninja, and the book has now finally been published! Game AI Pro: Collected Wisdom of Game AI Professionals See Chapter 32. How to Catch a Ninja: NPC Awareness in a 2D Stealth Platformer. It was a lot of fun to write and an interesting experience getting the article ready for a print publication.

Pocket IRC is Open Source

Seeing as how the Windows Mobile platform for native C/C++ applications has effectively been killed off (at least for consumers) by Windows Phone 7 which runs only managed .NET applications, it seems like as good a time as any to release the code and maybe somebody will find some use for it or learn something from it. [I wrote this post in 2010!] Pocket IRC’s source code is now available under an MIT license.

Mark of the Ninja: Best. Game. Ever.

Mark of the Ninja was recently released on Xbox Live Arcade for the Xbox360, and even more recently for Windows on Steam on Steam”). I was one of the programmers on Ninja, my first project at Klei Entertainment. I’d just like to take the time to point out that from Oct 24-25, 2012, Mark of the Ninja was the highest rated PC game… ever. Mark of the Ninja ranked #1 at a humble 97⁄100, beating out such gaming giants as Half-Life 2 and Out of the Park Baseball 2007.


I wrote this little story many years ago. It was originally posted as a section on the EFNet #winprog channel FAQ. The oldest copy of the FAQ page that the Wayback Machine has is 2001, so it’s at least that old, if not a bit older. Since then, I’ve been occasionally curious to see if it ever gained any traction, and so I plug a quoted section of it into Google to see how many hits I get back of pages that have copied it.

Memory Sand - Distributed, Peer-to-Peer, Redundant Data Storage In A Can

Time for a bit of futurism. I would like to propose a technology, and I will call it Memory Sand, you heard it here first! This is an idea I had quite a while ago, and maybe you or other people have had the same idea or are working on it already, but in the event it’s at least a moderately original concept, I figured I’d throw it out there. Memory Sand Computer memory is getting smaller and smaller (or in the case of your typical stick of RAM, we’re packing more and more capacity into the same size device).

Twitter OAuth in C++ for Win32 - Part 3 - Updating Twitter Status

Part 1 covered the OAuth process at a high level, and Part 2 went over the example code in detail. Here in Part 3, we’ll finish things off by adding support for doing OAuth POST requests, enabling you to update your Twitter status. The example project and source files are available on Google Code; C++ code for Win32, with a Visual Studio 2008 project file. OAuth POST Requests Doing a POST request isn’t much different from doing a GET request, but there are still a few important things that you need to get right and, like all things OAuth, if there is a single character out of place somewhere it won’t work.

No Sockets for Windows Phone 7

Update: Socket support was added in Windows Phone 7.5 So this weekend I was looking into some Windows Phone 7 development, with the intention of getting started on a WP7 port of Pocket IRC. It was all progressing along handily until, much to my dismay, I discovered that the initial release of WP7 will not provide application level support for sockets. I’ve seen other more authoritative links on the subject, but can’t find them at the moment.

Twitter OAuth in C++ for Win32 - Part 2

Part 1 covered the OAuth process at a high level, and Part 2 goes over the example code in what will likely turn out to be too much detail. The example project and source files are available on Google Code; C++ code for Win32, with a Visual Studio 2008 project file. Update: Part 3 builds on the code in this section, however the older code as discussed here is still available under tags/blog-part-2.

Twitter OAuth in C++ for Win32

There seems to be lackluster support for Twitter in the C++ community. I haven’t yet seen a single Twitter client for Windows written in C++ that was… acceptable. Accessing the Twitter API using Basic Authentication is pretty straightforward, however Basic Authentication is going to be turned off (dead link) on August 16th, 2010 (last I checked), and after that will require all applications to use OAuth. Having looked into what it would take to implement OAuth, I’m not surprised that few people have jumped at the opportunity to do so.

Why are Twitter Clients all AIR or .NET?

I currently use twhirl, because it’s the only Twitter client I’ve found for Windows so far that I can stand. It’s simple, unintrusive, single column, and just generally looks decent and works well. There are a few problems though… 1) It’s written in Adobe AIR. Task Manager reveals that twhirl is second only to Outlook in using up my precious, precious RAM. I might overlook this if I were running it on my main PC with 4GB (the future is now!), but I run email, IRC, messaging clients, etc.

Pocket IRC is now free

Pocket IRC is my IRC client for Pocket PC and Windows Mobile devices. Version 1.3 has been released removing registration requirements and is now available for free, previously $14.95 USD. This release doesn’t add a lot of new functionality, but it had significant re-factoring internally a couple of years ago, and not a whole lot of testing since then, so fingers crossed. The free release is a stepping stone to open sourcing the code.