If I get you right, the engine runs a trace in every direction and tests whether it can "find/see/touch" a player. It'll break off if the surface is too thick.
Almost. It only traces to each entity (player or other bot) and checks if it can see it. So it's not that much anyways - after all, the
game does not need to find all the entities
... only each bot.
Can't we add additional key-value pairs in order to make it easier to identify doors/translucent surfaces? Can you check for these easily during engine run-time?
Theoretically, yes. I've briefly tested if I can use existing ones. But the game has to be able to deal with [/i]all[i] current maps. And it's much less work to do it in the game code than to change all maps
Running all these additional traces will put quite a bit of strain on the servers, I guess. If we can make things easier during map building time, we might consider that option.
When I started, I was concerned about that, too. But the game does not trace that much to begin with. And as I said, only to all players. And even I with my slow system did not notice any FPS drop. So, don't worry.
In general: I've tersted and changed (and fixed
) a few things. It turns out the thickness is irrelevant
... so forget that part. But I'll make the surface detection more general. An update should be done, soon.
Oh, and @torhu: the bots cannot see through the fence in wq_fort. I just double checked that. At least the visibility function does not trigger. They may hear you, though. There is such a "hearing" function, but I did not check that one.