Skip to content

DungeonsOfDaggorath/DungeonsOfDaggorath.github.io

Repository files navigation

Dungeons Of Daggorath

Source Code / Development

The source code for Dungeons of Daggorath web port is broken into two repositories. First, this repository is for the main website that hosts the game. The second repository is the C++ code for Dungeons of Daggorath itself, modified for webassembly.

Website

The website is written using Jekyll and hosted using GitHub.

Deployments (Production + Branch Previews)

This repo uses GitHub Actions + GitHub Pages to publish:

  • Production: master deploys to the site root (/)
  • Previews: any non-master branch deploys to /preview/<branch-name>/

Previews are stored under the gh-pages branch and do not overwrite production content.

One-time setup: seed the gh-pages branch from current master

Because local bundle exec jekyll build may not match GitHub’s build environment, the repo includes a manual GitHub Actions workflow that seeds gh-pages directly in CI using the same toolchain.

  1. Push the workflows in this repo to your branch.
  2. In GitHub, go to ActionsSeed gh-pages from masterRun workflow.
  3. Leave deploy=true (default) so it seeds gh-pages and deploys it immediately.

After this, pushing master updates the root (while preserving preview/), and pushing feature branches updates only their preview subdirectory under /preview/<branch-name>/.

Local Installation

  1. Clone this repository
  2. Install Jekyll - including any dependencies
  3. Setup the C++ source code (see below)

Locally, you can test out the website using:

bundle exec jekyll serve

C++ Source Code

The source code is written in C++, using emscripten for the web port.

Local Installation

See the main repo at https://github.com/cognitivegears/DungeonsOfDaggorath for installation and development instructions

On the website, the C++ code is include in the "daggorath" submodule in the source code. A Makefile is also included in the website version to build a new version of Daggorath for the website. To run a build, use the following commands:

make clean
THREAD_POOL_SIZE=4 make wasm

The wasm target invokes emmake under the hood, so make sure the Emscripten SDK environment is activated (or set EMMAKE to the path of emmake) before running it. By default the build allocates four worker threads; override this by passing THREAD_POOL_SIZE=<n> to any of the make targets (wasm, site, serve, serve-local).

Because WebAssembly threads require SharedArrayBuffer support, you must serve the generated site with cross-origin isolation headers. Two convenience targets are provided:

make serve        # builds via Jekyll into _site/ and serves that tree with emrun
make serve-local  # serves a standalone index.local.html without running Jekyll

After either command finishes, open http://localhost:8080/index.html (or index.local.html) in a browser that supports SharedArrayBuffer (Chrome, Edge, or Firefox with dom.postMessage.sharedArrayBuffer.withCOOP_COEP enabled).

For more instructions on local installation, including installing dependencies, see the main repo.

How to Play

Dungeons of Daggorath is hosted at https://daggorath.online

Some of the following information has been extracted from https://archive.org/stream/Dungeons_of_Daggorath_1983_Tandy/Dungeons_of_Daggorath_1983_Tandy_djvu.txt

CommandModifiersAbbreviation
Example
Usage
MOVE[None]
BACK
LEFT
RIGHT
M
M B
M L
M R
Step one cell in direction
TURNLEFT
RIGHT
AROUND
T L
T R
T A
Turn in current cell
CLIMBUP
DOWN
C U
C D
Climb up a ladder. Climb down a ladder or a hole.
EXAMINE[None]EShow a list of items on the floor of the cell you occupy plus a list of everything you are carrying in your backpack.
LOOK[None]LLook at the Dungeon after an EXAMINE command.
GET[HAND] [ITEM]G R T
G L SW
Get an object from the floor with your left or right hand. Note: The object you type must be on the floor of the cell you occupy, and the hand you choose must be empty.
PULL[HAND] [ITEM]P R T
P L SW
Pull an object from your backpack. Note: The object you type must be in your backpack, and the hand you choose must be empty.
STOW[HAND]S R
S L
Stow the object in your hand into your backpack.
DROP[HAND]D L
D R
Drop the object in your hand to the floor.
ATTACK[HAND]A L
A R
Attack with the object in your hand.
USE[HAND]U L
U R
Use the object in your hand.
REVEAL[HAND]R L
R R
Attempt to reveal the type of object in your hand.
INCANT[MAGIC WORD]I STEELAttempt to conjure up the magic power of a RING by incanting its magical name. Note: When you INCANT, type only the single wotd you are incanting, such as INCANT STEEL.
ZSAVE[SAVE NAME]ZS SAVEONESaves your game.
ZLOAD[SAVE NAME]ZL SAVEONELoads your game.
RESTART[None]RESTARTRestarts from the beginning.

There are several types within each of these object classes. For example, a TORCH can be a PINE TORCH or a LUNAR TORCH. The chart below will clarify the various types of objects. The types of RINGs, however, will not be listed in the chart. You must discover them yourself.

ItemRevealed Items
TORCHPINE, LUNAR, SOLAR
SWORDWOODEN, IRON, ELVISH
SHIELDLEATHER, BRONZE, MITHRIL
FLASKHALE, ABYE, THEWS
SCROLLVISION, SEER
RINGNot Listed.

When you first enter the Dungeon, you will be given a backpack containing a PINE TORCH and a WOODEN SWORD.

A popular start is as follows:
M
M
M
M
P R T
U R
P L SW
T L

CHEATS EFFECT
SETCHEAT NONE Disable all active cheats.
SETCHEAT ITEMS
SETCHEAT INVULNERABLE
SETCHEAT CRTSCALE
SETCHEAT REVEAL
SETCHEAT RING
SETCHEAT TORCH

For game options press ESC and use arrow keys to navigate the menu. Left/Right will switch between menus.

About

Website for Dungeons of Daggorath

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors