runescape c++ client

Discussion in 'Discussions' started by elsom23, Nov 13, 2015.

  1. believe that most bots take advantage of a feature called Reflection in Java that let's them "hook" into the game. I'm pretty sure that C++ does not support reflection. Although they will probably find other ways round it. This also assumes that Jagex drops complete support for the Java client, something I doubt will happen if they want to keep supporting legacy play through browsers.

  2. Didn't they remove all support for webclients? This had happened for rs3 and darkscape, although I'm not sure about OSRS/Deadman.

    AFAIK RuneMate will keep the bot writing based on Java, so there's no need to rewrite any bots. How the back end of reflecting/injecting is going to work is a mystery to me, also because I have 0 experience in this matter.
  3. Our human machines Arbi and Cloud already preparing for this afaik
  4. Or we can just move to a C++ bot :p
    It can not be that hard to write a C++ bot, for a C++ client :p

    I would even say that its easier :p
    Since i am better with C++ then Java i am up for it :D
    vipertrek79 likes this.
  5. FTFY
    --- Double Post Merged, Nov 16, 2015, Original Post Date: Nov 16, 2015 ---
    C++ is a lot harder for beginner code(most devs here).

    And Arbiter stated that Java is a lot easier for stuff like GUIs.
    vipertrek79 likes this.
  6. lol.
    SlashnHax likes this.
  7. Can we code a runemate client in LOLCODE?
  8. Yo, if you guys can get slashnhax's bot up and going with this client i say go for it!!!!!!
  9. Hacking a native application is much harder than hacking in Java. If you look at the trends in hacking/botting with other mmos that are written for native environments (aka a c++/c client), there are two general ways of mimicking user input.
    1. Memory editing
    2. Packet injection

    The first one involves editing the current run time environment (actual values in memory) so the program behaves thinking that it has different input. Funnily enough, not only are the current values a program is using loaded in memory, but the actual machine instructions as well. This means that you can dynamically edit functionality of the program at runtime. For example, maybe you replace the store instruction of the portion of code that alters HP to a no-op, thus your HP is never changed. A good program to play around with this is cheat engine. The problem with this is that most mmos have something along the lines of nProtect gameguard that watches for memory edits.

    The second one involves manually altering network traffic to make the game send faulty instructions the to the server. For example, when you click a rock, the actual click is not sent the server, just the command "action=mine, object id=0x451". By spoofing these commands, you could effectively play the game without ever loading the actual game (This would be REALLY hard to implement in practice, but it is possible). Almost every MappleStory hack involve packet injection if you are looking for real examples of this, in fact some of the very first runescape botting clients used packet injection. This is no longer done because Jagex implemented encryption on their packets and it was simply easier to exploit Java vulnerabilities instead of working to decrypt the packets.

    People keep saying that Arbi and Cloud have a way to handle this, but no matter how much prep they do, once the actual native client is released, it will still take them months to crack because they won't know about any exploits until they get their hands on a actual binary.
    creativeself, CantSeeMeHomie and Seiv like this.
  10. While I agree that those are two popularly employed strategies, they are definitely not the only ones that exist out there.
    Seiv, CantSeeMeHomie and Savior like this.
  11. So, will runemate move to C++? :p
  12. Not exactly. If Jagex comes out with a C++ client, they will make the back end C++, nothing else will change.
  13. I seriously doubt a company like Jagex (whose board has a heavy hand in the day-to-day) would scrap so much code in order to do a full rewrite in c++. You have to think of all the secondary effects on the development team this would have, complete re-tooling, re training, higher recruitment costs..

    Jagex is a legacy company, they're just in it to milk what they got. There might be some room for small innovations here or there, but they aren't going to do anything risky. And they probably shouldn't, look what happened with the html5 client..
  14. NXT is the working name of a new C++ based client that has been in the works since 2012. Jagex realised that to enable Runescape to pass another 15 years, the client would need to be future proof. The aim is to create a client that would not only provide better visuals but also increase the performance of the game for all players.

    The NXT client has come a long way from when it was first started on. When HTML5 was deemed to be insufficient for the time being due to browser constrains, Jagex decided to code the new client in ‘good old’ C++. This allowed for better performance on most computers while also increasing the visual aesthetics of the game itself.

    Making a C++ client for Runescape is a lot of work. While some of the Java code can be converted to C++, this is likely to break things due to spaghetti code among others. On top of that, C++ visuals appear to behave differently from Java visuals so some shading, texturing or detailing is prone to glitches which means those have to be redone to make them look the way they are supposed to.

    A Runescape NXT trailer was shown at Runefest, which shows a large amount of areas within the game in the NXT client. NXT’s most notable features in this trailer were: better shading, better lighting, better view distance (without annoying fog that cuts off the view. Instead there is a more natural light breaking effect), better skyboxes and a smoother performance.

    Jagex has said that NXT will be released into a ‘live beta’ (a beta within the live game, so you can use it without missing out on xp) when they think it is ready. Their definition of ready for this client is: ‘When we release it and everyone wants to keep playing it without returning to the java client’ (May or may not be an exact quote).

Share This Page