メインコンテンツまでスキップ

ワールド設定

いくつかの設定は表示に関するものです。文字送りの速さ、戦闘アニメーション、ウィンドウスキン。プレイヤーがそれを変えても、変わるのは自分の画面だけです。これらは本来あるべき場所、つまりクライアントに留まります。

三つの設定はルールです。戦闘で何が起こるかを変えます。オンラインのワールドでは、それをクライアントに置くことはできません。理由はごく当たり前のもので、自分のマシンで難易度を「やさしい」にするプレイヤーは、サーバーが従うルールそのものを書き換えていることになるからです。

そこで MCE は両者を分けます。表示はローカルに。ルールはサーバーから。

どちらがどちらか​

設定画面の十六項目を数え上げると、三つのグループに分かれます。

グループ数どこに置かれるか
ルール3サーバー。運営者が播種する
表示12クライアント。プレイヤー自身の選択
オンラインでは非表示1そもそも表示しない

三つのルールは難易度、トレーナーのレベル、戦闘スタイルです。非表示の一つはテレポート時のオートセーブで、読み取り専用で見せるのではなく隠してあります。オンラインでは永続化はサーバーのものなので、オートセーブの切り替えはもう起きないことを説明する項目になってしまうからです。

クライアントの使い方​

クライアントはワールドへ入る途中で mce_world_options_get により三つの値を一度だけ取得します。

重要な設計判断は、それを使ってしないことのほうです。プレイヤー自身の設定に書き込みません。最初の版はそうしていて、それが誤りでした。設定は永続化されるため、固定 のワールドはプレイヤーが保存していた 入れ替え を上書きし、その値をオフラインのゲームにまで持ち込んでしまいます。そこでは何も支配するサーバーはいません。

ですから、書き込む代わりにエンジンは問い合わせます。ルールを使う各箇所がその読み取り口を呼び、ワールドがあればワールドの値を、なければプレイヤー自身の値を得ます。プレイヤーの設定は手つかずで残ります。

オンラインセッション中の設定画面

その画面の上部にある Estilo: Fijo はこのプレイヤーの値ではなくワールドの値です。オフラインのゲームで 入れ替え を保存しているかもしれませんが、それはそのまま、手つかずで待っています。ルールより下はすべて通常のローカル設定です。言語、音量、アニメーション速度。サーバーはそれらについて意見を持たず、尋ねることもありません。

設定画面は、ワールドが支配しているときに三項目を読み取り専用で表示するよう配線されています。プレイヤーは自分がどの難易度にいるかを確認でき、変更はできません。隠す(確認できない)と編集可能にする(不正ができる)のあいだを取った形です。

実機で確認

2026‑08‑29、Hard/Set を播種した実稼働サーバーに対して計測。ワールドへ入る途中のゲーム自身のログ:

[R-OPCIONES] el mundo dice: dificultad=Hard estilo=Set aLaCaja=False sembrado=True
[R-OPCIONES] el mundo manda: dificultad=Hard estilo=Set aLaCaja=False

二行あり、意味を持つのは二行目です。クライアントはルールを取得し、かつそれに権限を委ねました。往復の両側が同じことを述べています。

サーバー側での扱い​

難易度が動かすのはトレーナーの相手のレベルだけで、オフラインの Core と同じ振る舞いです。

難易度倍率
やさしい0.8
ふつう1.0
むずかしい1.2

結果は 1〜100 に収められます。適用箇所は buildTrainerParty、サーバーがトレーナーの相手を生成する唯一の場所なので、食い違いうる第二の経路は存在しません。

播種のしかた​

mce_world_options_seed はサーバー間専用です。ユーザーセッションを伴う呼び出しは拒否し、Nakama ランタイムの http_key を必要とします。種族の播種と同じ資格情報、同じ規則であり、つまりコミットしてもビルドに同梱してもいけません。

購入者向けの経路は Hub の Online タブです。そこで三つの値を設定すれば、リポジトリ外から鍵を読み取って播種してくれます。

モデル化していない値は、名前を挙げて拒否する​

エンジンが知らない難易度やスタイルを送ると、播種は拒否され、エラーがどの値が誤っていたかを述べます。

誘惑的な代替案は、受け取って Normal に落とすことでした。それは聞こえ以上に悪い。運営者はワールドを設定したと信じたまま去り、ワールドは黙って別物であり、そのことを何一つ告げません。サーバーがモデル化できないルールは拒否され、中立に丸められることはありません。

未播種は独立した状態​

ストレージは空で始まり、空は未播種を意味します。これは意図的に Normal と同じではありません。今日はどちらも倍率 1.0 を生むとしても。

今は同じ数字です。違うのは Normal が 1.0 でなくなる日に何が起きるかで、一方のワールドは変わるべきで、他方は変わるべきではありません。二つを同一視したサーバーは、区別するための情報を捨ててしまっていることになります。

権限​

world_options レコードは permissionRead: 2、permissionWrite: 0 で保存されます。

誰でも自分がプレイしているルールを読めます。クライアントから書き込める者はいません。アップロードする動詞は存在せず、mce_world_options_get はダウンロードのみです。その不在は設計であり、欠落ではありません。