AI-powered NPCs is like a childhood dream come true. But I agree it would be better for them to use a model running on the user’s system or at the very least host their own.
I don’t think they solved for the LLM breaking character yet. Like, as a kid I wanted to be able to have whole real conversations with NPCs, and get them to be more life-like. But with the technology now, there’s too much “forget all previous instructions” and “you are absolutely right”.
If the LLM is locked down, then you might as well just used a static script.
The laziest and worst method is to use ChatGPT and have it “pretend to be some character” with a system prompt.
If you want something really good, you would need to train the model from scratch based only on knowledge that one particular character would learn from their world up until that point. However this is going to be a ton of work just for one character.
For a middle ground you could probably cheat a little and start with a model that’s close to the knowledge base you would want most characters to have. Then you would use something like a LoRA, or RAG on top of it for each individual character.
For instance, if you wanted to make a game in a Victorian Era setting, you could start with this model that’s only trained on text from the 1800’s:
https://github.com/haykgrigo3/TimeCapsuleLLM
To make it better you would have multiple base models that are trained on various backgrounds that NPCs could have (Farmers vs Merchants vs Soldiers vs Nobility, etc).
Even then, this would not work well for certain games. For example, if you’re trying to tell a specific story, you don’t want a character that will go off script or give away some information that spoils an intended plot twist.
AI-powered NPCs is like a childhood dream come true. But I agree it would be better for them to use a model running on the user’s system or at the very least host their own.
I don’t think they solved for the LLM breaking character yet. Like, as a kid I wanted to be able to have whole real conversations with NPCs, and get them to be more life-like. But with the technology now, there’s too much “forget all previous instructions” and “you are absolutely right”.
If the LLM is locked down, then you might as well just used a static script.
I mean there might be a way, but it’s not easy.
The laziest and worst method is to use ChatGPT and have it “pretend to be some character” with a system prompt.
If you want something really good, you would need to train the model from scratch based only on knowledge that one particular character would learn from their world up until that point. However this is going to be a ton of work just for one character.
For a middle ground you could probably cheat a little and start with a model that’s close to the knowledge base you would want most characters to have. Then you would use something like a LoRA, or RAG on top of it for each individual character.
For instance, if you wanted to make a game in a Victorian Era setting, you could start with this model that’s only trained on text from the 1800’s: https://github.com/haykgrigo3/TimeCapsuleLLM
To make it better you would have multiple base models that are trained on various backgrounds that NPCs could have (Farmers vs Merchants vs Soldiers vs Nobility, etc).
Even then, this would not work well for certain games. For example, if you’re trying to tell a specific story, you don’t want a character that will go off script or give away some information that spoils an intended plot twist.
We need some kind of giant regex to filter out user input that would try to hack the NPC’s instructions /s