1
0
Fork 0
Go to file
renovate[bot] c605cb0f3d update: update dependency ajv to v8.12.0 2023-02-08 16:39:30 -06:00
config feat(build): split up CLI and server images, fix bundle 2022-10-21 11:47:52 -05:00
data fix(locale): restore localized help verbs 2022-10-21 12:53:37 -05:00
docs feat(data): organize strings by entity, script, signal and verb 2021-07-17 16:25:15 -05:00
scripts fix(build): make docker image script fail if build or push does 2021-05-17 12:20:40 -05:00
src fix(script/signal): make sure health and damage effects do not roll 0 2022-10-26 21:31:21 -05:00
test fix(test): correct name for help verbs in context 2022-10-21 13:29:25 -05:00
.codeclimate.yml fix(build): add codeclimate and npm configs 2021-05-17 12:33:13 -05:00
.eslintrc.cjs lint: fix most lint errors 2022-10-16 13:54:36 -05:00
.gitignore fix(render): remove handlers individually rather than by name 2021-05-16 11:56:44 -05:00
.gitlab-ci.yml fix(build): fully link jobs, remove pre stage 2022-10-21 11:56:12 -05:00
.mdlrc fix(build): add codeclimate and npm configs 2021-05-17 12:33:13 -05:00
.npmignore fix(build): add codeclimate and npm configs 2021-05-17 12:33:13 -05:00
.npmrc fix(build): add codeclimate and npm configs 2021-05-17 12:33:13 -05:00
CHANGELOG.md chore(release): 1.4.0 2021-06-06 18:18:32 -05:00
Dockerfile.cli fix(image): correct ep path for CLI image, remove esm 2022-10-21 12:09:27 -05:00
Dockerfile.server update: update docker.io/nginx docker tag to v1.23 2022-10-22 19:41:43 -05:00
LICENSE.md add readme, license, docs index 2021-05-15 18:09:57 -05:00
Makefile fix(build): correct ep for run targets 2022-10-21 12:53:00 -05:00
README.md fix(docs): describe load/save and worlds, procedural vs narrative, update readme features 2021-06-20 00:25:37 -05:00
package.json update: update dependency ajv to v8.12.0 2023-02-08 16:39:30 -06:00
renovate.json feat(build): configure renovate 2021-07-14 19:51:16 -05:00
tsconfig.json fix(test): cover i18next locale, local script services 2021-05-26 00:16:00 -05:00
yarn.lock update: update dependency ajv to v8.12.0 2023-02-08 16:39:30 -06:00

README.md

Textual Engine

This is a text adventure engine for the CLI and browsers, supporting both narrative fiction and procedural dungeon crawlers, using an event and service architecture.

See the demo on Github Pages or the getting started docs for more info.

snippet of wandering goblins and attacking bats

Features

  • text
  • adventure
  • worlds:
    • contextual verbs
    • item modifiers
    • persistent rooms
    • procedural expansion
    • geometric links
    • wandering monsters
  • engine:
    • localization of both input and output with i18next
    • structured logging with bunyan
    • multiple data loaders: fetch, file, local storage, and page elements
    • multiple input parsers: simple word and natural language
    • multiple rendering engines: readline, Ink, and React
    • save and reload game state
    • entity scripts for signals and verbs
  • planned:
    • chat client and network play
    • world editor for React browser UI

Contents

Building

Some make targets are provided:

  • make build: transpile Typescript sources
  • make test: build and run mocha tests
  • make cover: run make test with nyc code coverage

Playing

A recent version of the game is available on Github Pages.

If you have a copy of this repository checked out, the make run target will build and launch the game on the CLI, using the Ink rendering engine and demo world.

If you prefer to run a Docker image, the latest build is published as ssube/textual-engine:master-stretch, and can be run with:

> docker run --rm -it ssube/textual-engine:master-stretch \
  --config data/config.yml \
  --data file://data/demo.yml

Docs

More detailed docs are located in ./docs.

Available documentation includes:

License

This project uses the MIT license.