Automated, progress quest-inspired procedural adventuring

Related tags

Miscellaneousjourney
Overview

Tales of an Endless Journey (TEJ)

Automated, progress quest-inspired procedural adventuring

demo image

What is this project?

Journey is the result of many, many attempts at making some form of D&D inspired computer program. The scope of this project has, over the years, variously shifted from a text adventure game to a fairly faithful recreation of 5e to a full text adventure scripting engine powered by Markdown to a world simulation that also allowed you to explore it (the last is the Civsim project). It's current party-focused instantiation owes itself to inspiration from games such as Dungeon Campaign (Although its graphics are, if possible, even worse) as well as automated simulators such as Progress Quest, which has just received a CLI release. Oh, also automated roguelikes like Roguathia.

How do I "play" TEJ?

  1. Download all files.
  2. Install the pyyaml module for python using pip install pyyaml.
  3. Run main.py.
  4. Sit back and relax, the journey has begun.

Ok, but seriously, how do I "play" TEJ?

When TEJ is created, a party of random characters is generated and go through their lives before adventuring. Being strong willed adventurers, they come with minds of their own, and are naturally reluctant to follow any commands. Indeed, they will insist on making all decisions by themselves, either through collective voting or selfishly, leaving you (the player) with little to do except watch their exploits play out. You can leave the window in the background, and if (when) these adventurers fall you will receive your highscore - my current highscore is 2599.

How does TEJ work?

TEJ works using a system of markov chains containing various nodes. For example, the wilderness node can either link to itself (going from one spot in the wild to another), to a travel encounter, to a town, or to a dungeon. Each node also has an associated event, which sometimes gives the characters some control over where they end up through skill checks, voting, or similar mechanisms.

Characters can also have encounters with other creatures, which have different power levels and are not generated to be a "fair fight". Based on the power disparity between the groups and fear and aggression in the party, adventurers can choose to fight, flight, or parley. Of course, if they come to blows and adventurers die, the party is diminished. When the party is lost to traps, exhaustion, or foes, the game is over... (You can sometimes recruit party members in town, no fear, and surviving dungeons levels party members up!)

I want more biomes/monsters/unique encounters/X feature!

You're in luck! TEJ is designed to be pretty extensible, and I'm looking forward to reworking the codebase to make it even more extensible! To add a new node in the markov chain, simply edit the list of possible outcomes for each node in generic_adventure.yaml and then the function in the Adv class in generic_adventure.py. Be warned that some nodes specify what outcome they link to using special methods in the function rather than "choosing" from the markov chain options. Monsters are simply a name, a vertical bar |, and a power number added to the list in generic_encounters.yaml. If you want a monster to have special behaviour, I've written up an example of a special enemy (the venomous adder) in generic_adventure.py. Any subclasses for Enemy you add using this format are automatically detected and will replace the relevant bestiary entry. When naming the subclass, be sure to name it exactly the same as the bestiary entry, except replacing with _.

Any last words?

Have fun!

You might also like...
Your Google Recon is Now Automated
Your Google Recon is Now Automated

GRecon : GRecon (Greei-Conn) is a simple python tool that automates the process of Google Based Recon AKA Google Dorking The current Version 1.0 Run 7

Automated GitHub profile content using the USGS API, Plotly and GitHub Actions.
Automated GitHub profile content using the USGS API, Plotly and GitHub Actions.

Top 20 Largest Earthquakes in the Past 24 Hours Location Mag Date and Time (UTC) 92 km SW of Sechura, Peru 5.2 11-05-2021 23:19:50 113 km NNE of Lobuj

Track testrail productivity in automated reporting to multiple teams
Track testrail productivity in automated reporting to multiple teams

django_web_app_for_testrail testrail is a test case management tool which helps any organization to track all consumption and testing of manual and au

Automated Content Feed Curator

Gathers posts from content feeds, filters, formats, delivers to you.

Automated Birthday Wisher built using Python
Automated Birthday Wisher built using Python

Automated Birthday Wisher This Automation of wishing Birthday is achieved using Python. Never forget to wish birthday! Table of contents Overview Scre

Automated moth pictures for biodiversity research
Automated moth pictures for biodiversity research

Automated moth pictures for biodiversity research

Automated rop chain generation

This is the accompanying code to the blog post talking about automated rop chain generation. Build the test file with: make Install the dependencies:

Backups made easy, automated, monitored and SECURED with an audited encryption

Backup Controller Backups made easy, automated, monitored and SECURED with an audited encryption. Schedules backup tasks executed by Backup Maker, upl

Releases(v0.1)
Read and write life sciences file formats

Python-bioformats is a Python wrapper for Bio-Formats, a standalone Java library for reading and writing life sciences image file formats. Bio-Formats

CellProfiler 106 Dec 19, 2022
Cloud-native SIEM for intelligent security analytics for your entire enterprise.

Microsoft Sentinel Welcome to the Microsoft Sentinel repository! This repository contains out of the box detections, exploration queries, hunting quer

Microsoft Azure 2.9k Jan 02, 2023
Statically typed BNF with semantic actions; A frontend of frontend frameworks; Use your grammar everywhere.

Statically typed BNF with semantic actions; A frontend of frontend frameworks; Use your grammar everywhere.

Taine Zhao 56 Dec 14, 2022
Using Python to parse through email logs received through several backup systems.

outlook-automated-backup-control Backup monitoring on a mailbox: In this mailbox there will be backup logs. The identification will based on the follo

Connor 2 Sep 28, 2022
Academic planner application designed for students and counselors.

Academic planner application designed for students and counselors.

Ali bagheri 2 Dec 31, 2021
Python tools for working with Orbit Ephemeris Messages (OEMs).

Python Orbit Ephemeris Message tools Python tools for working with Orbit Ephemeris Messages (OEMs). Development Status Installation The oem package is

Brad Sease 4 Apr 06, 2022
This tool allows you to do goole dorking much easier

This tool allows you to do goole dorking much easier

Steven 8 Mar 06, 2022
Clock in automatically in SCU.

auto_clock_in Clock in automatically in SCU. Features send logs to Telegram bot How to use? pip install -r requirements.txt () edit user_list, token_A

2 Dec 13, 2021
Create beautiful diagrams just by typing mathematical notation in plain text.

Penrose Penrose is an early-stage system that is still in development. Our system is not ready for contributions or public use yet, but hopefully will

Penrose 5.6k Jan 08, 2023
VHDL to Discrete Logic on PCB Flow

PCBFlow Highly experimental set of scripts to transform a digital circuit described in a hardware description language (VHDL or Verilog) into a discre

Tim 77 Nov 04, 2022
Mail Me My Social Media stats (SoMeMailMe)

Mail Me My Social Media follower count (SoMeMailMe) TikTok only show data 60 days back in time. With this repo you can easily scrape your follower cou

Daniel Wigh 1 Jan 07, 2022
✔️ Create to-do lists to easily manage your ideas and work.

Todo List + Add task + Remove task + List completed task + List not completed task + Set clock task time + View task statistics by date Changelog v 1.

Abbas Ataei 30 Nov 28, 2022
A guy with a lot of useful things to do when doing AtCoder in Python

atcoder_python_env Python で AtCoder をやるときに便利な諸々を用意したやつ コンテスト用フォルダの作成 セットアップ 自動テス

2 Dec 28, 2021
Gunakan Dengan Bijak!!

YMBF Made with ❤️ by ikiwzXD_ menu Results notice me: if you get cp results, save 3/7 days then log in. Install script on Termux $ pkg update && pkg u

Ikiwz 0 Jul 11, 2022
A simple BrainF**k compiler written in Python

bf-comp A simple BrainF**k compiler written in Python. What else were you looking for?

1 Jan 09, 2022
Free version of Okuru selfbot, okuru.xyz

Indigo Selfbot Free OpenSource selfbot, Premium version can be found at https://okuru.xyz (5$.) Usage python[3] main.py Installation To install you ca

Dimitri Demarkus 31 Aug 07, 2022
Simple Python tool to check if there is an Office 365 instance linked to a domain.

o365chk.py Simple Python script to check if there is an Office365 instance linked to a particular domain.

Steven Harris 37 Jan 02, 2023
1000+ ready code templates to kickstart your next AI experiment

AI Seed Projects Start with ready code for your next AI experiment. Choose from 1000+ code templates, across a wide variety of use cases. All examples

BlobCity, Inc 98 Jan 03, 2023
→ Plantilla de registro para Python

🔧 Pasos Necesarios CMD 🖥️ SOCKETS pip install sockets 🎨 COLORAMA pip install colorama 💻 Código register-by-inputs from turtle import color # Impor

Panda.xyz 4 Mar 12, 2022
Polypheny Connector for Python

Polypheny Connector for Python This enables Python programs to access Polypheny databases, using an API that is compliant with the Python Database API

Polypheny 3 Jan 03, 2022