Skip to content
The main TAME Interactive Fiction implementation (Java and JS) plus compiler/console client.
Java JavaScript Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
shell
src
templates/standard
.gitignore
LICENSE.txt
README.md
build-dependencies.xml
build-import.xml
build-readme.txt
build-tame-one-min-include.def
build.xml

README.md

TAME (Text Adventure Module Engine)

Copyright (c) 2015-2019 Matt Tropiano. All rights reserved.

Required Libraries

NONE

Required Java Modules

java.base

Optional JavaScript/NPM Packages

UglifyJS (via uglify-es 3.3.9+)
https://www.npmjs.com/package/uglify-es
For TAME JS minification on build.

Introduction

This library reads, compiles, and executes TAME modules.

WARNING: TAME is in an incomplete state. The commands in the language, its structure, and their behavior may change before version 1.0, but it is completely functional and consistent in both the Java and JS implementations.

Until otherwise specified, any changes to the TAME commands set may invalidate TAME modules that are compiled to the serialized format or JS modules (but not embedded ones - those are safe).

Known Issues

  • Serialization of game state that has circular references in its structure is not handled as gracefully as it should be. this is not expected to come up very often in user's modules.
  • The JS implementation of TAME limits integers to roughly 53 bits, as it uses Number as its primary internal numeric format.

Library

Contained in this release is a series of libraries that allow reading, compiling, writing, and executing TAME module files/archives, found in the com.tameif.tame packages.

Branches

The master branch is assumed to be stable and contains consistent implementations between Java and JS. All other branches should be considered "unstable."

Compiling with Ant

To compile this project, type:

ant compile

Shell scripts (CMD/Bash) will also be created in the project directory that will run the main entry points of the compiled code, depending on your OS.

To make a JAR of just TAME's classes (no bundled dependencies), and the stand-alones (both main programs with entry points and necessary dependencies) plus scripts to run them, type:

ant jar

Jars will be placed in the build/jar directory by default.

The build.properties file is ignored by Git - you may make changes to this to suit your build environment.

Files and Directories

Used In Build
	src/main/java
	src/main/resources
Used for Testing
	src/test/java
	src/test/nodejs
	src/test/scripts
Ignored

The following files/directories are generated by build and ignored by .gitignore:

	bin
	build
	deps
	dist
	*.cmd
	*.sh
	*.log
Other Files

There is a Notepad++ Syntax Highlighter config in docs/UDL.xml.

The files in the src/test/scripts/tame directory are sample TAMEScript programs that are used for testing. All of them should be working, but there may be a few that don't during major changes.

Licensing

This program and the accompanying materials are made available under the terms of the GNU Lesser Public License v2.1 which accompanies this distribution, and is available at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html

A copy of the LGPL should have been included in this release (LICENSE.txt). If it was not, please contact us for a copy, or to notify us of a distribution that has not included it.

This contains code copied from Black Rook Base, under the terms of the MIT License (docs/blackrook-base-license.txt).

You can’t perform that action at this time.