lifthrasir
A Ragnarok Online Client written in Rust and Bevy
git clone https://github.com/EndurnyrProject/lifthrasir.gitEndurnyrProject/lifthrasirLifthrasir
A modern, cross-platform Ragnarok Online client implementation built with Rust and Bevy.
Overview and Objective
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 objetive here is most fun, i don't want to build a 1-to-1 ragnarok client copy, i want some liberty to add new stuff, redo some stuff i didn't like, while trying to keep the same feeling.
Project Architecture and Functionalities
I'm trying to keep it as close to the Bevy ECS recommended architecture, the basic concepts are:
- Follow the ECS pattern, where systems operate on components attached to entities.
- Keep the network and game logic separate, albeit i don't want to build compatibility for other servers, do not keep people from doing it.
Prerequisites
- Rust (latest stable)
- Ragnarok Online GRF Files - You must provide your own legitimate GRF data files
Required Files
This client requires Ragnarok Online data files, which are proprietary to Gravity Co., Ltd. and are NOT included in this repository.
Getting Started
git clone git@github.com:EndurnyrProject/lifthrasir.git # Add your *.grf to the assets folder, configure the loader.toml # Then convert the stuff cargo run -p ro-to-lifthrasir-cli -- convert # Then, generate your pak file cargo run --release -p grf-utils -- pack \ --grf assets/en.grf --grf assets/data.grf \ --content-dir assets/data \ --out assets/lifthrasir.pak --content-version 1 # Run the app on dev mode cargo run -p lifthrasir --features dev
Server Side
Does it work with rAthena?
Nope, and its not my plan to make it work, only with Aesir, the engine protocol is agnostic though, feel free to implement the protocol for rAthena if you want.
Contributing
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
Thank you
I shamelessly took a lot of code and ideas from these amazing projects:
Legal Notice
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 :(
more like this
TachiSnap
TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…
bit_gossip
Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.