- Vcpkg / Conan Integration: The
lib/folder contains dozens of deeply vendored submodules (Boost, SDL, Poco, libpng, etc.). Transitioning to a package manager likevcpkgorConanwould simplify the CMake script immensely and speed up native build times. - CMake Modernization: Upgrade all
CMakeLists.txtto strictly usetarget_link_libraries(Modern CMake) rather than legacyinclude_directoriesand global variables to prevent dependency bleeding.
- EnTT / ECS: The current hierarchy (
EnginePart,Entity,Map) is highly object-oriented. Migrating game objects to an Entity-Component-System (likeEnTT) would vastly improve cache locality and iteration speed, especially for complex RPG maps. - Vulkan / SDL3: The rendering is currently bound to OpenGL (Core Profile). Preparing the abstraction layer to target Vulkan via SDL3's GPU API would future-proof the engine.
- Sol3 / Sol2: The engine uses manual Lua C-API stack manipulation. Integrating
Sol2orSol3would provide type-safe, elegant C++17 bindings for the Lua scripts. - Hot Reloading: Implement a directory watcher (
efswor similar) to hot-reload Lua puzzle scripts and shaders while the engine is running.
- miniaudio: Replace
SDL_mixeror heavily patch it withminiaudio.h.miniaudiois a single-header library that provides incredibly low-latency mixing, which is critical for frame-perfect puzzle game sound effects.
- Unified Build: If
okgameachieves a clean SDL3/Vulkan build, an Emscripten target could be revived. This would allow the absolute native 1:1 C++ code to run in the browser, potentially deprecatingbobsgamewebif it runs efficiently enough.