Making bots aim perfectly

Developer discussion of experimental fixes, changes, and improvements.

Moderators: Nexuiz Moderators, Moderators

Postby esteel » Fri Nov 02, 2007 7:23 pm

I guess you feel great bashing good people.. just get lost asshole
esteel
Site admin and forum addon
 
Posts: 3924
Joined: Wed Mar 01, 2006 8:27 am

Postby KadaverJack » Fri Nov 02, 2007 7:26 pm

K-LorvianChant wrote:I'd like to see this in 2.4 but divverent keeps rejecting everything even tzorks turrets. This ain't an opensource project, this is divverent's dictatorship. Nexuiz needs to be forked or more help gotten or div sent to cool down so he don't block the way like he is now.

If that's your opinion, then shut up and do it.
KadaverJack
Site admin and forum addon
 
Posts: 1102
Joined: Tue Feb 28, 2006 9:42 pm

Postby Urmel » Fri Nov 02, 2007 7:28 pm

yep, I wonder why he's keeping his men's liberty server up at all.
uncomfortable
random
mean
embarrassing
limited
Urmel
Forum addon
 
Posts: 1744
Joined: Fri Mar 03, 2006 10:06 am
Location: Offline

Postby tZork » Fri Nov 02, 2007 10:13 pm

K-LorvianChant wrote:I'd like to see this in 2.4 but divverent keeps rejecting everything even tzorks turrets. This ain't an opensource project, this is divverent's dictatorship. Nexuiz needs to be forked or more help gotten or div sent to cool down so he don't block the way like he is now.


Wth? i never asked for my turrets to be supported, included or whatever. it just something i do on my spare time. if it gets included one day, cool, if not thats fine too. and how on earth can you precive nexuiz as "divverent's dictatorship" did he reject personaly implementing and doing all the work for some hairbrain idea of yours? you say nexuiz needs more work and still you flame one of the most productive members of teh dev team? plz just stop coming here, your negavivity and trolling are just anoying and counterproductive.

Oh and yes, plz fork nexuiz and deal with the issues you see fit yourself, it would make things mutch better for the nexuiz community not having you arround bitching and trolling here.
HOF:
<Diablo> the nex is a "game modification"
<Diablo> quake1 never had a weapon like that.
<Vordreller> there was no need for anything over 4GB untill Vista came along
<Samua>]Idea: Fix it? :D
<Samua>Lies, that only applies to other people.
tZork
tZite Admin
 
Posts: 1337
Joined: Tue Feb 28, 2006 6:16 pm
Location: Halfway to somwhere else

Postby xoltra » Sat Nov 03, 2007 9:30 pm

Since it's possible that making bots aim perfectly is something that only I'm obsessed with I'll make this my last post in this thread (unless people want to talk about it).

I simplified the patch so that bot_aimdir() just points the bot straight toward the human (with motion compensation) and then exits. Also since at skill 100 the bot is much stronger with the Nex than any other weapon I made it so that if the skill level is 100 the bot always selects the Nex if he has one and has ammo for it.

I also made it search harder for goals, but more on that in another thread.

My patch is in the same place as before:
http://home.austin.rr.com/selliott4/nexuiz/nexuiz-skill-100.diff
xoltra
Member
 
Posts: 19
Joined: Sat Jul 15, 2006 11:03 pm
Location: Austin TX USA

Postby AceOfThumbs » Sat Nov 03, 2007 10:14 pm

I think it is a cool topic, xoltra. I have a hard enough time with the bots without perfect aim, though.

I think it would be great if you could try to create more intelligent bots for CTF.
AceOfThumbs
Alien
 
Posts: 158
Joined: Tue Sep 04, 2007 11:12 pm

Postby xoltra » Wed Nov 07, 2007 8:13 am

It would be great if someone did that for the CTF logic, AceOfThumbs, but I'm not a Nexuiz developer. This patch is just something I had fun messing with. I'm not planning on investing much more time time with Nexuiz code right now. If someone else wants to mess with it check out my "Why bots aren't better at CTF" topic for my thoughts. Consider messing with the roles and goals. Coming up with some way assuring that bots never stand still, perhaps some sort of Brownian motion random walk if nothing else, would help significantly.

I did make one last enhancement to my patch - bots both pick their enemy and decide to fire their weapon based on testing line of sight from their vantage point to a single point within their enemy's bounding box. That point may either be their enemy's origin or the center of the bounding box, which is close to the same thing.

The problem is that if you are partially obscured, such as when you are on a platform looking down at the bot, the bot may not fire since your origin may be obscured. In such cases you can fire down at the bot with impunity.

With my latest patch if there is not a line of sight to its enemy's origin the bot will then test line of sight to all eight corners that make up its enemy's bounding box. It will shoot at whichever corner is exposed. With the latest patch at skill 100 if the bot has a nex it will almost always shoot you before you can even see him.

There was some talk in this thread about this patch being accepted into Nexuiz. That's fine with me, but as I mentioned I consider this patch to just be a fun hack. For a real fix ideally more work should be done to make what I did seamlessly integrated into the skill system rather than having a skill of 100 be a magic value. It seems like increasing the skill from its minimum value (currently 0) to its maximum value (currently 10) should result in gradual increases in skill.

As to the bigger picture - this may seem like flame bait, but there are issues with the Quake C code that ideally would be cleaned up.

There is a lot of commented out code. For example, look at all the commented out code in bots.qc. It's not a big deal, but it's something people have to sort through. It would be nice if most of it was deleted. It's all in some version control system anyway, right?

An even bigger issue is that Quake C either has limitations that compelled the authors of some of the code in Nexuiz to do some odd things. For example, this pushes something onto a stack:

void(entity e) navigation_pushroute =
{
self.goalstack31 = self.goalstack30;
self.goalstack30 = self.goalstack29;
self.goalstack29 = self.goalstack28;
self.goalstack28 = self.goalstack27;
...
self.goalstack02 = self.goalstack01;
self.goalstack01 = self.goalcurrent;
self.goalcurrent = e;
}

Yes, all 32 slots within the stack are hard coded. It's repeated again for the pop and again to clear all the slots. This has to do with limitations in Quake C:
http://en.wikipedia.org/wiki/QuakeC

So I understand that enhancing something like Quake C is hard and that everyone involved probably behaved reasonably given the constraints they had. But at the same time I just want to point out that there are these limitations and that there is a significant cost in terms of how cumbersome the code is.
xoltra
Member
 
Posts: 19
Joined: Sat Jul 15, 2006 11:03 pm
Location: Austin TX USA

Postby Bundy » Fri Nov 23, 2007 2:44 pm

Bots with perfect aim are so frustrating .. I remember my time playing Q3 solo campaign last level on nightmare. Beating this bot was a coinflip (good spawns needed and hope he dont get the railgun to often). However, intelligent bots would be nice :D
Bundy
Alien
 
Posts: 230
Joined: Sat Jun 23, 2007 10:47 am

Postby Qantourisc » Wed Jan 02, 2008 2:42 pm

I just made the bots less perfect :)
Bots that aim perfect are bad for your skill. They teach you tons of bad habits.
In any case you can aim perfecty, but using a rocket launcher perfectly involves more then just aiming.
Qantourisc
Alien
 
Posts: 130
Joined: Fri Jun 16, 2006 5:44 am

Postby DeVsh » Fri Jan 04, 2008 6:49 pm

man where is the code for bots i wanna mess with it
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

PreviousNext

Return to Nexuiz - Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron