-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtrmbot09.txt
302 lines (222 loc) · 11 KB
/
trmbot09.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
TERMINATOR
a Quake Bot and Deathmatch assistant
by
(Version 0.9)
--------------
LIST OF FILES:
--------------
bot.exe program for a PC under Windows 95
bot program for Linux (kernel 2.0)
bot.sun program for SUN O/S (and SOLARIS)
bot.aix program for IBM AIX 3.2
bot.txt
---------------
ABOUT THIS BOT:
---------------
This program is meant as an automatic player (a bot) for the game Quake,
by id software. It will run with Quake version 1.0x.
This program is also a fairly good deathmatch assistant: you play the normal
moves, and the bot handles some of the mundanities (like saying where the weapons
are, and slaughtering any player that comes too close).
Of course, you'll have to be pretty bad, pretty low in morale or pretty
lagged, before you use that kind of cheat.
-------------------------
CHANGES SINCE VERSION 0.8
-------------------------
Not much (I've not been able to work on it more than a few hours):
- the Unix/Linux network initialisation bug is dead. RIP.
- bot will react if you fire it with nail guns.
- in -auto mode, if connect fails, the bot will try again every minute.
- you can customise the name and color of the bot.
------------
LEGAL STUFF:
------------
This program is copyright (c) 1996 Olivier Montanuy.
YOU ARE NOT ALLOWED TO DISTRIBUTE IT FOR ANY COMMERCIAL PURPOSE.
Use of this program is free.
Quake is a registered trademark of id software, Mesquite, Texas.
The name "Terminator" is used as a parody of the character in the movies
"Terminator" and "Terminator 2" by James Cameron.
--------------------
SYSTEM REQUIREMENTS:
--------------------
You must have... some machine with a TCP/IP network enabled
(actually, UDP/IP). That can be a PC, a workstation, or anything
that can run either Linux, Unix, Windows NT or Windows95.
CPU and memory are not a problem. The bots are the only Quake
client that accept to run a low-end 486 (maybe even on a 386).
To enable TCP/IP, you must have some kind of network. It can be
the Internet, via PPP or via a LAN, a standalone local network,
or even a simple network card connected to nothing (loopback).
Please do not ask me how to setup such a network.
Also, you must have Quake registered. This is not a system
requirement, but a moral requirement.
-----------------
STARTING THE BOT:
-----------------
Command line examples:
bot -h
Get some help.
bot quake.best.com:22000
Connect to server quake.best.com port 22000
bot quake.best.com:22000 -name llama -color 1 2
Same as above, but the bot name is "llama",
the pants color is 1, shirt color is 2.
bot 192.246.40.27 -auto
Connect to idsoftware public server
Start playing in automatic mode (no proxy)
bot quake.best.com -game mods
Connect to server quake.best.com port 26000
Detect existing model/sound files in:
id1/pak0.pak
id1/pak1.pak
mods/*
There will be a warning for each missing file.
---------------------
COMMANDS FOR THE BOT:
---------------------
The bot console is a bit like the Quake console.
You write a command, then a space, then the eventual command parameters.
Then you press RETURN and the command is executed. Fairly simple, indeed.
The name of the commands sometime look like those in Quake, but actually
only the first character is significant.
Bot commands, before the bot begins playing:
quit = quit the bot
info = request game infos
player = request the list of players
rule = request the list of rules
connect IPADDRESS:PORT = connect to a server (IPADDRESS:PORT is optional)
Bot Keyboard commands, while the bot is playing:
quit = disconnect and quit
player = list of players names, frags (and hate level)
say MESSAGE = say MESSAGE to all the players
Bot debug commands:
a = list of all players positions
danger = coordinates of all dangerous thingy
x = coordinates of all entities in the game
entities = infos on all entities in the game
----------------------
PLAYING IN PROXY MODE:
----------------------
Proxy mode enables you to see through the eyes of the bot... or actually,
to play a normal game, but with some automatic reflexes handled by the bot.
Regular procedure:
. Launch the bot on a machine situated on your local network.
Send command 'i' (server infos) to check if the Quake server replies.
If the server doesn't reply, you better restart your bot.
. Launch a regular Quake Client, for Windows 95 (i.e. with TCP/IP enabled).
Go to menu: MULTIPLAYER | JOIN GAME | TCP/IP
Select SEARCH FOR LOCAL GAMES
Normally, the bot will reply to this search, and in the list of
servers, you should see one server called TERMINATOR: it's the bot,
waiting for you. So connect to TERMINATOR, and play as usual.
Procedure for the UDP challenged:
If the bot is on the same machine as the Quake client, or not on your local
network, of if it's running on some pervert O/S, the bot will be unable to
reply to SEARCH FOR LOCAL GAMES.
If so, select JOIN GAME AT and enter the internet address of the bot (IP address).
Normally, the bot should answer.
If it doesn't work, please check the IP address you used, and the port number
of the bot (26000 by default, like Quake).
---------------------
BOT IMPULSE COMMANDS:
---------------------
The bot catches some impulses, so that you can send simple command to it.
keys 2 to 8 (impulses 2 to 8):
If you press on a weapon you don't have, instead of saying "no weapon",
the bot will orient your view toward the closest weapon of that kind, and
gives you the distance to this weapon, and the time since it was last seen.
impulse 16:
This command toggles the bot automatic movements (disable/enable).
Since the bot doesn't see the level yet, some of his moves are real stupid,
and you'd better bind this impulse to an easily reached key, like P (pause).
impulse 100:
The bot will orient your view toward the closest player he knowns of, and
give you the distance and the time since he was last seen.
impulse 101 to 116:
Same as impulse 100, but for a specific players (1 to 16).
---------------
BOT POLITENESS:
---------------
Some people rightfully consider that playing with bots is cheating.
So if you don't like the idea of playing against this bot:
- Type the message "No bots please"
and the bot will immediatly disconnect.
- Type the message "I love bots"
and the bot will stop hating you (i.e. it will stop firing on you
and will not avoid your line of sight anymore).
If you manage a server, and don't want bots on this server, please have
your server print the sentence "No bots please" when a client connects.
------------------------
THE BEHAVIOR OF THE BOT:
------------------------
Technical Note:
- the proxy bot can only handle ONE QUAKE CLIENT.
- it will usually connect ONCE to a server. Kill him after that.
- under Win95, you might experience a 2 MINUTE DELAY when the quake
client connects to the proxy bot. This is a bug in the windows TCP/IP
stack. The only solution is to reinstall your network from scratch
(well that's what I did, and now it works fine).
This is not a bug in the bot. It doesn't happen with the SUN version.
- currently, no file is read. The bot is wall-blind
- a bot doesn't see every entity in the level. If a player is out of sight,
the bot cannot know where he is... until he makes a noise (even a faint one).
Bot behavior currently implemented:
- The bot locks on hated players, and fire on them.
- The Bot knowns nothing about team play. Not implemented yet.
your team mates will be exterminated like the others rats
("Only paranoids survive" -- remember you're playing on an Intel)
- If the bot is hurt by a gunshot (or a shaft?) he will know who
hit him, and will hate the guy with the utermost endeavor.
- If the bot is hurt by a nail, rocket, or a grenade, there is no
reliable way to know who hit him, so the bot will hate the closest
player. So don't stay close to the bot.
If no one is close, the bot will hate EVERYONE.
- The bot avoids missiles, grenades, and the line of fire of
hated people. The line of fire avoidance course usually force
him to spiral around you, until he's close to you, and in
your back.
- If the bot cannot move in the direction it wants, he makes
a random move (pretty stupid, I know... wait for the BSP code).
- If you make a sound, the bot will know precisely where you are.
But he won't move toward you :-)
- If you drop a backpack, the bot will move toward it. That's
currently his only reliable way to collect weapons.
Known misfeatures:
- If you do not run the bot from the Quake directory, then it CANNOT see
the walls. In that case, it will often kill himself with the rocket
launcher.
- When the level can be loaded, the bot is supposed to see the walls. Well,
sort of. Actually, it doesn't really use that information yet, because the
AI is really deficient. It won't avoid lava pits, for instance.
- Normally, the bot should not fire rockets at close range. But it happens
very often. There must be a bug somewhere in the weapon switching code.
- The bot will show the forecast position of the player with a cloud
of red dots. That's the point where you should fire, if you had a
rocket launcher. Unfortunately, the bot will refuse to let you use one.
So this feature is here only to increase your frustration... for the moment.
- The bot sees you before he should (because the server sends him
updates even when he has no direct line of sight)
- The bot is stupidly static, when no players are around.
(well, actually, it makes some random moves)
- The bot ignores the static entities (like weapons, armors,
and stuff) to avoid wasting too much time.
---------------
KNOWN PROBLEMS:
---------------
- The bot can play fine on a TCP/IP local network. However, if you
put it in your dinning room (like me), then chances are that you
don't have a Domain Name Server (DNS) ready. Then a 2-3 minute
delay can happen, when the bot start.
- The console of the bot will always think you use an English keyboard.
Don't ask me why. Quake does the same.
-----------
CONCLUSION:
-----------
This is still a very early beta of the bot. Any decent player should be able
to kick his ass pretty easily, since it doesn't look for weapons or health.
It's more sophisticated than other client bots I could take a look at, but
it's certainly less sophisticated than the best Quake-C bots.
I hope you'll enjoy this,
Olivier Montanuy