So I've noticed that people in my welcome thread said that there needs to be a ROSE revival. However, I feel as if we can only do so much with the server (relatively speaking).
What is not only the ultimate forum rule and moderator decision, as well as the legality, of using a custom loader for the client to inject a DLL upon startup that would add extended features?
The core of the DLL would just be a bridge for the client (in this case, probably KTRose since you guys seem to want to develop that project) to any sort of code we want in the form of an API/callback system. I wouldn't want to develop any of the logic, since I feel PurpleYouku (forgive me if I spelled that wrong) would know more about what s/he wants as far as client sided functionality.
For those of you who don't necessarily know what this means and are worried this would mess things up or have a negative impact:
- DLL injection is 100% safe so long as the DLL itself isn't malicious (since this would be released open source, this wouldn't be a problem)
- DLL injection is 100% legal and is a simple use of basic API calls. It is what the hack does that could potentially be an issue (this is what I want the moderators to feed back on).
- It does not permanently modify the client binaries. If you want to get rid of the extended functionality, simply get rid of the DLL. It will not be loaded.
- It would not require any modification to any other parts of the code, nor would it change how the client works by itself (unless more logic/features were added - see below).
- Custom packets and handling of packets
- Potential bugfixes that couldn't be fixed before
- Custom UI / message box dialogs (at the least)
- Potentially new worlds (not sure how this is set up in the 3DData)
- Potentially new NPCs/effects/etc.
- Triggering client sided stuff that couldn't be done with packets
- Injecting custom shaders/3D engine upgrades (this would be incredibly difficult but with enough support it could definitely be attempted) Heh, after breaking into the VFS files, this can already be done with the client engine's built in Lua interface. Nifty!
- EDIT: Game protections (I am good at this sort of thing)
I did see a few projects on the forum for custom clients to deal with this issue, but to be honest I feel as if that is way more trouble than it should be.
All the DLL would do is get injected upon startup (the process could even be integrated into a launcher for automatic setup), hook a bunch of addresses, add any code changes (if needed), and then turn the execution over to the client/any code the devs would want.
My code would just be the bridge. Like I said earlier, I like making APIs/doing architecture/doing the hacking bits, so I'd leave the cool and fun logic up to the other devs, for I feel they'd do it better.
Looking mainly for devs' feedback, especially moderator feedback. I understand this is a very touchy subject, but at this point seeing as how Triggersoft is no longer the owner and WarpPortal doesn't seem to care about private servers (nor do they seem to be working on anything new with the client - at least, nothing major), this could be a perfect opportunity to get the community and the project to grow.
Regardless of what this thread produces, I still want to do it by myself to see what kind of results I produce. This is more or less just seeing what the mods think about integrating it into KTRose.
Thoughts?