How I used RabbitMQ and local LLMs to handle procedural world-generation and an emerging economy in my indie RPG

Hey everyone,

I’m currently single-handedly developing Homeris, a custom MUD (text-based RPG) engine written in Java with a PostgreSQL vector database. The entire game world, room descriptions, and NPC backgrounds are dynamically generated and enriched on the fly using a local Meta-Llama-3.1-8B-Instruct-GGUF (Q5_K_M) running on a local mini-PC.

Up until last week, whenever the game engine needed the local LLM to rewrite a room description based on the kingdom's shifting economic state, it relied on standard async threads (CompletableFuture).

It worked, but it was a disaster waiting to happen. Blasting a local 8B model with dozens of concurrent requests completely melted my RAM, caused frequent API timeouts, and if the server crashed mid-generation, those world-building tasks were just lost in limbo.

Enter RabbitMQ.

I completely refactored the AI pipeline into a strict Producer-Consumer pattern using RabbitMQ.

  • Resilience: The game engine now safely dumps world-generation and character-enrichment tasks into a persistent queue. If I need to reboot the server or if something crashes, the queue doesn't care—the tasks sit safely in RabbitMQ and pick up exactly where they left off upon restart.
  • Rate Limiting: The consumer fetches tasks via a strict rate-limit (basicQos(1)), feeding them to the local RAG module one single prompt at a time. No more resource starvation.

The Monthly World Shift: I hooked this whole message pipeline straight into my EconomyManager. Every game-month, the engine checks the health and wealth of each simulated kingdom. If a region decays into poverty, its rooms are quietly queued up. RabbitMQ passes them to the LLM, which dynamically rewrites the descriptions on the fly—adding visual cues like peeling plaster, rotting wood, and extinguished torches. If the kingdom recovers, the text shifts back to luxury.

Umanizing the Agents: To make the text-based environment feel alive, I also built a few features to make the NPCs mimic actual human players in chat:

  1. NpcTypoGenerator: NPCs now occasionally fat-finger words based on their state (e.g., typing "helli" instead of "hello") and immediately fire a correction in the next line (*hello).
  2. SimulateAfkAction: If an NPC is exhausted or lacks stimulation, they flag themselves as AFK, freeze their utility brain, and will hit you with a quick "brb" if you try to talk to them.

Would love to hear your thoughts on this architecture, especially if anyone else is orchestrating message brokers with local GGUF models for dynamic agent simulation!

reddit.com
u/Least-Monk-131 — 21 hours ago
▲ 0 r/aigamedev+1 crossposts

How I used RabbitMQ and local LLMs to handle procedural world-generation and an emerging economy in my indie RPG

Hey everyone,

I’m currently single-handedly developing Homeris, a custom MUD (text-based RPG) engine written in Java with a PostgreSQL vector database. The entire game world, room descriptions, and NPC backgrounds are dynamically generated and enriched on the fly using a local Meta-Llama-3.1-8B-Instruct-GGUF (Q5_K_M) running on a local mini-PC.

Up until last week, whenever the game engine needed the local LLM to rewrite a room description based on the kingdom's shifting economic state, it relied on standard async threads (CompletableFuture).

It worked, but it was a disaster waiting to happen. Blasting a local 8B model with dozens of concurrent requests completely melted my RAM, caused frequent API timeouts, and if the server crashed mid-generation, those world-building tasks were just lost in limbo.

Enter RabbitMQ.

I completely refactored the AI pipeline into a strict Producer-Consumer pattern using RabbitMQ.

  • Resilience: The game engine now safely dumps world-generation and character-enrichment tasks into a persistent queue. If I need to reboot the server or if something crashes, the queue doesn't care—the tasks sit safely in RabbitMQ and pick up exactly where they left off upon restart.
  • Rate Limiting: The consumer fetches tasks via a strict rate-limit (basicQos(1)), feeding them to the local RAG module one single prompt at a time. No more resource starvation.

The Monthly World Shift: I hooked this whole message pipeline straight into my EconomyManager. Every game-month, the engine checks the health and wealth of each simulated kingdom. If a region decays into poverty, its rooms are quietly queued up. RabbitMQ passes them to the LLM, which dynamically rewrites the descriptions on the fly—adding visual cues like peeling plaster, rotting wood, and extinguished torches. If the kingdom recovers, the text shifts back to luxury.

Umanizing the Agents: To make the text-based environment feel alive, I also built a few features to make the NPCs mimic actual human players in chat:

  1. NpcTypoGenerator: NPCs now occasionally fat-finger words based on their state (e.g., typing "helli" instead of "hello") and immediately fire a correction in the next line (*hello).
  2. SimulateAfkAction: If an NPC is exhausted or lacks stimulation, they flag themselves as AFK, freeze their utility brain, and will hit you with a quick "brb" if you try to talk to them.

Would love to hear your thoughts on this architecture, especially if anyone else is orchestrating message brokers with local GGUF models for dynamic agent simulation!

reddit.com
u/Least-Monk-131 — 21 hours ago

Need your brainpower: Help me choose a tagline for my local AI-driven text adventure

Hey guys, working on Homeris (the Java/Postgres MUD with local Ollama I posted about recently) and I'm stuck on the tagline. I want something that highlights the split between the rigid database logic and the AI prose.

A few ideas I had:

  • Imagine the World
  • Worlds Apart
  • Infinite Echoes

Which one sounds less cliché?

Also, here is a quick preview of the web UI with a local 8B model running. Ignore Zeus's crazy health/mana bars, that's just for dev debugging lol. Added a node map widget on the top right called Atlante to keep track of locations. Thoughts on the dark UI vibe?

https://preview.redd.it/2z0oyxnpv68h1.png?width=1882&format=png&auto=webp&s=ec08f91e1c7ffd25a0c44d6345ea3209f51faf70

reddit.com
u/Least-Monk-131 — 18 days ago
▲ 2 r/GameDevelopment+1 crossposts

Need your brainpower: Help me choose a tagline for my local AI-driven MUD (and check out the Web UI preview!)

Hi everyone!

Following up on my last post about building an AI-powered MUD (Homeris) backed by Java, PostgreSQL, and local Ollama orchestration, I’m currently finalizing the brand identity and the Web UI.

Since the game relies heavily on text immersion—where strict database facts dictate what happens and a local 8B model decides how to narrate it based on context—I want a tagline that captures this essence.

I’m torn between a few options and would love to get your developer/gamer perspective:

  1. Homeris: Imagine the World (Focuses on the text-based nature where the player's mind and the AI's generation meet).
  2. Homeris: Worlds Apart (A nod to the separation of architecture: rigid SQL data vs dynamic AI prose).
  3. Homeris: Infinite Echoes (Emphasizing how every action ripples into unique AI-generated descriptions).

Which one resonates the most with you? Or do you have a better suggestion based on the concept?

Web UI Progress Update: To give you some context on the actual vibe of the game, here is a screenshot of the current Web UI running a local benchmark test with an 8B model.

https://preview.redd.it/mmvfp2j0u68h1.png?width=1882&format=png&auto=webp&s=819ed8269150f42047824375bc68bf760d47ad4d

(Don't mind Zeus's massive health and mana pools, that's just god-mode for architecture debugging!)

As you can see, I'm trying to keep it minimal, dark, and highly atmospheric, with the "Atlante" widget on the top right keeping track of the physical node mapping.

Would love to hear your thoughts on both the taglines and the UI style! Thanks for the amazing feedback on this journey so far.

reddit.com
u/Least-Monk-131 — 18 days ago
▲ 3 r/aigamedev+1 crossposts

An AI-Driven, Player-Expanding Dark Fantasy MUD

Hi everyone,

I’m a software developer working on a passion project that sits at the intersection of old-school text adventures and modern AI. I wanted to share a bit about the architecture I’m building for Homeris, a Dark Fantasy MUD.

I've always loved the depth of MUDs, but I wanted to make the experience more accessible and immersive for 2026. Here is the technical breakdown of what I’m working on:

The Stack: I’m building a custom backend in Java/Netty from the ground up to ensure low latency. The world state is persisted using a PostgreSQL database, managed via a Docker environment.

The "Interactive Audiobook" Mode: I realized that reading walls of text can be a barrier. I’ve integrated a RAG (Retrieval-Augmented Generation) pipeline that takes the room description, NPC memories (stored in NPC_CHRONICLES), and player state, and feeds it to an LLM to generate a dynamic, narrative-focused audio experience.

Persistent & Living NPCs: NPCs in Homeris aren't static scripts. They use a Utility-based AI Brain to decide their actions based on personality traits, and they actually remember their own history, which they can recount during interactions.

I’m currently in the "building in public" phase, documenting the technical hurdles and the code behind the integration of LLMs into a persistent world.

If you’re interested in the code, the technical challenges of running persistent AI-driven worlds, or just want to follow the progress, I’m posting my DevLogs here: https://www.patreon.com/homeris

I’d love to hear your thoughts on how you’re handling LLM integration in your projects, or any feedback on the concept!

u/Least-Monk-131 — 28 days ago