A rogue-like RPG with turn based movement and combat. DISCLAIMER: THIS REPOSITORY IS DEPRECATED. The up to new version using raylib can be found here: https://codeberg.org/artchad/rl-dmomd
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
artchad 801a244240 Merge remote-tracking branch 'origin/master' 2 months ago
assets finished game; nice sprites added; 3 years ago
build fixed treasure bug; fixed readme; 11 months ago
screenshots made images smalelr; 11 months ago
src fixed treasure bug; fixed readme; 11 months ago
third-party added mfiano.misc.rng submodule 10 months ago
.gitignore added music to battle mode. And escape switches to title mode. 4 years ago
.gitmodules added mfiano.misc.rng submodule 10 months ago
LICENSE added link to binaries in README.org; 3 years ago
README.org Merge remote-tracking branch 'origin/master' 2 months ago
design.org Thinking about drawing. 4 years ago
dmomd-logo-64x64.png added mfiano.misc.rng submodule 10 months ago
dmomd.asd added third-party dir for mfianos dependencies; 11 months ago
notes.org Added credits animation; Fixed a few battle-mode issues; 3 years ago
todo.org bug notice; 11 months ago

README.org

THIS REPOSITORY IS DEPRECATED

the new updated version using reaylib can be found here https://codeberg.org/artchad/rl-dmomd

DMOMD - A rogue-like RPG with turn based movement and combat.

/artchad/dmomd/src/branch/master/screenshots/screen-001-480x270.jpg /artchad/dmomd/src/branch/master/screenshots/screen-003-480x270.jpg /artchad/dmomd/src/branch/master/screenshots/screen-005-480x270.jpg /artchad/dmomd/src/branch/master/screenshots/screen-007-480x270.jpg

Binaries

See the build directory at the root of this repository.

The binary is compiled for GNU+Linux. (linked against glibc)

Disclaimer: The binary might not exit properly on some systems. But the game itself should work fine anyway.

How to play without binary:

NOTE:

Every line starting with a $ means you should type that into your shell.

Every line starting with a * means you should type that into your Lisp REPL (Read Eval Print Loop).

Make sure you have a Common Lisp implementation installed.

  $ apt install sbcl

Make sure you have Quicklisp installed and added it to your .sbclrc file.

 $ curl -O https://beta.quicklisp.org/quicklisp.lisp
 $ sbcl --load quicklisp.lisp
 * (quicklisp-quickstart:install)
 * (ql:add-to-init-file)
 * (quit)

(OPTIONAL: Verify quicklisp.lisp with GPG)

 $ curl -O https://beta.quicklisp.org/quicklisp.lisp.asc
 $ gpg --verify quicklisp.lisp.asc quicklisp.lisp

Clone this repository into the newly created ~/quicklisp/local-projects/ directory.

 $ cd ~/quicklisp/local-projects/
 $ git clone --recurse-submodules https://codeberg.org/artchad/dmomd.git

Install trivial-gamekit via quicklisp

 * (ql-dist:install-dist "http://bodge.borodust.org/dist/org.borodust.bodge.txt")
 * (ql:quickload :trivial-gamekit)

Load DMOMD via quicklisp inside your Lisp REPL

 * (ql:quickload :dmomd)

Start the game

 * (dmomd:start)

Compiling project into a binary

We use the function described here: https://borodust.org/projects/trivial-gamekit/manual/#gamekit-deliver

Example call:

 * (ql:quickload :trivial-gamekit/distribution)
 * (gamekit.distribution:deliver :example-asdf-system 'example-package::example
                               :build-directory "/tmp/example-game/"
                               :zip "/usr/bin/zip"
                               :lisp "/usr/bin/sbcl")

How to compile this specific project:

First make sure you have zip installed, in addition to sbcl.

Make sure your sbcl version is 2.0.0 or later.

 $ sbcl --version
 $ apt install zip

Start your Lisp repl (sbcl in this example):

 $ sbcl

Load the appropriate systems and start the compilation process.

 * (declaim (optimize (debug 0) (speed 3) (safety 1)))
 * (ql:quickload :dmomd)
 * (ql:quickload :trivial-gamekit/distribution)
 * (trivial-gamekit.distribution:deliver 'dmomd
                                         'dmomd::tgk-game
                                         :build-directory "../build")

The default output destination for this project is a "build" directory inside src. It will be created automatically. That's because the ASDF-system-definition inside dmomd.asd uses :pathname "src/" as an argument to asdf:defsystem.

We want the build directory to be created at this projects root, so we use :build-directory "../build" inside the call to trivial-gamekit.distribution:deliver.

You can also specify an absolute path like this :build-directory "/home/<username>/build". That would output the binary inside a directory called build inside your home directory. (Note that shell variables are not substituted inside the string, so :build-directory "$HOME/build" would actually output the compiled binary inside the directory /home/<username>/quicklisp/local-projects/dmomd/src/$HOME/build/. Provided that you cloned this repository into /home/<username>/quicklisp/local-projects as described in the "How to play without binary:" section above.)

Licenses

  • All the Code is licensed under the GNU GPL Version 3.
  • All the visual assets are licensed under the CC-SA.
  • All the audio assets are in the public domain unless mentioned otherwise in the credits.