A modern, cross-platform Ragnarok Online client implementation built with Rust, Bevy, and React.
I always wanted to build this stuff, and since i wanted to learn Rust, why not? Will this ever be fully playable? Probably not, maybe, who knows?
The architecture is fairly simple, everything is build following the Entity Component System (ECS) paradigm using Bevy as the game engine. However, since Bevy still doesn't provide a good way of building UIs, i got the genially idiotic idea of using Tauri, which allows us to use React for building the UI, and communicate with the Bevy game engine using IPC. Which works, but boy its a pain in the ass.
- Rust (latest stable)
- Node.js (v18+) and npm
- Ragnarok Online GRF Files - You must provide your own legitimate GRF data files
This client requires Ragnarok Online data files, which are proprietary to Gravity Co., Ltd. and are NOT included in this repository.
git clone [email protected]:EndurnyrProject/lifthrasir.git
cd lifthrasir# Install Tauri CLI globally (if not already installed)
cargo install tauri-cli
# Install Rust dependencies (from project root)
cargo build
# Install UI dependencies
cd web-ui
npm install
cd ..Place your Ragnarok Online GRF files in the assets/ directory as described above.
cd src-tauri
cargo tauri devTo create distributable installers for all platforms:
cargo tauri buildThis will create platform-specific packages in src-tauri/target/release/bundle/:
- macOS:
.appbundle and.dmginstaller - Windows:
.exeexecutable and.msiinstaller - Linux:
.AppImage,.deb, and.rpmpackages
Contributions are welcome! Please ensure:
- Code follows Rust idioms and formatting (
cargo fmt) - All tests pass (
cargo test) - Clippy produces no warnings (
cargo clippy) - Commits follow conventional commit format
I shamelessly took a lot of code and ideas from these amazing projects:
RagnarokRebuildTcp
BrowEdit3
GRFEditor
This project is not affiliated with, endorsed by, or connected to Gravity Co., Ltd. or any official Ragnarok Online server. Users must provide their own legitimate game data files and comply with all applicable terms of service. Gravity pls don't strike me :(
