{"id":18266288,"url":"https://github.com/ssube/textual-engine","last_synced_at":"2025-04-04T21:32:35.105Z","repository":{"id":37049051,"uuid":"367126459","full_name":"ssube/textual-engine","owner":"ssube","description":"an event-driven text adventure engine for both narrative story telling and procedural dungeon crawling","archived":false,"fork":false,"pushed_at":"2024-05-30T22:22:44.000Z","size":5930,"stargazers_count":16,"open_issues_count":38,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T20:13:11.362Z","etag":null,"topics":["adventure","cli","game","game-engine","text-adventure","text-adventure-engine","text-adventure-game","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssube.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-13T17:36:11.000Z","updated_at":"2024-10-13T23:50:10.000Z","dependencies_parsed_at":"2023-10-03T03:55:05.221Z","dependency_job_id":"b365a013-1b16-4b06-bc45-0d7b9bcdc2f5","html_url":"https://github.com/ssube/textual-engine","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssube%2Ftextual-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssube%2Ftextual-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssube%2Ftextual-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssube%2Ftextual-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssube","download_url":"https://codeload.github.com/ssube/textual-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247252520,"owners_count":20908706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adventure","cli","game","game-engine","text-adventure","text-adventure-engine","text-adventure-game","typescript"],"created_at":"2024-11-05T11:22:45.398Z","updated_at":"2025-04-04T21:32:33.397Z","avatar_url":"https://github.com/ssube.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Textual Engine\n\nThis is a text adventure engine for the CLI and browsers, supporting both narrative fiction and procedural dungeon\ncrawlers, using an event and service architecture.\n\nSee [the demo on Github Pages](https://ssube.github.io/textual-engine/) or [the getting started docs](docs/getting-started.md) for more info.\n\n[![snippet of wandering goblins and attacking bats](docs/readme-demo.gif)](https://ssube.github.io/textual-engine/)\n\n## Features\n\n- text\n- adventure\n- worlds:\n  - contextual verbs\n  - item modifiers\n  - persistent rooms\n  - procedural expansion\n  - geometric links\n  - wandering monsters\n- engine:\n  - localization of both input and output with [i18next](https://github.com/i18next/i18next)\n  - structured logging with [bunyan](https://github.com/trentm/node-bunyan)\n  - multiple data loaders: fetch, file, local storage, and page elements\n  - multiple input parsers: simple word and natural language\n  - multiple rendering engines: [readline](https://nodejs.org/api/readline.html), [Ink](https://github.com/vadimdemedes/ink), and [React](https://github.com/facebook/react/)\n  - save and reload game state\n  - entity scripts for signals and verbs\n- planned:\n  - chat client and network play\n  - world editor for React browser UI\n\n## Contents\n\n- [Textual Engine](#textual-engine)\n  - [Features](#features)\n  - [Contents](#contents)\n  - [Building](#building)\n  - [Playing](#playing)\n  - [Docs](#docs)\n  - [License](#license)\n\n## Building\n\nSome `make` targets are provided:\n\n- `make build`: transpile Typescript sources\n- `make test`: build and run `mocha` tests\n- `make cover`: run `make test` with `nyc` code coverage\n\n## Playing\n\n[A recent version of the game is available on Github Pages](https://ssube.github.io/textual-engine/).\n\nIf you have a copy of this repository checked out, the `make run` target will build and launch the game on the CLI,\nusing the Ink rendering engine and demo world.\n\nIf you prefer to run a Docker image, the latest build is published as `ssube/textual-engine:master-stretch`, and can\nbe run with:\n\n```shell\n\u003e docker run --rm -it ssube/textual-engine:master-stretch \\\n  --config data/config.yml \\\n  --data file://data/demo.yml\n```\n\n## Docs\n\nMore detailed docs [are located in `./docs`](docs/).\n\nAvailable documentation includes:\n\n- [Engine Architecture](docs/architecture.md)\n- [Development Workflow](docs/development.md)\n- [Getting Started](docs/getting-started.md)\n- [Creating Worlds](docs/world-templates.md)\n\n## License\n\nThis project uses [the MIT license](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssube%2Ftextual-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssube%2Ftextual-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssube%2Ftextual-engine/lists"}