1
0
Fork
You've already forked dmd
0
No description
  • C++ 95.3%
  • Shell 1.7%
  • CMake 1.6%
  • C 1.4%
Find a file
2026年05月21日 20:03:45 +02:00
.github/workflows linux-release.yml: Change order of workflow steps to avoid clogging the CI 2026年05月20日 12:36:13 +02:00
assets Add music and sound effects 2026年05月20日 14:03:22 +02:00
libs Create DMD game 2026年05月20日 12:02:45 +02:00
.gitignore Create DMD game 2026年05月20日 12:02:45 +02:00
.gitmodules Create DMD game 2026年05月20日 12:02:45 +02:00
audio_manager.cpp Improve music state handling 2026年05月21日 20:03:45 +02:00
audio_manager.h Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
build-linux.sh Create DMD game 2026年05月20日 12:02:45 +02:00
CMakeLists.txt Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
constants.h Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
dmd.cpp Improve music state handling 2026年05月21日 20:03:45 +02:00
dmd.h Add buffered repeat input handling for movement and softdrop 2026年05月21日 19:43:51 +02:00
game_board.cpp Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
game_board.h Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
game_renderer.cpp Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
game_renderer.h Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
LICENSE Add LICENSE file 2026年05月20日 17:06:37 +02:00
main.cpp Add music and sound effects 2026年05月20日 14:03:22 +02:00
palette.cpp Create DMD game 2026年05月20日 12:02:45 +02:00
palette.h Create DMD game 2026年05月20日 12:02:45 +02:00
pill.cpp Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
pill.h Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00
README.md Add music and sound effects 2026年05月20日 14:03:22 +02:00
types.h Modularize DMD game codebase 2026年05月21日 18:22:08 +02:00

DMD


Prerequisites

  • C++ compiler: (GCC, Clang, etc.)
  • CMake: Download here
  • Make
  • Development packages:
    • libXcursor-devel
    • libXinerama-devel
    • (On Ubuntu/Debian, use libxcursor-dev and libxinerama-dev)

Example (Fedora/RHEL)

sudo apt-get install cmake make g++ libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev libasound2-dev

Example (Ubuntu/Debian)

sudo apt-get install cmake make g++ libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev libasound2-dev

Clone the Repository

git clone https://github.com/dlbuchholz/dmd.git
cd dmd

Initialize Submodules

Run:

git submodule sync
git submodule update --init --recursive

Build and Run

cmake -S . -B build
cmake --build build
./build/dmd

as a single one-liner:

cmake -S . -B build && cmake --build build && ./build/dmd

Linux Packaging Script

A script is included to build the application for Linux.

Make the Script Executable

chmod +x build-linux.sh

Run the Script

./build-linux.sh

What the Script Does

The script performs the following steps automatically:

  1. Removes old build artifacts
  2. Configures the project using CMake in Release mode
  3. Builds the dmd executable
  4. Installs the binary into a temporary dist/ directory
  5. Creates a compressed tar archive:
dmd-linux.tar.gz

Extracting the Package

After building, extract the archive with:

tar -xzf dmd-linux.tar.gz

Run the executable:

./dmd

Music and Soundtrack Credits

This game uses music and audio assets from the following creators and sources.

Music:

Sound effets:

  • SoundPack01 by WobbleBoxx Workshop

Happy hacking!