Hi guys. I've never actually done any Runescape emulation before until now, mostly because I don't like Java (I've never even written anything in it lol). However, the past 2 days I decided to port the [Only registered and activated users can see links. ] client to C#/.NET. It's fully opensource including the git history of the steps taken to port it, should anyone wish see, and I have some high hopes and goals for this project too. Maybe I'll talk about those in the future.
A C#/.NET client will allow for generating self-contained cross-platform builds that require no .NETFramework or Java runtime. Thanks to .NET Core 2.0/3.0. What I'm most excited about is the possibility of bringing the client to Unity3D. I have many years of experience with Unity3D, so maybe something will come of it. a WebGL build of RS317 may be possible using Unity3D too.
The client mostly works, as far as I can tell. It's pretty much a plain port of 317Refactor, I tried not to change too much. Though you can see some remenants of the point in which I was about too, Task/async and etc. It is also missing afew things that I opted not to implement for now. I'll list those here:
- Low Memory Mode
- Word Censors
- DNS/IP on Login
- Music (not by choice)
- Patching (imo outside the scope of a game client)
I know [Only registered and activated users can see links. ] is a thing but it's not based on a refactored client so it's unreadable. I actually have xLin of RS2Sharp to thank for saving me so much time on getting the initial Render implemented, using WinForms of all things. So thanks!
Anyway, here is the public repository as well as a video demonstrating it: [Only registered and activated users can see links. ]
edit: I made a post about the work on the OpenGL client. See that here: [Only registered and activated users can see links. ]
But I guess I'll link the video here too
Episode 5, a server emulator:
Episode 6, a custom from-scratch networking approach:
Special Unity3D Edition Episode
Nice! may take a look later one question is the rendering on the cpu or gpu ?
A future task is to explore other platforms/renderer. At the very least to push the generated 2D image to the screen. Current consideration is Monogame. Unity3D in the future, if I can figure out how to efficiently bring it into 3D. Afew people have already done so, but I only have like 2 days of RSPS experience so it might take some time. This is my first project.
I am open to pull requests that could potentially add GPU rendering! But that's just a dream lol.
Looks really nice - only criticism re: win forms is although Mono exists, have you actually tried using it on a non-windows platform? I have and it was not a pleasant experience - I found it to be lacking a lot of functionality and documentation. Also, in terms of building platform specific builds, those developing with Java could also opt for [Only registered and activated users can see links. ].
Very good work nice, good on you mate
Interesting that a license is included (although admittedly, not by yourself) given you have none of the rights to any of the code this is derived from - I would suggest putting it on some throwaway organisation or user account github if you don't want to risk your main github account getting banned
Regardless, an interesting project to say the least
Winforms is definitely not ideal. But it was something I knew would temporarily work from what xLin did on RS2Sharp. It was an eliminated variable in porting the code which made solving things like this easier because I never had to assume it was the renderer itself:
Since I'm not a Java developer I didn't know Java had something like that. I guess it's pretty similar to what .NET Core is offering now too! Though I don't know of any server who does this, but I haven't played on RSPS since the days of the "8bit Doom Moparscape client".
I know my rights as a software developer. I have been an emulation and bot developer in various communities: World of Warcraft, Phantasy Star Online, Pokemon Go, etc. I have never been bothered by the companies because I avoid doing anything malicious to their retail products. Anyway, legally speaking the renaming of the client is licensed under 317Refactor's MIT license. The port from Java to C#, and the additional code, is licensed under AGPL. Just because it's emulation work, or work around a source derived from reflection/decompilation, doesn't mean licenses don't apply. Or rights/copyright to your own work around it is void. I own the transformation and the code I wrote, and I licensed it under AGPL. Anyone is free to use it.
It's not really emulation, it's reverse engineering derived from copyrighted material. You aren't emulating it from scratch, as you admitted to - you are using a client that is a refactored edit of decompiled original client, i.e. copryighted material owned by jagex. Emulation would imply writing your own solution from scratch that achieves the same goals that the RS client does, which isn't the process followed here.Just because it's emulation work, or work around a source derived from reflection/decompilation, doesn't mean licenses don't apply.
But the code you wrote was derived from copyrighted material, so they aren'tthe code I wrote, and I licensed it under AGPL. Anyone is free to use it.
I've also taken some time tonight to create a layer of abstraction/indirection between rendering and input so that other developers can create other C# implementations that don't depend on Winforms/GDI. I made a quick video going over just the few lines of code required to implement the client for the Winforms portion. Unfortunately, I don't know OpenGL otherwise I'd have an OpenTK/OpenGL implementation in progress already. Oh well.
This was the best I could do when it came to OpenGL. I don't really know it... Warning, it's flickery. [Only registered and activated users can see links. ]
By definition, this project is not free and opensource when it is derived from copyrighted material (which you both admitted to and is fairly provable). I'm not sure if you're aware that the refactor you based your client on is a refactor of the original decompiled client - it wasn't a rewrite from scratch.
If jagex want to (and they have) taken down repos - they would be well within their right to take down this client, which puts your github account at potential risk, which is why I advised shunting it off to a separate account/organisation to avoid the risk of your personal github account being penalised.
|« Chanston's Free Custom Maps | Massive Custom World »|
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)