Hi, To simplify my email here, I will write the background of what I've been trying to do, and what my goal(s) are. Because the frame rate becomes quite choppy at 63 bots, I've been trying to see how much does AI consume from the overall processing power.
At first, I thought that the AI main entry point function was BotAIStartFrame() found in vmMain(). So, I measured how much time is spent at the BotAIStartFrame() function by simply placing a time stamp right before that function and one right after it and taking the difference, under the following condition: 63 Bots, map q3dm1, measurement time frame 5 seconds. I start measurement when sv.state == SS_GAME (Game has started) I am using QueryPerformanceCounter() for time measurement. After measuring, it turned out that BotAIStartFrame() only needs 0.156 seconds! However, what I was wondering is that if the AI only needs less than %5 of the overall processing time. Question One: how come the frame rate drops so badly when the number of bots are increased? Question Two: since the frame rate drops drastically, who is consuming the most out of the processing power instead? Question(s) Three: I keep reading everywhere that the Engine is limited to 64 clients. Is it impossible to increase that number? If not, has anyone ever tried increasing it before? I have done a similar test with Half-Life2's SourceSDK, and found that the AI uses %67 from the overall processing power in a 100+ bot scenario! So, I continued my search through out the code thinking that I might have picked the wrong location to measure in. As I was doing that, I found a function that I wasn't sure what it did, ClientThink()(ClientThink_real()). In Half-Life2-SourceSDK, "Think" means AI. I felt that I had to read The Quake III Arena Bot by Mr. van Waveren thoroughly, so I can understand how things work better. It answered many questions I had. But still, I couldn't find any reference to the term "Think", hence, nor where does "Think" fall within the layers of the Bot's AI. Question Four: What does "Think" mean in Quake? I have one more issue that I still can't fully understand. Based on the Documentation, AAS is the Bot's input. And, Basic Actions are the Bot's output. And, Basic Actions are something close to a State Machine. Question Five(s): When do the Bot's "Actions" get executed- or where? I am guessing that they aren't done inside BotAIStartFrame(), no? In Mr. van Waveren Bot Documentation there is a reference to the Bot's AI runs at a 10Hz. I wanted to increase that frequency. But, I couldn't find it. * Does anyone know where is that frequency allocated? Thank you for reading through this long email, and, I appreciate any help offered! I welcome even keywords! ;) Best regards, Yasir
_______________________________________________ ioquake3 mailing list ioquake3@lists.ioquake.org http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org By sending this message I agree to love ioquake3 and libsdl.