Jump to content

JoWie

Members
  • Posts

    38
  • Joined

  • Last visited

Posts posted by JoWie

  1. Isn't modifying the code/websockets easier to detect though?

     

    Also could Jagex run the game under https as well to prevent cheaters?

     

    That example I posted is detectable, yes. But the part that detects it would also have to run in the browser. So i could switch to a method that is not yet detected or I could remove the detection code. You could also do these kinds of things from within a firefox extension, that would even be harder to combat because an extension has more privileges than a web application (runescape).

     

    HTTPS would not help much. Oversimplifying it a bit: it protects the endpoints (client and server) from anything in between (like a malicious router recording passwords), but it does not protect the endpoints from each other.

     

    Note that variants of this can be done to any client. If you only have an executable, you could still modify the executable. It is just a whole lot easier in javascript.

    Runescape already protects against a lot of cheats by making the server authoritative, even if the entire game was open source you could still not just give yourself a billion gold points.

    The hard part is preventing cheaters from gaining information they should not have (like an enemy behind a wall in shooters), cheaters improving their input (aimbot) and automation (bots).

    There is no real solution to aimbots and bots, if you can do it, a program can also do it. Detection software is not a solution either, you can always do your cheating at a higher level (like running the game in a virtual machine and doing the cheating in the host OS; or by controlling your keyboard with lego mindstorms ;p ).

     

    All you can do is make it really really hard, like by changing your code very often, settings traps or by making it so hard bots have to solve hard AI problems.

    • Like 1
  2. With javascript you do not even need reflection, you can do almost whatever you want.

    You can even redefine almost every function of the standard API's such as DOM, WebSocket, etc.

     

    Suppose I want to modify data a webapplication sends using WebSocket, I could inject this script using the firefox / chrome console:

     

    // try this on http://www.websocket.org/echo.html
    
    var _send = WebSocket.prototype.send;
    
    WebSocket.prototype.send = function(data)
    {
    console.log('hi! ', data);
    data = data.replace(/rock/ig, 'Slap');
    
    _send.call(this, data);
    };
    
    

     

    This even works for WebSockets that have been created before you inject your script.

  3. The client (webapplication) will probably be very thin. Most of the interesting stuff happens on the servers. Relatively to other games (like first person) latency does not mater that much in RuneScape, a server round trip is OK. Anything under 500ms is usually fine for these types of game. First person plays well under 100ms.

     

    I have not read anything about RuneScript before but I am guessing it will not end up at the clients.

     

    If they are pushing for snappier control (less input lag) of your avatar (like with WASD) they will have to make clients a lot smarter by having them run (part of) the same simulation as the servers.

     

     

    As for WebGL, what I remember from experimenting with it a while back is that video drivers are the big issue. I had a laptop with nvidia optimus (lets you switch between 2 gpu's to conserve power) and WebGL did not work properly.

    Firefox even has a blacklist (or a whitelist, i forgot) with supported hardware and drivers.

    EDIT: I just crashed on a webgl demo with my desktop Radeon HD 7970 haha

    • Like 1
  4. I'd be surprised if RS3 was written in pure javascript. Javascript is slower than Java, parsed on the fly and interpreted instead of compiled into bytecode and optimized, and is also human readable without having to decompile. I could list all the reasons why I think javascript would be a bad change, but then I'd just look like I'm hating on one thing. I don't hate javascript, I just don't think a game like RuneScape could benefit from having it's game client programmed in.

     

    While I also have second thoughs about the performance it is not as bad as you think.

     

    Modern javascript engines (such as V8 and SpiderMonkey) compile (and optimize!) to bytecode or native machine code internally, they might even cache this.

    This includes things like type interference. For example "var bla = 5;" might get converted to an actual integer internally.

     

    There is also the asm.js project which was on news sites a week ago.

    They define a backwards compatible subset of the javascript language which lets you work with integers and floating points very efficiently. They showed a few benchmarks which were less than 2x as slow as equivalent C code (instead of 80x in one case).

     

    What I am more worried about is the performance and support of WebGL

  5. Are they going to use javascript, websocket, webgl canvas, et cetera to completely replace the java applet?

    Or will it merely be UI elements done by the webbrowser which interact with the java plugin using liveconnect?

     

    If they are going to completely replace the java applet I wonder if they are writing everything in javascript now or if they are compiling java to javascript.

     

    I actually kind of doubt they are going to completely replace the applet. I am not sure the performance of webbrowsers are good enough yet.

  6. Yes, but not right away. I finished my current goal first of 80 slayer and then I became more and more disinterested mostly because of the SoF.

    I actually liked the SoF at first (I even won 10M and a lame tattoo), but not when they added buyable spins.

    I would have perhaps tolerated other buy-ables like loyalty points or whatever.

     

    Maybe I will return in a year (again, haha)

  7. A boolean is not 1 bit in memory. If i recall correctly, java uses 8 bits for booleans. If you really want to work with 1 bit variables, you would have to use bit shifting.

     

    Easiest is 64 bit int if supported everywhere (not supported in some languages, like javascript). Or a 64 bit double (which javascript has), which is precise for integers up to 2^53

  8. Allowing users to post external images on a forum like this one is enough to find out your ip. The image does not even have to be noticeable.

     

    Oh and there are hardware solutions which help against denial of service attacks, but it never gives complete protection.

  9. Occasionally it seems that runescape is suffering from some kind of memory leak. A week ago runescape was using about 1.5GB (which is a lot even if it was caused lazy garbage collecting, but it probably was not), after restarting the game the usage became 200MB.

     

     

     

    Internet connection doesn't affect the frame rate.

     

    Not directly.

    But if a lot of data was buffered because of a network error, you may get seconds of data in one moment. This might affect the fps briefly.

  10. ADVERTISER: doubleclick.net

    LANDING URL: http://googleads.g.doubleclick.net/aclk?sa=l&ai=BKWW_SuJkT77zOMva-gbE8rx818LDnAKX2dKYKPPI9sIEoMpFEAEYASC03OUcOABQtbuIxgJgkYSghYwYoAHBs4DjA7IBCnd3dy50aXAuaXS6AQk3Mjh4OTBfYXPIAQPaARxodHRwOi8vd3d3LnRpcC5pdC9ydW5lc2NhcGUv4AECgAIBqQK3oDCS8jqFPsgCv7DNIagDAcgDHegDpwfoA-4E6AP9AvUDAAgAyPUDAAAAEKAGAw&num=1&sig=AOD64_2ZF8EiFMsu3lU5SjMEj8LAPhU3jQ&client=ca-pub-7006458855726751&adurl=http://www.mmosavor.com/runescape/RSIndex.aspx%3Fvcads%3Dmmosavor.RS&nm=10&nx=236&ny=49

    TYPE: Top Banner

    SITE: mmosavor.com

    MY LOCATION: Netherlands

    REASON: Selling items for real world money ( http://pagead2.googlesyndication.com/simgad/12647425542260425069 )

     

     

    ADVERTISER: googleadservice

    LANDING URL:http://www.googleadservices.com/pagead/aclk?sa=L&ai=BLKsav-JkT8CXJMKO-Qbw1rAvyMPAwQPQ-e2DPvDz75pFwNTDAxABGAEgtNzlHDgAUK6O9-T9_____wFgkYSghYwYoAG4kOvFA7IBDGZvcnVtLnRpcC5pdLoBCTcyOHg5MF9hc8gBAtoBXGh0dHA6Ly9mb3J1bS50aXAuaXQvaW5kZXgucGhwP2FwcD1mb3J1bXMmbW9kdWxlPXBvc3Qmc2VjdGlvbj1wb3N0JmRvPXJlcGx5X3Bvc3QmZj0zNyZ0PTE2OTA2gAIBqQK3oDCS8jqFPsgC-OToMKgDAcgDHfUDAAkAwPUDAAAAEIgGAaAGAg&num=1&cid=5GhjCFJNJSNCdH6OOFzLQkIU&sig=AOD64_20SFyAbAc2QGVdvyQDTjndWwU-lA&client=ca-pub-7006458855726751&adurl=http://www.Gold4Fun.com/Runescape-gold.html&nm=10&nx=239&ny=65

    TYPE: Top Banner

    SITE: gold4fun.com

    MY LOCATION: Netherlands

    REASON: Selling gold for real world money ( http://pagead2.googlesyndication.com/simgad/5277845185799943139 )

  11. The only ones I don't like is where you need to drop an item if you have a full inventory, and there is no bank deposit box.

    I also don't like the sandwich lady because I am not very familiar with the various English words for bread variations.

     

    I like doing the others tho

  12. this may seem like a stupid/pointless idea but I was thinking, why not allow skills to go over 200m, but only count 200m xp toward the overall highscores, allowing for competitiveness in individual skills, but preventing the no 1 player just being the one with the highest fletching xp.

     

    I suggested this idea a while back. I think it would be cool if "visible" xp was capped at 200m but then ranks could still change in any given skill based on invisible xp. This would work exactly the same as regular xp however when you looked your self up in the highscores it would just display as 200m. I think with would be entertaining because anyone competing for rank 1 in a skill would never know how far ahead the rank in front of them is. They could be 10k xp ahead, they could be 10m. However people that compete for permanent ranks would certainly not like this idea.

     

    Sorry for the old reply, but I am guessing the only easy change would be to increase the cap (visible or not) to around 214,7M ( (2^31 - 1) / 10).

    Any XP value is probably divided by 10 before it is displayed, this would be how for example the Gnome Agility Course gives you 86.5 XP, while still using an integer internally.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.