Well I posted the original thread in ZDoom forums, but I as ususal the site has gone :( and I find this Error: (113) No route to host
So I post the thread here:
Well, another idea here, this time I think actually a brilliant one ;)
How about combining the Bot code and actor helpers, and make a new type of intelligent actors that could attack the players or help them.
The designers place some spawn spots for this new type of actor-bots (co-op or deathmatch style) and give them an optional tid to manipulate them later if required. and they would use the bots ai to do their works, but the level designers could use the actor mover script functions to manipulate them later, or place some new special patrol points to help them, (More on these helper objects later).
They would automatically spawn on these spawn spots at the begining of the level and optionally respawn there if they die in the level, and they would trigger the lines that are normally triggered by the players and not the monsters, and generally use bot ai unless especially manipulated by level designers, and there would be an option to tell them to move at the speed of the bots or at a specified speed.
If they are told to folow a path or do something else it would override the previous hate targets, and optionally they are forced to complete the job and ignore new hate targets.
Some new patrol points are for special uses, i.e. Health Spots, Weapon Spots, Mission Spots, Watch Spots, Target Spots, and maybe some new special points for CTF levels. Later I will describe them in detail.
If the actor-bot needs health either it uses a nearby health item, or it looks for the nearest Helth Spot in the level and starts its patrol from that point, and the points guides it to more health and optionally triggers a special to open doors or use lifts and so on.
If it needs more ammo or weapon then it looks for them or for a Weapon Spot.
And depending on their charactristics defined in a BOTS lump they can have different skins and sounds and speeds and good or bad aims and weapon preferences, or they would prefer to stand by Watch Spots and guard areas or go for Mission Spots and jump into action, They would hate some ActorTypes more than others, and would change target on sight, Some of them are braver and stay longer, and some would depart if they loose just a tiny part of their health; some of them are greedy for ammo, and some of them for armour; some of them would have more initial armour and health (combined woth different skins sounds reasonable) and they would have different initial weapons and ammo.
Some of them would be organic and would bleed on being shot and some would cause a bullet puff, and even some of them would fly.All of them have their individual names and also all of them would have different Intelligence Factors that is available to scripts for taking differnt decisions depending on their intelligences.
I.E. More intelligent bots would use an elevator while the dumber ones would have to use a longer rout to the roof or they would not be able to reach it at all.
We can have a network of special Target Spots that would help the bots to reach different areas of the level, each Target Spot would have a tag that is related to the sectors with the same tag, and each Target Spot knows about a few adjacent Target Spots and the way to reach them.
Each Target Spot has one or more Rout Objects linked to it, (by tag), and each Rout Object has a new Target spot in destination and an Intelligence Factor to check the with bots ai to see if it can use the rout, and optionally a Special to run, with the bot as the activator.
When a bot wants to reach a target on a balcony for instance, it goes to the Target Spot of the sector that it is standing in. and asks for the rout to the Target Spot of the balcony, the Target Spot Network (TSN for short) checks the routs with the bot`s inteligence and other charactristics (like ability to fly) to find a rout for it.
If no rout is found then the bot can act like current normal bots or it can go to a Watch Spot or Mission Spot, depending on it`s preferences level factors.
If it finds a rout the bot is given to the First Rout Object, and it either runs it`s special with the bot as activator or if it does not have a special it just tells the bot to go toward the next Target Spot. and that Target Spot sends it toward the next and so on...
Whenever a special is called, the next Target Spot and the Intelligence of the bot are two of its parameters and maybe the bits that tell the Script about the bot, like if it flies or can enter or leave water areas , can jump, is player friendly or not... Or maybe these characteristics of the activator can be accessed by normal ACS functions like "int ActorIntelligence()".
The level designers can check these parameters to react differently to the bot actions and make them look more real, for instance an inteligent bot can be sent to a rout that forces it stand before an elevator`s control panel and then lowers it and then tells the bot to enter it, then lifts the elevator to the roof, and then tells the bot to go to te next Target Spot.
Another example is for instance a bot may jump off a ledge wile another may search for a staircase.
In the end, if this ai can be applied to all the normal doom monsters then we can have a totally new game out of the current one, with as much intelligent monsters as the level designers can use these Special Spots in different areas of the levels, and we can have intelligent Bots in CTF levels, or normal co-op or deathmatch levels, with equally real monsters with different levels of intelligence, not like current monsters that any of them react exactly like the others.
P.S. Randy, will you give the current available monsters diffenent intelligence factors accessable by a new Actor-property argument? It will not affect the previous designed levels at all but would give us a new option to manipulate the monsters. (How about Dehacked?:)
P.S.2. How about an Actor-can-fly or Actor-can-swim check? and give all the current flying default monsters a swimming bit as well, and maybe we can change it to force a cacodemon to stay over the waterline or under an invisible deep-water sector.