Selective searching in Windows XP: When search all doesn’t search all

A company I do work for upgraded their desktops from Windows NT 4.0 to Windows XP a few weeks back. Recently, one of the workers at this firm came to me with a problem. He used to use the “Find Files” feature in Windows NT 4.0 to search for files based on file content. In Windows XP, he does the same with the “Search for a word or phrase in the file” feature… but he doesn’t find files under XP that he used to find under NT.

A quick little Google search (using the keywords "windows xp" search "word or phrase in the file" "not found") landed right on a Microsoft Knowledge Base article, 309173: Using the "A word or phrase in the file" search criterion may not work. Apparently, Windows XP “improved” the file content search feature by not actually searching for the content in all the files and file types you specify. As a result, doing a content for search in files with extensions like .SQL or .CSS will not work.

OK, I can handle a feature change, but they probably should clarify exactly what they mean when you are searching for “a word or phrase in the file” when your file criteria is *.*. Even more, the resolution to the problem (as outlined in the support article) is about the most obscure “fix” I’ve ever seen. At least they documented it!

Wasting time with junk e-mail

I received an email today from a friend that set off the BS detector. Here’s a snippet:

Sorry, guys, it’s quick and for a kid’s school project! This is for a science fair project. If you could do this I would appreciate it! DON’T ASK, JUST PLAY! Copy and paste this letter into a new email (PLEASE do NOT hit "Forward"), then read the list of names. If your name is on the list, put a star * next to it. If not, then add your name …

No, I didn’t look to put a stupid little star next to my name. Instead, I went to Break the Chain, a Web site dedicated to stopping junk mail and misinformation. Sure enough, this chain e-mail has been around for a while in a few different varieties. It’s pure time-wasting junk.

My corrective action: reply (only!) to the misinformed friend who sent me the original email with a link to this blog entry. With any luck, I’ve eliminated one person from the list of e-mail chain propogators.

Gamasutra article on multiplayer games and database design

If you’re developing games and use a database to keep track of things, you’ll be doing yourself some good by reading the article MMP Database Mini-Cookbook: A Half Dozen Recipes To Aid Development by Jay Lee, published yesterday (9/22/04) on Gamasutra. The author provides six tips on designing your database schema to handle multiple shards/servers, localization, class to database relationships, and more.

Lee’s other Gamasutra article, published about a year prior, is equally valuable. Relational Database Guidelines For MMOGs gives some insight into naming standards and basic database best practices that may not be evident to all database developers. Hats off to Lee for two good articles on database design and development in general – and for aiming it at the game development market!

What defines success for a Web-based game?

[This article is largely copied from a post I made on the International Game Developers Association Web site. The original post can be found on the IGDA’s Online Games forum.]

Is a successful Web-based game something that pays for itself (bandwidth, infrastructure, etc.)? Is it something that provides adequate financial reward compared to the development effort? Is it something that generates enough popularity to generate marketing awareness for some other entity?

The answer really depends on the intent of the developer. A hobbyist may want a game to cover his expenses. An independent may want the game to generate some amount of revenue to justify his continued effort in it, ignoring the initial development effort (which was most likely done in spare time without any initial working capital). A traditional company will certainly measure success by the total return on investment, considering development and operating costs, but may consider a Web game a "success" if it exists more as a marketing toy to bring awareness to other products or services offered by the company.

I haven’t done serious research, but my experience is that most Web-based games are developed by hobbyists or independents, making the need for a "true return on investment" an afterthought when defining the game’s success.

But what of the intangible costs? What of the experience and knowledge obtained while developing and operating a game? Does this not have value?
A personal example:

I’ve probably spent somewhere between 2,000 and 4,000 hours working on my game, CSFBL, since late 1999. It’s impossible to nail down an exact number, because I do it in my spare time. There have been weeks where 40 hours dedicated to it is an understatement, and weeks where 5 hours is stretching it. How do you quantify those hours? At a measly $25 an hour, that’s between $50k and $100k. It takes a lot for a Web-based game to generate that kind of revenue, and I’d bet most of those games that reached a "production" stage don’t accumulate that in their lifetime.

I’ll confess: CSFBL hasn’t brought in anywhere near that kind of money – and when you consider the expenses of the server and bandwidth, it has probably operated at a loss throughout its entire history [i]before you consider any compensation for my time[/i]. But, the knowledge I have gained from this has catapulted my ability to do other work (though not the work I’d like to do, which is Web games!). Has the indirect benefit of my game been enough to call it a success? Only I can judge that. Some days, I feel it has.

It would be interesting to hear other people’s experiences in this area.

You can go back: Atari Flashback™ Classic Game Console

To prove that thirty-year-old technology still has a place today, Atari is releasing the Atari Flashback Classic Game Console – essentially a new console video game that has two controllers and twenty classic Atari games built right in. This is not intended to compete with the likes of the PlayStation 2. Rather, it is intended to give people who yearn for the retro games of the Atari 2600 and Atati 7800 something to satisfy their yearning.

Note that the games included are the video game console versions and not the arcade versions – meaning 16-color graphics and pretty stale gameplay will be the norm. Then again, if you throw on your bell-bottoms and find some old recordings of Wolfman Jack to put on the stereo, you just might be sent back in time some 20 to 30 years, and you just might enjoy yourself.

Toggling your HOSTS file

I use my laptop (a highly-recommended Toshiba Portege M100) for most of my development work. Typically, I develop on my laptop (a sandbox environment), then push data to another server (either a staging or production server). One of the problems I run into is my ever-changing physical location. When I’m at home, certain Web sites need internal IP addresses; at other places, they need external IP addresses.

The solution to this problem is by toggling the use of your HOSTS file. I enterd all the static entries into my HOSTS file, and created a small batch file to “toggle” the HOSTS file on and off. (When the HOSTS file exists, it is used, so renaming it to something other than HOSTS – with no file extension – turns it “off”.)

The batch file for toggling the HOSTS file is:

if exist c:\windows\system32\drivers\etc\hosts goto :hosts_off
ren c:\windows\system32\drivers\etc\hosts.toggle hosts
goto :end
ren c:\windows\system32\drivers\etc\hosts hosts.toggle
goto :end
ipconfig /flushdns

The batch file simply changes the file from hosts to hosts.toggle and back again. The command ipconfig /flushdns is executed at the end to ensure the DNS cache is flushed.

Atari to Reissue Scores of Old Games / “Well, they were great 20 years ago…”

As reported by the Associated Press, Atari has ?plans to reissue scores of its classic titles from yesteryear on a single disc that can be played on the game consoles Xbox and PlayStation 2.?

All this fun stuff reminds me of an old blog entry I wrote a while back…

Well, they were great 20 years ago…

Pong, Space Invaders, Donkey Kong…

If you were born between 1965 and 1975, you were fortunate enough to experience the Golden Age of Video Games. Those of us of this generation were post-Baby Boom and pre-Generation X; we were the first computerized, video game generation. We were the first electronic generation. We were Generation V-G. It was wonderful.

Asteroids, Super Mario Brothers, Pac Man…

What brought me to this? A simple article on the Web edition of Electronic Gaming Monthly, aptly entitled Child’s Play. This article is a synopsis of what happens when a bunch of 10 to 13 year-olds (who probably can’t program their way out of the box without 3D acceleration and 256MB of RAM) try out those video game classics we grew up with: Pong, Donkey Kong, Mattel’s Handheld Football, Tetris, Super Mario Brothers (the NES version), Space Invaders, and E.T. (for the Atari 2600).

Track and Field, Centipede, Lunar Lander…

If you thought the attention span of the modern child is short, put them in front of a 16-color highly pixelated 2D Super Mario. Reading through the article makes me think of three things:

  1. Kids like video games where things blow up.
  2. Kids are not nostalgic.
  3. Pre-teens know what a hooker is.

Rather than cry about the plight of the next generation (don’t worry, I plan on taking very good care of myself so as not to be a burdern on you), I took a look around the Web to find those places that hold true to the nostalgia of days gone by.

  • PONG-Story: A site dedicated to Ralph H. Baer, the inventor of the first video game, PONG. After going through this site, I realize that PONG was not the first video game – but it was my first video game.
  • RetroGames: It’s more about game emulation than about the games themselves. It include links to the best tool for playing the games of yesterday on your PC, MAME (Multiple Arcade Machine Emulator), the greatest and most comprehensive arcade game emulator, and some very popular message forums (with a horrible interface).
  • Classic Videogame Ads: It’s not about the games, but about the game marketing. After seeing the BurgerTime ad, I wonder how I ever forgot it. Oh, and whereas today kids argue about who has more expensive P. Diddy sportswear, in my day we argued Intellivision vs. Atari.
  • Intellivision Lives: Yes, it does live, and I’m amazed that it kept such a following. Actually, I’m not amazed. I was so excited when the handheld Intellivision game that plugs right into your TV came out that I bought it promptly opened it as soon as I got home. Let me say, it sucked. It had 25 games but none of them were quite the same. Even the sounds were wrong. I simply can’t play Night Stalker without the distinct heartbeat sound (even the robots never changed, unlike the real game), or Skiing without the distinct swoosh of the skis or the crack when you hit a tree. Yes, all this stuff was rudely missing. Fortunately, you can play the Intellivision classics on your PC – some offered as free downloads, and the larger collections from Intellivision Lives (includes all Mattel Electronics games), Intellivision Rocks (includes all Activision and Imagic games), and Intellivision’s Greatest Hits (retail collections).
  • The Killer List of Videogames: It is the killer list – as of this writing, 4,174 different arcade games. An incredible collection of information, screenshots, and 3-D models of the machines that ate every quarter that fell in your pocket.

I’ll try to throw more your way in the future, but until then…

Time Pilot, Defender, Pole Position, Missile Command, Robotron 2084…

Configuring Trusted SQL Connections in ASP.Net and Windows 2003

While configuring a new server running Microsoft Windows Server 2003, I decided to start using trusted SQL connections from ASP.Net Web sites (instead of specific SQL user accounts). One of the differences between Windows 2000 and Windows 2003 is the ASP.Net process account; the former uses ASPNET, the latter NETWORK SERVICE.

One thing you’ll notice is that when creating a new login for SQL Server is that you can’t select the NETWORK SERVICE account. (Oddly, you can select the ASPNET account, but I don’t know what it is used for in Windows 2003/IIS 6.0, since it’s been replaced with NETWORK SERVICE.) After plenty of searching I found a newsgroup posting from Microsoft that solved the problem.

In brief: Either specify the username as NT AUTHORITY\NETWORK SERVICE in SQL Enterprise Manager’s New Login window, or run the following query:


Yet another example of Microsoft hiding the obvious.

Permissions Error When You Try to Debug an ASP.NET Web Application

While working in Microsoft Visual Studio .Net 2003 and trying to start an ASP.Net application in debugging mode (on the local Web service), I received the following error:

Error while trying to run project: Unable to start debugging on the Web server. You do not have permissions to debug the server.
Verify that you are a member of the ‘Debugger Users’ group on the server.

There’s a great many reasons why debugging in ASP.Net can fail, but the one that caused my error can easily be overlooked. The resolution is documented in Microsoft Knowledge Base Article 319842. From the article:

“If your security settings for the Internet zone are not set to Automatic logon with current username and password, authentication may be unsuccessful and you may receive this error message.”

Many times, it’s useful to log in to internal (intranet) zone Web sites using different user accounts (for testing and troubleshooting). The above comment applies to the intranet zone in Internet Explorer as well if you are debugging on the local Web server. I had this setting set to Prompt for user name and password. VS.Net will not prompt for the user name and password; it will prompt you with an error message. Change the setting to  Automatic logon with current username and password and you’ll be good to go.