🎮 Liquid Acid Drop

A Vulkan-powered color-matching puzzle game inspired by the Atari 2600 classic Acid Drop, built with the MX2 Engine.

Vulkan C++20 SDL2 SPIR-V Shaders Cross-Platform GPLv3
Liquid Acid Drop — Gameplay showing the puzzle grid with colorful falling blocks and psychedelic shader backgrounds
Gameplay — Color-matching on an 8×18 grid with shader-driven backgrounds

About the Game

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.

How to Play

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.

Controls

KeyAction
Move block left / right
Soft drop (move block down faster)
Shift colors within the block (forward)
ZShift colors within the block (reverse)
SpaceRotate block (vertical ↔ horizontal)
PPause / Resume
EscReturn to main menu / Quit
EnterConfirm menu selection

Scoring

EventPoints
Each block cleared+6
4-block horizontal/vertical match+25 bonus
5+ block horizontal/vertical match+50 bonus
4-block diagonal match+35 bonus
5+ block diagonal match+75 bonus

Features

⚙️

Vulkan Rendering Pipeline

All graphics rendered via Vulkan, including sprite batching, text rendering, and custom SPIR-V fragment shaders.

Shader-Driven Visuals

Backgrounds use kaleidoscope, bubble, and time-warp fragment shaders for psychedelic animated effects.

🔁

Block Rotation & Color Shifting

Rotate pieces between vertical and horizontal orientation and cycle the color order within a block.

Cascading Chain Reactions

Gravity pulls blocks down after clears, triggering chain reactions for bonus points.

🏆

Persistent High Scores

Top 10 scores saved to disk and restored between sessions with name entry for qualifying scores.

💻

Cross-Platform

Builds on Linux, macOS (via MoltenVK), and Windows. Resizable window with dynamic font scaling.

Language & Technology

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).

C++20
Primary language
Vulkan API
GPU rendering pipeline
libmx2 / MX2 Engine
Custom 2D game framework
SDL2 + SDL2_ttf
Windowing, input, fonts
GLSL / SPIR-V
Fragment shader effects
GLM
Mathematics library
Volk
Vulkan meta-loader
CMake
Build system

System Requirements

OSLinux, macOS 10.15+ (MoltenVK), or Windows 10+
GPUVulkan 1.0 capable graphics card
CompilerGCC 10+, Clang 10+, or MSVC 2019+
DependenciesVulkan SDK, SDL2, SDL2_ttf, GLM, libpng, zlib
Build SystemCMake 3.10+

Download & Source Code

Liquid Acid Drop is free and open-source under the GNU GPLv3 license.