The Unreal 1.01 Patch And Me

by Larry Hastings

Friday, March 26th, 2004

On Friday, May 22nd, 1998, Epic MegaGames released the Unreal 1.01 patch. It was accompanied by the following announcement:
Unreal v1.01 update patch is now available! This update allows players to join multiplayer games by clicking on links to "*.unreal" files from their web browser.

".unreal" files are simple ini files which tell the player's machine the location and port the server is running on. Links work in both MS Internet Explorer and Netscape Navigator (v2.0 and above).

".unreal" files are simple 2 line INI files. They should look like this:

[UnreaLaunch]
Server=address.of.server.com:portnumber

You can specify a server using either its hostname or an IP address. The port number is optional. Examples shown below:

[UnreaLaunch]
Server=server.unreal.com:7777

or
[UnreaLaunch]
Server=208.212.53.37

will both launch to the same server.

It was covered on the official Unreal news site, Blue's News, and many other long-since-defunct gaming sites, back in the day.

So it might surprise you to learn that I wrote the patch, yet I never worked at Epic MegaGames, nor GT Interactive, nor have I ever touched the Unreal source code.

How'd that happen? Read on, for a short tale, a glimpse behind the curtain, a peek into the machinations that go on behind the scenes of the gaming industry.

"Most Favored Nation"

Back in 1998 there were several online gaming services competing for games. Mplayer was still the "AOL of Quake", TeN hadn't gone Pogo yet, Microsoft was putting major resources into The Zone, and GameSpy 3D was ramping up. This meant game developers had a choice between services, and were often paid for the rights to host their game online. One notable example of this was the bidding war around Papyrus's NASCAR racing series; TeN's winning bid was a package deal with remuneration totalling a million dollars. I don't think that sort of thing happens anymore.

I was working at Mplayer at the time, as the installer/automatic updater technology guy. I'd seen some early builds of a game called Unreal that looked fantastic. We'd signed a deal to host Unreal on Mplayer, so I was looking forward to getting the full game. We often got free copies of the games we hosted—one of the perks of running an online multiplayer gaming service.

One day, just after Unreal went gold but before it hit the stores, one of Mplayer's "producers" came into my cube to talk to me. (What Mplayer called a "producer" was the person who negotiated the deals for games.) He asked me if I'd be willing to write a patch for Unreal! He told me the following:

When we signed the deal with Epic MegaGames, we didn't get an exclusive. But we negotiated a clause in the contract giving us "most favored nation" status. That means that if Epic gives something to any of their other licensees, they have to give it to us too.

Unreal has links in the Start Menu that launch Unreal to play online. During development, there was one link for Mplayer and one link for GameSpy. Well, someone at Epic decided at the very last minute to yank the link for Mplayer. They decided they liked GameSpy better or something. Unfortunately, that meant they were now in breach of contract, and we called 'em on it.

They said—you're right. You're absolutely right. We're really, really sorry. Please don't sue us! We'll make it right. Anything you like. Just please don't sue.

So we told 'em, we want your next game. They said sure. [That game was the wonderful Unreal Tournament, and indeed it was on Mplayer. --Ed.]

We also told 'em, we want you to issue a patch immediately to correct this problem. They said sure. In fact, they said, why don't you write the patch, and we'll release it as the official patch as soon as you're ready.

So. We'd like you to write a patch for Unreal that puts Mplayer back in the Start Menu. You're the guy to do it, because basically all it is is an installer that puts back that shortcut. If you wanna do something else too, that's fine, talk to Epic about it, but we don't really care. All that matters to us is that it fixes the Start Menu.

UnreaLaunch

The producer in question sent me Tim Sweeney's email address, and I talked back and forth with him a little. I thought it was kind of pointless to release a "patch", when all it was gonna do was put in a Start Menu entry for the terminally-unhip Mplayer. I figured that would be about as popular as a cop at a rave. Nobody would download it. So I asked Mr. Sweeney if there was something else the patch could do, that might make it more compelling. Sadly he didn't have any suggestions.

I'm not sure how we got on the subject, but Mr. Sweeney observed that Unreal could connect to online games by passing a standard-looking URL on the command-line, like this:

	unreal://server.unreal.com:7777/
They'd meant to add support so that you could launch games directly from web pages, but they hadn't gotten around to it. Mr. Sweeney said "It's a shame, but now it's too late to do anything about it." I said, "Well, the game hasn't shipped to stores yet, and we're talking about releasing the first patch right now—sounds to me like there's still time."

So I wrote a simple launcher I called UnreaLaunch. It took a command-line argument of a .unreal file, a simple INI-file that listed the Unreal URL as above. It'd pull out the URL, then launch Unreal with that URL on the command-line, and Unreal would connect to that server. I then wired up the Windows registry so that .unreal files launched UnrealLaunch appropriately. It all worked fine.

So I then bundled it a quick installer with the WISE Install System that did about four things:

I gave this to QA, and when they were satisfied I gave it to our producer. He diddled the text a little (I didn't write "Unreal v1.01 unreal patch is now available!", my writing is better than that), then he passed it on to Epic. And that must have been Thursday, May 21st, 1998, 'cause the next day the Unreal 1.01 patch was released.

Epilogue

A week or two later I got one last email from Tim Sweeney, saying "Hey, nice job! We really like UnreaLaunch. The next patch of Unreal will support .unreal files directly."

Here we are, years later. Mplayer is long gone, and Unreal Tournament 2004 didn't ship with links to anybody in its Start Menu. But it runs on GameSpy!

How come I didn't tell the story until now? I was asked to keep quiet about it, 'cause after all, it was mildly embarassing to Epic. But at GDC in 2004 I met Tim Sweeney and Mark Rein, and asked them for permission to tell the story, and they said sure. They're real nice fellas.

In case you're wondering whether or not I made it all up, well, I don't have any concrete proof for you. I didn't do anything so unprofessional as to embed my name in it or anything. But consider: I used the WISE installer, which doesn't match any of the installers Unreal used. I also called it the "1.01 patch", which doesn't match the usual Unreal patch nomenclature; they use build numbers, not version numbers.