Hacker News new | past | comments | ask | show | jobs | submit login
Ragnarok MMO open-source HTML5 client (github.com/vthibault)
176 points by mihai_ionic on Sept 9, 2014 | hide | past | favorite | 52 comments



I never played this game, but back in HS/college I recognized that it brought one of the largest shares of traffic to my video game strategy guide wiki. The RO guide underwent constant maintenence by fans, and was subject to extreme organic growth despite no manual intervention on my part. The level of curation, attention to detail, and the extent to which it was taken was fascinating--and I didn't initiate any of it.

I was always impressed by the Ragnarok community.

Sadly, memory of those days was marred when a trusted friend that was running sysops hijacked my domain name account and stole the site from under me when I was overseas. But it was a good lesson in never trusting anyone and not to under any circumstance reuse passwords. (Granted, I swear Godaddy's password reset was an idempotent no-op back then... My account changes never seemed to persist.)


"idempotent no-op"

Isn't that the only kind?


Some of my earliest lessons in "how not to write software" came from listening to the ranting of a friend who worked on the original eAthena implementation (i.e. back when it forked from the Japanese Athena project and gained the "e" in its name). All of the fragile handoffs between the multiple server types (character, map, login) and the client. Most notable were the mountains of code, network and otherwise, that had to be written in knowingly buggy, inefficient or incorrect manner simply to properly mimic the official server functionality.

There was also one attempt to make an alternative client for the official servers to deal with some of the lackluster interface issues (longstanding, serious/obvious bugs from 2002 that lasted until 2009ish). From what I recall, it was way too much work, and the core features were easier to deliver as a sort of (eula-breaking) addon to the official client.


I might be able to give some insight, I helped found the RO emulation community back in 2003. Along with AppleGirl, I (AjS15822) made some of the first English NPC scripts used in all Athena servers, participated in YARE, contributed code to Athena, and ran several of the forums.

It's been a decade so my memory is a bit fuzzy, but here's what I remember about that time:

We started with AEGIS (leaked Korean server files) on the asb-sakray board [1] but it was notoriously hard to setup since it had major MSSQL and ODBC driver dependencies (I wrote guides). We started work on an installer for Aegis but realized we wanted to customize the server even more.

A few emulators started to take hold at this time (YARE probably the biggest) but Gravity (creator of RO) threatened legal action and shut it down.

Enter "Athena"— we discovered a Japanese RO server emulation project on the "Avethes" BBS that had the most complete packet mapping at the time. AppleGirl did most of the first translation of the code (AppleMod) which spawned a ton of other English emulation forks as the YARE developers jumped back on.

It was a really fun time for me— age 14, not much programming experience, in the middle of this massive, open-source MMORPG emulation war. I learned so much about C++, network programming, and server architecture during that time (as did many others). All the different forks openly stole code and ideas from each other so things moved very quickly.

The beautiful thing about writing code for RO private servers was the immediate sense of gratification you got. I could implement a small change to a skill, or a new NPC behavior, and then immediately log into the client and see it in action (and then thousands of users would see it in action when we committed the change).

We weren't concerned so much about code quality in the beginning since Athena strived to be a server modder's paradise— if you wanted raw stability, you went with Aegis instead. Stability came later once all the projects eventually aligned under one flag (eAthena).

I left in 2005 to work on server emulators for Lineage II, and later got bored of servers and jumped to client-side graphics programming, where I've been happily working for the last seven years. (Funny enough, my latest project [2] was used in Lineage II as well as hundreds of other MMOs and games, so I've now written code for both emulators and official. :))

[1] http://forum.asb-sakray.net/

[2] http://www.awesomium.com/


Thanks for the clarification and glad to see RO was a gateway into software for so many people :) I even remember YARE, if only vaguely.

A friend of mine who had a stint in a game studio is convinced he should never have to (re)write a UI in C++ ever again, now that "the web" has created such a lingua franca in the form of HTML, CSS and JavaScript. As evidence of this he often points to Awesomium and has spoken highly of it.


Haha awesome, I would love to meet your friend. :D


I wonder how much server emulation is done by children. I have a similar story except I was 13 and it was for Tibia (and OpenTibia).


Interestingly enough. I also worked on a MapleStory emulator at around age 14. It was all done in C++ and it was an incredible learning experience. I learned about crypto, reverse engineering, networking, packet sniffing, hacking, etc. The strange part was that my current motivation for the entire field revolved around this project I did as a kid. I'm now 21 and working at a game company and teaching. It feels so surreal looking back at it because a lot of the concepts I dealt with at age 14, seem more complicated than some of the network programming I do nowadays.

I still have the source code laying around somewhere and here's a youtube video of its very early stages.

https://www.youtube.com/watch?v=hH5FLfNPSn8


Weren't most of the Lineage 2 servers running on leaked code, not emulators?


Fuck yea, awesomium! I have been playing with that in VR on the rift!


We love the Rift! I'm working on an accelerated build that will run directly on the GPU, details this Fall. :D


I've read parts of the eAthena source code recently (https://github.com/eathena/eathena) and was very impressed with the code quality. Maybe they fixed the code base, or I didn't hit the worst parts, but I left feeling it was in good hands.


Oh yeah, while I haven't read the source directly in years, it is much changed. I was referencing 2004, only six months or so after iRO officially came out of beta. To say it improved since then is an understatement. Based on what I last knew about the scripting capabilities of the Gravity server implementation (circa 2008), I can safely say that eAthena eventually came to provide an easier model for rudimentary content creation and management than the official software.

Never mind security. Trying to wrap your head around the code behind why opening a dialog via item X and performing client action Y on the keyboard would bypass what should have been a server-side security check for a very important game mechanic was a lesson in all sorts of SE principles. Unnecessary coupling and spooky action at a distance, for starters. Repeat this a hundred times and mix in a handful of SQL injection points, plus some fundamental disagreements in how and when the game's content assumed characters would appear on a new map, versus how and when the official servers actually worked.

I am curious if and how eAthena eventually deviated from some of the idiosyncratic behavior of the official game servers.

From what I've heard in the years since I stopped playing, though, is that Gravity took the profits from their microtransaction e-store and managed to actually plow that money into improvements for the GM team's ability to meaningfully manage their servers and community. So my first paragraph likely applies only to a bygone era.


eAthena is somewhat outdated / abandoned due to the old admins that went AWOL. Jguy/Jman stepped up along with other contributors and created rAthena with goals on emulating newer parts of Ragnarok "renewal mechanics"

http://rathena.org/ https://github.com/rathena/rathena

its doing way better then eAthena :)


Oh my Lord...This just took all the way back to my teen years, I played RO from like . . . 12 years old all the way until I was 18/19ish. It was an amazing game, I know I still log into my buddy's private server every now and then to PvP a little bit and it's always a fun time!


For some reason, this game and Shadowbane have always been timeless for me. I am guessing its the amount of customization for each toon.


Just starting the demo, and hearing the music gave me chills. I have spent countless hours in that game.


I don't know how such a minimalist and simple could be so addicting. War on Emperium, PvP, and hours grinding cards. And even on low rates, just getting lost in these various worlds, exploring every little map...so many memories.


I can't get the demo to connect to the server, but the screenshots are super impressive.

The amazing part to me is that Ragnarok is still going. We used to play it in high school along with Helbreath because they were free MMOs and we had no money. :)


iRO was not free. The only time it was free was during the beta IIRC. After that there was a fee.


Hasn't it been free to play for years now?

They get their revenue from their shops, like how most private servers do it.


It is free to play now. The comment I was replying to seemed to indicate it was the earlier years of RO. Maybe I was mistaken.


I really wish I found this 3 days ago, spent almost all of Sunday trying to get RO to run on my macbook without dual boot :(

Nice work, time to spam LoV!


Ragnarok has long been a center for OS development of one kind of another. When I was younger I was part of a team of people trying to add the WoE feature set to one of the server emulators. I wasn't very capable, but I helped a little. I recall that it was made more difficult by the comments in the source code being in japanese.


Incredibly impressed.

I'm at work, and it's working superbly, with no noticeable lag or stuttering. I... I should stop.

Great work!


This game was the first MMO I really got into.

In the back of my mind, I always wondered if a project like this could be done (given that RO is MUCH less resource intensive than the quake engine, and other html5 demos I've seen, etc)...

I am so happy to see this project exist, I love this.


when will Starcraft brood war html5 that are capable of 2v2 online multiplayer available?


The tools to decompile starcraft were released on github. The next step is to recompile it to HTML5 instead of ARM. You can read about it here: http://pandoralive.info/?p=3089


Never if Blizzard has anything to say about it. Every time somebody tries to port SC, Blizzard shuts them down. Their lawyers are bloodthirsty.


18 months?


Hope that this is better code than the OS Ultima Online stuff I looked at years ago. Which looked a lot like decompiled binaries, even the original code…


Ultima Online was just a nightmare. They constantly released major protocol changes with each new patch, and those were pushed out on an almost weekly basis.

It was still really fun though to play as a GM on your own little personal server and melee guards.

Oh, I'd give the world to play that game again, pre-Trammel, with the active user counts that existed back in the day. The only choice today is the ruined mainline (WoW clone) servers, or ghost-town private (T2A) servers :(


This is awesome. Felt so nostalgic while going through the videos and screenshots. What an amazing game! And great work Vincent and team!


Are they using assets from the original game (if so, are they legally available), or is everything open source and original content?


It uses assets from the original game. Tou can download the desktop client and assets for free from the official ragnarok website, but I don't know if it's legally allowed to use the assets in this way. All the privately run servers also use the original assets.

This web client automatically downloads the required assets though. When I used the demo it just worked automatically. I didn't need to manually download anything.


Yes they are using original assets.

No it's not open source or legal, but Gravity appears to have given up on legally defending the game after eAthena got to a workable stage, as witnessed by innumerable pay-for-items private servers which all profit on original assets created by Gravity.

http://en.wikipedia.org/wiki/EAthena


I wonder in how many years we'll be able to play WoW or GuildWars2 on our browsers.


Welp, time to go recreate my Sniper and go MVPing.

Thanks for the post, definitely going to check it out!


the ragnarok beta got me re-interested in the old snes rpgs. good stuff.


Now you can grind your life away from the comfort of your own browser.


I saw this a few months ago. I never thought I would see it on HN.


Next up: open-source HTML Ragnarok Online bots.


Meanwhile you can probably connect HTML client to already existing open-source non-HTML bot [1] using its bot-as-a-proxy feature. Adding automation stuff directly to HTML client shouldn't be hard, assuming network protocol handling and state keeping already provided for you.

[1] https://en.wikipedia.org/wiki/Openkore


Where is the actual JS code for the client?


You can find it at https://github.com/vthibault/roBrowser/tree/master/ in the src folder.


welp, time to make Second Impact before Paul finds out


Yeah!


게토레이드


Demo doesn't work. Not super impressed.


The game server seems to be down. It worked when I tried it yesterday, and it plays pretty much exactly like the official client. It really is very impressive!


Sorry for the problem, it should be fixed for now. (cause: temporary ipban of the proxy server by the emulator server because of too much floods in the login module).


The servers have probably been HN DDOS




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: