-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathroambot1.txt
132 lines (100 loc) · 3.94 KB
/
roambot1.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
Title : roamBot
Filename : roambot1.zip
Version : 0.9
Date : 96/9/3, 12:15am MDT.
Author : CARSON SUTTON ("Gwynn" on irc, "Crimson" to quake victims)
Email : [email protected] ** Comments please! **
Credits : Micheal Polucha (co-designer of Original TM bot)
Tim Polucha (co-designer of Original TM bot)
Nathaniel Gorham (Original DM bot)
Punisher (BG bot...starting point for this work)
Stan Smith (for IDGlobe bubble idea)
Type of Mod
-----------
Quake C : yes
Sound : no
MDL : no
Format of QuakeC
----------------
unified diff : no
context diff : no
.qc files : yes
progs.dat : yes
Description of the Modification
-------------------------------
Punisher asked for better roaming AI for the basic
bot design...I thought I'd take a crack at it with this
very blunt hack. Essentially BG Bot v1.2 with more
unpredicatable and intelligent roaming behaviour, and
a few minor additional touches:
- Bot follows its OWN target entity while roaming,
thus direction of roaming bot not tied to
creator or (last) target entity. "Leader" entity
assigned pseudo-random directional and "dead end"
detection routines. Standard turn left, turn right
AI too predictable, so bot pulls a u-turn or heads
off-center at obstacles.
- Bot RUNS instead of walks while roaming. Makes
them much more effective.
- Bot will turn around (180) at ledges/obstacles
after timeout.
- Bot will go through doors and teleporters.
- Bot only hunts detected items if visible.
- Bot gives up hunting target after 5 secs. if
no longer visible.
- Better heath, less idle noise, a little near-sighted
(for game speed with more bots), etc.
- Added shotgun shells ejecting just for fun.
- Anything else I missed...
Impulse 100 creates a bot. There is no way to
get rid of a bot until it is killed. They are
somewhat autonomous, and will try to make life
difficult for everyting around them.
How to Install the Modification
-------------------------------
Make a new dir in your quake directory (ie: c:\quake\roam).
Then extract the contents of this zip into that dir.
Move .mdl into new dir 'c:\quake\roam\progs\', and .wav's
into new dir 'c:\quake\roam\sound\weapons\'.
Run quake with the following command line parameter:
quake -game roam
Bind a key to impulse 100 to activate the bot.
Technical Details
-----------------
To get a play-by-play from each bot (careful, not uniquely
identified!) indicating direction changes and decisions
during roaming, change the following in bot.h:
from:
float ROAM_DEVEL = FALSE;
to:
float ROAM_DEVEL = TRUE;
As I looked through the basic bot design available today,
I noticed that it was essentially a souped-up monster.
The bot used monster AI "movetogoal(dist)"-type movement as
the basis for roaming, with "self.goalentity" initially assigned
to the bot's creator or attacker.
In this hack I simply added an independent goal entity for the
bot to follow around when it can't find any items or targets.
This "leader" simply moves around ahead of the bot, mapped onto
the nearest obstacle along its path (wall, player, etc.), and decides
on a new direction based on a not-quite-random heading change
or timeout when the bot is a certain distance away. Easy.
Not much of a start, but I know somebody out there will fine tune
it into something reasonably threatening. Now to work on
DEFENSIVE/EVASIVE behaviour!
Author Information
------------------
Quake-minded systems admin. whose fiancee is ready to trash the
marriage-killer device any second.
** Please forgive mediocre spelling or grammer...it's late. **
Copyright and Distribution Permissions
--------------------------------------
Copyright (c) 1996 Carson Sutton.
Authors MAY use these modifications as a basis for other
work providing they credit me if reusing or modifying any
original code.
Availability
------------
This modification will initially be available only from
the following:
FTP : ftp.cdrom.com