2012年01月03日

Solaris10でMineCraftサーバを構築する

AOKY

あけおめことよろの略ですが、毎年流行らそうとしてはや五年、一向に流行りません。


さて、今年のゲーム納め/ゲーム初めに選んだゲームは「MineCraft」。
ブロックを集めて建物を作ったり、モンスターと戦ったりできるPCの箱庭ゲームです。
パネキットを崇める私からするとドツボにはまってしまったゲームであります。
これは今後日本でもヒットしそう。(既にしている)

山頂の鳥居とか、山肌を切り抜いて作ったお堂とか作れます。
▼Minecraft
38



そして、このブログで何度も出てくるサーバ用OS「Solaris 10」。
その堅牢性からプロフェッショナルなEnterprise分野では滅法強いのに、
Entertainment分野では滅法弱いこのOS。

このOSを使ってPCゲーム「MineCraft」のマルチプレイ用サーバを立ててみようというお話です。
前述する通りエンターテイメント分野には滅法弱いので、
MineCraftの為に新たにSolarisを導入するのはただの苦行です。
「MineCraftの鯖を立てたい・・でも家にSolarisしかない!」っていう人のための記事です。

そんな人、俺以外にこの世に存在するのかどうかは知りませんけど。


サーバを建てるに当たって必要となるのは以下。
・MineCraft本体ファイル(.jar)
・Java5より上のバージョン
・MineCraft起動スクリプト
・screen(コマンド)

上1つは当たり前ですが、今回の問題は下の3つ。
特に起動スクリプトとscreenコマンドについて解説します。

Javaに関してはimoten導入時にSolarisのjava最新化について触れていますので、そちらを参照して下さい。
実際MineCraft導入時には何もしていません。
なお、Solaris標準のJavaで起動しようとすると起動時にMemory関連でエラーとなります。

MineCraftはサーバプログラムを起動すると、専用の対話型プロンプトが立ち上がり、
そこから起動停止などの制御コマンドを発行します。
また、起動している間コンソールを占有し続けます。
つまりWindowsからTelnet/SSH接続で起動した場合、ずっとその端末を起動しておく必要があります。

&付与やnohupでバックグラウンド実行した場合起動し続けますが、
停止もコンソールで行う必要があるため、今度は停止コマンドを発行する術が無くなります。

そこでscreenコマンドを使って、サーバ上で仮想端末を持たせてそこで起動させておけば解決します。
screenコマンド上の端末には、screenコマンドにオプションを指定してメッセージ送信することが出来るのです!

で、この超便利なscreenコマンド。Solarisには標準非搭載です。
こんな部分でもやはりSolarisはエンターテイメントには向かない。
なのでソースを拾ってきてコンパイルします。
パッケージ管理だぁ?Solarisにそんなもんねぇよ!(注:普通にあります。筆者が使い方わからないだけ。)

0)makeとかにPATH通しておいてくださいね。
参考:Solaris 10サーバにscreenをインストール

LD_LIBRARY_PATH=/usr/lib:/usr/sfw/lib::/usr/sfw/lib:/usr/local/lib:/etc/lib:/usr/local/ssl/lib:
/usr/X11/lib:/usr/lib:/lib ; export LD_LIBRARY_PATH


1)最新版を拾ってくる
http://ftp.gnu.org/gnu/screen/

2)解凍・展開

gunzip screen-4.0.3.tar.gz
tar -xvf screen-4.0.3.tar


3)misc.cの613行目を以下の通り編集

# if defined(linux) || defined(__convex__) || (BSD >= 199103)

# if defined(linux) || defined(__convex__) || (BSD >= 199103) || defined(__sun__)


4)make & Compile

./configure

make


5)同じディレクトリにscreenコマンドが出来上がるので採取、PATHの通った場所へコピー。

cp -p ./screen /opt/sfw/bin

※make installでも良い・・っていうか普通はmake installします。

これで下準備その1「screenコマンド」が完了。



続いて起動スクリプト。
作っておくと安全・確実にMineCraftを起動停止出来ます。
また、登録すればサーバの起動時・シャットダウン時に自動的に起動停止してくれます。

Linux用の起動スクリプトが配布されていますのでこれをそのまま使用する・・・と起動しません。
スクリプト「su - minecraftユーザ」の処理が上手くいっていないようです。
何故かという調査はしていませんが、どーせSolaris固有の問題なので運用回避する方向という逃げ腰に。

発想を変えて「起動スクリプト内でsuする」のではなく、「suしてから起動スクリプトを叩く」ことにし、
結果うまく行きました。
2ステップ要るけどな・・・。

なお、rootであれば特に考えずに起動できますが、一般ユーザ権限でサーバアプリを起動しておかないと、
万が一脆弱性からサーバが攻撃されたときのリスクが超増大します。

ついでにコマンド発行引数が"command"と長ったらしいので"cmd"に変更。
ここまで準備できてやっと公開可能なのです。ああ疲れた。
なお起動スクリプトについては長ったらしいので続きで記載しておきます。
適宜書き換えてください。

あ、「公開」って言ってますけどウチは身内のみで遊んでます。
ノウハウだけ公開。

サバイバル/クリエイティブモードの切り替えが自由にできたり、
バックアップなども任意のタイミングで取れるのが良いところですね。

↓↓↓起動スクリプト↓↓↓

続きを読む

2011年12月13日

FM音源ショルダーキーボード「SHS-10」

個人的な話になりますが、12月の頭というと誕生日になっていますので、
「自分へのご褒美(笑)」を買っていたりします。
ちょうど冬季ボーナスのタイミングともドンピシャですし、
衝動買いする理由付にはうってつけの時期なのです。
ちなみに二十歳の誕生日はWii。
そして今回自分へのプレゼントとして選んだ品は・・・

▼YAMAHA ショルダーキーボード「SHS-10」
415899

YAMAHAのFM音源内蔵型キーボードです。
発売年は1987年と私とほぼ同い年!
Yahoo! オークションで出品されていたのを落札しました。
現行中古ではKX-5などがありますが、実際手に持ったところ非常に大きく重かったことから、
小さいショルキーのSHS-10に絞って探しました。

なんでショルダーキーボードに興味を持ったかというと、CASIOのGZ-5をiPhoneに接続してゲーム音楽を演奏していた折、
ダライアスバーストアナザークロニクルのライブDVDをみて、
ZUNTATAの石川さんのショルキー演奏が格好良く、やってみたいと思ったからです。

早速電源投入して弾いてみたところ、FM音源なシンセサイザーの音が。
もう気分はメガドライブです。
音色をFM音源フルートにすれば大魔界村のStage2だって演奏出来ます。
リズム機能もついている為、ドラムに合わせて演奏も可能。

気付けばTAITO楽曲と東方の楽曲(やっぱりTAITO)ばっかり練習しています。
ネクロファンタジアとか弾いてて楽しいです。
無論本来すべきゲームプレイはそっちのけ

MIDIケーブルも刺さりますので、MIDI Mobilizerと接続して演奏する事も出来ます。
(ベロシティが63固定になるらしいのですが)

※私はMIDIに関しては一切のド素人であり、
ただ「適当にゲーム音楽を演奏したいなぁ」という目的を達成する為にこんな訳のわからないことをやっているだけです。
なお相対音感で運指を計算しながら演奏する為にノーミスで演奏したことはありません。

(自分だけが)楽しければ全て良し。

2011年12月10日

iPhoneでiモードメール

iPhoneをdocomoで使用してて困ったことがひとつ。
メールはgmailでと割り切ったつもりが、いざ送信するとPCメールを拒否している方の多いこと多いこと。
連絡するチャネルをひとつ失ってしまったのです。

困ったので何とかできないかと考えていると、
なんとiPhoneでdocomoのキャリアメールを実現している人がいました。

PCからキャリアメールの操作ができるimode.netという有料サービスがあり、
これと通信できるサーバプログラムを動かすことで、
あたかもiPhoneがimodeメールに対応したかのように振る舞うのです。
その名もimoten(imode mail tensou)

図解すると
受信時:相手の携帯→gmail→iPhone(gmail)
送信時:iPhone(gmail)→imoten→imode.net→相手の携帯

iPhoneで扱うメールはgmailなのがポイントです。

とりあえず必要なモノ。
・gmail(出来れば専用のものを用意)
・imodeメール+imode.net(月210円)
・インターネットに接続できるサーバ
・ポート42525の開放
・Java6以上
・imoten本体
javaで記述されているため、プラットフォームを選ばないのが特徴です。

プラットフォームを選ばない・・・

ってわけでエンタープライズ用途では滅法強いのに、
エンターテイメントで使うには不便極まりない「Solaris10」で動くかを検証して見ました。
しかもx86版。エンタープライズですらない。

結論から言うとふつーに動きました。
この記事で伝えたい事はSolaris10でimotenは動いたということだけなので、ネタ的には以上です。

ただし、Solaris10に入っているJavaは5ですので、多分動くだろうけど動作保証は得られません。
なのでとりあえずSolaris10(x86)にJava7を入れる手順をご紹介。
時間ができたら他のサイトに載っているようなことも書き加えていきます。

1)パッケージの調達。
wgetやPCに落として、どこでもいいので保存します。
http://download.oracle.com/otn-pub/java/jdk/7u1-b08/jdk-7u1-solaris-i586.tar.Z

2)解凍
zcat jdk-7u1-solaris-i586.tar.Z | tar -xvf -

3)インストール
su -
pkgadd -d . SUNWj7cfg SUNWj7dev SUNWj7dmo SUNWj7rt SUNWj7man SUNWj7jmp
ひたすらyを応答。

新たにインストールされるjavaのパス:/usr/jdk/jdk1.7.0_01/bin/java

以上!

あと運用的な小ネタとして、imotenはプッシュ送付には対応していません。
ですがbccでExchangeで登録したgmailに転送しておくと、
imode.netにメールが届いた段階で気づくことができます。フェッチすらいらないので便利です。

2011年12月09日

ファミコンバー「焼酎ダイニング utAge」に行ってみる。

以前に立ち飲み屋さんで偶然知り合った方から飲みに誘われ、
ホイホイ京橋まで出向き、わいわいサシ飲みしていたところ、
趣味の話題になりレトロゲームの話を出してみたところ、
ファミコンバーに行こう!みたいな流れになり、これまたホイホイと着いて行くことに。

自他共に認める「引っ込み思案を極めた」ような性格であり、こんな事はめったにありません。
反社交的人間です。

▼焼酎ダイニング utAge
http://www.ysf1994.com/utage/index.html

ダーツやビリヤード台があるアミューズメントバーです。
ダーツは2台、ビリヤードは1台あります。
奥のほうにファミコン(ニューファミ?)、
カウンター向かいにWii、スーパーファミコンがありました。

私はダーツもビリヤードもやらないのですが、一向に構いません。(何が?)

さっそく店の奥にあるファミコンブースへ。
▼ファミコン
403755

ずらっと陳列されたファミカセに目を奪われるファミコンブース。
(写真は風雲たけし城)

ラインナップ的には
・スペランカー
・マリオブラザーズ
・スーパーマリオ1、3、USA
・ドラクエ2、4
・バードウィーク
・ケルナグール
・ジッピーレース
・ドラえもん
・燃えろプロ野球(赤)
・バンゲリングベイ
・戦場の狼
・くにおくんシリーズ
・ヨッシーのクッキー
・悪魔城伝説
・サイドポケット
・ゴルゴ13

などなど名作から迷作まで幅広く揃っています。
ビリヤード台を後ろにサイドポケットをプレイなどといった、
シャレが効いてるのか効いてないのか、とにかく訳のわからない事も可能です。

とりあえずビール飲みつつヨッシーのクッキーで対戦してはしゃぐ。
するめの天ぷら食べつつケルナグールで殴り合ってはしゃぐ。
焼酎飲みながらスペランカーで死亡して大はしゃぎ。
といったように子供じゃできない大人のファミコンを愉しむ事ができます。
大人って意味では、このようにゲームを遊ぶスペースを提供して頂けるのは非常に助かります。
子供の時なら遠慮せずおウチに押しかけていたものですが。

あ、大人のファミコンといえば、ゴルゴ13も(ry

その後、兄弟で遊んでいた時を思い出しつつ終電間際まで、
スーパーストリートファイター2で殴り合ったりしていました。
ゲームは音楽に並ぶ世代間の共通語じゃないでしょうか?

なお、ダーツメインのお店で店員さんと勝負できたりもしますので、
ダーツとお酒が好きな方にも、うってつけのお店となっています。

凄いところとして、チャージ料が無い事、
ファミコン、SFC、Wiiは使用料無料であることが挙げられます。
すげえ!

京橋駅から5分というロケーションですので、
近くで飲んだ時は行ってみるのもありかもしれません。

独りで行くには・・・私にはまだちょっと早いかも・・。(引っ込み思案)
2011年11月30日

Xi × iPhone

SIMフリーのiPhoneをdocomoで、
詳しく言うとFOMA定額データプラン フラットバリューのスタンダード割2で運用していましたが、
数日前にXi音声プランへ切り替えて来ました。

・Xiの音声プランに付けられるdocomo通話無料が魅力的だった事。
・キャンペーン中はデータプランよりコストパフォーマンスが良い事。
・期待してた050plusが音質が悪くて困ったこと。
など色々ありますが 、
パケホーダイダブルの当初の1万円/月よりずっと安い価格でネイティブ電話出来るのが魅力的でした。

あ、当然LTEで超高速接続!なんて芸当はできませんからね。
Xi対応の専用端末を買ってください。
あくまでFOMAの速度で、Xi契約して使用します。

って訳でiPhoneと免許証持って契約変更に。
定額データプランフラットVからXi音声フラットへの変更を申し出ました。
結論からいうとすんなり問題なく(店員さんが数回センター問い合わせしたくらい) 契約更改できました。
SIMの変更も無し。
最初SIMの交換前提で話が進んでいましましたが、SIM交換なくてもOKとの事でしたのでしませんでした。
MicroSIMでは無くなるので、再度交換するには3150円の手数料が掛かってしまうからです。
しなくても済むならしない方が、何か問題が発生した際の切り分けにもなります。

さて、定額データプランの スタンダード割2からXiにねん に切り替える場合、
なんと解約金は掛からず契約期間も引き継がれます。
キワモノな使い方してる人間からすると、これはたいした事です。

私の場合、FOMA音声→FOMA定額データ→Xi音声と遷移しましたので、
番号が元のFOMA音声の番号に戻りました。
私はauを使っていた時からこの番号だったので、これはますますたいした事です。

なお『FOMA端末を利用しXi契約される方へ』という資料を貰いましたが、
これは読めば読むほど『SIMフリーiPhoneを利用しXi契約される方へ』であり、
実際その通りなのでしょう。私も今、契約上は「F-06B」を利用しています。
▼『FOMA端末を利用しXi契約される方へ』
Xi


資料ではAPN設定についても触れられており、
「mopera.flat.foma.ne.jp」から「mopera.net」へ変更となります。
Xi契約の際にFOMAのAPN接続先限定サービスは外れる為、
別項目なテザリング設定のAPNをうっかり変え忘れると、
繋がらないか、 繋がって即死(死因:定額対象外によるパケ死)する事になるでしょう。

このようなパケ死してしまうドジっ子を救済するために、
1回だけdocomoは定額料金を適用して助けてくれるそうです。
なお、一部音声プランで先月(1ヶ月分)からXi料金を適用してお得という話がありますが、
その1ヶ月分は紛れも無いソレですので、保険を使うかどうかはご自身で判断なさってください。

注意点として無料通話が無いので、docomo以外に掛けるのは厳しい契約内容になっています。
なんとdocomo以外にかけると「22円/30秒」!高い!
しかも留守番電話に問い合わせで掛ける場合でもこの料金!鬼畜!
家族割で余った分を分けあえますが、Xiは対象に・・・
ファミリー割
うわ、すんげーびみょーな表現。

またバリュー契約するにはFOMA端末を買う必要があります。
でもiPhone辞めたとしてもXi買うよな・・・。

また1月に7GBを超えると128kbpsに帯域が絞られてしまいますが、
2625円くらいを支払うと回線速度を復帰させる事ができます。
四六時中ニコニコ動画みてる人や、家でもテザリングしまくる人じゃないと
到達しない数字なので気にしなくてもよいと思いますが、
緩やかな従量制課金の始まりですので、理解した上で契約に望みましょう。

なお店員さんは7GB超えると別料金が掛かってしまうという
不安になるような説明をしてくれましたが、
その場で「7GB到達後にそのままのスピードで使いたい場合であり、自動課金はされない」事を確認しました。
7GBとか超えないけど重要ポイント。

なお、使用量到達メールの利用を薦められましたが、
iPhone(というかmopera)では結局利用できない事が分かりました。
7GBとか超えないからどうでも良いポイント。

iPhoneをdocomoで使用する際の使用料まとめ

■定額データプランの時
定額データプラン フラットバリュー(2年縛り有り):5460円
moperaU:525円
050plus:315円+ユニバーサルアクセス7円+通話料x円
→6,307円+通話料x円

■Xi切り替え後(キャンペーン価格)
Xiにねん + Xiカケ・ホーダイ:1480円
Xiパケ・ホーダイフラット:4410円
moperaU:525円+ユニバーサルアクセス7円
→6,422円+docomo以外の通話料

■キャンペーン終了後
Xiにねん + Xiカケ・ホーダイ:1480円
Xiパケ・ホーダイフラット:5980円
moperaU:525円+ユニバーサルアクセス7円
→7,997円+docomo以外の通話料

来年4月まではキャンペーン価格で利用できるので、終わったらまた考えたら良いのでは・・
と楽観的でおります。
あと、留守番電話も入れると315円上がります。

しかし30秒22円は高いなぁ・・。今後の音声プランに期待。