View Single Post
  #559  
Old 05-29-2008, 11:27 PM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Arrow

Quote:
Originally Posted by davood3 View Post
any chance of sharing that with us bat? hehehe. that sounds like the perfect solution.
Well, trivially, in commands.cpp under the bot follow command:
Code:
for(int i=0; i<MAX_GROUP_MEMBERS; i++) {
	if(g->members[i] != NULL && g->members[i]->IsBot()) {
		//--BAT : Forms trains out of the group instead of them all dogpiling your face
		if(i > 0)
			g->members[i]->SetFollowID(g->members[i-1]->GetID());
		else
			g->members[i]->SetFollowID(c->GetID());
		g->members[i]->Say("Following, %s.", c->GetName());
	}
}
More advanced following code avoiding jitter and jumping as much as possible and letting them look like they're really running is what I'm working on right now. Shouldn't prove too much of a problem.

Making them actually behave sensibly when you stop is another thing.

At least formally, you'd probably like them to stop at some point behind you, catch up with you, fan out behind you without getting in the way of other party members, and avoid aggroing anything by fanning out too far. In theory, you would take your heading and transform a point behind you a certain distance, then have each party member take a point of the compass behind that point and move a set distance from it, avoiding walking through (or against) walls or spreading out so far that they can't see what's going on.

That part is quite a bit harder. I think Congdar's code for that is a pretty good solution to keeping them out of your way but still in a position where they have line-of-sight to anything you might target, but as he says in his code comments, it makes them behave like ugly bots rather than like natural party members.

Ideally you'd have the things find the nearest AI node behind you and form up around that, then move themselves so they had line of sight on whatever you might target as soon as you engaged, but that would be pretty much impossible without some rather sophisticated FPS-stype AI operating on the AI node trees, which is probably more effort than anybody would want to go to just to make them look a bit more natural.