Skip to main content

About

This project is dedicated to researching the technical background of Gravity Co.'s 2002 MMORPG, Ragnarok Online.

One Repository to Rule Them All

Ever since RO was first created, there have been community projects interested in researching its inner workings. Many authors spent countless hours learning, coding, and debugging before - for some reason or another - losing interest in their various pet projects and letting most of their knowledge fall into obscurity. To say that good documentation on the topic is sparse would be an understatement, which in turn puts up high barriers to innovation and makes life difficult for anyone who wants to learn.

The Ragnarok Research Lab is a project long envisioned, with the goal of solving these kinds of problems... and here's how:

  • This website will present reviewed, updated, and organized information about all technical aspects of Ragnarok Online
  • Old sources are dug up, verified, and finally integrated to enrich a growing body of knowledge that anyone can reference
  • New and completely original research is conducted to keep up with the many changes that Gravity introduces to the game
  • By working together with all community authors, technical details known to few can be published and shared with ease

All of this has been happening - somewhat behind the scenes - for a few years already. The results have been impressive, but more is yet to come. With the help of the community, hopefully soon most open questions will be answered in a way that's easy to digest. Plus, having it all collected in a git repository will ensure the information remains available for many years to come.

Research and Development

As part of the ongoing research effort, specialist tools have been developed. While most aren't quite ready for a production release, expect more and more of them to appear here as they grow increasingly stable and mature. A few examples:

  • A well-tested library for decoding (and encoding) client files
  • Datamining utilities to help analyze the client's file formats
  • 3D visualization framework to render models, sprites, and effects
  • A web-based analysis platform for client- and serverside data

While similar software has been written and released before, none have so far focused on education and learning.

A Collaborative Effort

Since this is essentially a community service, it can only succeed if as many people as possible lend a hand. If you're involved with a Ragnarok-related project, please consider contributing your knowledge (and a bit of time) to this documentation!

  • It's the best way to make sure your work benefits as many people as possible and won't be forgotten
  • Teaching others what you've learned will also broaden your understanding, which positively impacts your own results
  • There are no politics or preferential treatment; great documentation is for everyone and independent of any one project
  • Lastly, you're sure to find a community of developers who are happy to help with any problem you might encounter

Should you be interested, please check out the Contributor's Guide! It features handy references, instructions, and much more.

First Steps

For your convenience, this documentation website is split into multiple categories:

  • The File Formats specification covers all client-side file formats that Gravity invented for Ragnarok Online
  • To see how they can be used to reconstruct a visual representation of the world, take a look at the Rendering category
  • In the Game Mechanics section, you can learn much about the implementation of the gameplay logic on the zone servers
  • For some more background information on Ragnarok Online's predecessor and how it relates to RO, see Arcturus
  • General terms used across this website are listed on a separate page, under Glossary

If that isn't quite what you were looking for, feel free to ask any questions on Discord or open an issue on GitHub!