アクセス状況

  • 0
  • 2
  • 7
  • 7,120

カウント開始:2014年9月21日
カウンター+75,945が開設当初からの訪問者数


since 2014/9/21

鯖管のつぶやき

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

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

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

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

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

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

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

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

VideoPad

Avalonサーバの紹介動画を作りたかったんですが、ムービーメーカは表現のしかたがそろそろ限界で、がんばっても似たような動画しか作れなくなってきたので、探してみました。

で、たどり着いたのがコレ。ちなみにどこかに無料って書いてあった気がしたけど、有料なのね。

やや使い慣れる必要はある物の、ムービーメーカに近い感覚で作れるので慣れやすいですかね。動画の画面が2つ有りますが、左が選択レイヤーのプレビューで、右がレイヤー合成後のプレビューなので、この辺の使い勝手もとても良いです。

難があるとすれば、テキスト一つ一つが画像扱い?のような位置づけで、コメントが多い動画を作るのがちょっと大変です。後はBGMが個々のシーンに合わせて希にぶった切られるのも使いづらいかな。エフェクトもシーン毎に設定するので、「纏めて全部に設定」ってのができないです。

ただ、エフェクトの設定は各レイヤー毎にかなり細かくできるので、時間を掛ければ様々な表現ができますので、ツールとしてはシンプルでいいですね。個人的に「ボタン一つで様々な事ができちゃう系」は好きじゃ無いので、そういう人にはお勧めです。

ちなみに作成した動画はこちら。

ニコニコ動画へのアップも初めてチャレンジしてみました。結構エンコードの制約とか厳しくて難しかったけど、「つんでれんこ」を使ったらあっさりアップ可能な形式が作れました。

【ニコニコ動画】Minecraft Multiplay Server "Avalon"

プラグインEpicBoss_GoldEdition

プラグイン:EpicBossGoldEditionD10_1.7.10.jar サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar

既に公開されていないプラグインで、古いサーババージョンでしか動かないプラグインなんですが、改造して動かしてます。

既に何度も改造しているのですが、今回はワールドの中央から離れれば離れるほど強い敵が出ない仕様に改造してみました。基本的には敵の強さ毎にランク1~6までを定義し、敵の定義名に番号を振っているので、その数字を見て出現を制御してます。

ちなみに敵の出現量が100だとして、その中にランク3の敵が30%居た場合で、ランク3の敵が出ない地域に居る場合は、出現量が70となります。だから、敵の数自体もワールドの中央に近づくにつれて多くなります。

プラグインdynmap

プラグイン:dynmap-2.0.0-alpha-1.jar サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar

資源マップの生成をしてるけど、どうも地下を見せると、慣れてる人が欲しい地下生成物を片っ端から取っていってしまうということが起こります。とは言え完全に隠すのもわかりづらい。

というバランスを考えてカスタマイズしてみた結果がこれ

先ず、worlds.txtの定義の部分にこんな感じで記載。(caveの定義だけ抜粋)

– class: org.dynmap.hdmap.HDMap name: cave title: “Cave” prefix: ct perspective: custom_cave shader: lit-cave lighting: default mapzoomin: 3

shader: lit-caveというのが、どうも明かりをともした場所だけ描画するというシェーダらしい。定義済みなので、書くだけで機能します。なので、探索したところだけ見えるようにできそう。(実際にはその周辺の溶岩光がある場所も見えてる?) 「perspective: custom_cave」はカスタムパースペクティブ。custom-perspectives.txtに以下の様に追記して、それを参照してます。

perspectives: – class: org.dynmap.hdmap.IsoHDPerspective name: custom_cave azimuth: 135 inclination: 15 scale: 1

azimuthが視点の方向を示す角度。135というのは南東から見てるよという数値。dynmapの他のデフォもこの角度をよく使ってるので、合わせてます。 inclinationが視点の高さ。90が真上で0が真横。15なので、かなり水平に近い視点です。 scaleが解像度みたいなもの。定義済みのパースペクティブで使われてる高解像度(hires)が16、中解像度(midres)が8、低解像度が4だそうで。上記は1なので、低解像度よりもさらに小さい数値です。

こんな感じで、「とりあえず見えるけど、探索しないと見えないし、見えても見づらい」というのを演出してみました。

プラグインTNTRun

プラグイン:TNTRun_v3.4.jar サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar

前から入れて見たかったミニゲーム系。Alicornに似たようなプラグインでMinigamePartyというのが入ってるけど、あっちは重すぎるのでAvalon用の代替えプラグインとして入れられればなという感じ。

しかし、( ゚д゚)ハッ!と気がついたときには何故か翻訳作業を始めてたw

検証が先でしょうに・・・動かなかったらどうするのか。

・・・で、検証したらあっさり動きました。先ずこういう地形を作成。

WorldEditで対象エリアを全部選択し(後述のLoseAreaも含めて)、

/trsetup create アリーナ名 ・・・作成 /trsetup setarena アリーナ名 ・・・上記の選択範囲をエリアにする /trsetup setloselevel アリーナ名 ・・・敗北判定の区画。先に対象エリアを選択する。基本的には床の下のエリアで、そこに入ると負け判定になる。 /trsetup setspawn アリーナ名 ・・・出現場所(スタート地点)の設定 /trsetup setspectate アリーナ名 ・・・観客席?たぶん負けた人の保留エリア /trsetup finish アリーナ名 ・・・完了

あとは、看板を設置して1行目[TNTrun]、2行目[Join]、3行目アリーナ名とすれば、そこを叩くと参加となる。

ちなみに2名以上じゃないと開始できません。

・・・おっとBarAPIに緩衝するか?

[11:36:43 WARN]: java.lang.NoSuchMethodException: net.minecraft.server.v1_7_R4.PacketPlayOutEntityTeleport.<init>(int, int, int, int, byte, byte) [11:36:43 WARN]: at java.lang.Class.getConstructor0(Class.java:2849) [11:36:43 WARN]: at java.lang.Class.getConstructor(Class.java:1718) [11:36:43 […]

再生成用の新資源

毎回のことですが、使い易い資源を提供できるようにいくつか生成してます。ちなみにネザーとエンドはほぼテキトーに作ってます。あ、ネザーはスポーンポイントが大きな空洞じゃないとボツかな。 候補1,2はボツでもう消しました。

案3、今の所有力。ちょっと海が多すぎるのが難点。 案4、湿地が少ないのでボツ。 案5、う~ん、イマイチ 案6、お、これいいんじゃない?資源の種類も豊富だし。氷原とかはなさそうだけど、ジャングルがあればいいなぁ。 案7、いろいろバイオームが豊富だけど、レアバイオームは無し 案8、案7に似てるね。案7共に湿地が多いから、粘土の採取にはいいかな。 案9、あまり平地が無いw。大きなジャングルと雪原がありますね。いいんだか悪いんだか・・・?

[…]

JobArranger

マインクラフトとは直接関係ないけど、定時処理用に使ってるツール。巷では「ジョブコントローラ」って呼ばれてる分類のプログラムですね。 定時処理はサーバなら普通にできるけど、こういうのを使うと例えば順列に処理しなければならないプログラムの前後関係とかを制御してくれるので、バックアップが動いている途中にサーバシャットダウンとかは絶対に起きない。あとは視覚的にフローチャートみたいでわかりやすいよね。

マイクラサーバの定期再起動やバックアップはこれを使ってやってます。

プラグインImageOnMap

プラグイン:imageonmap_v2.7.jar サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar Web上の画像をmapに転写する。額縁に貼れば絵画代わりになる。

うまく動いている様にも見えるが、サーバごとクラッシュさせるバグもあるっぽい。

プラグインFramePicture

プラグイン:FramePicture_v1.7.3.jar サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar ゲーム内の額縁にWeb上の画像を掲載できる超画期的なプラグイン・・・。なんですが、結局動きませんでした。 ちなみに、コマンドはFrameProtectと被ってますね。FrameProtectなんて超メジャー所と被らせないで欲しい・・・。まぁ、FramePicture:fpで行けたから良かったけど。フォールバックシステム様々。

ダウンロードまでは行けたけど、どうもそれの表示ができていない。PacketPlayOutMapがイケてないってところまではわかるけど・・・

[12:55:24] [Server thread/INFO]: Tactica issued server command: /FramePicture:fp set http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png [12:55:25] [Server thread/INFO]: [FramePicture] Download http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png … [12:55:25] [Thread-32/INFO]: [FramePicture] Image plugins/FramePicture/images/logo-ns-131205.png was downloaded! [12:55:26] [Server thread/WARN]: [FramePicture] Task #61 for FramePicture v1.7.3 generated an exception java.lang.NoSuchMethodError: net.minecraft.server.v1_7_R4.PacketPlayOutMap.<init>(I[B)V at de.howaner.FramePicture.util.Frame.sendMapData(Frame.java:148) ~[?:?] at de.howaner.FramePicture.util.Frame.sendTo(Frame.java:107) ~[?:?] at de.howaner.FramePicture.FrameManager.sendFrame(FrameManager.java:180) ~[?:?] at de.howaner.FramePicture.FrameManager.addFrame(FrameManager.java:209) ~[?:?] […]

DBチューニング

サーバがなんか重い気がするので原因の一つと思われるDBのチューニングをしてみた。 状態変数の確かOpened tablesか何かだったと思うけど多かったので、table_cacheを上げてみた。この値はオンラインでは変えられないっぽいので、6時の再起動で反映。

Opened tables 450 ⇒ 1800

結果、スロウクエリーが無くなりましたね。Opened tablesは未だ多いけど。

あと、query_cache_limitとかquery_cache_sizeとかもいじったんだっけ?