まだ足掻く事が出来る。マオです。
公式1.3.1での最新UgoCraftをシングルで動かしてみた。
このシングルは、ModLoaderとModLoaderMPが今後更新されたら、こんな感じに実装されるんじゃないかという予測で、スポーンする処理だけを作った物なので、今後こうなるかは不明だ。
とりあえず、動画をどうぞ。
過去の遊び道具で遊んでいるわけだけど、色々と問題は起きている。
ドア・ベッド・ピストンがうまく動かない。
設置・取り外し順序が存在するので、ここらへんは本当に面倒。
まともに動くようになった時にはブロックの全チェックが始まる・・・イヤスギル。
ちなみに、新しく追加されたブロックのいくつかは動く事を確認している。
公開版が出た次のバージョンアップで追加予定だ。
公開版が出るかが不明だがー。
変換時に一瞬黒くなるのは、マルチでの仕様。
ブロックが初期起動時のみの特殊な処理を組み込めば、もう少し不自然さは無くなるのだろうけど、それが簡単に出来てたら1.2.5のマルチを修正できている。
ブロック変換サイズに関しては、6400ブロックまでは確認している。
でも、スペックが大変な事になりそう。
ここらへんはパケット関係の処理で、良いアイディアが出る事を祈るしかない。
エレベーターや乗り物は、横移動や下降はまだマシなのだが、上昇に関しては絶望的。
1.2.5マルチと同じように、ガクガクして大変な事になる。
もうキッパリ諦めて、仕様にしたい気分になってきた。
正確なスポーン・デスポーンや同期を実装しているわけじゃないので、停止や起動中のON/OFF切り替えでズレが生じている。
ただ、これが同期してしまった場合は滑らかさが無くなる可能性がある。
次のプランを取り入れて成功すれば、シングルでの同期は気にしなくても良くなるが、多分他の部分で問題が出過ぎて、大変な事になりそうな予感がする。
何が正しい答えなのかが分からなくなってきた。
こんな感じでまだまだ前途多難です。
誰かPCやセーブデータが吹っ飛んでもいいやって人、テスターでもやってみるか?(笑)
大砲ちゃん・・・。マオです。
UgoCraft20120725の05版公開です。
03版で修正したスタックオーバーフローの置き土産に影響してたようで、検索時の長さを調べる部分のxプラス軸だけが考慮されてませんでした。
何で、ここだけ変数名を直すのを忘れたのだろう。
これの影響で、xプラス軸をいくら伸ばしても0扱いになって、xプラス軸ならいくらでもブロックを伸ばせるようになってたし、大砲ではいくら重心を動かしてもxプラス軸には傾きませんでした。
1.3.1で作ったコードを1.2.5に移植して、1.3.1でバグを見つけて1.2.5を修正する・・・もう、ややこしい><
これ以上、修正の名目のバージョンアップはしたくないorz
何か面倒になってきた。マオです。
連日あの手この手でコードを書き換えているUgoCraftですが、4つ目のプランが現状で一番マシという結論に達した。
ローカルでもModloaderMPの機能を利用しようという方法です。
一応マルチに対応しているModなので、クライアントの受け口にModLoaderMPを使って必要なデータを投げてあげれば、自動的に表示はしてくれるんだよね。
で、ここで問題があってクライアント側に付いている内部サーバは、ModLoaderMPの機能を持っていない。
つまり公式コードをいじって機能を組み込むか、UgoCraftのコード部分に同等の機能をやってくれる機構を付けるしかない。
これは放置だな。
多分予想だけど、これはModLoaderかModLoaderMPが対応してくれるはず。
時間はかかるだろうけど、この問題を解決しないと現状の仕様ではUgoCraftはもちろん、その他のMob以外のEntityを追加するModは1.3対応が簡単には出来ない。
さすがに、リアルを潰してまで力は入れたくないので、しばらくは1.3への移植作業は中止だな。
ただ、それ以外の仕様の部分は結局直さないと、時期が来た時に移行出来ないので、そこらへんを少しずつ直していく事にする。
1.3に対応出来たとして、問題は色々出るんだよね。
確実に必要スペックは跳ね上がるし、1万ブロックとかの変換も多分出来なくなる。
前回の記事でも書いたが、今良い感じに1.3で動かす方法として、UgoCraftを導入したマルチサーバを別に立ち上げて、ログインして使うという方法があったりする。
私の遊び方としてはそれで良いような気がするんだよな・・・(笑)
ともかく、状況が変わるまでは1.3移植は待機状態ですね。
何か変化があったら記事にするとしよう。
そういえば、今まで公式1.3を考慮して1.2.5版の機能追加をやらなかったんだけど、1.3でSpriteId軽減がそのまま使えるので色々追加してみると言うのも手かもしれないな。
見つけちゃった。マオです。
UgoCraft20120725の04版公開です。
1.3対応の時に見つかったバグで、マルチでのコアブロック(大砲)の挙動に関する修正です。
TNTを燃料として使うとUgo objectが魔球のように上下にジグザグしながら飛んでいったのですが、これで大人しくなるでしょう。
後、発射時間が反映されていなかったので、それも修正しています。
今回の対応はマルチの修正ですが、保存データの書き換えがあるのでシングル専用の人もアップデートした方が良いです。
最近のUgoCraftなら、いくつかバージョン飛んでも対応できるように作ってあるから、大丈夫と思うけど・・・。
1.3対応の続きは明日にまわそう。
まだまだプランはある。マオです。
何かすると何処かで問題が起こる公式1.3用UgoCraftですが、とりあえず正攻法で動くかどうかを試してみた。
つまり、公式の考え通りに内部サーバとクライアントで通信をする。
Ugo objectに必要なデータをサーバ側に検索させて、それをパケットでクライアントに投げる。
結果は動いた。
見た目だけしかやってないけど、一応動いた。
これで行けるかと思ったんだけど、やっぱり落とし穴があるんだよねぇ。
大量のブロックの変換が出来なくなる。
パケットサイズに限界がある為に、200ブロックで試したけどフリーズする。
・・・これはボツですネー。
ただ着想は良かったので、これを使って次のプランを実行してみるとしよう。
開発フォルダにバックアップが一杯だよ!