A Vulkan-powered color-matching puzzle game inspired by the Atari 2600 classic Acid Drop, built with the MX2 Engine.
Liquid Acid Drop is a color-matching puzzle game where players guide falling tri-colored blocks into an 8×18 grid. Match 3 or more blocks of the same color horizontally, vertically, or diagonally to clear them and score points. The game features GPU-accelerated fragment shader visual effects, persistent high scores, and progressively increasing difficulty across three starting levels.
The game draws its inspiration from two classic titles: Acid Drop, an obscure but memorable Atari 2600 puzzle game released in 1992, and Sega's Columns (1990). Liquid Acid Drop reimagines the core mechanics of these retro gems with modern Vulkan-powered rendering, psychedelic real-time shader effects, and a vibrant color palette of 9 distinct block types.
Built entirely as a showcase for the libmx2 / MX2 Engine—a custom Vulkan-based 2D game framework—Liquid Acid Drop demonstrates the engine's sprite batching, text rendering, fragment shader pipeline, and swap chain management capabilities in a fully playable, complete game.
A piece made of 3 colored segments falls from the top of the grid. Move it left and right, rotate between vertical and horizontal orientation, and shift the color order within the piece to line up matches. When 3 or more same-colored blocks align in any direction—horizontal, vertical, or diagonal—they flash and are cleared. Remaining blocks then fall due to gravity, potentially triggering chain reactions for bonus points. Every 10 line clears, the drop speed increases. The game ends when blocks stack to the top.
All graphics rendered via Vulkan, including sprite batching, text rendering, and custom SPIR-V fragment shaders.
Backgrounds use kaleidoscope, bubble, and time-warp fragment shaders for psychedelic animated effects.
Rotate pieces between vertical and horizontal orientation and cycle the color order within a block.
Gravity pulls blocks down after clears, triggering chain reactions for bonus points.
Top 10 scores saved to disk and restored between sessions with name entry for qualifying scores.
Builds on Linux, macOS (via MoltenVK), and Windows. Resizable window with dynamic font scaling.
Liquid Acid Drop is written in C++20 and targets the Vulkan graphics API for all rendering. The game is built on top of the libmx2 / MX2 Engine, a custom framework that provides Vulkan swap chain management, a 2D sprite system with batched draw calls, and text rendering via SDL_ttf rasterized to Vulkan textures.
Visual effects are driven by GLSL fragment shaders compiled to SPIR-V bytecode. Each background screen (intro, menu, gameplay) uses a different real-time shader—kaleidoscope, bubble, and time-warp—with per-frame uniform updates for animation. The Vulkan backend is loaded dynamically at runtime using Volk (a Vulkan meta-loader).
| OS | Linux, macOS 10.15+ (MoltenVK), or Windows 10+ |
| GPU | Vulkan 1.0 capable graphics card |
| Compiler | GCC 10+, Clang 10+, or MSVC 2019+ |
| Dependencies | Vulkan SDK, SDL2, SDL2_ttf, GLM, libpng, zlib |
| Build System | CMake 3.10+ |
Liquid Acid Drop is free and open-source under the GNU GPLv3 license.