トップページgamedev
935コメント361KB

OOとゲームプログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/07 23:55ID:HnYWCQK1
OOをどのように用いれば美しくゲームプログラミングを
行うことが出来るのか語り合うスレです。
062061802/01/23 02:14ID:???
>>619
すまん(死
0621名前は開発中のものです。02/01/23 07:02ID:???
視野とスコープかけてんのかと思ったw
0622名前は開発中のものです。02/01/23 10:21ID:???
導入コスト気は確かに気になる。
気づいたら使っていたのでその辺わからねーんだわ。
他人に勧めるときに参考にしたい。
0623名前は開発中のものです。02/01/23 13:17ID:???
>>622
時間的コスト : 小一時間
0624名前は開発中のものです。02/01/23 14:25ID:???
問いつめたい?
0625名前は開発中のものです。02/01/24 00:08ID:hOwXptDB
ローカル親父あげ
0626名前は開発中のものです。02/01/24 00:41ID:???
string abc( const string& in ){
char* pOut = (char *)in;
return pOut;
}

 このコードを実際に書く人が存在する事を覚えておいた方がいい。
0627名前は開発中のものです。02/01/24 00:49ID:???
>>626
テンプレぐらい使え。な。
0628名前は開発中のものです。02/01/24 14:06ID:c86YUCYA
>>626
ネタ?
0629名前は開発中のものです。02/01/24 22:33ID:t/2EN71K
>>626
俺の自作のstringクラスはoperatorオーバーロードしてるから
そのコードでも問題なく動くけど何か?
0630名前は開発中のものです。02/01/25 00:37ID:???
>>629
そういう問題か?
0631名前は開発中のものです。02/01/25 01:23ID:???
>>629
 あー、こーゆー人が一番困るかも。
機能が違うならstring2とかにするだろうにね。
ま、ウチもstringは置き換えだけど。
0632名前は開発中のものです。02/01/25 01:40ID:???
>>631
ネームスペースを切ってあれば許せる。
0633 02/01/25 09:39ID:zRa+G+3a
正解者未だに現れず。
0634名前は開発中のものです。02/01/25 12:21ID:???
>>626
速攻構文エラーでません?これ。
そういうすぐ分かる間違いはミスに入らないよ。
ミスってのはオブジェクト始末した後外部にあるポインタ
で参照するカスコードを言うの。
0635名前は開発中のものです。02/01/25 13:01ID:???
>>634
dangling pointerか。
0636名前は開発中のものです。02/01/25 18:27ID:???
C++ だと、たまに構築が完了していないオブジェクトを触って死ぬことがあるな。
あまりコンストラクタに機能を詰め込まないようにして、まじめにシーケンス図を
書いて考えれば防げるけど。

昨日、久しぶりに pure virtual function で怒られたよ。
0637名前は開発中のものです。02/01/27 07:19ID:???
折れに言わせればOOをするにあたってC++じゃ退屈な役不足。
C++使えたくらいで優越感に浸って満足できてしまうキミら庶民が
初々しくて眩しいぜ。俺なんか、九九覚えるよりもオナニーを覚えたし、
オナニー覚えるよりもC++を先に覚えたもんだぜ。
0638名前は開発中のものです。02/01/27 14:55ID:???
>637
それはどこで笑えばいいんですか?
0639名前は開発中のものです。02/01/27 15:44ID:???
>>638
縦読みするんじゃないのか。
0640名前は開発中のものです。02/01/27 16:15ID:???
>>639
サンクス!縦読みしたら、ナメック語で神のコードが現れたYO!!
064163702/01/27 18:29ID:???
ったくよぉ、オマエら、もうちっとはオレのアソビにはっついてくるかと
思ってたのによぉ。638の639二人。ちっとは、オレの目にオモロいギャグの
一つや二つ、飛ばしてみろや。
0642名前は開発中のものです。02/01/27 18:42ID:???
>>637
もう来るな。
0643名前は開発中のものです。02/01/27 18:47ID:???
つまらん
064463702/01/27 22:17ID:???
>>642 647

「しね」だの「くるな」だの「つまらねー」だのしか遠吼えしかできねー
単細胞野郎は、おおかた女日照りと見たね。がっかりさせやがって。
なんていうかさぁ、こう、気の利いたディスカッションできるイけてる
プログラマーっていねーの?
0645名前は開発中のものです。02/01/27 23:05ID:???
>644
オマエが一番イケてねー事に早く気付いてくれ
0646名前は開発中のものです。02/01/27 23:36ID:???
釣り師とお魚
0647名前は開発中のものです。02/01/28 04:11ID:???
>>637=644
正直、2ちゃんねる広しと言えども、こんな寒いヤツ数ヶ月ぶりに見た。
0648名前は開発中のものです。02/01/28 23:26ID:???
>>644
はやく OO 語れよ。待ってるんだから。
0649名前は開発中のものです。02/01/29 13:58ID:???
>>637
私は生まれる前から自分の this ポインタを弄ってましたが何か?
0650 02/01/29 23:11ID:AYQZp6YC
http://www.alien-factory.co.uk/main.html
ここのソースを見ろ。
OOなぞとっくに廃れてるYO!
0651名前は開発中のものです。02/01/30 00:11ID:???
やっぱ、Rubyだよな、みんな!
0652名前は開発中のものです。02/01/30 01:11ID:???
そうそう、なんといってもRubyだよな!
Ruby知らないプログラマーは、だいぶ損してるぞ!
0653名前は開発中のものです。02/01/30 01:30ID:???
ム板に帰ってください。
0654名前は開発中のものです。02/01/30 01:32ID:???
>オマエが一番イケてねー事に早く気付いてくれ
なんか図星されて釣られた雑魚が。
釣り人644の舌打ちが聞こえてきそうー
0655名前は開発中のものです。02/01/30 01:36ID:???
>>654
つまらなすぎ。ネタ職人を目指すなら、精進して出直すように。
0656名前は開発中のものです。02/01/30 03:03ID:???
>655
654をネタ崩れと誤認識するシロい男、ハケーン
0657 02/01/30 03:09ID:ikWHR0pm
>>637
「役不足」の用法が違うよ。辞書で調べるべし。
それだとC++はOOなどやるのには勿体無いような高機能言語となる。
0658名前は開発中のものです。02/01/30 03:54ID:???
というかOOがゲーム制作にとって必須かと言われるとそれはNO。
だから役不足なC++ぐらいが丁度いいと思う。簡単だしね。
0659名前は開発中のものです。02/01/30 04:00ID:???
>>637
オナニーを小学校高学年あたりで覚えたと仮定すると、九九を覚えたのは中学校あたりですか?
それで役不足の意味もわからないのですね。
0660名前は開発中のものです。02/01/30 04:07ID:???
>>658
>>657の言ってることわかってる?
0661名前は開発中のものです。02/01/30 04:11ID:???
>>660
657に返したレスじゃないんだけど…。
0662名前は開発中のものです。02/01/30 04:15ID:???
>>661
役不足の使い方間違えてるのでもう一度辞書で調べましょう。
0663名前は開発中のものです。02/01/30 07:00ID:???
 
 さて、 今日もシコシコオナニー議論
0664名前は開発中のものです。02/01/30 09:33ID:???
C++で作るのにゲームなんかじゃ役不足なんだよ!
0665名前は開発中のものです。02/01/30 17:37ID:???
いいじゃん、みんな好きなように作れば。
0666名前は開発中のものです。02/01/31 00:07ID:???
九九とOO。
0667名前は開発中のものです。02/01/31 23:15ID:???
こんなゲーム、折れには役不足だ!と言って会社辞めたい。
0668名前は開発中のものです。02/02/04 02:52ID:???
アンチOOな奴が使えるとか使えないとか理解してるかどうかとかどうでもいいよね。
そういう次元の話をしはじめたら面白いゲームつくれよヴァカでおしまいになるから。
面白くて売れるゲームつくれる奴が使える奴。それ以外は使えねぇというのが社会。
0669名前は開発中のものです。02/02/04 03:00ID:???
面白くするのはプランナーとか、ディレクターの仕事じゃないのかなぁ。
と、最近思うようになったが、そうもいっていられない現状。
0670名前は開発中のものです。02/02/04 03:09ID:???
>>668
> 面白くて売れるゲームつくれる奴が使える奴
そりゃそうだが、プログラムに関しては広い意味での「技術力」がモノを言う場面も
多い。

いくらアイデアが良くても、バグバグでしょっちゅう異常終了するようだと論外だし、
新しいアイデアを盛り込もうとしたときに「設計からやり直さないと無理」だと、時間
的に余裕がなくなって、実現可能なことが制約されてしまう。

ここまでは前提で「で、OO はどうなんだい」っつー話をしてるんじゃなかったのか。
0671名前は開発中のものです。02/02/04 03:11ID:???
OOはもう前提として、今はジェネリックなプログラムへとパラダイムが進化しつつあるようです。
0672名前は開発中のものです。02/02/04 03:20ID:???
>>671
OO と Generic Programming の関係は、進化というよりは相補的だが。最近の
流行りだと AOP (アスペクト指向プログラミング) なんつーのもあるやね。
0673名前は開発中のものです。02/02/04 09:47ID:???
>>672
AOPは理念は解るが、具体的に何をするものなのかよく解らん。
0674名前は開発中のものです。02/02/04 14:04ID:???
やっと C が根付いた所のゲーム業界が新しいパラダイムを先取りするとは思えん。

まずはちゃんと OO を当たり前にすることからだ。
0675名前は開発中のものです。02/02/07 00:35ID:PT76Vhl7
おまへ、そんな理想を持ってゲーム業界入ったらすぐ潰れるぞ。
設計ねえ・・・・。デザインねえ・・・。遠い他所の世界の話だ。
0676名前は開発中のものです。02/02/07 00:44ID:???
OOってのはまず設計ありきだから仕様が二転三転するゲームのお仕事
じゃ結構つらいトキもあるのよね。あとC++プロジェクトはメンバーに
一人でもC++を理解していない奴がいると破綻するから要注意。
0677名前は開発中のものです。02/02/07 01:03ID:???
OOとは関係ないが、XPはどうなんだろうか
0678名前は開発中のものです。02/02/07 01:15ID:PT76Vhl7
>>676
大抵の会社ではチームを仕切ってるのは企画屋。
>一人でもC++を理解していない奴がいると・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・連中がやるのは・・・・変更の前のPG以外への根回し、・・・・・
多数派工作・・・・・・圧力・・・・・追い落とし・・・・・宣伝・・
・・・・・・・とても理解どころの話じゃ・・・・・・・・・・
0679名前は開発中のものです。02/02/07 02:00ID:???
>>673
うまくやると Croscutting を局所化できるらしいけど、俺もイマイチ具体的な
イメージが湧かなかったり。キャッシュとかは確かに綺麗に書けそうだけど。
0680名前は開発中のものです。02/02/07 02:26ID:???
>>676
設計じゅーよーなのは確かだが、いきなりシステム全体を作らずにスパイラル的に
開発するのも可能ですわな。モジュール間のインターフェースを明確にしておけば、
あとで仕様変更が入ったときに、モジュールをゴッソリ入れ替えるのも可能だし。

とはいえ、あまりに仕様変更が大きいとやっぱり作り直しだけど。
0681名前は開発中のものです。02/02/07 03:19ID:???
>>680
 まぁ、ゲーム作成においては設計よりはノリで作ったほうが有利
な事が多いのは確かだよね。どーせ1本上げたらスタッフが半分は
減るのが業界の常なのでC++の再利用性なんてのは業界の体制が変わ
らない限りは全然意味がないよねー(トカ

 ゲームエンジンの切り売りが商売として成り立ってる海外がちょ
っと羨ましいデス。
0682名前は開発中のものです。02/02/07 12:21ID:???
>>681
バイオハザードのシリーズとか、PS 版のドラクエ 4, 7 なんかは、思い切り
使いまわしっつー気がするが。
0683名前は開発中のものです。02/02/07 19:40ID:???
OO のが変更楽じゃん。
変更して問題が発生した時に、変更したモジュールに問題があることが
はっきりするから。

ベタ書きだと 変更した時に他のモジュールに付け焼刃の修正がかかるから
最終的に複雑になりすぎて手におえない。
0684名前は開発中のものです。02/02/09 10:41ID:???
それぞれの認識している「変更」に大きな隔たりがあると思われ…
0685名前は開発中のものです。02/02/15 06:22ID:8zjKt4ip
で、みんなどんな所に OO 使ってるの?
0686名前は開発中のものです。02/02/15 06:44ID:???
>>685
ペニス
0687名前は開発中のものです。02/02/15 07:23ID:AIw8xlxF
自分でゼロから作ったフレームなら
たとえOOを多用していても理解もきいてとっても便利なんだけど
他人が作ったものだと途端にわかりづらくなるよね。
クラスのネストが3つ以上だと、もう読むのもイヤって感じ。
メンバを外部に公開するのは絶対禁止、COMインターフェイスみたいなのだけで
継承をサポートするって形にしないとダメだと思うなあ。
作るのは大変だろうけど。
0688名前は開発中のものです。02/02/21 03:36ID:???
>>687
いきなりソースを読む前に、ふつうはクラス図やシーケンス図を眺めないか?
0689名前は開発中のものです。02/02/21 17:25ID:35NaRfFx
>>688
多分、そんな物なかったんじゃない?(ハウスライブラリでは十分ありうるでしょ)
0690名前は開発中のものです。02/02/21 17:32ID:???
>>683
こいつ本当に開発の経験あんのかよ
0691名前は開発中のものです。02/02/21 20:17ID:C9AJcEPn
>>689

クラス図やシーケンス図を補完している開発会社があるなら、それこそ
無駄だと思う。仕様は日々変わるんだから、そんなものとっておいても
意味がない。

常識的でシンプルな設計すれば、何となく分かってくるものだと思うよ。
0692名前は開発中のものです。02/02/21 22:30ID:???
>>691
> 仕様は日々変わるんだから、そんなものとっておいても意味がない。
…そいつは凄いな。ふつー(非ゲーム業界)は仕様が変わるからこそ、開発資料を
残しておくんだが。
0693名前は開発中のものです。02/02/22 00:27ID:A1Lm+ZAR
>>692
パッケージ売り切りだと日々のメンテがないから、そういう風になるのかな?
まだ普通?(情シス)しか知らないから、パッケージ開発がどういう世界かしらない。

しまった、ワナビ〜暴露しちゃった。
0694名無しさん@お腹いっぱい。02/02/22 11:31ID:???
>>691
で、そういう会社に限ってスタッフに逃げられると、そのままポシャルんだよなぁ・・・
そいつ等の開発水準すら維持できなくて。
0695名無しさん@お腹いっぱい。02/02/22 11:33ID:???
>>694
実際、それでポシャる、もしくは瀕死になったメーカーは相当あるぞ。
0696名無しさん@お腹いっぱい。02/02/22 11:46ID:???
>>691
クラス図やシーケンス図を補完するのは開発者の為ではくて、開発会社の為
なのに、それを否定するって、それでメシ食ってけるのか?
そういうヤシは、すぐ仕事ホサれると思うんだが。
0697名前は開発中のものです。02/02/22 17:13ID:gH0SaIAu
>>696

開発会社が(経営陣の方々か)欲しいというなら、完成した動くコード
とセットで UML図 (といっても、Rose とか自動作成ツールで出力する
ものの可能性が高い)を仕様書と報告書とともに差し上げます。

けど、デザイナーとゲーム開発者と間で、システムの中核の開発が終わってない
ってのに、のんびりと UML図を作っては書き直し、作っては書き直し、なんてマ
ヌケなことはしないでしょう。
0698名前は開発中のものです。02/02/22 17:16ID:???
開発=コーディング なの?

UML で図を書くというのは、何もお絵かきして遊んでるわけじゃなくて、問題の
分析/設計をやってるんだけど。
069969702/02/22 17:20ID:gH0SaIAu
あ、話の流れを見てみると、
「完成し終わったライブラリのUML図を開発会社が保管」という意味での
UML 図の保管ということみたいですな。

それなら、保管するのは大いにありうることだと思います。
ごめん。


>>698

もちろん、UML図を書くのはいいんですけども、(Extreme Programming 的には)
仕様が変わる可能性を残しているのに、図はとっておくのはムダということでございます。

(なぜなら、どうせすぐに古くなってしまうから・・・)


UML図は紙に描いて意思疎通が終わったら丸めて捨てるのがベストだと思います。
0700名前は開発中のものです。02/02/22 17:25ID:???
>>699
俺は、仕様が変わるからこそ開発資料を作るけどなぁ。

もちろん全部のクラスやシーケンスについて詳細な図を書くことはなくて、中核と
なる部分と例外的な処理をしている部分だけまじめに書いて、後は適当に書くか
まったく書かないけど。

そうでないと、仕様変更が出てきたときに

- その仕様変更によって、どこがどの程度の影響を受けるのか(インパクト分析)
- 作業工程にどのような影響が出るか
 並行して進めてる作業をとめて、こちらを先に進める必要があるのか
- 結果として、スケジュールにどのような影響が出るか

なんてのを、その場で大雑把にでも見積もるのが難しくない?
070170002/02/22 17:31ID:???
追記

> (なぜなら、どうせすぐに古くなってしまうから・・・)
up to date に保てないような図なら、まるてて捨ててしまえ、というのは同意。
だから何でもかんでも図にしろっつーのは俺も反対。
0702名前は開発中のものです。02/02/22 17:37ID:gH0SaIAu
>>700

いやいや、それが「罠」なんですよ。
また、Extreme Programming を引き合いに出すけど、
未来を予測するのは不可能なのです。

もし、仕様変更が無かったらどうしましょう。
仕様変更のために資料を作ったのがムダになってしまいます。
0703名前は開発中のものです。02/02/22 18:27ID:???
>>702
仕様変更に備えるのは、理由の一つで

- 設計を OO でやってる場合、頭の中に最初に出来るイメージはコードよりは
 UML の図に近い。設計段階で UML の図は自然に出来る。(設計をすっとば
 していきなりコーディングしちゃうヤツを除く)
- コーディングした本人も、数日経つと詳細は忘れる。そのときにコードを追っ
 て理解しなおすよりは、図を見て思い出した方が効率が良い。まして本人で
 はなく、他人がメインで保守しているコードに関してはなおさら。

というのもあるけど。
0704名前は開発中のものです。02/02/23 07:28ID:???
結局売りきりだからね。開発会社も開発ノウハウを蓄積するためのプロジェクト
運営なんて考えないし。(考えているところもあるんだろうけど。)
だいたい、3〜4年たつと新ハードがでて、作ったものがかなり陳腐化するのが
どうしようもない原因であるよ。3DといってもX−BOXとPS2とPS1で
も別世界だし。 もうしばらくはその場しのぎを続けるしかないだろうな。

むろんDQくらい売れるなら使いまわし前提にプログラムを組む余裕はあるだろう。
シナリオ、バランス調整のほうが時間かかってるだろうし。
0705名前は開発中のものです。02/02/23 15:06ID:???
>>704
陳腐化が速くて再利用が厳しいのは確かだが、それでも昔の

 プログラマ一人
 開発期間は数ヶ月

という古き良き(?)世界から、

 プログラマは最低数人
 開発期間は 18 ヶ月

という状況になってしまったわけで、「設計は俺の頭の中にあるよ」では通用しな
くなりつつあるのは確か。

開発期間が伸びた場合に嵩むコストも昔の比じゃないし、外から資金を調達し
てる場合にはスケジュールに関して「プログラマは8割方できてると言ってます」
では済ませてくれないしね。
0706名無しさん@お腹いっぱい。02/02/25 14:03ID:???
それに自分達がその資料や資産をもう必要としなくても、ほぼ同時並行
で進行中の別チームがソレを切実に必要とするケースは結構あるよ。

だから「設計は俺の頭の中にある」っていうのは、ソイツの独り善がりの
台詞としか思われなくなってる。 たとえ腕が確かでも。
0707名前は開発中のものです。02/02/25 19:43ID:JMhB1+u9
注意すべきなのは、ドキュメント使ってる人がいるかどうか、だよね。

もし、見る人がいなければ、そんなものは作っちゃだめ。

見る人がいれば、できるだけ短い分かりやすい文章で解説して、そして
やっぱ一番効率がいいのは面と向かってのやりとりだね。2ch で設計の
議論やろうとしたら全く非効率極まりない。
0708名前は開発中のものです。02/02/25 20:27ID:???
>>707
だから使ってる人がいるかどうかってのは、製作者自身が決める事じゃない
ってーの。
たとえ実際に必要とされなくとも、自分達が作った物に対する詳細な資料を
作製、添付するのは、その完成品で金を貰う人間としては当然の義務だぞ。

ソレを口で説明するのが一番効率がいいとは、何たる言い草だよ・・・
口で説明する。で済むなら、同人とかでやってくれ。

仕事で、そんな事されたら俺は上司にそいつを更迭するよう強く迫るけどな。
第一、ドキュメントもロクに作れん様な奴が人に判りやすく説明できるわけ
無いだろうが。
0709名前は開発中のものです。02/02/25 20:42ID:???
>>708
ドキュメント書かないヤツは論外だが、ドキュメント過剰も良くないとは思う。プロ
ジェクトの規模が大きくなって、それこそ業務用システムのような

 数千人月

みたいな世界になると開発者間で直接コミュニケーションなんてのは不可能だか
ら、細部までドキュメント化してないと話にならないけど、

 開発者数人

という規模だと、コア部分関してはきっちりドキュメント化するのは当然としても、
細部の頻繁に変更される部分までドキュメント化しても無駄になる可能性が高
い。

細部は doxygen あたりのドキュメント作成ツールで済ませることにして、コア部
分だけきっちり資料を作るってのも、現実的な選択肢だと思うよ。

>>707
資料って OO だと UML で大雑把に書いて、そこにノートでコメントを書き込む方
が、文章で書くより分かりやすくないか?
0710名前は開発中のものです。02/02/26 03:25ID:???
>だいたい、3〜4年たつと新ハードがでて、作ったものがかなり陳腐化するのが
>どうしようもない原因であるよ。3DといってもX−BOXとPS2とPS1で
>も別世界だし。 もうしばらくはその場しのぎを続けるしかないだろうな。
いっちゃ悪いけど、「描画系」と「アプリ系」をきっちり分別して開発する
ことに困難を感じている君は修行不足だと思う。
071171002/02/26 03:28ID:???
特に、PS2 -> X-Box への移植に困難を感じているのならば
開発時の整理整頓を真剣に考えた方がいいと思う。
0712名前は開発中のものです。02/02/28 12:39ID:ssS9vuX/
OO ってプログラムの複雑度を下げるよなぁ…って思ったんだけど、
これについての意見プリーズ。

思いつきだから自分でも確証ないんだよね。どうなんだろう?
0713名前は開発中のものです。02/02/28 20:40ID:???
>712
構造的にはそうかもしらんが
ソースコードは長くなるぞ

というよりアンチOOから怒濤の煽りが来そうなヨカン
0714名前は開発中のものです。02/02/28 21:31ID:???
スパゲッティがほどけて独立性が上がっても、
その独立したものどうしを繋ぐのに複雑性が上がる罠。
071571202/03/01 00:34ID:???
>>713
ソースコードの長さって問題なのかな?たいした問題じゃないと思うんだけど。
みんなそんなにキーボード打つの遅いの?

>>714
なるほど、だから UML とか デザインパターンズ とかが重要になるんだね。
0716名前は開発中のものです。02/03/01 01:55ID:???
0717名前は開発中のものです。02/03/01 02:27ID:???
そうズら
0718名前は開発中のものです。02/03/01 02:48ID:???
複雑度を下げるというより上げると思うんだが
複雑なことが安全にできるようになるって感じ。
ソースコード対効果比(S/N比)は高い。
掛ける時間は設計90%、コード10%くらいになった。
0719名前は開発中のものです。02/03/01 03:50ID:???
たしかここだったと思うけど、OOPでSTG(凄く簡単な雛型)作った人が、
ソースUPしてたと思うけど、勝手に弄らせて貰ってます。

何か形になりそうだったら、UPします。
■ このスレッドは過去ログ倉庫に格納されています