MOSS is a UNIX-based server for the Myst Online: Uru Live client. Development began after the announcement of the shutdown of MOUL. It is complete enough to play the entire game, supports multiplayer use, is licensed under GPLv3, and is not ported to Windows.
MOSS was developed by a'moaca' and cjkelly1. a'moaca' wrote all the C/C++ code, and cjkelly1 wrote most of the SQL code, including doing research to determine how to set up the vault. cjkelly1 wrote a tool to create the manifest files required by the server, and also made the invaluable contribution of a lot of testing over the years. Weldergeek helped with some of the multiplayer testing, especially Heek. a'moaca' sincerely hopes there will be more contributors now that MOSS is released.
Why Use MOSS?
If you just want to host a private shard, MOSS should serve your purposes. "Before You Open Your Server" has some information on what you need to do should you decide to host an Uru shard.
The server definitely works with the CWE client! If you are thinking of doing client development you will probably find a server that is not MOULagain to test with quite valuable. (MOSS was also tested with PlasmaClient, but it does not fully work for PlasmaClient because it does some things that a'moaca' argues are bugs from the system perspective. Development on PlasmaClient is currently suspended, but let's fix it if development resumes.)
The server has some features meant to help make it a little easier to test ages you are creating. The SDL files for an age are loaded each time the age is started up so you can change them without restarting MOSS. There is full support for multiple .pak files. So, run your own server, test at your own pace. Test in the CWE client and not the PotS one.
How to Get It
The source code is hosted in a Mercurial repository here at OpenUru.org. You can clone (download) a copy of the repository using Mercurial, or you can use a snapshot. If you are considering making changes to the code, you will probably prefer using the version control. If you just want to compile and run a server, a snapshot should do. In addition, a compiled version is available for the TBD platform.
If you are new to Mercurial, you may want to check the QuickStart guide. There are links to more complete documentation at the bottom. The Foundry is secured via SSL throughout the site. A browser security certificate is needed. Instructions are available on the certificate installation page.
Repository address: https://foundry.openuru.org/hg/MOSS
Snapshot location: TBD
Binary package: TBD
How to Set Up a Server
The setup file contains a complete set of installation instructions. They do assume you are conversant with setting up software and basic management of a database. For additional setup instructions, see MOSS/Setup. Feel free to add any hints specific to your distribution here.
Cyan has provided a copy of the files needed for a server hosting MOUL content. The .sdl, .age, and Python source are all available at http://assets.openuru.org/cyan/Scripts.zip. If you are not interested in compiling your own Python from this source, you can also get a copy of the compiled Python from http://assets.openuru.org/cyan/AuthFiles.zip.
There is some Q&A and other notes of possible interest to someone running a server at MOSS/Notes.
How to Contribute
Contributing to the wiki pages is welcome. Adding extra setup instructions, or adding documentation about how MOSS works, are two good examples. It's a wiki, please contribute anything you think others might want to read.
Almost any code contribution is welcome. What is unwelcome?
- Protocol/behavior changes without corresponding client support (obviously).
- Changes that remove security without the option of keeping it.
- Changes that introduce security holes, either in the server itself or the vault.
- Changes that break big-endian support (call it a pet peeve if you like, it's still unwelcome).
- Changes that break the build (accidents do happen, but don't break it on purpose).
Hopefully it is not difficult to see why these things are unwelcome.
If you find a bug, please report it. However, please, please, please search first to see if it has already been reported. The bug tracker is available here.
If you find a bug and fix it, include the patch with the bug report! This increases the chances of it getting fixed rather a lot.
If you want to add a feature or change something, you can file a feature request or task bug to get your change considered for the central repository.
If you want write access to the central repository, contribute. The best choice for MOSS will probably be to use similar standards for determining who is given write access as CWE. At this time that's undecided, so the plan for MOSS is equally undecided. However, MOSS's original author is more involved than CWE's so if only a couple people show up to help then it's pretty clear a couple people will get write access soon enough!
Code reviewers might be needed. If you are willing to be a reviewer, say so! It is a very valuable contribution.
- MOSS/Distribution Specific Instructions
- MOSS/Developer Notes
- CyanWorlds.com Engine
- Building the plPythonPack and plFileSecure projects