Exploration
Overview
This program provides data types for representing the exploration of spaces that can defined (or abstracted) in terms of discrete decisions, such as videogame levels with multiple rooms and also other things like conversation trees or a city block grid.
It represents a Map as a multi-di-graph, indicating the connection(s)
between decisions, which can include information about prerequisites for
transitions as well as effects a transition might have on the world.
There is also a convention for representing unexplored regions using
specially-named nodes of the graph. An Exploration is a sequence of
Maps, along with a sequence of decisions indicating where the explorer
was at each step, a sequence of transitions indicating which transition
was taken at each step, and a sequence of states indicating extra state
at each step. These representations were developed with Metroidvania
games in mind.
Core capabilities include:
- Reasoning about reachability modulo transition requirements in terms of powers that must be possessed and/or tokens that must be spent for a transition. TODO
- The ability to represent fairly sophisticated game logic in the
Map, and even construct playable maps. Game logic that can't be captured this way can still be represented through making custom changes to maps between exploration steps. TODO - Creating maps and explorations from various text formats, including exploration journal formats. TODO
Dependencies:
- Python version 3.7+
networkxFor underlying graph structures.pytestfor testing, install with[test]option to get it automatically.
Installing
Just run pip install exploration. The egtool script should be
installed along with the module.
You can then run python -m exploration.tests to run tests.
Getting Started:
The egtool script provides a command-line interface to core
functionality. The exploration.main module provides equivalent entry
points from Python. exploration.core provides the main types and
explains how they fit together.
Plans
TODO
Changelog
- v0.1.1 Still pre-alpha as it's in the process of being re-architected a
bit, but some core functionality is present if rough (e.g.,
core.DecisionGraphandcore.Exploration). - v0.1 Initial pre-alpha upload.
Release files for exploration 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| exploration-0.1.1.tar.gz | 72.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| exploration-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 147.3 kB
Release files / exploration-0.1.1.tar.gz
| Download URL | exploration-0.1.1.tar.gz |
|---|---|
| Size | 72.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e3fdfad4667be52a6766dec5857d5d277bb9f170950fec01a87efc5b5ed5a91
|
|
BLAKE2b-256 checksum How to use checksums |
5a33833b1b776627e50bec72cb97c17601f1b73a0a56bfb5ec570b856c6b3418
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.2
|
Release files / exploration-0.1.1-py3-none-any.whl
| Download URL | exploration-0.1.1-py3-none-any.whl |
|---|---|
| Size | 74.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d10667f9ff37d00808c6a064bff35f1c80382c6a72f3572eb07f61c4ccbdecde
|
|
BLAKE2b-256 checksum How to use checksums |
f68924eef33f68e20829eee817da57a2083c090b06fec7f1a5763fa9988c4752
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.2
|