8 ms·
2004 RuneScape fit a multiplayer RPG into 56k dial-up
- OsrsNeedsf2P 17d agoIs this article just an analysis of the Lost City[0] codebase without linking Lost City? [0] https://github.com/LostCityRS https://github.com/LostCityRS
- NeutralWanted 16d agoIt is. Code snippets in the article are JavaScript as well, while only ever mentioning Java in the article
- jkm_dot_dev 16d agoHi, I'm the author - no it's not an analysis of the Lost City codebase (though I am a contributor to LC). Most of the knowledge came from my refactor of the #317 RS2 client (https://github.com/Jameskmonger/317refactor https://github.com/Jameskmonger/317refactor) though I looked at some other decompiled versions while writing this blog post.
- ZYbCRq22HbJ2y7 17d agonot to take away from the article, but some did with similar fidelity on 14.4k https://en.wikipedia.org/wiki/History_of_massively_multiplayer_online_games https://en.wikipedia.org/wiki/History_of_massively_multiplay... i think the author would find ultima online emulators interesting
- reactordev 16d agoOh Britannia, how you were so amazing before the Tramel/Felucia split.
- grebc 16d agoCome play The Second Age, it's free and still kicking! https://www.uosecondage.com/ https://www.uosecondage.com/
- reactordev 16d agoI no longer have the time to invest
- ZYbCRq22HbJ2y7 11d agosetup a agent harness to play it for you, the epitome of the times
- grebc 16d agoIt’s just a game brother, no investment necessary. But do as you wish :)
- reactordev 16d agoEvery game is a time sink, and RPG's are a time investment. Do you not understand this?
- grebc 16d agoIt’s a game brother, don’t take it so seriously. Bit sad if your enjoyment/relaxation is measured in this exacting way.
- Cpoll 16d agoYou won't really get much out of it playing 3hrs/week though.
- dcl 16d agoI played this as a young teen in 1998 and it's still the most powerful gaming experience and memories I have.
- YouGuysAreBorin 16d ago[flagged]
- deleted 16d ago[deleted]
- stackghost 16d agoThe comment you're replying to links to a wiki article that explicitly mentions both Tibia and UO.
- YouGuysAreBorin 16d ago[flagged]
- tibiamuch 16d ago[dead]
- percentcer 16d agoI don't understand how RuneScape managed to get the traction it did. 2004 was the same year World of Warcraft came out!
- deleted 16d ago[deleted]
- pton_xd 16d agoIt's free and you could play it in the school library, for one. Also it came out a few years before WoW.
- VertanaNinjai 16d agoIt was free to play when that wasn’t a popular financial model for games at the time. The memberships were also much cheaper than WoW and accepted different payment methods that would be more available to minors at the time.
- junon 16d agoAlso no need to install or commit to a guild or clan or whatever. You could just log in, screw around for an hour or ten, and log off. Then log in again from somewhere else. It was miraculous for a kid like me.
- connicpu 16d agoCould even run on the computers at my middle school, nobody thought to block it
- thothless 16d agoin addition to what others said... 2004 runescape, now "old school runescape", which is actually successor 2001 Runescape "Classic", were both playable in a browser. and my (parent's) PC couldn't even install, let alone run WoW. despite me trying with all my might. so I'm sure I wasn't alone. it was absolutely magical to me.
- stux 16d ago> Before any networking occurs, the client runs a breadth-first search using the local collision map to build a path from where you are to where you clicked, and then writes the packet for the server to read. [...] The packet contains the absolute position of the first waypoint in the path, followed by the delta of each waypoint in the path against the first one How come the client sends waypoints rather than just the destination? Naively it seems like sending less data would be better. Is the pathfinding so expensive that you'd want to avoid doing it on the server? I suppose it works out as long as it's cheap to validate/correct the client's path?
- connicpu 16d agoValidating that a path on a grid doesn't move through impassable objects is definitely much cheaper than running a pathfinding algorithm, especially on 2004 hardware. You'd have to make those checks as well in order to run the pathfinding.
- fufi2022 16d agoThe algorithm is very cheap to run for a client (linear first, then diagonal to target, stitch together as many of these as it takes in the fewest number of hops), as they have full map data downloaded. For 2k concurrent players on mid range 2004 hardware (you have to remember they had kind of old school tech even for the time, though I'd love to be proven wrong on this), and with all the other interactions that needed to run before the next game cycle, I think they probably decided it was better to be clientside. It's also possible they could have made it work, and it would have been a technical win, but just didn't need to since they had an MVP.
- petterroea 16d agoGood point. I wonder how many articles discuss old games and over-analyze choices that may actually be labelled as //TODO: good enough, fix later In the actual source code
- megagpt3 16d agoI was wondering how tileman gimmick accounts seemed to be forcing their pathfinding to unlocked tiles. That would explain it.
- akersten 16d agoI wish the author got more into the weeds of anitcheat and how it evolved over time. Jagex was banning bots based on mouse movement heuristics in like 2005. 20 years later and there's some JS framework on the front page here heralding that same kind of analysis as some revolutionary new approach. I can only imagine what the modern anticheat engine entails, especially in the era of LLMs that can reliably emulate a human player. (Some of them can even write quite technical blog posts that almost escape detection ;)
- hansvm 16d agoIt's gotten pretty good (finally good enough that you can observe it in the game's macroeconomics), but if you're any good as a programmer then it's no work whatsoever to build something which can bypass it indefinitely.
- OSaMaBiNLoGiN 16d agoI farmed tens of thousands of us dollars in modern RuneScape by unhooking the mousehook. It worked for decades. Find call to `SetWindowsHookEx` -> Find dword (`HHOOK`) it returns -> Inject module that calls `UnhookWindowsHookEx((HHOOK)(module_base + hhook_rva));` -> profit. Jagex has done some interesting things, but without fail, there is a blunder accompanying each.
- megagpt3 16d agoShort of hardware-enforced secure boot chain TPM anticheat there will always be a way around it. It's cat-and-mouse, not a single permanent solution.
- compsciphd 16d agoHonestly, I dont know why "xbox mode" isn't this for PCs. Instead of anticheat, reboot into a stripped down mode just for playing the game that has a secure boot chain that the app can attest and report to the servers about and then reboot back into normal windows. booting is so quick today that its hardly a friction point as it used to be.
- saejox 16d agoUltima online released in 1997 and required only a 28k modem. I also would argue it was a more complex game.
- ZYbCRq22HbJ2y7 11d agohad to download the client (mainly the map, entities) upfront though (like a 500MiB package) to my knowledge, no one has released a classic UO (t2a, etc) web client, though it would be pretty easy to do these days
- ectospheno 16d agoI played EverQuest on the PS2 using a modem in 2003. Performance was fine.
- aidenn0 16d agoOn PvP servers broadband was a huge advantage because you could switch zones much faster.
- deleted 11d ago[deleted]
- simonjgreen 16d agoPublish 124 released last week. Quite incredible that the game is still undergoing development and new content. Admittedly it has changed hands several times, and the Richard Garriot days are a distant memory now, but still! I used to operate one of the more popular player run shards, after the peak of the mainstream game, and even that feels like a distant memory. Edit: latest notes https://uo.com/wiki/ultima-online-wiki/publish-notes/publish-124/ https://uo.com/wiki/ultima-online-wiki/publish-notes/publish...
- deleted 11d ago[deleted]
- ZYbCRq22HbJ2y7 11d ago
- NDlurker 16d agoPhantasy Star Online on the Sega Dreamcast worked great on dial up
- tibiamuch 16d ago[flagged]
- sph 16d agoI love how when Runescape gets posted on here, there’s always a few proud stories of how people cheated. Today one is even admitting to RWT (real world trading) for tens of thousands of $, when elsewhere one shuts up about it because cheaters in multiplayer gaming are regarded as the antisocial scum that make the game worse for everybody else. It’s not really something to brag about. I guess one thing antisocial people lack is self-awareness.
- ZYbCRq22HbJ2y7 11d agoexploiting these games was how a lot of people learned to program, and those exploiting other aspects of the real world is how most people have careers as programmers. if you can't see this, you are lagging.
- brailsafe 16d agoI think this is both a fair cultural observation and one that's a bit excessive. I think people regard it as a point of pride because it didn't necessarily harm anyone, and because that experience was one of their pivotal early programming challenges that has a tangible return and that they had relatively high agency over. I look back on my time as a player of WoW during the Glider days as one where I was largely pissed that botters were ruining the economy for actual players, but I look back on my time in RuneScape as one where I was completely fixated on running my little factory and not wanting to actually play what was kind of a boring tedious game. I'm not proud today of having scammed people when I did, but I was proud of having a modicum of ingenuity and figured out how to exploit various things in the system. Real world trading, like many rules, isn't inherently immoral, but deliberately stealing money or items from people is. I highly doubt I'd have ever given a damn about programming if I hadn't tried my hand at Scar scripting as a kid for both RuneScape and Neopets. Simultaneously, I also scammed people and ripped off friends in various games, but that the two activities were mutually exclusive and I was just an asshole. I'm glad I got to explore the worst part of myself in a sandboxed environment rather than taking it to any serious level.
- t-writescode 16d agoI was going to say a comment about “back in my day”; but your account is from 2011, so you should know what video gaming was like in ye olden era. Did you mod in a Mew, or 256 Masterballs in Pokemon Red with a Game Genie? Why not? How about doing some weird stuff with Missing No? What about loading in some rare items in Diablo 1 on your local save and them importing them into Battlnet? especially before Diablo 2, 1.10? How about Early Minecraft - we’re talking Beta days. Did you test out those X-Ray block packs that helped you see diamonds? Cheating literally only matters when there’s a PvP or leaderboard or whatever glory-theft that comes from it. It’s only really shamed on when it hurts other people’s gameplay experience - like screwing with a leaderboard at the “low pain” end and ruining a multiplayer experience in the middle end. For everything else, it’s an experience modifier or a difficulty slider for your own private game experience. Lots of games nowadays add in those difficulty sliders directly or add sandbox modes where there used to be “cheating” that stuff in.
- aboardRat4 16d agoLineage 2 was launched in 2003 with a stunning 3d graphics. Sphera is even older. MMORPGs are super old.
- megagpt3 16d agoMUD1 is from 1978
- goldfishgold 16d ago[dead]
- dofm 16d agoOh man. The gamer cult around RuneScape was so hardcore and evangelical in 2004 that it is when it acquired the nickname "Run! Escape!" I never fell in with the cult and I am glad I didn't. The Dofus cult in the next few years was small and hilarious and luckily the economics of that game made it a bit less fun beyond a certain level, like the real world, so you could get out before you lost your mind.
- Aeolun 16d agoIf you actually build a binary protocol you'll quickly find that, unless you do very big worlds, 5 KB/s up/down goes a very long way.