I’m not a programmer. Well, I’ve made rudimentary programs, and I know my way around simple things. I can look at code and understand the basics about how it works, and what certain things do. Looking at more complicated code fills me with both appreciation and awe; it functions like a well-oiled machine (in many cases, but not all).
So when I saw opinions circling through various social media posts and media outlets about Aliens: Colonial Marines‘ AI woes, it was both disheartening and disconcerting. It seemed like the popular understanding of the problem revolved around the idea that somebody, somewhere, somehow should’ve seen the problem and fixed it.
Having written programs that numbered in just the hundreds of lines, I can see why something this small could be missed so easily.
Needle In A Haystack
ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTeather
Out of context, it’d be very hard to find the error here. I didn’t even see it at first. However, imagine if it were your career to spend hours poring over lines of code and trying to piece together the cause of a bug in your software, all while a publisher is breathing down your neck to push for release. The pressure is on, and you need to get the ball rolling, so since you can’t figure it out, you just consign yourself to the fact that it’s just broken.
Or perhaps you drive yourself insane trying to figure it out. In my limited time working software support now, I’ve been in the hot seat, trying to figure out the root cause of why someone’s software is being wonky, or just plain not working at all. Our customers are professionals in their field who rely on our programs to get their job done so they can move on to the next job. So when we get tapped to troubleshoot a problem, it’s always an emergency. I feel for them, because the software is standing in the way of them getting paid.
So, occasionally I find myself banging my head against my desk (sometimes literally), trying to figure out the problem. In those moments, I sometimes am lost in the problem for half an hour, only to have someone come along and ask “have you tried restarting?” or “did you check that .ini file?”
My answer is often “no”, because I didn’t think about it. I spent so long chasing my tail, or going on a wild goose chase because I missed one, vital piece of information. When writing programs, often the biggest roadblock in the software is me, because I missed a semi-colon somewhere, or I misspelled the name of an object. Maybe I didn’t actually nest something in the way I meant to, or I didn’t use a closed parentheses.
I went off on a tangent, didn’t I? Let’s rewind…
ClassRemapping=PecanGame.PecanSeqAct_AttachXenoToTether -> PecanGame.PecanSeqAct_AttachPawnToTether
The typo is gone now, though I can’t take credit. A curious soul found the error in Aliens: Colonial Marines‘ configuration files. Opening the file in Notepad, saving it in the original location, and booting the game back up makes a major change to enemy behavior. One, single letter makes a huge difference in computer programs after all.
Aliens: Colonial Marines wasn’t a good game in many respects, and while the AI issues contributed to that, the painfully comical xenomorph behavior didn’t break the game. It spent years in development hell, suffered from performance issues, lacked the soul of the franchise (for whatever that’s worth now), experienced graphics downgrades, and featured a terrible plot. The xenomorph AI was just icing on the cake.
What most people who are criticizing the developers fail to understand is the sheer scale of debugging code. True, some people are better at it than others, and sometimes you have great tools at your disposal. The thing is that tools can only work well if they’re used properly (not claiming the devs didn’t), and people are fallible; capable of missing things right in front of them (just ask Jennifer).
That knowledge carries with it an understanding that it’s easy to miss things that seem obvious, especially in retrospect. I look at it like this. I wouldn’t go to a mechanic and tell him how to repair an automatic transmission, let alone offer advice about how to change a tire. I’m just not proficient in that. Similarly, despite getting my feet wet in programming, I would never tell a programmer that they did a terrible job for making a simple mistake, even if I knew what the problem was.
It’s easy to sit on the sidelines and look on with the knowledge of the past and think that someone dropped the ball but let’s face it, if it took modders (who are notoriously saavy and resourceful) this long to find the mistake, maybe it’s not as easy to spot as folks seem to think it should’ve been.
My advice? If you don’t know your way around code, maybe you shouldn’t mouth off about the work the devs did. If you’re a brilliant programmer, you spot stuff like this on a regular basis, and you feel like you need to tout that fact… Well, the truth is that backseat programming is annoying, and you’re an ass.
What do you think? It’s a simple mistake, but is it understandable, or a glaring omission in your opinion.
Did you like this post? You should click “Like” if you did. Feel free to follow Falcon Game Reviews as well. You can also find Falcon Game Reviews on Twitter, Facebook, Discord, or even send a direct email to firstname.lastname@example.org!