February 27, 2007

Sarkie Kicks Ass

Did I mention that Sarkie is kicking all sorts of ass while working on USEMP?

Not only did he get iron sights working on the Magnum, he also got Jessica in-game. (Right now, the chaingunner only works with cheats on for some reason, but still...good job!)

Pictures: Chaingunner down... but at what cost?

February 26, 2007

Need Help: ASP.NET Error

Update: Problem solved. See below.

I'm having a major problem with a web service that I've moved into a development environment. I've torn my hair out today trying to find a solution without success.

Problem Description:
ASP.NET 1.1 and 2.0 installed on server, but only 1.1 in use in the application pool and the site root is set to 1.1. Development environment is Visual Studio .NET 2003.

The site itself works, but the web services contained within the site give parsor errors.
Parser Error Message: The directive 'WebService' is unknown.
The web services work locally.

I've done the standard searches with no success...any ideas?

Update: Turns out a third-party application nuked the .config entry for the web service handler.

If you are getting this, add the following to the <httphandlers> section of your web.config file:

<add verb="*" path="*.asmx" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false">


Since this made Ritualistic, here's the FAQ.

Q: What is USEMP?

USEMP stands for "Unofficial SiN Episodes Multiplayer." It is a Source engine mod based off of the HL2MP mod template. I'm calling it USEMP because typing out "Unofficial SiN Episodes Multiplayer" takes too damn long, and USEMP doesn't use anyone's intellectual property.

Q: Who is working on USEMP?

Right now, Sarkie and myself. Sarkie has done a metric shit-ton of work on weapons, GUI, etc. I've been working on some of the more esoteric code items (USK/US interplay, etc.)

Q: What will be required?

Alphas and betas will require that a person own both "SiN Episodes" and "Half-Life 2: Deathmatch." The final release should only require "SiN Episodes" if all goes well.

Q: Does this contain any code from "SiN Episodes?"

No. I do not have access to any "SiN Episodes" code, and I don't want it. All "SiN Episodes" assets are being linked in from their GCF's.

Q: What will the initial release contain?

Vanilla deathmatch, the three weapons, off-hand grenades, one map.

Q: What about arena mode/personal challenge system/YAUSB/etc.?

Arena mode AI and the personal challenge system are beyond the scope of this mod. Regarding the changes made for the USK version, maps will still be able to detect if the USK version of the map is playing so that they can properly swap out assets, but because the unofficial mod is not restricted by USK, people you shoot will bleed.

Q: What is the timeline?

I'm hoping to release the alpha before the end of March. That said, I've done a piss-poor job of estimating my time on this project so far so please do not take this as gospel.

Q: SDK for Germans?

I'm trying to figure out how to get around the SDK issue that plagued "SiN Episodes" as well for the Germans. The nice thing is that if I do solve this issue, the revised SDK should work for both USEMP and "SiN Episodes." I'll keep you posted.

February 23, 2007

Kudos to Ferguson

I don't watch TV very often. My wife watches TV on a regular basis, and I watch "Mythbusters" when it records, but my TV viewing has scaled back significantly over the last few years. At least part of the reason behind my scaling back is that I just can't respect most of what I've been seeing on television.

On Monday, Craig Ferguson made the news by saying that he didn't want to make fun of Britney Spears because she was "vulnerable." While that was an admirable stance to take, it was the wrong portion of his talk to advertise.

Watch this video, and catch a glimpse of what is missing in American culture today.

February 22, 2007

Scratches, USEMP, Cthulu & Kittens

I've had what seemed to be some sort of gooey substance on the left lens of my glasses for a few weeks that wouldn't go away no matter what I tried. Turns out the substance was the adhesive that was holding the scratch guarding material onto my lens, and the scratch guard material had gone away. Well, three years is a good run. Heading over to the eye doctor's tomorrow afternoon to get an updated prescription and a new set of eyewear.

On the bus ride into work this morning, I finished refactoring my copies of the USEMP changes. I'll be sending the new codebase over to Sarkie as soon as I can figure out why I'm having file transfer issues...

Last night, I finally found a copy of "Crawling Chaos," a collection of H. P. Lovecraft stories from 1920-1935. I find it rather sad that one of the paragraphs from "From Beyond" sounds like a games tester emerging from crunch:
...[He] remained mostly shut in the attic laboratory with that accursed electrical machine, eating little and excluding even the servants, but I had not thought that a brief period of ten weeks could so alter and disfigure any human creature. It is not pleasant to see a stout man suddenly grown thin, and it is even worse when the baggy skin becomes yellowed or greyed, the eyes sunken, circled and uncannily glowing, the forehead veined and corrugated, and the hands tremulous and twitching. And if added to this there be a repellant unkemptness, a wild disorder of dress, a bushiness of dark hair white at the roots, and an unchecked growth of white beard on a face once clean-shaven, the cumulative effect is quite shocking.
Of course, people around me have found it hard to reconcile me reading stories from the Cthulu mythos when I've got a wistful looking kitten on my PC desktop...
You eated my cookie?

February 19, 2007

My Stuff

I got my stuff back today. Thanks go out to Matt who took my wife down to get it.

That is all.

February 18, 2007

Responsibility vs. Duty

I've had a lot going on this weekend. On top of my work on USEMP, I've also deposited my first real paycheck, gone out and enjoyed a nice dinner with friends, went to go see "Ghost Rider" (good in a non-bad sense, not good as in almost-great sense), played some Star Wars d20, played some "Gears of War," almost bought a Wii, fixed my CD drives, got an automated backup system working on my home rigs, and overall stayed fairly busy. However, one thought kept running through my head because of an E-mail I received from my former employer on Thursday... Why am I doing USEMP?

I've been fairly supportive of my former employer in public since the layoff. While I may have disagreed with their methods and approaches to many things, I honestly felt that the direction they were going in and even the means of approaching it were the right thing. But aside from some personal satisfaction and some vague future career payoff, there is little direct benefit to me for completing their work, even if it is in an unofficial fashion.

So why do it? That question weighed heavily on me over the last few days, so tonight I took a break and watched "The End of Evangelion." While I watched Shinji's descent into madness and reevaluation of his position in life, the E-mail from Thursday drifted into my mind and solidified.

I am responsible for myself. That responsibility extends to my actions, my thoughts, my beliefs. While at my former employer, I responsibly took a personal oath of duty for my customers. They may have been the direct responsibility of my employer, but they were mine by proxy. On every project I have worked on in the past, that duty had extended until the community could support itself, and at that point, I could allow the duty to be assumed by the community itself. This project has been extremely hard on me because for the first time in my career, my association ended prior to my duty being fulfilled. While the single-player component had been covered by the community since late summer, multi-player was promised (and still is) with the only official effort towards fulfilling that duty being a half-hearted attempt because a false hope was never realized.

I guess the reason I've been staying up late, the reason I've been working on my laptop on the bus and train, the reason that I've been driving towards this goal...is so that I can let go. I know it sounds dumb, but they're my customers until they can finish the cycle on their own.

So I will finish this task I have laid out before me. For them. For myself.

I'm trying to get the test build ready for this coming weekend. I've got to work tomorrow, but I want to have something ready for this coming weekend. The HL2MP dependencies will still exist, so anyone who wants to participate will need to own both HL2:Ep1 and SE1, but the German version appears to work with my most recent code changes.

Also, I have two volunteers for the QA Ranters blog. I want at least one more, and ideally, I'd like someone who currently is in games QA. (My two volunteers have both been out for some time.) If you want to participate, please send me an E-mail with the subject line "Ranter."

Thank you for your patience and understanding.

February 15, 2007

Reverse Country

There's a bad joke about what happens if you play a country/western album backwards. The joke says that "You get your house back, your car back, your woman back, and you get your whole damn life back." The last three to four weeks have essentially been a reverse country song for me.

The job situation has finally ironed itself out. I'm in a good place with where I'm working, and I'll be getting my first full-time paycheck tomorrow.

My wife's health is slowly returning to normal, but it's taking a bit longer. Her stress level went through the roof after the layoff, and it really affected her negatively. She felt betrayed by a certain person there that she felt she could trust.

Financially, I'm almost back to where I was when I was laid off...almost. I've got one last "overlimit" I need to swat tomorrow, a collection letter off to JAGTech & Associates for fees associated with their bounced paychecks, and a couple of holidays that came during this whole period that I need to make up for.

That said, it's scary to see how close to the edge we were living. Games can pay a living wage, but rarely enough that you can sock a lot into savings. With how crazy inflation was last year, our rent went up enough that even the cost of living increase ended up being enough of a decrease that it depleted our already meager savings for the remainder of the year.

We've got a good savings plan that we've set up for this year, though. If we're able to stick to it, we should have at least six months worth of living expenses saved in liquid funds by the end of the year.

The only black spot on this recovery is something I can't talk about anymore. I got an E-mail today taking me to task for publicly bringing up a promise made to me back in December when I was already in shock and hurting from what had just happened to me, so to protect my interests, I'm going to keep that quiet for a little bit longer.


Shared QA Rant Blog: Have two volunteers, still looking for more. If you think you'd be able to rant with the best of them, shoot me an E-mail with the subject "Ranter".

Column: I sent off the first full draft of my column today. I'd tell you who the column was for, but I still haven't received the contract for the column, and I don't want to spam something that isn't going to happen.

USEMP: Spent a little time last night before heading to bed getting the groundwork for the scattergun into place, as well as starting to check into what it would take to get Blade in as a player model.

Given how easy some of this has been, I'm almost wondering how hard it would be to do a 90% reimplement of SE1 on top of Source Base so that people could get the functionality from the merge, as well as a framework for making a fan-based SE2.

February 14, 2007

Source SDK API Question

I'm trying to add support for the USK version of "SiN Episodes" to "USEMP," as well as provide a slightly nicer error message when trying to mount an AppID that the customer doesn't have.

Is there an API available as part of the regular Source SDK to find out whether or not a particular AppID has been purchased?

February 13, 2007

Source Mod Preview

When some people slack off, others try to step up...
Unofficial SiN Episodes Multiplayer
Vertigo, with magnum
Starting with HL2MP as a base, but should not require HL2MP, only SE1. It's taking some time to wrap my head around everything because I'm used to testing in Source, not coding, but this should work out in the end. After all, I've got help.

If you want to help, reply to this post.

(Note: Right now, the mod code only works with the rest-of-world version of SE. I've almost got it working against the USK version as well, but getting it to work and still work with VAC is a trick.)

Looking For A Few Good Ranters

One of the founding tenets of this blog was to not only share the lessons that I'd learned over my career, but to also give quality assurance a voice. Even though I may not be in quality assurance at the moment, that doesn't discount the importance of that second tenet.

So, I'm looking for a few good ranters. If you are or have been in games industry QA and wouldn't mind joining a shared blog with some other QA types, shoot me an E-mail at romsteady@gmail.com with the subject like "Ranter".

Any in-test discipline is welcome: testers, test leads, test managers, SDET's (developers in test), etc.

Two conditions:

1. Anyone who wants to join in the blog must have at least one full product cycle under their belt. (It generally takes a full cycle to dispel several of the common misconceptions about games QA.)

2. While you will be allowed to remain anonymous on the shared blog if you wish, you will not be allowed to publish confidential information in any rant.

February 12, 2007

Rom's Rants is Back

If you look at the top of the page, you may notice something...the old title, "Rom's Rants," is back.

I had changed it because I was going to further integrate my blog with my site, but over time, it's become less of a priority. Plus, I was trying to elevate the type of topics that I would discuss on here, but I was already talking about the stuff I was passionate about.

So, the blog is back.

Weekly WTF: Get Number From Query String

This is from some ancient code that is going bye-bye very quickly...
object o = Request.QueryString["eid"];
string strEId = ((o == null) ? string.Empty : o.ToString());
int eid = Convert.ToInt32(strEId);
So, what's the problem here?

Well, first off, the following code does the exact same thing without all of the unnecessary conversions:
int eid = Convert.ToInt32(Request.QueryString["eid"]);
...but you still have to wrap it in a try/catch block in case someone modifies the query string so that it passes in a non-numeric query string value.

The more cruft I strip away, the cleaner the code feels.

February 11, 2007

Find the FUD

As many of you know, I'm a regular over at Shacknews. That said, there's been a lot of FUD lately surrounding Vista going on over in the posts.

Let's take this post for example.

The last post in the thread as of this writing is #612, so let's find some FUD, shall we?

1. Aero/WDM framerate is horrible (#55). It isn't that it's terrible, it's that it doesn't need to update the screen anymore than it currently is.

You can verify this yourself if you have FRAPS installed. It's easiest to reproduce this if you don't have anything animating on your desktop. To reproduce this, launch FRAPS, then launch any D3D application, then exit back to the desktop with the framerate monitor enabled. Notice that if you do nothing (don't move the mouse, don't update any windows, etc.), your displayed framerate drops to nothing. However, if you do a lot (move windows rapidly, have a banner ad on a page, etc.), the framerate increases to match.

Vista is only updating what it needs to. In other words, Aero/WDM is acting intelligently.

2. Vista 32-bit only supports 2Gb of memory (#545). This one is partially true. Vista 32-bit processes can only support up to 2Gb of memory (that is, each process has its own individual 2Gb address space), but Vista 32-bit can support more than 2Gb of memory. I've got 3Gb now, and Windows Vista is detecting and using it. That said, I'm guilty of a little FUD here. I thought Vista maxed out at 4Gb, but further reading makes it look the home versions max between 8Gb and 16Gb, while Business and Ultimate can support whatever the motherboard supports.

3. Vista uses a lot more memory than previous versions of Windows (#425). Another partial truth. Vista does use more memory, but only for SuperFetch. If actual physical memory is needed by a process, Windows reclaims it from SuperFetch. If you compare actual task memory used between Windows Vista with Aero and Windows XP, you'll see that Vista is using a bit more memory by default (it seems to be about 105Mb for me), but since 70Mb of that is for WDM, I'm not that worried.

I'm sure the thread has kept going...can you find more FUD?

I don't mean to pick on the Shack. I just want to remind people that Vista is a completely different OS than Windows XP. It's the equivalent of opening the hood of your car, yanking out the plug-3 engine and swapping it out for a 4-cylinder hybrid motor.

February 9, 2007

The Pendulum Has Stopped

This should be the last-career related post for a bit.

As of today, I'm no longer searching for full-time employment. I've decided to take a full-time position with the place that I've been working at for the last eight weeks. (I'm going to continue to leave their name out of this blog, however. I will say that they are a non-profit organization, and the work is improving as time goes by.)

I'm still allowed to do contract work inside the games industry, and I'm in talks with a few interested parties.

In a lot of ways, I'm glad that I'm out but still have my foot in the door. Some distance from the industry will let me regain my sense of perspective about a lot of people, companies and practices so that I can approach them in a more logical (and sane) fashion.

A quick brain dump...

XNA Open Source Bounty: Still waiting on finalizing the arrangement with my partners. Just so you can have a heads-up as to what the bounty will be, it's going to be a C#/XNA port of either GLQuake or Quake II to work under Windows. Seperating out the networking so that it will also work on the Xbox 360 is optional, but would have a bounty "bonus."

Source Engine Mod: Have had no time this week, but have all weekend to track down my last bug.

Contract House: The company that bounced two paychecks is JAGTech & Associates. Since I still haven't received reimbursement for the bounced check fees, etc., I'm sending off a demand letter tomorrow morning. I'll keep everyone posted, because whether or not the "reason" the checks bounced was true or not, the company's behavior since has been inexcusable.

Ritual: Ten weeks, and I still don't have my stuff.

February 8, 2007

Cut and Run

On February 2, Dennis McCauley ran a column over at Joystiq suggesting that the ESA, gamers and game developers back away from supporting "Super Columbine Massacre RPG." On February 7, GamePolitics ran a column worrying that "Manhunt 2" could cause a massive PR hit to the industry. The overall impression given by these is that games that generate this level of controversy bring an undue level of attention to the games industry, and that by supporting and developing games like this, we are doing a disservice to the industry.

Now, I like Dennis McCauley. He's done an amazing job of covering the political side of gaming news since starting the GamePolitics. Hell, he's even linked to me a few times. But in this case, I feel that his statements are doing more of a disservice to the industry than anything else, and we need look no further than Doug Lowenstein's farewell speech at DICE. I may disagree with a lot of how Doug did things at the ESA, but there is one thing that he did that I will always respect him for. To quote:
“It is a fight worth fighting, it’s a fight I’m proud to fight, and we need to keep fighting. But in my view there has been nothing more important that the ESA has done than putting its money and resources out there to defend your artistic freedom. And sometimes that’s not easy. Plenty of things are put out that are art, that don’t necessarily ennoble the culture, but they’re protected. We made a decision at the ESA that we’re going to defend constitutional freedoms no matter what. And I think we’ve done that, and we’ll continue to do that.”
I may hate "Manhunt," but is it any less deserving of protection than the works of Robert Mapplethorpe? I may think that "SCMRPG" is the videogame equivalent of two kids in trench coats reciting emo poetry at their local Starbucks, but that doesn't make it any less of an artistic statement.

My biggest concern with the stance that Dennis has taken is that it opens the door for our critics. It says that we will not fight for our brethren. It gives them a place to get a foothold. It sets the games industry up to where in order to stay legislation-free, we have to put even more insane restrictions on what we can and cannot do and essentially self-regulate this industry into obsolescence.

Appeasement is not the answer. To paraphrase Beatrice Hall's tribute to Voltaire, I may hate every single thing about your game, but I will fight to the end to protect your right to make it and your player's rights to play it.

February 7, 2007

Quick Update

No, I haven't forgotten that I have a blog. I've just had no time.

I've been working on my column, a Source-engine mod, final contract details to run an XNA Open Source Bounty (no, not implementing XNA using open source...something different), as well as a post about why GamePolitics is wrong on a certain issue.

In addition, we're about to be one man down at work due to a resignation, so I've been having to catch up on everything that he's been doing as well.

I hope to be caught up on everything shortly. Thank you for your patience.

February 4, 2007

The Money Pit

Yesterday, I signed a lease extension down here. Today, I dreaded it.

Dognose from the Shack visited so he could eat some of my wife's fresh-cooked egg rolls as well as watch some movies. We were going to walk over to Movie Trading Company to pick up a movie to watch, and when he went to open the door, the doorknob fell off in his hand.

A very concerned dognose...
Needless to say, this apartment is falling apart, and the only reason we signed a short-term lease extension is because we haven't been able a decent place to move to that will take us because of my short-term credit rating drop because of a certain non-paying ass-clown.

But with the washer barely working, the door dry-rotting and falling apart, the edges of our drywall beginning to crack because of the foundation settling, and our low-flow toilet requiring enough flushes to give swirlies to the entire alumni of the Guildhall at SMU, we don't want to stick around here a moment longer than we have to.

February 3, 2007

WORKAROUND: Cannot Play Flash/.FLV Movies On Vista


If you go to a page that has a Flash video, you are either shown an empty box or told that you have JavaScript disabled or Flash is not installed. However, if you look in Manage Add-Ons or go to the automated installation site, Flash is installed.


1. Go to Adobe's Alternate Download site.

2. Download the Flash Player Uninstaller.

3. Close Internet Explorer.

4. Run the Uninstaller.

5. Revisit the Alternate Download site.

6. Click the appropriate link to reinstall Adobe Flash Player.

7. Say "Yes" to the Internet Explorer Add-On UAC prompt.

8. Close Internet Exporer after the "Install Successful" video plays.

Vista Games Explorer

Vista's Games Explorer's auto-detection works better than I expected.

A friend of mine got me the "Hot Coffee" version of "Grand Theft Auto: San Andreas" a couple of weeks ago. After installing it, I thought I'd check out Games Explorer and see what it had to say...
Detected the 'AO'-rated version
...evidently, it said enough. Nifty.

February 1, 2007

Ramblin' Guy...

No, I'm not talking about Steve Martin. I've been working on a column for a magazine this week, and I'm a bit shocked about how...wordy...my conversational style of writing is.

I'm supposed to be about 1,000 words, and at just past the halfway point, I'm at 850. Hell, my outline was over 600.

It's difficult keeping a conversational tone with a technical topic. With a good conversational tone, you have to explain things in such a way that a person who isn't familiar with the topic can still grasp the general gist of the situation, while not delving so much into explanations that experienced readers get bored. It's a delicate balance, and I often feel that I err too much on the side of explaining to the neophytes.

What really frightening is that as verbose as I am writing, I've been described as "eerily laconic" when it comes to how I communicate in public. I tend to be a very quiet, reserved person most of the time unless you get me talking about something I'm passionate about. At that point, I'm fairly normal.

Maybe that's why I was a decent dinner guest the other night...

Anyway, I'll have a surprise sometime next week that is not related to employment, bounced check fees due to me from a certain company owned and operated by a total suck-ass, former employers, future employers, or certain plant phylums. Here's a hint: D/FW amateur game developers, brush up on your C#...