Highly Performant & Scalable Ultima Online Server Emulator https://www.modernuo.com
Find a file
Kamron Batman 76fddcbccd
feat: Adds a single threaded array pool (#967)
## Added Feature
Adds a single threaded array pool that works exactly the same as `ArrayPool<T>.Shared`.
The `STArrayPool<T>.Shared` can only be used on a single thread, the main game thread of the server.

Note: Unlike the built-in array pool, there is no hook into the _GC Gen 2_. This means to relieve potentially high memory pressure, `ArrayPool<T>.Shared.Trim()` must be called. The pool will only release arrays _after two successive calls within 10 seconds or longer_. If the server is at less than 70% total memory usage, or the server is not going to use this pool for something egregious, then don't bother ever calling Trim().


## Changes
- [X] Fixes ArrayPool calls that should be cleared due to references.
- [X] Benchmarks against ArrayPool with 4+ rented arrays deep of the same length.
- [x] Unit tests
2022-03-22 09:58:24 -07:00
.config fix: Moves codegen to its own repo (#918) 2022-02-12 17:58:42 -08:00
.github chore: Updates CI/CD to use .NET 6.0.201 (#964) 2022-03-18 19:49:50 -07:00
Distribution/Data fix: Round 3 of speed updates for NPCs (#963) 2022-03-18 12:56:42 -07:00
docs docs: Updates markdown docs (#912) 2022-01-03 22:10:29 -08:00
Projects feat: Adds a single threaded array pool (#967) 2022-03-22 09:58:24 -07:00
.editorconfig Adds ModernUO docs skeleton (#243) 2020-09-13 15:21:28 -07:00
.gitattributes fix(git): Updates git attributes (#477) 2021-02-06 21:15:29 -08:00
.gitignore fix: Fixes missing EJ houses in catalog (#925) 2022-02-04 09:33:12 -08:00
azure-pipelines.yml chore: Updates CI/CD to use .NET 6.0.201 (#964) 2022-03-18 19:49:50 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2020-05-05 08:51:39 -07:00
CONTRIBUTING.md chore: Updates discord links (#394) 2021-01-07 01:04:05 -08:00
Directory.Build.props fix: Fixes ruleset (#934) 2022-02-17 08:45:08 -08:00
FAQ.md fix: Updates dependencies, cleans up csproj, and updates README (#784) 2021-09-15 09:54:15 -07:00
GOALS.md Updates to .NET Core 3.1 & Cleanup (#79) 2020-01-19 12:47:34 -08:00
LICENSE Fixes more line ending issues (#267) 2020-09-27 13:54:56 -07:00
mkdocs.yml docs: Fixes edit uri for docs (#913) 2022-01-03 22:16:56 -08:00
ModernUO.sln fix: Deletes schema migration project (#954) 2022-03-07 22:43:30 -08:00
publish.cmd fix: Fixes argument for schema generation in publish command (#935) 2022-02-18 11:00:10 -08:00
publish.sh Release Version 0.6.1 (#205) 2020-08-30 23:15:47 -07:00
README.md chore: Updates readme to remove blurb about schema migration (#937) 2022-02-18 11:15:32 -08:00
rider-settings.zip Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00
Rules.ruleset Cleanup & Fixes for .NET 5 (#309) 2020-11-15 10:03:50 -08:00
RUNUO_MIGRATIONS.md Fixes more line ending issues (#267) 2020-09-27 13:54:56 -07:00
SPONSORS.md fix: Updates dependencies, cleans up csproj, and updates README (#784) 2021-09-15 09:54:15 -07:00
stylecop.json Updates formatting rules (#199) 2020-08-25 18:00:51 -07:00
THIRD-PARTY-NOTICES feat: Networking v3 using epoll/kqueue (#813) 2021-10-03 18:04:53 -07:00
version.json fix: Fixes NPC slowness. (#955) 2022-03-10 22:55:06 -08:00

ModernUO Discord Subreddit subscribers Twitter Follow Gitter

Ultima Online Server Emulator for the modern era!

GitHub license GitHub stars GitHub issues
GitHub build AzurePipelines build

Requirements

Supported Operating Systems

Windows 10/11/2016/2019/2022 MacOS 10.15/11/12 Debian 10/11 Ubuntu 16/18/20 LTS Linux Mint 17/18/19/20 CentOS 7/8 Fedora 32/33/34 RedHat 7/8

Running the server

.NET

Development

git .NET

Supported IDEs

    Jetbrains Rider 2021.3                           Visual Studio 2022
Rider 2021.3+             Visual Studio 2022+

Note: VS Code is not currently supported.

Getting Started

  • Install prerequisite requirements
  • Clone this repository (or download the latest):
    • git clone https://github.com/modernuo/ModernUO.git
  • Open ModernUO.sln to start developing

Building/Publishing

  • Run ./publish.cmd [release|debug (default: release)] [os]
    • os - Supported operating systems
      • win - Windows 10/11/2016/2019/2022
      • osx - MacOS 10.15/11.0+/12.0+ (Catalina, Big Sur, Monterey)
      • ubuntu.16.04, ubuntu.18.04 ubuntu.20.04 - Ubuntu LTS
      • linuxmint.17, linuxmint.18, linuxmint.19 - Linux Mint
      • debian.10, debian.11 - Debian
      • centos.7, centos.8 - CentOS
      • fedora.32, fedora.33, fedora.34 - Fedora
      • rhel.7, rhel.8 - Redhat
      • If blank, the operating system running the build is used. Linux Mint 20 is not supported directly yet, so build explicitly against ubuntu.20.04 instead.

Running the Server

  • Follow the publish instructions
  • Run ModernUO.exe or dotnet ModernUO.dll from the Distribution directory on the server

Note: If you are running a version of linux that isn't listed above, then you may have to install the following using a package manager:

  • libargon2-dev, libz-dev, and zstd

Thanks

  • RunUO Team & Community
  • ServUO Team & Community
  • Karasho, Jaedan and the ClassicUO Community

Troubleshooting / FAQ

Want to sponsor?

Thank you for supporting us! You can find out how by visiting the sponsors page.



Development Tools provided with ♥ by