○○とゲームプログラミング 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/
0073名前は開発中のものです。
04/02/05 02:53ID:N9nT9fCEUML使ってゲームの設計やるような奴ってどれぐらいいるのかなぁ。
みんな普通に使ってるってんなら俺も本腰入れて勉強するから
実践投入の実例があれば教えれ。
0074名前は開発中のものです。
04/02/05 06:10ID:2sw8AtKkお前はすでにケンカごしすぎるぞ。
とむだってEffective C++に書いてあるから正しいとは書いてないだろ。
そこに書いてあったと言ってるだけ。
自分の非を認めてる奴にそこまで噛みつく必要があるのか?
0075名前は開発中のものです。
04/02/05 10:42ID:VgMwCgpG>ちなみにEffective C++はC++の本であってゲームプログラミングの本じゃない。
>さも正しいかのように持ち出すのはおかしいと思うよ。
んー、なんでもかんでも否定にとるのはよくないぞ。バイアスかかりすぎ。
あれはとむ君一流のジョークだと解釈してあげないと。
Effective C++でとむが挙げた話が出てるところだってそういう文脈じゃ
なかったっけ?>軍との契約云々
0076名前は開発中のものです。
04/02/05 11:54ID:zhBT9wz30077名前は開発中のものです。
04/02/05 12:14ID:OJCjcyTj> GoFのデザインパターンに関して噛み砕いて説明した書籍やサイトが沢山ある
そういう事なら納得だよ。てっきりデザインパターン自体に価値が無いのかと。
0078名前は開発中のものです。
04/02/05 12:55ID:PbyDwS46そう、あれじゃ軍との契約は得られないが、話として分かりやすければそれでいいみたいな流れで書いてあった。
要は、そこにつっこみを入れてたら話が進まないだろってことだ。
0079名前は開発中のものです。
04/02/05 19:05ID:x3lzpvy3GoFとかEffectiveC++とかの知識は本当に必要になる。
マジで
0080名前は開発中のものです。
04/02/05 20:33ID:WB3P9AFBC++で作らせてほすぃ・・・。
0081名前は開発中のものです。
04/02/05 20:47ID:YortWucK0082名前は開発中のものです。
04/02/05 21:07ID:WB3P9AFBそんなこと言う人(ry
0083名前は開発中のものです。
04/02/05 23:58ID:OJCjcyTjできるけど気が引ける
0084名前は開発中のものです。
04/02/06 00:14ID:9XAoGs7Z例のタスクシステムとか言ってるやつじゃないの
0085名前は開発中のものです。
04/02/06 00:29ID:1lUd5tFPいや、そりゃ違う話だよ。
まぜるな、また、変な議論はじまるから。
0086名前は開発中のものです。
04/02/06 01:12ID:hCLlGrWBFILE*と高レベル入出力まわりか
あとは関数ポインタ使ってクラスの真似事も無理やりできなくはない
0087名前は開発中のものです。
04/02/06 03:10ID:cGSLd7pRC#だとかD言語だとかが出てるこのご時世に、
なぜC++にこだわる?
0088とむ ◆0MTMwDpCZo
04/02/06 03:16ID:zY+xNQsK0089名前は開発中のものです。
04/02/06 03:51ID:ficRKwSJ0090名前は開発中のものです。
04/02/06 04:54ID:Ck70IGCkそれにOOだけにこだわるならsmalltalkでもやりなさいな。
つーかさ、このスレって毎日…。
009187
04/02/06 05:10ID:cGSLd7pRただ、煽りなんだが、87の所感は正直なんだ。
現実的な問題として、89氏が指摘してるように
「最大市場でそれ動くのかよ?」という壁にぶつかる。
コンシューマは当分、C++での辛抱は続くな。枯れてるぶん、無難か?
009290
04/02/06 05:22ID:Ck70IGCk同じ厨が沸き沸きしてるな。と思ってたわけだが。
コンシューマっつても色々あるけど、C++まともにサポートしてる環境ってどれだけある?
俺はPSとPS2しかやったこと無いんで詳しくないんだが。
0093名前は開発中のものです。
04/02/06 07:56ID:udrmR0AZ激 し く 同 意
C/C++しか選択肢がない環境に耐えられん
0094名前は開発中のものです。
04/02/06 10:41ID:9rUN+ZCnC++はまだ枯れてないような気がする。テンプレート周りとか。
0095名前は開発中のものです。
04/02/06 10:44ID:9rUN+ZCn>例のタスクシステムとか言ってるやつじゃないの
あれは、プロセス、タスク、スレッドとかそういう方向性の話題ですな。
OOとは直交してるんじゃない?だから、OOでタスクシステムを実装とか
いう話が出てくるわけだし。
0096名前は開発中のものです。
04/02/06 11:55ID:munvQzlF0097名前は開発中のものです。
04/02/06 13:45ID:2kOy7/ExC++はOOもできるPLだからね。
C#のテンプレート仕様は見えてこないし、
Javaのgenericsは必要以上にシンプルになっちまったし、
Dのテンプレートもあと一歩大事な所をサポートしていないし。
まあC++を語る前にModern C++ Designを読んで理解してみろって事だ。
0098名前は開発中のものです。
04/02/06 15:28ID:9rUN+ZCn強い型付けの言語は大変だってことで(それしか選択肢が無いからしょうがないんだが)。
0099名前は開発中のものです。
04/02/06 15:29ID:B3yi/0MJ0100名前は開発中のものです。
04/02/06 16:04ID:9rUN+ZCnなくなってくる)と思うけど。
まぁ、メモリ量が限られているプラットホームでは怖くて使う気にはな
れんが(コレも偏見かもしれん)。
0101名前は開発中のものです。
04/02/06 16:15ID:munvQzlFPCなら再起動してもらえばいいけどな・・・。
専用ハードなら自前でGC以上の機能実装くらいしてるべ?
同等機能じゃなくて、GCなくてもまったく問題ないアプリというか。
GCないと困るのは設計ヘボすぎだろう。ないと困る言語使用はしゃーないとしても。
0102名前は開発中のものです。
04/02/06 19:10ID:Qf4EMgr1仮にGCが必要だとしても
自分で実装するぐらいの人間じゃないとね
0103名前は開発中のものです。
04/02/06 20:07ID:2kOy7/Exもちろん直交してる。「C++なんて」っていう奴がOOと直交した他の概念を
知らなさ過ぎるという話。
C++テンプレートはもはやgenericの概念を超えた新しいステージに到達している。
これを利用できない環境へはもはや全面移行できないだろ。
0104名前は開発中のものです。
04/02/06 21:10ID:rZjCrBpy現状C++マンセーでOK?
先を見るならC#, Dあたりかな。
0105名前は開発中のものです。
04/02/06 21:28ID:91D2MlSNOOを極めるならSmalltalkとかへ
実用性を求めるならC++へ
0106名前は開発中のものです。
04/02/07 04:47ID:auC1MQXA別にここはスローガンを考える場所じゃないんだから
まともに中身話あおうや
0107名前は開発中のものです。
04/02/07 05:02ID:SE+Ndv37人によっては必死に見えるんだな。
0108名前は開発中のものです。
04/02/07 05:22ID:zYOhzQwHJavaなのにクラス使えない環境でOOを語るなということですか、そうですか。
すみませんでした。
0109とむ ◆0MTMwDpCZo
04/02/07 08:04ID:jNMJZ69v具体的にどういうJavaなのか見当がつかない…
0110名前は開発中のものです。
04/02/07 09:41ID:r/NTeXJu俺も良く知らんけど。
0111名前は開発中のものです。
04/02/07 10:15ID:lQqanSTJクラス使えなくてもOOはできるよな。
0112名前は開発中のものです。
04/02/07 10:16ID:WAwZesj40113名前は開発中のものです。
04/02/07 11:02ID:YKsHJP0FC++がいいとか、Javaがいいとか、そんな瑣末なこと
どっちでも大して変わらないよ。
0114名前は開発中のものです。
04/02/07 11:39ID:WraacF3/i503時代(10k制約)に研修で作ったけど>>110の言うとおり。
クラス定義を1つ追加しただけで何百バイトか食うから、
全部1つのクラスに納めてた。
でも今って100kくらいいけるんだよね?
>>113
それ業務PG時代にコボラからよく聞いたセリフだな。
// 多分、それらは「ほげ」と同じくらいパワフルなんだろうけど、
// どういうわけかふわふわしたおまけがいろいろついているんだ
0115名前は開発中のものです。
04/02/07 11:43ID:owOqNjeA俺も派遣で昨年まで開発してたよ>携帯ゲーム
中間コード30k制限ですた。。。
複数あったクラスは最終的に1つに。。。
0116名前は開発中のものです。
04/02/07 11:49ID:6BKQNL1Eそのくせポインタとか使えないからな。
かなり性質悪い。
0117名前は開発中のものです。
04/02/07 13:00ID:XhQQhGqKまったくだな。
Dならまだ分かるにしても(GC切れるし)、ゲーム用言語としてはあり得ない。
C#ならマルチプラットフォーム環境が整備されているだけJavaの方が遙かにマシだ。
0118名前は開発中のものです。
04/02/07 13:06ID:r/NTeXJu0119名前は開発中のものです。
04/02/07 13:46ID:XhQQhGqKこれからも、ある程度出来上がってきたら新バージョンが出て追いつけずの繰り返しになるだろう。
しかもGUIはWineを使ってるから、パフォーマンスは圧倒的に悪い。
ゲームなんて話にならない。
Windows専用言語だな。
0120名前は開発中のものです。
04/02/07 13:56ID:r/NTeXJuところで、GCについて一家言あるみたいだけど、どういう苦労しました?
0121名前は開発中のものです。
04/02/07 14:10ID:XhQQhGqKグラフィックは遅いけどWindows以外のC#よりは遙かに速いし、OpenGLを直接
触れるライブラリもあるし、いずれ標準に組み込まれるそうだ。
とは言っても、C#よりはマシなだけで激しい動きのあるゲームには向いてないね。
2行目は俺に書いてんの?
GCがある環境ならオブジェクトの廃棄を出来るだけ行わず、プーリングすると
言うのが定説だったと思う。
負荷にかかわらず、確実にGCを起こしてしまう命令があればいいのにね。
0122名前は開発中のものです。
04/02/07 14:16ID:cL0eBAjGjavaのSystem.gc()って、負荷次第で無視されるんだっけ?
0123名前は開発中のものです。
04/02/07 14:17ID:r/NTeXJuC#はWindows上ではDirectXが使えるので決行マシかもしれん(いろいろ問題あるらしいが)。
まぁ、実際のところゲームでマルチプラットフォーム性なんてだれも求めてないんだよね。
かろうじてWin/Mac互換の需要があるくらいか?
0124名前は開発中のものです。
04/02/07 14:45ID:WAwZesj4かなり重要なんだがな。趣味ならしらんが。
まあ、そもそもC#は駄目すぎだが。
C#なんて勉強する時間あるぐらいなら、他に有益なことたくさんあるだろ。
0125名前は開発中のものです。
04/02/07 14:50ID:XhQQhGqK無視と言うよりも、いつ起こるか保証されないんだよ。
先送りされる可能性がある。
>>123
Windows専用ならC++やD言語の方がいいんだよね。
ツールの類ならDelphiやC++Builderでもいいんだし。
そっちの方が速いし、DirectXだって使える。
だからゲームとしては問題外。
マルチプラットフォームを考えても問題外。
0126名前は開発中のものです。
04/02/07 15:11ID:auC1MQXAどういうときに先送りにされるんですか?
0127とむ ◆0MTMwDpCZo
04/02/07 15:47ID:jNMJZ69vいいや、明日やろうっと、明日明日」
という感じじゃないでしょうか。少なくとも私個人はそうです。
0128名前は開発中のものです。
04/02/07 15:55ID:xFHMm5Bmこんなのあったよ。
http://java.sun.com/docs/hotspot/gc1.4.2/index.htm
というか、バージョンや実装によっても違うらしいよ(調べたこと無い)。
0129名前は開発中のものです。
04/02/07 16:22ID:V9eb5XAy事実上、市場はPS2かGBAだけだし。間違いなく3年はこの状態、続くだろ。
マルチってなに?
0130名前は開発中のものです。
04/02/07 16:28ID:SE+Ndv370131名前は開発中のものです。
04/02/07 16:48ID:zR3V6VxB結局優れたひとつのプラットフォームで良いじゃんってことにならない?
複数のハードを作るコスト、複数のラッパを作るコスト
無駄だよなって思う。
0132名前は開発中のものです。
04/02/07 17:01ID:xFHMm5Bm話がループする、と。
0133名前は開発中のものです。
04/02/07 19:28ID:owOqNjeAなぜC++で組まないんでしょうか?
0134とむ ◆0MTMwDpCZo
04/02/07 19:56ID:jNMJZ69v想像するに、古参開発メンバーがまだC++に移行しきれてない、というのが
挙げられますが。
0135名前は開発中のものです。
04/02/07 21:51ID:KSnlgV93どのハード、あるいは流通形態が「優れている」かを誰が判定するの?
それは誰にも分からないから、各人が作った製品を市場に並べて、そこで
淘汰させるのが自由主義経済。頭の良い官僚が唯一絶対の規格を決めて、
国民全部従おうというのが計画経済(社会主義経済)なわけだが。
0136名前は開発中のものです。
04/02/07 21:59ID:xFHMm5Bmんでその弊害が>>132な。
0137名前は開発中のものです。
04/02/07 22:02ID:zR3V6VxBいや、そらもちろんそうなんだが理想論の話だから。
マルチプラットフォームのライブラリというか、
要するにひとつの統一開発環境を前提とするのなら
当然大部分は最大公約数的な機能中心に絞られるわけだから、
ライブラリの要件を満たすだけの機能、性能があればいいわけで。
結局何が言いたいかというと、各ハードウェアの旨みを消している部分も少なからずあるから、
マルチプラットフォームな展開はそれほど重要視するべきプライオリティを
持ってないような気がするということです。
0138名前は開発中のものです。
04/02/07 22:10ID:544SV5PK0139名前は開発中のものです。
04/02/07 22:13ID:xFHMm5BmそれがDirectXだという見方もあるな。実際に理想だったのかは見たとおり。
0140名前は開発中のものです。
04/02/07 22:17ID:CLQE2Fb+つか、もう、いい加減、とりあえずCDROM突っ込んだら
PS2だろうがGCだろうがXBOXだろうがとりあえず画質悪くても動けよ!
って感じするな。
音楽CDやDVDは規格が統一されてんのにな。
ハードウェア会社の都合でなんで俺等が苦労してんだよホント。
0141名前は開発中のものです。
04/02/07 22:18ID:xFHMm5Bm0142名前は開発中のものです。
04/02/07 22:24ID:V9eb5XAy残り5%がGC。残り1%(X箱、PS1、PC-Gameなど)
ゲーム業界では珍しく、安定期と言われてる。
おそらく最低3年間は、このPS2安定期が続く。
次世代X箱も来年末。
この次世代X箱が破竹の勢いでPS2市場を駆逐するという前提で3年。
できなければ、この安定期は4年、5年と続く。
任天堂の据え置き型次世代ハードに関しても、
先行発表どころか噂すらもない。
マルチプラットフォームなどという時代違いな考えでは
光栄のようなPS2に特化した無双シリーズのような高品質な
アクションゲームを定期的にリリースできない。
どこの制作現場もPS2のみで一杯。合間にGBAのラインを走らせる。
見事なバランスが取れた状態が、ここ3年続いてきた。
ハード乱立時代であれば賢明なマルチプラットフォーム戦略も
こう太平な時代ではかえって非効率で作業工程を増やすだけの摩擦に過ぎない。
0143名前は開発中のものです。
04/02/07 22:33ID:CLQE2Fb+開発者は使い捨てられる感じムンムンだなぁ。
PS2終わったらまた次世代ハードでチューニングがはじまるわけかな。
PCで利益出せてる会社って結構いいかもしれないな。
0144名前は開発中のものです。
04/02/07 22:38ID:CLQE2Fb+Win32API+DirectX覚えるだけで重宝してもらえるし。
次世代ハードになっても影響あんまりないからね。
0145名前は開発中のものです。
04/02/08 11:32ID:iHDErArfPS2だけでいいなんて理想論だろ。
GCとPS2なら圧倒的にGCのほうが性能上だし作りやすい。
市場がシフトし始めた時、GCのノウハウ持ってなかったらまずいって思わない経営者はDQN。
どうでもいいけどソニーのハードは
「これだけ性能がでます、チューンに何年かかければ」じゃなくて
「性能はそこそこですが、チューンしなくても最高性能に近い性能が出ます」にしてくれ。
誰もPS2の性能を使い切ったソフトなんぞ作りたくないよ。
0146名前は開発中のものです。
04/02/08 11:39ID:iHDErArfゲームプログラミング相談室【Part5】
の次スレはどこ?
0147名前は開発中のものです。
04/02/08 13:18ID:+0wSiskj0148名前は開発中のものです。
04/02/08 13:21ID:d5V45uuZ0149名前は開発中のものです。
04/02/08 13:53ID:x52VAobYで、PS2やGCから言うと、C++以外ありえない。
そもそもC#は永久に論外だけどな。
ただ、ライブラリレベルではマルチというか同じ言語であると事は重要。
あと、今、安定期っていっても、ハードメーカーに近い所なら、
次世代機の開発考えなきゃ駄目だろ。
とりあえず、旧世代機で作って、次世代機の開発環境が
上がってきたら移植するとかよくあるしな。
それを考えると、現在のプラットフォームは、
PS2/PS3/PSP/GBA/GBA2/NDS/GC/GC2/PC
こんだけあるわけだ。
まあ、どっちにしろC++しかないわけだが。
0150とむ ◆0MTMwDpCZo
04/02/08 16:03ID:nQNsRzkE機種ごとのマルチの話とごっちゃになってて、なんか変だと思った。
元は言語の話なんだから、現在コンシューマやるならC++一択だと思うけど。
「なんでC#にしないんだ」と言われても、無理言うなって感じですね。
0151名前は開発中のものです。
04/02/08 16:27ID:x52VAobYしかも、ハードの機能を限界まで引き出すためにマルチ不要とか
前時代的な事いわれてもなって感じです。
0152名前は開発中のものです。
04/02/09 10:29ID:JQNRuFI9PS2でいかに短期間で海外バージョンを出すのかが重要。
ようは、日本の終わってる市場から脱却し、いかに海外で売れる製品を作るか。
おまいら、そのへんの”海外版への移植性”はどうやってる?
メッセージとかNTSC/PALで表示領域かわったりとか。
0153名前は開発中のものです。
04/02/09 16:12ID:d+0/m1/D表示物買えて、画面更新時間と音楽が同期してるものは調整してたなぁ。
ゲーム自体はそのまま未調整で出してたよ。オレんとこは。
あんまプログラム技術は影響しない部分だと思われ。特に3Dでフレーム
レート可変で対応してるならば。
0154名前は開発中のものです。
04/02/09 19:58ID:utikgW720155名前は開発中のものです。
04/02/09 22:10ID:Y3tNdlHb可変フレームレートになると動きがぎこちなくなるというケースはありうるな。
0156名前は開発中のものです。
04/02/10 01:47ID:ek8/glPzだからゲーム部分はスローがちょっとかかっちゃうけどそのままで出してたよ。
2Dのやつは。
どうしても気になるものだけ調整だな。
0157名前は開発中のものです。
04/02/10 08:53ID:6dFSbsK0> あんまプログラム技術は影響しない部分だと思われ。
3D でもリアルタイムに生成したポリゴンを使ってると、意外とハマる。
たとえばエフェクトを出すときに
1. キャラクタの前フレームの肩位置、肘位置
2. キャラクタの今フレームの肩位置、肘位置
をつないで四角形を作ってるような場合、フレームレートが下がると
四角形が細くなったりさ。見た目だけならともかく、ヒット判定も
同じような形で取ってるとバランスが変わってしまうし。
0158おらうねや ◆TAPy3blMsc
04/02/11 14:55ID:NdfAhKc/秀才プログラマのOOして合理化を図ってみるという小物の神経を
理解できないわけよ。
頭わりぃーから、整理せずには、像を把握することができねーんだろ?
だせーな。
おまえらみたいな秀才的小物では、俺のような大器のこなす仕事に
ついてこれないどころか、俺にとって摩擦でしかないわけよ。
ぶはははははは。
0159名前は開発中のものです。
04/02/11 16:13ID:QSigb1RW0160名前は開発中のものです。
04/02/11 16:50ID:vy4NCtddみたいなのは確かに摩擦ですね
0161テスト ◆wSaCDPDEl2
04/02/12 12:10ID:VWLFcpbY0162名前は開発中のものです。
04/02/12 12:11ID:VWLFcpbYhttp://www.google.co.jp/search?q=%E2%97%86TAPy3blMsc&hl=ja&lr=&ie=UTF-8&oe=UTF-8&c2coff=1&start=0&sa=N
0163名前は開発中のものです。
04/02/12 12:22ID:cCljxmmn0164名前は開発中のものです。
04/02/13 23:38ID:zc5FzXzYOOマンセー
仮想関数マンセー でも手当たりしだい仮想関数にしないでください。お願いします。inline化出来ないんですよ堪忍してください。
template(ライブラリ含む)マンセー
operatorマンセー つかoperator newオーバーライドできない言語は用なしです。
perl pythonマンセー 補助的に使うツールをちんたらC/C++で書いてる奴死んでください。
PS2のピーク性能重視もマンセー DMAマンセー でももうちょっとキャッシュミスペナルティの低いメモリが乗ってくれるとさらにイイネ(SPあるけどね)
な俺は結構少数派?結構多いと思うんだけど。
ちなみに Vertex/PixelShaderは結構好きです。GCは触ったこと無いのでワカンネ。1TRAMは少しよだれが出る。
0165名前は開発中のものです。
04/02/13 23:44ID:zc5FzXzYs/オーバーライド/オーバーロード/
逝って来る。
あーでのDはいいかも知れんね。がんばれD。ちと語感が悪い気がするけど。
0166名前は開発中のものです。
04/02/14 00:08ID:ZUeMJPwJ普通の人
0167名前は開発中のものです。
04/02/14 08:22ID:j9jTKcQj0168名前は開発中のものです。
04/02/14 10:29ID:ihmEpotk仮想関数でも、呼び出し時にクラスが確定していれば(参照やポインタを
介して呼んでなければ)インライン化できるぞ。
0169名前は開発中のものです。
04/02/14 13:39ID:+HmXh1KM転送方向を切り替えるごときでCPUが介入しなきゃならないのは最低だ
てゆうか、データと転送方法コマンドは分離しろって感じ
なぜにあんなにグダグダな仕様にしますか?
ついでにDMAコントローラはDSPモドキにして、プログラマブルにしておけばいいのに
0170名前は開発中のものです。
04/02/14 23:35ID:tc0gf/zHネタはすでに一通りでてるだろうし、そういうのぶっちゃけて話せないかね?
0171名前は開発中のものです。
04/02/15 16:22ID:j4OVULQ7話せば? 俺は止めないぞ。
0172名前は開発中のものです。
04/02/24 00:22ID:lSzrmqAb■ このスレッドは過去ログ倉庫に格納されています