Nono3D is a 3D logic puzzle game based on the japanese nonogram puzzles. Starting with a grid of boxes, you have to find out which boxes to destroy in order to reveal the object hidden inside.
If you like Sudoku or similar puzzle games where you can test your abilities in logical thinking you will love Nono3D.
The game currently includes 70+ levels, which guarantees hours of fun!
The game was developed by Dirk Wilden and Chis Scholtes as a hobby project.
Download and install a suitable release from: https://github.com/d-rk/nono3d/releases
- Docker and Docker Compose
Use the unified build script to compile for any platform:
# Build for Linux
./build.sh linux
# Build for Android
./build.sh android
# Build for Windows (cross-compiled)
./build.sh windows
# Build all platforms
./build.sh all
# Force rebuild without cache
./build.sh all --no-cacheAll build artifacts are placed in the ./dist/ directory.
The Linux build produces a portable tarball containing the game and all resources.
./build.sh linux
# Output: dist/Nono3D_<version>_linux_amd64.tar.gzThe Android build produces a signed APK. For release builds, set the signing credentials via environment variables:
export ANDROID_KEYSTORE_BASE64=$(base64 -w0 path/to/keystore.jks)
export ANDROID_KEYSTORE_PASSWORD=your_password
export ANDROID_KEY_ALIAS=your_key_alias
export ANDROID_KEY_PASSWORD=your_key_password
./build.sh android
# Output: dist/Nono3D_<version>.apkThe Windows build uses mingw-w64 to cross-compile from Linux, producing a portable zip file.
./build.sh windows
# Output: dist/Nono3D_<version>_windows_amd64.zip# Install dependencies (Ubuntu/Debian)
sudo apt-get install cmake g++ libgl1-mesa-dev libglew-dev \
libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libdevil-dev libcurlpp-dev
mkdir build && cd build
cmake -DNONO_BUILD_TYPE=release ..
make -j$(nproc)Install tools via chocolatey:
choco install mingw -y
choco install cmake.install --installargs '"ADD_CMAKE_TO_PATH=User"' -y
git clone https://github.com/Microsoft/vcpkg.git D:\vcpkg
D:\vcpkg\bootstrap-vcpkg.batInstall dependencies via vcpkg:
vcpkg.exe install sdl2 sdl2-image sdl2-mixer curlpp --triplet=x64-mingw-dynamic --host-triplet=x64-mingw-dynamic
vcpkg.exe install devil[core,libpng] --triplet=x64-mingw-dynamic --host-triplet=x64-mingw-dynamic --headBuild:
mkdir build
cd build
cmake.exe -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-mingw-dynamic -G "MinGW Makefiles" ..
mingw32-makeVERSION=2.0.0
# Update the version in CMakeLists.txt to match the tag
sed -i "s/project(Nono3D VERSION [0-9.]\+)/project(Nono3D VERSION $VERSION)/" CMakeLists.txt
git add CMakeLists.txt
git commit -m "Update version to $VERSION"
export ANDROID_KEYSTORE_BASE64=xxx
export ANDROID_KEYSTORE_PASSWORD=xxx
export ANDROID_KEY_ALIAS=xxx
export ANDROID_KEY_PASSWORD=xxx
./build.sh all --clean
#workarounds
mv dist/Nono3D_dev.apk dist/nono3d-$VERSION.apk
mv dist/nono3d_${VERSION}_amd64.deb dist/nono3d-${VERSION}_amd64.deb
git tag v$VERSION
git push origin main
git push --tags
gh release create v$VERSION ./dist/nono3d-*.{exe,gz,deb,rpm,apk}




