ぜつぼうてきー。マオです。
Mod開発環境を整えて、UgoCraftのソースをいじって、約3時間。
問題が山積み過ぎ(笑)
とりあえず、エラーを潰してプレイ出来る所までは行ったんだけど、まともには動かない。
以下に、短いがデバッグ中動画を用意した。
よし、これからUgoCraftをTeleportCraftに改名しよう、それで解決だ!
それ以外にもGUIが開かない。
後、動画には無いが再起動すると変換面が表示されなかったりもする。
これは、また1からMod製作を学習する必要があるな。
UgoCraftがMod勉強から公開まで約5ヶ月なので、そのくらいはかかるかもしれんな・・・。
期待しないでくれ、多分途中で諦める気がする(笑)
これで最後と思いたい。マオです。
UgoCraft20120725の03版公開です。
先日行った耐久試験で気になった部分の修正と、Ugo objectからブロックに戻す時の処理軽減を行ってます。
前者に関しては、新しい処理軽減の布石が打てたので今後の修正に期待できそうです。
やる暇があるかは別ですが・・・。
後者の軽減策は、変換したブロックによっては処理ループが半分になります。
変換ブロックが多ければ多いほど効果を発揮しますが、その変動幅が分からないので体感できるかは不明です。
さて、ModLoaderが来たようですね。
MPの方がどうなるかが分からないですが、手が出せるようならシングルオンリー版でも作ってみますか。
作ってる途中でMP来たら、そっちに移行してしまいますが・・・。
緊急企画。マオです。
さてパソコンのパワーアップが終わったので、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を入れた方が良いかもしれんな。
ま、この温度で私の脳が耐えられて、調子の悪いパソコンの機嫌が良ければだがー。