docs(book): a mod is a plugin too, and RCON is not the Rust answer
The kit taught, to an audience outside this org, that Rust needs "no game-side plugin to write at all" because it ships RCON. That is overruled: the Rust dry run reaches the game through a MOD - a plugin loaded by the server's own framework, hooking events and dialling out - exactly as the ServUO overlay does (docs#170). Chapter 3's section kept its question and lost its example, which turned out to improve it. The useful test is not "does my game expose a protocol" but "does it DELIVER EVENTS": a remote-control channel is built for an operator typing commands and tells you what you asked about, when you ask, and a website needs what happened whether or not anyone was listening. A channel that answers questions can only be polled, and polling turns "someone left the clan at 14:02" into "the count was different at 14:03". Rust now appears in that section as the counter-example rather than the example, and carries the finding that is actually worth having: its server is a BINARY where ServUO is source you compile, and the three-part shape survives that unchanged. The plugin-dials-out arrangement is not a property of having source access. Chapter 4 said a game with a remote-control protocol may not need any of it, and that its worked example is source you build. Both now say what is true - the rules in that chapter are properties of being inside a game loop, and apply identically to a mod in a closed server. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -4,10 +4,17 @@ The chapter with the least code and the highest stakes. Everything else in this
|
||||
book fails by showing an operator a broken web page; this part fails by taking the
|
||||
game down while people are playing it.
|
||||
|
||||
If your game already speaks a remote-control protocol, you may not need any of
|
||||
this — see the end of [chapter 3](03-sidecar.md). If it does not, something has to
|
||||
run inside the game and feed your sidecar, and the rules below are what keep that
|
||||
something from being the reason the server froze.
|
||||
If your game already **delivers events** on a surface of its own, you may not need
|
||||
any of this — see the end of [chapter 3](03-sidecar.md), and read the test there
|
||||
before deciding, because a channel that answers questions is not the same thing.
|
||||
Otherwise something has to run inside the game and feed your sidecar, and the
|
||||
rules below are what keep that something from being the reason the server froze.
|
||||
|
||||
**That something does not have to be source you compile.** The worked example
|
||||
below is an overlay built into a server whose code you have; the dry run for Rust
|
||||
is a **mod** loaded by a closed server's own framework, hooking published events.
|
||||
Every rule in this chapter applies identically to both — they are properties of
|
||||
being inside a game loop, not of how you got there.
|
||||
|
||||
The worked example is `servuo-plugins`, the Ultima Online shard plugin, whose link
|
||||
layer is one file: `overlay/Scripts/Custom/Bridge/BridgeLink.cs`. It is C# against
|
||||
|
||||
Reference in New Issue
Block a user