• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.

Fireblend

Member
Oct 25, 2017
5,454
Costa Rica
An "advantage" of UE is that is pretty robust to missing files and scripts. You can disable movies in every UE game only deleting the files. A missing texture will be grey, etc

Maybe a warning was in some place, but nothing critical for them to put more effort into. Sadly.
Yeah, that's a good point. At most it would have been a warning line in some UE log that no one might have been checking to begin with. Whatever was parsing the .ini file probably wasn't even written in-house at all but some default UE module.
 

Deleted member 41271

User requested account closure
Banned
Mar 21, 2018
2,258
That's amazing! And entirely feasible to have happened. Gearbox likely pulled devs from the game, so nobody really *could* check for nonsense like that.

So it remained. Who'd find out? Only someone going VERY carefully over every line. Gearbox didn't have anyone like that on the game anymore, it seems.
 

Gabbo

Member
Oct 25, 2017
7,565
That's amazing! And entirely feasible to have happened. Gearbox likely pulled devs from the game, so nobody really *could* check for nonsense like that.

So it remained. Who'd find out? Only someone going VERY carefully over every line. Gearbox didn't have anyone like that on the game anymore, it seems.
There is no reason that enemy behaviour like that should be relegated to an initialization file in the first place and not in the code itself. If it had been in the game's code, it would have been caught before release because it would have thrown a compiler error about an undefined variable.
 

Rodney McKay

Member
Oct 26, 2017
12,186
This is why I hated coding in college, I constantly had stupid tiny little errors in my code and I was terrible at finding the mistakes.
 

JetmanJay

Member
Nov 1, 2017
3,500
Wooow, I remember all the lawsuits that went down concerning Gearbox, Sega, and the quality of this game.

Is there a possibility for Sega to take Gearbox to court again over such an obvious failure?
 

Dennis8K

Banned
Oct 25, 2017
20,161

Mischevious-Baby-and-Goofy-Sidekick-Samoyed-Dog-Laugh-At-Their-Own-Evil-Plans.gif
 

the-pi-guy

Member
Oct 29, 2017
6,270
This just seems like a whole chain of things had to go wrong in order for this to happen.

They must have changed the name of the file after the AI was working as intended.

The program should give an error message. Maybe the system was built to try to find the file, and then run regardless. Maybe they forgot an error message or maybe there were a bunch of error messages they just skipped over them.

The whole thing is just crazy.
 

Rodney McKay

Member
Oct 26, 2017
12,186
That's why you turn on all compiler errors and warnings are treat warnings as errors, right from the start.
I did, but at least 11 years ago when I was learning Java it didn't help all that much. Helped find errors that completely broke things, but not a lot of the little things (that add up quick and ruin your grade).
 

PBalfredo

One Winged Slayer
Member
Oct 26, 2017
4,495
The reactions in threads like this are a pretty good barometer for how much the average poster thinks they know about game development, versus how much they actually know.

Sorry ERA, but you all got a D-. You're going to have to retake Introduction to QA 101
 

Char

Member
Dec 9, 2017
193
The reactions in threads like this are a pretty good barometer for how much the average poster thinks they know about game development, versus how much they actually know.

Sorry ERA, but you all got a D-. You're going to have to retake Introduction to QA 101
Dunning–Kruger in full effect here.
 

Disco

Member
Oct 25, 2017
11,445
Wasn't there a similar ini file fix for Watch Dogs 1 on PC that let the game look more similar to the initial E3 demo? I remember playing it and noticing it looking a lot more pleasing than the unmodded game
 
Oct 25, 2017
16,568
You're assuming the people who did the AI were even still there at the end. Don't forget all the shadiness that went into this game's development. Sega thought Gearbox were making it and meanwhile Gearbox were farming it out left right and centre. It could be that TimeGate did the bulk of the AI and then Gearbox finished it without properly understanding the code and that it was supposed to work better.
Good point. That's probably what happened now that you mention it.
 

justiceiro

Banned
Oct 30, 2017
6,664
I have an engine that I've made myself that wrangles OpenGL for quick project development. A lot of the complexity of OpenGL is defining buffers in the correct order and assigning pointers to them so that you can work with them, as well as attaching attribute points in shader programs. It's something complex to do by hand that actually is time consuming, so I spent a few weeks writing a configuration tool that would generate all my buffers and pointers for me at start up during runtime, not compile time. To speed things up, these buffers and pointers and stuff are loaded useing an external script into an ordered map that assigns them a local string ID temporarily, then later in the start up process, moves those structures in the map to a contiguous piece of allocated memory in an array, and I stop using string IDs and start using an index number based on order in the map (much faster lookup time).

Well, one day, I was doing some testing and put a print statement midway between loading values into the map and moving them into the array, because I wanted to check some values really quickly. At one point, I was trying to check the value of some OpenGL Uniform, let's call it "VertexOffsetPosition" but I had spelled it "VertxOffsetPosition" when I printed the statement. The nature of trying to look for a key that doesn't exist in a map is that, if you look it up and it's not there, it'll add the key to the list. So now I had both "VertexOffsetPosition" and "VertxOffsetPosition" as keys. By pure happenstance, in debug mode, both uninitialized values looked identical, so I couldn't see the difference between the keys when I printed out the value. Now, later on in my engine, when I called these values from the array, logically everything still should have worked. Since I created VertxOffsetPosition way later than the other values, it should have populated at the end of the map, and thus been given some end of array index, and all my other indexes should have still been correct.

Except I was using std::map instead of std::unorderedmap. the standard map function automatically hashes the key value based on alphabetical order to speed up lookup. So, when I was creating VertxOffsetPosition later in my code by accidentally checking for it, it was bumping every other Uniform variable down an index in the array. So if I was calling for index[5] or whatever, the value I might have wanted would have actually been at index[6]. This affected everything.

The end result? No compiler warnings -- I wasn't doing anything illegal. No errors -- the program still compiled fine. No shader errors -- compiling the shaders were still alright. RenderDoc stepping through the frame didn't reveal any errors, because the logic was still sound. Only thing is that instead of getting graphics, I'd get a bright red screen and nothing else.

This took me an entire weekend of work to find.

To the people asking why QA didn't find this -- this isn't the type of work QA would find. To people asking why an IDE wouldn't pick this up -- this isn't necessarily an error, and you more than likely wouldn't be writing this shit in an IDE in the first place, and even if you did, it's not like these are keywords to pickout in the first place.

These bugs happen. It's the nature of programming.
this sound like fun
 

Deleted member 41271

User requested account closure
Banned
Mar 21, 2018
2,258
There is no reason that enemy behaviour like that should be relegated to an initialization file in the first place and not in the code itself. If it had been in the game's code, it would have been caught before release because it would have thrown a compiler error about an undefined variable.

There are plenty of reasons to do that, it is in fact fairly normal that some games are structured that way, and it is even more normal to do during actual development.
Remember the game's history. This may simply have been an early hack that was never supposed to remain that way.
 

Gustaf

Banned
Oct 28, 2017
14,926
i dont know if someone already answered this, but how does this affect the console releases? o.O
 

delete12345

One Winged Slayer
Member
Nov 17, 2017
19,673
Boston, MA
So how do we fix this ourselves? Is there a patch coming out?
Just open up the INI configuration file in your installation folder/directory, CTRL+F for "Teather", and remove the "a" before saving the INI configuration file.

So did anyone play through it with the fix, is the game half decent now?

Heard some folks saying the game is 3-folds more decent than what it was before. And quite harder.
 
Nov 12, 2017
5
how did the motherfuckers who made this shit, and made the AI, and expected it to run a certain way

how did they just not...follow up and look and say "something isn't right"

Wasn't the game's production a total mess? I can imagine a scenario where it was rushed, and they knew that there were AI issues, but they didn't think to look for a misspelling in the INI.