So Halo. I suppose you know that it was recently released on PC, yes? This would generally be an event I would loudly and manically rejoice, as it (somewhat) springs from the loins of the greatest game development house EVAR, Bungie. I say “somewhat” because Bungie didn’t do the PC port. They left that to Gearbox. I say “generally” because — unfortunately — the port is actually pretty poor.
What does it have going for it? Well, it’s a faithful reproduction of the original Xbox version as far as single player goes. This is a good thing if you liked the single player game. If on the other hand you found it repetitive and boring on the Xbox, there’s nothing different here to change your mind. I personally loved Halo single-player. Gearbox also created an entirely new networking engine for the game, lifting it from its LAN roots into the world of a true Internet-enabled game. Unlike a lot of the people complaining that Gearbox “didn’t have much to do” since the Xbox version “had networking built-in”, I know it was a lot of work trying to get an Internet-capable version written. Kudos for that.
What are the knocks? Plentiful. Performance — compared to other recent games — is abysmal. People with high-end computers are still struggling to not hit the teens and twenties in FPS in heavy combat and large draw-distance cases. People with low-end computers like yours truly routinely hit 7 and 8 FPS in firefights, both single- and multi-player. People (and by “people” I mean “blind fanboys”) are eager to leap on the apologist bandwagon, blaming everything from the “advanced DX9 pixel/vertex shader usage” to the “advanced physics engine” to the “advanced enemy AI”. I can smack the first one down personally: turning off all shader usage through the “-useff” command line argument yields no commensurate leap in performance for me. Yes, the physics engine is mighty cool… like the Myth series before it, every body, weapon, and vehicle not bolted to the ground will go flying through the air if coaxed there by high-explosives. Yes, the AI is similarly impressive compared to some of Halo’s contemporaries, but if the AI’s CPU budget is that high, there’s something screwy going on.
My machine, in case you were wondering, is a Pentium III/667, with 640M of RAM and a 64M GeForce4 Ti4200. In comparison to an Xbox, my CPU is about 10% slower, I have more video card and 10x the memory. Yet even running at 640×480, with no graphical details at all, I still get 7 FPS at times. Compare this with an Xbox running at the same resolution and additional graphical detail which — aside from the final run on “The Maw” which does indeed have framerate issues — runs smoothly and consistently at an apparent 30FPS. There is nothing that would explain this discrepancy, aside from an undiscovered game issue in the PC port. Sorry, there’s simply not enough going on to justify a real sub-teen framerate on my hardware. So, hopefully they can figure this one out, because it’s rather unplayable at this point. To those who would say that my CPU is below recommended, I say “fine!”. If 30 FPS is the gold standard and they say a minimum of a 733MHz CPU is required and I am 10% below that, I’ll shut up when they can get performance up to 24 FPS on my hardware in all circumstances… that’s allowing a margin of an additional 10% performance hit for my lackluster hardware. Eminently possible.
The multiplayer exists, but that’s about all you can say for it. Aside from the game selection pages, it is essentially the Xbox LAN experience with a client-server architecture backend. There’s no ping display one would expect from an Internet game, there’s no system for dealing with team-killers as a visitor to a server (e.g. callvote kicks), there’s no facility for binding chat text to keys so teamwork is extremely difficult to implement. This is definitely a direct port of the LAN feel… in a LAN environment if there’s a consistent TKer, you calmly walk over to him, kick him in the head, unplug his controller then never invite him back. You can tell your team that there’s someone coming in through the rear tunnel with a fuel-rod gun by yelling it hysterically. Ping is generally in the teens and the same for everyone sitting in your living room. Unfortunately, this is now nominally an Internet game… there’s new circumstances to deal with and the means to deal with these circumstances don’t currently exist.
The client prediction for multi-player is suspect, especially when vehicles are involved. Many times while driving you’ll be hit with a projectile and fly from the vehicle only to be back in the vehicle with next server update to correct the prediction. This is a tough one, as hit detection has to occur on the server, but perhaps the entire protocol needs to be tightened up some so the frequency of server snaps out to clients can be increased or something.
I have some hope that Gearbox will be able to address the performance issues. Hell, hasn’t everyone used profilers and found idiotic or esoteric problems in utterly surprising places? “Sweet ballsacks, we’re spending 26% of the time in this memory allocator” or “Criminy, we’ve still got asserts and debug statements #ifdefed in for the release build!”. I think they can find it. The rest of it will come in time as well, I feel. If they don’t do it, I hope they’ll do the right thing and release a real source-level SDK so that additional functionality can be introduced via mods, like CPMA and OSP for Q3A. Hell, I’ll take up the challenge if they release an appropriate SDK. I’d be happy to.
So, right now I have a nearly wasted $39… it runs but actually, you know, killing aliens is difficult when your assault rifle is firing only 7 times a second because of the dismal framerate.
