Replies: 15 comments
-
From my understanding to continue this project one would have to connect to Tree Of Savior, reproduce every request the game client sends to the server, capture each one of them, understand the information being sent, be able to parse the bytes in the requests and responses, and recreate a backend that is capable of receiving such requests and answering in the same manner the Tree Of Savior server does, thus "emulating" the game server for Tree Of Savior. I have tried many times, but to be honest, this seems like a very large amount of requests to capture, parse and simulate for a single person, as much as I would love to have a private server of Tree Of Savior, I feel like it would take too long for me to be able to simulate the game server. Without control of the client, any update could break many things by changing the bytes sent and received by some request or adding new requests. I am not sure if that's why NoCode-NoLife gave up, but that's why I did. |
Beta Was this translation helpful? Give feedback.
-
Not gonna lie, it does require a certain amount of time and dedication to get a server emulator up and running, but it's not an impossible task, even for a small team or a single person. Last month a user on our Discord started hacking away at Melia and made some decent progress since then. Especially after I updated Zemyna and Pale again, which work well for analyzing the packets. From his messages, he seems to have gotten most of the basics up and running again and even started adding new things. I highly recommend working together with others, to share your work, and talk about problems if you're stumped somewhere, since sitting alone in front of your computer, banging your head against the wall, trying to recreate what a team of professional programmers took years to develop, sucks out your motivation real fast. I have considered coming back to Melia a few times over the years, but personally I really don't like the direction ToS took after Rebuild. Personally, I'd rather work on the older version of the game. Though that's a whole other can of worms, because finding devs who are able to work without packet logs is even more difficult. |
Beta Was this translation helpful? Give feedback.
-
That sounds interestingly cool! What is the Discord server we could reach that person out? And maybe set up "milestones" of what we want to be done? And actually, start an active project development? |
Beta Was this translation helpful? Give feedback.
-
You can find the invite to our Discord server in Melia's readme file. |
Beta Was this translation helpful? Give feedback.
-
I think the trick is pick a version and stick to it. Tree of Savior hasn't had a real content update in over two-three years. They keep adding dungeons and higher level gear, but when it comes to everything else, it's pretty much in a stalemate. I think if would be best if make the latest iteration functional and then build on it. I doubt anyone wants to emulate the current version of the game anyway, with silver farming being non existent, mobs having no real drops, etc. My vision would be to keep the core sytems, such a combat, but completely revamp gear, crafting and item drops. The whole point of Ragnarok was to grind for drops anyway. I don't think that anyone would mind if we drop 95% of the quests and just focus on the overall mapping experience, by adding new interesting items that open up builds and let people just hack at the mobs. There are literally 200+ available maps in the client, so even if we never update the client, we have more than enough room for all of the content in the world. |
Beta Was this translation helpful? Give feedback.
-
I'm with you on that. I believe ToS was originally envisioned as a hybrid between Ragnarok and more modern MMOs, but when the game kind of flopped, they pivoted in the direction "modern", rather than "Ragnarok". Not a smart move in my book, since there's more than enough MMOs like that, which made ToS even less special. The problem with not updating the client is that you're losing the ability to log packets, and these do still get updated regularly, even if the content might not change a lot. Let's say we were to recreate a client from 3 years ago, to work on a pre-Rebuild version of the game. You obviously have no servers to log packets from then, because the packets on the latest versions of the game are vastly different from the ones 3 years ago, and the old client can't work with the new packets. That means you have to analyze the client's code to get the packet structures, which is arguably more dificult than just logging them. That's why working with the latest client is the easiest, even if you have to constantly update the packets. Unfortunately you don't have a lot of control over the game from the server either, so using the latest client to run the old version of the game is kind of difficult, unless you make some serious changes on the client-side. |
Beta Was this translation helpful? Give feedback.
-
But the current client is fine as it is. Sure some things were shifted around, but most of the issues are in the backend. I don't see any reason to work on a 3 year old client, unless we want an unoptimized client for some reason. If we get the basics to work, we can drop the majority of quests and start rebuilding the game area by area. Adding mob NPCs should be fairly easy and items are managed in SQL DB anyway, so no major setbacks there. The RE:Build improved the game anyway, because classes used to be a mess. I might be the only one, but if you give me ToS with zero quests or dungeons, I'm happy with it, as long as it has working combat and enough areas/mobs/items to make the grind worthwhile. ToS has no complex systems anyway and housing can be ignored completely by simply masking the unusable UI buttons with an addon. |
Beta Was this translation helpful? Give feedback.
-
I actually don't like the changes Rebuild made, especially to the classes, skills, and stats. I'd want the old system, but that would require big changes on the latest client. Just taking the latest game and removing quests and dungeons is a good start, but to me, theory crafting and all the options you had were a big part of what made Ragnarok so much fun, and what made it possible to keep coming back to it. (I'm not a big fan of RO Renewal either, btw^^) Initially, ToS provided even more options, and I really liked that aspect, even if the circle system seemed a little convoluted when you first heard about it. Rebuild scaled that back a lot in my opinion, and simplified things way too much for my taste. |
Beta Was this translation helpful? Give feedback.
-
But skills and stats can be easily shifted around simply by changing how the backend works. It's easy to make DEX increase your critical chance for example. ToS client is also fairly easy to manipulate in terms of UI, so rearranging skills should be fairly simple, as long as they weren't removed completely and even then it should be possible to manipulate them. For example we can reintroduce the Corsair's double weapon attack by taking Bullet Makers Double Gun Stance and modifying it. |
Beta Was this translation helpful? Give feedback.
-
Note that I said that it would require a lot of changes, not that it's impossible^^ In any case, this is what server emulators are good for, of course. Modifying the game to your tastes. Though it's usually easier if you can choose the most appropriate baseline. Ideally, Melia would be able to handle multiple versions. |
Beta Was this translation helpful? Give feedback.
-
Differently from Ragnarok, the ToS client is bounded to Steam and usually it auto-updates. In the RO times, we had patchers create custom clients by replacing variables as we desired (Such as Wallpapers, The Name Servers/IP Addresses to connect and et cetera). We might also patch it to bypass Steam check. Not to mention that Username and Password are completely done by Steam, so there's no feature for Creating Accounts. Another alternative is "Creating Accounts Online" and then using Steam itself to validate that the username matches the one you claim it to be. |
Beta Was this translation helpful? Give feedback.
-
Actually, ToS does have a normal login screen, you just have to instruct the client to use it, by making it download a certain modified text file from a web server. Zemyna can do that automatically, or you can modify the client.xml and either use Melia's web server or your own to serve the static __Config.txt. Once you have that, you can create accounts on Melia similar to how you can on eAthena, with ToS using Steam doesn't change much about how you get or update the client. It still uses a classic patcher, just like RO did, which you might use if you do want to update the client to the latest version, just like many of us did for RO. Private servers would want their own custom patchers of course, but that doesn't affect the work on Melia. And you don't have to auto-update the game of course. |
Beta Was this translation helpful? Give feedback.
-
That's mind blowing. Didn't know that ToS supported that. Probably kTOS uses normal login/password, right? The new//acount_name thingy is nice :)
So basically if we patch the patcher we should be fine. Okay. |
Beta Was this translation helpful? Give feedback.
-
IIRC kToS uses a web launcher, that's Nexon KR's preferred method.
Either that or write your own patcher. ToS uses a very simple patch system, where new IPF files simply take precedence over older ones. All you have to do is download new IPF files and throw them into the patch folder. |
Beta Was this translation helpful? Give feedback.
-
I will close this discussion for now, since the project is no longer laying dormant. At least for now. |
Beta Was this translation helpful? Give feedback.
-
Wonder if anyone would be willing to tackle this project again, or at least update the project to work with the latest client? If someone can make the basic interactions to work, such as login, char select, basic movement, I could try to tackle other systems once I understand how the basics works. I have no experience with server emulation, but I'm somewhat decent with C#.
I can also try to tackle the problem on my own, as long as someone gives me a quick tutorial on how to approach the issue of solving compatibility between the ToS client and the Emulator.
Beta Was this translation helpful? Give feedback.
All reactions