Mechanical Turk for Games

by Administrator 16. February 2007 17:23

Check this post on Joystiq:

Check this quote:

" In short, the single- and multi-player elements of the game are merged, so those heretofore mindless enemies -- yup, they're your fellow carbon-based mammals."

Now, that's kid of an interesting idea.  I picutre either playing as the Hero with actual smart enemies but otherwise being mostly like any other game, or putting yourself in the "bad guy peon" queue.  In this queue you would play different bad guys with their own moves/powers/weapons/whatever but ultimately far weaker than the Hero since in all games the hero must kill 343,999,777 weaker peons before he can get teh powar up win teh game!  You would play for a short deathmatch-ish time then wait in line until the system needs to spawn another bad guy, possibly jumping from game to game depending on a centralized server sending bad guys to whatever system they are needed.  A cool idea, and one more to add to my list if they bring out an Xbox360 with HDMI.


Fun with UAC

by Administrator 15. February 2007 16:46

News about UAC in Vista is all over the web.  As a developer of shrink-wrap desktop software I thought I’d continue my string of “comments” (ok, bitching) about Vista now that I’m in a better place.

The most obvious places where UAC “helps you be more secure” are:

·         Writing to the registry requires elevation

·         Assumes any setup program needs to be run with Admin privileges

·         Writing to the \windows folder requires elevation

·         Writing to the \program files\ folder (and all folders below it) requires elevation

Another interesting tidbit is that Vista ships with .NET 2.0 installed.  That’s good news.  However MSI files built in VS 2003 will demand that .NET 1.1.4322 is installed despite the fact that .NET 2 should run those apps just fine.  Oddly enough, navigating to \windows\Microsoft.Net\Framework\ on a Vista install will show the following directories:

1)      V1.0

2)      V1.1

3)      V2.0

4)      V3.0

However the v1 directories do not have the full install, just some GAC tools presumably for sort of tool compatibility, so tests detecting a specific  1.x version will fail.

One interesting thing I tried but ultimately did not go with was marking my application so Vista knows it needs to run with Admin permissions by embedding a manifest in the .exe.  I found instructions for what the manifest should look like and a made a post-build event that would embed the resource in the assembly.  This worked well and Vista displayed my .exe with a nice “shield” overlay letting the users know they’d be prompted to elevate.  Sticking this .exe inside an MSI seems to clobber the manifest however, using dumpbin.exe confirms this.  Rather than dig for the answer to this I made some code changes as indicated below.

For this software developer, here are the changes I had to make to get a product running on Vista as painless for the user as possible:

1)      Created a .NET v2 version of our product.  Granted, I’d rather use 2.0 across the board but some of our customers won’t upgrade and we sometimes distribute via http so a bootstrap including the 2.0 install is a little bigger than where I’d like to be.  I did this by sharing the individual files across two VSS projects and just creating separate project/solution files for 2.0 in a different location.  Thanks to Matt Terski for the tip.  This feels evil for some reason but it works.

2)      Re-wrote the installers.  The .NET 1.1 installers accomplish some of the installation tasks with Custom Actions written in .NET.  Some of these actions do things like registering a device with a WIA event using the WIA automation layer and therefore require admin permissions.   While I would think the MSI would spawn my .net EXE with the same security tokens  (already elevated and using the admin token) as the parent process this did not seem to be the case as the custom actions reliably crashed the install every time.  I set up the MSI to write the same registry keys that the WIA code would have done and worked around the other custom actions so that everything is part of the MSI.  Since the installer writes to the registry, it must still install with elevated permissions.

3)      Non-Admin Logging Mode.  Previously the application did innocuous things like Write a log file in the same directory as the .exe using log4net.  I had to do some digging to find how to change a DOM configurated FileAppender location at runtime ( and change this from \Program Files\MyProgram\ to a user-specific location if the code runs on Vista. (OS version = NT 6.0blahblah)

4)      Non-Admin App settings.  Written in .NET 1.1 initially the app used some dynamic windows forms properties: GUI features bound to an App.config setting.  Since App.config lives in \Program Files\MyProgram updating these properties also wasn’t going to be non-admin friendly.  Somewhat loathingly, I added a “Settings” file to the .NET 2 project.  And set the code to use settings vs. writing to app.config with some conditional compilation.  Hooray for #if NET2.  The Settings feature wasn’t trumpeted like MASTER PAGES AND GENERICS when .NET 2 was rolling out but it’s worth looking into if you are not familiar with it.  Settings can be marked with a UserScopedSettingAttribute()  or regular old Application Scope.  User scope settings are stored in a User specific location (although I’m damned if I could find the file itself but it works) and therefore no elevation needed.  Nice of .NET 2 to handle that for me.  This is probably a better design choice anyway but again it’s mainly a 1.1 app.

Now my code installs as Admin and then happily does all its Camera/WIA/Exif/Internet hooha without requiring elevation.  Digging through the UAC documentation to see where I was going wrong was frustrating at first, and if anyone knows how I can keep an MSI created in VS2005 from clobbering my manifest (at install time or packaging time, I’m not sure which) that will probably come in handy at some point.


Rating games

by Administrator 14. February 2007 21:27

I love this article on Ars today

A quote:

... "

First and foremost, ratings based on partial game footage would become a thing of the past. Currently, the ESRB hands out ratings after viewing a reel with representative content prepared by the developers. Sen. Brownback thinks that's not enough: "Video game reviewers should be required to review the entire content of a game to ensure the accuracy of the rating," he said. "The current video game ratings system is not as accurate as it could be because reviewers do not see the full content of games and do not even play the games they rate."


Good call, Mr. Out of Touch With Reality.  Does that mean all 80 hours of Final Fantasy XII should be "watched" before the game can be reviewed?  Maybe just a slide show of every model, texture, and environment and a dump of all sound used in the game?


But who will play Roland?

by Administrator 14. February 2007 16:50

Yes, they are looking to make movies or a TV Series about the Dark Tower books.  I'm pretty sure there's no way this can turn out well, and so I'm sad.  I'd rather stick with my book and audio book versions of this 7 novel story.  I have a signed Michael Whelan print of Roland outside the Tower in my office and have read these more than anything except The Hobbit.   Why don't I think it can turn out well?

-Who would play Roland?  Roland IS Clint Eastwood, but Clint is past his time with parts like this I think.  My 2nd pick for middle-aged Roland: Christian Bale.  Think about it.  Jada Pinket Smith as Susannah?  Sean Penn as Eddie?  Tobin Bell as Walter?  James Earl Jones narrating?

-A TV Series?  The material in the books absolutely require an R rating meaning meaning the only way they can not suck is to air on Showtime (Like the Masters or Horror series) or HBO (like Sopranos, Weeds, Deadwood)

-I can't think of any King adaptations that have turned out well on film.  The Green Mile and Shawshank Redeption were not bad, but both dealt with much simpler subject matter.

Sigh.  Between shit like this and the horrible flood of re-makes-of-films-that-aren't-even-that-old and sequels to films involving none of the origial cast, crew, directors, or authors, it appears that I am doomed to see every single movie and literary icon of my life ruined.


Jen is an RN

by Administrator 14. February 2007 15:53

Congratulations to my lovely Fiancé for passing her NCLEX board exams on the first try.  The NCLEX is like the BAR exam to be allowed to practice as an RN.


Shutup TV man

by Administrator 12. February 2007 22:12

I took a friend and former client TV shopping this weekend at their request: people have gotten the idea that I keep up with audio/video stuff or something.

Anyway, at a certain local TV/Home Theater shop I walked in and confirmed my opinion that the Sony SXRD rear projection TVs have a fantastic picture and are very reasonably priced for a 1080p TV.  Of course as we walked around and discussed different things we were seeing on the unavoidable sales guy encounter happened.  The sales guy tried to give me a lecture on the TV including several horribly incorrect facts including "SXRD is Sony's image processing enhancements" and such.  My response that SXRD stands for Silicon Xtal Reflective Display and that it is Sony's proprietery implementation of the Liquid Crystal on Silicon (LCOS) idea and that it didn't include any "picture processing" that I was aware of was met with momentary disorientation and then more arguments on his part. 

I can understand that most consumers are dumb and the industry hasn't made the adoption of HD related technologies easy and its probably safe to start out with the assumption of an uneducated buyer, but when someone clearly knows what they are talking about the salesperson's role switches from "educating about the product" mode to relationship building or "here's why you should buy this from us instead of somewhere else" mode.  The salesperson saw me getting ready to attack and left us alone before I could ask if this particular model had HDMI 1.3 support. 

Shut up TV man, see if I bring another potential customer to your store any time soon.  I almost never meet a salesperson who knows more than I do or is more up to date (than you RSS) on audio/video than I am.  I don't mean that to be an arrogant challenge, because really its somewhat disappointing.  If I had more time selling home theater stuff would be a fun part time job, or perhaps I should get into contract Crestron programming to get an employee discount at one of these shops to subsidise my frequent upgrading habit.


More Vista Gripes

by Administrator 7. February 2007 22:04

After the huge user uproar that happened when the Compact Framework 2.0 initially did not support CE 4.2 devices, one would think MSFT would have taken the point, instead, today I get another fun Vista Fact.

ActiveSync 4.2 and before will not run on Vista.  It's blocked, and tells you so when you try to run it;  Nice of them to let me install it first though.  The Vista solution is the Windows Mobile Device Center, which sounds very swell.  However it explicitly does not support CE 4.2.  Old version won't run, new version won't talk to my devices.  Of course I tried anyway and on my hardware any attempt to connect reliably crashes the Service Host over and over again.  So, for now, we can't sell our most expensive product on Vista.  Granted, I mostly blame this on the OEM who has refused to upgrade to CE 5 for over two years now.




by Administrator 7. February 2007 16:55

So, I have already had one customer complaint about this or that not working on Vista.  That didn't take long.  So far I can see that:

-Vista does not ship with .net 1.1, only 2.0.  This wouldn't bother me as 2.0 is overwhelmingly backward compatible with 1.1 assemblies with very few breaking changes.  However my MSIs created with VS2003 demand 1.1.4blahblah explicitly, so I need to build new installers or include a 1.1 bootstrap.

-With 1.1 installed, my .net custom actions for registering my camera software with wia and doing some custom regsvr32 bombs and aborts the install.  Copying the files and assemblies needed and running the registration manually does not complain, however my 1.1 assembly will not start, giving an evil looking runtime error before a single line of .net is executed.  That's nice.

-My Camera software that uses the WIA automation layer seems to be able to register WIA events properly, at least I've got that going for me.

-Seemingly EVERYTHING requires me to confirm changes to my computer.  Manually Creating a folder under \program files requires two confirmations?  What the hell is that?  If that's security, I'll take my chances, thanks.

So, you can probably tell I didn't follow Vista very closely before launch, maybe some of these are known issues with simple solutions.  I'll be working on getting my company's most successful app installing and running under Vista now...


BluRay studio follow up

by Administrator 6. February 2007 18:44

Due to some comments about incompleteness of the "Studio support" section of my diatribe on BluRay, I spent some research time over on the BluRay official site, solicited feedback from a couple locations, and built a more accurate Studio Org Chart over at  It does not include every single tiny little indy arm of every studio (like Fox Searchlight) but is farily complete.  Who owns what rights to what is fairly complicated it seems.



by Administrator 5. February 2007 22:09

Its cold in Wisconsin, real cold.

The weather service is telling me frostbite can occur in as little as 10 minutes with exposed skin, and to keep my gas tank at least half full.  Its -32 with the windchill today and I walk 10 minutes to my car.  In my office I sit near a window, and although the thermostat says 72deg, I've been wearing my wool top coat and shivering all day.  I've been afraid to visit the bathroom for fear that my ass would freeze to the toilet seat.



About the author

Damon Payne is a Microsoft MVP specializing in Smart Client solution architecture. 

INETA Community Speakers Program

Month List

Page List

flickr photostream