UPDATE START 1998.02.04 15.50 Brazil.Rio
tHa hECk 1998
zED * BrainMaN
Intro
I realy need to read much more timez that specs.. my mind is spinning.... ...that .DEM spec is #$%@! toooo complex
Bot Nav considerations
there would have a map like this:
struct {
//bad things
int imm_danger;
int env_hazard;
int good2die;
//good things
int good2kill;
int weapon_av;
int precision;
int goodpath//??;
//...
} nav_map[XSIZE][YSIZE][ZSIZE];
Like this

The points represent good and bad situations to be explores by a Heuristic tree... AI U know..

BaaD Things
Immediate Danger
This kind of danger don't least.. is exists while the source exist
- if a rocker is going there
- if damage is been inflicted @ the area
- if a rocker IS there
- if a grenade is there
the closer the time to blow, the dangerous the area(in square proportions) |
the dnger in this cqase disapears nearly instantly(or even instantly ...(??)
Environmental Hazzard
- if the bot died there but no enemy causes that
- if he takes damage NOT from enemies
the much, the dangerous!! |
Good Area to Die(or Be Shoot)
- if the bot was killed there
- if he takes damage from enemies
the much, the dangerous!! |
If there is no enemy around, that area is not dangerous!
GooD Things
Good Area to KiLL
- if the bot kill there
- if he inflicts(or thinks that incflicts) damage in enemies
Weapon Avaliability
- when the bot gets a weapon, he goes out counting down and setting the points with the smaller value that he found 4 that point
- keep this trach 4 eack weapon, or 4 each weapon type: traceline/projectile; puncture/blast (??)
Places that Help on Fire Precision
- this value raises when the bot kill the enemy with little ammo, from less precious weapons(ex. o' great weap. ligthining gun)
- if the bot wast ammo and dont kill anybody the area reduces the value
Good Pathways
- if the bot get on it's goal [safe and(??)]fast[w/o been blocked(by the server)], the area of the path he does is marked as a good pathway
- this the the reverse prove that the other values grant a good path, this value is the last to be well defined and one of the most important in the path choosing
Some of these values(i.e.danger) automatically decrement itself when the bot passes throght it (plus the other calculations based on what the bot see and fell) |
The bot shall see a sea os points that represent it's memory of that places. And he should be atracted by the unexplored point, in a kind of curiosity(marking that outside the BSP)

In this map may asure a secure path to the bot exit the rooms in a cleaner way than the full blind BOTs.

the bot must have alt paths to get close things and hold this paths(longs and shorts) is it's WILL list.
The paths will be made of vectors to visible points jumping in this sea of knowledge until reach the objective.
The data aquired in a game will be hold to other plays in compressed(??) files.

The WILL List
The bot wills will be listed and sorted by it's immediate need and distance and danger to execute(time is short the best situation must be choose)
Each will may have a Path linked to it, and the path shoulden't be recalc each momente. Once a path is defined it try to follow making some alt paths and seeking again it's main path.
struct {
int priority;
float distance;
vertex_list_t path;
//...
} will;
will will_list[20];
The path goes for the safier area, based on the memory map.
The bot must get out of the path:
- if there is some immediate danger
- if there is a other will with closer priority and very shorter distance
- if that will loss it's value
the path calculations may be keept but if there is most important things |
To get back to the path:
- the bot may return for the closer visible point of the path, but this seems bad, cos the bot may be closer to his objective, and this may means BACK!
- he may recalc the path each time, but this may represent infinith calculations!!!
- he may...go to the path vertex closer from the final goal.. nahhh!
- ???? :-(((
- ..maybe... if the actual distance(based on the map of knowledge) is much shorter than the dist. from the closer path vertex, he should rebuid the tree..(seems good, I will think about)
The Player Statistics
typedef struct {
float min,med,max;
} stat_t;
struct {
stat_t answertime;
stat_t precision;
stat_t duckness;
//about the bot fellings
stat_t hate_stat;
int hate;
//about scores
int frags;
int damagetoBOT;
int damagefromBOT;
//...
} player_stats;
Time to Answer
The ping would enter in this calc, but thats not really important. This value represents the time between the first shoot of the bot and the fist shot in answer[from the enemy].
Precision
Another stat 4 help in the target choose, and attack form(charge, camper, strafed,...). This describes the constance of the attacks of the enemi that hits the BOT. This maybe harsd to determine preciselly, cos is hard to tell when the enemy is pointing at the BOT, not other ones. But using some [obvious]logic this may not be a problem.
Duckness[or "The Capacity to Be Shoot"]
That's a art 4 some people, treated with much training and dedication. And the BOT know how to apreciate that skill. ;-)
Hate Statistics and Actual Hate level
How frequently a enemy is hate by the bot and how good was they relation since the first meet. And of course the actual state of HATE.!
The BOT State
struct {
int the_value_of_the_life;
int agressivity;
int curiosity;
//normal data
int armor;
int energy;
//...
} BOT_stats;
"The Value of the Life"
If the bot have much ammo and weapons it life worth much, and must be defended with much armor and health, and not jumping into fireflights!
Things that raise the Value of the Life:
- Weapons, good weapons.
- Much much ammo.
- Armors don't raise.. at least not much, they are to defend not to keep
- Energy don't give value too, low energy may give value to the life!!
- 666, the pentagram of prot. takes out all the value of the live, turning the BOT into a psychopath..MUAhHaHaHa//
- ... *??)Quad damage reduces the value of the life and/or raise the agressivity..(??)
Agressivity
The need to kill violently all the enemies from the surface of the Earth.
Curiosity
The need to know all the things that he don't actually know, or have no chance of ever know...pessimist?...hun..
The Planning
To pake plans the BOT uses a Heuristic Tree.. And expands the tree predicting the enemies movmentes and itself moves. To help on the enemy move prediction he uses a genetic algorithim, making random moves at the start, then based on the frags win with this oponents he chooses the "DNA" string thet may "survive".
The thing goes like this:
- every enemy have a string to his predicted moves
- the BOT have a string, for every enemy, to avoid thei shots
- string for unprevisible things that must be guessed or tried
like this:

UPDATE DONE 1998.02.04 15.51 Brazil.Rio
counter
script
inspect