minecraft@MineCraft:~$ exit
ログアウト
master@MineCraft:~$
master@MineCraft:~$ sudo ufw allow 25565/tcp
master@MineCraft:~$ sudo ufw reload
master@MineCraft:~$ sudo ufw enable
(Minecraftのポートを変更している場合は 25565/tcp を変更してください)
マウント先の作成
master@MineCraft:~$ sudo mkdir /ramdisk
master@MineCraft:~$ sudo chmod 777 /ramdisk
メモリの使用状況を確認
master@MineCraft:~$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/GameServer--vg-root ext4 134G 2.0G 125G 2% /
none tmpfs 4.0K 0 4.0K 0% /sys/fs/cgroup
udev devtmpfs 2.0G 4.0K 2.0G 1% /dev
tmpfs tmpfs 396M 668K 395M 1% /run
none tmpfs 5.0M 0 5.0M 0% /run/lock
none tmpfs 2.0G 0 2.0G 0% /run/shm
none tmpfs 100M 0 100M 0% /run/user
/dev/sda1 ext2 236M 55M 169M 25% /boot
/dev/shmではなく/run/shmになっている上、2.0GBだったので2.5GBに拡張した上で/ramdiskにマウントします。
master@MineCraft:~$ sudo nano /etc/fstab
以下を最終行に追記
none /run/shm tmpfs nosuid,nodev,size=2560M 0 0
/run/shm /ramdisk tmpfs defaults,size=2560M 0 0
(ちなみに、/run/shmは/lib/init/fstabに書かれていますが、/etc/fstabで設定を上書きしています)
反映させるために再起動
master@MineCraft:~$ sudo reboot
RAMDiskができていることを確認
master@MineCraft:~$ df -h | grep ramdisk
/run/shm 2.5G 0 2.5G 0% /ramdisk
Minecraftのデータの読み書きは基本的にWorldデータなのでこれをRAMDiskに移動させ、高速化します。
まずは、ユーザーを切り替えし、作業フォルダに移動します。
master@MineCraft:~$ su - minecraft
minecraft@MineCraft:~$ cd 1.7.10/
world フォルダの中身を world_storage(保存用フォルダ) へコピー
minecraft@MineCraft:~/1.7.10$ mkdir world_storage
minecraft@MineCraft:~/1.7.10$ cp -rp world/ world_storage/
RAMDiskにminecraftフォルダを作成してWorldフォルダを持ってくる
minecraft@MineCraft:~/1.7.10$ mkdir /ramdisk/minecraft
minecraft@MineCraft:~/1.7.10$ mkdir /ramdisk/minecraft/1.7.10
minecraft@MineCraft:~/1.7.10$ mv world/ /ramdisk/minecraft/1.7.10/
world へ設定ファイルのリンクを作成する。(実際はRAM上で動くようになる)
minecraft@MineCraft:~/1.7.10$ ln -s /ramdisk/minecraft/1.7.10/world/ .
RAMDiskは電源が切れると消去されるので、起動時にRAMDiskにコピーし、終了時にRAMDiskから保存フォルダにコピーするように起動用スクリプトを書きます。
minecraft@MineCraft:~/1.7.10$ nano 00_StartServer.sh
#!/bin/bash
mkdir /ramdisk/minecraft
mkdir /ramdisk/minecraft/1.7.10
mkdir /ramdisk/minecraft/1.7.10/world
cp -rp /home/minecraft/1.7.10/world_storage/* /ramdisk/minecraft/1.7.10/world/
#起動
java -Xmx1024M -Xms1024M -jar forge-1.7.10-10.13.2.1232-universal.jar nogui
#終了時に保存用フォルダにコピー
rsync -av --delete /ramdisk/minecraft/1.7.10/world/ /home/minecraft/1.7.10/world_storage/
次に、実行権限を付与します
minecraft@MineCraft:~/1.7.10$ chmod +x 00_StartServer.sh
そして、実行
minecraft@MineCraft:~/1.7.10$ ./00_StartServer.sh
次回は、停電に対応するため定期的にバックアップを取るようにしていきます。
]]>サーバー用ディレクトリを作成します。
今回はバージョン1.7.10なので下記のコマンドを入力しました。
minecraft@MineCraft:~$ mkdir 1.7.10
下記のコマンドで先ほど作ったディレクトリに移動します。
minecraft@MineCraft:~$ cd 1.7.10
次にMinecraftのサーバーファイルをダウンロードします。
minecraft@MineCraft:~/1.7.10$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.7.10/minecraft_server.1.7.10.jar
サーバーを起動してみます。
minecraft@MineCraft:~/1.7.10$ java -Xmx1024M -Xms1024M -jar minecraft_server.1.7.10.jar nogui
実行するといろいろ表示されますが下記の内容で起動しないはずです。
[10:56:50] [Server thread/INFO]: Starting minecraft server version 1.7.10
[10:56:50] [Server thread/INFO]: Loading properties
[10:56:50] [Server thread/WARN]: server.properties does not exist
[10:56:50] [Server thread/INFO]: Generating new properties file
[10:56:50] [Server thread/WARN]: Failed to load eula.txt
[10:56:50] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[10:56:50] [Server thread/INFO]: Stopping server
[10:56:50] [Server Shutdown Thread/INFO]: Stopping server
これは、エンドユーザーライセンス利用規約に同意してないから起動できませんとのことなので、
同意します。(eula.txtは翻訳等を探すなりして把握してから同意してください)
minecraft@MineCraft:~/1.7.10$ nano eula.txt
eula = true
(eula = falseをtrueに変えると同意したことになる)
再度起動してみます。
minecraft@MineCraft:~/1.7.10$ java -Xmx1024M -Xms1024M -jar minecraft_server.1.7.10.jar nogui
以下のような感じで入力可能になれば無事起動に成功しています。
[11:12:57] [Server thread/INFO]: Preparing spawn area: 84%
[11:12:58] [Server thread/INFO]: Done (4.997s)! For help, type "help" or "?"
終了させるときは stop と入力してください。
]]>Linux では基本的にOpenJDKをいれるけど今回はWindowsでも使っているOracleのJDKを入れてみます。
バージョンはMinecraft1.7.10を動かすのでJava7にします。本体はJava8でも動くけれどForgeがJava8だとエラーになるので。
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer
(切り替えの必要がある場合は、update-alternatives –config java を実行する)
Minecraft用のユーザーを作成します。
$ sudo adduser minecraft
パスワードの入力やユーザープロフィール入力が求められますので、適宜入力してください。
ここからは、Minecraft専用の設定になりますので先ほど作ったユーザーに切り替えます。
master@MineCraft:~$su – minecraft
を実行すると下記のように表示が変わります。
minecraft@MineCraft:~$
次回からサーバーを設置していきます。
]]>$ sudo apt-get update
すると、なにやら文字化けしています。
これはインストーラで日本語を選択した場合、コンソールでも各プログラムが日本語を出力しようとしますが、標準のコンソールでは日本語表示に対応していないためなのでまずはこれを直します。
コンソールで英語のメッセージを表示させるための設定を行います。
$ nano ~/.bashrc
nanoエディタで.bashrc開いたらファイルの末尾に下記を追記
case $TERM in
linux) LANG=C ;;
*) LANG=ja_JP.UTF-8 ;;
esac
Ctrl+Xキーを押し、画面の指示に従えば保存し終了
$ source ~/.bashrc
以上で英語のメッセージが表示されるようになったかと。
コンソールの文字化けを英語出力に戻すことで回避したのでまず、Ubuntuを最新の状態に更新します。
必要ないですが、文字化けの対処できてることを確認するためもう一度下記のコマンドを実行します。
$ sudo apt-get update
英語表記になっていますね。
次に先ほど更新したリストに従い、更新のあったソフトウェアを下記のコマンドで最新の状態にします。
$ sudo apt-get upgrade
今回はLAN内で利用するサーバーなのでパスワード方式でログインできるように設定します。
まずは下記のコマンドでインストール
$ sudo apt-get install openssh-server
そして、念のためサーバーを再起動
$ sudo /etc/init.d/ssh restart
以上で、サーバーへSSHリモートログイン可能。
(設定ファイルがデフォルトのままなのでサーバーのログインパスワードでリモートログイン可能)
サーバーにするPCの構成は下記の通り
OS Ubuntu Server 14.04
CPU Intel Core 2 Duo E4500 @2.20GHz
Memory 4GB
HDD 1TB
ということで早速OSのインストール。
今回はUbuntuServer14.04を使います。
ISOをダウンロードしDVD-Rに焼いてサーバーでBootさせます。
上記の画面になりますので日本語を選択して[Enter]
Ubuntu Serverをインストールを選択して[Enter]
確認画面が表示されるが、今回は続行するので[はい]
日本を選択して[Enter]
日本語を選択して[Enter]
お使いのキーボードを選択して[Enter]
(通常は日本語)
ホスト名を入力し[続ける]
(これはWindowsでいうコンピュータ名です。今回はMineCraft)
ユーザー名の入力し[続ける]
(今回はmaster)
アカウント名の入力し[続ける]
(今回はmaster)
パスワードを入力し[続ける]
パスワードを再入力し[続ける]
簡単なパスワードを入力した場合、確認画面が表示されます
ゲームデータしか入れないので今回は暗号化しないので[いいえ]
今回は、自動検出のタイムゾーンで正しいので[はい]
ガイド – ディスク全体を使いLVMをセットアップするを選択して[Enter]
(HDDはUbuntu専用かつ増設の可能性も考えてLVMを使ってインストール)
ディスクを選択し[Enter]
問題なければ[はい]
容量設定画面。適切な値を入力し[続ける]
(スクリーンショットは解説用VM環境のためHDDが20GBの設定のため21.2GBという少なさです)
問題なければ[はい]
自動的にアップデートしないを選択し[Enter]
システムのアップデートは基本手動で行います。
すべて未選択で[続ける]
(1つ1つ確認しながら入れるためすべて未選択)
[はい]
[続ける]
以上で、UbuntuServerをインストール完了です。次から環境構築していきます。
]]>以下、調べた内容をまとめて記録
タスクマネージャーの「パフォーマンス」タブのリソースモニターにて
この段階で、ボトルネックになっているのがCPUだと推測
改めてリソースモニターのCPUの欄を見ると「最大周波数」の欄が「33%」になっている。
つまり、そもそもCPUの動作速度が引き下げられいる。
「じゃ、理由は?」ってことで以下の2つ考えた
2つとも、存在する機能らしいってぐらいは知識としあるけれど実際しらないのと等しいので調べてみた。
(使用していたCPUはintel Core 2 Quad Q6600なのでintel CPUの内容となります。)
CPUの省エネ機能
CPUの熱からの保護機能
上記の事から今回の挙動がTM2の発動によると考え、CPU温度を見てみることに。
使用するソフトは「Core Temp」が無料で使用できる。
(standaloneとLanguage packをダウンロードした場合はCore Tempフォルダ内にLanguagesフォルダを作成し、言語ファイルを格納する)
見てみると95℃を超えておりたまに100℃に達している状况だった早急にPCケースのサイドパネルを外し、扇風機の風をCPUに対して、45°の角度で風を当てた。(垂直に当てるとCPUクーラーに負荷がかかると考えてこうしたけど、どうすれば一番いいのか知らないです。)
すると、温度が75℃付近になるとFPSも回復が見られたので、今回のFPSの原因はCPU温度で有ることが確認できた。
そもそも、CPUの適正温度ってどれくらいなのだろう
複数のサイトを見た感じ以下の温度が目安のようだ。
今回この現象が発生したPCのCPU Core 2 Quad Q6600はTM2は大体95℃ぐらいで働いた。
このあたりはもしかするとBIOSで設定できるのかも知れないが確認していない。
まず、UIAutomationで、DeepMilkPlayer2のメインウィンドウ内にコメントリストを表示させて、そこからコメントを取得し、
Plugin内でコメントリストを再生生成する。
次に、またまたUIAutomationで今どのコメントが表示されているのか推測するためにDeepMilkPlayer2のメインウィンドウの下部にある再生時間を取得する。
棒読みちゃんで必要な情報はこれぐらいのはず・・・。
と言うことで、エラー処理とかデータ構造とか一切考えず、まず音声再生まで作ってみました。
いくつか見えた課題が・・・また次回
]]>そして先日、「棒読みちゃん」と言うソフトを見つけました。
DeelMilkPlayer2と連携して、コメントを読み上げてくれる用になったら「にぎやかになるかな?」という軽い気持ちから開発を開始してみたいと思います。
とりあえず、思考を整理するために図を用意しました。
この図を眺めながら処理部分を考えていきます。
こういった方法は、個人によってやり方が違うので効率的か非効率的かは一概に言えません。
たぶん、図を描いている時間が大事で出来上がるころには処理のアイデアとか浮かんでいるのではないでしょうか?
少なくとも私は図を書くことで思考を整理することが多いです。
で、いろいろ考えた結果、今回は「棒読みちゃん」のPluginとして作成を予定しています。
そして、DeepMilkPlayer2からコメントを取得するのにUIAutoMationという技術で実現予定です。
T98-NextおよびNeko Project IIに利用できるHDDイメージを公開します。
これはPC98用のMS-DOSを持っていない方のためにFreeDOS(98)と言うフリーのOSが動く状態のHDDイメージです。
このイメージを利用することで「アリスソフト アーカイブズ」のソフトを動かすことができるかもしれません。
前回公開していたものの中には「固定ディスク起動メニュープログラム」が含まれていましたので、
含まない形で再作成しました。あわせて、FreeCOMに不具合があったのでそちらも別のもを導入しています。
導入物
前回配布時同様、このHDDイメージを利用し発生したいかなる事象も関知いたしません。
すべて自身の責任においてご利用ください。問い合わせも不可とさせていただきます。
対象となる仮想ストレージは.vdiファイルのみです。コマンドプロンプトからの操作になりますが難しくはないかと。