Skip to content

An open source emulation for the backend of MQ's servers, written from scratch with love!

License

Notifications You must be signed in to change notification settings

FeroxFoxxo/MQReawakened

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


A community-driven server emulator, written completely from scratch in C#, for MQ!

License Wiki Wiki Stars

This server is completely free from the original game's assets / intellectual property.

None of the repo, the tool, nor the repo owner is affiliated with or sponsored by any affiliates of the original game.

Information

If you encounter any issues with the code, please submit an issue through the repo's issue system, and it will be assigned to someone accordingly.

If you need to report anything about this repo, or otherwise reach out to me, you can find me at feroxfoxxo@gmail.com.

Contributing

If you'd like to contribute to this project, please read CONTRIBUTING.md.

Prerequisites

  • You must provide your own copy of the game and its associated asset bundles.
  • You must provide your own associated DLLs from the game, which are to be added to the server itself on compile - ensuring this repo does not contain any copywritten code.

How to set up MQReawakened

Please read the developer guide here on how to set up MQReawakened.

If you want to play 2012 or earlier (NOT RECOMMENDED), please use the new and improved! MQClient found here.

Otherwise, simply edit the settings.txt and game/LocalBuildConfig.xml files from the original game client to point to the MQReawakened server you are trying to connect to, replacing the default supplied.

Gameplay

The project's goal is to faithfully recreate the game as it was at the time of the targeted build. While most features are implemented and the game is playable from start to finish, functionality or bugs may be missing.

When hosting a local server, you can access all commands by default (account level: owner).

Architecture

MQ consists of the following components:

  • A login server and asset hosting service over HTTP
  • A shard server that speaks the MQ network protocol over TCP

For 2012

  • A web browser compatible with the old NPAPI plugin interface
  • A .unity3d bundle that contains the game code and essential resources (loading screen, etc.)

For 2013/2014

  • A Unity executable file, typically in the /game/ folder, and a launcher.

Both the login and shard server run on the same Asp.Net application, as seen in this git repository.

The original game used the player's actual web browser to launch the game. Still, since then, the NPAPI plugin interface the game relied on has been deprecated and is no longer available in most modern browsers. MQR gets around this issue by distributing an older version of Electron, a specialised web browser software package.

The browser/Electron client opens a web page with an <embed> tag of the appropriate MIME type, where the src param is the address of the game's .unity3d entry point. This triggers the browser to load an NPAPI plugin that handles said MIME type, in this case, the Unity Web Player.

(similarly to https://github.com/OpenFusionProject/OpenFusion)

Other information

Running the game client on Linux

While the MQ server supports Windows and Linux (and other Unix-like systems), the game client natively supports only Windows because of the NPAPI Unity Web Player plugin needed to run the game. Nevertheless, the client runs very well in Wine if appropriately configured.

Due to the plethora of Wine prefix managers that people use (in addition to the option of just configuring your Wine prefix by hand), you could set the game up in several ways. Regardless of which you prefer, for MQ, there's a handful of dependencies you need to satisfy:

  • Electron (MQClient.exe) needs all fonts to run
  • It also needs to be run with the following arguments: --no-sandbox --disable-gpu
  • Using DXVK instead of wined3d is highly recommended to avoid graphical glitches like mission indicator rings not rendering

While we have not written a complete guide of how to do this yet, visiting OpenFusion's guide in how to do this, another Unity WebPlayer MMO, may provide a good enough understanding of where to start.

Open Source Licenses

Commemorations

  • Z6mbie - Logo designer.
  • Victti - Concept contributor & mentor.

About

An open source emulation for the backend of MQ's servers, written from scratch with love!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages