ゲームプログラムなら俺に聞け10
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/09/09(木) 17:51:54一応質問も受け付けます。
ソースをうpするとアドバイスがもらえるかもしれません。
なお、このスレの内容は鵜呑みにしないこと。
【前スレ】
ゲームプログラムなら俺に聞け9
http://hibari.2ch.net/test/read.cgi/tech/1281851738/
【過去スレ】
ゲームプログラムなら俺に聞け
http://pc12.2ch.net/test/read.cgi/tech/1230890476/
ゲームプログラムなら俺に聞け2
http://pc12.2ch.net/test/read.cgi/tech/1247292664/
ゲームプログラムなら俺に聞け3
http://pc12.2ch.net/test/read.cgi/tech/1251324391/
ゲームプログラムなら俺に聞け4
http://pc12.2ch.net/test/read.cgi/tech/1255833802/
ゲームプログラムなら俺に聞け5
http://pc12.2ch.net/test/read.cgi/tech/1267290018/
ゲームプログラムなら俺に聞け6
http://pc12.2ch.net/test/read.cgi/tech/1269578438/
ゲームプログラムなら俺に聞け7
http://pc12.2ch.net/test/read.cgi/tech/1274521960/
ゲームプログラムなら俺に聞け8
http://hibari.2ch.net/test/read.cgi/tech/1278304182/
0153デフォルトの名無しさん
2010/09/12(日) 18:24:58C++しらんかったらグローバル変数使ったダサいコードが出てくるわけで
いつも議論がループする要因になってる。
0154デフォルトの名無しさん
2010/09/12(日) 18:25:240155デフォルトの名無しさん
2010/09/12(日) 18:25:280156デフォルトの名無しさん
2010/09/12(日) 18:25:56そんなことできるの?具体的に。
0157455
2010/09/12(日) 18:26:580158デフォルトの名無しさん
2010/09/12(日) 18:28:38TMPとかその手のイディオムでできるっしょや
まあ全部が全部できるわけじゃないけどね
0159デフォルトの名無しさん
2010/09/12(日) 18:29:00ステートパターンって何回もでてるでしょ。
0160デフォルトの名無しさん
2010/09/12(日) 18:30:21それじゃぜんぜん役に立たない
0161デフォルトの名無しさん
2010/09/12(日) 18:30:29HSP ではどうすればいいの?
0162デフォルトの名無しさん
2010/09/12(日) 18:31:110163デフォルトの名無しさん
2010/09/12(日) 18:37:48ドライバと併せて得意な場面をより伸ばし、不得手な場面を犠牲にするのがRADEON。結果最高フレームレートがゲフォよりかなり高い。
しかしそもそもモニターのリフレッシュレートは60Hzが標準なので、得意な場面で200fpsとかwでてもまったく無駄。
電力の無駄なのでV-Syncを待つなどの設定でgpu側を強制的に60fpsにリミットするのが常識。
しかし未だに60fps以下でしか描画出来ない重い場面での底上げの最適化をGeForceは常に怠らないのでそういった局面で非常にパワーを体感できる。
逆に馬鹿なRADEONはベンチの結果だけを優先させるのでボトルネックとなっている問題点をいつまでも改善せず、決してモニタに反映されることの無い
無駄な上澄みを紙面に載せるベンチの為だけに稼ぐ様な改善を未だに続けている。これ事実、使えばわかるよ。
0164デフォルトの名無しさん
2010/09/12(日) 18:37:49たとえば?
全然って言うほどだから挙げ切れないぐらい発生してるんだよね?
0165デフォルトの名無しさん
2010/09/12(日) 18:38:37たとえば多重継承の阻止はどうやってするの
0166デフォルトの名無しさん
2010/09/12(日) 18:41:410167デフォルトの名無しさん
2010/09/12(日) 18:42:140168デフォルトの名無しさん
2010/09/12(日) 18:42:590169デフォルトの名無しさん
2010/09/12(日) 18:43:260170デフォルトの名無しさん
2010/09/12(日) 18:49:21すべて拒否するのは知らん
でも特定の組を拒否することは静的な能力照会でできる
ほかには?
0171デフォルトの名無しさん
2010/09/12(日) 18:50:06すでに意味なくなってるけどテンプレートを禁止するには?
0172デフォルトの名無しさん
2010/09/12(日) 18:50:420173デフォルトの名無しさん
2010/09/12(日) 18:52:13C++になって俺らがどれほどの恩恵うけてるのかってのは正直実感無いんだよな。
クラスでプログラムが整理しやすくなって効率よくなってるのか
間違った継承とかで無用にバグを増やして効率わるくなってるのか
どっちもあると思うがどっちが優勢なのかわからん
0174デフォルトの名無しさん
2010/09/12(日) 18:53:36そうでなければプラス
もう結論は十年以上前に出てるだろ
0175デフォルトの名無しさん
2010/09/12(日) 18:54:32なんの意味もない結論だな
0176デフォルトの名無しさん
2010/09/12(日) 18:57:15少なくともアホはC++使わないほうがいいってことがわかるだけでも有益
0177デフォルトの名無しさん
2010/09/12(日) 18:58:080178デフォルトの名無しさん
2010/09/12(日) 18:59:44そんでそれが間違いであることをちゃんと言う入門書がほとんど無い。
すくなくともC++にとって差分プログラミングなんて害悪でしかないんだが
0179デフォルトの名無しさん
2010/09/12(日) 19:01:22D&Eに書いてあったと思うけども、ストラウストラップとしては
適宜C++の機能を一部制限したサブセット言語としての実用も想定していたっぽい
要するにコーディング規約のレベルで対応すべきってことなんだろうか
(グーグルが有名だが、例外は禁止とか)
0180デフォルトの名無しさん
2010/09/12(日) 19:03:540181デフォルトの名無しさん
2010/09/12(日) 19:10:48面白いじゃん、関数ポインタひとつで、単なるメモリブロックに
「クラス」と「状態」の両方の意味を与えてしまうあたりが。
状態に関しては、今ならStateパターンとかStrategyパターンとかって話に
なるんだろうが、昔はそんなの無かったしな。
関数ポインタで状態を表せることはタスクシステムの重要なメリットの一つだと
思ってるんで
0182デフォルトの名無しさん
2010/09/12(日) 20:13:330183デフォルトの名無しさん
2010/09/12(日) 20:24:45Cでも意識すれば十分OOPできるもんな。
0184デフォルトの名無しさん
2010/09/12(日) 20:40:530185デフォルトの名無しさん
2010/09/12(日) 20:48:180186デフォルトの名無しさん
2010/09/12(日) 20:50:360187デフォルトの名無しさん
2010/09/12(日) 20:54:56typedef struct impl_ { iface i; data d; } impl;
impl_hoge(void *) { ・・・ };
iface * create_impl(void)
{
impl * p = (impl*)malloc(sizeof(impl));
p->i.hoge = impl_hoge;
p->d = init_data;
return (iface*)p;
}
iface * p = create_impl();
p->hoge(p);
でもめんどい
C++でvirtualしたほうが10倍楽だよね
0188デフォルトの名無しさん
2010/09/12(日) 20:59:400189デフォルトの名無しさん
2010/09/12(日) 21:03:03いや、ある
0190デフォルトの名無しさん
2010/09/12(日) 21:07:040191デフォルトの名無しさん
2010/09/12(日) 21:10:27iface * create_impl_2(void)
{
impl * p = (impl*)malloc(sizeof(impl));
p->i.hoge = impl_hoge_2;
p->d = init_data;
return (iface*)p;
}
iface * p = create_impl();
iface * q = create_impl_2();
p->hoge(p);
q->hoge(q);
どうやら多態したようです
0192デフォルトの名無しさん
2010/09/12(日) 21:12:470193デフォルトの名無しさん
2010/09/12(日) 21:14:150194デフォルトの名無しさん
2010/09/12(日) 21:16:26>クラスインスタンスメンバをprivateにするのは容易じゃないだろ
でvirtualは難易度の差に関係ないでしょと言ってるのw
0195デフォルトの名無しさん
2010/09/12(日) 21:16:410196デフォルトの名無しさん
2010/09/12(日) 21:19:31俺様オブジェクト指向で開発ママならなくなるプロジェクトいくつも見た。
0197デフォルトの名無しさん
2010/09/12(日) 21:20:09別にそいつへのレスで書いたんじゃない
>>183のつぶやきにつられて俺もつぶやいただけだよ
これはすれ違いが生んだ悲劇だってことさ
0198デフォルトの名無しさん
2010/09/12(日) 21:26:030199デフォルトの名無しさん
2010/09/12(日) 22:51:34アセンブラやC言語により記述可能である。
CPUの中にはクラスなど存在しないのだから。
0200デフォルトの名無しさん
2010/09/12(日) 23:02:000201デフォルトの名無しさん
2010/09/12(日) 23:02:250202デフォルトの名無しさん
2010/09/12(日) 23:18:030203デフォルトの名無しさん
2010/09/12(日) 23:20:350204デフォルトの名無しさん
2010/09/12(日) 23:21:150205デフォルトの名無しさん
2010/09/12(日) 23:24:28ゲームがよく分かっていないうちからやたら継承しようとするやつは
たいていバグだらけの上に細部にも凝れず仕様変更にも対応できない。
0206デフォルトの名無しさん
2010/09/12(日) 23:25:420207デフォルトの名無しさん
2010/09/12(日) 23:48:090208デフォルトの名無しさん
2010/09/12(日) 23:54:210209デフォルトの名無しさん
2010/09/12(日) 23:54:370210デフォルトの名無しさん
2010/09/12(日) 23:58:440211デフォルトの名無しさん
2010/09/13(月) 00:00:000212デフォルトの名無しさん
2010/09/13(月) 00:23:500213デフォルトの名無しさん
2010/09/13(月) 00:41:520214デフォルトの名無しさん
2010/09/13(月) 00:54:000215デフォルトの名無しさん
2010/09/13(月) 01:31:25ゲームプログラムの場合、ポリモだろうがなんだろうが動的にメモリを確保することはしないので
そのシーンさえ初期化できれば問題ねー
0216デフォルトの名無しさん
2010/09/13(月) 01:37:370217デフォルトの名無しさん
2010/09/13(月) 03:18:49mjky。
設計的にどういう都合でそういうのが発生するん?
パズルゲームとかアクションゲームとかRPGでもまず無いよな?
0218デフォルトの名無しさん
2010/09/13(月) 03:37:070219デフォルトの名無しさん
2010/09/13(月) 05:37:300220デフォルトの名無しさん
2010/09/13(月) 07:59:28特に、はじめてゲームプログラミングに挑戦しようとする人にとって、
少なくとも現状だと、オブジェクト指向の壁は、あまりに高すぐる
0221デフォルトの名無しさん
2010/09/13(月) 10:50:47数決め撃ちでつくって全場面とおしてキャラクターは画面内に8対しか出ませんとかありえないだろw
0222デフォルトの名無しさん
2010/09/13(月) 10:56:30弾なら弾速と画面さいずで最大数は決まってくるし、
最大数固定っていう設計は十分ありうる。
動的に確保するってことは、確保できないかもしれない可能性が出てくるわけで。
0223デフォルトの名無しさん
2010/09/13(月) 11:01:33けどそういう保守的な設計のゲームは表現的に寂しい物がおおかったね。
0224デフォルトの名無しさん
2010/09/13(月) 11:35:36キャラクターが多いときは弾が少なくて
弾が多いときはキャラクターが少なくなるの?
0225デフォルトの名無しさん
2010/09/13(月) 12:05:09そもそも現在存在していないキャラや演出ぶん事前に確保なんかしてたら、
現在進行している場面で使えるリソースが少なくなるでしょうが。
0226デフォルトの名無しさん
2010/09/13(月) 12:23:15ボスの直前にリセットして空きを確保するって意味?
0227デフォルトの名無しさん
2010/09/13(月) 12:56:290228デフォルトの名無しさん
2010/09/13(月) 13:08:04逆に言うと、新しい敵が出てくるたびにロードするようなシステムだったら、
PSとかのディスクゲームだったら致命的なラグでしかねーだろ?
0229デフォルトの名無しさん
2010/09/13(月) 13:10:570230デフォルトの名無しさん
2010/09/13(月) 13:12:360231デフォルトの名無しさん
2010/09/13(月) 13:13:130232デフォルトの名無しさん
2010/09/13(月) 13:16:21一度雑魚キャラが消えるエリアを設けて
その間にボスを読み込むとか割りとありがちな演出のような
0233デフォルトの名無しさん
2010/09/13(月) 13:22:45ロードしたんならメモリ確保してるじゃんよw
0234デフォルトの名無しさん
2010/09/13(月) 13:31:18そいう類のリソースは事前確保だよ。
それを何個使うかって所を動的にするって話じゃないのかよ。
0235デフォルトの名無しさん
2010/09/13(月) 13:33:39まるで今のハードには何のリソース制限も無いような言い方だな
お前、何かプログラム作ったことあるの?
0236デフォルトの名無しさん
2010/09/13(月) 13:44:27>>232の「ボスを読み込む」は「ボス分を確保する」に読み替えといて
0237デフォルトの名無しさん
2010/09/13(月) 13:50:41「ロードしたんならメモリ確保してる」が真だとしても、その逆
「メモリ確保したんならロードしてる」が真だとは限らない。
0238デフォルトの名無しさん
2010/09/13(月) 15:00:420239デフォルトの名無しさん
2010/09/13(月) 15:12:13頭が石化してるおじいちゃん世代が住み着いてるわけね
なるほど納得したわ
関数ポインタ使えない定数厨とかもその類だったわけだ
0240デフォルトの名無しさん
2010/09/13(月) 15:15:550241デフォルトの名無しさん
2010/09/13(月) 15:36:33ストレスたまるだろ?
仕事で疲れてココで疲れてどうすんの?
0242デフォルトの名無しさん
2010/09/13(月) 15:52:230243デフォルトの名無しさん
2010/09/13(月) 16:21:03一部顔を真っ赤にしちゃってる人も混ざってるみたいだが
0244デフォルトの名無しさん
2010/09/13(月) 16:23:09よくわからんが、最初はメッシュだけ読んでおいて
テクスチャとかは後で読み込む、ってなら何となく理解できる。
0245デフォルトの名無しさん
2010/09/13(月) 18:30:050246デフォルトの名無しさん
2010/09/13(月) 18:40:23ってEffectiveJAVAに書いてあるぞ
0247デフォルトの名無しさん
2010/09/13(月) 20:10:540248デフォルトの名無しさん
2010/09/13(月) 22:36:340249デフォルトの名無しさん
2010/09/13(月) 22:39:340250デフォルトの名無しさん
2010/09/13(月) 22:47:48そういうステージ作らなければいい
0251デフォルトの名無しさん
2010/09/13(月) 23:51:330252デフォルトの名無しさん
2010/09/13(月) 23:55:14■ このスレッドは過去ログ倉庫に格納されています