Jump to content

Jard_Y_Dooku

Members
  • Posts

    1644
  • Joined

  • Last visited

Everything posted by Jard_Y_Dooku

  1. 1. Fortunately our posts are getting shorter. I know the client is not purely Java, but the part that is in Java makes it very slow. Maybe Jagex programmers are horrible as well, but either way both of those factors contribute, and Java's portion isn't negligible. 2. I am completely aware of the server tick. I am referring to CLIENT SIDE LAG, I have said this before. The slowest dial-up connection in the world does not make the client freeze to a standstill and send your CPU usage rocketing to 100%. 3. I know it's not going to die soon. COBOL hasn't... but that doesn't mean it's a great programming language. Furthermore the overhead IS noticeable. Don't say it isn't.
  2. What is the fastest way to 99 in each skill? I'm looking for realistic methods, and none of them have to be profitable (e.g. if fishing trout/salmon is faster XP than monkfish, so be it). Post multiple methods if you know of them, e.g. a slightly less expensive way. Please include any details you know, such as XP/hr, and do include methods than utilize boosts such as proto-tools and brawling gloves. Also, I am curious - is the experience gain given by proto-tools enough to justify the time spent getting them, and is it enough to justify the money saved in certain skills, and if so, which ones? The reason for all this is that I am working on a spreadsheet to determine the best methods for gaining 99 in any skill and so that we can perform various calculations to find the time and cost required. RuneScape mathematics are always fun. Here is the spreadsheet: https://spreadsheets.google.com/ccc?key=0AowEedKb65lOdFNpbWI0V3U1RlQxczh2R3NhMDJlUmc&hl=en&ui=2 I will update it periodically as info is posted.
  3. If you want to support EVERYONE, use java. One of my pet peeves when I'm looking for an application is having to sort through all the crap in their distro page. No, I don't want your source code. I don't want to have to compile it myself, as your end user, I'm lazy. Just give me a binary, kthxbye. No, if you want to support EVERYONE, use C/C++. Because it compiles to MACHINE CODE, it is absolutely guaranteed to run on the intended platform. With Java, you must have a JVM installed on that platform. If it's not available, you're going to have to write one... that's not a simple one-day project. C++ is, always has been, and always will be more portable. It's all about how you do it. And who says all C++ applications don't offer binaries and all Java applications do? That's just stupid. You could just as easily find a website with a Java application that didn't offer pseudobinaries. If you know they're different due to their support, don't bring it up. The fact that Google decided to support every feature of java in their phone versus Blackberry deciding they only wanted to support the essentials. One will run *any* java se application, the other will run *any* java me application. Saying that Java lied to you because you can't run some behemoth of a desktop application on a phone is stupid. My sole point was that you'd need to maintain several different versions. I don't think we're actually disagreeing on this. You could've ripped java for not having an unsigned data type. You could've ripped it for not having native support for communications ports on windows PCs. But ripping it because its slow and inefficient? Give me a break. Everything programmed since the 1980's can be considered inefficient because its not written in assembly. Those things are irrelevant to me because I can simply choose not to use it. Java not having an unsigned data type doesn't affect my ability to play RuneScape. Java not having native support for com. ports doesn't affect my ability to play RuneScape. However, its lack of sufficient performance DOES, and THAT is what I am complaining about. And your last sentence is so not true. C++ compilers usually generate more efficient code than a human will, coding assembly by hand. Runescape has an obvious game tick of 600 milliseconds. That is designing the game to be slow. That isn't a limit from Java, that is a limit they placed upon themselves. That 600ms processing interval is on the server. It has no effect on the client's ability to render graphics efficiently. Not true. Your computer does not store the entire world map when you first load Runescape. If it did, you'd never get a black area on the minimap for what hasn't loaded yet. You load a significant area at a time, and keep track of all the objects inside of that area. Increasing graphics quality increases the amount of data that has to be sent when a new area loads. Having known people who mess with private servers, I can prove you are incorrect. You are correct in saying it does not store the entire world map when you first load RuneScape, BUT it downloads it as you play the game, whether or not you're in the area, along with other data such as models and icons. When it has finished downloading everything, it stays cached in, for example, C:\.jagex_cache_32 on Windows machines. Then it does not download anything else until the next game update. The reason you get a black area on the minimap is because it loads the map from your hard drive into memory when you enter the area, and unloads it when you leave. This takes time. If Jagex were to load the entire map into your memory at once, two things would happen: RuneScape's startup time would slow significantly, and you'd use a LOT more memory and probably run out. When I was writing a terrain system for a project (ever done this?) I decided to test something by loading every bit of map into memory. My program was at about 800 MB memory usage, and my map was only about the size of RuneScape's current surface. You need to separate RuneScape from Java. Really, the new graphics stuffs that Jagex has implemented is all in native code, which is why it may or may not be supported for various computers with different drivers. If RuneScape was purely java, you wouldn't need the .dll's that cause the game to run. You're kind of contradicting your argument here. First Java is the bees knees because it runs on every platform with one pseudobinary, but now you're admitting that it needs native code to run thus defeating Java's "write once, debug everywhere" motto. And now you are trying to make excuses by saying it might not be supported for various computers because some of the graphics are implemented in native code? So Java's great but because a particular Java program is partially supported by native code, it performs poorly on Jard's computer because it's in native code thus doesn't work as well as Java, but native code has better performance. I am now confused.
  4. I suggested directly to Mod Mark (content lead) that POHs should be able to store the Trouble Brewing costumes. He told me it was a great idea, and it came out a few months later.
  5. Its not the effort to compile it 3 times, its the effort to maintain distributions for every single user. Mac users, download this version. Windows users, download these versions. If you have 64 bit windows, download this one, if you have multiple cores, download this one. If you're on XP, download this one. If you're on '98, download this one. Linux users, I only support redhat and fedora. Everyone else is so-outta-luck. It gets complicated very fast, instead of the "everyone download this jar file, one size fits all". You're just trying to find a non-argument now. First it was too much effort to compile your apps for each platform, now it's too much effort to "maintain distributions"? WOW, 5 different downloads. I am struggling in difficulty! Also... a different version for multi-core processors? Where did you get that one? And why are you bothering to support 98? That's been obsolete for years. Also, if your program consists of a "single jar file, download this one size fits all lol!", chances are you know very little about software distribution and in addition your program probably isn't very useful. The main reason embedded devices "force" Java is so that there can be developers! Every embedded device has a different processor, has different memory configurations and different architectures (Harvard vs. von Neumann is a major issue). These are things that are impossible to overcome when the programmer is forced to control memory management. The devices you cited are not be compatible, but that's because there's a difference between the two libraries they use, ME and SE java. But between each set of devices, they are compatible. Androids use java SE - meaning they can do all the swing components and more. Blackberries use java ME, which means they use a more limited library (and they ignore certain things that don't apply to them). Androids can run Blackberry "java", Androids can run Desktop "java". Since you haven't programmed an xlet, and it seems your java experience is very limited to what you've read about, you have no idea how important it is to be able to compile once, run anywhere (on any platform). Every OCAP cable box you buy in the US is able to run java. You want to write a programming guide for set top boxes? Trivial. You want to write a programming guide for ALL set top boxes? Before java, impossible. I know Android and Blackberry aren't compatible due to a difference in libraries, but that doesn't change the fact you will need to build and maintain two entirely different versions of an application for each. You're just trying to make yourself look intelligent by stating things that do not add to your argument. My Java experience is very limited to what I've read about and I have no idea how important it is to be able to compile once, run anywhere? ON ANY PLATFORM! WOW! Now who's copying what they've read? Tell me, then, how important is it? You seem to be a very experienced software developer. The title of this topic, "Is RuneScape's technology obsolete?" seems to be a thread about java bashing. You obviously have a very limited java programming experience. There are a few things you could've said about Java to give yourself credibility (very simple, basic things), but you skipped them. Runescape was designed to be slow. It was a decision Andrew Gower made more than ten years ago, but its a decision that made Runescape accessible to people with horrible lag, and to people with slow computers. This is why Runescape is so popular today, because you don't need a gaming rig to play it. Java is a major part of that. How do I obviously have a very limited Java programming experience? You have not seen any of my work and have hardly any evidence to base that statement off of. And what are these "very simple, basic things" I could have said about Java to give myself credibility? I stated obvious facts in my post that a regular Joe would be able to see. No program is designed to be slow. That's just "bleeping developmentally delayed" as the word filter would force me into saying. Also, you just killed your own credibility with the following statement "decision that made Runescape accessible to people with horrible lag"... I'm assuming you're referring to network latency. Might I remind you that the quality of graphics does NOT change the amount of data being transferred between your computer and the server. You may have a larger initial download for higher detailed models and such, but once it's downloaded it's virtually the same as a Pac-Man MMO. All the client does is tell the server what actions it would like to perform, and all the server does is tell the client what to display. A "Display model 2894" message is the same size whether the model has 10 or 10,000 vertices. My computer is not too bad. It's not a gaming rig, but not junk either. It can hardly run RuneScape. It freezes every 30 seconds and the only way I can play it is on a tiny screen. When I played WoW for 10 days I had it on a pretty damn high screen resolution and it worked flawlessly. Never froze, never lagged. From what I've heard you saying so far, it sounds like YOU are the one with little programming experience, and are getting your arguments from Wikipedia. By the way, there's a LOT more to software development than just programming.
  6. I agree when you say that fighting over the "best" language to use is moot. It's never been about the best language, but the one that's best fit for the job. That being said, what do you suppose Jagex's mission for RuneScape and it s games is? It would most likely be a large distribution over as many platforms as possible. If that's their goal, then Java is likely the language that is best fit for this task. I would disagree. Java's cross-platform compatibility in this case really doesn't get them any advantage they couldn't get with C++. I would venture as far as to say that writing RuneScape in C++ would present issues with duplicated code and largely difficult-to-maintain source. After all, Windows C++ programs aren't guaranteed to run in Linux, which aren't guaranteed to run with Mac. On what grounds are you saying it would be duplicated and difficult to maintain? I do get the rub that you have a dislike for Java, but perhaps it is the best fit language in this case. Supporting three different C++ libraries gets tedious. Who said they'd have three different C++ "libraries"? You just need one. I have programs written in C++ that compile for all 3 OSs using a single set of source code. In fact, take VLC Media Player for example. It's written in C/C++ and is available for more platforms than you can imagine. There's even code for mobile devices in its source tree. There's just one set of source code for VLC MP. There's not a "Windows source", "Mac source" and "Linux/X11 source". There's one source, which can be compiled for any of the three. And by the way, I've seen plenty of bug reports in the RS database stating "On Windows platforms..." or "On Mac... platforms", etc. There are issues with the individual platforms despite Java.
  7. thing is, even if the looks of our characters are changed, that won't change turn-based combat where you hit the opponent in the exact same way over and over again. No graphics can change that, unless a massive amount of new animations are created, and adapt to hits being blocked, strikes to different body parts etc. etc. It'll look terrible, even if we have photographic realism, due to the non-direct combat of runescape (no asdw controlling, no strike area or type control). a game engine, or gameserver update is very necessary for reducing lag, not for better graphics. The is a lot more to this game than combat, so I don't see how totally un-runescaping runescape combat with asdw control, strike areas, type control, etc would make the game look any better. If what you want in a game is fancy combat controls, you should find some other game to get your fix of that. I've always thought runescape combat was just fine. I like it plain, simple, and straight forward the way it is. Personally, every runescape item could be replaced with a brown paper sack, and I would be fine with it. I play for how it plays, not what it looks like. But one thing I'm emphatic about is to leave in a low graphics option for people who don't have the internet or the computer to play a "fancy" game. As long as they leave a safe mode and I can still play it on my thrown together peice of junk computer, I'm down with what ever it looks lilke. "People who don't have the internet"? A C++ version of the client, with the main goal of better performance and the additional capability of better graphics, will not have any impact on network performance. Higher quality graphics don't put extra strain on your Internet connection. Where do you guys keep getting this? On the contrary, Java is becoming less prevalent, something many technology professionals agree on. Additionally, just because something is widely used does not make it good. How many here would agree Internet Explorer is the best browser, for example? Secondly, compiling is not difficult. This can be easily automated. Furthermore, "thousands" of devices? You're off by a couple orders of magnitude. No software program on the planet is available for "thousands" of different devices. Plus, Sun/Oracle supplies the JRE for a grand total four platforms: Windows, Mac OS X, Linux and Solaris. Anything else you're going to have to compile your own Java... kind of defeats your point. Do I think Jagex would spend time supporting Mac OS X and Linux if RuneScape were in C++? I can't determine that. Probably not, and if they didn't, chances are RuneScape would be a better quality game today because they would have used technologies like DirectX rather than a pure software renderer which was totally horrible. With the right tools and libraries, cross-platform compatibility is not difficult. I write C++ software for no less than 3 platforms and have only minor issues with it, issues which I would still have in Java because it does not support a cross-platform way to do what I need out of the box - such as enumerating the windows in a user session. There will always be a need for native code, like C++, because some things simply can't be done with pure Java/.NET/whatever. Oh, and back to your "compiling things for thousands of devices"... what do you think Java's written in? ;) C++ is and always will be a more portable language, because it doesn't require any special software to run. And it doesn't stand for Java Gaming Experts anymore. Look at the title bar on Jagex's corporate website: http://www.jagex.com/corporate/ Good point, although some of those are provided by JOGL (http://jogamp.org/jogl/www/), Jagex didn't write them themselves. Where did you read this? I don't see it. I call bs. Jagex always caters to low end high mobility games that suite the largest variety of people. I would look for them to make runescape work on those internet capable mobile phone/computer things. But, thats as exotic as it will get. I don't think you'll ever see RS come in dvds you buy at the store and need nvidia 1gb+ graphic gards. http://www.jagex.com/corporate/ Not BS. Look at the title bar. Where did you read this? I don't see it. I call bs. Jagex always caters to low end high mobility games that suite the largest variety of people. I would look for them to make runescape work on those internet capable mobile phone/computer things. But, thats as exotic as it will get. I don't think you'll ever see RS come in dvds you buy at the store and need nvidia 1gb+ graphic gards. They changed it ever since WoL, since it's not java Unless I'm mistaken, WoL wasn't made by Jagex, they just sponsored it. Also I can't imagine Runescape going of of browsers. They have a near monopoly as far as "browser-based+ MMO's go. In fact the fact that it's browser based and so easily accessible is one point that they make sure to keep at the forefront. That's not to say I wouldn't love to see runescape get a missive update into c++ as it would surely open up countless new avenues. However I think it's fine as is. It's carved out its own niche in the gaming world that absolutely no one can compete with. Runescape's accessibility thanks to java is also a huge boon. You can literally walk into a public library and play, no muss no fuss. If it were played through a downloaded client you couldn't do that. I can't imagine the people in the library would be ok with you walking in and downloading things onto public computers. I don't see how browser-based MMOs is really a market. People want games to play, they generally don't care how they are implemented. And if Google's NaCl becomes popular throughout the next few years, they would be blown out of the water... C++ games running in browsers. Although I'm not sure running games in browsers is such a good idea. They are so different from other types of applications. That is, if the public library has Java installed. That means someone actually has to go and install Java on the computers. If it were played through a downloaded client, chances are you could still do that. Plus, a game is a game. I don't see how they'd know the difference. Resize Internet Explorer behind the RuneScape window and they'd never know the difference. This really is a horrid argument and I hate hearing it. Things get downloaded whether it's being played in a browser or out. You're still downloading the client, and you're still downloading all the cache files. Also, you are using more bandwidth by downloading the game every single time you play it. ;) Downloads occur either way. Stop using this argument. You are quite correct. RuneScape's performance has degraded over time, I notice. It used to run smoothly, now it runs like a stop-motion animation or whatever you call it. It really does seem that Runescape has overstayed it's welcome on Java. You make an excellent point saying "it has no issue dealing with any of the AAA games out there on the highest settings". Hmm, I wonder how those game were programmed... Just because Java is used in a lot of places doesn't make it good. (I personally feel its mediocre - very middle of the road. Would never consider it if it weren't that it can go on almost any platform) :thumbup: Just because Java is used in a lot of places doesn't make it good. (I personally feel its mediocre - very middle of the road. Would never consider it if it weren't that it can go on almost any platform) No, it makes it incredible. I write java code on a windows machine. I compile it to bytecode, jar it up. I'm then able to put that on a thumb drive, go over to any distribution of Linux, or a Mac, or a Solaris, and run it getting the exact same results as the windows machines (without needing the source code). I can also write an Xlet for my bluray player, burn it to a DVD, and run it on any brand bluray player without having to worry about the inner architecture. If I like what I see on my samsung, I can give the disc to a friend and let them play it on their sony. Same with mobile phones - it doesn't matter the memory or processor instruction set, if its java, and the phone has a virtual machine, it'll run. You can't do that with c++. Uh-huh. Because it's soooooo much effort to compile it 3 more times. And you only get the "exact same results" if you actually wrote the code correctly. There are some 'gotchas' which will cause certain Java code to run differently depending on which platform it's being run. I guess Java might be a good language for people who write fairly simple programs that don't have that much functionality or performance demands. Secondly, the main reason these embedded devices force Java upon you is for security reasons - there's certain things they don't want you doing. It's easier to control the execution of Java code because it's run by a virtual machine rather than directly by the CPU. Desktop Java is not compatible with Blackberry Java is not compatible with Android Java is not compatible with any other Java. So much for your "works on everything". I have not used Xlets before and am not familiar with Blueray players so I can't comment on that part. I'm guessing you don't have that much experience in software design. Your only argument for Java was its ability to be run on a limited selection of different platforms without needing recompilation. That just sounds like you are being lazy... over a fairly trivial step in the development process. If you really wanted to make an argument for Java, try advocating some things such as garbage collection, fixed-size types, exceptions, first-class threads, the lack of pointers, the benefits of NullPointerException, never having initialized memory. I won't disagree with you on some of them. Haha, hell no we wouldn't have gotten support fror Linux/Mac if the game were written in C++. To be fair though, a lot of the libraries are packaged as C++, namely libjaggl. The thing about this is that they don't have to stick with Java on everything they do. They can mix and match to suit their needs, but it seems that their backend/server will at least remain Java-based. I say this only because of the plans to move to other consoles (which, thanks the console manufacturers, have stalled...). The perfect post to end with a response to. The best way to develop software is not to fight over what language is best for everything, but to use whatever language and tools are best for the job. Using multiple languages is often a good solution for some problems. For example, let's say I want to write a unit conversion app and have it run on as many platforms as possible. I could write it in C++/Qt for Windows, Mac OS X, Linux/X11 (and similar systems), Embedded Linux, Windows CE, Symbian, Maemo, Objective-C for iPhone and iPad, Blackberry Java for Blackberry, and Android Java for Android. Then again I guess that's really the minimum number of languages you can use... lol, so maybe it's not a good example but the point is you have to mix and match sometimes depending on what you want to do.
  8. thing is, even if the looks of our characters are changed, that won't change turn-based combat where you hit the opponent in the exact same way over and over again. No graphics can change that, unless a massive amount of new animations are created, and adapt to hits being blocked, strikes to different body parts etc. etc. It'll look terrible, even if we have photographic realism, due to the non-direct combat of runescape (no asdw controlling, no strike area or type control). a game engine, or gameserver update is very necessary for reducing lag, not for better graphics. The reason I suggest a C++ client in the first place is to reduce lag...
  9. I think they fact they u just posted a 2 sentince post with no actuel argumint and such kind of underminez 90% of ur argument. Do you even know what DirectX is, what OpenGL is? Anything that is a computer program can be 'hacked'. Java applets are no different, and are in fact easier to 'hack' as you can fairly easily get source code back from compiled Java and .NET applications. RuneScape's is obfuscated but the point is you can still get high level source code back. With a C++ application you'd be swimming in assembly, and there's a lot less people who can work with that easily, especially on the scale of an entire MMO client.
  10. I believe World of Warcraft allows you to script your user interface using a popular scripting language called Lua.
  11. For a while now, I have maintained that Java sucks and I hate it. I believe this started when I entered university, being forced to use it to write the usual introductory course nonsense like a program to put a list of books in order. Or maybe it was before. But anyways, the point it, I hate Java. The language is old and lacks too many simple features, it's slow as hell, and it's also slow. Every single other game I've ever played (which were written in C++) has had no performance issues and worked fine, and with better graphics. Maybe Jagex's programmers are just horrible. Maybe Java is just slow. Probably both. No, wait, it IS both. I played World of Warcraft for 5 days and found the GUI far better designed. It was also not slow. But before I encounter a slew of "K DEN GO PLEH WOW NOOB" I will say I don't intend to leave RuneScape - I still prefer its gameplay and simpler (though in some ways lacking) user experience over WoW's. RuneScape is a great game with a great background and storyline. *pauses* Shut up. But its current implementation is horrible. One of Java's supposed advantages is "write once, run anywhere". That became, "write once, debug anywhere." Jagex also thinks that RuneScape being a browser-based game is all great and fine. I say BS - RuneScape being a browser game means more memory and resources and the overhead of a plugin. Plus it's plain annoying. I don't want to have to open a damn web browser to play a game. I've been wanting a desktop application for so long now. Despite Java's sluglike performance, a desktop application would be a little better and would be less annoying since I don't have to open a stupid browser. It's not hard for them to make a desktop client. I've been able to code Java applications that worked out of the box as an applet OR a desktop application. It's just a few extra lines of code. It's been proven for years that Java applets are dying. Go on Stack Overflow, there's plenty of threads about it. I really don't think the "PLEH ANYWHUR HURR DURR" slogan that Jagex loves to use is really that much of an advantage. Browser or not, RuneScape is STILL a large program. There's no difference between loading for an hour and installing for an hour. RuneScape is just smaller than other games because everything is such low detail. I'm more apt to download a game than play a browser one, because odds are the downloadable one is better. Also, no one mention s ecurity. RuneScape is a signed applet, so it has permission to do basically whatever it wants. Keylog you, install viruses, etc. Not that Jagex would do that, but the technological capability is there. What would be even better, but is nearly impossible for obvious reasons, is to rewrite RuneScape completely, in C++, as a desktop application. Then again, companies do do radical changes requiring massive resources and effort. RSHD was a pretty huge update. Starting from scratch is even more demanding, but hey, it can be done. The thing is, is it worth it? Yes this would require a huge amount of resources from Jagex, and 99% chance it'll never happen, but there's also a 99% chance RuneScape will never keep up with or will always be 10 years behind everything else. Despite our own ramblings that graphics don't matter, many of you WILL admit they do matter to an extent, and no matter what WE think, a very LARGE number of other people DO think they matter - a lot. What do you guys think about all this? PS - Check out Google's NaCl project. It's kind of interesting. http://code.google.com/p/nativeclient/ This is so great it has to go on the first page.
  12. Last I checked, RS Wikia posted the wrong answers (the values that are off by 1 or 2 points).
  13. I initially guessed that, but levels 111 and 112 are off by 2 XP, so it can't be that. It would have to be off by 1 and only 1 for it to be a rounding problem. Plus we'd have most probably noticed it in levels 1 through 100. Not necessarily. The problem is that the values for (1/4)(floor(n + 300 * 2^(n/7))) are 1 high for n equals 100, 102, 110 and 1 down for n equals 101 and 112. The rest of the values are off because of inclusion of the wrong values in their summation. I'm beginning to wonder if they intentionally messed up a few of the values to screw us up - meaning it's not a different formula at all.
  14. I initially guessed that, but levels 111 and 112 are off by 2 XP, so it can't be that. It would have to be off by 1 and only 1 for it to be a rounding problem. Plus we'd have most probably noticed it in levels 1 through 100.
  15. This is why you turn your computer off. [hide]There's vulnerabilities in the operating system, too...[/hide] There could just as easily be a vulnerability in the Mac version of Java.
  16. You can use the objectives interface to find the experience required for any skill level from 2 to 120, that's how we know the real XP right now.
  17. They need to write RuneScape in C++ instead. It would run so much better it wouldn't be funny. I hate Java. :(
  18. As you all know, with the release of dungeoneering, the maximum level we can now reach is 120. For many years, we have used the following formula to calculate the experience required for a particular level: This formula can be written in a C-based computer language (C, C++, C#, Java, etc.) as follows (minor things may need to be changed depending on the language, this is just pseudocode): [hide] int experienceForLevel(int level) { double total = 0; for (int i = 1; i < level; i++) { total += floor(i + 300 * pow(2, i / 7.0)); } return floor(total / 4); }[/hide] and in PHP (since a lot of RuneScapers seem to be familiar with PHP more than any other language... probably due to the software most fan-sites use): [hide] function experienceForLevel($level) { $total = 0; for ($i = 1; $i < $level; $i++) { $total += floor($i + 300 * pow(2, $i / 7.0)); } return floor($total / 4); }[/hide] The above formula works perfectly for levels 1 through 100 (and 102). However, on levels 101 through 120, there are some inaccuracies... levels 101, 103-110 and 113-120 are 1 XP too high, and levels 111 and 112 are 2 XP too high. I find this a bit strange mathematically, but I am hoping that if we do some work, we can come up with a new formula that is accurate for all levels. The following code will calculate 100% accurate experience for all levels 1 to 120, but it is not defined mathematically. It just checks to see if the levels are the problematic ones I just mentioned, and subtracts 1 or 2 XP as needed. [hide]C-based version int experienceForLevel(int level) { if (level <= 0) { return 0; } double total = 0; for (int i = 1; i < level; i++) { total += floor(i + 300 * pow(2, i / 7.0)); } int tenative = floor(total / 4); // This fixes a few off by 1 or 2 errors... looks like our formula was wrong all along if (level == 101 || (level >= 103 && level <= 110) || (level >= 113 && level <= 120)) { tenative -= 1; } else if (level == 111 || level == 112) { tenative -= 2; } return tenative; } PHP version: function experienceForLevel($level) { if ($level <= 0) { return 0; } $total = 0; for ($i = 1; $i < $level; $i++) { $total += floor($i + 300 * pow(2, $i / 7.0)); } $tenative = floor($total / 4); // This fixes a few off by 1 or 2 errors... looks like our formula was wrong all along if ($level == 101 || ($level >= 103 && $level <= 110) || ($level >= 113 && $level <= 120)) { $tenative -= 1; } else if ($level == 111 || $level == 112) { $tenative -= 2; } return $tenative; }[/hide] So let's see what we can do about creating an accurate formula!
  19. The objectives interface allows us to prove these values as Nyosuht has shown, actually. I just didn't think to check them since the original formula we've used for almost 10 years now appeared to work. I didn't notice a few of the values were off by 1 or 2 points, which is pretty bizarre. I modified the program in my above post to return correct values for all levels from 1 to 120, so the table is fully accurate now. Thanks for posting those screenshots, Nyosuht. Now all we need to do is find a formula that covers all levels rather than the temporary hack formula I posted above...
  20. Now that dungeoneering allows us to get level 120, I think the XP table (http://www.tip.it/runescape/?page=xp_table.htm) should be updated. Here is a small C++ program that will calculate the required experience for each level. #include <iostream> #include <cmath> using namespace std; int experienceForLevel(int level); int experienceFromPreviousLevel(int level); int experienceToNextLevel(int level); int experienceDifference(int level1, int level2); const int MAX_LEVEL = 120; int main() { cout << "Level\tExperience\tXP from last\tXP to next" << endl; for (int i = 1; i <= MAX_LEVEL; i++) { cout << i << "\t" << experienceForLevel(i) << "\t" << experienceFromPreviousLevel(i) << "\t" << experienceToNextLevel(i) << endl; } return 0; } int experienceForLevel(int level) { if (level <= 0) { return 0; } double total = 0; for (int i = 1; i < level; i++) { total += floor(i + 300 * pow(2, i / 7.0)); } int tenative = floor(total / 4); // This fixes a few off by 1 or 2 errors... looks like our formula was wrong all along if (level == 101 || (level >= 103 && level <= 110) || (level >= 113 && level <= 120)) { tenative -= 1; } else if (level == 111 || level == 112) { tenative -= 2; } return tenative; } int experienceFromPreviousLevel(int level) { return experienceDifference(level, level - 1); } int experienceToNextLevel(int level) { return experienceDifference(level, level + 1); } int experienceDifference(int level1, int level2) { if (level1 == level2 || level1 <= 0 || level1 > MAX_LEVEL || level2 <= 0 || level2 > MAX_LEVEL) { return 0; } if (level1 > level2) { return experienceForLevel(level1) - experienceForLevel(level2); } else { return experienceForLevel(level2) - experienceForLevel(level1); } } And here is the output: Level Experience XP from last XP to next 1 0 0 83 2 83 83 91 3 174 91 102 4 276 102 112 5 388 112 124 6 512 124 138 7 650 138 151 8 801 151 168 9 969 168 185 10 1154 185 204 11 1358 204 226 12 1584 226 249 13 1833 249 274 14 2107 274 304 15 2411 304 335 16 2746 335 369 17 3115 369 408 18 3523 408 450 19 3973 450 497 20 4470 497 548 21 5018 548 606 22 5624 606 667 23 6291 667 737 24 7028 737 814 25 7842 814 898 26 8740 898 990 27 9730 990 1094 28 10824 1094 1207 29 12031 1207 1332 30 13363 1332 1470 31 14833 1470 1623 32 16456 1623 1791 33 18247 1791 1977 34 20224 1977 2182 35 22406 2182 2409 36 24815 2409 2658 37 27473 2658 2935 38 30408 2935 3240 39 33648 3240 3576 40 37224 3576 3947 41 41171 3947 4358 42 45529 4358 4810 43 50339 4810 5310 44 55649 5310 5863 45 61512 5863 6471 46 67983 6471 7144 47 75127 7144 7887 48 83014 7887 8707 49 91721 8707 9612 50 101333 9612 10612 51 111945 10612 11715 52 123660 11715 12934 53 136594 12934 14278 54 150872 14278 15764 55 166636 15764 17404 56 184040 17404 19214 57 203254 19214 21212 58 224466 21212 23420 59 247886 23420 25856 60 273742 25856 28546 61 302288 28546 31516 62 333804 31516 34795 63 368599 34795 38416 64 407015 38416 42413 65 449428 42413 46826 66 496254 46826 51699 67 547953 51699 57079 68 605032 57079 63019 69 668051 63019 69576 70 737627 69576 76818 71 814445 76818 84812 72 899257 84812 93638 73 992895 93638 103383 74 1096278 103383 114143 75 1210421 114143 126022 76 1336443 126022 139138 77 1475581 139138 153619 78 1629200 153619 169608 79 1798808 169608 187260 80 1986068 187260 206750 81 2192818 206750 228269 82 2421087 228269 252027 83 2673114 252027 278259 84 2951373 278259 307221 85 3258594 307221 339198 86 3597792 339198 374502 87 3972294 374502 413482 88 4385776 413482 456519 89 4842295 456519 504037 90 5346332 504037 556499 91 5902831 556499 614422 92 6517253 614422 678376 93 7195629 678376 748985 94 7944614 748985 826944 95 8771558 826944 913019 96 9684577 913019 1008052 97 10692629 1008052 1112977 98 11805606 1112977 1228825 99 13034431 1228825 1356729 100 14391160 1356729 1497948 101 15889108 1497948 1653868 102 17542976 1653868 1826015 103 19368991 1826015 2016081 104 21385072 2016081 2225933 105 23611005 2225933 2457626 106 26068631 2457626 2713437 107 28782068 2713437 2995874 108 31777942 2995874 3307711 109 35085653 3307711 3652007 110 38737660 3652007 4032139 111 42769799 4032139 4451840 112 47221639 4451840 4915229 113 52136868 4915229 5426849 114 57563717 5426849 5991725 115 63555442 5991725 6615397 116 70170839 6615397 7303988 117 77474827 7303988 8064254 118 85539081 8064254 8903655 119 94442736 8903655 9830430 120 104273166 9830430 0
  21. ' We agree on this. Has hell frozen over? :P Lol, nice one. Getting along is always a good thing. ;) If anyone is confused about the uranium thing... I just like chemical elements and I think uranium is awesome.
  22. I think we are getting a little ahead of ourselves by complaining about not being at platinum level. There are MANY things that Tip.It lacks. Working to improve should be our focus, then we can be at Uranium (the special radioactive level for super awesome fansites) level. :)
  23. I for one am sick of the stupid BS items that we get 10 of every year. They're just stupid USELESS collectible items that I'm forced to log on to get because if I don't get it now I can NEVER EVER EVER get it again later. Why not reuse some of the old ones and stop filling up my toy box with junk?!
  24. Don't forget to implement the Cloneable interface for classes that have a clone() method.
  25. Hmm. An aspiring young programmer. The best advice I can offer is be determined, don't give up, practice practice practice and teach yourself. In my experience, all the best programmers I know were self taught. If you keep it up then someday you'll be able to create a game like ArenaScape and more without ever even having taken a class. You could even teach your professors more than they teach you, and take 400 level classes in your first year of college no problem. ;) Goood luck... PS - Most universities today teach Java. Do yourself a favor and learn C/C++ before you get there. You'll thank yourself. And do me a favor and give your Java professors a hard time for teaching Java. Tell them every language is better than Java. Much entertainment usually results.
×
×
  • Create New...

Important Information

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