Giter VIP home page Giter VIP logo

moulars's Introduction

MOULArs - A Myst Online: Uru Live (Again) server in Rust

Introduction

MOULArs is a DirtSand compatible Myst Online: Uru Live (Again) server written in Rust. Although it is based on DirtSand, it is differentiated by a few key features:

  • Memory and error safety means the server is more resilient to crashes and misbehavior caused by clients sending bad or unexpected data.
  • Simpler configuration and setup, including automatic File Server manifest generation (see below)
  • Better cross-platform compatibility. MOULArs is known to work on both Linux and Windows, but it should also work anywhere else Rust and the library dependencies can run (macOS, OpenIndiana, *BSD, etc...)
  • MOULArs includes a REST API which can be used for informational and administrative tasks.

Like DirtSand, MOULArs is designed to work best with the H-uru Plasma client, but it may work with other compatible CWE/Plasma clients as well.

Building the code

Assuming you have rust with cargo already installed, building is usually as simple as cloning the repo and running cargo build.

For release builds (recommended for production servers), you should build instead with cargo build --release.

Setting up a server

... Database TBD ...

File Server

MOULArs includes a manifest generation tool that only requires you to provide files in an expected directory structure, and it will automatically generate manifests and encrypt/compress the files as appropriate. To use it, run mfs_tool update <path to data root> [--python <path to python executable>]. This will update existing manifests with any changes and new files, as well as producing new manifests (both for the initial server setup and for newly added client flavors, ages, etc.). When the --python parameter is also used, it will also compile any .py source files in the Python directory and produce an encrypted .pak file for the Auth server to send to clients.

To ensure all required manifests are properly generated, you should provide the files in the following structure:

<data root> (Configured via moulars.toml)
|- client/
|  |- windows_ia32/
|  |  |- external/
|  |  |  |- UruExplorer.exe  (External build)
|  |  |  |- UruLauncher.exe  (External build)
|  |  |  |- vcredist_x86.exe
|  |  |  `- Other .dll, .pdb, etc files for external build
|  |  `- internal/
|  |     |- plUruExplorer.exe  (Internal build)
|  |     |- plUruLauncher.exe  (Internal build)
|  |     |- vcredist_x86.exe
|  |     `- Other .dll, .pdb, etc files for internal build
|  `- windows_x64/
|     |- external/
|     |  |- UruExplorer.exe  (External x64 build)
|     |  |- UruLauncher.exe  (External x64 build)
|     |  |- vcredist_x64.exe
|     |  `- Other .dll, .pdb, etc files for external build
|     `- internal/
|        |- plUruExplorer.exe  (Internal x64 build)
|        |- plUruLauncher.exe  (Internal x64 build)
|        |- vcredist_x64.exe
|        `- Other .dll, .pdb, etc files for internal build
|- avi/
|  `- video files (.webm, .bik, etc)
|- dat/
|  `- .age, .prp, .fni, .p2f, etc files
|- Python/
|  `- .py files from Plasma's Scripts
|- SDL/
|  `- .sdl files
`- sfx/
   `- .ogg files required by PRPs

NOTE: Even if you do not plan on hosting a file server, you will need to provide the .age and .sdl files for the Game and Vault servers to function properly with the client's data set. It is not required to encrypt the files or build manifests when running without a file server.

moulars's People

Contributors

zrax avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.