Skip to content

Getting Started

Danilo Lemes edited this page Jul 4, 2022 · 14 revisions

Getting everything up and running

Unity client

Getting started is as easy as

  1. Downloading Unity (we're using version 2022.1.5f1 (feea5ec8f162))
  2. Grabbing an up-to-date client of your choice. (Google "rathena kro", first link)
  3. You'll also need to pack your custom grf, for that we suggest the great work @llchrisll has been doing at ROenglishRE.
  4. Last but not least, a running server (we've personally chosen rAthena to code the network layer but you can also use Hercules. The packet version we're using is 20200401)

Emulator

Both rAthena and Hercules have a dummy proof tutorial explaining how to get everything up and running in no time, however we strongly suggest that if you already don't have the tools needed to get these servers running, you use Docker instead. If using Docker, rAthena has a small documentation about how to setup everything but briefly it's only

  1. Open the folder rathena/tools/docker in a terminal
  2. Edit the docker-compose.yml to reflect the packetver we are using (20200401).
  3. Run on the terminal docker-compose up.

If it's the first time you run that, the containers will fail to start but the container that takes care of compiling the project will not, so it will compile the project and after it finishes you can try starting everything again.

Configuration

After that, everything is just plug n play. You'll notice that we have a config.json file inside Assets/StreamingAssets.

The file should look like something like this:

{
    "root": "C:/",
    "grf": ["rdata.grf", "data.grf"],
    "system": "System/"
}

It's very important to note that because of a library limitation we must provide a custom grf in order to be able to run the client with all the current features (eg: Skill windows)

The same is valid for the standalone builds, but instead of being at Assets/StreamingAssets folder, the config.json will be located at unityro_Data

Making use of Unity's file loading features

For us to be able to make use of the Resources feature of Unity, which lets us load files asynchronously, we must extract data from the grf, convert it to a format Unity understands and then save it inside a folder called Resources. It's important to note that it has to be inside the first level Assets folder but after that you can put in whatever layout makes more sense to you as long as the assets are inside a folder called Resources, eg:

  • Assets/_Generated/Resources/data/textures/button.png
  • Assets/Textures/Ro/Resources/data/textures/button.png

For that to work we're creating some editor time utilities that will convert assets to Unity formats. You can convert these files by going to the top menu called UnityRO and then selecting Extract textures.

At this moment, we're only extracting textures so the maps can load much faster. There's some work going on a separate branch that will also extract models, maps and sprites.

Attachments

  • For your convenience we have packed all but textures and the main data here.
  • You can also find a video tutorial here