shard-uo
v1.0.0
Published
Shard UO server process
Downloads
3
Readme
ShardUO
ShardUO is an experimental Ultima Online server. The goals of the project are to explore technologies that can allow an Ultima Online server to be ran with very little downtime and zero freezing while allowing for online development of content. I also want to enable a plugin architecture to allow easy customization of the gameplay experiance and network protocol on a running server without the need to apply source-level patches. Finally I wanted to offer all of this in a language that more people are familiar with. That brings us to ShardUO - a server written in JavaScript that uses a very flexible plugin architecture for both network packets and gameplay implementation.
Licensing
Please note that ShardUO is built to be shared by everyone. The terms of its license are such that if you alter the source code and then allow others to play on the server, you are required to make the altered source code available to them. This is true for the ShardUO core server and plugins created by its author. Other authors may release plugins under any licensing terms they wish. Please see the text of the license for more details.
Contributing
Any contribution is welcome! All code contributions must come through the standard GitHub PR process. I would recommend first creating an issue to discuss any defect or feature request prior to implementation.
Conventions
- ES6 syntax is used, I.E.
for(const v of a)
rather thana.forEach()
. - All objects are implemented as classes.
- All class names begin with an upper-case letter.
- All other identifiers begin with a lower-case letter.
- Private methods must be documented with @private.
- All classes and members must be documented with jsdoc.
- Please run
npm run prtest
prior to submitting a PR. This runs the linter and test suite the same way it will be ran on the CI environment.- 100% compliance with the lint file is required.
- 100% code coverage is required.
- All coverage ignore comments will be evaluated during the PR process.
- All code is expected to run on the latest versions of Node.js 6.x and 8.x on a Debian-derived Linux environment.
- The CI build tests all of this.
- It is sufficient to develop with one supported version of Node.js on a different OS, just be prepaired to support these configurations.
Hints
- Use of an IDE that integrates with ESLint is very helpful.