2015/09/11(金)天に届ける迎春花 Ver1.2.0 (3)裏ダンジョンの新しさ

・・・ということで、早々にランダム化はヤメて、
普通に「難しい裏ダンジョン」にコンセプトを切り替え。
基本は表ダンジョン(ハーペルの塔)の仕様を踏襲しつつ、
仕掛けを増やすイメージ。
その仕掛けは、メッセージでは解き方を提示せずに、
マップ上だけでプレイヤーにヒントを与える形式とした。
裏ダンジョンだし、まぁ、多少は難易度は上げてもいいかなと。

当初は5階層で組み進めていたのだが、敵に目新しさがなかったため、
バランス調整が表ダンジョンとそんなに変化がなくなってしまった。
これでは厳しいので、思い切って敵を増やし、装備も増やしてみた。
氷禍とダースベイクの中間の強さの敵がいなかったので、
それを増やし、残りは、ルシファルコよりも強いやつにしておいた。
そうすると、敵の配置に幅できて、実装するのも楽しくなってきた。
やはり作るのが楽しいのは良い。

結果的に色々な要素を詰め込んで、かなりいい感じに仕上がったと思う。
下手にランダムダンジョンを突き詰めていかなくてよかった。

2015/09/06(日)天に届ける迎春花 Ver1.2.0 (2)ランダム化計画

当初は、ダンジョンをランダムにする計画があった。
井戸の中が部屋単位で区切られ、それが連結する形に
なっているのは、その名残である。
発想としては、迷路をブロック単位に分けて、
通路をランダム化し、出現モンスターやアイテムも
ランダム化するというものであった。

仮に1フロアだけ簡易的に実装してみたが、全然面白くなかった。
プレイ毎のバラツキが強く、簡単に先に進めたり、
逆にすぐに詰まったりする。(解なしの状態)
この仕様では、成長する嬉しさがかなり減少。
あとは、扉をランダムに配置するのは難しいので、
成長アイテム+敵の配置がメインとなってしまう。
これでは、行けなかった場所へ行けるようになる
嬉しさもかなり減少。

結局、ランダムダンジョンを迎春花に
実装することは断念した。
ただ、ダンジョンのランダム化自体には、興味があるので、
今後とも研究していきたい。
ちなみに、Coloradoでは、迷路だけランダム化した
ステージを既に実装している。
Coloradoの仕様に即した実装になっているので、
これはこれで別に問題ないのだが、
やはり、いろいろな要素がランダムになっているのを
いつか作ってみたい気がする。

2015/09/03(木)天に届ける迎春花 Ver1.2.0 (1)ダンジョン追加しました。

前回、もう迎春花に手を入れない宣言をしているにも
かかわらず、追加ダンジョンを入れてしまいました。

結構WWA系の需要はあるらしく、迎春花のシステムを
ベースにWWA系をもう1つ作るかな…と思いつつ、
さすがにColoradoを放置し続けるワケにもいかないので、
とりあえず、迎春花にダンジョンを追加するなら
そんなに工数はかからないかな…と思いつつ、追加したのでした。
(でも、意外と工数はかかったのだが)

それでも、2週間で追加ダンジョン「井戸の中」は実装完了。
表ダンジョンである「ハーペルの塔」も一か月半で作ったので、
結構ツクール系WWAはなんとかなる!
ということで、みんな作ってみよう!
ものは試し!

2015/04/29(水)迎春花更新!

天に届ける迎春花を更新しました。

以前の記事に書いた通り、チュートリアルつけて、
初日から魔法を1つ覚えるようにしました。
塔の中身は変えていませんので、既にクリア済みの方は
とくにダウンロードしなくてもOKです。

たぶん、これが最終更新になるかと思います。

5か月ぶりにColoradoの開発に戻ったのだが、
中身を全然忘れているので、結構厳しいな…
やっぱ開発は集中してやらんとイカンですな。

2015/04/13(月)RGSSの停止について

VXAceのゲームプレイ中に、このようなエラーが出る場合がある。
「RGSS3(RGSS2) Playerは 動作を停止しました」
rgss_error.png

RGSSをカスタマイズして制作しているもので、よく見かける。

今回、天に届ける迎春花を制作している途中でこの現象が発生した。
再現性は100%ではないが、どうもカスタマイズした処理を
通すと落ちるような挙動を示す。

これの原因は「メモリリーク」である。
簡単に言えば、メモリが正しく解放されていなくて、
Rubyのインスタンスが残ったままになっている状態にある。
ここからは予測になるが、画像(Bitmap系)がdisposeされないまま、
参照がされなくなってしまうと、GCが働いてdisppose前の
領域をGCスレッドがクリアしようとして、メモリ違反的な
ことになっているのではないかと思う。
最初は原因不明だったが、GC.disable = trueにすると
落ちなくなったので、GCが絡んでいると思われる。

やっかいなのは、問題解消方法である。
基本的にはnewされたインスタンスが
正しいタイミングでdisposeされていることを確認するという手法になるが、
どこで発生しているかを特定するのが難しいため、
何度もエラーを起こして特定するか、あるいは
ソースをしらみつぶしに見るしかない。

あとは、newした際に別自動的に管理インスタンスに登録して、
disposeされる前に参照されなくなるような仕組みを
自前で作るという案もあるが、大規模プロジェクトじゃないと
効果がでないと思う。

(旧約)帽子世界でも、同様のエラーで落ちることがあるが、
VX版のサイドビューを導入したときに、たまに落ちていることがあった。
新約ではキャッシュの有無を選択できるようにしているようである。
キャッシュを利用すれば、結果的に落ちないということは、
やはりGCが絡んでいると思われる。

この件については、なかなか検索でヒットしないので、書いてみた。
OK キャンセル 確認 その他