Bom dia matheusthx
!
Li todo o seu post e vou direto para a resposta da pergunta do final.
Não acredito que seja necessário nem meses e nem anos para esse tipo de desenvolvimento.
O NPC ele é um chatbot e, atualmente como acontece nos chatbots, a gente tem uma ilusão que o chat contém um histórico, a gente manda uma mensagem e ele reage, mas não funciona assim...
Cada vez que a gente manda uma mensagem, todo o histórico é enviado novamente para o chat.
E como a gente faz isso? Através do que a chama de API, que é uma maneira de conversar diretamente com esse chatbot, porém sem a interface de usuário.
Até aí, é simples, você dá um pequeno contexto e o usuário vai ter uma pequena interação (porque os modelos de hoje têm limitações).
Se você quiser um contexto maior para o seu NPC e uma conversa permanente, aí é um pouco mais complexo usando duas bibliotecas Langchain e LlamaIndex mas paro por aqui...
Espero ter ajudado!