Why is the programming in this game so flawed??

  • Thread starter Thread starter Asane
  • 72 comments
  • 4,861 views
This could be true, but one might be able to argue as well that the AI should be smart and skilled enough to not rear-end me.

Actually being slow and braking too early are two different issues. You're being rear ended because you brake too early (which is basically the only way to be rear ended in this game).

Mind you, amateurish drivers that brake too early are one of the most common causes of crashes in real racing, and they're VERY difficult to avoid even by an experienced driver.

This is not to say that the AI couldn't have been programmed to make a better effort to avoid you, but if you're rear ended by them, I'm sorry, but the error lies on your side and you have very little to complain about if you don't get the license.
 
As I said before, I really doubt there is any scripting in the AI behaviour. I'll try to explain why.

AI makes decisions on what control input to make depending on it's own status and what's around it, nothing random. Consider taking the human player out completely and at the start of a race or test the conditions are always exactly the same so every decision made by each AI player will always be the same no matter how many times you restart so races will always play out exactly the same way.

Now throw in a human player, the human won't ever make exactly the same moves from one race to the next but the cars ahead won't be affected until he catches up with them or if he interferes with a car in front that then in turn interferes with another in front of it, chaos theory. So until the human player causes interference directly or indirectly the AI race going on in front will always play out the same.
 
no offense but this shows how noob you are at programming, just cause you know some noobie stuff you think you suddenly know enough programming to judge them? it isn't as simple as if/else statments. also, with the ps3, they are also using the ps3 assembly language, and manually manipulating registers and etc....ain't simple like you think. learn more about programming, hardware architecture and design, and embedded systems then come back and try to make a valid argument. now i understand you're only trying to cover the overall simple aspect of it, but it also seems like you just read a "learn to program in 24 hrs" book and now think you are all that

moreover, you can't say the programming is "flawed" if you haven't seen their code, which is probably made up of several different languages, not just c++

I don't think you really know what you are talking about either. Any programs functions can be broken down into a flow chart that shows what all the decisions look like very simply.

It seems you at least know what you don't know, but you are making assumptions about what you don't know that you can't know.
 
The AI is already really flawed, but what I am referring to is the if/else statements and the checking system in regards to collisions. This part of GT5 is so flawed. There's two ways in my opinion the game checks for this.

1) The way I see it in the license tests and the races is that there are two conditions the AI cars are in and those two conditions are either in a "neutral" state and a "braking" state. If you bump into the AI cars during their braking state then that results in immediate DQ otherwise a "bump" does not result in DQ.

2) This is where another part of the programming comes into play where the game checks for a certain amount of speed that you are in and if you are above a certain threshold which the game deems "appropriate" and you "bump" into an AI car, then that results in a DQ.

Both of these conditions only apply though when the player initiates the contact and not vice versa.

These systems should work in theory, but clearly they do not as evidenced by such license tests like IC-10 and IA-10. The main problem is that these two conditions that the game checks for are so stringent that they're downright unfair.

It seems to me that they should implement another "if/else" statement where if you are braking, then the 1st condition should be considered null where instead the 2nd condition takes its place.

In my opinion this can get rid of some of the "unfairness" that is present in some of these races.

Thoughts?

Anyway, this was just me ranting though. The other big problem is which part of your car should apply to these conditions, but that is another matter.


are you saying the whole AI comes down to 2 AI if/then/else statements. Ok you have no idea how code works do you. I agree there are problems with AI but to boil it down to 2 values?
 
are you saying the whole AI comes down to 2 AI if/then/else statements. Ok you have no idea how code works do you. I agree there are problems with AI but to boil it down to 2 values?

No, he clearly wasn't. He was saying that the logic behind what gets you DQ'd boils down to about that and it's too simplistic.

He was not saying what the actual code was.

Example: Cancer surgery boils down to:

If you can find the cancer, remove it.

If you can't, stitch up the patient.

Is surgery that easy? No. Is the basic idea that guides the process of a complicated surgery that easy? Yes.
 
I don't think you really know what you are talking about either. Any programs functions can be broken down into a flow chart that shows what all the decisions look like very simply.

It seems you at least know what you don't know, but you are making assumptions about what you don't know that you can't know.

you are the defender of random comments it seems.
 
No, he clearly wasn't. He was saying that the logic behind what gets you DQ'd boils down to about that and it's too simplistic.

He was not saying what the actual code was.

Example: Cancer surgery boils down to:

If you can find the cancer, remove it.

If you can't, stitch up the patient.

Is surgery that easy? No. Is the basic idea that guides the process of a complicated surgery that easy? Yes.

I know exactly what he is saying. I'm talking about his basic assumptions of what the code is doing. In his Terms"There's two ways in my opinion the game checks for this", so I'm saying that the AI is governed by more then just 2 parameters, regardless of how simple you state it. I'm sure if someone sat down and analysed it you would find out more then those 2 parameters for a DQ, i got gold on the Elise challenge, 2 hours of DQing, and i can tell you that it was a little more then neutral" state and a "braking and amount of speed, i agree that those are factors. but there is more then 2, that was my point
 
Last edited:
no offense but this shows how noob you are at programming, just cause you know some noobie stuff you think you suddenly know enough programming to judge them? it isn't as simple as if/else statments. also, with the ps3, they are also using the ps3 assembly language, and manually manipulating registers and etc....ain't simple like you think. learn more about programming, hardware architecture and design, and embedded systems then come back and try to make a valid argument. now i understand you're only trying to cover the overall simple aspect of it, but it also seems like you just read a "learn to program in 24 hrs" book and now think you are all that
All programming is designed that way. It doesn't matter if it is programmed in a high level language, assembly, or even machine code.

moreover, you can't say the programming is "flawed" if you haven't seen their code, which is probably made up of several different languages, not just c++
This, however, is pretty spot on. Without looking at the code itself or reverse engineering it, it is pretty much impossible to really determine what the game bases the decisions it makes on. GT4 used a relatively "simple" system, which is why it wasn't particularly hard to find out what the fail conditions for the licence tests were. But from what I've played GT5 doesn't use the same system as GT4 did, because the DQ conditions don't play out the same way and they don't seem as consistent.
 
All programming is designed that way. It doesn't matter if it is programmed in a high level language, assembly, or even machine code.


This, however, is pretty spot on. Without looking at the code itself or reverse engineering it, it is pretty much impossible to really determine what the game bases the decisions it makes on. GT4 used a relatively "simple" system, which is why it wasn't particularly hard to find out what the fail conditions for the licence tests were. But from what I've played GT5 doesn't use the same system as GT4 did, because the DQ conditions don't play out the same way and they don't seem as consistent.

Well, I never really stated that what GT5 was suppose to have was suppose to be perfect.

You are correct in that I can't assume exactly the conditions that PD set forth for their collisions, but I did state that this was my opinion on how they did it. I never stated it as a fact, but as an assumption.
 
Alright, sorry for the double post, but I take back what I said, DQ can happen even if they initiate contact while they try to get back in the driving line and ram into you.

Now, that crap is just plain broken. I shouldn't have to take into account the AI and have to baby it just to get through a race. The AI should have enough code to at least know not to ram into me just to get back on their racing line.
 
Alright, sorry for the double post, but I take back what I said, DQ can happen even if they initiate contact while they try to get back in the driving line and ram into you.

Now, that crap is just plain broken. I shouldn't have to take into account the AI and have to baby it just to get through a race. The AI should have enough code to at least know not to ram into me just to get back on their racing line.

Try playing the Elise top gear challenge, its already hard enough with hard tires, I almost raged when i took first on the last corner only to be hit from behind then stuck to his and shunted outta bounds Then DQ. I think the AI in challenges are very different from normal races though
 
Try playing the Elise top gear challenge, its already hard enough with hard tires, I almost raged when i took first on the last corner only to be hit from behind then stuck to his and shunted outta bounds Then DQ. I think the AI in challenges are very different from normal races though

What's wrong in this game is that the AI doesn't have enough brains to check that an instance (you) is present in the current position that they want to take and so they proceed to ram into you instead.

I love the game play of GT and this game is so amazing to me, but I'm being honest in that the AI and the collisions need serious work.
 
I just got done with the Tuner Championship and for some reason, on the last stage while driving my modded Opera S2000 (which pulled trains on anything I was racing), the AEM S2000 could suddenly outrun me on the straights. Wtf??? In between races did the AEM driver suddenly run up to Harry and say, "I need NAWS!"??? This game defies explanation.
 
for(short i = 0; i < 11; i++)
{
//CRacer *pAIRacer = new(CHighlyIntelligentAIRacer());
CRacer *pAIRacer = new(CStupidAIRacer());//No Xmas Bonus my ass
AddRacerToGrid(pAIRacer);
}

->Guess it wasnt the if/else statement after all :)
 
Last edited:
What's wrong in this game is that the AI doesn't have enough brains to check that an instance (you) is present in the current position that they want to take and so they proceed to ram into you instead.

I love the game play of GT and this game is so amazing to me, but I'm being honest in that the AI and the collisions need serious work.

Not only this, but when they do ram you and you go sideways, they keep accelerating, pushing you like a snow plow instead of letting off the gas and going around you. :ouch: And the AI cars weigh more than a dump truck
 
No, he clearly wasn't. He was saying that the logic behind what gets you DQ'd boils down to about that and it's too simplistic.

He was not saying what the actual code was.

Example: Cancer surgery boils down to:

If you can find the cancer, remove it.

If you can't, stitch up the patient.

Is surgery that easy? No. Is the basic idea that guides the process of a complicated surgery that easy? Yes.

And there you have hit the crux of the matter - anything seems simple when simplify it down. It is pointless to even suggest an improvement based on your straightforward understanding if:

A) You have no influence over getting it changed
B) Your understanding is so simplified it is useless advice to the person/people actually doing it
C) They aren't even listening

If this was a bowel cancer forum would it be useful to suggest cutting more cancer out? Or would that be stating the complete obvious? You decide.
 
Not only this, but when they do ram you and you go sideways, they keep accelerating, pushing you like a snow plow instead of letting off the gas and going around you. :ouch: And the AI cars weigh more than a dump truck

This annoyed me a lot in the Top gear Lotus challenge. Always ended up disqualified because of it. I was cutting them off, but you kind of have to in that race...
 
This could be true, but one might be able to argue as well that the AI should be smart and skilled enough to not rear-end me.

And I guess then that the "normal drivers" who are the ones that drive slow in the Nurburgring are a danger to everyone on the track and not the other way around...?

If you're braking too early, being timid, and not pulling over to let the faster cars pass, you are a danger to everybody on the track, and it doesn't matter what track it is.

Either way, I have no idea how the OP drives, it probably is bad AI, but not always.
 
Yeah, haven't noticed that kind of behavior outside of special events. However in car views do tend to help a bit in judging how hard you're steering into a corner.. gave up on my wheel setup until my gamestand pro thing arrives. Ironing board + force feedback wheel tends to jump around :)

I'm following you there, my wooden stand needs a tune up too, i hear splinters cracking... :)
 
To answer the thread title, why is the programming flawed? Compromise, at the end of the day, you want efficient, working code. Thats working as in it doesn't create bugs, rather than working in that it meets all the requirements, thats the bit thats compromised.
 
Yeah I remember I get DQed on *any* contact. I also get pushed out of the track by other cars, and then get DQed. When I do the same, they don't! It's really unfair and poorly made. It doesn't make any sense. Seems like rules don't apply to the AI.
 
Yeah I remember I get DQed on *any* contact. I also get pushed out of the track by other cars, and then get DQed. When I do the same, they don't! It's really unfair and poorly made. It doesn't make any sense. Seems like rules don't apply to the AI.

Wait, so you think that instead, the player should cause the AI to get DQ'd? I think you miss the point of those tests....its not being "fair" its to make a point about driving carefully. The issue is that the AI doesn't drive so carefully itself, not that it runs on different rules.
 
No. None should be DQed if you get pushed off the track by another car. Nor should you get DQed for being rear ended by the AI as mentioned earlier in the thread.
 
I noticed a few times when a car actually broke the driving line to try and block me on Daytona...

That poor vertigo got lapped by the big bad 88C-V

So i wouldn't really say there is no ai in it and the hardest part of this game seems to be getting around the oblivious AI that doesn't pay attention to you in the most part
 
Last edited:
As I said before, I really doubt there is any scripting in the AI behaviour. I'll try to explain why.

AI makes decisions on what control input to make depending on it's own status and what's around it, nothing random. Consider taking the human player out completely and at the start of a race or test the conditions are always exactly the same so every decision made by each AI player will always be the same no matter how many times you restart so races will always play out exactly the same way.

Now throw in a human player, the human won't ever make exactly the same moves from one race to the next but the cars ahead won't be affected until he catches up with them or if he interferes with a car in front that then in turn interferes with another in front of it, chaos theory. So until the human player causes interference directly or indirectly the AI race going on in front will always play out the same.

Have you tried this out? I mean, my initial thought is to agree with you, but I've not tested it.


My experiences with the AI are a bit mixed. I absolutely hate the 1-lap magic ********. I understand the contact "rules" and do my best to abide by them, but when you need to lap 3-ish seconds faster than the AI (as you do on the Elise Top Gear challenge) there's obviously going to be problems.

In order to overtake as many as possible at each corner, you have to brake deep into the corner. This is accentuated by the fact that the AI brake early (just) and pootle into the corner, but always seem to have perfect traction (although their exit line might not be ideal), so there's really little other option. So what happens is you're much faster on the way into the corner, but then have to slow the car right down to get it turned around ready to catapult out of the corner in a straight line, so as to get the drag on the AI again down the next straight.

The extra speed into the corners means you're liable to hit the AI as they take their (legitimate) line into the corner, especially given you're almost always coming at them from a long way back. Then, as you rein her in to take a stab at the next straight, you're now going much slower than the AI is in the corner, so they're liable to hit you (almost certainly as payback :p) compounded by the necessity to take an "unusual" line in the corner.

This isn't poor collision management, it's poor game design. The one-lap magic from GT4 (or was it GT4 Prologue?) where you only needed to overtake three cars, who drive at a consistent and decent pace, were much more appropriate. Maybe they tried to take the concept and "turn it up to eleven", but they ruined the feel, and sense of accomplishment, in my opinion.
 
I think the ai plays really dirty i dont know if its just me but it seems if you ram one of them they will get you back at some point. I have noticed more as i have leveled up so if im right at level 40 it will be a right pita. The super license test on the tgtt was funny i spun a car out got past him and he corrected it an smashed me onto the grass resulting in disqualification.
 
What are you trying to say here? Neither should the AI what?

Yeah I remember I get DQed on *any* contact. I also get pushed out of the track by other cars, and then get DQed. When I do the same, they don't! It's really unfair and poorly made. It doesn't make any sense. Seems like rules don't apply to the AI.

Why should the AI be penalised in a test designed to test you, the player, not the AI? Of course the rules don't apply to the AI, if they did, there wouldn't be much of a test would there?
 
I think the ai plays really dirty i dont know if its just me but it seems if you ram one of them they will get you back at some point. I have noticed more as i have leveled up so if im right at level 40 it will be a right pita. The super license test on the tgtt was funny i spun a car out got past him and he corrected it an smashed me onto the grass resulting in disqualification.

What did you expect? :rolleyes:

I've noticed the AI improve as I've leveled, largely because they can actually take a corner now, so I'm not anticipating when they'll inexplicably brake at random points in the turn.

That said, I did get a bit squirrely on Daytona at 180+ mph and drifted up the banking, only to be rear ended by a Zonda into the barrier and repeatedly nailed by every car behind that, all while bouncing off the barrier again and again. Needless to say, the repair bill has been left unpaid! It was my mistake, but perhaps the AI could have done better at avoiding me!

B-Spec also improves, although it still is infuriating!
 
Back