Jump to content

Custom Ragnarok Online Client


Shinryo

Recommended Posts


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

This is absolutely awesome. I'm sure it will be a state of the art RO client when you finish it.

I'm a bit worried about closed source though. Being open source it would instantly gain enormous advantage over Gravity's clients, by being easy to mod, improve, customize. With closed source, it won't make much difference, unless you provide a really good plugin system.

I think the best solution would be to split rendering from networking and GUI. Even if you want to keep rendering part closed, freeing networking and GUI part would be absolutely sufficient.

Do you have any plans on securing this client or will this be left up to server owners?

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  61
  • Reputation:   153
  • Joined:  11/10/11
  • Last Seen:  

Thanks! :)

I have been working and experimenting a lot with different plugin architectures (e.g. in WeeDiffgen), so that won't give any problems. I have indeed plans to isolate rendering from networking and everything else. The possibility to install hooks would be quite useful. As you may already know, there are also quite a lot of hard-coded effects (that are not really hard to reimplement) which are too many to implement them on my own. I will, however, implement a LUA supported "effect engine" so that others can help creating those effects too. The GUI will be based on XML layouts, allowing everyone to modify whatever they want. So yes, even though I will use closed source plugins, I will indeed release interfaces so that everyone can create their own implementations or install hooks to extend the whole system itself with no restrictions.

I'm not quite sure if it would make sense to provide full securing features, since they would be reversed anyway. But I will keep the possibility of creating a very simple skeleton, giving others the idea on how to implement packet encryption, grf protection, etc. on their own.

Edited by Shinryo
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  427
  • Reputation:   123
  • Joined:  11/17/11
  • Last Seen:  

Awesome progress so far!

I like the concept of being multiplatform, and care about the performance. However I'd be happier if it would be opened up. But with a decent plugin system it is still enables much more flexibility than gravity's client. I hope this after so much dead RO client rewrite project, this one will be finished.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  31
  • Topics Per Day:  0.01
  • Content Count:  967
  • Reputation:   53
  • Joined:  11/13/11
  • Last Seen:  

Gorgeous!

I Love when shin do exotic things. I wish you will continue this Project since its really Good to see Improvement with Client too. although your still thinking of a name for your project. Just Looking with the Screenshot. Its Really Wonderful.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  69
  • Topics Per Day:  0.02
  • Content Count:  1315
  • Reputation:   372
  • Joined:  12/10/11
  • Last Seen:  

I hope to see this project finished and released. I've seen far too many projects that had great potential but just failed.

Good luck!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  257
  • Reputation:   253
  • Joined:  11/29/11
  • Last Seen:  

When can I start using it? LOL.

Just make sure that you make an extensible lua table for packets. It'd be nice to actually map and view packets easily.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  379
  • Reputation:   304
  • Joined:  11/10/11
  • Last Seen:  

Looks nice, better render than my engine (I don't support model opacity and animation to optimize the framerate).

Do you have this weird model in amatsu ? It's the only model with a weird position I have (I think other RO engine use a culling that skip it from render).

Why do I choose a low level API for my project ?... Maybe for the challenge lol...

Keep it up even if it's a bad thing to keep the source closed, I don't see the point.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  61
  • Reputation:   153
  • Joined:  11/10/11
  • Last Seen:  

Heh.. good catch. I have the same model there:

screenshot01252012_13xjbtd.jpg

However, the solution is pretty simple. The original client uses a quadtree to improve culling performance. Each model intersects or is within at least one quadtree node. If a model does not belong to a node, than it won't get rendered at all. Basically, those nodes are bounding boxes. The client gets all those boxes that are within the viewing frustum. Afterwards, the client checks which models belong to which quadtree node and renders them. The object in the screen does not belong to any node and therefore shall not be rendered.

If you don't use a quadtree (or octree, whatever), then there is another simple solution: All quadtree nodes are (or have to be) within the xz-coordinates of the ground bounding box. So if a model has a position that is not within this range, then just don't render it.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  40
  • Topics Per Day:  0.01
  • Content Count:  530
  • Reputation:   33
  • Joined:  01/17/12
  • Last Seen:  

man another awesomeness from you hmm WeeRAClient? :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  29
  • Reputation:   19
  • Joined:  11/22/11
  • Last Seen:  

This project isn't much better than Gravity's client if it stays closed-source IMO.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  61
  • Reputation:   153
  • Joined:  11/10/11
  • Last Seen:  

Mind to explain your opinion?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

Few more thoughts on closed source:

There are multiple parts of client that server owners would certainly like to improve, extend or customize:

  • additional settings, preferences
  • GUI changes and new windows
  • new packets to support GUI changes
  • security

This is just a very abstract list; a full list of ideas and improvements that I would do would be really long, and I'm sure there are much more creative people with great client ideas.

I'm afraid that closed source (even with plugins) will prevent at least some of these possibly great ideas to be implemented in your client. It would be lost potential.

Another things is reliability. Gravity client will be there forever, as long as RO is not dead. New features, packets will be added to it. Your client, being closed source and developed by - how many? 1? person, will not be a good choice due to high risk of project not keeping up with updates or even abandonded (not a disaster yet) and not being picked up by other people because no source is available (unacceptable for a server that needs to switch back to Gravity client all of the sudden, possibly being unable to use all additional features that players already got used to).

Not everyone would take risk of being dependant on you, when it comes to such a crucial thing - game client. I wouldn't, if it was a production server.

It might be a great client - with best performance, improved graphics, multiple OSes supported etc... like I said in previous post: "state of the art". Just make sure that piece of art has practical application.

And now, do you mind explaining why do you want to keep source closed? Open source would be really a natural choice here. Honestly, I'm a bit disappointed and suprised (I've heard it would be opensource, did you change your mind?).

  • Upvote 3
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  61
  • Reputation:   153
  • Joined:  11/10/11
  • Last Seen:  

The points in your list can be easily implemented with the help of a plugin system. I know how most of the users out there feel to have an open source client to add customizations to it. That's why I will focus to allow a lot of modifcations. However, as you might already read out from my first post, I don't hesitate to share the information that I have extracted from the original client. And these information are probably what most people are interested in anyway. So why am I still going for closed source?

Simple: If reduced down, there are two factions of people. Those which focus to implement the ideas you're talking about and those that will use this ideas and indeed make money from the work of others (most likely how it is with eAthena/rAthena). I don't see the point why the second faction shall gain all the money without doing anything. I am working with a lot of interfaces that allow splitting very easy. Basically something like this:

croc2sos4.png

As you can see, those people with ideas can hook everywhere they want to extend whatever they want. They can even completely reimplement the closed parts and use it for whatever they want. Let's say if I have implemented a class that allows a sprite to run around, but someone wants a 3D character instead, he can write his own implementation and exchange it without changing any other parts. Some could even change the rendering engine from Ogre3D to Irrlich, if they want to. They just have to make sure to implement the given interfaces, which will be open source since they are only guide lines. You might still wonder what to do when some interfaces themself have to be modified. Well, I'll add the ability to hook the core which might be risky. But I assume that the one who wants to change one of the interfaces knows what he does, so that should not be a problem.

This ensures that those with gread ideas have the possibility to chose if their implementations shall be closed or open source (for the same reasons as I have) and those that want only money still have to do something on their own. And even if I drop this project, as long as the base is done and available, anyone else can still further improve it. Besides that, you don't really have to worry. If I lose intereset or stop working on any of my projects, I'm gonna release the source anyway. So when I shall disappear, I will make sure to release the source (as I will do with WeeDiffGen). The only problem that might come up is the fact, that only a small amount of people are willing to continue such a project as soon as it gets open sourced.

I hope you can understand this decision of mine.

  • Upvote 6
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

Sounds good and fair enough. Thank you for detailed explanation.

Besides that, you don't really have to worry. If I lose intereset or stop working on any of my projects, I'm gonna release the source anyway. So when I shall disappear, I will make sure to release the source (as I will do with WeeDiffGen).

That's reassuring /ok

Do you have any estimates when various parts of client will be finished?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  427
  • Reputation:   123
  • Joined:  11/17/11
  • Last Seen:  

Simple: If reduced down, there are two factions of people. Those which focus to implement the ideas you're talking about and those that will use this ideas and indeed make money from the work of others (most likely how it is with eAthena/rAthena). I don't see the point why the second faction shall gain all the money without doing anything. I am working with a lot of interfaces that allow splitting very easy. Basically something like this:

Well, the plugin system you proposed looks promising, if it will have a nice interface. I only wonder because, I think keep the source closed, but provide a plugin system does not mean, some won't make money from others work at all. Just instead of selling source modifications, they will sell plugis this time.

Anyways even if it is closed source, I would use it rather than gravity's client, being multi platform is a very important for me.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

I think the problem is not plugin authors making money (they actually do something), but server owners leeching off of them. If client was GPL'ed, everyone would have to release source code for their modifications. With closed source, unless there is some weird license, everyone will be free to write client extensions and sell them if they want (I guess?)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  54
  • Reputation:   24
  • Joined:  11/22/11
  • Last Seen:  

Im up for Closed Source.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  01/17/12
  • Last Seen:  

If you like open source then go help Open Ragnarok -> http://open-ragnarok.org/

Features:

All Maps, map change.

All Classes, class change.

All gears display including weapon and shield.

All Skills displayed including ground targeting.

All NPCs.

All Monsters with all animations and attackable.

All Items displayed on floor with pickup ability.

TODO:

No inventory display yet.

No equip window yet.

Screenshots here:

http://www.eathena.ws/board/index.php?showtopic=222832&st=15&p=1384883entry1384883

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  379
  • Reputation:   304
  • Joined:  11/10/11
  • Last Seen:  

If you like open source then go help Open Ragnarok -> http://open-ragnarok.org/

Screenshots here:

http://www.eathena.w...3

The screenshot is from Pantheon Online, an other open-source client (abandoned project), not Open Ragnarok.

Agree with Gepard, closed source with plugin doesn't avoid people to write their own plugin and sell them after - it's not a good reason for me.

By the way, good luck for your project.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

Agree with Gepard, closed source with plugin doesn't avoid people to write their own plugin and sell them after - it's not a good reason for me.

But why would you prevent that? It's actually a good thing, because project will more likely flourish with great variety of plugins/customizations (both free and paid) built around free base. More people would like to learn how to write for Shinryo's client if they're not forced to release everything for free.

That is one damn good point in favor of closed source.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  379
  • Reputation:   304
  • Joined:  11/10/11
  • Last Seen:  

In my opinion, plugin system is just a veil to hide the bad "closed source" thing, nothing else.

1 - We can't do all things we want with plugins, they can't manage every things or hook every functions for complex modifications.

2 - If it's manage as his diffpatcher, do you really want a client with 50-60 plugins that generate 50-60 dll ?

3 - What about security ? Use the plugin system to ""cheat"" on some other pserver ?

4 - If there is a bug or memory leak, we have to report and wait for an update when it can be fixed quickly on a open-source client.

5 - We just have to trust the dev about the performance, security, ... when we have no idea about what he did with his code (keylogger, ...) (no offense to Shin).

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  392
  • Reputation:   285
  • Joined:  12/19/11
  • Last Seen:  

No, plugin system is there, because it's a required thing to convince anyone to using such a closed-source client. With no measures to customize it, nobody would use it. It's not to hide anything, but to make up for all the doors that closed source would close.

  1. Probably. Time will tell. Everything depends on how well designed are interfaces Shinryo was talking about.
  2. Is that a problem really? Opensource client modifications could be included in the client binary itself, but there's nothing wrong about dynamic libraries too.
  3. How is that different from open-source? I assume source would be released on GPL license or similar, which forces everyone to provide source code too. Then it would be even easier to add or remove anything.
  4. Yup.
  5. All GRF patchers are closed source. Yet every server uses one of them.

I'm by no means advocating closed source for this project. I'm all for open source. But (depending on license) it will also have some drawbacks.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  206
  • Reputation:   16
  • Joined:  01/03/12
  • Last Seen:  

Wait are you hinting that there is gonna be a Linux version? Of course, provided you finish it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...