Visit the website or play one of the games:
_ _ _
| |_ _____ _| |_ __ _ _ _ ___ ___| |_
| __/ _ \ \/ / __| / _` | | | |/ _ \/ __| __|
| || __/> <| |_ | (_| | |_| | __/\__ \ |_
\__\___/_/\_\\__| \__, |\__,_|\___||___/\__|
|_|
Unlock your imagination.
Text Quest is a game engine for running text-based adventure games, using a low/no code approach to game design.
The project was started to...
- Inspire creative story writing (without images, CGI or video)
- Create a low/no code solution for building games (using YAML)
- Bootstrap something as quickly as possible to test the above (and not get bogged down with tooling, libraries and frameworks)
- Provide a little escapism during these unusual times
Games are defined using YAML. A sample game can be seen in ./game.yml).
Here's an overview of the core concepts within a games:
- Blocks: A block represents a single location within the game. A block can have:
exits
: Connections to other blocksstates
: Variations for ablock
state (containingexits
,actions
,items
)items
: Items which are 'visible' from within ablock
stateactions
: Actions which can be performed by theplayer
within a block state, and actions which can be triggered automatically based on what aplayer
is carrying
- Game: The name, version and author for the game
- Player: The name, current
block
location,powers
anditems
they are carrying - Powers: Descriptions for
powers
aplayer
can unlock (not listed here, as they are part of the game) - Items: Descriptions for items which the player can carry, or can be found in a
block
This project currently uses:
- JavaScript as the core programming language for the game engine
- Node.js v16
- Parcel web application bundler
- text-terminal for the terminal interface
- YAML to store
- ascii generator for the logo
- github-fork-ribbon-css
npm i
: To install the dependenciesnpm start --game=sleepy
and open localhost:1234 in a browser to view the live reload development server- Changes in the
./src
directories will cause a live reload and compiled files to./dist-$game
- Press
CTRL c
to stop the development server npm run build --game=sleepy
: Builds to./dist-$game
npm run build:serve --game=sleepy
: Server builds from./dist-$game
- Introduce
characters
as a concept (and associatedpowers
) - Cross over with voice activation project
- Upload/point to yaml URL
- Auto conversion yaml > JSON
- Game yaml validator
- Create a supporting website with docs and links to games
- Online game editor (visual, or text based)
- Des Holmes: Technical Leadership & Product Development
- Blog
- Text Quest: A Low/No Code Approach to Game Design
- Skills & knowledge: Technical Leadership, Technical Direction, Technical Delivery, Product Development, SaaS, DevOps, Azure Public Cloud
- Job Titles: CTO, VP Engineering, Head of DevOps, Technical Product Owner
- Example Projects: Development standards, DevOps, CI/CD, React, docker, Cost Management