Getting Frikbots to work in Quakeworld.

Discuss Artificial Intelligence and Bot programming.
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

Somehow got the compiler to work :D with 94 warnings :cry:

Started the server, loaded the mod, re-started map.

Now when I call for the bot, nothing happens. Impulse 100 has stopped working! Somebody shoot me!

Any more info on that localinfo b_options 1 thing?
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

New development:

I tried using the saved1 cvar in regular Quake. It worked!
The Frikbots would transfer from map to map!
Then I noticed that the weapons looked somewhat different than the weapons I normally see in Quakeworld. Hmmmmm.

I'm guessing this means I am not getting the full mod working in QW. Which is weird b/c I can spawn bots in QW. I am still playing with the localinfo b_options with no luck.

I guess the qwprogs.dat that came with FrikbotX is not correct. Thats why there are those instructions to make a new one. I think that the instructions are missing something or I did something wrong.

It would be real nice if that localinfo b_options worked.

What should the line look like:

localinfo b_options 1?
localinfo b_options saved1?

In regular Quake it was: saved1 1
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
Lardarse
Posts: 266
Joined: Sat Nov 05, 2005 1:58 pm
Location: Bristol, UK

Post by Lardarse »

scar3crow wrote:Lots of stuff that's accurate
Wow, dude. For someone that claims to not be a coder, you sure know a lot!

A couple of things that I don't know have been mentioned yet: Backslashes have a special meaning in C-like languages when they appear in strings. \n is a line break (although you seem to know that one already), " includes a " in the output, and \\ includes a \. There's a few other things that can be done with the backslash, that are compiler specific.

I'm not sure which compiler you're suing, but I belive that you mentioned FTEQCC. Assuming you are, and that you're running Windows, you may want to create a little batch file that will keep the output window open afterwards. This is the one I use:

Code: Select all

@fteqcc
@pause
FTEQCC will give a lot of warnings about "no references" but they can be ignored, as they only warn you about a variable that hasn't been used. That will likely be a lot of the 94 warnings that you received. (The original 1.06 source code gives 78 warnings, and about 60 of them are for no references) There is a way to disable them, but I can't remember it.

Compiling for QW is pretty much like normal. The ouput filename (first line of progs.src) combined with everything above the void end_sys_fields; definition in defs.qc tells the compiler that it's for QW. There should be a message that's printed in the output (just above the no references warnings) that confirms that it will work. It's a very bad idea to make changes above that line, that's why nearly every tutorial recommends adding to the bottom of that file instead.

Other than that, have fun, and welcome :-)
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post by Spike »

I was under the impression that frikbot's qw support was never fully polished (at least the version I played with wasn't), and that you can get a fairly fatal crash by doing this:
connect two clients.
disconnect the first
add a bot on the second
connect another client.
add a bot

I think that's how you reproduce it at least...

The reason for this issue is an nq/qw difference.
In quakeworld, the entire player entity is cleared when the player connects, while in nq only certain fields are cleared.
This leads to an issue where a linked list adds the bot twice (player_head I think is the variable referring to the head of the list).
In NQ, a connecting player correctly takes up the player slot, wiping the bot that was there...


You can hack in a fix by fully rebuilding the list (but that can result in players/bots not getting noticed or something).
Ideally you would remove the linked list (use the nextent builtin instead probably).

Its been ages since I've actually looked at this code, so what I'm describing probably isn't totally accurate. Just be aware that it exists. Frikbots are otherwise great.
Sajt
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Post by Sajt »

Lardarse wrote:I'm not sure which compiler you're suing, but I belive that you mentioned FTEQCC. Assuming you are, and that you're running Windows, you may want to create a little batch file that will keep the output window open afterwards. This is the one I use:

Code: Select all

@fteqcc
@pause
I prefer...

Code: Select all

fteqcc > output.tmp
notepad output.tmp
del output.tmp
:) I think FrikQCC and FTEQCC output an error.log anyway, but only if there are errors...
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
FrikaC
Site Admin
Posts: 1026
Joined: Fri Oct 08, 2004 11:19 pm

Post by FrikaC »

redrum wrote:New development:
It would be real nice if that localinfo b_options worked.

What should the line look like:

localinfo b_options 1?
localinfo b_options saved1?

In regular Quake it was: saved1 1
FrikBot for QW does not support that option. There's a reason bot_qw.qc is so much smaller than bot.qc, because QW doesn't support many of the features the regular Quake version supports. There three reasons why some features do not exist in QW:

1. Laziness
2. Missing features of the QW engine
3. Laziness

The reason BotReturn is missing is the first of this list, combined with a little of the third option also.
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

Damn! Didn't want to hear that!

Then why does it say on the webpage http://www.inside3d.com/frikbot/fbx/readme.html
that localinfo b_options will work???

What is localinfo b_options good for???

Why the special instructions to re-compile qwprogs.dat???

I've been barking up the wrong tree???
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
Urre
Posts: 1109
Joined: Fri Nov 05, 2004 2:36 am
Location: Moon
Contact:

Post by Urre »

Not really frikbot related, but have you tried engines with increased networking capability online which are not restricted to qw, like FTE or Darkplaces? Both of those should give you good (compared to say winquake) performance online without playing with the quakeworld protocol. Just remove the qwprogs.dat from the mods folder (keeping progs.dat there) and run the server using one of those engines. If using darkplaces it's required for the clients to use Darkplaces as well. FTE doesn't have this requirement.
I was once a Quake modder
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

OK, maybe I'll try them out. Thanks.

Question: I'm still having trouble with the server crashing, what are the optimal commands for qwsv.exe?

I'm using qwsv.exe -mem 64 -zone 8192

Is there anything else that I could add here?

Do I need to run priority.exe?

I'm running a PC, windows XP, 512 ram, 2.0 gigahertz.

Thank you all for your help. :D
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
Dr. Shadowborg
InsideQC Staff
Posts: 1120
Joined: Sat Oct 16, 2004 3:34 pm

Post by Dr. Shadowborg »

God, this reminds me of how much I loathe QuakeWorld. :/

You're probably better off overall following Urre's suggestion of FTE / Darkplaces.
Orion
Posts: 476
Joined: Fri Jan 12, 2007 6:32 pm
Location: Brazil

Post by Orion »

Hey, I've a QW version of OrionBots... but I should make a total rewrite 'cuz it is out of date..
But they're not bad, if you want my bots, post here and I'll upload to shub-hub.

I can make'em change level using a cvar.
When I connect a bot have a global float called "botcount" that will be increasing while connecting bots... And this float is stored at any unused cvar (e.g. temp1)..

Improvements for NQ OrionBots version 2.1 (third release) are underway, but I dunno if QW supports temp1. If supports, then great! :)
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

Sure man, I'll check em out!
Was nice battling with ya. Server crashed though :cry:
I'll let all know when it is stabilized!
Do you want to just e-mail me the file?
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

Update:

Server is stabilized! :o

Join at 24.184.130.106:27500, most active in the PM, New York time.

Download maps/skins from ftp.nikon.net, not www.ftp.nikon.net, not http//ftp.nikon.net. (Don't use this hyper-link, it won't work)

Username: quake
Password: demotest

You should find: skins.zip, maps.zip, newmaps.zip, newmaps1.zip, newmaps2.zip

Thank you for all your help! :) See ya on the battlefield!
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
scar3crow
InsideQC Staff
Posts: 1054
Joined: Tue Jan 18, 2005 8:54 pm
Location: Alabama

Post by scar3crow »

If Ive got time tonight I'll drop on by, depends on homework and girlfriend. =)
redrum
Posts: 410
Joined: Wed Mar 28, 2007 11:35 pm
Location: Long Island, New York

Post by redrum »

I hear that!

BTW, I was wondering is there a way to have your autoexec.cfg load at the beginning of each new map?
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
Post Reply