jwatte's picture

MUD/Telnet terminal emulation

Now and then, someone will say "hey, I want to write a MUD (or some other text-based program), and I want the text to be in color -- how do I do this?"

The answer actually requires a little bit of understanding of pre-Internet computer arcana, so here we go:

jwatte's picture

A texture of grass!

Here's a texture of a grassy field.
I made it by customizing a downloadable filter for the wonderful FilterForge application (which now comes in version 2!)
I hereby grant this texture into the public domain.
jwatte's picture

Digging through older code

In my career, I've dug through a number of scene graph renderer internals. Almost always, they claim to be "hardware independent" by abstracting the hardware, and then they go ahead and expose functions like "bindSecondTexture()" and "setAlphaBlendFunc()" to objects, and have objects "render" themselves by calling those functions.

jwatte's picture

Taking XNA 4.0 Beta for a spin: Terrain Editing

I'm taking the XNA 4.0 beta for a spin. I don't have a Windows 7 phone (who does? :-) so I can't get motivated to start porting things like kW Animation / X-port to it, but I thought I'd check out the new and improved render target and effects APIs. Here's a little screen shot:

jwatte's picture

APB: The Good, The Bad and the Tech Support!

All Points Bulletin -- a great idea for a MMOFPS. Also, a nice vehicle for in-game customization of clothing and vehicles.

You can draw decals. You can sculpt avatars. You can paint cars. The game even has a built-in step/pattern sequencer!

jwatte's picture

So you want to be a game developer?

Once in a while, I'll hear a question like "I'm tired of flipping burgers/school/my job as a sewer cleaner; how do I get into games programming?" Some people will say "don't do that -- game developers are treated like the scum of the earth, and careers are brutal and under-paid." I think that doesn't quite capture reality, though.

jwatte's picture

MD5, SHA1, SHA256 and SHA512 hex digests in Erlang

Orignal post 2011-06-10:
In various web APIs, there is some confusion between the representation of a hash value.
There exists APIs where a password is validated as, say, MD5(challenge + MD5(salt + password)).
Let's leave aside the fact that MD5 is not a secure algorithm anymore (you can procedurally generate an input that generates any MD5 hash value you want in cheap-to-compute time).

jwatte's picture

The XNA Offline and Online Highscores Component Version 2 (distributed leaderboards, sort-of)

XNA Game Studio makes it possible to write games for the Xbox without being a developer with good publisher contacts and lots of money to pay for marketing and Xbox development kits. This is great!

However, because the XNA Indie Games system is not fully controlled by Microsoft, certain features of Xbox Live! are not available, because they would be too easily abused. These features include online Leaderboards, and unlockable Achievements.

The XNA community has developed alternatives to those functions. Many XNA games contain "Awardments" that can be unlocked, and many more XNA games use the XNA Network Highscores component to implement distributed, peer-to-peer highscore sharing. The name for this is generally "Online Highscores" rather than "Leaderboards," because the latter name is reserved for use by Microsoft-certified titles that use the real Xbox Live! functionality.

This article introduces version 2 of the XNA Online highscores component, which is free for you to use in your own game under the terms of the MIT license.

jwatte's picture

Structure of a user-hosted client/server network game

Recently, a question came up about how to structure a client/server networked game where users can host games that other users can join. I think I did a reasonably concise write-up of a common-sense approach that's been successful for many years, so I'm archiving it here for posterity:

jwatte's picture

VMWare Workstation DNS doesn't work right

VMWare workstation is in many ways a great product. It allows you to do all kinds of nifty set-ups that let multiple virtual machines talk to each other and the rest of the world, within the confines of your local PC.

However, there are some problems with it. I have a couple of virtual machines that I use as a sandbox for developing networked applications at work. These are hosted inside a Dell Inspiron XPS 1330 laptop. The laptop travels between networks frequently. At work, it's usually plugged in, but sometimes gets un-plugged and goes on wireless-G. On the train, it goes on a Sprint WAN card. At home, it generally goes on another wireless-G network.

Syndicate content