具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。
関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
前スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1155209226/
テンプレ追加事項あったらよろすく
探検
ゲームにおけるデータ構造・クラス設計・パターン2
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2008/05/23(金) 21:10:59ID:8M1gqhPX308名前は開発中のものです。
2008/08/03(日) 23:21:42ID:HN+lqKwd FFとかのムービーシーンの管理はどうやればよかですたい?
309名前は開発中のものです。
2008/08/03(日) 23:31:02ID:+gPnPllx プロダクションだとファイルサーバ置いてモデル素材とか徹底管理するみたいだね。
Digital Anime Artwork(1/2)って本が内情ノウハウ溢れてて参考になった。
ほんとフォルダ分けの徹底とワークフロー統一にどこも頭悩ませてるようだ。
いまどきだとプロジェクションマップとか多用する規模の物も多いしな、美術、撮影、合成と
Digital Anime Artwork(1/2)って本が内情ノウハウ溢れてて参考になった。
ほんとフォルダ分けの徹底とワークフロー統一にどこも頭悩ませてるようだ。
いまどきだとプロジェクションマップとか多用する規模の物も多いしな、美術、撮影、合成と
310名前は開発中のものです。
2008/08/03(日) 23:31:41ID:+gPnPllx あれ? ここCG板じゃねえじゃん。
うわ俺凄く恥ずかしいマジレス?
うわ俺凄く恥ずかしいマジレス?
311名前は開発中のものです。
2008/08/03(日) 23:31:45ID:0ZCECk8O312名前は開発中のものです。
2008/08/04(月) 17:38:42ID:OcXTlg2n うさんくさか博多弁多かたいね。なんかぐらぐらこく
馬鹿にしないでください><
馬鹿にしないでください><
313名前は開発中のものです。
2008/08/04(月) 23:28:56ID:Vp8LYTR0 >>312
こらあげにまっことすまんかったぜよ。
こらあげにまっことすまんかったぜよ。
314302
2008/08/04(月) 23:40:39ID:OTznAvMd >>306
そうそうそんな感じ。
1シーンの処理は画像やその他のデータの読み込み、メインループ、
次のシーンに移る前の要らないデータの破棄のような感じにするつもり。
前のシーンに戻れるように階層構造を使ったりしたら難しくなりそう。
そうそうそんな感じ。
1シーンの処理は画像やその他のデータの読み込み、メインループ、
次のシーンに移る前の要らないデータの破棄のような感じにするつもり。
前のシーンに戻れるように階層構造を使ったりしたら難しくなりそう。
315名前は開発中のものです。
2008/08/07(木) 02:18:10ID:iFGNdN4xしーん…
316名前は開発中のものです。
2008/08/07(木) 15:44:15ID:J5sJkFaL 【 審議中 】
∴∵
∴∵
317名前は開発中のものです。
2008/08/24(日) 00:35:34ID:kCbI2Ziv (審議が長引いています。今しばらくお待ちください)
318名前は開発中のものです。
2008/08/27(水) 21:03:35ID:pp3RgERm キャラクターの状態って、どうやって実装してますか?
例えばマリオなら、
enum { SMALL, BIG, FIRE };
enum { STAR, NOT_STAR };
のように、直交した状態ごとにenumで列挙して、ifで場合わけするのでしょうか?
stateパターンでは無理???
例えばマリオなら、
enum { SMALL, BIG, FIRE };
enum { STAR, NOT_STAR };
のように、直交した状態ごとにenumで列挙して、ifで場合わけするのでしょうか?
stateパターンでは無理???
319名前は開発中のものです。
2008/08/27(水) 21:31:52ID:tgwWcjRq それだけだとモーション中とかが実装できないよね
FCマリオならそのenumに加えて、ゲームステータスとして「巨大化アニメ進捗」を示すカウンタ用意すれば十分だと思う
ステータス変化中に他の画面止めていいのか、それとも無敵時間とか起きながら遷移中にも時間は動かすのか前提がもうちょい欲しいかも。
その辺の細部を徹底的に見つめていくと、
適するパターンがあるのか、それとも独自な設計選ぶべきかが見えてくるんじゃないかな。
マリオにしてもSFCのヨッシーとかFC版3での画面奥行き潜りとか、色々
実装したい事を見据えて行くと変数の数やステータスのまとめ方が見えて来るだろうしね。
FCマリオならそのenumに加えて、ゲームステータスとして「巨大化アニメ進捗」を示すカウンタ用意すれば十分だと思う
ステータス変化中に他の画面止めていいのか、それとも無敵時間とか起きながら遷移中にも時間は動かすのか前提がもうちょい欲しいかも。
その辺の細部を徹底的に見つめていくと、
適するパターンがあるのか、それとも独自な設計選ぶべきかが見えてくるんじゃないかな。
マリオにしてもSFCのヨッシーとかFC版3での画面奥行き潜りとか、色々
実装したい事を見据えて行くと変数の数やステータスのまとめ方が見えて来るだろうしね。
320318
2008/08/28(木) 00:48:01ID:Z+eKsEJG >>319
いろいろ考えないといけない事多いですね。
この手のものを実装する方法として、stateパターンとenumとifで場合わけの他に何かあるんでしょうか?
状態の種類と数が複雑になってくると、enumとifを使う方法しかない気がしてきます。
ifで場合分けって、コードが汚く感じてあまり好きじゃないんですよね。
でも、こういうケースでは、これがベストなのかなぁ。
いろいろ考えないといけない事多いですね。
この手のものを実装する方法として、stateパターンとenumとifで場合わけの他に何かあるんでしょうか?
状態の種類と数が複雑になってくると、enumとifを使う方法しかない気がしてきます。
ifで場合分けって、コードが汚く感じてあまり好きじゃないんですよね。
でも、こういうケースでは、これがベストなのかなぁ。
321名前は開発中のものです。
2008/08/28(木) 01:16:45ID:q3w3U78u >コードが汚く感じてあまり好きじゃないんですよね。
好みと言うより仕方がない気も。
よくわからんなら下手に「なんとかパターン使うべきなのかな!」って
考えるより、ベタで汚いながらも「いじりやすい」単純なコードからはじめてさ、
あとはめくらめっぽう試した方がいいよ。
ifでの場合分けさえ、インライン展開される事を知ってるかどうかで汚くても使う訳で。
で、知ってる人にはそういうのやら三項演算多用した分岐の方を「美しい」って言っちゃったりするからねw
好みと言うより仕方がない気も。
よくわからんなら下手に「なんとかパターン使うべきなのかな!」って
考えるより、ベタで汚いながらも「いじりやすい」単純なコードからはじめてさ、
あとはめくらめっぽう試した方がいいよ。
ifでの場合分けさえ、インライン展開される事を知ってるかどうかで汚くても使う訳で。
で、知ってる人にはそういうのやら三項演算多用した分岐の方を「美しい」って言っちゃったりするからねw
322名前は開発中のものです。
2008/08/28(木) 01:34:35ID:O/+Qqs/2 最初ってそういうの考えちゃうよな
世間じゃどういうのが正しいんだろうとか考えて自分のコードが全然すすまねぇ
今ではなんだかんだで破綻するギリギリまで「動けばいいや」の精神で書いてる
仕事じゃないからこそだな
世間じゃどういうのが正しいんだろうとか考えて自分のコードが全然すすまねぇ
今ではなんだかんだで破綻するギリギリまで「動けばいいや」の精神で書いてる
仕事じゃないからこそだな
323名前は開発中のものです。
2008/08/28(木) 03:20:26ID:tq3ymPlL 関数ポインタで飛ばせば見た目は良くなるね。
可視性に問題が出てきそうで自分では使ってないけど。
可視性に問題が出てきそうで自分では使ってないけど。
324名前は開発中のものです。
2008/08/28(木) 09:12:41ID:y2qhH8VC そこで goto ですよ
325名前は開発中のものです。
2008/08/28(木) 10:11:26ID:MS2hHN8x 某シューティングツクール的にはそもそも「状態」という概念が無くて、
全く別のオブジェクトを「発射」して、自分を「消滅」させることで状態の変化を表現してた。
全く別のオブジェクトを「発射」して、自分を「消滅」させることで状態の変化を表現してた。
326名前は開発中のものです。
2008/08/28(木) 11:46:09ID:Qlb2/Pnm javaは関数ポインタ使えないんだ・・・・
327名前は開発中のものです。
2008/08/28(木) 11:57:21ID:MS2hHN8x >>326
Javaの場合は、状態クラスを作って、それを持つようにすればいいんだよ。
Javaの場合は、状態クラスを作って、それを持つようにすればいいんだよ。
328318
2008/08/28(木) 17:59:10ID:Z+eKsEJG329名前は開発中のものです。
2008/08/28(木) 18:35:54ID:CuTVRbF+ 自分ひとりで考えても、本を読んでも出てこない、他人の眼に触れさせなければ見えてこないものもある。
それよりも自分の達成感の方を優先したいならそっちを選べば良いさね。
つか、コードの正しさ、綺麗さ、効率の良さ、読みやすさってどういうものだとして使ってる?
それよりも自分の達成感の方を優先したいならそっちを選べば良いさね。
つか、コードの正しさ、綺麗さ、効率の良さ、読みやすさってどういうものだとして使ってる?
330名前は開発中のものです。
2008/08/28(木) 19:03:37ID:Jt4Hw7jN むしろ可能な全ての表記法を試す勢いで!
次のプログラムからは気に入った表記で。
昔の事は忘れましょう。
次のプログラムからは気に入った表記で。
昔の事は忘れましょう。
331名前は開発中のものです。
2008/08/28(木) 19:43:21ID:MS2hHN8x332名前は開発中のものです。
2008/08/28(木) 20:37:26ID:xedxyhWb >状態という概念が無い
敵が爆発する瞬間とかだとやっちゃうなあ……。効率悪いんだろうか。
敵が爆発する瞬間とかだとやっちゃうなあ……。効率悪いんだろうか。
333名前は開発中のものです。
2008/08/28(木) 21:28:28ID:MS2hHN8x334318
2008/08/28(木) 21:30:31ID:Z+eKsEJG335名前は開発中のものです。
2008/08/28(木) 21:59:24ID:O/+Qqs/2 保守性も読みやすさもifとenumにしたからと言って損なわれるものでも無いと思うけど何を悩んでるの?
336名前は開発中のものです。
2008/08/28(木) 22:18:17ID:qtCAmqfQ ダライアス継承ってどんな継承?
337名前は開発中のものです。
2008/08/28(木) 22:22:03ID:xedxyhWb >333
爆発オブジェクトを自身と同じ場所に生成して、自身を削除する
って認識で合ってる?
爆発オブジェクトを自身と同じ場所に生成して、自身を削除する
って認識で合ってる?
338318
2008/08/28(木) 23:04:17ID:Z+eKsEJG339名前は開発中のものです。
2008/08/29(金) 00:44:03ID:hcEje8O4 ダライアス継承なんて初めて聞いたなあ
英語だと Multiple Inheritance あるいは Diamond Inheritance と言うようだが。
あとダライアス(Darius?)はペルシャ人の名前のようだ。
まゆに唾つけて聞いておこうかな
英語だと Multiple Inheritance あるいは Diamond Inheritance と言うようだが。
あとダライアス(Darius?)はペルシャ人の名前のようだ。
まゆに唾つけて聞いておこうかな
340名前は開発中のものです。
2008/08/29(金) 00:50:36ID:rESH+j3C ダライアス継承でググってみても勘違いで質問してる奴にしか引っかからないな
デザパタへの無駄なこだわりとか、初心者がなんか変な用語がいっぱい並んでる本だけ読んで惑わされてるだけに見える
デザパタへの無駄なこだわりとか、初心者がなんか変な用語がいっぱい並んでる本だけ読んで惑わされてるだけに見える
341名前は開発中のものです。
2008/08/29(金) 02:39:33ID:VLtb7ZED Multiple Inheritance (多重継承) と Diamond Inheritance (ダイヤモンド継承) は
違う概念だが...というかダライアスっていうとシューティングゲームしか思い浮かびませーん
違う概念だが...というかダライアスっていうとシューティングゲームしか思い浮かびませーん
342名前は開発中のものです。
2008/08/29(金) 06:43:42ID:gdp2Jatd343名前は開発中のものです。
2008/08/29(金) 10:26:08ID:ESvglHwU344名前は開発中のものです。
2008/08/29(金) 14:31:33ID:UaA8GGvx345名前は開発中のものです。
2008/08/29(金) 14:34:13ID:nV9hYRuE >だったりしてw
いやだったりしてっつーかそれしかなくね
いやだったりしてっつーかそれしかなくね
346名前は開発中のものです。
2008/08/30(土) 13:56:18ID:vqGqt03L ダイヤモンドが2個も3個もあるような継承のことか。
C3 MRO の解説でしか見たこと無いが。
C3 MRO の解説でしか見たこと無いが。
347名前は開発中のものです。
2008/08/30(土) 14:18:00ID:gGJd0yLw ドラえもん 「ことわざゲーム」
これはいいアニメ。 ... ドラえもん 藤子F不二雄 アニメ
ドラえもん後期 ドラえもん本編 教育アニメ コメント非
表示推奨 緑 ...
http://ex-co-jp.8866.org/gourmet/080803.rar
これはいいアニメ。 ... ドラえもん 藤子F不二雄 アニメ
ドラえもん後期 ドラえもん本編 教育アニメ コメント非
表示推奨 緑 ...
http://ex-co-jp.8866.org/gourmet/080803.rar
348名前は開発中のものです。
2008/08/30(土) 14:23:18ID:h7pQaJrI なんかあちこちで見かけるな。これ以上ないってくらい、明らかにヤバいリンク
349名前は開発中のものです。
2008/08/30(土) 14:32:04ID:hoYQeFVI 夏休みも終わりって事さw
350名前は開発中のものです。
2008/08/30(土) 14:40:33ID:vqGqt03L Bot使った宣伝書き込みかなぁ
351名前は開発中のものです。
2008/08/30(土) 15:36:27ID:h7pQaJrI なんかのマルウェアって聞いたが
352名前は開発中のものです。
2008/08/31(日) 15:40:22ID:5jP5dBFC A has B B has C C has Dのようなクラス構成で
Aで作ったEをDで使うために、Aから呼び出したB、Bから呼んだC、Cから呼んだDのそれぞれの関数の引数に
Eを渡していくのはいいのかな?
Aで作ったEをDで使うために、Aから呼び出したB、Bから呼んだC、Cから呼んだDのそれぞれの関数の引数に
Eを渡していくのはいいのかな?
353名前は開発中のものです。
2008/08/31(日) 15:45:26ID:eaWcmeF0 いいんじゃね。
354名前は開発中のものです。
2008/08/31(日) 15:47:56ID:fQJxWw7j 別に悪くはないと思うよ
Eの役割によってはABCD全てからアクセスできる領域に置くのもアリかもね
なんにせよその構成だけじゃいいとも悪いとも言えない
Eの役割によってはABCD全てからアクセスできる領域に置くのもアリかもね
なんにせよその構成だけじゃいいとも悪いとも言えない
355名前は開発中のものです。
2008/08/31(日) 15:54:48ID:5jP5dBFC356名前は開発中のものです。
2008/09/02(火) 03:29:08ID:m23QvXa7 このスレにUMLで図描いて貼っても、きっと誰かが見る前に流れて消えてしまう罠
357名前は開発中のものです。
2008/09/02(火) 03:31:07ID:m23QvXa7358名前は開発中のものです。
2008/09/02(火) 17:16:20ID:BpB/a+5N CarクラスはTireクラスを4つ持っているとして、
TireクラスもCarクラスを持っていてCarクラスの関数を使えるという設計はいいんでしょうか?
TireクラスもCarクラスを持っていてCarクラスの関数を使えるという設計はいいんでしょうか?
359名前は開発中のものです。
2008/09/02(火) 17:22:14ID:Kf1ObPTz コールバックしたいならインターフェース化してポインタ渡すとよい
TireクラスでCarクラスを生成するとかなら論外
TireクラスでCarクラスを生成するとかなら論外
360名前は開発中のものです。
2008/09/02(火) 17:30:36ID:BpB/a+5N TireクラスにCarクラスのポインタを持たせて、Tire生成時とかにCarクラスのオブジェクトのポインタを渡せば
いいということでしょうか?
いいということでしょうか?
361名前は開発中のものです。
2008/09/02(火) 17:36:03ID:NydWLubY362名前は開発中のものです。
2008/09/02(火) 17:40:44ID:IXiySr/S タイヤが車に関心があるってどういう状況?
363名前は開発中のものです。
2008/09/02(火) 17:42:28ID:NydWLubY 「パンクしたよ」って知らせてくれるんじゃね?
364名前は開発中のものです。
2008/09/02(火) 17:44:29ID:IXiySr/S なるほど
365名前は開発中のものです。
2008/09/02(火) 19:17:31ID:gmtfIbjx それ車が「パンクしたか?」メソッド持ってるんじゃダメなの?
366名前は開発中のものです。
2008/09/02(火) 19:20:27ID:IXiySr/S 車が、常に「パンクしたか?」ってタイヤに聞くの?
367名前は開発中のものです。
2008/09/02(火) 19:24:40ID:gmtfIbjx うん
パンクに限らずあらゆる故障具合をウェルネスシステムが監視しててそいつに聞けば全部OKみたいな
車のメソッドじゃなくなったけど
パンクに限らずあらゆる故障具合をウェルネスシステムが監視しててそいつに聞けば全部OKみたいな
車のメソッドじゃなくなったけど
368名前は開発中のものです。
2008/09/02(火) 19:38:46ID:IXiySr/S メディエーターみたいなの?
369名前は開発中のものです。
2008/09/02(火) 20:44:39ID:F4HrtZLF >>366
実際のTPMS(タイヤ空気圧監視システム)はそういうものだよ。
ホイールに取り付けられたセンサーモジュールが車両本体側装置と一定時間毎に無線交信してる
具体的には、本体が一定時間毎に圧力値を問い合わせ。センサーモジュールが圧力値を返してる
ポーリング処理。
float _pressure = m_wheel[n]->GetPressureState();
実際のTPMS(タイヤ空気圧監視システム)はそういうものだよ。
ホイールに取り付けられたセンサーモジュールが車両本体側装置と一定時間毎に無線交信してる
具体的には、本体が一定時間毎に圧力値を問い合わせ。センサーモジュールが圧力値を返してる
ポーリング処理。
float _pressure = m_wheel[n]->GetPressureState();
370名前は開発中のものです。
2008/09/19(金) 19:13:57ID:FmM/zRja ほしゅ
371名前は開発中のものです。
2008/10/05(日) 14:32:14ID:tMuqv+yj このスレはJavaでも大丈夫なの?
372名前は開発中のものです。
2008/10/05(日) 14:52:40ID:v7IsXRIY >>371
質問内容の分野がよくわからないなら、以下へどうぞ。
【初心者】スレを立てる前にココで質問を【Part17】
http://pc11.2ch.net/test/read.cgi/gamedev/1210443288
質問内容の分野がよくわからないなら、以下へどうぞ。
【初心者】スレを立てる前にココで質問を【Part17】
http://pc11.2ch.net/test/read.cgi/gamedev/1210443288
373名前は開発中のものです。
2008/10/05(日) 17:40:56ID:6np9SFhP >372がエスパーすぎる
374名前は開発中のものです。
2008/11/01(土) 11:27:07ID:g//jQFBy データ(アイテムとかマップとか)ってどうやって作ってます?
エクセルで打ち込んでcsvで保存?
エクセルで打ち込んでcsvで保存?
375名前は開発中のものです。
2008/11/01(土) 12:46:01ID:YmfIaKZ8 別にそれでいいし
専用にエディタ作ってもいいし
ありもので済ませてもいいし
俺はPlatinum map editor使ってるし
専用にエディタ作ってもいいし
ありもので済ませてもいいし
俺はPlatinum map editor使ってるし
376名前は開発中のものです。
2008/11/01(土) 12:58:04ID:g//jQFBy377名前は開発中のものです。
2008/11/01(土) 16:47:28ID:NlVHrve1 既存のマップツールは便利なんだが、結局そこから独自形式へのコンバータを作ってる。
378名前は開発中のものです。
2008/11/02(日) 08:08:32ID:JeGt0JB9 海岸線自動生成とかやってくれるエディタあるっけ?
379名前は開発中のものです。
2008/11/02(日) 09:02:07ID:i1X6CLvS >378
エディタでやるの?
エディタでやるの?
380名前は開発中のものです。
2008/11/04(火) 18:29:40ID:CIBt14+U 機能としてはエディタ側じゃね?
381名前は開発中のものです。
2008/11/06(木) 00:16:08ID:46fvhfrF ツクールで海岸線をシフト+右クリックすると分かる
382名前は開発中のものです。
2008/11/11(火) 20:24:09ID:rtOtwyEd 最近Gofのデザインパターンを読んで、目から鱗が落ちまくった。
今までぐだぐだやってたのが全部無駄というか馬鹿だったのに気づいてしまった。
他の初心者がこんなことが起きないように、勝手にメモ。
1、相互参照は可能ならば避ける。どちらかが一方的に知り、メソッドでその都度渡すほうがいい。
→クラス図の関連の矢印の向きは重要。関連が1方向なら、関連される(変数として保持される側の)クラスの再利用が容易。
→相互参照関係にあるクラス同士を、一方的な関連にすることは大抵の場合可能なはず。(関連する側が冗長になるが。)
2、再利用を考えたフレームワークは(初心者は)作らない。
→再利用のための部品を作る程度にとどめるのがいい。フレームワークの設計は正直拡張性を考え出すと難しすぎるらしい。
他に鉄則があったらだれか教えてください orz
今までぐだぐだやってたのが全部無駄というか馬鹿だったのに気づいてしまった。
他の初心者がこんなことが起きないように、勝手にメモ。
1、相互参照は可能ならば避ける。どちらかが一方的に知り、メソッドでその都度渡すほうがいい。
→クラス図の関連の矢印の向きは重要。関連が1方向なら、関連される(変数として保持される側の)クラスの再利用が容易。
→相互参照関係にあるクラス同士を、一方的な関連にすることは大抵の場合可能なはず。(関連する側が冗長になるが。)
2、再利用を考えたフレームワークは(初心者は)作らない。
→再利用のための部品を作る程度にとどめるのがいい。フレームワークの設計は正直拡張性を考え出すと難しすぎるらしい。
他に鉄則があったらだれか教えてください orz
383名前は開発中のものです。
2008/11/12(水) 01:30:10ID:LsEQ4TEa 相互参照すると、クラス開放時にお互いが争ってメモリリークすんだよな
クラスA「Bさん、お先にどうぞどうぞ」
クラスB「いえいえ、ここはAさんがお先に」
クラスA「どうぞどうぞ」
OS「おまえら、どっちもさっさとイケ!」
ピー…
クラスA「Bさん、お先にどうぞどうぞ」
クラスB「いえいえ、ここはAさんがお先に」
クラスA「どうぞどうぞ」
OS「おまえら、どっちもさっさとイケ!」
ピー…
384名前は開発中のものです。
2008/11/12(水) 09:02:45ID:QWqH0Tgg > Gofのデザインパターン
GOF本でわかったならよいけど、退屈でわからない人は
First Headの本オススメ
Head Firstデザインパターン―頭とからだで覚えるデザインパターンの基本: エリック フリーマン, キャシー シエラ, エリザベス フリーマン, バート ベイツ, Eric Freeman, Kathy Sierra, Elisabeth Freeman, Bert Bates, 佐藤 直生, 木下 哲也, 福龍興業: Amazon.co.jp: 本
http://www.amazon.co.jp/dp/4873112494
http://images-jp.amazon.com/images/P/4873112494.09.MZZZZZZZZZ.jpg
GOF本でわかったならよいけど、退屈でわからない人は
First Headの本オススメ
Head Firstデザインパターン―頭とからだで覚えるデザインパターンの基本: エリック フリーマン, キャシー シエラ, エリザベス フリーマン, バート ベイツ, Eric Freeman, Kathy Sierra, Elisabeth Freeman, Bert Bates, 佐藤 直生, 木下 哲也, 福龍興業: Amazon.co.jp: 本
http://www.amazon.co.jp/dp/4873112494
http://images-jp.amazon.com/images/P/4873112494.09.MZZZZZZZZZ.jpg
385名前は開発中のものです。
2008/11/12(水) 23:23:14ID:hxIHNKys ライブラリを作るとして、名前空間とクラスはどのように配置するのがいいでしょうか。
たとえば、ある単純な機能のクラスがいくつかあります。
これを集約してより大きな機能のあるクラスがライブラリ内で作られている場合、
1、大きなクラスをネスト先の名前空間に入れる。(HogeLibrary.Composite)
2、小さなクラスをネスト先の名前空間に入れる。(HogeLibrary.SmallComponent)
3、そもそもが間違い。同一名前空間に配置する。
どれが適切でしょうか?
たとえば、ある単純な機能のクラスがいくつかあります。
これを集約してより大きな機能のあるクラスがライブラリ内で作られている場合、
1、大きなクラスをネスト先の名前空間に入れる。(HogeLibrary.Composite)
2、小さなクラスをネスト先の名前空間に入れる。(HogeLibrary.SmallComponent)
3、そもそもが間違い。同一名前空間に配置する。
どれが適切でしょうか?
386名前は開発中のものです。
2008/11/13(木) 21:08:31ID:3NMFClPL387名前は開発中のものです。
2008/11/14(金) 01:18:47ID:USS/q0/d >>385
名前空間を分けるメリットが見当たらなければ分けないほうがいいでしょ。
名前空間を分けるメリットが見当たらなければ分けないほうがいいでしょ。
388名前は開発中のものです。
2008/11/16(日) 02:04:27ID:OW89wflh ライブラリ利用者の立場にたって、
どうなってると使いやすいかを考えて臨機応変に決める。
どうなってると使いやすいかを考えて臨機応変に決める。
389名前は開発中のものです。
2008/11/19(水) 20:47:58ID:oq/eqnIP >>382-384
まだ読んでいない俺には勉強になったthx
まだ読んでいない俺には勉強になったthx
390名前は開発中のものです。
2008/11/20(木) 09:17:22ID:jP0yKBYe >>384
のFirst Head本は、読み物形式で
悪いコードをよいコードに変更していきながら、解説しているようになっているので、
GOF本よりかなり読みやすいよ
ただ、いくつかのパターンが省略されて適当解説になっているので、注意。
適当になってる後半部分も解説されていたらかなり神本だった
(まああのペースで全部網羅すると、値段とページがすごいことになりそうだがw)
のFirst Head本は、読み物形式で
悪いコードをよいコードに変更していきながら、解説しているようになっているので、
GOF本よりかなり読みやすいよ
ただ、いくつかのパターンが省略されて適当解説になっているので、注意。
適当になってる後半部分も解説されていたらかなり神本だった
(まああのペースで全部網羅すると、値段とページがすごいことになりそうだがw)
391名前は開発中のものです。
2008/11/30(日) 20:02:56ID:GlMxgFAf すいませんというか疑問です。
特定の条件を満たしたら処理(入力の読み取り)を行う、という作業を内部で行う関数を作ろうと思ったのですが、疑問がいろいろ出てきました。
(1回のループの中に複数この関数を配置して、どこかで実際に実行する、というような使い方を想定してます。)
1、この関数を採用する場合、名前の付け方
Polls()、CanPoll()、IsPolling() …主目的が『必要ならば読み取る』なので何かしっくりしない。
2、何かよりよい代替の設計があるだろうか
何か設計が変な気がする、が、なぜそう思うのはわからない。
どなたか導きをお願いします
特定の条件を満たしたら処理(入力の読み取り)を行う、という作業を内部で行う関数を作ろうと思ったのですが、疑問がいろいろ出てきました。
(1回のループの中に複数この関数を配置して、どこかで実際に実行する、というような使い方を想定してます。)
1、この関数を採用する場合、名前の付け方
Polls()、CanPoll()、IsPolling() …主目的が『必要ならば読み取る』なので何かしっくりしない。
2、何かよりよい代替の設計があるだろうか
何か設計が変な気がする、が、なぜそう思うのはわからない。
どなたか導きをお願いします
392名前は開発中のものです。
2008/11/30(日) 20:03:41ID:GlMxgFAf なんかいっぱい改行が入ってるorz
393名前は開発中のものです。
2008/11/30(日) 20:44:16ID:O5396ILY >>391
関数の名前は内部での処理なんて割とどうでもいいので、
とにかくその関数の意味(挙動)がわかる名前にしたらいいんじゃね。
ちなみにJavaの場合、キーボードやマウスからの入力によってイベントが発生し、
そのイベントによって適切なリスナーの関数が起動されます。
プログラムの本流が直接読みに行くことなんてしません。
関数の名前は内部での処理なんて割とどうでもいいので、
とにかくその関数の意味(挙動)がわかる名前にしたらいいんじゃね。
ちなみにJavaの場合、キーボードやマウスからの入力によってイベントが発生し、
そのイベントによって適切なリスナーの関数が起動されます。
プログラムの本流が直接読みに行くことなんてしません。
394名前は開発中のものです。
2008/12/02(火) 23:03:37ID:QPPOGJkH395名前は開発中のものです。
2008/12/03(水) 00:00:25ID:QPPOGJkH ついでにスレを読み返してメモメモ、と思った情報をまとめてみた。
コルーチン、マイクロスレッド、ファイバ
>>145,>>146,>>162,>>164
楽だが応用性のないありがちな実装
>>159,>>160
分業とデバッグ
>>194-213
ADVの画面クリックとか
>>270,>>271
メニュー画面の管理とかシーン管理とか
>>59-71,>>207,>>273-276>>302,>>305-314・・・VMCはたぶんMCVのことだよね?
状態管理とか
>>318-325
priateとgetter、setter
>>277-301
設計Tips
>>352-357,>>358-367,>>382-384
コルーチン、マイクロスレッド、ファイバ
>>145,>>146,>>162,>>164
楽だが応用性のないありがちな実装
>>159,>>160
分業とデバッグ
>>194-213
ADVの画面クリックとか
>>270,>>271
メニュー画面の管理とかシーン管理とか
>>59-71,>>207,>>273-276>>302,>>305-314・・・VMCはたぶんMCVのことだよね?
状態管理とか
>>318-325
priateとgetter、setter
>>277-301
設計Tips
>>352-357,>>358-367,>>382-384
396名前は開発中のものです。
2008/12/13(土) 14:29:53ID:lcU0tpK0 ゲーム開発論を語るスレを立てようと思っていたんですが、すでに似たようなスレがあると聞いて相談にきました。
このスレがあるので必要ないのでは?という意見があり、新スレを立てるべきかどうか迷っています。
ご意見頂けないでしょうか?
↓ゲーム開発論スレ要望の経緯
http://pc11.2ch.net/test/read.cgi/gamedev/1206381315/
KONAMI、スクエニ、セガ、バンナム、コーエーの大手5社がゲーム開発現場の未来を再び討議
「5年後のゲーム開発現場を考える〜ゲーム会社技術開発の現場から2〜」
http://game.watch.impress.co.jp/docs/20080916/cedec_dev.htm
「Gears of War」はいかにして生まれたのか。Cliff Bleszinski氏が語る,有効なゲーム開発プロセス
http://www.4gamer.net/news/history/2007.03/20070309215934detail.html
Agile型開発でのゲームデザイン
http://www.4gamer.net/news/history/2007.03/20070311002313detail.html
このスレがあるので必要ないのでは?という意見があり、新スレを立てるべきかどうか迷っています。
ご意見頂けないでしょうか?
↓ゲーム開発論スレ要望の経緯
http://pc11.2ch.net/test/read.cgi/gamedev/1206381315/
KONAMI、スクエニ、セガ、バンナム、コーエーの大手5社がゲーム開発現場の未来を再び討議
「5年後のゲーム開発現場を考える〜ゲーム会社技術開発の現場から2〜」
http://game.watch.impress.co.jp/docs/20080916/cedec_dev.htm
「Gears of War」はいかにして生まれたのか。Cliff Bleszinski氏が語る,有効なゲーム開発プロセス
http://www.4gamer.net/news/history/2007.03/20070309215934detail.html
Agile型開発でのゲームデザイン
http://www.4gamer.net/news/history/2007.03/20070311002313detail.html
397名前は開発中のものです。
2008/12/14(日) 06:46:04ID:foB3PhGt398名前は開発中のものです。
2008/12/14(日) 06:47:43ID:3zIx1sHY 想定通りでワロタ
399名前は開発中のものです。
2008/12/15(月) 01:28:13ID:AODSdSoN >>395
ありがとう助かるよ
ありがとう助かるよ
400名前は開発中のものです。
2008/12/18(木) 23:54:28ID:QLMqRIYY キャラクタのデータはテキストファイルにゆだねて動的にできるけど
ふるまいはどうすればいいんだろう。
基本ふるまいをプログラムに実装して(静的)、テキストファイルで
その呼び出しを記述する(動的)とかなのかな。他に思いつかん。
ふるまいはどうすればいいんだろう。
基本ふるまいをプログラムに実装して(静的)、テキストファイルで
その呼び出しを記述する(動的)とかなのかな。他に思いつかん。
401名前は開発中のものです。
2008/12/19(金) 12:11:03ID:ygbWfkiR 俺はそうしてる。
402名前は開発中のものです。
2008/12/21(日) 09:35:05ID:7nb+zy1b つまりスクリプトですね。
403名前は開発中のものです。
2008/12/25(木) 19:24:07ID:QpPf00tD 知ってるよDIって言うんだよね
404名前は開発中のものです。
2008/12/26(金) 01:45:37ID:NBeqwEQB 最近でたセガのあれな本を読んで、自分がずっと詰まってたしょーもないことを勝手にメモ。
結論としては基本中の基本で、データと処理は独立させましょ、ってことなんだけど。
ゲーム中ができたけど、ポーズ機能を追加、ポーズメニュー表示関連をクラスで作って実装するには、という感じの想定。
こんな感じに管理してるとして(具体的にはもっと複雑だけど。)
class StgScene {
Mover movers[];
void Update() {
//A
for(・・・) {
movers[i].Move();
}
//他判定処理等
//B
for(・・・) {
movers[i].Draw();
}
//C
}
}
・A〜Bまでの処理はポーズ時すっ飛ばす、となる。ので、関数化するなりクラス化したい。
・対象性を考え、Menuクラスに対してA〜Cの処理をPlayingクラスにする。(つまりSTGSceneはデータのみ。)
・MenuクラスにもB〜Cの処理を書き、追加してMenu関連の処理も記述する。
こうすると、結果的にSTGシーンはデータしか持たなくなって、処理はPlayingクラスやMenuクラスに任せる形になる。
見通しが悪くならずに拡張できる。
今までずっと気づかなかった自分の頭の悪さに笑うしかないぜ。
結論としては基本中の基本で、データと処理は独立させましょ、ってことなんだけど。
ゲーム中ができたけど、ポーズ機能を追加、ポーズメニュー表示関連をクラスで作って実装するには、という感じの想定。
こんな感じに管理してるとして(具体的にはもっと複雑だけど。)
class StgScene {
Mover movers[];
void Update() {
//A
for(・・・) {
movers[i].Move();
}
//他判定処理等
//B
for(・・・) {
movers[i].Draw();
}
//C
}
}
・A〜Bまでの処理はポーズ時すっ飛ばす、となる。ので、関数化するなりクラス化したい。
・対象性を考え、Menuクラスに対してA〜Cの処理をPlayingクラスにする。(つまりSTGSceneはデータのみ。)
・MenuクラスにもB〜Cの処理を書き、追加してMenu関連の処理も記述する。
こうすると、結果的にSTGシーンはデータしか持たなくなって、処理はPlayingクラスやMenuクラスに任せる形になる。
見通しが悪くならずに拡張できる。
今までずっと気づかなかった自分の頭の悪さに笑うしかないぜ。
405名前は開発中のものです。
2008/12/26(金) 08:47:36ID:Y8oI6MzT 「勝手にメモ」を書き込んでくれる人(達?)の存在は、正直ありがたい
406名前は開発中のものです。
2008/12/28(日) 17:34:36ID:pzJs6/UU MVCでいうと、
M:StgScene
V,C:Menu,Playing
ってことなのだろうか?
Stateパターンという風にも捉えられる?
M:StgScene
V,C:Menu,Playing
ってことなのだろうか?
Stateパターンという風にも捉えられる?
407名前は開発中のものです。
2008/12/29(月) 00:45:07ID:THn3O3Oz Stateパターンだとこんなかんじかね?
struct StgScene {
void A();
void B();
void C();
};
class State {
virtual void Update(StgScene&) = 0;
};
class Playing : public State {
virtual void Update(StgScene& scene){
scene.A();
scene.B();
scene.C();
}
};
class Menu : public State {
virtual void Update(StgScene& scene){
scene.C();
}
};
struct StgScene {
void A();
void B();
void C();
};
class State {
virtual void Update(StgScene&) = 0;
};
class Playing : public State {
virtual void Update(StgScene& scene){
scene.A();
scene.B();
scene.C();
}
};
class Menu : public State {
virtual void Update(StgScene& scene){
scene.C();
}
};
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★3 [ニョキニョキ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★4 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に ★2 [ぐれ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【テレビ】鈴木福&あのちゃんW主演 テレ東で押見修造氏の漫画『惡の華』実写ドラマ化決定! 累計325万部を突破した伝説的漫画 [冬月記者★]
- 防衛費増額「賛成」62・8% 「反対」32・2%を大きく上回る 賛成「18~29歳で8割」世代差あらわ 産経FNN合同世論調査 ★3 [尺アジ★]
- 【実況】博衣こよりのえちえち朝こよ🧪★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】小野田紀美さん、宇宙人みたいな服を着てしまう…また、そのことを突っ込まれブチ切れ中www [856698234]
- 【悲報】セブンイレブンの納豆巻きの値段、限界突破wwwwwwwwwwwwwwwwww [977261419]
- 🏡
- お前らっていつもここにいるよな
