Cards Against Deqmandity

Fri, Jun 20, 2014

My two very good friends Amanda and Declan are getting married, and to celebrate, Janice and I throwing them a pre-wedding party. (No “bachelor” party tropes here!) By the time this post is published by Blogger, the party should just be wrapping up, and my favorite surprise should already be out of the bag. Declan and Amanda love games, and Janice and I wanted to have a game-themed part to the party.

Java and Game Development

Fri, Jan 11, 2013

It seems like at least once every few days, someone is asking whether Java is an acceptable language for game development over on /r/gamedev. I’m going say something potentially unpopular: please don’t use Java. A lot of people will tell you that the only way to do real game development is in C or C++. I’m not one of them. Honestly, I love high level languages. And, for the most part, I’m a firm believer in saying “use what you already know”.

GnuPG Dice!

Fri, Jan 4, 2013

Many months ago, I wrote a little GnuPG-verified dice CGI page for myself and my gaming group to use when resolving gaming situations over email. (Feel free to use it yourself, you can check it out here.) It’s inspired by other verified dice web applications out there. But while other scripts require you check a roll on the site itself, either by cut and pasting into a form, or by finding the roll in a list, I wanted something I could verify easily by looking at the message in my mail reader.

Multi-processor compilation in older Visual Studios

Thu, Jan 19, 2012

I’m working from home today due to Seattle’s OMGSNOWPOCALYPSE2012. Lamenting the lack of IncrediBuild here at home, I decided to parallelize my builds - if only across four cores instead of across the entire office. Visual Studio 2010 has an option for parallelizing C++ builds within a single project (as opposed to parallelizing the building of multiple projects, which has long been supported) in the project configuration properties under C/C++ → General → Multi-processor Compilation.


Mon, Jan 16, 2012

I’ve been a Wireshark devotee for probably a decade. I’m sure I’ll continue to be a huge fan for everyday use. I had heard stories about Microsoft’s Network Monitor being awesome a few years ago at GDC, but hadn’t actually tried it out until now. I have to say, for developing custom protocol parsers (for debugging the mutliplayer game you’re working on, for example), it wins hands down. I might never write another Wireshark dissector again.

MSVC and Templates

Tue, May 31, 2011

template <typename A> class Foo { public: Foo() { Bar<A> b; b.method(); } }; template <typename A> class Bar { public: void method() {} }; int main( int argc, char** argv ) { Foo<char> f; return 0; } Take a look at this snippet of code. Does it look valid to you? On first glance, it might. But if you run it through your compiler… hmm, wait.. MSVC thinks this is valid code too.

Fixing Git "out of memory" errors on Windows

Wed, Feb 9, 2011

Googling around, I found a lot of people had the same problem with Git on Windows that I did: large files (where “large” means above 350MB or so) cause “out of memory” errors. A quick look into the file causing the error, (ugh, perl), shows the reason right away: they’re doing nice, small 1KB reads of the file blob in a loop… but collecting the whole thing in memory before writing it all out.

A look at modern DVCSs

Sat, Feb 5, 2011

I’ve been a user of the Bazaar distributed VCS from Canonical (the company behind Ubuntu Linux) for a while now, at least for my personal projects. When I first chose it, I had already spent some time playing with Darcs for a few small projects. Darcs got its start in 2001 with roots in the [GNU Arch]( /gnu-arch/) project. (Bazaar’s predecessor - also named Bazaar - also has its roots in Arch.

Manifest gotchas

Fri, Dec 25, 2009

For those of you using Visual Studio 2008, and using it’s C++ TR1 support in SP1, here’s something I wish I hadn’t spent so much time tracking down.. TR1 features only exist in 2008 SP1, but the linker will happily build a manifest to link against the pre-SP1 CRT even if you’re using TR1. Some systems (including your development machines) will have proper side-by-side library redirection from the old CRT to the new one.

"Scripting Languages" vs "High Level Languages"

Sat, Apr 28, 2007

Recently, Joe wrote in his blog: As I see it there are three kinds of languages in this world: Hard to write, but blazingly fast: C and C++, or even assembly if you’re really hard-core Easy to write, but so slow that you have to use them sparingly: PHP, Lua, Python, Perl Flash Java fits into an awkward niche between 1 and 2. It’s easier to develop in than C++, but not enough to keep up with the scripting languages, and yet it’s far too slow to write the whole game in.