A game client for the CrystalOTC server (protocol 15.30). The src base was
taken from Kokekanon's fork of
OTClient - Redemption (OTCR) and extended
with a set of in-house features:
- Custom Vulkan renderer - atlas-batched sprite pipeline: one 2D-array atlas, content-hash deduplication, chunked storage for oversized textures, and a MAILBOX-first presentation mode (uncapped FPS without tearing). The client can start in pure-Vulkan mode without ever creating an OpenGL context.
- Memory-optimized asset lifecycle - lazy module UI construction, batched GL
texture deletion, pixel-copy garbage collection with disk reload on first draw,
heap trimming after the appearances parse, and live memory diagnostics
(
[mem]/[boot]/[gc]log lines). - Protocol 15.30 support with protobuf appearances and per-version asset
directories (
data/things/1530/).
The client assets (sprites/appearances) are not part of this repository -
data/things/ is gitignored because of its size. Download the content here:
Extract it into data/things/ so you end up with:
data/things/1530/- protocol 15.30 assets (protobuf appearances,catalog-content.json, sprite sheets) plus thesatellite/tiles used by the Cyclopedia Map in Surface View.data/things/1530_mapview/- a second tile set for the Cyclopedia Map's "Map View" toggle (classic minimap palette with building outlines, generated bytools/build_mapview_tiles.py). Both folders are required.
Requirements: Visual Studio 2022 (v143 toolset), vcpkg
with VCPKG_ROOT set. Dependencies are restored automatically from vcpkg.json.
msbuild vc18\otclient.vcxproj /p:Configuration=DirectX /p:Platform=x64
The executable is produced as CrystalOTC.exe in the repository root.
Select the renderer with renderBackend = vulkan or gl in config.ini
(also available in-game under Options -> Graphics).
The upstream CMake build is preserved - see CMakeLists.txt, Dockerfile
and the scripts in the repository root. The Vulkan renderer is currently
Windows-only; other platforms use the OpenGL path.
CrystalOTC is a derivative of OTClient - Redemption
by mehah and contributors (the src base came from
Kokekanon's OTCR fork), which itself descends from
OTClient by edubart and contributors.
Licensed under the MIT License - see LICENSE.