Jomeokee Trail at Pilot Mountain

Heavy Updates

The official Team Fortress 2 blog has word of the upcoming update to the heavy class. There are tons of additions in the pipeline:

  • New game type (as yet unannounced) with five new maps
  • New payload map
  • New community made map
  • Three unlockable weapons
  • Thirty-five new achievements

An official heavy update site is revealing new information each day this week, as well as Monday and Tuesday of next week. So far, they’ve revealed the new community map (cp_steel), one of the new unlockable weapons (a pair of boxing gloves), and the list of achievements (though none of them have descriptions yet). As before, a free weekend will be held for folks new to the game. I’m looking forward to this update; it’ll give me a reason to jump back into TF2.

One Bad Mutha

I was saddened to hear that music legend Isaac Hayes died on Sunday. He was an incredible composer and performer, and his additions to the music world will be greatly missed. Of his many works, my personal favorite (and, in my opinion, his best) is the soundtrack to the classic 1971 film Shaft. I highly recommend picking it up; it’s top quality stuff, especially if you’re a jazz and soul fan. While you’re at it, pick up the film too; I consider it one of my top ten favorite movies.

Kayaking Fun

My dad and I took a 4-hour kayaking class this afternoon, from the folks at Frog Hollow Outdoors. The “intro to kayaking” class was incredibly thorough, and I learned a ton about how to kayak correctly. Topics covered included a number of various paddling strokes, wet exits (what to do when your kayak flips upside down with you in it), deep water rescues, and more. It’s some of the best $68 I’ve ever spent. I had a blast, learned way more than I thought I would, and got excellent exercise (I’m so tired at the moment).

If you’re in the Triangle area, and you’re looking for a way to learn about kayaking (or canoeing for that matter), check out Frog Hollow. Our particular instructor, a guy by the name of Banks, was incredibly knowledgeable and very friendly. It was well worth the trip, and I’d do it again in a heart beat. My next goal: river kayaking fundamentals. I can’t wait.

Fixing Pathfinding

I just finished reading an excellent article on how to fix pathfinding in games. The author presents a number of excellent examples of how today’s pathfinding can break (with examples from legendary games like Oblivion and Half Life 2), and offers a great solution: use a navigation mesh instead of a waypoint graph. Genius.

Default Startup Projects in VS 2005

I ran across another weird and subtle bug in Visual Studio 2005. If you’ve got a solution with many project in it, you can set one of those projects to be the default project at startup (i.e. when you open the solution file). But this setting apparently resides in the user options file (.suo), which is something we don’t keep in our code repository (since it differs for every user). So how can you set a default startup project that affects anyone working with your code? Simple: hack the solution file.

Thankfully, the solution file is just plain text. Apparently, if there’s no user options file for a given solution, Visual Studio 2005 simply selects the first project it comes across in the solution file. Here’s a quick example of what a solution file looks like (wrapped lines marked with »):

Read the rest of this entry »

Unicode and the Web: Part 1

Dustin and his wife recently uncovered an interesting limitation of my Monkey Album software: characters outside of the ISO-8859-1 (Latin 1) character set don’t render properly. This comes as no surprise, seeing as I didn’t design for Unicode. Being a rather egregious display error, I decided to set out and fix the problem. In the process, I learned quite a lot about Unicode, and how it affects web applications. This post will be the first of two detailing how to add Unicode support to a web application. I will only be exposing a tip of the Unicode iceberg in these posts. The ideas and practices behind Unicode support can (and do) fill the pages of many books. That said, let’s jump in.

Read the rest of this entry »

Troubleshooting VS 2005 DLL Issues

Recently at work, I spent a fair amount of time debugging some strange run-time errors in one of our test tools (after having ported it from Visual Studio 2003 to VS 2005). When starting up a debug build of the tool, I would get the following error message:

An application has made an attempt to load the C runtime library incorrectly. Please contact the application’s support team for more information.

This error message turned out to be a red herring, though it pointed me in the direction of the actual culprit: a circular dependency chain of debug and release versions of various Microsoft DLLs. In trying to figure out what was going wrong, I ran across an incredibly helpful article on troubleshooting these kinds of issues. The author presents seven different scenarios that can arise with executables built in Visual Studio 2005, along with solutions for each one. It’s a great resource to have if you run into these kinds of problems.