# rustarok **Repository Path**: mirrors/rustarok ## Basic Information - **Project Name**: rustarok - **Description**: Rustarok 旨在成为一款多人、快节奏的 Moba 风格游戏 - **Primary Language**: Rust - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 6 - **Created**: 2019-07-30 - **Last Updated**: 2025-08-16 ## Categories & Tags **Categories**: games **Tags**: None ## README # Table of contents - [Building](#building) - [Running on Windows](#running-on-windows) - [Running with Docker](#running-with-docker) - [How to play](#how-to-play) - [Design decisions](#design-decisions) - [Blog](#blog) - [Current Status and Gallery](#current-status-and-gallery) - [Background story](#background-story) - [About the used game assets](#about-the-used-game-assets) - [Thanks](#thanks) # Rustarok A project whose primary goals are to have fun developing it and experiment with interesting technical problems from the world of game development. It is intended to be a multiplayer, fast-paced Moba style game. Check [Background story](#background-story) for details. ## Building - ``git clone https://github.com/bbodi/rustarok.git`` - ``cargo build`` ## Running on Windows You will need Ragnarok Online asset files to run the game. - Download a Ragnarok Online client from [some](https://talonro.com/) [popular](http://playdreamerro.com/) [private server](https://topg.org/ragnarok-private-servers/) - Install it - Check the installation directory for any ``*.grf`` files, and put their paths into ``config.toml``, e.g.: ``` grf_paths = [ "d:\\Games\\TalonRO\\rdata.grf", "d:\\Games\\TalonRO\\sdata.grf", "d:\\Games\\TalonRO\\tdata.grf" ] ``` - Run ``cargo run`` from rustarok directory. ## Running with Docker See the README.md in the [docker](docker) folder for complete instructions. ## How to play - Move your character with the right mouse button - Cast skills with Q (fire wall), W (lightning), E (heal), R (huge boom) keys - Spawn entities with the "Players" and "Monsters" sliders in the window - Move the camera with the cursor keys ## Design decisions - [Statuses](https://github.com/bbodi/rustarok/issues/1) - [Rendering system](https://github.com/bbodi/rustarok/issues/4) ## Blog - [2019W30](https://github.com/bbodi/rustarok/issues/6) ## Current Status and Gallery Currently the project is in a very early stage. Nothing is set in stone yet, I mostly prototyping ideas and techniques. List of developed features: - [x] Asset file loading (grf, gnd, rsm, rsw, spr, act, str) - [x] Rendering - [x] Map (ground, static models, lighting) - [x] Sprites for UI - [x] Sprites in 3D world (animated sprites and effects as well) - [x] Different actions (idle, sit, walk, attack, cast etc) - [x] Directions - [x] Amount of damages, heals, etc - [x] Health and Mana bar above the characters - [x] Input handling, Control - [x] Moving around with your character - [x] Assigning skills to Q, W, E, R, etc keys - [x] Continuous movement towards the mouse if RMB is down - [x] Skills - [x] Skill target area/entity selection mode - [x] Skill casting - [x] Skill manifestations (the manifested outcome of using a skill, e.g. a fire wall in the 3D world which can't be walk through and it damages contacting entities) - [x] Quick cast settings (on, on-release, off) - [x] Battle - [x] Attacking an enemy - [x] Attack speed - [x] Health, dying - [x] Collision - [x] Static objects - [x] Characters, a.k.a [body block](https://www.youtube.com/watch?v=nk2O6YsCWwI)