UnscriptedAdventures is a text-based RPG game that leverages Large Language Models (LLMs) to deliver a dynamic, immersive experience. Players engage with a virtual Game Master (GM) and Non-Player Characters (NPCs) through a chatbot interface, making choices that directly influence the unfolding narrative. The application is built using FastAPI, a modern, high-performance web framework for building APIs with Python.
Note: UnscriptedAdventures is currently in Alpha development. Documentation updates are ongoing. The project remains actively developed, and contributions are welcome. If you wish to contribute, please create a Pull Request.
- Dynamic Storytelling: A virtual GM driven by an LLM agent guides the story, adapting to player choices and actions in real-time.
- Character Creation: Customize your character with a variety of traits, professions, and backgrounds to suit your play style.
- Engaging Interactions: Communicate with NPCs and make decisions that influence the game's evolving storyline and outcomes.
- Reward System: An innovative system evaluates player engagement and adjusts the GM's strategy to keep the experience exciting.
For detailed instructions, see the Getting Started Guide in the Wiki.
Note: Requires Python >=3.12.0
-
Clone the Repository:
git clone https://github.com/dspencej/UnscriptedAdventures.git cd UnscriptedAdventures
-
Create a Virtual Environment:
python -m venv .venv source .venv/bin/activate # For Windows, use `.venv\Scripts\activate`
-
Install the Required Packages:
pip install -r requirements.txt
-
Start the FastAPI Application with Uvicorn:
uvicorn app:app --reload
The
--reload
flag enables auto-reloading, allowing the server to restart upon code changes. This is useful during development. -
Open Your Browser:
Visit
http://127.0.0.1:8000
in your web browser to start playing. -
Interactive API Documentation:
FastAPI provides interactive API documentation:
- Swagger UI: Accessible at
http://127.0.0.1:8000/docs
- ReDoc: Accessible at
http://127.0.0.1:8000/redoc
- Swagger UI: Accessible at
For guidelines on contributing, see the How to Contribute section of the Wiki.
- Fork the repository and clone it locally.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear and concise messages.
- Push your changes to your forked repository.
- Create a Pull Request to the main branch of the original repository.
This project is licensed under the MIT License—see the LICENSE file for details.
If you have any questions, feedback, or suggestions, feel free to join the discussion or open an issue.
For bug reports, you can use the Bug Report Template. To suggest a feature, use the Feature Request Template.
Enjoy your next story in the world of UnscriptedAdventures!