top of page

見えない見守り役、そして理由をきちんと伝えるBAN 👁️

執筆者の写真: Marcel Dütscher
Marcel Dütscher
7月26日
読了時間: 6分

少し前、このブログで子どもにやさしい設計について書きました。通報、フィードバック、そして見守る目。正直に言うと、見守る目がいちばん弱い部分でした。通報を受け取ることはできるのに、ワールドで実際に何が起きているのかを見ることは、ほとんどできなかったのです。そこで、ふたつの柱で改善に取り組んできました。見守りのための観察者モードと、対象になったプレイヤーにようやく状況をきちんと伝える、全面的に作り直したBANのしくみです。


観察者モード。通報が来たとき(「だれかがおかしなものを建てている」「だれかが意地悪なことを書いている」)、私たちはそのワールドを邪魔せずに入れるようになりました。しかも本当に見えません。改造したゲームなら簡単に無視できる「描画しないでね」ではありません。サーバーは、観察者がいることをほかのプレイヤーにいっさい伝えません。アバターも、停めた船も、使用中の着陸パッドも、降下のアニメーションも、ペットも、スピーダーも、埋まったプレイヤー枠も、プレイヤー数の変化もありません。そのワールドのみんなにとって、文字どおりだれもいないのです。飛行は壁をすり抜けられます(そうでないと、封鎖された基地には入れません)。生き物は観察者を無視し、撃つこともそもそもできません。


見るということは、見るだけ。観察者は、ワールドのものに触れてはいけません。ただし例外がちょうどひとつ。ブロックを掘ることはできます。それが、不快な建築物をワールドから実際に取り除く唯一の手段で、取り除いたものはひとつ残らず記録されます。チャットでは観察者は発言できず、わざと姿を見せるには別のコマンドが必要です。そして画面には、ずっと「SPECTATOR」のバッジが出ています。ふつうに遊んでいると思いちがいをすることは、絶対にあってはなりません。


なぜここまで厳しくつくったのか。外から見えないけれど、私たちには大切だった決定がふたつあります。ひとつめ。観察者の役割はセーブデータに保存されません。参加のたびに、サーバーの設定から計算し直されます。セーブはダウンロードして、別の場所に再アップロードできます。保存された監督者の役割がいっしょについていくと、私たちの持ち物ではないマシンにまで行ってしまいます。ふたつめ。これはワールドのオプションではありません。ワールドの持ち主が、そのワールドへの見守りをオフにできてはいけないからです。だから、ワールドでもともとデフォルトでオフになっている「管理者チート」の設定とも、結びつけていません。


何がどこで起きたかを見つける。そのために、新しいコマンドがあります。/playersは、だれがオンラインか、そしてこのワールドで遊んだことのある全員を表示します。/buildsは、だれかが建てた場所を表示します。/whereは、プレイヤーのところへ案内します。/gotoは、惑星をまたいでもジャンプできます(古いテレポートは座標を設定するだけで、違う惑星に落としていました🙈)。さらに、管理パネルの概要ページは、ワールドのセーブから直接読み取ります。プレイヤー、構造物、そして「建築ホットスポット」。基地コアなしで、何もないところに置かれた家も、これで見つかります。そして変更されたすべてのセルが、だれが、いつ最後に触ったかを覚えるようになりました。組み込む前に、ストレージの負担を測りました。データベースに行は1行も増えません。保存はもともとセルごとだからです。


プライベートなワールドにも、二重の鍵つきで。最初のバージョンには、ばかげた穴がありました。見えない観察者が入れるのは、公開されたパスワードなしのワールドだけで、それはまさに、いちばん何も起きない場所でした。子どもたちはほとんどいつも、パスワードを友だちの輪の中で回すプライベートなワールドで遊びます。そこで、見守りはそうしたワールドにも届くようになりました。それが裏口にならないように、アクセスは二重にロックされています。秘密のコードを示さないと作れないオペレーターアカウントが必要で、さらにそのための専用のプレイヤー名も必要です。この名前はシステム全体で予約されていて、ほかのだれも登録することも、その名前で遊ぶこともできません。どちらか一方が欠けたら、何も起こりません。


そしてBANです。以前は、これは本当にお粗末でした。BANされたアカウントでも、ふつうにサインインできて、壁が現れるのはワールドに参加するときだけ。理由も日付も、問い合わせる方法もありませんでした。プレイヤーの側から見ると、ゲームがただ壊れていたのです。今は、サインインそのものが状況を伝え、メッセージ受信箱があります。「ワールドが削除されました(理由)」「BANは解除されました」。このメッセージは、何かが起きた瞬間に書かれます。あとになるとその情報はもう存在しません。削除されたワールドは、そう、なくなっているのですから。


追放ではなく、タイムアウト。BANは、今は基本的に一時的なもので、デフォルトは3日間です。期限が切れたタイムアウトは、すべてのチェックポイントで「BANされていない」として扱われるので、「3日間おやすみ」がいつのまにか永久追放になることはありません。それでも、記録は履歴として残ります。理由は、決まったカテゴリ(チャット、荒らし、チート、名前、その他)で、ドイツ語と英語で翻訳されて表示されます。そして人が何かを書き足した場合は、入力されたとおりそのままに表示されます。そして何よりも大切なのは、いつからまた戻ってきていいのか、その日をメッセージで伝えられることです。


ワールドの持ち主は、自分のワールドを管理できるようになりました。ワールドを持っているなら、自分のワールドに同じ手段を使えます。自分専用のBANリストがあり、私たちのものと同じくらい確実に守られます。それはアカウントを覚えていて(名前を変えても無駄です)、さらにゲーム内の名前も覚えています(アーケードのゲストにはアカウントがまったくありません)。選ぶのは、そのワールドに実際に来た人のリストからです。名前を手で入力するのは、まちがった子をブロックしてしまうもとだからです。そしてBANは次の参加にしか効かないので、キックもあります。プレイヤーは、理由つきで、自分の言語で、すぐにメニューに戻されます。メッセージは接続が閉じられる前に送られるので、改造したゲームがそれを無視して遊び続けることはできません。


わざとつくらなかったもの。BANをすり抜ける対策として思いつきやすいのは、端末の識別(「新しいアカウント、同じPC」)です。私たちはそれを見送りました。理由は3つです。USBメモリを挿したり、Windowsが大きな更新をしたりすると識別子が変わること。改造したゲームなら5分で偽装できること。同じイメージで設定された学校のパソコンは、全部同じに見えてしまうこと。さらに法律の問題があります。ドイツの法律では、端末の識別子を読み取るには同意が必要で、16歳未満の子は有効な同意ができません。見守りが、監視になってはいけません。そしてコードに書き込んだルールがもうひとつ。オペレーターのアカウント自体は、BANもキックもできません。そうしないと、内側から見守りを切ることができてしまうからです。


これらはすべてすでにコードに入っていて、次のサーバー更新で公開されます。できるだけ出番がないことを心から願っています。🌟

最新記事

すべて表示
分析、計画、コード、チェック:AIと開発するときの私たちのリズム 🤖

Blocks Beyond The StarsでAIをたくさん使っていることは、これまで一度も隠していません。AIがなければ、このくらいの大きさのゲームを仕事のあとの趣味プロジェクトとして作るのは、とてもできません。でも私たちにとって「AIと開発する」は、願いごとを打ち込んで、結果をそのまま受け取って、うまくいくよう祈ることではありません。この数か月で決まった型ができて、それは意外なほど昔ながらで

 
 
ゲームが1週間で14の言語を覚えた話 🌍

2026年8月10日 はじめのころ、Blocks Beyond the Starsが話せる言語は2つだけでした。私たちが住んでいるのでドイツ語、そしてインターネットは英語を話すので英語です。今では14の言語を話します。ここでは、その道のりと、途中で壊れたあれこれをお話しします。🌍 はじまりはFrancescoでした。 数週間前、イタリアからプルリクエストが届きました。Francesco Quir

 
 
まず一種類、それから五種類へ:このゲームの育ち方 🪨

バージョン一覧を見ると、5週間ちょっとで29回のリリースがあります。6月20日の0.1.0から、昨日の0.9.0まで。どうしてそんなことができるのでしょう。完成した機能をいっぺんに作り上げているわけでは、もちろんありません。私たちは段階をふんで作ります。まず、本当に動く、いちばん小さいバージョン。そして、それが安定して楽しくなったら、次の段階です。いま、小惑星がそれをいちばんよく見せてくれています

 
 

コメント


この投稿へのコメントは利用できなくなりました。詳細はサイト所有者にお問い合わせください。
bottom of page