2017-07

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

アイテム関連に手を出し始めました

スキルウィンドウ周りがだいぶ片付いたので、アイテム関連に着手です。このゲームは持っているアイテムに固有の情報があるため、単純なアイテムIDのリストだけでは駄目だったりします。この辺の管理をどんなクラス構成でやれば良いのか…。正直クラス設計のスキルが皆無なので、あれこれ悩んでいてもいいアイデアが浮かびません。しょうがないので当たって砕けろ作戦ですwwwwやりながら問題を洗い出し、可能な限り状況にあった仕組みに軌道修正しつつ作っていきます。
もう1つ面倒なのが、地面に落ちているアイテムと抽象的なアイテムを関連付けるのもなんかイメージ付きません…。とりあえず必要そうな素材作りをやっています。

090614_ItemShortSword.jpg
上の図はショートソード系のアイコンです。アイコンっていっても3Dモデルなんですが、これが敵や樽からポロリと出てきます。赤と黒の部分は加算合成でブレンドするので黒の部分は抜け、さらにUVスクロールすることで、クリクリ動くはずです(まだ実機で見ていません…)。ショートソード系は3種類作成するつもりですが、どれも同じアイコンとなります(装備グラフィックは変えるつもり)。

● COMMENT FORM ●

私の場合、現時点のアイテムのクラス設計は、一番基底にItemDataというクラスがあって、IDや種別、ユニーク番号、テクスチャ情報のような全てのアイテムに共通になる情報がある感じです。派生先で、ポーション系、ウェポン系、道具系…みたいな感じにできるように設計しました。プレイヤーが所持している情報は、ItemSetというようなクラスをList<ItemData>の派生で作り、アイテム種別や、ユニーク番号をキーで、引けるようなメソッドを実装しました。

この辺りは来月お会いした時にお話ししましょう。(^^)

あっ、そうそう。
ブログのテンプレートの変更、お疲れさま(?)です。とても綺麗なレイアウトですね。
私はFC2ブログが初めてのブログなのですが、このブログって、テンプレートによって「コメントにタイトルが必要なものと不要なものがある」というのが不思議です。ガイドラインは無いんですかね…

こんばんわ~。テンプレまた変えてみました!
確かに今回のはコメントのタイトルが使えないようですね。トップのブログの説明文もなかったりしますし、モノによっていろいろと違うようです。無理に入れるとデザインにあわないこともあるので、その辺を統一するのは難しいんでしょうね~。

クラスは経験不足なので、やり続けるしかないですね~。今回のゲームはプログラムと企画の勉強という側面が強いので、いろいろと課題が多いです。次回作のための資産が残ると良いのですが、どうも難しそうです…。かなり深いところまでこのゲーム固有な情報が入り込んでしまっていて、切り離せそうもないです。

ListってGC発生しませんでした? 静的なところでは使っているんですが、メインループ内では使わないようにしています。うまいやり方があるんでしょうか…。

>ListってGC発生しませんでした?

多分Listクラスに限らず、コンテナ系は言語仕様として、みんな発生すると思います。
コンテナに載せている情報が破棄されたときにLRUのタイミングでGCが発生するのだと…
ポイントはそのGCが発生するときに破棄されたオブジェクトの情報が大きい(&量が多い)とパフォーマンスに影響するのだと思います。たとえばタスク管理をListで管理したとして、そのタスクが消えたときに、どれだけ消えたタスクの情報量が多いか…とかですね。アイテム情報だと大したボリュームにならないと思うので、その辺はあまり気にしないで行けそうな気がしないでもないです…が、どーなんでしょうね。
特に実機だと、どれくらいの影響が発生するか、私には分かっていません。
ご存知のとおり、情けないことに私は実機上の確認を一度もしていないので、ここだけはなんとも言えないです…(^^ゞ

それか、ゲームの区切りができるまで、Listに登録したオブジェクトは破棄せずに(登録したオブジェクトにはとりあえず「処理しないフラグ」とか設けて、シーン中はスキップするようにする)、区切りの良いところで一斉に破棄、そしてSystem.GC.Collectなどで強制的にメモリをお掃除する…とかも設計できそうですね。
…って、ここまで作られて、こんな案を出すのも変な話ですが…(^^ゞ

私はいまどきListとかコンテナ系のクラスが使えないなんて、ありえないと思っている人種なので、ゲームプログラムにもこの辺を使って設計しちゃっています。GCのメカニズムは理解しているつもりなので、上述のように変則的な方法を考案とかしちゃいますね。

この辺はオフで一杯話しましょう!
図で説明できるように、前回みたいにメモ用紙とノートPCを持って行きますね!

遅レスですみません…。
昨日は久しぶりにくたばってました。朝。電車の中で携帯ゲームやってたら酔いましてwwww電車で酔うなんて初めてだったのでビックリ。一日中クラクラしてました…。

プログラムに関していろいろと貴重な話が聞けて感謝です! ほんとその辺は疎くて…。
360上でGC発生すると目に見えてガクっとなりますよ! FPSみたいに表示物が多いときには重くなるのが当たり前なゲームだとそんなには気にならないかもしれませんが…。
私は大きめの配列に処理しないフラグでまかなってます。メモリの無駄使いしまくりです。コリジョンのワークは100個くらい最初に確保しちゃってますwwwやられコリジョンが1キャラ5個ぐらいで、攻撃が2、ガードが1としても、12キャラ分ですか。意外とこんなもんなんですかねwww


管理者にだけ表示を許可する

トラックバック

http://karuduck.blog50.fc2.com/tb.php/132-f71fc1b5
この記事にトラックバックする(FC2ブログユーザー)

NEW ENTRY «  | BLOG TOP |  » OLD ENTRY

プロフィール

Karu_gamo

Author:Karu_gamo
<メールアドレス>
karu_gamo#hotmail.co.jp
#を@に置き換えてえてください。

<自分リンク>
かるがも研究所【新】
YouTubeチャンネル
公開素材置き場
仕様書
旧ブログ(見るとこないです)
管理者ページ

リンク

YouTube動画

FC2カウンター

カテゴリー

Twitter

 

月別アーカイブ

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。