Thursday, November 02, 2006

SetBrowser utility a lifesaver

I wanted to pass on how I fixed Thunderbird recently when it ceased invoking firefox when I clicked on URL links.

I use the portable versions of Thunderbird and Firefox. I have been very impressed with how quickly the maintainers of those packages keep them updated. I think the 2.0 version of PortableFirefox was available before the regular version was! Unfortunately, after upgrading to Portable Firefox 2.0, Thunderbird ceased to be able to bring up Firefox when I clicked on a URL inside any email message.

I fiddled with this numerous ways but couldn't get it to work. I even tried installing the regular 2.0 firefox, but it still didn't work. I found a web page that described how to manually set the browser to use inside Thunderbird's config file. Still no dice. Argh!

Fortunately, another web page mentioned some freeware apps that did fix things for me. I simply downloaded the SetBrowser app here:

installed the program, and then ran it. The application was very easy to use and it was straightforward to tell it to set my default browser to the location of the Portable Firefox executable. I clicked the "apply" button and suddenly, like magic, my links in Thunderbird were working again.


One odd thing was that while Thunderbird was unable to open links for me, other applications were still working. For example, Directory Opus (my file browser of choice) was able to bring up firefox when I clicked on URL links. For some reason, Thunderbird was crippled and SetBrowser fixed it.

Hope this helps at least one person. if it does, email me to let me know!


Friday, September 08, 2006

What makes a good game feature?

We are doing some internal game design here at Snowblind, and as part of that I got to thinking about what makes a suggestion for a new feature worthy of inclusion into a game's design? The link I mention in this blog is an attempt to enumerate some of the more successfull mechaniscs used in games. I found myself wondering how you evaluate those mechanics for use in your game, and probably more importantly - how to evaluate new mechanics and game ideas for suitability.

Here's what I came up with, I'd love to hear what you all think. I bet there are some good articles on the web about this type of thing; if you know of any do share!

New Things (tm) should be:

1. Fun, fun, fun!
2. Fitting with the theme of the game.
3. Designed to avoid unbalancing the gameplay.
4. Inspiring to the player, urging them to play our game to experience it.
5. Enhacement of existing game design, resulting in a deeper and richer game experience. This is perhaps better said in consideration of its opposite: Avoid features that make the game overly complex or too disparate.

Bonus points for features that:

1. Distinguish the game from others in the marketplace.
2. Broadens the appeal of the game to a wider audience.
3. Can be expanded and explored more fully

What do you all think?

Monday, August 14, 2006

So what is a "thunk"?

What is a thunk?

This question was posed to me recently by a fellow programmer at work. He expected that I would know, since I have been in the industry for a while, but though the term was familiar I had to admit I didn't know what it meant. He went on to explain that a thunk was that bit of code which redirected a function call from the standard address in memory to a "thunk handler" which did whatever business it wanted to do and then returned control of execution back to the original target address.

Looking things up, this seems to be not quite the case. Or at least, this definition of a thunk seems to leave out the main use it has been put to which is to (apparently ) redirect code properly when moving between 32-bit and 16-bit libraries, ala the PC programming world circa Windows 3.1 (early 1990).

So what are the "official" defintions? Wikipedia has a great page, as usual. The official Wikipedia blurb on a thunk is:

  • a mapping of machine data from one system-specific form to another, usually for compatibility reasons. For example, running a 16-bit program on a 32-bit operating system may require a thunk from 16-bit addresses to 32-bit. Thunk in this sense may also refer to mappings from one calling convention to another or from one version of a library to another. This meaning is similar to the first—the "delayed computation" can be thought of as the "update" from the old format to the new.

PCMagazine's Encyclopedia has a different definition:

  • In a PC, to execute the instructions required to switch between segmented addressing of memory and flat addressing. A thunk typically occurs when a 16-bit application is running in a 32-bit address space, and its 16-bit segmented address must be converted into a full 32-bit flat address. On the other hand, if a 32-bit program calls a 16-bit DLL, then the thunk is in the opposite direction: from 32 bit to 16 bit.
WikiDictionary has this to say:

  • (computing) a mapping of machine data from one system-specific form to another, usually for compatibility reasons, such as from 16-bit addresses to 32-bit to allow a 16-bit program to run on a 32-bit operating system

Thursday, July 20, 2006

Audacity + Rhapsody (or Napster)

Did you know?: Using Audacity, you can record the music you listen to with Rhapsody or Napster. Install Audacity and then change your input from the microphone to the "Wave Out" device and you are ready to go. Then, queue up your desired playlist in Rhapsody or Napster and let it play. Hit the record button on audacity and let it run through the songs on your playlist. When it is finished, stop recording in Audacity and then go back and find the start and stop of each song. Select the proper portion of the recording and export that selection in either .wav, .mp3, or .ogg format. Do this for each song in your playlist and, Viola!, you now have a digital copy of the music you were listening to. The quality is as good as the service streams to your machine, which makes Napster the better choice for recording like this due to its higher audio fidelity. However, Rhapsody sounds pretty good too. I find either sounds good enough to crank up loud on my car stereo. I certainly can't tell the difference between these recordings and CD quality, though there doubtless is one. I have never had a terribly discerning ear when it comes to audio "quality".

It takes a bit of effort, but this is a great way to recover your long-lost music - especially if tracking it down through the traditional file-sharing methods has proven fruitless.

Now, naturally, this is not something they want you doing, and the legality is shakey at best. However, there are those who believe that they have a right to a digital copy of music they purchased on physical media. This holds true even if the music in question was John Schneider's Greatest Hits that they purchased in 1985 and lost in 1987. Such individuals feel quite comfortable procuring the music from that album in digital form by whatever means necessary.

I'm not saying I support such things (though I lean toward their side rather strongly). All I am saying is that you can do this, and it is really quite easy.

One importnat tip - turn off windows sounds by going to the Control Panel/Sounds And Audio Devices dialog in the start menu. Select the Sound tab and then select the "No Sounds" sound profile for windows sounds. This way you won't get windows beeps and blurps in the midst of your favourite song.


Monday, July 10, 2006

Bringing you up to speed...

I haven't written in a while, so I thought I would update you all on the latest achievements in my life:

1. Got a new PDA phone - the Sprint 6700. A nice review is here:

I chose this phone for several reasons. First, I wanted to ensure that I had a keyboard of some kind. I could have gone with the Motorolla Q or one of the older Treo-style keyboard devices, but without exception those PDA phones sacrificed some screen pixels to provide me with the keys. The slide-out form-factor of the 6700 allowed me to keep my precious pixels and get a better-sized keyboard to boot. The only cost was the thickness of the phone, which I must say is rather unweildy at something like 2-3" thick...

2. I bought an XBox 360.

Being a game developer by trade, this was an easier purchase to justify than it would be for ordinary mortals. ;) My fiance doesn't particulary believe that I really bought this for "research" purposes, and neither do I to be honest, but the bottom line is that I need to keep up on the latest gaming platforms and if that means iH ave to suffer through endless hours of exciting gameplay, well... so be it.

3. I bought 3 or 4 new hard drives.

I can't seem to stop buying hard drives. Every weekend some store is selling some hard drive for a rediculously cheap price. My last purchase was a 400GB hard disk for a measly 120 dollars. Whoa. How can I possibly pass that up? The result of purchasing several new drives is that I have displaced several smaller, older drives that had previousy been in my USB encolsures (of which I have four). I am getting to have quite a stack of hard drives on my computer hardware shelf.

4. I bought 2 new network-storage "units".

I bought a netgear network drive that can hold two separate hard drives and present them as a network share on your local area network. This was a good way to let me use some of those new hard drives I had purchased without displacing existing drives. I also bought a DLink network storage device that only holds one drive but can daisy-chain 2 additional USB enclosures shoudl I so desire.

5. I bought a Nintendo DS Lite

This little bugger is great! I don't know why I waited os long to get one - because it is a great handheld gaming platform. I just wish that they had used one large touch-screen instead of two separate screens. Whomever thought that was a good idea should be taken out and shot -- umm... unless it was the same bloke that fought for the use of the stylus and the touch screen - in which case he/she should just get a stern talking to.

6. I bought oodles of PSP games

I bought a PSP a long time ago, but I keep buying new games even though all I ever seem to really play is Untold Legends 2 (or whatever the second one is...)

7. I bought a room air conditioner that doesn't work.

Damn thing. I'm taking it straight back to Home Depot as soon as I get around to it....

Well, that's about all the major purchases I made. I am hoping to buy, in the future, the following:

  1. A PSP LocationFree unit - to let me record, view, and manage television programs from my PSP or PC.
  2. A PS3 when I can mortgage my home (I'll need a home to mortgage first).
  3. A Nintendo Wiiiiiii (how many i's are there in that stupid name?)
  4. A new PC - at least parts of one. My current PC seems to feel the need to reboot constantly and to turn off all my USB hubs and lock up. Annoying!
  5. Get a media PC set up in the living room so that I can watch all those divx recordings of my DVD collections that I have gathered through my use of newzbin, giganews, and newsleecher.

That's all for now. Tune in for more frequent updates - after all there are at least 3 people that read this blog ... and for that mighty readership I must make certain sacrifices and keep things updated regularly.

-Michael Moore (Seattle, WA)