Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Ballance (Ballanced)
PORTSNATIVE

Ballance (Ballanced)

NATIVE PORTACTION / ADVENTUREWINDOWSBETA

Ballance (Ballanced)

Ballance

TechnologyNative C/C++ port (engine reimplementation)

Available forWindows

View official project

About the project

Ballance es un videojuego de rompecabezas por niveles, desarrollado por Cyparade en abril de 2004 para PC.

Official project information

Author's original READMEOpen on GitHub ↗

Ballanced

Source-level reimplementation of the Ballance game runtime. Rebuilds the player, engine libraries, building blocks, and plugins from source into a Ballance-compatible directory layout.

Original game assets are not included - you need a copy of the original game to run it.

This document describes the cross-platform SDL3 runtime on the default sdl branch.

For players

Download the latest pre-built release:

https://github.com/doyaGu/Ballanced/releases

Installation

  1. Get a legal copy of the original Ballance game.
  2. Extract the release package into the game root, alongside the original asset directories. The archive already contains Bin/, RenderEngines/, Managers/, Plugins/, and BuildingBlocks/.
  3. Run Bin\Player.exe on Windows or Bin/Player on Linux and macOS.

Windows does not require compatibility mode or registry edits.

Flat layout (alternative)

Put Player (Player.exe on Windows), base.cmo, Database.tdb, the asset folders, and all runtime modules in the same directory. When base.cmo is next to the executable, the player treats that directory as its root.

For developers

Requirements

PlatformToolchainCMake
Windows (x86 / x64 / ARM64)Visual Studio 2022 (MSVC)3.25+
Linux (x64 / ARM64)GCC or Clang + Ninja3.25+
macOS (x64 / ARM64)Apple Clang + Ninja3.25+

SDL3 must be on the CMake package path on all platforms (find_package(SDL3 CONFIG REQUIRED)). The macOS stage layout supports SDL3 shared-library packages, including Homebrew. Staging rewrites the copied SDL3 library and its consumers to use @rpath and applies ad hoc signatures. SDL3 framework packages are not part of this layout.

Quick start (Windows x86)

The repository has nested Git submodules. Clone with --recurse-submodules; after pulling, run git submodule update --init --recursive. See BUILD.md for details.

git clone --recurse-submodules https://github.com/doyaGu/Ballanced.git
cd Ballanced
cmake --preset windows-x86-runtime
cmake --build --preset windows-x86-runtime-stage-release
ctest --preset windows-x86-runtime-stage-release

Output goes to:

build/windows-x86-runtime/stage/Bin/Player.exe

See BUILD.md for the full preset matrix, static builds, RenderEngine standalone builds, and troubleshooting.

Asset staging (optional)

Point CMake at an existing Ballance installation to copy assets into the stage:

cmake --preset windows-x86-runtime -DBALLANCE_ASSETS_ROOT=C:/path/to/your/Ballance
cmake --build --preset windows-x86-runtime-stage-release

For an explicit local-development shortcut, place the assets under assets/ and configure with -DBALLANCE_AUTO_DETECT_ASSETS=ON. Canonical presets do not read this ignored directory by default.

Source of truth and versioning

  • CMakePresets.json defines the supported full-runtime platform, architecture, and linkage matrix.
  • .github/workflows/build.yml defines the configurations continuously built by CI.
  • CI runs the complete component test preset on Linux x64 in addition to the platform/linkage build matrix.
  • BUILD.md documents the supported superproject workflow. Component READMEs describe standalone workflows only.
  • Ballanced and its Git submodules are independently versioned. The root project version identifies the assembled runtime; Player and the engine/module projects keep their own versions. A component version should not be inferred from the root version or release tag.

Repository structure

Components under Source/ are Git submodules:

SubmoduleRepositoryDescription
Source/PlayerBallancePlayerGame player executable
Source/CK2CK2Virtools behavioral engine
Source/VxMathVxMathMath and platform utilities
Source/RenderEngineCKRenderEngineRender engine (SDL GPU)
Source/BuildingBlocksCKBuildingBlocksVirtools building block modules
Source/PluginsCKPluginsFile format plugins (image, audio, CMO)
Source/Managers/ParameterOperationsCKParameterOperationsParameter operations manager
Source/Managers/SdlInputManagerSdlInputManagerSDL3 input manager
Source/Managers/SdlSoundManagerSdlSoundManagerSDL3 sound manager

Contributing

Open an issue or pull request. Decompilation, bug fixes, and compatibility work are all useful.

Acknowledgments

  • The original Ballance developers for the game.
  • The open-source projects this builds on.
  • Everyone who has contributed code, tests, or bug reports.
Read official guide
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Action / Adventure
Status
beta
Original platform
—
Technology
Native C/C++ port (engine reimplementation)
Version
—
Updated
May 13, 2026

Target platforms 1

Windows
View on GitHub
Advertisement