PogamutUT2004


Movers/Elevators

It seems that even the new KefikRunner sometimes has problems with
Movers/Elevators. Can I get some tips on various methods that can help
deal with elevators and movers?
Hi, we're sorry :-(

1) please report map + from which navpoint to which navpoint you're moving so I could check it out

2) you can check the source code of UT2004BotModuleController and check out how to instantiate pathExecutor with custom runner

3) and then copy-paste LoqueNavigator class && KefikRunner class into your new JacobNavigator / JacobRunner class and try to tweak it out.
Prepare for strange code ... hopefully KefikRunner should be fine to read as there are many comments ... but LoqueNavigator is a bit messy :-( ...

Cheers!
Jimmy
Or you can always use the old LoqueRunner.

Cheers!
Jimmy
I'm pretty sure LoqueRunner has the same problems. I'm mainly having
problems with the elevator on DM-Asbestos.

I'm already made my own custom runner, but what I was asking was how
I make the bot detect movers and deal with them. Even if I customize my path
runner to deal with movers, I still need to have the right sensors to deal with them.
Can bots sense when a navpoint is near a Mover? Can they tell whether an elevator
is in the up or down position so they will know to wait instead of having it come down
on their heads?
It works like this: each mover has a navigation point associated with him which moves with the mover. For lifts it is LiftCenter navigation point. So to handle movers correctly it is best just to look on the movement of associated navigation points. I am not sure if you can get this point from Mover object in Pogamut, but navigation points should have a field isLiftCenter or something like that (and perhaps Mover attribute where Id of associated mover is saved).
About that sensing - those explicit sense are not present in Pogamut, you have to implement them yourself - e.g. check the position of nav. point and compare it to bot location .z coordinate if the mover arrived down, etc.

Best,
Michal
Ok, I've found a bit of info, but need more help.
NavPoints have methods getLiftCenter and getLiftExit,
but the javadoc doesn't make the definition clear to me.

Is the LiftExit always the top of the elevator? Is the LiftCenter
always a point on the elevator? Does the position of the
LiftCenter change if the elevator moves? When the elevator
is at the top, do the LiftCenter and LiftExit share the same
location?
Guess we were posting at the same time...

Your post answers my question. Thanks.
The z coordinate of lift exit will match approximately the z coordinate of lift center when at top/bottom position - but I would still use some delta ~ 50 ut units for example.

I am always thinking that when doing some AI for deathmatch bot one always finds himself doing better path finding... :-) I think the problem is that the path finding component of AI concerned with deathmatch bots is really one of the crucial things. Withouth good path finding the bots will NEVER appear to be human like or intelligent. The path finding in pogamut improved significantly from Pogamut 2.0, but still it is far from being perfect on complex maps. :-/

Our solution to the problem is: to use maps that are simple enough for path finding to work... Or as jimmy suggested before (did he?) to post process the navigation graph and remove non-traversable edges (or to be precise - edges WE are unable to traverse in Pogamut... I was seeing native UT bots doing things I couldn't do. :-) )...

Best,
Michal
 

News

News RSS RSS feed for News link



Pogamut

Quarterly RSS RSS feed for quarterly reports

Acknowledgement

This work is supported by GA UK 1053/2007/A-INF/MFF (2007-8), GA UK 351/2006/A-INF/MFF (2006-8), the Ministry of Education of the Czech Republic (grant MSM0021620838) (2008-9), by the Program "Information Society" under project 1ET100300517 (2006-9), and the project Integration of IT Tools into Education of Humanities (2006-8) and by the project CZ.2.17/3.1.00/31162, which are financed by the European Social Fund, the state budget of the Czech Republic, and by the budget of Municipal House Prague.