

One of the Google Adsense advertisers that showed up on this site have a sign-up page with the following beautiful ad copy on it. You'd think that if you had the money to develop a computer game, and host servers, and pay for advertising, you could find someone to proof-read your Engrish for another $50...

Recently, I had the need to turn a hundred different texture images into "profiles." A profile, in this case, was a 2D shape that follows the outline of some feature in the texture (like a house facade), texture mapped with that feature. Rather than build them all in a modeler such as 3ds Max, and separately exporting them, I came up with a simple tool for loading a bunch of images, building those profiles straight on a copy of the image using clicking, saving all the profiles I've built (for later re-use or editing), and exporting to a bunch of .DAE (collada) or .X files in one fell swoop.

Microsoft has the Connect site, which works as a public feature request and bug report database for most of Microsofts products. At times, I do file bug reports on that site. The bugs have a "vote" feature, where the Microsoft groups apparently may pay more attention to a bug with higher votes.

Don't Repeat Yourself.
That's a great rule for writing code. If you find that you repeat yourself in code, then you're probably doing something wrong. Writing code should be about expressing what's unique about something, not filling out standard forms of data. (Copy-and-Paste coding is the worst version of this)

It used to be, a microprocessor was simple. It had instructions like "Load the accumulator from the address stored in the X register (LDA(X))." Or "Add register B to register A (ADD B, A)." And that was pretty much it. Time marched on, and we got more esoteric instructions, like "load effective address of scaled register indirect with offset" (LEA eax, [ebx*8+ecx]).

Show how to generate a random planet based on midplace displacement noise and
a simple height map color ramp. Note that you typically want to add some cloud
cover for the best effect.
Press Space / A to generate a new planet.
Press Backspace / B to view the height map.
Press Y / Y to view the color map.
Released into the public domain by Jon Watte. You may freely use this in your

When developing a PC program for the XNA framework, you usually find that you need to do mouse picking. This means taking the mouse coordinates, and turning them into a ray that you can then raycast in your world to see what, if anything, is being hit when the user clicks the mouse.

1) WORLD matrix. This takes vertices from object-local space (0,0,0 in the middle of the object) to world space (position and orientation applied based on 0,0,0 at your "world origin" position). This is a convenient space to do normal mapped lighting and environmental reflection in.

2009-03-12 latency2.txt README -- jwatte@forterrainc.com
This program measures scheduling latency/jitter for a CPU bound process on a UNIX system. It is intended to determine the suitability of various virtualization products to hosting real-time processes such as game servers. To compile it, use g++ (make sure it has been properly installed!):
$ g++ -o latency2 latency2.cpp