LLM-powered top-down RPG game
Project description
My RPG (Multiplayer-Ready)
A fully networked, Thick-Host/Thin-Client RPG engine driven by autonomous LLM agents.
Run
First, install dependencies:
pip install -r requirements.txt
Multiplayer Mode
1. Start the Dedicated Host Server (Headless):
python main.py --host
(The server will start listening on 0.0.0.0:5555 by default).
2. Start a Thin Client:
python main.py --join 127.0.0.1
(You can launch as many clients as you want. The server will dynamically assign them IDs like remote_1, remote_2 and replicate the state).
Singleplayer / Dev Mode (Local Bypass)
To run the game locally without network serialization overhead:
python main.py
Example
Player 1 (The Host):
- Runs
python main.py --host - Opens a new terminal and runs an HTTP tunnel wrapper:
ngrok http 5555 - Copies the forwarding URL provided by ngrok/your tunelling service (e.g., https://1234-abcd.ngrok-free.app).
Player 2 (The Client):
Runs python main.py --join 1234-abcd.ngrok-free.app
(The engine automatically maps this to wss://1234-abcd.ngrok-free.app and successfully routes the TCP streams through the HTTPS tunnel).
LLM Setup
OpenAI
Set the following environment variables:
OPENAI_API_KEYOPENAI_BASE_URL(optional; defaults tohttps://api.openai.com/v1)OPENAI_MODEL(optional; required if OPENAI_BASE_URL is specified)
You can place these in a local .env file, then specify their path: `python main.py --env-file .env'
Controls
- Arrows: move player
- SPACE: interact with nearby NPC, objects, doors, containers, and items.
- ENTER: Open a dialogue -> Type + ENTER: speak aloud, will be broadcasted to all nearby NPCs.
Note: For best performance, prefix your message to a specific NPC with '(To
npc_name)', or Whisper to them via the interaction menu (must be standing close to them).
- TAB: open inventory
- D: drop the currently selected item in your inventory, will prompt a dialogue to specify amount to drop.
- L: Global NPCs and event log.
- ESC: close dialogue
Interaction options
The following options are available in the interaction menu, subject to each object/entity type:
- NPCs: Get their attention, Whisper to them, Give them gold
- Doors: Openning them (if unlocked, or when the correct key is possessed in inventory when locked), Knock on them
- Containers: Take away or Store items.
- Workstations/Harvestable objects (e.g. trees): harvest/craft new items from them at the expense of some specific resources (if applicable).
Modding & Plugins
The engine features a Zero-Touch Plugin System to ensure core files remain pristine.
To add custom items, tools, status effects, or physical actions:
- Create a
.pyfile containing your logic and@register_*decorators. - Drop the file into a
plugins/folder at the root of the repository. - The engine will dynamically discover and load your modules upon boot.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file callai_rpg-0.1.5.tar.gz.
File metadata
- Download URL: callai_rpg-0.1.5.tar.gz
- Upload date:
- Size: 145.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ab31f0f36bd6b3a1e2bcb1380c1d8b278f9bf33021209405f3a3aa65e77832c
|
|
| MD5 |
8ea2c38e5dc464b38a92914ed7a40734
|
|
| BLAKE2b-256 |
1bf8da6c52b14730b529a629ef71a77047c343b392d0fa6116afd7427630b132
|
File details
Details for the file callai_rpg-0.1.5-py3-none-any.whl.
File metadata
- Download URL: callai_rpg-0.1.5-py3-none-any.whl
- Upload date:
- Size: 145.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cd80bd5509f985eafd3db4f670ce1389fd0ff9f1088f354bbc2fd421c25640e
|
|
| MD5 |
0446dc9754f27ed7a2076a0297fcb646
|
|
| BLAKE2b-256 |
b79731466c762dfde2f922647e85930bc07f8c73b78944fe85541a4a14da9e47
|