Thread: Rs317.Sharp - A Working C#/.NET Port of 317Refactor

Page 1 of 5 123 ... LastLast
Results 1 to 10 of 49
  1. #1 Rs317.Sharp - A Working C#/.NET Port of 317Refactor 
    Registered Member
    Glader's Avatar
    Join Date
    Mar 2015
    Posts
    34
    Thanks given
    5
    Thanks received
    34
    Rep Power
    115



    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 317Refactor 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:

    1. Low Memory Mode
    2. Word Censors
    3. DNS/IP on Login
    4. Music (not by choice)
    5. Patching (imo outside the scope of a game client)


    I know RS2Sharp 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: https://github.com/HelloKitty/RS317.Sharp



    edit: I made a post about the work on the OpenGL client. See that here: https://www.rune-server.ee/runescape...ml#post5641313

    But I guess I'll link the video here too



    Episode 3:



    Episode 5, a server emulator:



    Episode 6, a custom from-scratch networking approach:



    Episode 7:



    Special Unity3D Edition Episode

    Reply With Quote  
     


  2. #2  
    Banned
    Join Date
    Apr 2019
    Posts
    30
    Thanks given
    6
    Thanks received
    3
    Rep Power
    0
    Nice! may take a look later one question is the rendering on the cpu or gpu ?
    Reply With Quote  
     

  3. #3  
    Registered Member
    Glader's Avatar
    Join Date
    Mar 2015
    Posts
    34
    Thanks given
    5
    Thanks received
    34
    Rep Power
    115
    Quote Originally Posted by Mank4Tastic View Post
    Nice! may take a look later one question is the rendering on the cpu or gpu ?
    The current renderer is like the original 317 client since it's pretty much a 1 to 1 port of 317Refactor from Java. So it's sadly on the CPU. It renders to a bitmap that is displayed via Winforms/GDI. Surprisingly, all things considered the performance is alright.

    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.
    Reply With Quote  
     

  4. #4  
    Registered Member
    hc747's Avatar
    Join Date
    Dec 2013
    Age
    26
    Posts
    1,474
    Thanks given
    3,312
    Thanks received
    691
    Rep Power
    1098
    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 https://www.graalvm.org/.
    Reply With Quote  
     

  5. Thankful user:


  6. #5  
    Registered Member
    Tamatea's Avatar
    Join Date
    Aug 2010
    Posts
    1,317
    Thanks given
    401
    Thanks received
    357
    Rep Power
    2457
    Very good work nice, good on you mate
    Spoiler for sig too large:


    Attached image
    Attached image
    Reply With Quote  
     

  7. #6  
    Rs317.Sharp - A Working C#/.NET Port of 317Refactor



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    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

    Attached image
    Reply With Quote  
     

  8. Thankful user:


  9. #7  
    Registered Member
    Glader's Avatar
    Join Date
    Mar 2015
    Posts
    34
    Thanks given
    5
    Thanks received
    34
    Rep Power
    115
    Quote Originally Posted by hc747 View Post
    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 https://www.graalvm.org/.
    My experience of Mono is exclusively via Unity3D, for the past few years I have been relying on .NET Core for crossplatform .NET and the performance has been good. I only mentioned Mono because it has been an option for so long.

    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: Attached image

    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".

    Quote Originally Posted by Tamatea View Post
    Very good work nice, good on you mate
    Thank you!

    Quote Originally Posted by Scu11 View Post
    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

    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.
    Reply With Quote  
     

  10. Thankful user:


  11. #8  
    Rs317.Sharp - A Working C#/.NET Port of 317Refactor



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    Quote Originally Posted by glader View Post
    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.
    This license wouldn't hold up legally in any way. You cannot relicense code that is derived from copyrighted material in any form.

    Just because it's emulation work, or work around a source derived from reflection/decompilation, doesn't mean licenses don't apply.
    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.

    the code I wrote, and I licensed it under AGPL. Anyone is free to use it.
    But the code you wrote was derived from copyrighted material, so they aren't

    Attached image
    Reply With Quote  
     

  12. Thankful user:


  13. #9  
    Registered Member
    Glader's Avatar
    Join Date
    Mar 2015
    Posts
    34
    Thanks given
    5
    Thanks received
    34
    Rep Power
    115
    Quote Originally Posted by Scu11 View Post
    This license wouldn't hold up legally in any way. You cannot relicense code that is derived from copyrighted material in any form.
    I appreciate your concern, but the project is licensed under AGPL. I will not be changing this. It is free and opensource for anyone to use. Unless you're a lawyer representing a party with claim to part of this work then there isn't any reason to discuss this further.

    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. https://i.gyazo.com/175fa0aa18bc7eb1...a520c8a7c4.gif
    Reply With Quote  
     

  14. #10  
    Rs317.Sharp - A Working C#/.NET Port of 317Refactor



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    Quote Originally Posted by glader View Post
    I appreciate your concern, but the project is licensed under AGPL. I will not be changing this. It is free and opensource for anyone to use. Unless you're a lawyer representing a party with claim to part of this work then there isn't any reason to discuss this further.
    Don't take it the wrong way - I'm not trying to compel you to change it, I'm trying to warn you that it wouldn't hold up in court for yourself nor anyone else using this project. I think that is worth communicating to other people wanting to use this project too.

    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.

    Attached image
    Reply With Quote  
     

  15. Thankful user:


Page 1 of 5 123 ... LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Find the port of an SQL database through phpmyadmin?
    By Format in forum Application Development
    Replies: 4
    Last Post: 06-11-2014, 12:27 PM
  2. VB.Net: Port Status
    By Man of Steel in forum Application Development
    Replies: 1
    Last Post: 04-07-2014, 11:40 PM
  3. Need change port of Xerascape
    By A Thugz Life in forum Help
    Replies: 1
    Last Post: 06-08-2013, 07:21 PM
  4. Replies: 16
    Last Post: 02-16-2011, 08:39 PM
  5. How to change the port of BS client
    By Runebay™ in forum Help
    Replies: 0
    Last Post: 11-26-2009, 10:08 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •