How a Single Typo Broke the Xenomorphs AI in Aliens Colonial Marines

How a Single Typo Broke the Xenomorphs AI in Aliens Colonial Marines

Back in the early 2010s, Aliens Colonial Marines was shaping up to be one hell of an impressive title. With great looking visuals and effects and smart enemy AI that could track you down like a real predator would, the title promised to be the ultimate Alien experience that fans had wanted for years.

Unfortunately, when the game was actually released, well that turned out to not be the case. From the downscaled graphics and effects to terrible Xenomorph AI that showed nowhere near as much intelligence as expected, the game was a train wreck that barely functioned at the best of times. It was a huge downgrade from the promotional footage, and made players wonder what had actually happened. Was Randy Pitchford a liar? Was the game misrepresented in the earlier footage?

YouTube player

Did the impressive looking original title ever exist at all?

No one knew, and everyone expected the worst. It was the No Man’s Sky of its day, a game where promises were broken and the actual work was a poor imitation of its own marketing.

However, as it turns out, said promises may not have actually been so inaccurate after all.

Why? Because as a certain modder found out, the poor quality of the Xenomorphs’ AI can actually be traced to a single mistake in a certain line of code in the game.

Here’s SidAlpha explaining the issue in a video:

YouTube player

As you can see, the cause of the bad AI was not that better AI didn’t actually exist in the code, but because someone in the development team made a single typo that broke the game wide open.

And that guilty line of code is as follows:

ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTeather

Notice how it says ‘teather’ instead of ‘tether’?

Yeah, that’s the issue. Basically, the code is meant to tell the Xenomorph what room it’s currently in, so the creature can use the geography of the area to ambush and flank the player. It’s meant to say that ‘here’s where the player is, here’s where you can best jump out from to kill him more easily’.

But the typo breaks that, since it removes the hook that runs the room identification code. This means the Xenomorphs now don’t understand the terrain at all and have no idea what room they’re in or how its laid out.
Hence the terrible AI demonstrated in game. They’re like you if every day was your first day at work or school. You have no idea where anything is, so all you do is wander aimlessly and hope to figure out where you’re going.

It’s mindboggling really. And it really does provide the value of QA testing your work thoroughly.

Cause let’s face it, this bug… should have been caught in the development process. Hell, it’s such an obvious bug that the automated build tools for the game should have caught it. Seriously, go and program anything with a linter installed, like ESLint for JavaScript. This sort of typo is exactly what they’re designed to catch out.

The fact nothing like this happened implies that either:

  1. Gearbox and the various other studios have no systems set up to check for errors in their code before pushing it live
  2. They completely ignore said systems and assume ‘hey, it all works fine’ when it clearly doesn’t.
  3. The manual QA testing team either didn’t exist or didn’t figure out there was an issue with the AI
  4. Or that somehow, they couldn’t spot an obvious bug, despite it clearly affected how the game was working.

None of which reflect well on Gearbox and the other companies involved. This is the kind of thing you expect from a small, perhaps poorly run company working on one of their first projects, not a large group working on a triple A title.

Either way, here’s the fix for anyone with the PC version (look in ‘My Document\My Games\Aliens Colonial Marines\PecanGame\Config\PecanEngine.ini’ for the code here):

ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTeather


ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTether

And here’s a reminder to programmers working on said games that testing your work is one of the most important things you can ever do. Otherwise you too could break a multi-million-dollar game with a single typo in a line of code!


The Biggest Bug in the Game is One Letter Long (ModDB)

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment