Learning Something Every Day of 2016: COMPLETE

One year ago I set myself a goal of learning something every day for the entire year. Well I did it. Yay! The things I learned in December. Previously: January February March April May June July August September October November Problems One year ago, to the surprise of no one, I was feeling stressed and anxious during the Christmas and New Years holiday. Was I going to pass another year without accomplishing the personal goals I knew I was capable of?

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 the old fashioned way, Game AI Pro and it’s sequel are available as real actual books:

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. Metacritic's PC game releases sorted by score, circa Oct 25, 2012.


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.

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. AIR :( I might overlook this if I were running it on my main PC with 4GB (the future is now!

Pocket IRC is now free

Pocket IRC on Windows Mobile 5 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.