緊急企画。マオです。
さてパソコンのパワーアップが終わったので、UgoCraftの変換耐久試験を行う事になりました。
実は換装前に変換耐久試験をやってて、専用のワールドも作っておいたのだ。
山を浮かせただけです。
浮いている部分で大体17000ブロックくらいで、適当に切っていくつかのサイズを用意してみました。
簡単な話、これをスライドさせるだけの簡単なお仕事です。
使用しているUgoのバージョンは公開前の開発バージョンで行ってます。
後、換装後にさらに軽減処理を仕込んだので、正確な比較ではない気がする。
なので、話半分で見てくれ。
予備知識。
UgoCraftでブロックを動かす工程で、重くなる処理は以下の通り。
「ブロックを検索してUgo objectにする」「Ugo objectを動かす」「Ugo objectをブロックに戻す」
今回の実験で感じたのは、「Ugo objectを動かす」処理は他の処理に比べたら、遥かにマシになったと感じた。
初期バージョンでやったら、1000ブロックもマトモに動かせないはず。
後、ブロックの配置によって、移動処理が軽減出来たり出来なかったりする。
軽減率が一番高い配置は、見える面積が小さい構造物である。
3×3×3の構造物は中心の見えないブロック部分の処理が省略される。
大きな塊を動かしたとしても、ブロック数と実際の移動処理のコストは比例しない。
ただ、変換作業だけはブロック数の影響を全部受ける。
向きがあるブロックは、特に処理速度が酷い事になるので注意しよう。
開発版で少しは軽減してるけど・・・。
MinecraftとJavaの仕様で、巨大構造物の1回目の変換に関しては、必ず重くなる。
ブロック更新をする為の配列のサイズ拡張処理が含まれてしまう為である。
一回変換すれば、ゲーム終了まで拡張されたままなので二回目以降の感想になる。
換装前スペック
CPU:Core i3 530
割り当てメモリ:1GB
グラボ:GT220
換装後スペック
CPU:Core i5 3550
割り当てメモリ:1GB
グラボ:GT640
「17000ブロック」
さすがにどちらも目に見えて動きが悪いし、変換時に気になるフリーズを感じる。
換装前はUgo object移動中は1FPSと出てるが、完全に処理しきれていない。
換装後は13~15FPSくらいで、動いている。
実用的なサイズではない事は確か。
「13000ブロック」
ちなみに、このブロックの数は適当に山を切り崩して作っている(笑)
換装前はどうしようもない。
換装後は28FPSで動いている、気になるブレを感じるがマトモに動く。
「6400ブロック」
換装前はようやくマトモに動くように見える。
換装後はまったく気にならない動きになった。
ただ、両者に言える事は多少変換時にフリーズが起こる。
以下、動きに関しては問題無いので省略。
換装後も特に体感では変化が無いので省略。
「1100ブロック」
間にいくつか挟んでいるが、ここまで来て換装前の変換が気にならなくなる。
こんな感じですね。
今後Core i3の環境でのテストはされませんので、ここら辺の環境で遊んでいる人はごめんなさいね。
軽減処理は今後もやってくから、それでマトモに動く事を祈ってください(笑)
でも、1.3に移植できるかがまだ不明だが・・・。
小さな所を直す。マオです。
UgoCraft20120725の02版公開です。
遊んだ記事を元に積もった雪対策を行いました。
水との当たり判定と同じにして、Ugo objectからブロックに戻る場合は、積もった雪を除去してブロックに戻ります。
除雪車みたいにUgo objectがぶつかったら雪を除去しようかとも思ったけど、ちと特殊なコードになりそうだし、当たり判定の有無の修正なら1行書けば済むので、この方法で対処。
少しは楽をしなくちゃな。
でも、気分が乗ったらやるかもしれない。
後、いくつかの処理軽減を行ってます。
特に重いとかの苦情は無いし、自分も遊んでいる上では気にならないけど、気になったコードは直したくなる。
実はまだ気になるコードがあるんだけど、大規模修正になりそうだから手を出せないでいる。
しかも、直した所で普通に使ってる場合は意味の無い修正なんだよな。
変更後のソースコードでの動作どんな感じかを見てみたい気持ちはあるけど・・・悩むな。
1.3中にまた修正版が出るかもしれんな(笑)
見るのも良いけどね。マオです。
1ヶ月前ほど前にマルチでKamちゃとMinecraftで遊んだヤツの続き。
ようやく放置していた階段が完成したぜ!
リピーターを大量に消費するな・・・これ。
目玉が出来たし建物を作りたい所だけど、建築能力は高くないから(略)
使ってて問題点が1つ出てきた。
積もった雪にも当たり判定があるんだけど、Ugo objectを無視して雪が積もる為に、コアブロックとの接合部に雪が積もってハマるという罠が。
これはUgo objectが積もった雪にぶつかった時は、それを消去する処理を作った方が良いか・・・。
他にも簡単に改善するべき点が見つかってるし、1回fixを入れた方が良いかもしれんな。
ま、この温度で私の脳が耐えられて、調子の悪いパソコンの機嫌が良ければだがー。
片づけ中。マオです。
ふと、パソコンの中にあるUgoCraft関係のデータを片付けたくなったのでやってるんだけど、これだけで6.3GBも使ってるんだよね。
ただのテキストファイルの集まりなのに。
まあ、大量に書き換える為に、よくバックアップを取るからという理由があるからか。
公開バージョンの3倍くらい、バックアップがありやがる。
そろそろ過去バージョンは必要無いし、圧縮して何処かに退避しとこうかしら。
最近、パソコンがスリープ状態からの復帰に失敗する。
失敗するというか、電源が入らない時がある。
電源コードを抜いて、マザーボードへの通電を止めてから電源を入れると復帰できるんだけど、Bluetoothが死んじゃって操作が出来ないんだよね。
これはそろそろパソコンが吹き飛ぶフラグだろうか。
CPUとマザーボードとグラボとOS導入部分をSSDに換えたい所だけど、お金がなぁ。
このパソコンの中身を換えて2年だし、2012年パソコン増強計画を考えよう。
考えるだけならタダだし楽しいもんね><
バージョンを変えるほどでも無いので。マオです。
UgoCraft20120725_01のクライアント版を差し替えました。
TerrainSpriteID軽減機能を切るという、誰が使うんだよコレな機能の部分で不具合があったので直しました。
選択肢として使う可能性が出てきてしまった・・・けど、ソースコード4文字分修正しただけだし、使わない人は全く使わないので、問題が無い人は入れ替えなくても大丈夫です。
MCPatcherを使っている方でConnected Texturesを入れた場合、UgoCraftで追加されたブロックが鉱石ブロック等の別テクスチャに置き換えられるという現象が出てます。
こちら側のコードで解決する事が出来そうに無いので、回避策として「Connected Texturesを入れない」「TerrainSpriteIDを大量に消費するけど、UgoCraftの設定ファイルのeconomizeSpriteIdをfalseにする」の、どちらかがあります。
そもそもConnected Texturesってなんだろう・・・繋ぎ目のテクスチャだと思うんだけど、何が変わっているのか誰か教えて><
MCPatcherを使う時はHD Textures以外はチェック外してるから、全く気付かなかったぜ。
この記事より前にUgoCraft最新版をダウンロードして、SpriteIDを消費するという茨の道を歩む人は、差し替えをお願いします。