-
Notifications
You must be signed in to change notification settings - Fork 61
Getting Started
Getting started is as easy as
-
Downloading Unity (we're using version
2022.1.5f1 (feea5ec8f162)
) - Grabbing an up-to-date client of your choice. (Google "rathena kro", first link)
- You'll also need to pack your custom grf, for that we suggest the great work @llchrisll has been doing at ROenglishRE.
- 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
)
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
- Open the folder rathena/tools/docker in a terminal
- Edit the
docker-compose.yml
to reflect the packetver we are using (20200401
). - 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.
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
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.