tapestry

package module
v0.24.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2024 License: BSD-3-Clause Imports: 15 Imported by: 1

README

Tapestry

Tapestry is an experimental interactive fiction engine, with the goal of creating game stories for any game genre — independent of a game's graphics.

You can find the full documentation at tapestry.ionous.net 📚, and the Go language API on pkg.go.dev. The project and its source code are hosted on Sourcehut. A mirror lives on GitHub which can be used for forks and PRs.

Status

Tapestry is a work in progress.

You can Play a small example in your browser ( the "Cloak of Darkness", ported from Roger Firth's original ), and there's some preliminary integration with the Godot game engine.

I hope to continue expanding Tapestry's capabilities as my time allows.

License

Tapestry is open source, and all original source code is provided under a BSD-3 license.

Go and its libraries use their own BSD-style license. All existing third party Go language dependencies use their own MIT licenses. Tapestry uses SQLite for data storage, and SQLite is public domain. Tapestry's "Mosaic" editor and web console use Blockly and Vue.js which are licensed under the Apache 2.0 and MIT licenses respectively. Development of the editor and web console require Node.js and a variety of modules each of which use their own (open source) licenses. Godot is used for demonstrating 3D party engine integration. It uses an MIT license.

License

Code of Conduct

Black lives matter, and queer and trans lives matter. In that spirit, if you are interested in using Tapestry or contributing to the project, please refer to the code of conduct.

Contributor Covenant

Documentation

Overview

package tapestry is a reimplmentation of the sashimi interactive fiction engine with some lessons learned.

Index

Constants

This section is empty.

Variables

View Source
var AllSignatures = []map[uint64]typeinfo.Instance{
	call.Z_Types.Signatures,
	debug.Z_Types.Signatures,
	format.Z_Types.Signatures,

	game.Z_Types.Signatures,
	grammar.Z_Types.Signatures,

	list.Z_Types.Signatures,
	literal.Z_Types.Signatures,
	logic.Z_Types.Signatures,
	math.Z_Types.Signatures,
	object.Z_Types.Signatures,

	prim.Z_Types.Signatures,
	rel.Z_Types.Signatures,
	render.Z_Types.Signatures,

	text.Z_Types.Signatures,
}

all serialized runtime signatures

Functions

func Register added in v0.24.7

func Register(reg func(any))

gob like registration

Types

This section is empty.

Directories

Path Synopsis
Package affine - names for all of Tapestry's built-in data types: primitives, structured types, and arrays thereof.
Package affine - names for all of Tapestry's built-in data types: primitives, structured types, and arrays thereof.
blockly
bconst
common configuration and constants for tapestry's use of blockly
common configuration and constants for tapestry's use of blockly
block
package block transforms story files into blockly workspace files ( languageVersion: 0 ) see: https://developers.google.com/blockly/guides/configure/web/serialization
package block transforms story files into blockly workspace files ( languageVersion: 0 ) see: https://developers.google.com/blockly/guides/configure/web/serialization
box
Package box generates blockly toolbox(s) in JSON format.
Package box generates blockly toolbox(s) in JSON format.
shape
Package shape generates blockly custom blocks in its JSON format.
Package shape generates blockly custom blocks in its JSON format.
unblock
Package unblock decodes blockly style story files into tapestry commands.
Package unblock decodes blockly style story files into tapestry commands.
cmd
atlas/internal
Package main for atlas.
Package main for atlas.
chart
Package main for 'chart'.
Package main for 'chart'.
doc
serve
Runs external applications, and pipes http input to stdin; stdout to http output.
Runs external applications, and pipes http input to stdin; stdout to http output.
tap
The 'tap' tool manages Tapestry stories.
The 'tap' tool manages Tapestry stories.
tap/internal/base
Package base defines shared basic pieces of the go command, in particular logging and the Command structure.
Package base defines shared basic pieces of the go command, in particular logging and the Command structure.
tap/internal/cfg
Package cfg holds configuration shared by multiple parts of the go command.
Package cfg holds configuration shared by multiple parts of the go command.
tap/internal/cmdcheck
Runs tests on an existing story database.
Runs tests on an existing story database.
tap/internal/cmdweave
Builds a story database from story files.
Builds a story database from story files.
tap/internal/help
Package help implements the “go help” command.
Package help implements the “go help” command.
tap/internal/str
Package str provides string manipulation utilities.
Package str provides string manipulation utilities.
Package content - this go package exists so that tools can embed the standard lib.
Package content - this go package exists so that tools can embed the standard lib.
dl
Package dl groups together the various data language packages.
Package dl groups together the various data language packages.
call
Pattern calls, argument handling, and related helpers.
Pattern calls, argument handling, and related helpers.
cmd
debug
Scripting commands to debug and test stories.
Scripting commands to debug and test stories.
format
Text printing and output control.
Text printing and output control.
frame
Package shuttle turns json based requests into game play.
Package shuttle turns json based requests into game play.
game
System commands to manage a running game ( save, load, etc ).
System commands to manage a running game ( save, load, etc ).
grammar
Player input parsing.
Player input parsing.
jess
Game world modeling using English-like sentences.
Game world modeling using English-like sentences.
list
List queries, transformations, etc.
List queries, transformations, etc.
literal
Supply constant values to runtime evaluations.
Supply constant values to runtime evaluations.
logic
Boolean operations and loop handling.
Boolean operations and loop handling.
math
Common mathematical operations.
Common mathematical operations.
object
Operations on objects, variables, and kinds.
Operations on objects, variables, and kinds.
play
Low level communication between a game console and a running game.
Low level communication between a game console and a running game.
prim
Common type definitions.
Common type definitions.
rel
Interrogate and manipulate object relationships at runtime.
Interrogate and manipulate object relationships at runtime.
render
Text template rendering.
Text template rendering.
rtti
Slots used to produce and consume values.
Slots used to produce and consume values.
story
Game world modeling using Tapestry commands.
Game world modeling using Tapestry commands.
testdl
testdl
testdl
text
Text manipulation and transformation.
Text manipulation and transformation.
engines
mosaic Module
wasm Module
Package express converts a postfix template expression into tapestry commands.
Package express converts a postfix template expression into tapestry commands.
lang
doc
Package doc builds web friendly documentation of the idl.
Package doc builds web friendly documentation of the idl.
inspect
Package inspect provides depth first iteration a tapestry command or slice of commands.
Package inspect provides depth first iteration a tapestry command or slice of commands.
shortcut
Package shortcut transforms strings into dotted paths.
Package shortcut transforms strings into dotted paths.
typeinfo
Package typeinfo describes tapestry autogenerated structures.
Package typeinfo describes tapestry autogenerated structures.
Package parser
Package parser
qna
Package qna provides an implementation of rt.Runtime.
Package qna provides an implementation of rt.Runtime.
qdb
Package qdb asks specific questions of the play.db for the package qna runtime.
Package qdb asks specific questions of the play.db for the package qna runtime.
query
Package decode unpacks stored programs and values from byte slices
Package decode unpacks stored programs and values from byte slices
raw
a non-sql data format for use by the qna runtime
a non-sql data format for use by the qna runtime
rt
Package rt defines the runtime interfaces used to interact with the game world.
Package rt defines the runtime interfaces used to interact with the game world.
dot
kindsOf
package kindsOf defines a handful of built-in base types for tapestry kinds.
package kindsOf defines a handful of built-in base types for tapestry kinds.
meta
Package meta provides string constants for rt.Runtime Get/SetField.
Package meta provides string constants for rt.Runtime Get/SetField.
pattern
Package pattern provides tools for creating and executing functions with guards.
Package pattern provides tools for creating and executing functions with guards.
print
Package print provides low level routines for styling output.
Package print provides low level routines for styling output.
support
dump
for wasm: dump a scene's worth of data to json.
for wasm: dump a scene's worth of data to json.
files
Package files: a grab bag of functions for reading and writing files.
Package files: a grab bag of functions for reading and writing files.
flex
Package flex reads tell files that are sectioned into alternating blocks of structured and plain text sections.
Package flex reads tell files that are sectioned into alternating blocks of structured and plain text sections.
inflect
Package inflect provides (some) english language string transformation utilities.
Package inflect provides (some) english language string transformation utilities.
jessdb
Package jessdb provides an implementation of jess.Query for use with the tapestry db.
Package jessdb provides an implementation of jess.Query for use with the tapestry db.
jesstest
Package jesstest exercises implementations of jess.Query to ensure they produce good results.
Package jesstest exercises implementations of jess.Query to ensure they produce good results.
player
Package player provides a console like game.
Package player provides a console like game.
tag
Package tables - utilities for working with the Tapestry sqlite tables.
Package tables - utilities for working with the Tapestry sqlite tables.
idl
Package template converts strings to postfix expressions.
Package template converts strings to postfix expressions.
postfix
Package postfix translates streams of infix functions into postfix expressions.
Package postfix translates streams of infix functions into postfix expressions.
eph
pacakge eph provides helpers for testing
pacakge eph provides helpers for testing
mdl
Package mdl provides an api for building the database used by the tapestry runtime.
Package mdl provides an api for building the database used by the tapestry runtime.
web
Package web provides utilities for working with go's net/http package.
Package web provides utilities for working with go's net/http package.
js
Package js provides some simple json utilities: MapSlice, for preserving map key order when unmarshaling, and Builder for writing json-like data without marshaling.
Package js provides some simple json utilities: MapSlice, for preserving map key order when unmarshaling, and Builder for writing json-like data without marshaling.
markup
Package markup converts a custom html-like markup into markdown-like text.
Package markup converts a custom html-like markup into markdown-like text.
useraction
Package useraction: handle long running actions initiated from the browser.
Package useraction: handle long running actions initiated from the browser.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL