Open-source multiplayer game server compatible with the RuneScape client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openrs2/share/doc/faq.md

57 lines
2.7 KiB

# Frequently Asked Questions
## How was build 550 chosen?
A mixture of reasons:
* The early HD era is my favourite. In particular, I like the 'clean'-looking
tabs in the game frame, and 550 was the last build with those. I also
considered 530, but 550 has a better built-in world map viewer (it supports
dungeons in addition to the main surface).
* Availability of the original loader, client, game unpacker and jaggl jars.
* Availability of a large proportion of the original client data files.
* Availability of a large proportion of the location file encryption keys.
## Why do the OpenRS2 Natives use Maven instead of Gradle?
[nar-maven-plugin][nar-maven-plugin] is, at the time of writing, significantly
better than Gradle's support for building native code. Gradle's new C++ plugin
simply doesn't provide enough features.
## Why rewrite the client's native libraries?
There are a mixture of reasons:
* Availability of the original native libraries. I struggled to find the
original native libraries for 550, except for 32-bit Windows. While Linux and
macOS natives are available for nearby revisions, they are not compatible with
the 550 client.
* The original native libraries were not built for 64-bit Linux and macOS. While
this was probably not a major problem in 2009, 64-bit architectures are now
the norm.
* Non-x86 architectures like ARM and RISC-V are becoming more popular. If we
start seeing a shift away from x86 on desktop machines, the native libraries
will need to be built for those architectures.
* The original macOS jaggl native library is backed by an NSView, which was
deprecated in Java 6 and removed in Java 7. Java 7 requires surfaces to be
backed by a CALayer instead.
* I anticipate that at some point in the future the Linux AWT implementation
will be ported from X11 to Wayland, which will require porting the jaggl
native library from GLX to EGL.
* The switch away from OpenGL to newer graphics APIs like Metal and Vulkan might
eventually necessitate the inclusion of OpenGL to Metal/Vulkan translation
layers.
* I'm concerned about backwards compatibility and bit rot. The original native
libraries were compiled 10 years ago, and at some point one of their
dependencies might drop backwards binary compatibility.
## Why does OpenRS2 run its own development infrastructure?
Even though OpenRS2 does not distribute Jagex's intellectual property, there is
a risk that it could be taken down from a service like GitHub by mistake,
causing disruption. Running our own infrastructure allows us to keep backups of
data not held in the Git repository, such as issues. If necessary, we can switch
to a different hosting provider at short notice while retaining such data.
[nar-maven-plugin]: https://maven-nar.github.io/