○○とゲームプログラミング Rev 3.0.0
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/02/01 20:56ID:UHX0VJ3UOOも含め、ゲームプログラムの制作に関わる様々なトピックを
語りましょう。
単なるC++でのクラスの書き方から、設計やパターン、制作手法
まで守備範囲広し。
過去スレ:
OOとゲームプログラミング Role2
http://pc2.2ch.net/test/read.cgi/gamedev/1067458051/
OOとゲームプログラミング
http://pc2.2ch.net/test/read.cgi/gamedev/1005144931/
0002名前は開発中のものです。
04/02/01 20:57ID:UHX0VJ3UOO オブジェクト指向
OOP オブジェクト指向プログラミング
OOPL オブジェクト指向プログラミング言語
OOA オブジェクト指向分析
OOD オブジェクト指向設計
別にOOPLでなくとも、OOPはできます
番外
AOP アスペクト指向プログラミング
平たく言うと継承よりも集約重視のプログラミング
0003名前は開発中のものです。
04/02/01 21:01ID:SLfKMdhBスレ立て乙
0004名前は開発中のものです。
04/02/01 21:52ID:38LSgSLD「ソフトウェア工学」
「バージョン管理」
「メモリ管理戦略」
等、好きなものを入れてくれってことだよね?
0005名前は開発中のものです。
04/02/01 21:55ID:CjBOrIdU0006とむ ◆0MTMwDpCZo
04/02/01 22:02ID:eNLYj22gまあその時その時でテーマが自然発生するから、それにそって話せばいいんじゃないかな。
何かを議論して決めるというスレでもないし。
あんまり酷いスレ違いテーマの場合は、参加者の方で無視するでしょ。
0007とむ ◆0MTMwDpCZo
04/02/01 23:16ID:eNLYj22gまず、例外はどうでしょうか?
例外とゲームプログラミング、というテーマとかで。
0008名前は開発中のものです。
04/02/01 23:28ID:Jfv2rBNmそこまで広範囲になるなら
ゲームプログラミング相談室【Part5】
http://pc2.2ch.net/test/read.cgi/gamedev/1036410116/
こっちと統合すればよかったんじゃない?
0009名前は開発中のものです。
04/02/02 00:15ID:Hsmafh7Uぬるぽ
0010名前は開発中のものです。
04/02/02 00:46ID:OX8xaAx6こっちは設計方法論とか方針とかまぁそういう方向性で。
まぁ、「○○」と「OO」掛けてるつもりかもしれないので、一応OO中心で?
0011名前は開発中のものです。
04/02/02 01:38ID:RB9Gulttガッ
0012とむ ◆0MTMwDpCZo
04/02/02 02:11ID:5Nw44/BFキャッチしてますか?
同僚はどうですか?
0013名前は開発中のものです。
04/02/02 04:05ID:NhdAszhe山は死にますか?
風はどうですか?
空もそうですか?
0014名前は開発中のものです。
04/02/02 19:15ID:CLG/z/Kbmain.cpp と main.h の二つのファイルのみから造るギャラクシャン。
0015名前は開発中のものです。
04/02/02 19:19ID:e1Hro4GN司会気取ってねーでお舞いがまず煽り入れるんだろうが、このクソコテが
0016名前は開発中のものです。
04/02/02 22:14ID:CLG/z/KbOOよりも学ぶべき大切な手法が見えてくるから。
0017名前は開発中のものです。
04/02/02 22:56ID:68XHrv2Q0018名前は開発中のものです。
04/02/02 22:59ID:DugJWaEP0019名前は開発中のものです。
04/02/02 23:00ID:DugJWaEP0020名前は開発中のものです。
04/02/02 23:03ID:S+M8V+Lcそのまま実装できると思うからまた躓く人が多いわけで
002116
04/02/02 23:26ID:CLG/z/Kb実はギャラクシャンよりもちょっと難しい。
トーチカの実装がね。
インベーダや自機の弾丸によって、トーチカがドット単位で削れていく。
0022とむ ◆0MTMwDpCZo
04/02/03 03:02ID:vrTSUC1Qギャラクシアンというゲームがどんなだったかかなり忘れてるんだけどね〜。
じゃ、例えば敵はCEnemyという共通のクラスを継承したオブジェクトになるとしましょう。
敵の中にもいくつか種類あったよね。CEnemyRed : public CEnemyな感じで。
そんで、敵全滅させるとクリアだよね。
で、例えば一番お手軽に、敵の数そのものをCEnemyクラスに持たせるとして。
staticメンバで。コンストラクタでプラス、デストラクタでマイナスと。
0023名前は開発中のものです。
04/02/03 10:55ID:dSuA1a+Pあんたのレベルの低さがよくわかった。
0024名前は開発中のものです。
04/02/03 11:00ID:9LHEny520025名前は開発中のものです。
04/02/03 12:33ID:fdd6paxLどこかの国の野党じゃあるまいし、とりあえず対案を出そうよ。
0026とむ ◆0MTMwDpCZo
04/02/03 13:20ID:vrTSUC1Qステージ情報のようなクラスを作って外部に持たせる方法もありますし、もっと直接的に、
CEnemyの派生クラスへのポインタを格納するコンテナのサイズを直接取得するという
方法もありますね。
ちなみに私は超レベル低いですよ。先に言っておきます。いちいち指摘してくれなくても
結構ですよ。でもご指摘ありがとうね。
0027930
04/02/03 13:49ID:QAUu94FBこれでOOの話なんかできるわけないことが分かっただろ?
こいつらは2次元
指摘しても逆ギレ
代案だそうよとか言って結局自分は何もしない
他人の作ったものでしか組み上げることしかできない三流PG
自分の為に時間を使おうぜ
002823じゃないけど
04/02/03 14:15ID:nvDFyoS5これはたしかに根本的な設計思想でもめそうな予感。
はっきりいって俺はこいつ(>>22)とは合わない。
0029名前は開発中のものです。
04/02/03 14:20ID:wZKLI3VN見苦しいな。そんなに前スレの件が悔しかったのか?
こんな所に一流PGが来る訳ない事ぐらいわかれよ。
もしかして前スレでの自分の不備を気付いてないのか?
0030名前は開発中のものです。
04/02/03 15:31ID:0mx1dz/i0031名前は開発中のものです。
04/02/03 15:48ID:dPSO5l4Q0033名前は開発中のものです。
04/02/03 17:54ID:PbQ0ZK6Sこのスレに、ぴったり当てはまる。
0034名前は開発中のものです。
04/02/03 18:37ID:atLOOFCM何か質問ある?
0035名前は開発中のものです。
04/02/03 18:52ID:MYoe6MBv質問:代表作は何ですか?
0036930
04/02/03 23:05ID:QAUu94FBり俺は
最強だ
な。
0037名前は開発中のものです。
04/02/03 23:24ID:atLOOFCM0038とむ ◆0MTMwDpCZo
04/02/04 00:43ID:0ZdjPfCN「レベルの低さがわかった」とか「俺は合わない」とかじゃなくて、「ここをこうするともっと
良くなるんじゃないか?」という話にすれば、ある程度スレが盛り上がると思うんですよ。
そりゃ批判するのはラクだし楽しいとは思いますけどね。
0039名前は開発中のものです。
04/02/04 00:54ID:8XXIUaLnいや、過去ログ読んだけどあんた絶対に譲らない人でそ?
だからOOもそんな独りよがりなわけよ。
おかしい設計をおかしいと認識できないのは
あんたの性格に問題があるわけよ。
あんた絶対食ってかかってくるからいちいち指摘したくないもん。
まわりもそんなんでそ。じゃあねー。
0040名前は開発中のものです。
04/02/04 00:58ID:gxdz8FdCいてててて
004123
04/02/04 01:00ID:e4N0XV4B★俺ならこうする
・CEnemyはファクトリを通して生成するようにする。
・Enemyのファクトリにはオブザーバを登録できるようにする。
・Enemyのファクトリは新しいEnemyインスタンスが生成された時に
オブザーバのOnEnemyCreateイベントハンドラを呼び出す。
★とむ氏の実装より何が良いか
1.「数を数える」以外の用途が必要になった時も、既製のソースに変更を加えることなく機能追加できる。
2.例えば関係しない2つの世界が必要になった時、とむ氏の方法の場合は作り直しだが
私の方式の場合はファクトリを2つにするだけで作業は終わる。
1.が理解できない人は委譲指向のOOが理解できていないと思われる。
2.が理解できない人はSINGLETONとMONOSTATEの違いもきっと理解できない。
実際、2.のシチュエイションは仕事でハマっている人を見た事がある。
そのソースは元々グローバル変数に依存していたが、
仕変で画面分割モードができて対応におおわらわしてたよ。
その仕事のバグレポートはたしか項目4000個超えてた。大変な仕事だった。
0043名前は開発中のものです。
04/02/04 01:14ID:9rt5iKp5どちらにせよ、staticで敵の数なんて持ったら、>>41でいう 2.でハマルってことか。
なんでもかんでも、monostateするより、拡張に備えてsingletonにしとけってことですか?
0044とむ ◆0MTMwDpCZo
04/02/04 01:15ID:0ZdjPfCN確かに私は「食ってかかる」タイプですね。それが嫌な方は、最初から何も指摘しなければ
いいんじゃないでしょうか。
その点で>>23さんはいいと思います。最初は単に「レベルの低さがわかった」などと書いて
それっきりだったので、「またいつものか」くらいにしか思ってなかったんだけど、ちゃんと
その後自分ならどうするというのを書いたので、これだと議論になるというか、スレとして話に
なると思います。
004523
04/02/04 01:20ID:e4N0XV4Bうん。Singletonじゃなくてもいいけどね。
あとせっかくのSingletonも毎回インスタンスの取得してたら
グローバル依存とそう変わらないから、ポインタなり参照なりをメンバに保持するのが賢いやり方だと思う。
>>44
で、私の実装案へのご意見などは?
「それは駄目だろ」とか「これは納得」とかあるでしょう?
とりあえず今日は俺は寝る!
0046名前は開発中のものです。
04/02/04 01:24ID:wvKmvpXdそんなの七誌も含めてほとんどの人間がそうだろw
とむがコテハンだから目立ってるだけ
だから余分にたたかれるのも覚悟してるんだろうがな。
0047とむ ◆0MTMwDpCZo
04/02/04 01:24ID:0ZdjPfCNいや、うん、いいと思いますよ。
あなたの言う、「例えば関係しない2つの世界が必要になった時」などは全く念頭に
置いていなかったので。そういう拡張されたギャラクシアンを作る事を念頭におけば、
確かに基底クラスに数を持たせるというのは問題かも知れませんね。
私が書いた時は、単に手っ取り早く敵の数を表現したかっただけなので…。そのへんが
確かにつっこまれると自信がなかったので(笑)、「一番お手軽に」などと言い訳がましい
形容詞がついてたのです…。
0048名前は開発中のものです。
04/02/04 02:13ID:HuqSCz/v勉強になりそうだし。
0049とむ ◆0MTMwDpCZo
04/02/04 02:45ID:0ZdjPfCNちなみに前スレの930氏が出してたURL。置いてよしBBS。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1075503745&rm=100
で、今さっき風呂入りながらぼけーっと考えてたんだけど、やっぱり自分でギャラクシアン
作れって言われても、CEnemyなるものを作ってそこに数を管理させたりしないよな、とか
思いました。確かに私の低レベルさを示してますね(笑)。
ちなみに、>>42のレスで気がついた人がいるかも知れないけど、敵の数をその基底クラス
に持たせるのは、Effective C++に書いてあったやり方。だからなんだと言われても困るけど。
0050名前は開発中のものです。
04/02/04 05:13ID:Skm93jRcできればそういうことはいちいち書かないでもらえると非常にありがたい
ついでにコテハン止めてくれればなお良い。
0051名前は開発中のものです。
04/02/04 05:22ID:ijYeRi9Y俺はキミみたいなののほうが鬱陶しい。
0052名前は開発中のものです。
04/02/04 05:46ID:P/UednrM0053名前は開発中のものです。
04/02/04 06:38ID:dSDQ2Dxn0054名前は開発中のものです。
04/02/04 07:07ID:4p8jZ5Cz0055名前は開発中のものです。
04/02/04 10:04ID:8XXIUaLnわけろよ。
わけておけばプッチン ゼリーも作りやすいだろ。
だいたいプッチンの部分なんて容器だけで中身と大してかかわりすくねーじゃねーか。
0056名前は開発中のものです。
04/02/04 11:45ID:n3AIZr5Vそんなことはない。
中身によってはプッチンの大きさを変えないと十分に空気が入らず、
「ママー!プリンがプッチンできないー」と泣き叫ぶ子供が多数発生する。
0057名前は開発中のものです。
04/02/04 11:52ID:1wbSOOML俺は上を目指したいんだよ。
分かってて静観してる奴、おまえらが発言してくれないと
俺はこいつらと同じ人間だと思われ、こいつらのざれごとに もまれなきゃならんわけよ
で、俺が反論したりコテ叩きだしたら 俺が荒らし認定だ。
やってられんわけよ。上の議論のアンチパターンみたく
なんか うまく開き直りを処置する方法は ないもんかね?
放置するのも手だが、それじゃ あんたらのサインは読み取れないわけよ。
0058名前は開発中のものです。
04/02/04 11:53ID:8XXIUaLn大きさ変えりゃ解決できるんだからそこまで密接なもんじゃねーだろ。
0059名前は開発中のものです。
04/02/04 12:25ID:Osc4W8uZ0060名前は開発中のものです。
04/02/04 12:32ID:8XXIUaLnプッチンの開発者が聞いたら号泣ものだな。
0061名前は開発中のものです。
04/02/04 12:55ID:P/UednrM>>57
なんつーか…まずは人を見下したり馬鹿にするのをやめるべぎだと思うぞ。
2chだって紳士のいるところには紳士が集まるもんだ。まぁこの板は荒し多すぎだけどな。
ところで君は上を目指すと言うが、その言葉に見合う努力はしているか?
まずは人が推薦するような本を20冊は読もうな。
でもってその本の内容を理解したら、こんな所で燻ってる必要は無いぞ。
まともな奴がいる所を探して、そこで議論しような。
0062名前は開発中のものです。
04/02/04 13:10ID:n3AIZr5V0063名前は開発中のものです。
04/02/04 15:09ID:ZFrY/+5fあんた誰?
0064名前は開発中のものです。
04/02/04 19:13ID:A3V5KUXY冷静に考えてみれば、三十路になるまで、処女を食ったことがなかったのだ。
0065名前は開発中のものです。
04/02/04 20:34ID:+NKa3+S4三十路になるまでセクースをしたことが無い奴が大半のこの板でする話ではないな。
0066名前は開発中のものです。
04/02/04 21:54ID:1wbSOOML迷惑かけたな
006723
04/02/04 23:44ID:ctv5a5KDあんたが負けず嫌いだという事が良くわかった。>>39を読んであらかじめ覚悟していたから
何とも思わなかったが、前フリが無かったら今ごろ俺ケンカごしで書き込みしてたな。
ちなみにEffective C++はC++の本であってゲームプログラミングの本じゃない。
ゲームプログラミングの本ではない本のサンプルを実践的なゲームプログラミングの話をしている時に
さも正しいかのように持ち出すのはおかしいと思うよ。
「別に正しい例だと言っていない」っていうんだったらわざわざそんな事描く必要性まったくないよ。
まあスレにまともなネタ振れる人間がいないみたいだから、
あんたがネタ振り絞る事は「俺は」否定しない。てか頑張れ。
言い訳がましいレスさえつけなければ悪くないと思う。
>>48
俺の例の話ならGoF本読んで考えて下さい。
006823
04/02/04 23:52ID:ctv5a5KDamazonにて購入
・ソフトウェア工学とコンピュータゲーム
今日届いたので当然まだ読んでない。
何か面白いトピックでも見つけたら俺もネタ振りするかも。
0069名前は開発中のものです。
04/02/05 00:01ID:a8k7orr7結城先生のデザパタ本読んだ後、改めてGof本読もうかにゃー。
0070名前は開発中のものです。
04/02/05 00:20ID:q4thyY1D0071名前は開発中のものです。
04/02/05 00:37ID:OJCjcyTjhttp://www.amazon.co.jp/exec/obidos/ASIN/4797311126/
だよな。買う価値無しってほど廃れちゃいないと思うがなぁ。
0072名前は開発中のものです。
04/02/05 01:37ID:q4thyY1Dその本って原著がWindows95が発売される以前に書かれただけあって、内容が古いなー
と思う箇所が多々ある気がするのは俺の気のせい?
それにSmalltalkとの比較とかも沢山あるけど、そんなもん大半の読者にとって必要無いだろ。
昔ならともかく、今はGoFのデザインパターンに関して噛み砕いて説明した書籍やサイトが沢山
あるのに、わざわざその本を\5000も出して買う価値があるとは俺は思えない。
てか、その金で美味い飯でも食ったほうが絶対幸せになれる。
■ このスレッドは過去ログ倉庫に格納されています