Prolog-Based Reasoning Layer for Counter-Strike Agents (2012) [pdf]
ceur-ws.org
ceur-ws.org
What is shown here is also available in the source code, of course.
I am still interested in pursuing this as I think it is one of the more under-explored areas in game development.
Answer: It killed counter-strike agents not based on Prolog.
A few quotes from the paper that I found especially interesting:
Prolog is a general-purpose declarative programming language, which bases strongly on a first order logic. Prolog uses notions of facts and rules, whereas execution of Prolog program is de facto a formal reasoning process. Therefore, it is very convenient to use in artificial intelligence programming.
1. C++ bot code can be rewritten to Prolog,
2. Prolog bots can be used efficiently.
And also, very importantly:
Unintended, but very positive outcome was ability to test reasoning layer independently of the game engine which was very complex system. During development of Prolog scripts standard Prolog test suites were created in order to carry out regression tests.
This can hardly be overemphasized: Prolog is extremely well-suited for generating and writing unit tests.
Thank you for sharing!
To get the reference, you have to follow some HN submissions on Prolog...
Then again, "Prolog killed who" is broadly considered acceptable, so whom am I to judge?
Of course, OP was extremely opaque and I didn't understand what they meant either. Is the point of language to be understood, or to adhere to invented rules?
This has been a fun diversion! Only on a Prolog thread...
"_Whom_ am I to judge", asking which people ought I be judgemental about, versus "_Who am I_ to judge", meaning I really ought not throw stones in glass houses.
What do you mean by this specifically? Also in what context? (5 bots vs. 5 humans, 1 bot in a MM server, bots in DM servers, etc.)
There is actually some interesting logic behind why some bots are intentionally "bad" or why sometimes bots ignore all commands.
As for DM bots, they're pretty realistic actually, they basically hold W (forward) and shoot at the first things they see, which is pretty much what humans do. Their skills are also random, but usually much worse than the average human so that they're basically just targets (DM is for practice after all).
As for a team of bots, I can't comment. I have never played against them since 1.6 and at that point I think all bots were made by 3rd party developers. Right now I think Valve just doesn't care enough to make "good" AI (good meaning human-like, not god like) since almost no one plays against only bots.
From what I can tell they're designed to be targets, not pass the CS:GO Turing test (which would be an interesting project actually).
Unless the player is toxic and/or purposefully throwing it is almost never better to get a bot.
Best game ever.