AnnouncementsFunnyVideosMusicAncapsTechnologyEconomicsPrivacyGIFSCringeAnarchyFilmPicsThemesIdeas4MatrixAskMatrixHelpTop Subs
3
Comment preview
[-]x0x7
0(+0|0)
That's a cool little fox tail the sword has.
I am asking for your opinion. There are 2 or 3 directions AI can go in in a game in terms of its qualities and I'm curious which do you think makes the most fun game. 1 direction is the AI is dumb and relatively predictable but possibly varied from one another and challenge comes from the sheer number of enemies. Think Doom or Gauntlet. The alternative is AI have very good reasoning and just play the game very well. Probably the best example is Chess against an AI. The third is where the AI has very good reaction time and accuracy. So Quake.
What route do you think makes games the most fun? IDK, maybe a fun style of game no one has ever made is where different enemies could be classified as different kinds.
Trails! wee! i like trails. So your last point, "is where different enemies could be classified as different kinds", that is what DOOM did. It has several different types of AI behaviors, hit scanner - melee charge - melee brute - resurrect & hit scan - explosive. The fun came when encountering scenarios where a variety of them dictated what kind approach you would take. Further, the simplicity made it easy for the designer to slowly get you accustomed to them. First you encounter the zombie marine (hit scan), then the imp (slow projectile/melee), then both at once... The level design in modern doom was crafted in such a way to break you of your sniper nest mentality and really get in there doing quick and fast combat, which is what the developer wanted, so that you could do your savage special kills and get the extra hp and experience. The reward was reinforced by the level design. but once again, those AI behaviors were simple and the complexity arose from having many simple types that when combined, because an interesting battle.
Now, to answer the question. There are a lot of routs an AI can take, GOAP in the terms of rim world/dwarf fortress, MCTS in the terms of chess, FSM's in the terms of Doom, and if you consider pathfinding to be a form of AI (and it is), then A, steering behaviors, flow fields and dijkstra's algorithm are all impactful on how the user interacts with the agents of your game. Unlike the one ring, there is not a One AI that binds them (well... KLEP), each one has a pitfall and each one shines depending where and how it is used. Its a question of development time vs results vs weak system (adaptable/dynamic - not weak as in bad).
The rout i have taken with my game is because i am using it as a practical example of what my KLEP system can do. It's driving camera interactions, map interactions, UI interactions, the player controller, enemy/agent AI. This highlights for me how it is of value to the right people while simultaneously allowing me to improve the system and showcase its real world applications. So in my case, development time of the AI is not a question and is largely done, now its a matter of results and managing the strength of the system. Weak systems are amazing for being a duct tape of an approach, but the issue that comes with that is you have to be very careful about its application because it is so verisitile. Like a GoTo statement in the old days of Basic where you had to number your lines and they cannot change once numbered. You can use it everywhere, but its quickly turns into spaghetti.
That is about as much insight as i can give without knowing more about your game, its mechanics, your projections and the intended interactions. I hope this helps!
[-]x0x7
0(+0|0)
I guess I wasn't really talking about mechanics as much as end result for the game, as it's holistic effect on the game. I think there are ways to map different techniques to different end result classifications.
So then those are predictable and exploitable, intelligent, truly a machine. All of doom's AI and Gauntlets map to the first one because they are all very easy to exploit. The fun is seeing how many of that kind of AI and what combos of AI you can still manage to exploit.
So what I meant by having more than one kind of AI in the room is things that could be classified differently in terms of holistic result. Enemies whose behavior is predictable but also an enemy which has a weak weapon but somehow if it is in the room life gets harder because it plays like a top player in terms of strategic outcomes and is despite being weaker than you can still manage to fuck you up.
For example in doom you are often weaker than your enemies. A cyberdemon has way more HP than you and the rockets are one of the highest damage. Yet you can still beat it because you have strategic reasoning skills. A class II AI could do the same to you from a weaker position, just like Stockfish can beat me several pieces down.
I don't know if any games have pitted people against both kinds of AI at the same time.
For example your AI character kept going toward the sword even though a class II AI could have observed that he was making no gains toward his goal by doing so. So it is definately a class I. I was just curious if you were hoping to make any class II.
https://www.youtube.com/@AIandGames
  • The above channel does a really good job of explaining many ai's and for some weird reason, those in games. There was a video somewhere where he talks about the MIT challenge competition of designing a quake AI that if played again, and without seeing the competitor, you could not tell if it was an AI or a player. That comes with a lot of issues, because you have to inject the human element of flaws into that system.

The rudimentary enemy AI that i implemented is as stated, rudimentary. I needed to have something there to see what it looks like when a KLEP agent picks up a weapon, and fires it. Same with melee (which i still have to do). The neat thing about weak systems is that it is very easy to come back and add things, patch things, so on. Unlike a strong system like a behavior tree, where if you want to inject a branch or additional node, you will often have a bunch of additional setup and modification to do. Think of a switch statement that has 3 states, and then you add in a 4th state, now you have to update most of the other states so that they are aware of this new state. The advantage of that system is its clarity. Its very easy to see how an entity is influenced into those states.
The term i am using is Puppets for my mobs, i dunno why, i just am and i dont want to change a bunch of shit to turn it into Mobile Object (MOB)
  • The current implementation of the test enemy AI is as follows:
Puppet: TestMob
|SSensors|
  • SPuppetSensor <- detects puppets -> {EnemyKEY, AllyKEY} (Both have List Transforms)
  • SCollectableSensor <- detects items -> {ItemKEY} (has List Transforms)
  • {EnemyKEY} -> SFlee <- Makes or modifies Steering Key -> {SteeringKEY} (has vect3)
  • {TargetKEY} -> SSeek <- Makes or Modifies Steering Key -> {SteeringKEY} (has vect3)
|A
Actions|
  • AApplySteering <- applies the vect 3 value in Steering Key to transform.position
  • APickUpItem <- Grabs an item if < distance threshold
  • AFaceDirection <- rotates Puppet to face travel direction
|RRouters|
  • RTacticus -> Generates a TargetKey based on EnemyKEY/AllyKEY/ItemKEY, Generates AttackKEY based on proximity

ITEM TestRifle
|A
Actions|
  • {AttackKEY} -> AShootRifle -> Fires the weapon when the AttackKEY is present
  • {AttackKEY} -> AAimRifle -> Aims rifle if AttackKEY has Transform Target

So when the agent picks up the rifle, those new knowledges get incorporated into the system and utilized next frame. Currently, no decisions are being made, its purely a reactive system, until i toggle a bool that marks an exe as a only 1 of these may fire a frame exe (BOOL: In Tandem). This is a long winded way of saying, do i plan on having more advanced forms of AI? "yes." As i said before, i have the above style and approach driving the over world camera, UI menu, caravan AI, towns management, so on. I am in the process of rewriting my scripts to take this approach for the city level, where currently the highlight of cells, highlight of buildings, turning on and off menus are all driven by keys. When i get to the point where i am putting in more combat related stuff, then i will circle back and flesh out the above type of enemy AI, putting in calls to pathfinding, more advanced steering behaviors, dynamic cover seeking, and specific knowledges based on specific weapons and items which can be children of those specific weapons and items.