minecraftサーバを立ててローカルで作業していたワールドを公開してみたのでそのやり方の紹介。公開といっても誰にでも公開しているというわけではないが。
Windowsでサーバを立てるならMinecraft Japan Wikiのまとめがおすすめ。
minecraft 基本的な話
minecraftについてはこれを見れば雰囲気はつかめるはず。PC版は20ユーロくらい。Xbox 360版、iOS/Android版もあるけどPC版がベスト、というか主流。
minecraftのPC版はjavaで動いているのでクロスプラットフォームで動作する。一人プレイとマルチプレイがありワールドデータを移行することも可能。
Debian/Ubuntuでminecraft_serverを実行する
環境構築
オフィシャルサイトのダウンロードページからマルチプレイのサーバ用にminecraft_server.jarが公開されており、サーバー側でレンダリングすることではないので単にjavaで実行すれば事足りる。Debian 6やUbuntu 12.04ではデフォルトのソースリストからsun-java6を入れられなくなっていてopensdkやoracle-java7を使うことが既定路線となりつつある。とは言え、相性などの問題からまだまだsun-java6を入れることが多いようなのだがセキュリティなどを考えると最新版を使うのがいい気もする。葛藤した挙句余計なトラップにハマりたくないので結局sun-java6をインストールする。
/etc/apt/sources.listに
>deb http://ftp.ja.debian.org/debian/ squeeze main non-free
を追加してsun-java6-jdkをインスコ。コンソールからの操作のためにscreenも入れておく
sudo apt-get update sudo apt-get install sun-java6-jdk sudo apt-get install screen
サーバのインストール
インストールというかダウンロードするだけ。ダウンロードページ minecraft_server.jarのリンクを引っ張ってくればよい。 面倒なのでログインユーザのホームディレクトリに管理することにして作業フォルダは~/minecraftとする。
mkdir ~/minecraft cd ~/minecraft wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
実行用スクリプトの作成
Debian 6/Ubuntu 12.04なら.profileで$HOME/binがあればPATHに突っ込んでくれている(つまり新規に$HOME/binを生成した場合は次回ログイン時にPATHが通る)ので~/binに作成する。
mkdir ~/bin cd ~/bin vi minecraft-server
で以下内容を保存。
#!/bin/sh cd ~/minecraft screen -AmdS minecraft-server java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
次にscreen起動用のスクリプト
vi minecraft-console
で以下内容を保存。
#!/bin/sh screen -r minecraft-server
実行権限をつけたら終わり。
chmod u+x minecraft-server minecraft-console
これでminecraft-serverと打てばサーバを起動、起動中のコンソールにアクセスするにはminecraft-consoleと打てばいい。コンソール実行(screen)から戻るには「Ctrl+A」を押してから「D」を押す。
設定ファイルを書き出すために一回起動して終了させておく。minecraft-serverを実行して、次にminecraft-consoleを実行。コンソールでstopと入力してminecraft-serverを停止させる。これで~/minecraftに幾つかのファイルが作成される。
ワールドデータの転送とminecraft-serverの設定
たとえばNew Worldという名前のワールドデータはWindows 7のC:\Users\ユーザ名\AppData\Roaming\.minecraft\saves\New Worldにあるのでこれをサーバの~/minecraft/New WorldにFTPなどでファイルをコピーすればいい。
次に~/minecraft/server.propertiesを開く。level-name=worldという箇所がワールド名の読み込み部分なのでこれをlevel-name=New Worldにすると持っていたワールドデータでminecraft-serverを起動できる。
あとはops.txtに自分のminecraftユーザ名を入れて管理者になれるようにしておくとよい。
ワールドデータのバックアップ
管理者コマンドに/save-allがあるのだけどバックアップコマンドなのかよくわからなかったので
tar -czf world.`date '+%Y%m'`.tar.gz world
などでワールドデータのフォルダをバックアップしておいたほうが確実だと思われる。
サーバの公開
デフォルトだと誰でもアクセスできるようになっていて世間には破壊者みたいなユーザもいるのでサーバのアドレスをうかつに人に教えたりしない方がいい。ポートを変えたり、ホワイトリスト対応するなどの手段も有効。