chore: Updates readme files (#2247)

This commit is contained in:
Kamron Batman 2025-07-27 11:04:32 -07:00 committed by GitHub
parent d6bb8316d0
commit 52e309ef95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 24 additions and 148 deletions

View file

@ -9,22 +9,22 @@ ModernUO [![Discord](https://img.shields.io/discord/751317910504603701?logo=disc
[![GitHub license](https://img.shields.io/github/license/modernuo/ModernUO?color=blue)](https://github.com/modernuo/ModernUO/blob/master/LICENSE) [![GitHub license](https://img.shields.io/github/license/modernuo/ModernUO?color=blue)](https://github.com/modernuo/ModernUO/blob/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/modernuo/ModernUO?logo=github&style=flat)](https://github.com/modernuo/ModernUO/stargazers) [![GitHub stars](https://img.shields.io/github/stars/modernuo/ModernUO?logo=github&style=flat)](https://github.com/modernuo/ModernUO/stargazers)
[![GitHub issues](https://img.shields.io/github/issues/modernuo/ModernUO?logo=github)](https://github.com/modernuo/ModernUO/issues) [![GitHub issues](https://img.shields.io/github/issues/modernuo/ModernUO?logo=github)](https://github.com/modernuo/ModernUO/issues)
<br /> <br/>
[![GitHub build](https://img.shields.io/github/actions/workflow/status/modernuo/ModernUO/build-test.yml?branch=main&logo=github)](https://github.com/modernuo/ModernUO/actions) [![GitHub build](https://img.shields.io/github/actions/workflow/status/modernuo/ModernUO/build-test.yml?branch=main&logo=github)](https://github.com/modernuo/ModernUO/actions)
[![Azure Pipelines build](https://dev.azure.com/modernuo/modernuo/_apis/build/status/Build?branchName=main)](https://dev.azure.com/modernuo/modernuo/_build/latest?definitionId=1&branchName=main) [![Azure Pipelines build](https://dev.azure.com/modernuo/modernuo/_apis/build/status/Build?branchName=main)](https://dev.azure.com/modernuo/modernuo/_build/latest?definitionId=1&branchName=main)
## Requirements ## Requirements
#### Supported Operating Systems #### Supported Operating Systems
[![Windows 10/11/2019/2022](https://img.shields.io/badge/-server%202022-3c78d5?labelColor=222222&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHJvbGU9ImltZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48dGl0bGU+V2luZG93czwvdGl0bGU+PHBhdGggZD0iTTAsMEgxMS4zNzdWMTEuMzcySDBaTTEyLjYyMywwSDI0VjExLjM3MkgxMi42MjNaTTAsMTIuNjIzSDExLjM3N1YyNEgwWm0xMi42MjMsMEgyNFYyNEgxMi42MjMiIGZpbGw9IiMzYzc4ZDUiLz48L3N2Zz4=)](https://www.microsoft.com/en-US/evalcenter/evaluate-windows-server-2022) [![Windows 11/2019/2022/2025](https://img.shields.io/badge/-server%202025-3c78d5?labelColor=222222&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHJvbGU9ImltZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48dGl0bGU+V2luZG93czwvdGl0bGU+PHBhdGggZD0iTTAsMEgxMS4zNzdWMTEuMzcySDBaTTEyLjYyMywwSDI0VjExLjM3MkgxMi42MjNaTTAsMTIuNjIzSDExLjM3N1YyNEgwWm0xMi42MjMsMEgyNFYyNEgxMi42MjMiIGZpbGw9IiMzYzc4ZDUiLz48L3N2Zz4=)](https://www.microsoft.com/en-US/evalcenter/evaluate-windows-server-2022)
![MacOS 13+](https://img.shields.io/badge/-sonoma-222222?logo=apple&logoColor=white&labelColor=222222) ![MacOS 13+](https://img.shields.io/badge/-sequoia-222222?logo=apple&logoColor=white&labelColor=222222)
[![Debian 11+](https://img.shields.io/badge/-bookworm-A81D33?logo=debian&logoColor=A81D33&labelColor=222222)](https://www.debian.org/distrib/) [![Debian 12+](https://img.shields.io/badge/-bookworm-A81D33?logo=debian&logoColor=A81D33&labelColor=222222)](https://www.debian.org/distrib/)
[![Ubuntu 20+ LTS](https://img.shields.io/badge/-22LTS-E95420?logo=ubuntu&logoColor=E95420&labelColor=222222)](https://ubuntu.com/download/server) [![Ubuntu 22+ LTS](https://img.shields.io/badge/-22LTS-E95420?logo=ubuntu&logoColor=E95420&labelColor=222222)](https://ubuntu.com/download/server)
<br /> <br/>
[![Alpine 3.18+](https://img.shields.io/badge/-3.18-0D597F?logo=alpinelinux&logoColor=0D597F&labelColor=222222)](https://alpinelinux.org/downloads/) [![Alpine 3.19+](https://img.shields.io/badge/-3.21-0D597F?logo=alpinelinux&logoColor=0D597F&labelColor=222222)](https://alpinelinux.org/downloads/)
[![Fedora 40+](https://img.shields.io/badge/-40-51a2da?logo=fedora&logoColor=51a2da&labelColor=222222)](https://getfedora.org/en/server/download/) [![Fedora 40+](https://img.shields.io/badge/-40-51a2da?logo=fedora&logoColor=51a2da&labelColor=222222)](https://getfedora.org/en/server/download/)
[![RedHat 8+](https://img.shields.io/badge/-8-BE0000?logo=redhat&logoColor=BE0000&labelColor=222222)](https://access.redhat.com/downloads) [![RedHat 8+](https://img.shields.io/badge/-8-BE0000?logo=redhat&logoColor=BE0000&labelColor=222222)](https://access.redhat.com/downloads)
[![CentOS 9](https://img.shields.io/badge/-9-262577?logo=centos&logoColor=white&labelColor=222222)](https://www.centos.org/download/) [![CentOS Stream 8+](https://img.shields.io/badge/-stream_8-262577?logo=centos&logoColor=white&labelColor=222222)](https://www.centos.org/download/)
[![openSUSE 15+](https://img.shields.io/badge/-15-73BA25?logo=openSUSE&logoColor=73BA25&labelColor=222222)](https://get.opensuse.org/) [![openSUSE 15.5+](https://img.shields.io/badge/-15.5-73BA25?logo=openSUSE&logoColor=73BA25&labelColor=222222)](https://get.opensuse.org/)
[![SUSE Enterprise 12 SP2+](https://img.shields.io/badge/-12%20SP2-0C322C?logo=suse&logoColor=30BA78&labelColor=222222)](https://www.suse.com/download/sles/) [![SUSE Enterprise 12 SP2+](https://img.shields.io/badge/-12%20SP2-0C322C?logo=suse&logoColor=30BA78&labelColor=222222)](https://www.suse.com/download/sles/)
[![Linux Mint 17+](https://img.shields.io/badge/-20-87CF3E?logo=linux%20mint&logoColor=87CF3E&labelColor=222222)](https://linuxmint.com/download.php) [![Linux Mint 17+](https://img.shields.io/badge/-20-87CF3E?logo=linux%20mint&logoColor=87CF3E&labelColor=222222)](https://linuxmint.com/download.php)
[![Arch](https://img.shields.io/badge/-Arch-1793D1?logo=archlinux&logoColor=1793D1&labelColor=222222)](https://archlinux.org/download/) [![Arch](https://img.shields.io/badge/-Arch-1793D1?logo=archlinux&logoColor=1793D1&labelColor=222222)](https://archlinux.org/download/)
@ -38,19 +38,16 @@ ModernUO [![Discord](https://img.shields.io/discord/751317910504603701?logo=disc
#### Development #### Development
[![git](https://img.shields.io/badge/-git-F05032?logo=git&logoColor=F05032&labelColor=222222)](https://git-scm.com/downloads) [![git](https://img.shields.io/badge/-git-F05032?logo=git&logoColor=F05032&labelColor=222222)](https://git-scm.com/downloads)
[![.NET](https://img.shields.io/badge/-%209.0.101%20SDK-5C2D91?logo=.NET&logoColor=white&labelColor=222222)](https://dotnet.microsoft.com/download/dotnet/9.0) [![.NET](https://img.shields.io/badge/-%209.0.303%20SDK-5C2D91?logo=.NET&logoColor=white&labelColor=222222)](https://dotnet.microsoft.com/download/dotnet/9.0)
#### Supported IDEs #### Supported IDEs
<p align="left">
<p align="left"><a href="https://www.jetbrains.com/rider/download"><img height="64" title="Jetbrains Rider 2024.3+" <a href="https://www.jetbrains.com/rider/download"><img height="64" title="Jetbrains Rider 2025+" alt="Jetbrains Rider 2025+" src="https://github.com/user-attachments/assets/456dc87e-a7e7-467b-81b6-ba9c8e227f86"></a>
alt="Jetbrains Rider 2024.3+" <img alt="space" width="32" src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png">
src="https://user-images.githubusercontent.com/3953314/133473479-734e425c-fbb6-433a-af2d-2cc8444398e8.png"></a><img <a href="https://code.visualstudio.com/download"><img height="64" title="VSCode" alt="VSCode" src="https://user-images.githubusercontent.com/3953314/200161017-7697171f-8f13-4829-95d0-8a25b59ee4c9.png"></a>
alt="space" width="32" src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://code.visualstudio.com/download"><img height="64" title="VSCode" <img alt="space" width="32" src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png">
alt="VSCode" <a href="https://visualstudio.microsoft.com/vs/community/"><img height="64" title="Visual Studio 2022 v17.12+" alt="Visual Studio 2022 v17.12+" src="https://user-images.githubusercontent.com/3953314/133473556-35fd48b4-6460-49b1-b7c5-b4a8c529cc04.png"></a>
src="https://user-images.githubusercontent.com/3953314/200161017-7697171f-8f13-4829-95d0-8a25b59ee4c9.png"></a><img alt="space" width="32" </p>
src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://visualstudio.microsoft.com/vs/community/"><img height="64" title="Visual Studio 2022 v17.12+"
alt="Visual Studio 2022 v17.12+"
src="https://user-images.githubusercontent.com/3953314/133473556-35fd48b4-6460-49b1-b7c5-b4a8c529cc04.png"></a></p>
## Getting Started ## Getting Started
- Install prerequisite [requirements](https://github.com/modernuo/ModernUO#requirements) - Install prerequisite [requirements](https://github.com/modernuo/ModernUO#requirements)
@ -60,9 +57,9 @@ ModernUO [![Discord](https://img.shields.io/discord/751317910504603701?logo=disc
## Building/Publishing ## Building/Publishing
- Run `./publish.cmd [release|debug (default: release)] [os] [arch (default: x64)]` - Run `./publish.cmd [release|debug (default: release)] [os] [arch (default: x64)]`
- `os` - [Supported operating systems](https://github.com/dotnet/core/blob/main/release-notes/7.0/supported-os.md) - `os` - [Supported operating systems](https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md)
- `win` - Windows 10/11/2019/2022 - `win` - Windows 10/11/2019/2022/2025
- `osx` - MacOS 12/13/14 (Sonoma, Big Sur, Monterey) - `osx` - MacOS 13/14/15 (Sequoia, Sonoma, Big Sur)
- `linux` - Linux - `linux` - Linux
- `arch` - `arch`
- `x64` - Intel 64-bit - `x64` - Intel 64-bit
@ -107,7 +104,7 @@ Thank you for supporting us! You can find out how by visiting the [sponsors](./S
- [Voxpire](https://github.com/Voxpire), the ServUO Team & Community - [Voxpire](https://github.com/Voxpire), the ServUO Team & Community
- [Karasho](https://github.com/andreakarasho), [Jaedan](https://github.com/jaedan) and the ClassicUO Community - [Karasho](https://github.com/andreakarasho), [Jaedan](https://github.com/jaedan) and the ClassicUO Community
</br></br> <br/><br/>
<p align=center>Development Tools & Plugins provided with &hearts; by <br /><a href="https://www.jetbrains.com/?from=ModernUO"><img align=middle src="https://github.com/user-attachments/assets/07b12bd0-ca00-472f-8a47-ab48461f3f1d" height="64px" alt="JetBrains" title="JetBrains" /></a><br /> <p align=center>Development Tools & Plugins provided with &hearts; by<br/><br/><a href="https://www.jetbrains.com/?from=ModernUO"><img align=middle src="https://github.com/user-attachments/assets/13752e36-87a4-4faf-8359-122c5f39d6e7" height="64px" alt="JetBrains" title="JetBrains" /></a><br/>
<a href="https://material-theme.com/"><img align=center src="https://material-theme.com/img/logo/material-oceanic.svg" width="64px" alt="Material Theme" title="Material Theme"></a> <a href="https://material-theme.com/"><img align=center src="https://material-theme.com/img/logo/material-oceanic.svg" width="64px" alt="Material Theme" title="Material Theme"></a>
</p> </p>

View file

@ -1,121 +0,0 @@
# From RunUO to ModernUO
RunUO was built using C# from .NET 1.1 in 2002. There have been massive changes to technology in the past 20+ years.
We believe it is time for Ultima Online to take advantage of this technology so a server can provide a richer experience with never before seen scale.
While it is possible (and many have done it) to migrate an _active server_ from RunUO to ModernUO, it is a daunting task.
Please ask for help in our discord!
## Technology
| | RunUO | ModernUO |
|:-------------|:------------------------------------------------------------------------------------------------------|:------------------------------------------------------------|
| Language | C# 4 | C# 11 (.NET 8) |
| Supported OS | 32 & 64bit Windows or Mono | 64bit Windows, MacOS & Linux |
| IDEs | [VS](https://visualstudio.microsoft.com/downloads/), [VSCode](https://code.visualstudio.com/download) | VS 2022+ or [Rider 2023+](https://www.jetbrains.com/rider/) |
## Code API Changes
* **ModernUO can use source generators to [serialization/deserialization](https://github.com/modernuo/SerializationGenerator#basic-usage) automatically.**
* This is the biggest change to the API! While intimidating and different, it unlocks the ability for ModernUO to only serialize _data that has changed_.
* We estimate a world save with 10mill objects on a busy server will take less than 1 second.
* This feature is _optional and will remain optional indefinitely_.
* `Serialize(GenericWriter writer)` and equiv deserialize was changed to `Serialize(IGenericWriter writer)`.
* The following now use generics, e.g. `BeginAction(typeof(X))` is now `BeginAction<X>`.
* CanBeginAction, BeginAction and EndAction
* FindRegion and IsPartOf
* FindGump, HasGump, and CloseGump
* Functions such as `OnAdded(object)` for both Items/Mobiles are now `OnAdded(IEntity)`.
* Most `delegate` have been changed to `Action`.
* Example: `EventSink.PlayerDeath += new PlayerDeathEventHandler(EventSink_PlayerDeath);` is now `EventSink.PlayerDeath += EventSink_PlayerDeath;`.
* `ObjectPropertyList` is now `IPropertyList`,
* Example: `GetProperties(ObjectPropertyList list)` is now `GetProperties(IPropertyList list)`.
* `[Constructable]` attribute is now `[Constructible]`.
### Object Property List API Changes
ObjectPropertyList has been drastically optimized, which means the API has been modernized:
❌ _Not valid_
```cs
list.Add(1061837, "{0}\t{1}", m_CurArcaneCharges, m_MaxArcaneCharges);
```
```cs
list.Add(1061837, $"{_curArcaneCharges}\t{_maxArcaneCharges}");
```
Clilocs that use arguments:
❌ _Not valid_
```cs
list.Add(1060659, "Level\t{1}", m_Level);
```
✅ - _Note the string as an argument, this is mandatory!_
```cs
list.Add(1060659, $"{"Level"}\t{Level}"); // ~1_val~: ~2_val~
```
Clilocs that use other clilocs as an argument:
❌ _Do not prepend #_
```cs
list.Add(1060830, $"#{dirt.ToString()}");
```
✅ _Use the new custom cliloc argument formatter_
```cs
list.Add(1060830, $"{dirt:#}");
```
## Core Changes
* ModernUO is not inherently thread safe. Overall infrastructure improved with CPU and minimizing memory garbage in mind.
* Timer system improved drastically by using [Timer Wheels](http://www.cs.columbia.edu/~nahum/w6998/papers/sosp87-timing-wheels.pdf).
* Networking is 5-10x faster by using fixed [Circular Buffers](https://en.wikipedia.org/wiki/Circular_buffer).
* Network packets are no longer objects and write directly to the network buffer, improving performance by 10x.
* World saves are 30x faster by saving to memory and flushing to disk in the background.
* Improved RNG accuracy and performance by 5x using [Xoshiro256++](https://prng.di.unimi.it/)
* Converted quite a bit of configuration to JSON with a central settings file.
* Logging changed from Console.WriteLine to Serilog (still work in progress).
* Eliminated calling `DateTime.Now` which had a huge performance penalty.
* Accounts are now saved to a binary file (will eventually change to a databse) to improve world save performance by eliminating XML.
* Strings are now built using the new interpolated string syntax, and highly performant string builders.
## New Features
* IPv6 support.
* Generic serialization that is automatically done in parallel with the world save.
* The [faction system](https://github.com/modernuo/ModernUO/blob/7adf52ef48df7ae2b034c27e67b0c332b37fb053/Projects/UOContent/Engines/Factions/Core/FactionSystem.cs#L15) is no longer powered by a single item and instead uses generic persistence.
* Timezone support for custom scripts that might need it.
* Hourly/daily/weekly/monthly backups & archiving using [Z-Standard](https://facebook.github.io/zstd).
* Client version detection (including CUO) for easy configuration.
* Localization (Cliloc) support.
* Better encryption for passwords using [Argon2](https://en.wikipedia.org/wiki/Argon2).
* Packet throttling that is configurable per packet and per connection.
* Enable packet logging per connection.
* Owner accounts can be protected from being locked out. The first account created is automatically added to this list.
* Use optional arguments from constructors for Add command.
* Captures Razor version and displays it in client gump
* Spawners can be exported/imported using commands and use a GUID for replacement.
## Major Feature Changes
* By default, world saves are now every 5th minute of a real world hour.
* E.g. 5:00, 5:05, 5:10, regardless of when the server is booted.
* Some items have their constructor arguments rearranged.
## Changes to UO Mechanics
* Min/max skill requirements for magery adjusted to be accurate to OSI
* Buffs/Curses now apply appropriately
## Removed Features
* Reporting
* Remote Admin
* My RunUO
* Event Log
* DocsGen command
## New Development Features & Changes
* Added a shared list/queue for temporary processing such as accumulating players to damage/kill.
* [PooledRefList](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Collections/PooledRefList.cs)
* [PooledRefQueue](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Collections/PooledRefQueue.cs)
* Adds HashSet that is ordered by insertion time
* [OrderedHashSet](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Collections/OrderedHashSet.cs)
* [PooledOrderedHashSet](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Collections/PooledOrderedHashSet.cs)
* Adds [StringBuilder](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Buffers/ValueStringBuilder.cs) that is fast and does not impose garbage collection.
* Adds performant [JSON](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Json/JsonConfig.cs) support with simple API.
* Adds performant, thread _unsafe_, [ArrayPool](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Buffers/STArrayPool.cs)
* Adds highly performant and easy to use converters for [HexString](https://github.com/modernuo/ModernUO/blob/main/Projects/Server/Text/HexStringConverter.cs) representation of data

View file

@ -5,6 +5,7 @@ Thank you to all of our generous sponsors that make ModernUO possible.
**A special thank you to the following sponsors for their considerable contributions:** **A special thank you to the following sponsors for their considerable contributions:**
* [Age of Shadows](https://ageofshadows.gg) * [Age of Shadows](https://ageofshadows.gg)
* [UO Outlands](https://uooutlands.com) * [UO Outlands](https://uooutlands.com)
* [UO Sagas](https://uosagas.com)
* Prayer ([MagnUm-Opus](https://discord.gg/CzDEq3vv2N)) * Prayer ([MagnUm-Opus](https://discord.gg/CzDEq3vv2N))
### Looking to sponsor ModernUO? ### Looking to sponsor ModernUO?
@ -31,6 +32,5 @@ xch1vzk93t538m4xukg955v3ltjtgz6rapev3evnmnxdzf4hjj5y7cuq7tkf6z
#### Bitcoin #### Bitcoin
37QmRWTCjVoNWycMpo1t5JnYVDmJTGSJ9W 37QmRWTCjVoNWycMpo1t5JnYVDmJTGSJ9W
#### Ethereum #### Ethereum
0x7A9D76F497d4Ee150Ada0ea0455fF3f6e8F3b6b8 0x7A9D76F497d4Ee150Ada0ea0455fF3f6e8F3b6b8

View file

@ -1,6 +1,6 @@
{ {
"sdk": { "sdk": {
"version": "9.0.101", "version": "9.0.100",
"rollForward": "latestMajor", "rollForward": "latestMajor",
"allowPrerelease": false "allowPrerelease": false
} }