Highly Performant & Scalable Ultima Online Server Emulator https://www.modernuo.com
Find a file
Kamron Batman 351611a23a
Updates movement packets & Fastwalk (#324)
- [X] Updates Movement packets
- [X] Adds OSI fastwalk packets. These aren't used on OSi anymore.
- [X] Adds new movement handling, but looks like the client doesn't use it. (Also leaving the 0x4000 Character List Flag off)
- [X] Adds time sync request handler, but also looks like the client doesn't use it.
- [X] Adds time sync response for time sync, just in case, but it isn't used, so not sure about the arguments.
- [X] Reimplements RunUO's fastwalk to use a circular array on the netstate instead of every mobile
- [X] Removes ClearFastwalkStack from RunUO implementation. This shouldn't be needed anymore

Changed fastwalk settings:
```cs
        public static int WalkFootDelay { get; set; } = 440;
        public static int RunFootDelay { get; set; } = 220;
        public static int WalkMountDelay { get; set; } = 220;
        public static int RunMountDelay { get; set; } = 110;

        public static bool EnableFastwalkPrevention { get; set; } = true;
        public static AccessLevel FastwalkExemptionLevel { get; set; } = AccessLevel.Counselor;

        // If this is changed during runtime, then the steps array needs resizing.
        public static int MaxSteps { get; private set; } = 4;
```

modernuo.json
```json
{
  "settings": {
    "movement.delay.runFoot": "220",
    "movement.delay.runMount": "110",
    "movement.delay.walkFoot": "440",
    "movement.delay.walkMount": "220",
    "movement.enableFastWalkPrevention": "True",
    "movement.fastwalkExemptionLevel": "Counselor",
    "movement.maxSteps": "4"
  }
}
```

Notes about OSI fastwalk:
While it does work, I can't find a benefit in using it because of the variable speeds. If players moved at a single speed then we could refill the stack every X milliseconds with 6 keys and use a naive token bucket implementation.
Unfortunately variable speeds mount/run/walk/etc means we would have to use a leaky bucket algorithm.
If we are using a leaky bucket algorithm with a variable leak, then we don't need to send tokens because we are already tracking it on the server side.

ModernUO vs OSI Fastwalk:
When the fastwalk was implemented on OSI, it used up to 6 tokens. These tokens were probably distributed every 600-750 milliseconds. To get the same effect, the new fastwalk settings might need to be adjusted. I would tweak them and feel free to let me know what worked for you!

Bumps release version
2020-11-26 23:53:47 -08:00
.github Fixes NBGV & Adds Big Sur to CI/CD (#317) 2020-11-17 13:02:51 -08:00
Distribution/Data Replacing Networking (#271) 2020-10-20 20:55:19 -07:00
docs Adds official .NET 5 support (#300) 2020-11-07 13:26:27 -08:00
Projects Updates movement packets & Fastwalk (#324) 2020-11-26 23:53:47 -08:00
.editorconfig Adds ModernUO docs skeleton (#243) 2020-09-13 15:21:28 -07:00
.gitattributes More gitattributes diff/line ending fixes (#269) 2020-10-01 21:38:42 -07:00
.gitignore Adds official .NET 5 support (#300) 2020-11-07 13:26:27 -08:00
azure-pipelines.yml Drop .NET Core 3.1 (#307) 2020-11-10 20:28:05 -08:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2020-05-05 08:51:39 -07:00
CONTRIBUTING.md Fixes more line ending issues (#267) 2020-09-27 13:54:56 -07:00
Directory.Build.props Updates Message Packets (#321) 2020-11-20 21:50:13 -08:00
FAQ.md Fixes more line ending issues (#267) 2020-09-27 13:54:56 -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 Creates quick start (#254) 2020-09-15 19:46:10 -07:00
ModernUO.sln Adds back in old benchmarks. Cleans up tests. (#270) 2020-10-04 11:45:07 -07:00
publish.cmd Drop .NET Core 3.1 (#307) 2020-11-10 20:28:05 -08:00
publish.sh Release Version 0.6.1 (#205) 2020-08-30 23:15:47 -07:00
README.md Updates README to include Big Sur (#318) 2020-11-17 13:06:58 -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
stylecop.json Updates formatting rules (#199) 2020-08-25 18:00:51 -07:00
THIRD-PARTY-NOTICES Updates span extensions (#276) 2020-10-17 21:14:03 -07:00
version.json Fixes NBGV & Adds Big Sur to CI/CD (#317) 2020-11-17 13:02:51 -08:00

ModernUO Discord Subreddit subscribers Twitter Follow Gitter

Ultima Online Server Emulator for the modern era!

.NET
Windows OSX Debian Ubuntu CentOS
GitHub license GitHub stars GitHub issues
GitHub build AzurePipelines build

Building the server

Requirements

Publishing Builds

  • Using terminal or powershell: ./publish.cmd [release|debug (default: release)] [os]
    • os - Supported operating systems
      • win - Windows 8.1/10/2016/2019
      • osx - MacOS 10.13+/11.0 (High Sierra, Mojave, Catalina, & Big Sur)
      • ubuntu.16.04, ubuntu.18.04 ubuntu.20.04 - Ubuntu LTS
      • debian.9, debian.10 - Debian
      • centos.7, centos.8 - CentOS
      • If blank, the operating system running the build is used

Deploying / Running Server

  • Follow the publish instructions
  • Copy Distribution directory to the production server

Requirements

Running

  • dotnet ModernUO.dll

Cleaning

  • dotnet clean

Thanks

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

Troubleshooting / FAQ



Development Tools provided with ♥ by