Back to the Korax Forum Archives


Forum

Bots

Mon, 05 Mar 2007 00:54:18

Firebrand

I'm done fixing the code to what I said in another thread, there's one thing I'm tired seeing in the game, bots with names like "botf11", it's just stupid enough, I would like to know what kind of names you guys think we could use for them, when I was thinking about this, I remembered Ramborc said some time ago, he wanted some bots to represent certain characters from the original games, so that made me think what other kind of names everyone has thought for the bots <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, I myself have thought that we could use some medieval names, so I googled around and found several name lists with from different locations, most of the names are strange and... err... medieval? <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> so I was thinking those could be used for the bots. That's one thing I don't like of bots, the second one is that I think we should radically reduce the amount of bots used on the game, right now we have 336 bots listed in-game to be selected to spawn, it's a ridiculous amount of bots, and the game almost always spawns the same bots one time and another (even when I reworked the way they are selected <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->). I think that having 100 bots or less would be better, maybe we could somehow left some slots opened for "custom" (fan-made bots?), but that's just an idea. I want to hear some opinions on this ppl, so start posting <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Mon, 05 Mar 2007 05:41:41

doomjedi

Well, in games I play I usually use general names like Terminator, Destructor, Doomer, Blaster, Destroyer, Hunter, Sniper, Killer, Devastator, Madman, Shooter, Fragman, Hitman, Gibman, Scavenger, FleshEater......(can list much more)......or names of other games characters (Duke Nukem etc...)...or superhero names (Robocop etc...)..or movie characters (Luke Skywalker etc......)... or funny names that fit DM modes (KillMe, ShootMe, BlastMe, PunchMe, BlowmeUp, HangMe, BurnMe, PoisonMe, PushMe....(it worked well in Worms, where you really could kill him in his name style). o ther funny thing to select sad-destiny names like Romeo, Hamlet, Spartakus..... Greek gods go well, it's always fun to kill a God (Neptune, Ares, Hades.....). Also some etnic names go well, like russian names......... ...for this mod, I guess Hexen-themed names will fit, from general (DarkMage, Merlin....etc) to personal names that fit the theme. Basically give me name 100 spots, I'll easily fill those <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Mon, 05 Mar 2007 13:31:24

RambOrc

For starters, there are 8 bots that have a fixed appearance and name from Heretic/Hexen/DOOM: the original marine, the original heretic, the 3 playable characters and the 3 player bosses in Hexen. They could wear their original colors and names. Then you could add some more doom and heretic bot names from Heretic II and DOOM 3. With Witchaven, there might be a name or two mentioned in the manual (Mago has one). I think more than 2 or 3 bots per class are enough, an easy and a hard one (and maybe one in the middle).
Mon, 05 Mar 2007 17:35:38

Firebrand

Yep, there are 6 classes and 8 colors per class, so we can have just 8 bots per class (so that all colors are used) and name the bots with what you mention, it will be the easiest thing to do, we can always add more bots if needed <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->.
Mon, 05 Mar 2007 22:35:05

Ichor

Here's a few more names: Meros Eppelio Dreyn Metuon Baroth Ekion Urania Zelig Sorveth Blacke Victor Misel Deadia Hahn Heimer Vorkul Gylend Yohan Midahs Alcas
Tue, 06 Mar 2007 00:02:46

RambOrc

While there could be 48 bots, I find it rather pointless, given that 8 of them look alike and I don't think there'll be 8 really different AI/skill types. I'd rather go for 20 bots that are memorable than 40 you can't keep apart. For example, the bots in Quake 3 were memorable enough to keep them apart (most of them at least), whereas in UT I couldn't tell the standard bots apart, only the skaarj hybrid, naali cow etc in the bonus packs.
Tue, 06 Mar 2007 08:18:16

Crimson Wizard

Are skins currently supported in Vavoom? Well, since we use sprites instead of models, there definitely is a way to use different sprites for same creatures (and bots) depending on a subtype.
Tue, 06 Mar 2007 11:09:24

RambOrc

If someone has the time, of course there could be variations on different classes, Mago did a cleric without helmet for SE, not sure whether it has all animations though (it appears in the KMOD3 shop). I think he also did (or at least started) another class as well, not sure though.
Tue, 06 Mar 2007 17:42:35

doomjedi

Well, it's not hard to do cleric without a helmet <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> I did skins for Skulltag, I can do skins for us too
Tue, 06 Mar 2007 18:24:25

Firebrand

AFAIK, Vavoom doesn't supports skins in the same format as those of Legacy or ZDoom, but I don't think adding support for this would be really difficult, we just need a SKINS script parser for the engine, I'll ask Janis what might be needed for this and code it myself if possible <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Wed, 07 Mar 2007 06:13:50

doomjedi

What is the difference in format?
Wed, 07 Mar 2007 14:54:23

Firebrand

The difference in format? I think you mean between model skins and sprite skins? Well, model skins can be assigned to any frame displayed by a model, and sprite skins need to be accompanied by a S_SKIN (or something like that) lump, which just tells the engine to remap the original player sprites to another (which need to have the very same frames, i.e. if the player dies in 10 frames, the skin NEEDS to substitute those 10 frames too).
Wed, 07 Mar 2007 16:41:28

Crimson Wizard

I wish to remind that we do not use models in KA, only sprites, thus we need sprites modifications not skins. By the way, I fear this will increase graphics data size significantly.
Wed, 07 Mar 2007 17:03:45

Firebrand

If it makes you happy, we can create a new PK3 file with only the skins <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, it's not really much of a problem (or a 2nd sprites PK3). If the concern is the download size, it's not very difficult to download a 20 MB file anymore with broadband being the most used technology now IMO <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->.
Wed, 07 Mar 2007 18:12:03

RambOrc

I think Crimson meant memory size, not to mention even longer load times for every map.
Thu, 08 Mar 2007 18:30:11

Crimson Wizard

Well, I meant all sorts of sizes <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> What I want to say - I would like to see various player images in game, but we should be careful not to exceed reasonable resources size / memory requirements.
Thu, 08 Mar 2007 19:46:28

Firebrand

Memory wise it could be a problem, sure, we are already using a lot of memory in the current state of the game, even when Janis has made lots of fixes on this side, KA still charges the CPU a lot, I don't know if we need to use the network buffer so much or we could change something to be using it less, I'm not saying it wouldn't work well like it is implemented, but there's a lot of things that actually use the buffer, what do you think Crimson Wizard?
Fri, 09 Mar 2007 07:54:23

Crimson Wizard

I am not sure if additional sprite graphics will add to network transitions since they are stored in every computer's memory and are not transfered through network connection. But ofcourse, we may look if we can reduce that buffer. Code always need optimisation <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->
Thu, 15 Mar 2007 14:37:54

Firebrand

I've got the latest internal build, it has 24 bots total, if you want to add some other bots with different names just post them here and I'll add them easily enough <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->.
Sat, 16 Jun 2007 13:26:43

Crimson Wizard

FB, I was testing KA and found out that allied bot can be a bit troublesome, when there are no enemies around, he sticks very close to player, which looks like sexual harassment <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> , besides he may block your way. Can you increase a distance at which bots follow player, please? <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Sat, 16 Jun 2007 20:02:49

Firebrand

Sure, I'll also tweak a bit some other things to avoid it being the only thing they do <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Sat, 30 Jun 2007 07:12:00

Crimson Wizard

There's a bug in bots AI for a very long time and still not fixed. Rather often, when bot is armed with a melee weapon he still keeps attacking from a distance; This looks especially terrible when you fire at him with a ranged one, and he stays on one place, hacking the air in you direction.
Sat, 30 Jun 2007 16:01:07

Firebrand

Hmm, I'll have to find where the problem might be for this one, I'm finally done with my exams week <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->, so I'll have some time this weekend <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Sat, 30 Jun 2007 17:32:55

Ichor

It could have something to do with the bot running out of ammo and the melee weapon is the only one left.
Sat, 30 Jun 2007 23:51:08

Firebrand

Yes, looking at the code carefully shows that the logic behind aiming and weapon's distance for shooting is messed up, there's a table for combat distance for every weapon depending the class, I'll make the bots use it to determine what distance it's better depending their current weapon, it shouldn't be too complicated to make them take decisions based on it <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Thu, 05 Jul 2007 09:06:59

Crimson Wizard

There is also one extremely disturbing thing in Bots behavior, I do not know if you fixed that or not, - sometimes they got stuck facing the wall and trying to go forward endlessly. They do not try to change their movement direction even if you come close behind them and shoot at their back. Also I noticed that bot may "lock" at some item and will try to pick it even if he cannot reach it physically (e.g. item is behind a window or player is Heresiarch and is too high to walk in some place with low ceiling).
Thu, 05 Jul 2007 14:56:55

Firebrand

Right now, the bot's logic doesn't checks to see if their actual radius fits through certain architecture in the map, it only checks if their height fits, that's what causes this behavior when tracking for enemies. As for getting stuck in walls, it's a very obscure problem in their logic, I don't know where to look for this problem, but I've done all sort of things to try to solve it, sometimes they get stuck in corners and not in large lines, but then, sometimes they don't get stuck in corners but in large two sided lines, it's a little strange for me too <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? --> .
Thu, 20 Sep 2007 08:58:45

Crimson Wizard

Firebrand, I am sorry to say that, but Bots AI currently feel rather weird. In some ways it even weaker than original. <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( --> For example, bots do not react on enemy attacking them, if they got stuck in the wall. I scanned code a bit and found some algorythms there a bit... strange from my point of view. Fore example, why bot have to SEE a path node to choose it as target? What if he does not face it at all? Then, why is the distance of node selection only 32.0 ? I could never guess it is so small, this would require a huge amount of them. Would you mind if I make some improvements there? I think I know what should be changed.
Thu, 20 Sep 2007 15:13:36

Firebrand

The bot's AI code isn't entirely mine, it comes from an older version of SkullTag (it's the original bot's code Janis made), I just added a couple of missing things here and there, improved some things, messed some others, etc. heh! <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) --> You made me feel like I would get mad with you for changing the code <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, but I won't it's not like it's MY OWN code, go ahead! Try whatever comes to your mind and whatever ideas you want <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->. That's how the bot's have become "smarter" <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->. I was thinking on implementing some of your path noding system to the bots, I think that should improve their searching abilities a lot. I was reading how UT tournament bots work, we aren't very far from it IMO, here's what I found <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->. Bots know where every object in the map is (this already happens in KA), they select a type of target (enemy, item, health, weapon, ammo), and they look for the ones nearer to them, then they calculate distance to each of the targets nearer to them using path nodes, when they find the shortest distance they'll get to the target. As I said, it's not far from what KA already does, when a bot is looking for health, it'll scan all items of the "health" type and get to the nearest one, but not calculating any distances at all, just avoiding obstacles and looking if the path is free.
Thu, 20 Sep 2007 15:23:52

Crimson Wizard

[quote="Firebrand":1turbvqi]Bots know where every object in the map is (this already happens in KA), they select a type of target (enemy, item, health, weapon, ammo), and they look for the ones nearer to them, then they calculate distance to each of the targets nearer to them using path nodes, when they find the shortest distance they'll get to the target. As I said, it's not far from what KA already does, when a bot is looking for health, it'll scan all items of the "health" type and get to the nearest one, but not calculating any distances at all, just avoiding obstacles and looking if the path is free. Well, it seems this lacks only proper node graph. I only fear this will work a bit slow in netgame, since bots have to change their target and rebuild route all the time, while monsters do this periodically. I think we may leave it without node graph for a while, those path nodes implemented there are enouph I suppose, but they should be used a bit differently. I'll check what may be changed there in sake of perfomance.
Thu, 20 Sep 2007 15:26:25

Firebrand

Or maybe make bots don't change target as fast as they do now, I know it'll kill performance if we try it, but we could improve the system after a short test, I'm sure <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Thu, 20 Sep 2007 15:45:55

RambOrc

If it's not a huge work, maybe you could make a double code for this that can be chosen for the game, i.e. ppl with slower machines can opt for the worse pathfinding code (still better than playing at 2 fps).
Thu, 20 Sep 2007 15:54:31

Crimson Wizard

Well, since my own code for pathfinding has an obligatory check for the graph status (was build/was not build), it can be used solely, while the option will tell whether game should build node graph or not.
Sun, 23 Sep 2007 18:15:09

Firebrand

I've been debugging the bots for a while now, I've added something else missing for them, swimming ability, which wasn't very difficult, we just set their pitch angle depending what's their goal (item, enemy, path node, ball, whatever.... <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->), I must say it works better than I expected <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->. As for bots getting stuck in walls (which is the remaining major problem with bots AI IMO), I think I know where the problem can be, in their Roam method, they won't always get a destination spot and they'll just run in circles until they find something, the player movement when he walks on angled walls (45 degrees or more) is a bit strange in Doom engine, and tends to make him get stuck, bots find a clear route, but the wall is still blocking them, also, sometimes they'll just RUN with their current angle, I don't have an easy solution for this, but I'll think on something for it, but I know have a clue of where this behavior comes from <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Fri, 28 Sep 2007 15:05:17

Firebrand

Quick status update, I'm in the process of adding path nodes building to KA, first I want to get the hang of how it works, so I can adapt it to the current AI, without having to rewrite all the bots stuff, which would take a good amount of time, when I get the hang of it, I'll start porting the code to the bots, adapting anything as needed and making a quick run, if everything works as expected, we should have a new internal build, I think it'll take 3 to 4 weeks to make this <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Fri, 28 Sep 2007 15:23:27

Crimson Wizard

Uh-oh. <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) --> Well, node graph building routine does not need any adaptation since it has nothing to do with creature AI on its own. Process is started in HexenLevelInfo::SpawnSpecials after every other objects are spawned. As for integrating it in AI... it's much more complicated <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? --> For RPG I changed a lot there, can't say how much is necessary to copy however. Globally, an entity should check whether it can reach target (Actor::CanReach method used), then, if not, it tries to build a path route by calling BuildRoute()... however, it is called from more generic route handler DoRoute() function... Err, Firebrand, do you really think it is THAT necessary? It may take a while to put it all in KA. Maybe leave it until some future version? The real problem with bots lies in different area IMO.
Sat, 29 Sep 2007 11:07:59

Firebrand

Thanks for the description of the process, It did make my task of checking how things work much more simple <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->. [quote="Crimson Wizard":2l1c7tor]Err, Firebrand, do you really think it is THAT necessary? It may take a while to put it all in KA. Maybe leave it until some future version? I think it's necessary to implement this for bots in KA, but I agree with you that it could be done in a future version of KA. [quote="Crimson Wizard":2l1c7tor]The real problem with bots lies in different area IMO. A different area, huh? <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> I would like to know what do you have in mind? <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Sat, 29 Sep 2007 13:09:14

Crimson Wizard

I really believe there's a problem in how bots seek for path nodes. If they did this right, they would never behave like they do now, would not stuck in walls etc.
Sat, 29 Sep 2007 20:20:06

Firebrand

Hmm, I think you are right on this <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, the code has some things that aren't needed and that could be improved, I've changed some of the things you mentioned earlier and they work better now, but they still get stuck in walls sometimes, it reduces a lot but still happens, so I'll scan the code for any remaining things and see what happens <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Mon, 01 Oct 2007 10:56:22

Crimson Wizard

Nice to hear that, maybe I'll check this too once more.
Mon, 08 Oct 2007 22:25:45

Firebrand

Yep, just as you thought, this was the cause of some of the problems <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, it's working MUCH better now. As for maps, I'm in the process of making new posters for the maps to scatter the textures here and there, like it was planned in the beginning, it'll take a bit of time to make this, but it's worth for having a final version with finished textures and theme IMO.
Mon, 08 Oct 2007 23:31:15

RambOrc

Definitely, the few posters in maps like The Citadel really add to the KA feeling.
Tue, 09 Oct 2007 08:33:33

Crimson Wizard

Will there be NEW posters, like Mago has drawn some time ago? I think it's rather boring to see that "Korax Kola" everywhere.
Tue, 09 Oct 2007 09:54:15

RambOrc

LOL still better than barren walls.
Tue, 09 Oct 2007 11:36:17

Crimson Wizard

Is that so?
Tue, 09 Oct 2007 12:09:32

RambOrc

Why wouldn't it be so?
Tue, 09 Oct 2007 12:45:55

Crimson Wizard

Well, sometimes that looks a bit excessive.
Tue, 09 Oct 2007 15:24:21

Firebrand

It mainly depends on where you place the posters, also, let's remember that this is the first version, there are too few posters for now, but for the next versions we'll be still producing new ones, so the most repetitive ones will be replaced with newer ones as they are made, it's not too complicated to make this, once you create the textures, you only need to change which patches it uses <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> .
Thu, 11 Oct 2007 15:45:00

Firebrand

OK, for those using the KA's SVN repository, I've updated the bots code to the last version I've made, bots are now able to swim in underwater areas (or at least make things better underwater), and they should also reduce their tendency to get stuck in walls FOR GOOD, heh! Please give it a check and tell me if there are anymore problems, next things for bot's AI, make bots use flechettes and discs of repulsion to their advantage, because they don't use them as of now and that's dull IMO <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->. I'm satisfied with bot's AI now for the first KA version.
Thu, 11 Oct 2007 17:05:15

Col.J.P.

Where is Mago????? RambOrc what have you done with the poor fella????
Thu, 11 Oct 2007 17:10:45

Crimson Wizard

[quote="Firebrand":hna9jht2]I'm satisfied with bot's AI now for the first KA version. Hooooooray!!! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> [quote="Col.J.P.":hna9jht2] Where is Mago????? RambOrc what have you done with the poor fella???? Uh-oh. RambOrc, so it was you who did it?
Thu, 11 Oct 2007 17:21:26

Col.J.P.

Who else? <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) --> Guys, where is the last KA? Someone please drop me a link so I can test it. Danke <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
Thu, 11 Oct 2007 17:49:31

Crimson Wizard

I hope Firebrand will make new last KA soon <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) --> BTW, Firebrand, will you add my "Hous of Asp" there? I will upload new version with path nodes to koraxdev tomorrow I think.
Thu, 11 Oct 2007 18:56:10

Firebrand

yes, i'll do it someday <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->, heh! I want to finish the maps first, which is the next thing to do in my list. EDIT: I've updated the SVN repository again, now the bots are able to use alternate weapons in a simple way, they choose them depending of the conditions of battle and they use them in most cases accurately, there are some details left to fiddle with, but mostly it's done <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->.
Thu, 11 Oct 2007 22:12:23

RambOrc

I want bots that can jerk off in front of you. <!-- s:oops: --><img src="{SMILIES_PATH}/icon_redface.gif" alt=":oops:" title="Embarassed" /><!-- s:oops: -->
Thu, 11 Oct 2007 22:32:21

Firebrand

[quote="RambOrc":74cqn4rx]I want bots that can jerk off in front of you. <!-- s:oops: --><img src="{SMILIES_PATH}/icon_redface.gif" alt=":oops:" title="Embarassed" /><!-- s:oops: --> What!? <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
Thu, 11 Oct 2007 23:28:39

RambOrc

LOL there was this article in the newspaper today about a local guy who jerks off in public transportation, records this and posts the videos on youtube.
Fri, 12 Oct 2007 08:57:29

Crimson Wizard

"Ka-pi-ta-lism..." (c) A. Schwarzenegger, "Read Heat"
Fri, 12 Oct 2007 15:41:56

Firebrand

There's all kind of freaks out there, but that's ONE real freak, heh! <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> Getting on topic again, has anyone tested the latest SVN code or should I place an incomplete internal test just for that? I would really like to get comments on this before considering it the "final version" of bots AI.
Fri, 12 Oct 2007 16:04:37

RambOrc

Since several people (including me) who could test this can't compile stuff and can test only full binaries, the answer is yes.
Fri, 12 Oct 2007 16:17:26

Col.J.P.

[quote="Firebrand":4spcxa18]There's all kind of freaks out there, but that's ONE real freak, heh! <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> Getting on topic again, has anyone tested the latest SVN code or should I place an incomplete internal test just for that? I would really like to get comments on this before considering it the "final version" of bots AI. That's what I was asking before, bring it on and I can test it over the weekend. [quote="Crimson Wizard":4spcxa18]"Ka-pi-ta-lism..." (c) A. Schwarzenegger, "Read Heat" <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: --> huh? Rambo, Schwarzenegger, Kapitalism...we got the whole gang here...
Fri, 12 Oct 2007 17:10:26

Firebrand

[quote="Col.J.P.":3li8nf20]That's what I was asking before, bring it on and I can test it over the weekend. Ok, I'll package it up <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> [quote="Col.J.P.":3li8nf20][quote="Crimson Wizard":3li8nf20]"Ka-pi-ta-lism..." (c) A. Schwarzenegger, "Read Heat" Rambo, Schwarzenegger, Kapitalism...we got the whole gang here... Hell yeah! the whole gang is here!! <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
Sat, 13 Oct 2007 16:49:00

Moose

Even I'm here, now thats something special. Did I miss much?
Sat, 13 Oct 2007 17:34:14

Firebrand

Not really, KA isn't released yet, we've started working on KRPG, but only a few features are done, so there's still a lot of work left <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) --> (but I know that's good).
Sat, 13 Oct 2007 21:41:16

Col.J.P.

[quote="Moose":3n3f3dfu]Even I'm here, now thats something special. Did I miss much? Moose! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> Can't be, I'm dead and went to hell! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Sat, 13 Oct 2007 23:54:37

Moose

But hell is one hell of a great place, you'll love it here.
Thu, 13 Dec 2007 11:54:59

Crimson Wizard

I started to work on bots. That's it <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> Ok, first I wanted to rewrite almost everything from scratch, but then I learned there's many things that are useful and can work right. I think there were 2 general mistakes: how priorities are implemented and how bots check their paths (last one was a surprise). Also functions algorythms are not very well written, some pieces are repated for 2-3 times, I think they can be done elsewise better. I disabled most bots features and wrote simple algorythm for their target movement and they started to act much differently, attacking every enemy in their sight with great fierce. I'll continue experimenting.
Thu, 13 Dec 2007 13:19:45

Firebrand

Go ahead, this area needs a good rewrite of several things, I've got some ideas myself, but right now there's a map to finish, several bugs to squish out and other things I want to implement for KA, it's not in my plans to make a rewrite of anything bot related until KA 1.1, only optimize actual written code <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Thu, 13 Dec 2007 13:36:20

Crimson Wizard

I also think they could use path building, but only for long distances like going for enemy flag or some high-level item. Maybe it will not be so difficult to implement later.
Thu, 13 Dec 2007 13:41:10

Firebrand

I think the same, we can just define a global "goal" that they'll track down if it's too far <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Sun, 16 Dec 2007 18:29:55

Crimson Wizard

Have a progress here. Rewrote main function, used some of the old stuff in different way it was intended earlier. Currently bots AI works... well, reasonably. As I mentioned earlier, I disabled most of their "advanced" functionality, but still they can go around the map randomly even on long distances (not that effective as I would like though), and attack enemy. At current point it seems they attack everyone as soon as they come in their sight and have ranged weapon; they attack using melee weapon only when they bump into enemy on occasion, or selected him as a Main Target explicitly. They wander around map using Path Nodes; I made them remember nodes history so that they won't stuck running between 3-4 nodes in one room. They have a potential of getting to game goals; currently this works only in Domination mode (I used to test bots there since it was small and simple map). And from what I saw this works good; they usually can travel about at least 1/2 of map and get from one base to another to capture them both. Currently they pay no attention to items, but that's what I'll fix next. And yes, once again, their combat ability is raised significantly (it's my own feeling), mostly because they determine a need to attack more correctly. They DO stuck sometimes, but that's not that sort of "stuck" as was earlier, they just stand on one place waiting for some target appear in their sight. Well, to say it simple - I really can play Domination with bots now <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> it works.
Sun, 16 Dec 2007 22:08:59

RambOrc

Heh cool, domination is one of the best things.
Mon, 17 Dec 2007 01:03:31

Firebrand

Sounds cool! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Mon, 17 Dec 2007 11:08:00

Col.J.P.

they just stand on one place waiting for some target appear in their sight LOL camping already? great! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Mon, 17 Dec 2007 15:03:54

Crimson Wizard

[quote="Col.J.P.":kdrqa0kz]they just stand on one place waiting for some target appear in their sight LOL camping already? great! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> Yeah, unless they stand so their back is facing room entrance and first enemy coming shoot them in the back to death. <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( --> <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Wed, 19 Dec 2007 10:56:06

Crimson Wizard

Bots are going well. Now thay hunt for items normally (I think its the first time I saw a Marine bot shooting by rocket launcher <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: --> ). I am going to upload new code to SVN later today or tomorrow; I shall leave old BotPlayer class as well, renaming it, so that we could have a backup. Also, many extra features by Firebrand are not yet implemented in my ode, should do that later. There are still a lot of imperfection in bots behavior, but system is good in whole. I think it even can be used for beta at its current state.
Wed, 19 Dec 2007 12:22:56

Firebrand

Upload it and I'll give it a check, I would like to know how bots work now <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->. I'll upload an internal test with this new code and the domination maps, one of the CTF maps has items now and the remaining one will be completed for the next beta too <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, I'm working on that as now.
Thu, 20 Dec 2007 11:28:47

Crimson Wizard

Naaaha, bots rule <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P --> You know, now I understand why it was so easy to win botmatch earlier days. There were a lot of untouched weapons and ammo lying around. <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> Now there're not <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> Updated SVN.
Fri, 21 Dec 2007 13:54:25

Firebrand

I've looked at the code in the SVN repository, looks fine, it's exactly what I meant when I said "rewriting" the code <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, nice work! That's why it's better to have more hands in coding <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->. Now I can dedicate myself to just mapping and fixing bugs <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->.
Sun, 16 Mar 2008 12:36:19

Crimson Wizard

Bots have a weird behavior in the last KA release I never seen before. They often appear on top of their opponent (either jumped there, or fallen from above - funny I could not see the moment of this yet) and then two bots just stay - one on ground, another on top of 1st, mashing air in desperate atempt to hit each other <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Mon, 17 Mar 2008 14:46:37

Firebrand

We could make them unable to jump over their enemy head, I think I know where the problem could be, but I'm not sure if it will work or not, I guess we'll have to make the try, right? <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->
Sun, 21 Jun 2009 19:09:26

Crimson Wizard

Huh... bumping an over-year old thread... Some comments about new bot AI I was trying to write. First of all, Firebrand, I am using BOT_ADVANCED_AI precompiler definition (macro) to guard new code, so if I forgetfully upload a code that has meaning to new bot ai to SVN, it will be protected from compilation, unless you place "#define BOT_ADVANCED_AI" somewhere. Then. At the moment I decided to concentrate on overall bots movement around the map and reaching objectives. They cannot fight and react to danger yet - at all - this greatly simplifies testing their actions. I did what I wanted to do long time ago - added limited support for precalculated paths and route building. Bots will use 2 targets, a Final one - a place where they need to get, and Immediate one - the place where they are going right now. After all, I want following three types of bot movements to be implemented: 1. Running along precalculated route. This will be most useful to make them get from one objective to another. 2. Running aimlessly along path nodes. That's how they act in our current Bot AI we use. This is useful mainly for DM games and maybe for cases they do not want to do anything in particular for some time. 3. Walking randomly as original Doom bots do - this may come handy if they ever got into place without path nodes. I am changing the way Path Nodes work. Now, in my new bot ai, the common Path Node is the only type of node that should be placed everywhere. Priority Nodes shall serve as "checkpoints"; placed in certain important locations, they will be connected by routes (which will be built of common nodes); routes are going to be precalculated when level is loaded. Such things as Blue/Red Offense/Defense/whatever nodes should be a children (subclasses) of PriorityNode and serve same purpose. This should solve 2 problems at once: 1) It will be easier for a bot to quickly decide where to go in this or that situation 2) There will be no need anymore to place 2-3 or more parallel paths, one with Red nodes another with Blue nodes, etc - because these checkpoints may construct routes using same common nodes. = much easier map building. Nodes themselves will be now linked with each another, so that bot won't need to search all around for new node each time he passes old one: he may just check the links of the old node, which is hungred times faster. By the way, I believe that slowdowns we have on some maps are result of too many items that bots seek through in attempt to get ones that they really need. (I tested my "Cathedral of The Damned", I had about 50-70 fps without bots and about 15-20 fps with maximum bots) There's more practical way to do searches in near distance which can be implemented in our current Bot Ai. I found it recently, too bad I wasn't aware of it earlier (not sure how long it exists already though). Hmm... what else... When I was just planning new advanced Bot Ai, I was trying to figure out what properties should form Bot's character. Finally I wrote a list of them. I didn't implement any of these yet, so I wish to show it for others to discuss. Currently we have following stats that customize bot's skills and behavior: accuracy - Accuracy with "instant" weapons (this includes "leading") intelect - Accuracy with "missile" weapons (rocket launcher, etc.) evade - Ability to dodge incoming missiles anticip(ation) - Ability to anticipate "instant" shots reaction - Overall reaction time pisschance - Chance the bot will get pissed when his threshold is reached threshold - How much it takes to frustrate/piss off the bot dangerlevel - When health is below this, we need some health (in other words - risk level) I propose following: accuracy - Ability to aim precisely at given target aggression - The will to move and attack as much as possible anticipation - Ability to foresee events, such as enemy actions attention - Ability to notice things around composure - Ability to hold down one's emotions courage - The will to stay in combat regardless all risks smartness - Ability to make decisions fast tactics - Ability to plan combat behavior according to situation technique - Ability to perform various advanced moves I'll quote the commentary I made to the code when I wrote it some time ago: "Abilities are usually used to determine the chance to do (or not do) something. They either increase or decrease that chance. Each situation has abilities with positive and negative relation to its cause. bsk_medium level is usually a zero point, that does not change chance value. Those below decrease value, those above increase it. Thus most behavior depend on multiple abilities at once. For example, if a bot is participating in a fight and has an ammo shortage, he needs attention and tactics to get one; if he has low attention he will not notice his ammo state, and with low tactics he will not guess to take a run for nearby equipment while enemy is still present."
Sun, 21 Jun 2009 23:51:07

Firebrand

Sounds like the bot AI is going to a good change <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->, I must say that the most important thing IMO would be to make he bot AI less expensive when playing, since bots actually slowdown the game too much, if we can remain functionality like the one we actually have (or maybe even increase it a bit, heh! <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->), but on the same time keep performance on the game, it will be a good change <!-- s:D --><img src="{SMILIES_PATH}/orc6.gif" alt=":D" title="Very Happy" /><!-- s:D -->. As for bot's properties, I like the new ones as they are now <!-- s:) --><img src="{SMILIES_PATH}/orc2.gif" alt=":)" title="Smile" /><!-- s:) -->, seems to cover the most important stuff a bot might need <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->. I've been wanting to make bots more customizable (so that users might create their own bots easily), and I was thinking on adding some kind of lump to load bots from, instead of having them created deep on the code. I'm just commenting on this since I remember it now, not for beginning implementation on this <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->, this can definitely wait until bots are ready for being customized, no point in doing customizations if they don't work fine, hehehe! <!-- s;) --><img src="{SMILIES_PATH}/orc9.gif" alt=";)" title="Wink" /><!-- s;) -->
Mon, 22 Jun 2009 05:36:31

Crimson Wizard

[quote="Firebrand":fq10elru]I've been wanting to make bots more customizable (so that users might create their own bots easily), and I was thinking on adding some kind of lump to load bots from Yes, that is exactly I was thinking of, we can add BOTINFO lump and read properties like the team info is read now.

Back to the Korax Forum Archives