カウンター

  • 26549総訪問者数:
  • 6今日の訪問者数:
  • 55昨日の訪問者数:
  • 40一日あたりの訪問者数:
  • 0現在オンライン中の人数:
  • 2014年9月21日カウント開始日:

これまで作ったプラグイン

偶に鯖管のつぶやきってことで、どうでもいいネタを書いてるんですがw、今回はこれまでに作ったSpigotプラグインを紹介してみます。ちなみにほとんど公開しておらず、私の管理しているサーバにしか導入してません。なので、読む人にとってはどうでもいいネタですね。要望があれば将来的に公開してもいいですが、まぁこういうアイデアもあるよみたいなのの参考にしていただければと思います。

[…]

法律とマイクラ

鯖内で話題に上がったんで書いてみます。

ちなみに、サーバ管理者としては、これを書いて脅すつもりは全然ないです。

まじめ?にプレイしてる人が、うっかりやってしまったことに対して、逮捕されたりしないか?なんてビクビクしながらプレイしてる例も見られますが、逮捕されることなんてほとんど無いし、逆によく理解しておけば安心してプレイできるので、そいう安心感の為に知っておいた方がいいかなと思ってます。

Javaアレコレ

プログラムを組んでるので、その私的なメモです。ちょこちょこと追記してくかも。 内容的にはMinecraft(Bukkit/Spigot/Sponge)などのプラグインがらみか、3D(OpenGL)がらみのネタ中心です。

2017/7/18更新:lwjgl3系のネタを追加

[…]

Linuxでマイクラサーバ

某所でLinuxのネタが出てましたが、そういえばそういうコンテンツって無いですね。

某掲示板でマイクラのマルチサーバの構成が書かれていましたが、マイクラ用だとWindows Serverが圧倒的に多いですね。LinuxもDebianやUbuntuが多いのかな。

なので、試しに書き殴ってみたいと思います。なお、ほぼLinuxの始め方中心で、マイクラサーバの説明はほとんど書いてありません。ちなみに私のWindowsサーバの知識はだいぶ古いです。ですのでLinux推しな内容になってますが、LinuxがいいのかWindowsがいいのかについて言及してる記事では無いのでご了承を(ぶっちゃけ使いやすい方を使えばいいと思う)あと、ITの専門家から見るとだいぶ端折った記事なので、その辺の突っ込みはご遠慮下さいm(__)m

[…]

チャットシステムに関する考察

新システムを構築する上で、チャットシステムをどうするか考えてみた。

[…]

マイクラ鯖の裏話

鯖管のつぶやきってことで、偶に他愛もないことを書き殴ってますが、今回は私の管理しているAlicorn/Avalonサーバの裏話的なことを書いてみたいと思います。

[…]

マイクラ管理者に出来ること・できないこと

サーバの運用をする上で、他のサーバがどのような運営をしているか参考にすることは多々あるんだけど、「これってどう実現してるんだろう?」って感じる運営をしているサーバが偶にあります。 当然、プレイヤーさんのサポートを充実した方が参加者が楽しくプレイできる訳ですが、とは言えできないこともあります。特に営利目的でサーバ管理をやっている訳じゃ無いから、どこまで自分の生活を削ってやるのか?なんてのも悩むポイントになりますね。

少なくとも私の場合は「出来ないことはやらない」というのが一つのポリシーなので、そういう所でプレイヤーさんから批判を受けることもあります。 まぁ後々になってから「ごめんなさい」をするより、初めから「出来ませんごめんなさい」って言っておいた方が、私もプレイヤーさんも後々困らないので、初めから「出来ないことはやらない」というスタイルで運営してます。

特に、これからサーバ管理者になる人、サーバ管理者に対して疑問を感じてる人は参考にしては如何でしょうか?

24時間サポートはできない

仕事や学校に行ってる時間は当然できませんし、勤めて無くても寝てたり外出してたりとかありますからね。旅行とかで数日間留守にすることもあります。

サブ管理者を立ててある程度は対処は可能ですね。サブ管理者というのは聞こえはいいですが、結構難しい問題が沢山あります。

その人をどう信用するのか。 どこまで権限を付与するか。 運営ポリシーをどうやって共有するか。(管理者としての対応にバラツキを出しちゃまずいので) お願いする人・したくない人の線引き。断るときはどう断るのか。 着任・退任の判断。 そもそも何をさせるのか。

個人的に、サーバ管理者はとても楽しい遊びのスタイルだと思います。だから、サブ管理者というのはある意味「軽い責任でサーバ管理者を楽しめる」手段かもしれないですね。 ただ、リアルの知り合いでは無い人に対し、ある程度の権限を与えなければならないので、選任基準は厳密にしておかないと危険だと思います。 また、後述の通り、サーバ管理者にとって負荷のかかる部分は、サブ管理者に任せるのはとても難しいです。逆にそういう所を任せないのであれば、単純に管理の負担が増えるだけで意味がありません。 また、着任・退任の方法も難しくて、あまり任せたくない人が「サブ管理者やらせて!」と言うことも多いです。また、旨く管理者が出来てない場合や、来なくなった場合にどう退任させるかというのも悩まなければなりませんね。

まぁ、そんな感じなので私の場合は「サブ管理者」はお願いすることは考えてません。将来的にサーバの運営スタイルの一つとしてお願いする可能性があるかもしれませんが、そもそも「私の出来ないことはやらない」ポリシーだから、基本的に必要では無い感じですね。

プレイヤーさんのModを知ることはできない

何を入れてるかはわかりません。Forgeサーバであれば、Forgeクライアントの情報はわかります。これはどういうことかというと、以下の事を一発で特定することはできないと言うことです。

チートModの検出 透過テクスチャなどの検出

基本的にFly・高速移動・鉱石探知などは、その行動パターンから疑いを掛けて、後はストーキングするとかしか無いですね。不正Modの調査と言いつつも透明化してプレイヤーさんを小一時間ストーキングするなんて調査もざらにあります。

ちなみにバグ利用はログで発見できることがあります。

サーバ・プラグイン・Modを改造することは難しい

これには、以下の条件があります。

サーバ管理者に技術があること。 プラグインやModの元となるソースプログラムが配布されていること。

マイクラはJavaというプログラミング言語で作成されているので、Java言語を知ってるならある程度触れますが、Java言語はその特性上、プログラムを作成する環境作りの難易度が高いです。また、知ってたとしても、マイクラ独自の「プログラミングのルール」があるので、それを勉強しなければならないので、それもまた難しいことです。

ましてや、世の中のITのプロフェッショナルで、サーバ(機器など)の管理ができて、プログラミングができて、プレイヤーさんと旨くコミュニケーションができるスーパサイヤ人はほとんど居ません。

他のサーバでプログラムの専門家やサーバの専門家など分業で運営してるサーバもありましたね。まぁ、そういう恵まれた環境ってのも少ないです。

また、私はプラグインの改造(主に動かない場合に直すだけ)はしますが、これをやるにしても元々のプログラムソースファイルが配布されていなければできません。これ自体は配布されてなければゼロから作るしか無いので、実質無ければどうにもならないです。ましてや、プラグインではなくサーバ本体に手をつけるのは非常に厳しいですね。

ちなみに「ゲームプログラミング」というのはプログラミング業界の中ではかなり難易度の高い分野です。ちょっとなおしたり、新しいプラグインを開発するのはものすごい時間の掛かることなので、サーバ管理者をやりながら開発するのもこれまた困難なことですね。

BANは大変

BANはとても大変です。何が大変かは後述の通りですが、できることなら「自動的にBAN」すると非常に管理の負担が減りますね。

本人からの反発が多い 「何故BANなの?」というのに答えなければなりません。 ある意味当然のことで、悪いことをしたとは言え、数十時間というプレイ時間を一瞬で奪うので、こういう反発は多いです。適当にあしらうと炎上なんてことにもなりかねませんからね。 他のプレイヤーからの反発が多い 概して「仲の良いグループ」と「そうでないグループ」というのができますが、不満は「そうでないグループ」からきます。それでBANすれば「仲の良いグループ」から不満がでますので、そこからも説明が求められることが多いです。場合によってはグループごと他サーバに移住することもあるので、サーバを盛り上げたい場合は慎重に説明しなければなりません。 希に親からの反発も・・・ 後述してますが、マイクラの年齢層は意外と低いので、BANするとその親から質問が来ることもあります。 曖昧なBANルール MCBansというツールがありますが、これはBANルールがはっきりしてるので、これに準じるといいでしょう。ただし、運営する上ではこれでは不完全です。特に一番扱いが難しいのは「マナー違反」系の問題ですね。 「迷惑を掛けない」とか曖昧なルールは主幹の相違が起きるので、それに伴う反発も発生しやすいです。 証拠の確保 MCBansで反発が発生した場合は証拠が必要になります。基本的に管理者はログインしていない時間が多いので、証拠が不十分になりがちです。ログはあくまで機械的な部分しか取れないので、細かい表現などをログから知るのは骨の折れる作業です。 明らかな違反行為(破壊とか)で無い場合の証拠の確保は非常に大変で、私の場合でも、BANの確認だけで、2,3時間掛けるのはザラにあります。 その他

探せばいっぱい「出来ないこと」はありますが、書き殴ってみると以下の様な感じ

ワールドデータの改変は困難。 「ワールド内のアイテムデータを一斉変換」とか「ワールド内のニワトリを全部殺す」とかは実はほとんどできません。 そういうツールもありますが、変換作業に数時間かかる上に、データ構造を理解してちゃんと変換しないとワールドデータが壊れるので、技術的にも困難です。(例えばチェストを削除する場合は中身のデータも削除が必要だとか) プレイヤーデータの改変は困難。 ログインしてる人のデータ改変は比較的楽ですが、データ異常でログイン出来なくなった場合の修正は難しいです。 なので、プレイヤーデータをこまめにバックアップして、簡単に巻き戻せるようにしておいた方が楽ですね。
若年者の管理が大変 マイクラの年齢層は案外?若年層が多いです。マルチプレイヤーの1/3くらいは小中学生みたいですね。 詳しくは書きませんが、若い人ほどルールの順守率は落ちるので、そこは気にして置いた方がいいでしょう。

ぬるぽ(エラーとの付き合い方)

 ∧_∧      ( ´∀`)< ぬるぽ 

  ( ・∀・)   | | ガッ   と    )    | |     Y /ノ    人      / )    <  >__Λ∩    _/し’ //. V`Д´)/   (_フ彡        / 

マイクラサーバを運用する上で欠かせないのがプラグインやModだと思いますが、旨く動かないことも多いので、これらとどう付き合って行くかがマイクラサーバ運用の肝の一つだと思います。 本当はプラグインのソースまで読めればベストなのですが、さすがにそこまでは厳しいという人も多いと思いますので、エラーメッセージの読み方についてつぶやいてみます。

とても難しい内容だと思ってますが、サーバの管理をするなら避けては通れない道だと思うので、がんばって理解してみて下さい。

Javaとマイクラ

まず、マイクラサーバの仕組みを紐解いてみます。マイクラサーバはJavaで動いてます。なので、Javaとマイクラサーバがどのように関連しているかを知ることが大切です。 ※このイメージが出来てないと、エラーログの意味がわからないので。

JavaはSun マイクロシステムズが・・・そんなことはどうでもいいや。一言でJavaと言いますが、プログラム言語、実行環境、開発キットを示す場合があります。なので、言葉の意味について整理してみましょう。

Java言語・・・プログラムを開発する為のプログラム言語。 Java実行環境(Java Runtime Environment/JRE) Java開発キット(Java Development Kit/JDK)

なにそれ?って感じですが、プログラム言語については多くを語る必要は無いと思うので割愛します。 JDKに当たる物は別にJava特有では無く、Java以外の言語にもあるので珍しい物ではありません。要するにプログラム開発者向けのパッケージです。ただ、Javaの場合、開発者だけでなく使用者へ求められる場合も希にあります。JDKには(たしか)JREも含まれてるので、JDKがあればJREは不要だったはずです。(おぼろげ)

重要なのはJREです。 マイクラを代表とするJavaプログラムは、Windowsだけでなく、Unix/LinuxやMacでも動きます。本来これはOSの仕事でありつつも非常に難しいことで、Windowsが登場する以前は、ハードウェア毎にソフトウェアが売ってたくらい難しいことです(例えばNECパソコン用のゲームとか) OSが進化することで、このようなハードウェアの違いをOSが緩和してくれてますが、やはりWindows専用ソフト、Mac専用ソフトが登場しています。 Javaは、そういったOSの違いを緩和してくれることを主軸に作られたプログラム言語なんですが、そのOSの違いを緩和する仕組みとしてJVM(Java仮想マシン)というのが存在してます。そういうJavaプログラムを実行する環境がJREです。

だからそれが何か?と思われるので、マイクラなどを含めたJavaプログラムの実行環境を絵面にするとこんな感じになる訳です。 JDKはJREなどを含めた開発者向け便利ツールで、本来的には実行そのものに影響する物では無いので、ここでは省略します。

前述で、OSはハードウェアの違いを無くし、JavaはOSの違いを無くすと書きましたが、要するに、プログラムとハードウェアの間に立ってお互いの翻訳してるだけです。これと同様に、マイクラサーバにはプラグインを導入できませんが、これはBukkitやSpigotが間に立ってやり取りをしてくれているからなんです。

JREが重要というより、この構造が後述でもとても重要な意味を持ってくるので、ざっくり理解しておいて下さい。

そもそもエラーって何?

まぁ、プログラムが旨く動いていないことなんですが、エラーについても少し深掘りが必要です。 サーバの動作がおかしいときはだいたい以下の様な「ERROR」表示がでます。出ないで落ちる時もあります。

[10:53:10] [Server thread/ERROR]: Could not pass […]

サーバを考える

滅多に書かない鯖管のつぶやき二回目です。 今回はマイクラサーバを建てる上でのハードウエアをどう考えるかについてつぶやいてみようと思います。

お金がジャブジャブにあればお金を掛けてリッチなサーバを建てればいいんですが、そうも行きません。限られたお金を使って必要最低限のリソース(CPU、メモリ、ディスク、電気、etc…)を買う必要があります。 ってことで、マイクラサーバを建てる場合の考え方を書いてみようと思います。

[…]

鯖管のつぶやき

私の周りでマインクラフトのサーバを建てる人が多い気がするので、実際に公開マイクラサーバを建てるというのはどういうことかというのを経験を元に書いてみたいと思います。 まぁ、サーバを2つ立ち上げたとはいえ、まだ公開サーバ管理者歴半年の若輩者ですがご参考まで。

ちなみに実際にサーバを建てても公開しない・内輪だけって人も居ると思いますが、このコラムでは公開サーバを建てる前提で書いてます。

で、一回目のコラムは「何故サーバ管理者をかって出たのか?」というネタ。私の場合は以下の理由です。

サーバ管理が楽しいから(元々サーバを持ってた) 好きなマイクラサーバが作れるから 以前入ってたサーバが管理者のミスで巻き戻ったあげく、バックアップもろくに取って無くてせっかく作った物が戻らなくなってついカッっとなって。

元々趣味というか自分のスキルアップというかそんな感じでサーバを持ってたのですが、ゲームサーバを管理するというのがどういうことか?というのにはちょっと興味があった訳です。

あと、マイクラサーバはプラグインで結構カスタマイズができますが、実際にサーバを建てる人の楽しみってこれじゃないですかね?私もいろんなオンラインゲームをやってきましたが、いつかは自分好みのサーバを建ててみたいと夢見てた(実際にWebゲームくらいは作った事があります)訳ですが、それを実現するのにまさに好都合ですね。マイクラ鯖は。 マイクラ鯖を管理してるとよくわかりますが、ゲームとしてのマイクラは普通の人は1~2ヶ月くらいで一旦飽きます。当然それより長い人・短い人・’しばらくして戻ってくる人も居ますが、だいたい1~2ヶ月っていうのが平均みたいです。少なくとも「マイクラサーバを建てるという楽しみ」は1~2ヶ月程度では飽きないですね。っていうか公開サーバを建てるのにはそのくらいの準備期間が必要ですけどね。当然人に寄りけりですが、サーバを建てるというのはそのくらい楽しめます。

ちなみに巷のマイクラ鯖には「管理者が管理者に飽きてしまって、別の人に管理を委譲している」という例がソコソコあるようです。 当然そういうサーバはハードの管理者とマイクラの管理者が別です。どうも私が以前居たサーバもソレで、結局どっちの管理者もちゃんとバックアップの管理をしてなかったようで、結果的に大規模な巻き戻しが発生したようです。 なので、私の管理してるサーバはバックアップはかなりしっかりしてるつもりです。定期セーブは当然として、1時間毎のバックアップ(12世代)と、日次の外部バックアップ(10世代)、月次のバックアップ(消してないので残り続けてる)をしてます。 ちなみにクラウドストレージも使って本当に家の外へのバックアップも試したいなぁとも考えてます(むしろ安全よりも技術的な興味に近いw)

と、まぁいきなり長文となってしまってアレですが、次回に続きます。