(joshfonseca.com)
I was intrigued as to how it would intercept a conversation and then pause the game for long enough for the LLM to return a response, so I used https://gitingest.com/vuciv/animal-crossing-llm-mod to dump the 40,000 tokens into Claude Opus 4.1 and asked it: https://claude.ai/share/66c52dc8-9ebd-4db7-8159-8f694e06b381
The trick is the watch_dialogue() function which polls every 0.1 seconds and then answers with placeholder text: https://github.com/vuciv/animal-crossing-llm-mod/blob/cc9b6b...
loading_text = ".<Pause [0A]>.<Pause [0A]>.<Pause [0A]><Press A><Clear Text>"
write_dialogue_to_address(loading_text, addr)
So the user gets a "press A to continue" button and hopefully the LLM has finished by the time they press that button.AND ALSO - the Gamecube did actually have networking through a barely used peripheral (though I knew and loved it through Phantasy Star Online Episode 1&2): https://gc-forever.com/wiki/index.php?title=Broadband_Adapte...
Should be "cause the game to pause" :)
He traps you (and one presumes) all of the rest of the villagers in a vicious cycle of debt, and can only be satiated by millions of bells.
That's more protection racket than bank loan.
Also in real life, you make 0 dollars catching beetles and fish in Hawaii.
And if you're a stickler for pissing Nintendo off in very specific ways, LayeredFS + Atmosphere opens up some modding opportunities right on the console itself. Not sure how easy it would be to pull something like this off though...
It's not so much a condemnation of HN, but the way IP is in the US. The only website I want hosting my comments on Nintendo modding is my own.
The only thing this kind of censoring does is countering basic censor bots I think, and somehow making swear words publishable in the US.
Until I typed this, I guess...
I'm insisting because if you care about not being sued, the stars are not an adequate defense despite what you seem to believe it is, and false sense of security is dangerous.
Not that I think that what you wrote here is remotely likely to cause you troubles, but it won't protect you the day you actually document something illegal.
To rub it in:
> I'm covering my ass
No, not at all, and it's important that you realize this.
But you do you.
That modder who had to pay 2M sold drm circumvention kits for the Switch. That's a pretty clear case.
You pretending that saying "emulator" on a forum qualifies just makes you a extra special snowflake.
All I'll say is that I've seen people arrested for discussing Switch emulation in-detail. Never saw that happen with Cheat Engine.
Says the person going out of their way to attack another person over a single-character asterisk substitution.
Seems fairly understandable to not want to piss off rabid lawyers, however remote the chances of angering them may be.
Also fairly common on Reddit and Discord for communities to ban discussions of them, or even falsely claim they're blanket illegal outright.
Now I'm kinda curious what age cohort is most likely to be Reddit memers
Do you think 30s is peak Reddit, yet you manged to be a lucky outlier? Or that peak Reddit skews older/younger and you're of a lucky age?
As an older Millennial in my 40s, I see this a lot in my 35-43 friend group. And always figured peak Reddit was younger Millennials (now in their 30s).
Might depend on what subs I suppose.
> "Stay normal unless prompted. Avoid overt references to debt unless it comes up naturally."
all the way to:
> "Openly agitate for change. Use fiery language (still PG) and talk about reclaiming fairness from Nook's shop and loans."
Source: https://github.com/vuciv/animal-crossing-llm-mod/blob/cc9b6b...
Can they?
I am exactly saying that they have no thoughts or even "thoughts".
> which doesn't explain how they can reason in novel problems
There are many decades of pre-LLM software that can solve novel problems. Thought (or novel thought) is required to reason, but it's not required to solve a problem.
For example, there are exhaustive algorithms that can solve novel equations and even complete simple mathematical proofs, but they don't need to think.
> "how do we know your comment isn't you regurgitating an HN opinion"?
You don't, and I don't care if you do or not. The value of my comment isn't its novelty or whether it's truly reasoned, which is why LLMs sometimes do create valuable output.
In fact, the output of a reasoning machine (whether a human brain or true AGI, sometime in the future) isn't deterministic. A non-reasoning machine and a reasoning machine could create the same output.
The reason I know LLMs don't have thoughts is because I use them many times every day, and they are very clearly pattern machines. They don't even begin to seem rational, human, or knowledgeable. It's sometimes possible to find near-verbatim sources for their outputs.
It's amazing that it's as good as it is given how far it is from thinking, but if you threw something actually novel at it, all it would do is confidently word salad a response.
There could probably be cool uses but I don't think it will be a pure "upgrade" as the repeating dialog is kind of a feature honestly.
We'll have to see how it pans out xD
Current video games are designed around streamlining content. As a player, your job is to extract all content from an area before going to the next. That's why most areas are designed as linear corridors so that there is a straightforward progression, and most NPCs interactions are meant to offer something meaningful so as to not waste the player's time.
But imagine if interaction with NPCs wasn't just a content delivery mechanism, but instead could sometimes be rewarding, sometimes useless, dynamically adjusted in how you interact with the world in non-predictable ways.
The player would just waste their time in their usual approach of canvasing each new area, which would become unsustainable. There would be no reliable way of ensuring you've extracted all the content. All he/she could do is roam around more naturally, hoping the glimpses they catch are engaging and interesting enough.
Maybe a new player skill would be to be able to identify the genuine threads of exciting content, be it designed or emergent, within the noise of an AI-generated world.
Realistically though, how do you build an exciting player experience with this framework? A starting point might be to approach it as something more akin to LARP or improvisation theater, you'd give each NPC and player a role they need to fulfill. Whether players actually enjoy this is another thing entirely.
That’s a slot machine, and the same mechanism which also gets us hooked on social media. Sounds like something which would immediately be exploited by vapid addiction-as-a-feature games à la FarmVille.
> The player would just waste their time in their usual approach of canvasing each new area, which would become unsustainable. There would be no reliable way of ensuring you've extracted all the content.
Sounds frustrating. Ultimately games should be rewarding and fun. Constraints are a feature.
> All he/she could do is roam around more naturally, hoping the glimpses they catch are engaging and interesting enough.
Good reminder to go take a walk outside. Take a train to somewhere we haven’t been. Pick a road we’ve never crossed. We don’t even need a mini map, and sucks that we don’t have teleportation back to base, but we do have a special device which always points the way back.
> Realistically though, how do you build an exciting player experience with this framework? (…) Whether players actually enjoy this is another thing entirely.
Agreed. Though not enjoying it and abandoning it is fine, I’m more worried about people not enjoying it but feeling unable to quit (which already happens today, but I think the proposed system would make it worse).
> Sounds frustrating. Ultimately games should be rewarding and fun.
this seems to assume that the only way to feel rewarded / have fun is by comprehensively extracting content from the game. in order to have fun in an "emergent" generative game of this nature, you'd need to let go of that goal.
i do agree with the risks surrounding engineered engagement.
Not my intention, that is not something I believe. I’m not a completionist (I get those who are, but to me it can get boring or stressful) and I see the appeal in sandbox games (even if I don’t usually play them).
Wrong right from the outset. Some games are designed around content and "extraction". Many are not.
While I think the parent post leaves a lot of open ended questions, I think they are spot on about the tightness of design in games.
In many open world RPGs, or something like GTA, you cannot open every door in a city. In street fighter you can't take a break to talk to your opponent. In art games like Journey you cannot deviate from the path.
Games are a limited form of entertainment due to technical and resource restrictions, and they always will be. Even something as open ended and basic as minecraft has to have limits to the design, you wouldn't want the player to be able to collect every blade of grass off of a block just because you could add that. You have to find the balance between engaging elements and world building.
Having a LLM backed farmer in an RPG that could go into detail on how their crops didn't grow as well last season because it didn't rain as much seems good on paper for world building. But it is just going to devalue the human curated content around it as the player has to find what does and does not advance their goals in the limited time they have to play. And if you have some reward for talking to random NPCs players will just spam the next button until it's over to optimize their fun. All games have to hold back from adding more so that the important parts stand out.
But even for story-driven games, you can signal when you're "done" extracting story-related details in various ways, by e.g. prompt the NPC to include dialogue element A,B,C when it fits the conversation, keep track of which were output (you can make it output a marker to ensure it's easy to track even if the dialogue element has been worded differently), and have it get annoyed and tell you it doesn't have more to tell you or similar as the repetition adds up.
But that's not how real life works at all, right? You talk to someone for as long as you want to talk to them, or until they start sending signals that they are done talking with you.
The way video game dialog works has always bothered me, it makes characters feel stilted and makes me care less about the characters and the world.
(Although it's a different game in many ways, consider by contrast how Portal 2 handles dialog, and the effect that has on immersion.)
How real life works is always a plausible interesting goal, but it's very often at odds with a bunch of other valuable goals for players.
A particular sharp example of this is sports video games. It might well be interesting (and certainly realistic) to simulate bad referees in a sports game. Horrible blown calls by tennis line judges, or missed calls by basketball refs, or bad umpire calls on pitches. Real-life soccer makes working the refs and their inability to see everything an art form, as far as I can tell.
Perhaps that's interesting, but the irony here is that real life refs are actually bad simulations of the original perfect game code in the first place, from a certain point of view. I think debates about the use of instant replay in sports gets at the heart of this, and one could imagine using real-time AI to help refs taking this conversation much further.
I think the sports case is a particularly sharp example, but it definitely holds with all sorts of choices in games.
For Animal Crossing in particular, I remember when I finally played it, it struck me after a while how much it had in common with recent MMOs (Everquest and World of Warcraft) that I had had fellow game developer friends have their lives severely disrupted by. And when I played the original Animal Crossing, I remember noticing specifically how careful the designers were in having players use up every bit of interesting content in a day after 45 minutes or an hour, so that eventually you'd run out of things to do, and that was the game's signal to put it down and pick it up again the next day. And I remember being struck by how intentional it was, and how humane it was... particularly given their goal of wanting to make a game that was asynchronously coop (where different family members could play in the same shared space at different times of day and interact asynchronously). As a game designer myself, I really respected the care they put into that.
Anyway, that's my immediate thought on seeing this (fascinating, valuable) experiment with LLM dialogue in Animal Crossing. The actual way NPCs work in these games as they are has been honed over time to serve a very specific function. It's very similar to personal testimonials by paid actors in commercials; a human expressing an idea in personal dialogue form triggers all sorts natural human attention and reception in us as audience members, and so it's a lot more sticky... but getting across the information quickly and concisely is still the primary point. Even dialogue trees in games are often not used because of their inefficiency.
I totally think that there will be fascinating innovations from the current crop of AI in games, and I'm really looking forward to seeing and trying them. I just think it's unlikely they will be drop-in replacements for a lot of the techniques that game developers have already honed for cases like informational NPC dialogue.
oh of course! Sorry, I was never trying to imply that that it was in any way realistic. For video games often the most fun / compelling choice is not the realistic one! Striving for realism can be a great goal and often has a lot of positives, but it is often limiting. Video games are just art, being photorealistic can be beautiful and amazing but is often not the best choice for expressing an idea.
That seems a bit like deck-chairs on the Titanic. The hard part isn't icon design, the hard part is (A) ensuring a clear list exists of what the NPC is supposed to ensure the user knows and (B) determining whether those goals were received successfully.
For example, imagine a mystery/puzzle game where the NPC needs to inform the user of a clue for the next puzzle, but the LLM-layer botches it, either by generating dialogue that phrases it wrong, or by failing to fit it into the first response, so that the user must always do a few "extra" interactions anyway "just in case."
I suppose you could... Feed the output into another document of "Did this NPC answer correctly" and feed it to another LLM... but down that path lies [more] madness.
EDIT: Also, having the LLM botch a clue occasionally could be a feature. E.g. a bumbling character that you might need to "interrogate" a bit before you actually get the clue in a way that makes sense, and can't be sure it's entirely correct. That could make some characters more realistic.
Basically you have your big clever LLM generating the outputs, and then you have your small dumb LLM reading them and going “did I understand that? Did it make sense?” - basically emulating the user before the response actually gets to the user. If it’s good, on it goes to the user, if not, the student queries Einstein with feedback to have another crack.
https://openai.com/index/prover-verifier-games-improve-legib...
Kind of like in real life...
There are some significant issues with it at the moment. One is that you have to train on vast swathes of text to get an LLM, and it's difficult after the fact to remove things after the fact. If you cooperate with the AI and stay "in Skyrim" with what you say to them it works out OK, but if you don't cooperate it becomes clear that Skyrim NPCs know something about Taylor Swift and Fox News, just to name two examples. LLMs in their current form basically can't solve this.
The LLMs are also prone to writing checks the game can't cash. It's neat that the NPCs started talking about a perfectly plausible dungeon adventure they went on in a location that doesn't exist, but "felt" perfectly Skyrim-esque, but there's clearly some non-optimal aspects about that too. And again, this is basically not solvable with LLMs as they are currently constituted.
Really slick experiences with this I think will require a generational change in AI technology. The Mantella mod is fun and all but it would be hard to sell that at scale right now as a gaming experience.
I didn't go into it in detail, but it isn't even that I got the NPCs to start babbling about Taylor Swift. What is was was just that they knew that she was a musician, and as such, might be at the tavern. That's very hard to remove.
One concrete example I'm sure these Skyrim mods aren't using is: enums in structured outputs [1] with a finite list of locations/characters/topics/etc that are allowed to be discussed. The AI is not allowed to respond with anything that is not in the enum. So you can give it a list of all the locations in the game in a huge array and it would be forced to pick one.
[1] https://platform.openai.com/docs/guides/structured-outputs#a...
I wouldn't ever want a game to use it for the core story writing, because it's pretty important that it is consistent and unable to be derailed. But for less serious NPC interactions or like an RPG scenario it is such a great fit.
I also wouldn't want a single player game to rely on remote inference, because that will get turned off eventually and then your game doesn't work.
(Yes, this is a Paradox callout. Give me less fancy particle effects in Vic3 and use the GPU for computing pop updates faster!)
(Probably the biggest barrier to this is the lack of a convenient C++/C#-level cross-manufacturer compute API. Vulkan is a bit too low-level for game devs to work with, OpenCL kind of sucks, and CUDA is NVIDIA-only.)
Incoming new type of health crisis: video game addiction coupled with LLM-induced psychosis. Dudes spending 12 hours a day farming gold in a MMORPG while flirting with their AI girlfriend sidekick
Another issue would be emphasizing the meaninglessness of the dialogue. For example, playing Trails in the Sky has lots of NPC dialogue that's repetitive, but at least the dialogue is relevant with how the NPC's life progresses in the grander scheme of things, such as having difficulty with her entrance exams, or having an argument with his fiancé. It's not main dialogue but adds flavor for anyone who cares about the world enough to interact with the citizens.
I don't think I'd like to interact with characters that I know whatever it is they have to say is generated on the fly and adds nothing other than random tidbits. The novelty would quickly wear off.
GLaDOS from Portal would offer one player pudding and another one a steak. You get to a wall which says “the ravioli is a fraud” and become utterly confused.
1. (predictability) Games like to have a clear arc and tend to use at least some of their NPCs to move that forward, it is harder to do this with a model that could make a choice you don't predict. They tend to have a set of items, quests, what-have-you that you need boundaries around.
2. (testing) Games like to test like crazy before launch, at least the AAA ones, so their QA folks just don't like a model that can have infinite responses/variants. Many then drop to a skeletal crew for maintenance and improvements after launch, where with ML models you actually need to keep improving the model, finding long tail bugs as more players interact with the system, etc.
3. (cost) Games are usually very cost aware, it's far cheaper to just have a set human-written dialogue path, then to run a model, even an offline one. Cheaper in both actual dollar costs if you're talking about a high end LLM service call, and CPU/GPU/memory costs if you're talking an on-box system.
4. (internationalization/localization) AAA games need to launch fast to many languages and locales, using a model for NLP and dialogue management/natural language generation adds added testing costs for each new language, that is just a very cheap translation normally that can be outsourced.
There have been some fun experiments in this space, and I expect to see this improve and become common use in the future, but it will take time and more work on how best to integrate a model into the flow of a game. I do love it for "presence" so talking to NPCs feels more human-like.
Nick and the crew at AI Dungeon (and related) have always done some interesting work in this space, trying out games where AI can be used in interesting ways.
1. I think people assume you have one LLM per character, but I think if you had specialized ones for each quest, item, etc.., this would actually work quite well.
3. I actually think if you cached responses under certain conditions, costs can be saved significantly. This would require quite a robust context, though, to still feel dynamic.
I'd argue throwing a game wrapper around an LLM is a new LLM experience, not a new game experience.
Once someone decides that will be a critical and fundamental part of a AAA game, the rest can be worked out despite what will be I am sure many unintended emergent behaviors.
https://www.youtube.com/watch?v=xNPF9VKmzxw
Mods Name is
https://www.youtube.com/watch?v=TpYVyJBmH0g&ab_channel=DougD...
The real immersion breaker and the holy grail of RPG is the fact NPC have no life or goal outside of what the player does. Imagine a game where NPCs have wants and goals and do things to get those done. Where you could leave it running for 10 years and things would have happened without you.
I think sandbox games like animal crossing are the exception, if it ever becomes reliable enough to put in anything other than an M rated game.
Animal Crossing, the Sims, Cult of the Lamb, and similar games would infinitely extend the life of the game. But I am sure we can all already imagine the headlines when these "family" games start saying things that they really should not be... especially given recent issues.
For the record, not dismissing the person who did this work. But doing this commercially has its risks.
Thankfully, a lot of old games love to use global variables because you can't run out of stack space or allocatable memory. Modern games shy away from that because even the tiniest consoles these days come with gigabytes worth of RAM, even a memory leak has to be a gigantic firehose to bring the system to a halt.
It depends, on a system with no ASLR it's potentially still deterministic, but there are a lot of potential sources of non-determinism.
Depending on how well we assume an LLM would do at this task, it’s an interesting way to see what “real people” would think about a very hypothetical situation.
The online generation is neat... but not necessary or important?
Replacing the polling with a lookup table would significantly improve the performance, and be much simpler.
In fact, Nintendo did release an official add-on called the Broadband Adapter, which plugged into the bottom expansion port and provided an Ethernet jack. Only a handful of games supported it, one was Phantasy Star Online. I also used it to stream games/roms from a PC. This worked by exploiting a memory vulnerability in Phantasy Star Online to load arbitrary code over the network, though with slower load times compared to running from disc.
"What About the GameCube Broadband Adapter?
Yes, the GameCube had an official Broadband Adapter (BBA). But Animal Crossing shipped without networking primitives, sockets, or any game-layer protocol to use it. Using the BBA here would have required building a tiny networking stack and patching the game to call it. That means: hooking engine callsites, scheduling async I/O, and handling retries/timeouts, all inside a codebase that never expected the network to exist."
But just give the AI a list of words I currently know, and it can slowly slip in more and more vocabulary, and maybe full sentences.
But also, why couldn't you look at the code to find the addresses used for dialogue? If it's already disassembled I would think you could just look at the addresses used by the relevant functions/set a breakpoint etc.,?
https://github.com/jmarshall23/Quake3LLM
jmarshall23 is a beast, with tons of interesting id tech-based projects.
LLMs in games is something I excited about.
The evil subtext in Animal crossing:
While it's impossible for game developers to write code to cover every situation, AI could make general reactions possible.
It's surprising that really simple things like this haven't been tried yet (AFAIK!). Like, even if it's just the dialogue, it can still go a long way.
Old text adventures honestly did this heaps better than modern games do, but the reality is there was a more finite action space for them and it wasn't surprising when something wasn't catered for.
I’m only aware of experimentation in making more “difficult” NPC AI which was found less enjoyable for obvious reasons, so would be interested to see why similar but different attempts down another path also failed.
I would love to see a Zelda game implement LLM dialogue for random inconsequential dialogue or relating dialogue to the game context.
Dynamically-generated dialogue. Device-local models designed for games could be trained on the game's lore and given a different style for each NPC, and react to the player's random actions instead of blurting out canned responses each time.
I'm sure if the genre-starting veterans like Richard Garriott or Roberta Williams were still active in the industry they'd definitely want to use something like this. Imagine a King's Quest or Monkey Island where you could literally type or try anything and get a relevant response! instead of just "nope"
It would probably creep into my suspension of disbelief and mess with my enjoyment.
When an unplanned result is worth qualifying as poor taste instead of humorous is a debate unlikely to be resolved on HN, but it doesn't need to be to explain why the author bothered to include it when documenting their experience.
Here's the big one that made the rounds in Feb/2021:
OpenAI GPT-3 Powered NPCs: A Must-Watch Glimpse Of The Future (Modbox)