# README
golang-zmachine
This is a Z-Machine interpreter implemented in Go. It was built as a learning exercise to both gain a better handle on Go itself, as well as to gain insight into the structure and operation of a text adventure game engine. Feature-wise it is pretty barebones comared to other Z-Machine implementations, but it gets the job done.
Built With
Usage
> zmachine <story-path>
Arguments | Description |
---|---|
<story-path> | Load and play the specified story file |
Execute zmachine help
for more detailed information.
Development
Build
> go build -o zmachine
or on Windows
> go build -o zmachine.exe
Debugging
Using the Delve debugger with CLI applications is a little tricky. See the Delve documentation for recommended procedures on how to do this. A VSCode launch.json has been provided that runs and debugs the build using a hardcoded story file path.
Release
While zmachine
is a CLI application and is intended to be executed by directly, a containerized installation is also provided. This container utilizes a dedicated build stage along with the scratch Docker image to ensure the final image contains only the necessary resources and nothing else.
Build
> docker build . -t zmachine
> docker run zmachine <story-path>
License
Distributed under the MIT License. See LICENSE.md for more information.