From: Joschka B. <jbo...@un...> - 2007-06-18 09:25:58
|
Hi Hedayat, On Mon, 2007-06-18 at 02:12 +0330, Hedayat Vatankhah wrote: > There is a problem when MoveAgent(AndRotate) functions are used: there > might be another object in the destination! This happens for example > when two agents beam into the same place which will slow down the > simulation significantly. It seems that these functions should place > the agent into the nearest empty position to the destination point. Or > maybe the empty position is found before calling these functions. Yes, you're right. There are several possibilities: 1) We could say it is the teams' responsibility to avoid these kinds of situations. This is risky, however, and might lead to lots of games having to be restarted if the server is not responsive anymore. It also creates problems how to deal with these situations in the rules (should the team that caused this be punished in some way, etc). 2) We could check the position in the BeamEffector and only execute the command if no BoundingBoxes intersect. If there is an intersection, the command is simply ignored (we might think about a message to the agent in this case). 3) The BeamEffector does the check and also figures out a safe position for the agent. This might be a non-trivial task, however, depending on the configuration of agents. Since we don't have much time, I'd favor 2). What do you think? And also, do you think you'd have time to work on this? Cheers, Joschka |