OpenMidgard is an open source recreation of the Ragnarok Online client.
The current direction of the project is intentionally biased toward the pre-Renewal 2008-era client experience: classic presentation, classic game flow, and packet behavior aligned to that period rather than later Renewal-era client behavior.
This repository is focused on rebuilding the client as source code, modernizing the renderer and platform layer where needed, and keeping the gameplay/client feel anchored to the classic 2008 style.
- Open source Ragnarok Online client recreation in active development.
- Current work includes the world renderer, UI systems, networking, effects, and modern rendering backends.
- The project currently prefers the 2008 pre-Renewal client style and behavior.
The current packet target is:
packet_ver 232008-09-10aSakexe
More specifically, this is the intended target for client-originating map-server packets.
Current progress showcase:
src/— client source codecmake/— CMake helpers and deployment scriptsdocs/— project notes and focused implementation docsthird_party/— third-party notices and bundled support files
At a minimum you will need:
- CMake 3.20 or newer
- A C++17 compiler
- Git
- A legally obtained Ragnarok Online data/runtime setup for testing
For runtime asset discovery, the client looks for things like data.grf, data/clientinfo.xml, and data/ near the executable or current working directory. You can also point it at a custom runtime root with:
OPEN_MIDGARD_DATA_DIR=/path/to/runtime
Windows currently has the most complete build flow.
Available presets:
vs2022-win32vs2022-x64
Configure and build:
cmake --preset vs2022-win32
cmake --build --preset build-release --config ReleaseOr for x64:
cmake --preset vs2022-x64
cmake --build --preset build-release-x64 --config ReleaseNotes:
- Native Direct3D 11 and Direct3D 12 backends are only enabled on Windows MSVC builds.
- If you do not want the executable copied to
D:/Spel/OldRO, configure with-DRO_ENABLE_DEV_DEPLOY=OFF.
The repository includes a ready-made preset for the current Qt-based runtime path:
mingw-qt-x64
Configure and build:
cmake --preset mingw-qt-x64
cmake --build --preset build-mingw-qt-x64Debug build:
cmake --preset mingw-qt-x64-debug
cmake --build --preset build-mingw-qt-x64-debugExpected environment:
- Qt 6 desktop kit compatible with the chosen compiler
- For the included preset, the project expects a Qt/MinGW layout similar to:
C:/Qt/6.11.0/mingw_64C:/Qt/Tools/mingw1310_64
Notes:
- On Windows, the Qt-enabled MinGW build is one of the main day-to-day workflows in this repo.
- If Qt is installed elsewhere, set
RO_QT_ROOTto the matching kit root. - Qt deployment is handled automatically for Windows Qt builds.
Linux has an included preset for the non-Windows Qt/Vulkan path:
linux-qt-vulkan
Configure and build:
cmake --preset linux-qt-vulkan
cmake --build --preset build-linux-qt-vulkan -jWhat this means in practice:
- Non-Windows builds force the Qt 6 UI path on.
- Native Direct3D 11 and Direct3D 12 backends are disabled automatically.
- The Linux path is Vulkan-oriented.
Recommended dependencies:
cmakeninjag++orclang++with C++17 support- Qt 6 development packages, including QML/Quick
- Vulkan development packages / SDK
Practical note:
- On Ubuntu-like systems, the Qt runtime may also need the
QtQml.WorkerScriptmodule package installed separately for the QML UI to start correctly.
macOS does not currently have a checked-in preset, but the project does have a non-Windows CMake path you can configure manually.
Recommended tools:
- Xcode Command Line Tools or Apple Clang with C++17 support
cmakeninja- Qt 6
Example configure and build:
cmake -S . -B build-macos \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DRO_ENABLE_DEV_DEPLOY=OFF \
-DCMAKE_PREFIX_PATH=/path/to/Qt/6.x/macos
cmake --build build-macos -jNotes:
- On non-Windows platforms, the project enables the Qt 6 UI path automatically.
- Native Direct3D backends are disabled automatically.
- The macOS path is less exercised than the Windows build flow, so expect some platform-specific integration work.
After building, run:
- Windows:
open-midgard.exe - Linux/macOS:
open-midgard
Make sure your runtime directory contains the client data/GRF files and configuration files the client expects, or set OPEN_MIDGARD_DATA_DIR to point at them.
- Recreate the Ragnarok Online client as open source code
- Preserve the feel and behavior of the classic pre-Renewal client
- Modernize the renderer and platform layer where it makes the project easier to build, debug, and maintain
- Keep packet behavior aligned to the chosen 2008-era target profile
See LICENSE for the project license.