Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- What do you mean by "low-tech AI"? This isn't AI...It's a behavior tree. Calling every decision-making system "AI" is like calling a flowchart a neural network.
What you're describing is a behavior tree: predefined logic, predefined responses, no learning, no inference, no model.
Stop calling everything AI, guys.
by rambojohnson - It's called AI because it drives the behavior of the NPCs, hence the name "artificial intelligence". I couldn't think of a better fitting term, especially if you know it is in the context of games. Everyone who actually plays games knows what AI in gaming means and that it doesn't need to involve LLMs or neural networks.
The thing about artificial intelligence is that it doesn't necessarily have to look or behave like biological intelligence. It could very well be a very alien and foreign form of intelligence.
by imtringued - > This isn't AI...It's a behavior tree. Calling every decision-making system "AI" is like calling a flowchart a neural network. What you're describing is a behavior tree: predefined logic, predefined responses, no learning, no inference, no model.
This is literally AI. A behavior tree is AI, all of those things are AI. It's just symbolic rather than neural network based.
by empath75 - > What you're describing is a behavior tree: predefined logic, predefined responses, no learning, no inference, no model.
Stop calling everything AI, guys.
Depends on how pedantic you want to get, one could argue that regular expressions are AI too.
https://www.rand.org/content/dam/rand/pubs/research_memorand...
Regexes were invented for much higher order tasks (modeling neural networks) than just making find-and-replace easier.
by HawtAds - That was called AI before the current LLM-AI era. Your comment reads like someone complaining that cryptography is called cryptoby dgellow
- FYI, one of the most well-known books about writing game entity behavior is literally called "Programming Game AI by Example." (published in 2004)
https://www.amazon.com/Programming-Example-Wordware-Develope...
by raincole - The logic used to implement game NPCs has been called "AI" since well before the current AI boom. And many of the techniques come from the previous AI boom of the 1970s-1980s.
I know that we're all experiencing AI fatigue, but this comment is an example of the "once an AI technology finds a niche and becomes accepted technique within that niche, it ceases to be AI" meme.
by bitwize - This is game AI, games called this sort of thing "AI" for a long time. Behavior trees is (among others) one of the most common things someone with the role of game AI programmer will implement.
This has been the case since at least the 90s, it is not a new thing.
- There are paradigms of AI that are not deep learning. If you took an AI course in the 90s or earlier, implementations like this are much closer to what you would learn about -- symbolics/GOFAI. It remains basic to some fields where stakes and complexity are high (air traffic control and military systems) but determinism is a strict requirement, not to mention others like gamedev that have lots of performance constraints -- and usually don't actually need or want anything non-deterministic or overly smart.
Deep Blue, the first chess engine to defeat a world champion, was a GOFAI system
There was an article recently about a system used in production at a pasty chain in Japan to classify pastries at checkout that didn't use DL for most of its existence. Now it seems to be a hybrid system that uses symbolics and DL for certain functions
https://www.newyorker.com/tech/annals-of-technology/the-past...
- Low Tech is a simplification, it's a massive over engineered spaghetti system
They have accumulated bloat and tech debt since their inception as a studio
https://github.com/ividyon/EldenRingHKS/blob/main/c9997.hks
But it works for them, and that's what creates their flavored games, i hope they'll never change a bit
- Not really an ai response but I remember the path following and aggro is really smart in Elden Ring and earlier Dark Souls. That is you try to run away after pulling aggro and when you think you're safe you'll run into some other strong enemies, after which, oops, the original enemy followed you down a ladder and stabbed you in the back. Of course they have a bunch of occasions where enemies are in places you don't expect them as well. It isn't really about the mob ai as much as level design and the balance of difficult-to-kill enemies at inconvenient times.by havblue
- this gets very clear when you look at the wiki on how different bosses move and how the different boss combos lead from one into another
and of course, lets you have a reasonable amount of control over different bosses
by 8note - And for Dark Souls AI: https://www.youtube.com/watch?v=PrHKzKQdZxY&t=1366sby hexasquid
- The video is actually describing the exact same thing as the blog post. The approach of FROMSOFT to NPC AI hasn't really changed much at all between Dark Souls and Elden Ring. (One of the most impressive things about their studio imo is the way they don't change much between titles, and yet all the games have a quite unique feel)
What the video refers to as a "Combat Wheel" is, in my opinion, much more easily explained as a weighted random selection. It really just takes a list of functions and randomly chooses one to call with dynamic weights. (But I appreciate that I differ significantly from AI academia on this point, because I also think the term "utility ai" is a really silly term for... dynamically weighting options before selection)
Likewise the start of that video talks a lot about the "Goals", in reference to complex planners like GOAP (which is the approach famously used in FEAR) and HTNs, but there is no planner here. It's just a basic pushdown automata.
Anyway, the reason I wrote this post in the first place is mostly because I watched that video and it felt a bit off, and investigated the code myself.
by dotstdy - The high level might look simple, but something like "attack" has to involve checking if it's possible/reasonable in a 3D space, animating turning and walking prior to the attack, playing the animations, dealing with player block or parry, etc.
Any good library author is going to try to bury the complexity so that users don't need to deal with it, but there can be a monstrous beast under the hood.
by nitwit005 - Low tech AI? Its sounds like standard game AI. I would really like to hear what the author would deem high tech game AI.by tokai
- by StilesCrisis
- F.E.A.R. 2 has the best AI that I can think of. Wonder if it counts as high tech or they just squeezed a lot of juice out of basic techniquesby gchamonlive
- My favorite high tech AI was Crysis. Might have been an update after it was originally released. The enemies will aggressively attack but then get quiet after you've taken cover. Eventually you'll realize some of them are flanking you while others keep suppressing fire on you to stop you from moving. You can hear them yelling to one another. Very cool touches.by viccis
- I know very little about AI and game mechanics, but knowing how early Fromsoft games were (e.g., Kingsfield), a basic AI in Elden Ring is very unsurprising. That's not necessarily a bad thing!
My vote for "high tech game AI" would probably be this old mod for Fallout 4:
>PANPC (Pack Attack NPC Edition) is a unique scripted AI management system for Fallout 4. Rather than treating each enemy as an individual proximity-based reaction agent (basically, a mine with a gun), this system generates social feedback between NPCs belonging to the same or allied factions.
>Enemies factor the overhaul health and success of their “team” into their tactical decisions, adjusting their strategies based on their social and threat awareness. As a result, they will switch between ranged, melee, defensive, and offensive tactics based on their perceptions of team advantage and individual risk.
https://fallout.wiki/wiki/Mod:PANPC_(Pack_Attack:_NPC_Editio...
by evanjrowley - The article keeps on mentioning about the performance issues of the decision tree that somehow this approach avoids, but it doesn't seem to actually put any real detais about the why here. Especially considering that:
1. Many scripting languages you'd find in games are implemented by evaluating the syntax tree directly (IIRC WitcherScript in Witcher 2 and 3 is implemented like that)
2. A behavior tree can be "compiled" down to a bytecode VM similar to what some scripting languages use
Though if any of these two approaches makes any difference in performance i'm not sure and i'd expect it'd depend heavily on how exactly they're implemented (my kneejerk reaction would be to expect the VM approach to be faster because parsing a bytecode sequence might be more cache friendly than jumping through pointers, but i also suspect that since game AI scripts/behaviors wont do any real computation themselves and instead 99% of the code would be engine/native calls, any potential benefit would be diminished -- but as i haven't tried to implement the same stuff with a realistic setup using both approaches to compare, i cannot say one or the other for certain).
- Yeah you're totally correct that ultimately the specific implementation details are what matters for performance. You could easily take either system and make it terribly slow, or more than fast enough. That's why I was somewhat deliberately vague about performance claims, it's really just a vibe-based thing.
Basically in my experience when you actually build a behavior tree as a tree, you get a pretty significant node count once you try to do anything remotely complex, just due to the way that behavior trees implement both control flow and actions as a (usually) static tree. In large AAA games this can really quickly turn into a situation where you have tens of thousands of nodes in a single behavior tree, which you then need to deal with somewhat efficiently. This affects not only the runtime, but the editor tooling as well, since these are often authored as visual noodle graphs.
You could totally lower the tree to some kind of bytecode, or optimized representation, but something I like about the approach here is that you kinda just don't need to do that. It's naturally resistant to the kind of node explosion you get with static trees because the decision logic is contained within nodes as Lua script (or C++ code), rather than built into the tree structure itself.
It's not a strongly justified position, I just think these kinds of structural decisions have an oversized impact on the amount and kind of optimization work you need to do down the line.
(Author here, if it wasn't clear)
by dotstdy - Roughly speaking FSM + stack based approaches are perfectly fine for 100 entities, but not for 1k.
Once you get to that point you can still make it work but it will take a lot of work to make it as fast as possible, whereas you'd have been better served by more branchless approaches that doesn't parse/jump the FSM.
by animal531 - How big are these trees that performance starts to matter?by BigTTYGothGF
- As a game dev, the fact "AI" as a keyword became totally unusable is quite annoying.by raincole
- Probably not as annoying as what guys named Al are going throughby hbn
- I try to say "LLM" as much as possible, but I'm aware that it's unlikely to work.
Partly for technical accuracy, partly to manage the average person's expectations when they hear "AI", partly to avoid contributing to a big dumb-money "everything is AI" bubble, etc.
by Terr_ - Everyday I hope a LLM enthusiast discovers how game "AI" (and games in general) fool/trick people and realizes LLM's don't do anything different. Some of my favorite examples are the Mario kart AI, Amnesia and Deadspace. It's all an extension of the ELIZA effect.by trashb
- The same thing happened with crypto (cryptography) after Bitcoin blew up, though it was just an abbreviation so it wasn't as bad.
There's no ambiguity when speaking, but when searching Rust-related things I get a lot of Rust game stuff. "Rust crates" or "Rust drops" correspond to in-game things so the fandom wiki will pop up. Occasionally I'll even get rust-removal webpages.
by Rendello - As an ex-game dev, I always found it a little annoying that they used "AI" for what was essentially just hard-coded logic.
It's a hard problem because "AI" has been a term since the 50s but has been used to describe different approaches to making a computer do things over time. The way game developers use "AI" to mean "hardcoded logic for game behavior" is fully inline with what "AI" meant in the 60s when they were using symbolic AI to write the first computer-controlled chess games.
Then AI programmers hit the wall of hard-coded logic, went through an AI winter, and what survived on the other end was logic that was automatically trained from big data sets. We used to call that "machine learning" because "AI" had connotations of snake oil from previous AI winters. But then within the past decade, tech companies with grandiose ambitions decided that "machine learning" was too nerdy so resurrected "AI" to refer to LLMs and their ilk.
The term is just a muddled mess.
by munificent