The infinite loop stops the game from progressing. It uses up all CPU power trying to do the loop, and never does anything else. To the user, it looks like the game freezes, since the renderer stops, as do all other game functions.
So, it's pretty much like a crash, except harder to find.
Hi, I liked Science and Industry. Tried Gravebot and it worked fine. I made a few waypoints for some maps- only "rough sketch" without jump-crouch and -lift -waypoints. The bots seemed to have some trouble at doors. Worked fine overall, bots completed the goals fine. Would be nice to have some more detailed infos about the waypoint-flags (lift, doors etc.). Anyway, anyone may use these waypoints and tweak them (maybe this saves some time). Have fun!
Edit: I've just had a game of si_urban with bots (13bots + me). I mean, a full game. No crashes, no freezes, nothing wrong what-so-ever, except that the bots didn't go up the ladders on the rooves. I think the problem that makes the game freeze is either:
1) Waypoint flags
2) si_overtime waypoints has problems
I haven't tried laser or deep yet. I'll get to it someday.
Edit2: I've just tried si_deep. It freezes. The similarities between overtime and deep is that the bot gets stuck in the spawn room in both of them. Still got laser to try
Thanks for your testing, things like that help narrow the problem down. I'm hoping that with some testing this weekend I'll be able to figure out what is causing the issue. I plan on running many games with certain features disabled, this will hopefully track down the issue to a certain function or set of code, which I can then analyze for problems.
The fact that it could be waypoint related does make me think. Waypoints do a LOT of looping (looping through waypoints, looping through entities near waypoints, etc.). I had to write some custom waypoint finding code for S&I due to the way gathering weapons is handled (weapon_generic and weapon_experimental can be any weapon or weapons).
As for the waypoint flags, most of them are pretty simple and are the same flags that HPB bot uses, although they don't really serve any practical purpose. You'll notice that si_overtime doesn't use any flags except team flags and item/health/armor flags. Even so, I'll expand the documentation when I find time.
I'll have to take a look at this some time during the weekend.
The major idea I must stress behind waypointing is checking the paths between waypoints. I often find that waypointers just add waypoints and let the auto-connecter do the work for them. It doesn't always do the best job, and sometimes connects waypoints above other waypoints, or waypoints on the other side of something like a fence.
Wouldn't want the bot running into a grate thinking it could get to the other side. :-/