トップページgamedev
1001コメント390KB

ゲームにおけるデータ構造・クラス設計・パターン

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2006/08/10(木) 20:27:06ID:BnvyxuCB
具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。

関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
0977名前は開発中のものです。2008/05/11(日) 18:36:53ID:tOAeonzF
>判らないようじゃ、ゲーム制作に向いてない。
はじめから知ってろってことか
0978名前は開発中のものです。2008/05/11(日) 18:40:49ID:GgT2def3
(明示的な)グローバル変数が無い言語(java?)なら必要かもしれないけど、
ハナからある言語ならシングルトンなんてスパゲティ抑止策としか思えない。
そういう言語だとシングルトンは必要と言えば必要だし、いらなきゃいらない。

と言うわけでお前等落ち着け。
0979名前は開発中のものです。2008/05/11(日) 18:41:31ID:PCcZcAXj
>>976
つーことは。間違えてるのか。
描画クラスをダレに持たせるかが分からなくて、
ダレにも持たせないのを選択したのが、悪いのかな?
0980名前は開発中のものです。2008/05/11(日) 18:42:43ID:PCcZcAXj
書き忘れ。C++でウインドウズ用のプログラムを作ってました。
0981名前は開発中のものです。2008/05/11(日) 18:53:03ID:5xrxRK37
コンストラクタやデストラクタが、近いように見受けられますが
それで済むなら、シングルトンは必要ないですよね。
一つしか存在しないのを分からせる為の目印と言うには分かりにくいですし…
となると、シングルトンが作られた目的というか、用途があるはずですが
例えば、データを受け取って、それをファイルへセーブするクラスはどうでしょうか。

キャラ毎に進行状況やフラグをセーブするような場合や
キャラリストファイルから特定のキャラを選び、探索チームを作成し
そのチームのキャラデータのみをキャラリストファイルへ反映させる場合です。
wile(チームの終わりまで) {
 Team[ chara_pos ].save()
}
(そんなごちゃごちゃしたセーブのやり方をするなと言うツッコミはなしで)
0982名前は開発中のものです。2008/05/11(日) 18:57:03ID:6C+qLPF1
>>979
描画クラスは一つ一つのキャラクターが持つはず。
画像は同じでもアニメのパターンが違ってたりするので。

>>976
STGのザコ敵で、同じ画像を使っていて、何百匹も出る場合です。
0983名前は開発中のものです。2008/05/11(日) 19:03:55ID:GgT2def3
gdgdだなぁ…

クラスに画像が固定ならシングルトンでも良いけど、
可変なら微妙じゃね?
(シングルトンで可変な数の画像読むなら別だろうけど、
それはそれでアクセス方法がシングルトン的じゃなくなりそうw)

つか、必要か不要か二元論な奴は、
議論する暇あったらミニゲームでも作って、
いろいろ試したらどうよ…
0984名前は開発中のものです。2008/05/11(日) 19:38:15ID:tAMxfx7F
質問する方も答える方もバカでワロタw
背伸びしすぎw
0985名前は開発中のものです。2008/05/11(日) 19:38:35ID:Y1IG+/zm
> 一つしか存在しないのを分からせる為の目印と言うには分かりにくいですし…
・シングルトンを知っていれば分かる
・知らずに2個インスタンスを作ろうとしても作れない
これ以上に分かりやすい目印はないと思うが。
0986名前は開発中のものです。2008/05/11(日) 20:27:08ID:5xrxRK37
今、自分は、地図を開いて「このマークはわかりにくい」と言ってるような
現状だというのは分かっています。
マーク単体の意味は分かっても、それを利用する為の判断基準のようなものが
自分の中にまだ備わっていないので、先達の方に例を示して貰えないかと来てみたわけです。
0987名前は開発中のものです。2008/05/11(日) 20:50:58ID:GgT2def3
いい加減くどいな。ゲーム作り始めれば判るよ。お前だって
「自転車のハンドルを右にきる理由は理解してるのですが、タイミングは何時ですか?」
と聞かれたら「転んで憶えろ」と言うしかないだろ?
0988名前は開発中のものです。2008/05/11(日) 20:51:58ID:3RvB3bNr
シングルトンて言葉にするの、何か恥ずかしくね?
「このクラスはシングルトンです。」
とか真顔で言える気がしない。
唯一のインスタンスを保障するだけの癖に
大層な名前がついてるなって思う。
0989名前は開発中のものです。2008/05/11(日) 20:52:35ID:iRDlbSEv
とりあえず言わせてくれ。
みんな話題待ちすぎwww突然レスがつきすぎだぜ
0990名前は開発中のものです。2008/05/11(日) 21:04:49ID:9L6x2D0A
>>967
ハンドルとか設定とかを持たせるときとか
0991名前は開発中のものです。2008/05/11(日) 21:05:29ID:MO+nJU1n
シングルトンは人に説明するのに便利すぎる
他のパターンと違って誤解される可能性が低いのと他よりは知名度高いからよく使ってる

でも、デザパタって意外と知ってる人少ないよね
普通に会話に使うもんだと思ってGoF勉強したけどほとんど通じない
0992名前は開発中のものです。2008/05/11(日) 21:07:20ID:iRDlbSEv
ところで、シングルトンは
インスタンスがなければ生成してから返し、ある場合は既にあるインスタンスを返す関数が在るってことであってる?
個人製作なら自分ルールで最初にその手のインスタンスは初期化する、って決めておけばいらなそう。

複数人で開発する場合で、その手のインスタンスを前もって初期化したくない場合は効果がでるかもわからん

0993名前は開発中のものです。2008/05/11(日) 21:07:32ID:5xrxRK37
>>987
不幸なことに、シングルトンが必要と思われるケースのプログラムを
今までに組んだことがありません。
極端な言い方をすれば、この先シングルトンを使う場面に遭遇しなければ
シングルトンが何なのかさえ分かりません。
知っていて使わないのと、知らないで使えないのでは大きく意味が違うと思います。
0994名前は開発中のものです。2008/05/11(日) 21:29:15ID:2XRRQTqQ
ム板のデザインパターンスレに戻った方が良いと思うよ。
ここはGoFすらろくに知らないで設計語ってるスレだから
0995名前は開発中のものです。2008/05/11(日) 21:32:50ID:FPktO55d
業務系とゲーム系だとまた求められてるものが違うから

スコープはコンテナが管理するというのが今の流れだよね
シングルトンであるとかプロトタイプであるとかで構成は変えないしね

ゲームなら面とかでスコープかえると初期化が楽になるかもしれないけど
メリットはあまりないかと

オンラインゲームなら必須の知識ではあるけど
0996名前は開発中のものです。2008/05/11(日) 21:45:37ID:GgT2def3
>>993
だったら使うなよ。くだらん豆知識さっさと忘れてゲーム作れ。
気がつけば「あ、これシングルトンだったね」と気がつく日もあるだろう。
0997名前は開発中のものです。2008/05/11(日) 21:55:34ID:5xrxRK37
>>996
失礼ですが、他の人が言ったことを繰り返して言っているだけの言動からは
貴方がデザインパターンを理解しているとは到底思えません。
0998名前は開発中のものです。2008/05/11(日) 22:13:28ID:GgT2def3
挙句の果てに、妄想で批判とか、折角ゲーム作るように促してやってるのに困った奴だな…
0999名前は開発中のものです。2008/05/11(日) 22:24:00ID:5xrxRK37
>>998
スレタイを確認した方が良いんじゃないですか?
1000名前は開発中のものです。2008/05/11(日) 22:24:58ID:5xrxRK37
他の方々のレスは大変参考になりました。
ありがとうございました。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。