ゲームにおけるデータ構造・クラス設計・パターン2
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/05/23(金) 21:10:59ID:8M1gqhPXどのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。
関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
前スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1155209226/
テンプレ追加事項あったらよろすく
0092名前は開発中のものです。
2008/07/04(金) 05:56:42ID:KBN1fM3dこういう感情や危機感を抱く対等の存在は「その他の場」「その他の国家」
一個人は素直により良い「場」の恩恵を享受することができるわけで
情報交換にしたって英語圏MODコミュやゲームデベロッパーのコミュを
覗き見ることに何の拘束も受けないよ。このネットの時代にあって
国家の枠組みや物理的距離は、知的欲求や情報交換を阻害する
主要因では既になくなってるよ。特にアマチュアにとってはこんな恵まれた状況は
90年代半ば以前はなかったわけで、この期に及んで、より良い「場」に距離を感じ
コンプレックスをおぼえるならその正体は言語コンプレックスなんだよ
言語障壁にもがき苦しんで乗り越えたもん勝ち。がんばれ
0093名前は開発中のものです。
2008/07/04(金) 05:57:56ID:KBN1fM3dかぶったスマンコ
0094名前は開発中のものです。
2008/07/04(金) 06:11:54ID:KBN1fM3dネトゲでボイチャ。中毒性の低いFPSとかでVoIP対応してるやつがオヌヌメ
0095名前は開発中のものです。
2008/07/04(金) 06:28:19ID:KBN1fM3d既に数年前から顕在化しているという話をしたが、適当に日本語ソースをググッてきた
http://slashdot.jp/it/article.pl?sid=07/04/02/2312234
「知」が集まる国といえど開発規模の肥大化で苦しんでる様は日本同様
促成教育で動員された兵隊は待遇面でも基礎素養でも決して恵まれては居ない
理系大卒ないし中退程度の知識を持つ少数の変態テクノギークがブイブイ言わせていた
PC-FPS主流時代とは事情が違ってる
0096名前は開発中のものです。
2008/07/04(金) 06:32:14ID:ulIK/zsc日本は会社の枠に縛られず下請けやフリーのプログラマばんばん使って短期決戦、
海外は外部の人間は使わず自社内で十分な予算を確保してじっくり練り上げていく、
ってことらしいぞ。
むしろ海外の方が技術的には閉鎖的なんじゃないか?知らんけど。
少なくとも俺はよそのメーカーを手伝う機会が多いから日本が閉鎖的とは思わんな。
0097名前は開発中のものです。
2008/07/04(金) 06:58:00ID:KBN1fM3d0098名前は開発中のものです。
2008/07/04(金) 08:23:31ID:BChTVd/d>日本は会社の枠に縛られず下請けやフリーのプログラマばんばん使って短期決戦、
>海外は外部の人間は使わず自社内で十分な予算を確保してじっくり練り上げていく、
>ってことらしいぞ。
これは言えてる。
日本のホワイトカラーは、最上位の意思決定者と外注の中継地点にしか過ぎない。
地道な作業をしないことに価値を見出す役人根性が、世の中を席捲している。
0099名前は開発中のものです。
2008/07/04(金) 08:49:34ID:BChTVd/d以下を見ると、英語圏の方が日本よりも、アマチュアというかインディーズ(同人)市場が発展しているという印象を受ける。
ttp://www.gametunnel.com/
○ 絵(とくに3D)がきれい。
○ 音楽も一般受けする質の高いものが標準。
○ ゲーム中以外のシーン(デモ、オプション設定)が作りこまれている。
パーツを生産する能力は、上位企業の即戦力並だ。
ただし、ゲームとして楽しいのはあまりない気がする。
日本のフリーとかシェアは、ゲームとして楽しいのが少ない上、パーツも陳腐なデザインが多い(よくできたものもあるが)。
グローバルな金儲けには関心なく、村市場(コミックマーケット)で満足してしまっている奴が多いんだろうな。
0100名前は開発中のものです。
2008/07/04(金) 10:11:43ID:pYjEAjehRDBですか?それともタダのファイル?
0101名前は開発中のものです。
2008/07/04(金) 12:41:59ID:tMJHCBTqデータはファイルが多い。ゲームデータ制作ツールの仕様にもよるけど、バイナリファイルの場合が多い。
C構造体のバイナリダンプは実装が楽だからね。
PCゲーには、ユーザがテキストファイルを弄ってデータや設定を変えられるものもある。
0102名前は開発中のものです。
2008/07/04(金) 13:10:11ID:04Qw9LMa0103名前は開発中のものです。
2008/07/04(金) 15:33:28ID:eL1SAVRC>>100
某タイトルはSQLite使ってるな
0104名前は開発中のものです。
2008/07/04(金) 20:15:06ID:HsoNh4J4> 論文の質・量で言うとMicrosoft Researchのほうがすごくない?
同意。世間じゃGoogleを持て囃すのが流行ってるけど、むしろ
コンピュータサイエンスはMSRのほうがすごい研究者を集めてる。
0105名前は開発中のものです。
2008/07/05(土) 11:31:29ID:rip3o1Gr研究者の層の厚さだと IBM 強いよなぁ。
Google は R&D でも R より D 寄り。
0106名前は開発中のものです。
2008/07/05(土) 11:38:06ID:rip3o1Grまだ、主流は独自フォーマットのバイナリだと思うな。
CSV か XML っぽいフォーマットでデータファイル作っておいて、コンバータで
バイナリに変換して組み込み。
0107名前は開発中のものです。
2008/07/05(土) 11:38:38ID:Def2so2E0108名前は開発中のものです。
2008/07/05(土) 11:41:27ID:qX1NKMBA> ○ 絵(とくに3D)がきれい。
> ○ 音楽も一般受けする質の高いものが標準。
> ○ ゲーム中以外のシーン(デモ、オプション設定)が作りこまnれている。
ちょwwわかってかいてんのかよww
全部、投入できるリソースの違いで解決できるじゃねーかw
0109名前は開発中のものです。
2008/07/05(土) 11:44:02ID:qX1NKMBA絵がきれー、とか音楽すげーとかってなかなかないよ
それこそ、日本でたまに同人ですげえグラでバリバリ3Dなのがでてくる頻度並み。
たまにこれすげえ描き込みだ、とか思ったら現役プロの趣味作品だったり(日本かとおもうけど、海外の話だよ)
0110名前は開発中のものです。
2008/07/05(土) 11:44:46ID:qX1NKMBA0111名前は開発中のものです。
2008/07/05(土) 13:29:28ID:E9y2cnx1そもそも一国と世界を比べることに意味があるのかな。
言語障壁はローカルのコミュニティが栄えない理由にならないよね。
0112名前は開発中のものです。
2008/07/05(土) 20:57:12ID:UjEcMe9W>>109
>>99のリンク先のコンテンツを見た上で、のたまっているのか?
優れたリソースの利用可能性も、市場発展度合いの目安。
0113名前は開発中のものです。
2008/07/05(土) 21:01:08ID:rip3o1Gr0114名前は開発中のものです。
2008/07/05(土) 21:23:48ID:hYTfj9Xn0115名前は開発中のものです。
2008/07/06(日) 00:07:36ID:Gwo/Ylg2>>99
繰り返すが、趣味者の嗜好の差異が凄まじいと言っているだろう。
IGDA日本の新清士に代表される外国すげぇ日本だめ論のステロタイプアジテーターは
なぜ乱暴な単純比較して優劣を競おうとするのか、FPS大好きの俺でも理解に苦しんでいる
>英語圏の方が日本よりも、アマチュアというかインディーズ(同人)市場が発展しているという印象を受ける
>ttp://www.gametunnel.com/
ところでgametunnelはフリゲのダウンロード数、シェアウェアの販売数を公表してるか?してないだろ
特に後者について公表したらおそらくDLSiteの販売数を遥かに下回るんじゃないかと俺は読んでいる
(下半身産業が絡んで不公平になるので全年齢のみで比較してもいい)
>日本のフリーとかシェアは(中略)
>グローバルな金儲けには関心なく、村市場(コミックマーケット)で満足してしまっている奴が多いんだろうな。
だから、嗜好の差異が凄まじいと言っている。エロゲ塗り紙芝居ADVが大好きだから一生懸命作ってるアマチュアに
「グローバルな金儲けに関心もて」「今すぐFPS作れ」なんて言えるかい?毎日好きでもないものを延々作らされてる
腹いせに素人に因縁付けてるようで感心しないな。だいたいプロの何パーセントがグローバルな金儲けのために
真剣に取り組んでるよw素人に八つ当たりする前に自分の胸に手を当てて考えろっての。
あと、素人に即戦力を問う例のあのアジテーターも異常だ。10年以上前から新卒採用の新人に即戦力なんざ期待してない。
他業界同様、研修・実習・OJT、一から大事に大事に育て上げ戦力化している。N-88BASICマスターだろうがファミベの達人だろうが
ツクラーだろうがデザエモナーだろうがボードゲーム狂いだろうが等しくスタートラインから育て上げてる。それができる体力のない
弱小零細が新卒学生の即戦力がないだのと八つ当たりしてベーマガ2.0が要るだの喚いてるだけ。勝手に滅べと言いたい
0116名前は開発中のものです。
2008/07/06(日) 00:20:54ID:Gwo/Ylg2アマチュアゲーム開発者の嗜好が世界のガラパゴスと呼ばれても気にする必要なし。
趣味に独自文化が形成できるのは豊かさの象徴であって決して恥じるものではない。誇っていい。
エロゲ塗り紙芝居ADV作家は大挙してgametunnelに突撃するくらいの自信を持っていい。
世界に比類の無いコミケのような巨大なヲタ祭を村市場などと自虐に走る連中は無視しろ。
あんだけカネと人が動く趣味野郎の祭典が開けるのは豊かさと根暗パワーの象徴だ。誇っていい
0117名前は開発中のものです。
2008/07/06(日) 00:32:11ID:ADZbZeYtい気がするね。
昔から日本人は抽象的な概念は強いけど具体的な概念に弱いって言われ
てるって何かの本に書いてた気がしないでもない。
SEやらPGやってる人なら分かると思うけど「なんで?どういうこと?」っていう
のを突き詰めてちゃんと答えが出ないと気が狂いそうになる人じゃないとエンジニア
には向かないと思う。
まぁ外人云々じゃなくて正確か??
0118名前は開発中のものです。
2008/07/06(日) 00:33:49ID:Gwo/Ylg2この点だけは外国すげぇ日本だめ論を展開するアジテーター共の意見に一理ある。
お国柄のせいか虹派が多数派の我が国ではアマチュアプログラマに要求される
技術水準はそれほど高くはない。それはそれでいいのだが、その技術ガラパゴスの中で
タスクシステム知ってる俺tuee状態とかになっては格好が悪い。俺tueeする時はもっと
見識を広めたほうが良い
0119名前は開発中のものです。
2008/07/06(日) 00:34:25ID:Gwo/Ylg2かぶったスマン
0120名前は開発中のものです。
2008/07/06(日) 00:34:55ID:7QhD5OiR0121名前は開発中のものです。
2008/07/06(日) 00:42:02ID:Gwo/Ylg2現役開発者が質問に答えるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1214321147/l50
0122名前は開発中のものです。
2008/07/06(日) 00:44:51ID:VtZ5ywY1>腹いせに素人に因縁付けてるようで感心しないな。
感じやすいんだな。
一つ俺が言いたいのはさ、スキルがあるんだったら、
小規模ながらもグローバルな金儲け(変な言葉だ)に挑戦すること考えた方が、
面白えんじゃねえのってことだよ。
自身の嗜好に自信がないって?
じゃあ、そいつは一体何をやっているんだ。
0123名前は開発中のものです。
2008/07/06(日) 00:48:46ID:mek7cAwO0124名前は開発中のものです。
2008/07/06(日) 01:43:19ID:D1fZ4Z3GPG以外がこのスレに居るのかと問い詰める必要があるな
0125名前は開発中のものです。
2008/07/06(日) 07:26:44ID:XCulGsMF小さな会社でケータイゲー作ってる業界人です。底辺です。分かってます
俺も職場の仲間はみんなゲーム専門学校卒です。
英語とか読めないしGPGの日本語版も難しすぎてわからないので
や○う○おさんの本とかCマガのタスク記事が職場のバイブルです。
某スレでタスクシステムが馬鹿にされて自棄になってて
俺の職場のレベルが低いのはきっと日本の閉鎖性のせいだと
考えるようになってました。
だってPS3とか箱○のゲーム作ってるクライアント(大手です)は
自分たちのノウハウを俺ら底辺には絶対教えてくれないし。。。
発注したケータイゲーをおとなしく作ってろって感じの扱いです。。。
ぜんぜん頭よくなれそうにない知育ゲーとか糞つまんねー
クイズものばっかり作らされて気が狂いそうです。。。
0126名前は開発中のものです。
2008/07/06(日) 07:43:01ID:XCulGsMFベーマガがどんなものか実は知らないのですが日本の
アマゲーコミュニティがないから悪いって言ってたので
我が意を射たりって感じでした。
土日スレで投稿してましたがいつも荒らされてました。
PCゲーム板のフリゲ厨とか氏ねと思ってました
俺は今もDirect3Dとかわけわかんないです。そういうのを
教えてくれるベーマガみたいなものに出会えなかったから
ファミ通の特集記事のゲーム専門学校すごいと思って
高校の先生の反対を押し切ってゲーム専門学校に行きました。
でも専門学校の講師も3D苦手でした。
おまえらには3D無理だから2Dで卒業制作作れって言われたので
言う通りにしました。今思えば先生が分からないもの作られると
質問されても答えられないから嫌だったんだと思います。
ゲーム専門学校に行ったことをすごく後悔してます。
ファミ通氏ねと思いました。きっとベーマガがあれば俺の人生
違ってたかもと思いました。やっぱおまえらが悪い
0127名前は開発中のものです。
2008/07/06(日) 07:59:00ID:XCulGsMF消えます
0128名前は開発中のものです。
2008/07/06(日) 08:43:38ID:S3/2UtrA明らかに躁鬱の傾向が見て取れる。
過度のストレスで脳に器質的な損傷が出来てるかもしれん。
0129名前は開発中のものです。
2008/07/06(日) 09:01:33ID:VtZ5ywY1何も語れない馬鹿よりはマシ。
0130名前は開発中のものです。
2008/07/06(日) 09:28:24ID:I4JuM7130131名前は開発中のものです。
2008/07/06(日) 10:03:51ID:4WjvpweZさすがにそれはねーよw
スレ違いでも知識をひけらかすほうが賢いと?
まあ、あまり過疎ってもらってもつまらんのだが・・・
0132名前は開発中のものです。
2008/07/06(日) 13:03:17ID:cXpJQpiz0133名前は開発中のものです。
2008/07/06(日) 15:04:16ID:ZiAdcqL1ギャルゲひっさげて殴り込んで欲しいリア充外人サイトがあると聞いて
0134名前は開発中のものです。
2008/07/06(日) 16:19:57ID:le8Gr2pO0135名前は開発中のものです。
2008/07/06(日) 16:49:47ID:NhLrwJLQ日本の企業は総じて、コミュニケーション能力だのなんだの
わけのわからない能力やノウハウを好んでそれを要求するくせに
それらを他人に教えるようなことはしないからな、ヒントすらも
異常なほど排他的だ
数年前に某大作RPGの下請けの社長様が
「3Dできる奴なんて腐るほどいる死ね、コミュニケーション能力のない奴は死ね」(意訳)
って新聞記事に載せてたの思い出した
笑える、うひゃ
0136名前は開発中のものです。
2008/07/06(日) 17:01:01ID:a3zGOuXrあーあ
0137名前は開発中のものです。
2008/07/06(日) 17:06:30ID:NhLrwJLQレイヤスーパータイプは
class Devicer { static Device device; }
で、スーパークラスとしてDevicerを使うことだ覚えとけ
Application Controllerは
class AP {
View GetView(入力と状態値);
Command GetCommand(入力と状態値);
}
引数に入力情報や状態を判断する値を入力すると
それに適したViewやModelに対するCommandを返すものだ
覚えておけ、クソども
0138名前は開発中のものです。
2008/07/06(日) 17:44:48ID:bleemPMj0139名前は開発中のものです。
2008/07/06(日) 22:29:37ID:mQf6Jrcq良いこというなぁ。
禿同。
社長に。
0140名前は開発中のものです。
2008/07/06(日) 22:41:15ID:NhLrwJLQジャンルにもよるが大抵のゲームで使うシーンは、多くてもせいぜい十にも満たない数だ
この規模の小さい状態遷移を、そのまま適当に実装してもとくに肥大しない
後で追加が頻繁に発生するとも思えない、適当に修正しても特に難しくはならない
こういう部分に、色々な知恵を絞ったコードを書くことに意味はない
逆にそのクラスの為に他の部分にしわ寄せが行って、
難しいロジック部分や画面描画部分に関係のないシーン遷移のコードが入り込む
無駄に依存関係が発生し複雑になる、遷移するためのコードが分散して修正が難しくなる
やるんだったら他の部分に影響を及ぼさない程度にしておけ
無意味に分断しすぎて複雑にするな
0141名前は開発中のものです。
2008/07/06(日) 23:15:17ID:bOQhFRQWめんどくさいのは、シーン遷移よりキャラクターの状態遷移だよな。仕様変更が
わりと発生しがちな部分だし。
0142名前は開発中のものです。
2008/07/06(日) 23:34:33ID:NhLrwJLQ同感だ
そういう箇所に擬似コルーチンを使ってる
前はState使ってたが、あれは追加には強いが変更に弱いな、複雑になって死んだ
単純ならそのまま状態変数で適当に書いてもいいが
コルーチンのほうが書いてて楽しいな
0143名前は開発中のものです。
2008/07/06(日) 23:47:58ID:bleemPMj0144名前は開発中のものです。
2008/07/07(月) 00:57:38ID:FUQ1BpEu浅学な俺にコレについて詳しく
0145名前は開発中のものです。
2008/07/07(月) 04:37:03ID:ohkg3t4w以前けっこう調べた俺がコレについて詳しく
コルーチン
並列実行をさせない(できない)スレッドのこと。外国人はコーディングの際 coro と略すこと多し。
メリットは、排他処理が不要、ネイティブスレッドに比べてコンテキスト切り替えが軽い(もちろん実装次第だが)。
デメリットは、切り替えタイミングをプログラマが指示する必要がある、CPUがデュアルコアでも恩恵が受けられない。
最近ゲーム関係でよく聞くようになったが、アルゴリズム的にはすんごく昔のクヌース本にも載っているらしい。
マイクロスレッド、協調的マルチスレッド、ファイバー(Windowsのみ)、などの言い方があるが、
ゲーム業界ではコルーチンが一般的かな?
ネイティブスレッドではないので擬似的なスレッドと言えるが、「擬似スレッド」という呼び方は
よく混乱を招くようなのでお勧めしない(後述するように、スレッドを擬似的に再現する手法は他にもある)。
Cで実装する場合は、たいてい手動でスタックポインタを切り替えることで実現する。
主な実装:
アセンブリで実装:作成難度高、コンパイラ依存、移植性なし、使い手にもスキルが必要(スタック溢れ対策など)
大域ジャンプで実装:作成難度中、コンパイラ依存、やや制限がある
スクリプトで実装:スクリプトのVM(例えばLuaやSquirrel)に任せる。使うのは簡単で制限も少ない
擬似コルーチン
コルーチンっぽいことを擬似的にやること(を、>>141は言っているのだと思われる)。
主な実装:
マクロで実装:作成難度低、移植性高い、制限多い、読み手には超分かりずらい
感じを掴むには、LuaかSquirrelでコルーチンを触ってみるのが一番手っ取り早いと思う。
以下は直接関係ないので、混乱するようなら読み飛ばして。
・昔のMacOSやWindowsで言うところの「プリエンプティブでない」マルチタスクの仕組みは、コルーチンの親戚。
・RubyやPythonのスレッドも、一般的な実装ではネイティブスレッドではなく擬似的なスレッドらしいが、
明示的にコンテキスト切り替えを行うわけではないのでコルーチンとは異なる。
Javaではこのような擬似的に実装したスレッドをネイティブスレッドに対してグリーンスレッドと呼ぶ。
0146名前は開発中のものです。
2008/07/07(月) 07:19:25ID:1RaeXbIYif (frame <= 100)
GoToLeft();
else if (frame <= 200)
GoToRight();
:
以下延々とつづく
コルーチンを使った場合
for (i = 0; i < 100; i++)
GoToLeft(); yield;
for (i = 0; i < 100; i++)
GoToRight(); yield;
:
0147名前は開発中のものです。
2008/07/07(月) 07:20:47ID:1RaeXbIYfor (i = 0; i < 100; i++) {
GoToLeft(); yield;
}
for (i = 0; i < 100; i++) {
GoToRight(); yield;
}
:
0148名前は開発中のものです。
2008/07/07(月) 07:24:44ID:1RaeXbIY0149名前は開発中のものです。
2008/07/07(月) 08:00:36ID:FUQ1BpEuそれなら一応分かるような気がしないでもない
でもC++じゃあ無理だよね・・・
0150名前は開発中のものです。
2008/07/07(月) 08:00:37ID:0ql4peFo0151名前は開発中のものです。
2008/07/07(月) 09:17:09ID:1RaeXbIYネイティブに落とされる言語だと実現するにはコンパイラ依存になるんじゃないのかなあ?
スタックいじるし。
>>150
Windows用語ではそうかと。
てか、要点は>>145に書いてあるなw
うまいまとめだ
0152名前は開発中のものです。
2008/07/07(月) 10:04:53ID:BeipJAsvsetjmp()でコンテキストを保存したあと、保存したコンテキストの
スタックポインタとリターンアドレスを書き換えてlongjmp()で戻すだけ。
C++だけで実装可能だぞっと。
0153名前は開発中のものです。
2008/07/07(月) 13:31:17ID:yE1V62Scスレッド(糸)より細いものだからファイバ(繊維)
あとJavaScriptにも1.7から導入されてるぜい
0154名前は開発中のものです。
2008/07/07(月) 22:11:23ID:oT4ePMXj0155名前は開発中のものです。
2008/07/07(月) 22:26:27ID:yE1V62Sc0156名前は開発中のものです。
2008/07/07(月) 22:30:56ID:nV3j1Oo/0157名前は開発中のものです。
2008/07/07(月) 23:47:06ID:ZC8HSbxq0158名前は開発中のものです。
2008/07/08(火) 00:00:56ID:2Ffcfnsn0159名前は開発中のものです。
2008/07/08(火) 01:20:29ID:DPfKtgJc常にメインループ内で、オブジェクトの描画、行動、当たり判定が行われてる。
また一方で、オブジェクト発生イベントのリストを持っていて、
順次、メインループにオブジェクトが登録されていく。
この「オブジェクト発生イベントのリスト」はシーンに相当していて、
シーンを切替えたければ、今登録されているオブジェクトを破棄して、
イベントのリストを差し替えるだけでいい。
while (1) {
for i=0...
{
オブジェクト[i]->行動();
オブジェクト[i]->描画();
オブジェクト[i]->当たり判定();
}
イベント発生()
}
0160名前は開発中のものです。
2008/07/08(火) 17:13:03ID:8FRUZW5mPACに似てるが違う、オブジェクトの追加に強そうだが
そのメリットの恩恵が受けられない場合に死ぬほど複雑になる予感
ドメインロジックのテストを行うときにビューが関わってくる
逆にビューのテストを行うときにドメインロジックが関わってくるため
テストに多大な労力がかかる事が予想される
常にプログラム全体をテストしなければならないため、試行錯誤すると死ねる
render target等の処理が俺にはすぐに思いつかない、よって3Dには不向き
2Dにしても描画に関する処理が単純でなければうまく動かないだろう
規模が小さいプログラムを無駄に複雑にしてすごそうに見せたい人にお勧め
または、意味もなく多機能オブジェクトをリストに突っ込んで管理したい人にお勧め
私はお勧めしない、追加のメリットが多大である場合は考慮に値するが
ゲームには不向きだと思う、特に3Dの場合は
俺は怖くて使えない
0161名前は開発中のものです。
2008/07/08(火) 17:19:39ID:8FRUZW5m追加
リソースの追加が障害にならなければロジックのテストは問題ない場合もある
やるんだったらそんな半端な構造ではなく
関連まで含めて、PACアーキテクチャ使った方がよくないか?
0162名前は開発中のものです。
2008/07/08(火) 22:56:21ID:8FRUZW5m今持ってる手で四つ
1.擬似コルーチン
2.スレッド
3.スクリプトで隠蔽したスレッド
4.通常の状態変数による管理(State含む)
設計が明確でない初期のもの、プロトタイプ
又は小規模な場合の初期のとりあえず書いておくコードに向いているのは
擬似コルーチン又は状態変数だろう
まだ設計方針が明確に決まっていない場合や試行錯誤しなければならない状態で
スレッドやスクリプトの導入を決めるのは早すぎる、リスクが大きい
ある程度、方針が固まってから適切なものを選択するのがいいだろう
状態変数での管理が大手を振っているのも
初期コストが低いという部分が大きい
このため、状態変数やState以外の選択肢は簡単には普及しないだろう
ただし、スレッドの積極的採用が処理速度向上に繋がるのならその限りではない
0163名前は開発中のものです。
2008/07/08(火) 23:04:46ID:gy2iNnCl0164名前は開発中のものです。
2008/07/08(火) 23:41:41ID:8FRUZW5m擬似じゃなくていいのか、訂正
1.コルーチン、又は擬似のそれ
言語仕様に含まれてるときはそのままコルーチンとして呼び出し
c/c++の場合は以下のものが使える、又は自分で作る
http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
それ以外なら
ソースコードを変換するプログラムでも作る
gotoやthrowやswitchやラベルなんかが含まれない言語では無理、又は面倒くさい
0165名前は開発中のものです。
2008/07/08(火) 23:46:18ID:iq4s5004ttp://www.xmailserver.org/libpcl.html
0166名前は開発中のものです。
2008/07/09(水) 01:10:17ID:vZNCPgy9すんごい便利そうなんだけどなぁ・・・
0167名前は開発中のものです。
2008/07/09(水) 07:23:21ID:eQNI5n3rよっぽど安全で楽だと思うけどな
0168名前は開発中のものです。
2008/07/09(水) 09:40:38ID:nYED4jrhスレッドっていう言葉は聞いたことあるが、実装手法は、全く聞いたことが無いな。
>小規模な状態遷移の実装
>>146のような、行動予約の状態遷移を前提にしているのかな。
だとしたら、もっぱら自分は、C++で、
>4.通常の状態変数による管理(State含む)
と動作制御用独自スクリプトだな。
基本は、ゲーム開発で言うところのタスクシステムで処理。
各オブジェクトは、単一クラス中に、状態ごとに処理関数(メンバ関数)を用意する。
フレーム毎に、その時点の状態に該当する処理関数を、1回ずつ呼び出す。
その関数中で、動作制御用独自スクリプトの解釈処理も行い、適宜、処理関数を切り替える。
状態毎の処理関数は、メンバ関数ポインタ配列を通じて、インターフェースを切り替える。
動作制御用独自スクリプト解釈込みの処理関数を、継承用テンプレート・クラス中に実装。
表現くどいけど、悪しからず。
0169名前は開発中のものです。
2008/07/09(水) 17:57:35ID:7MZGZOjkタスクシステム総合スレ part2
http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/l50
おまえらタスクシステム信者がクソでカスでゴミクズな理由は
自分が書いてるコードにどんなメリットとデメリットがあるかを理解できてないところだ
または、それを考えようとしないところだ
ただ使えばいいと思い込んで、それで完結している
考えることを放棄したおまえらに設計能力を向上する機会はない
戦略のない戦術はただのテロだ
0170名前は開発中のものです。
2008/07/09(水) 18:38:12ID:vZNCPgy9なんでそんな暴言が吐けるの
0171名前は開発中のものです。
2008/07/09(水) 18:47:18ID:vvjjLorCなんかそういうgdgdな経緯でもあったんだろうな
0172名前は開発中のものです。
2008/07/09(水) 18:55:55ID:nYED4jrhhttp://pc11.2ch.net/test/read.cgi/gamedev/1215129226/4n
0173名前は開発中のものです。
2008/07/09(水) 18:56:55ID:iC3IHDcBゲーム業界の造語みたいなものだからな。
OS屋に言わせると「なにそれ?プ」というものらしい。
まあ一定60FPSとか30FPSといったフレームで常に動いてて
物の動きとか制御してるのがOSがタスクを処理してるのに見えるから
そういう風に業界の人間かゲーム評論家か自称ゲーム評論家の素人
が言い始めたのそもそもらしい
0174名前は開発中のものです。
2008/07/09(水) 19:21:37ID:eQNI5n3rしょうがないからその辺の単語は誤魔化して話進めてくれ
いつまで経っても話進まねーからな
0175名前は開発中のものです。
2008/07/09(水) 19:22:14ID:anjhk7B80176名前は開発中のものです。
2008/07/09(水) 21:10:22ID:7MZGZOjk言ってる奴が、メリットもデメリットも把握していないんだから
ただ難しそうな言葉が並んでいるだけで、それ以上の意味はない
宇宙の力がイオン水に影響を与えてゲーム脳がゲルマニウムパワーに還元されるんだよ
誰かこれを理解してみろクソが
0177名前は開発中のものです。
2008/07/09(水) 21:12:45ID:iC3IHDcBまあ俺的にはそんな何とかシステム(自称)はどうでもいいよ。
市販のゲームでも売り出す際は自称xxxシステム採用とかいう
元からそういうの好きな業界だし。
0178名前は開発中のものです。
2008/07/09(水) 21:30:52ID:4OXXlyYN少し落ち着けよw
>宇宙の力がイオン水に影響を与えてゲーム脳がゲルマニウムパワーに還元されるんだよ
お前はこういう事を言うやつに馬鹿だのアホだの必死に噛み付くのか?
俺はスルーするけどな
0179名前は開発中のものです。
2008/07/09(水) 22:16:56ID:EYwlC03l端からはただのバカにしか見えてないけどね。
0180名前は開発中のものです。
2008/07/09(水) 22:19:25ID:SF8ehHxO>OSがタスクを処理してるの
ってどんな実装してるの?
0181名前は開発中のものです。
2008/07/09(水) 22:22:48ID:uQp1o0/nリアルタイムOSとか便利なもんがなかった時代の組み込みシステム開発に
起源があるような気がする。
まあ、C++で真っ当にオブジェクト指向やってれば、こんな古臭いもんを
有難がる必要はないと思う。
0182名前は開発中のものです。
2008/07/09(水) 22:23:19ID:iC3IHDcBそりゃ・・・その辺はがんばって勉強して
キューだとかスレッドだとかタスクだとか
タイムスライスだとか
まあ同時に複数のものが動いてる(ように処理してる)風に出来るものかな
乱暴な言い方だけど。
0183名前は開発中のものです。
2008/07/09(水) 22:24:41ID:7MZGZOjk君らのレベルから比較して自分のレベルがどの程度低いのかがよくわかった
有益だったぜw
また暇なときに挑発に乗ってやる
この完璧な捨て台詞を覚えておけよ
0184名前は開発中のものです。
2008/07/09(水) 22:48:57ID:XmNOce7Z巣に帰れとか言うけど、君の方がタスクシステムスレの流れを持ち込んでるようにしか見えない。
感情的にならずに、なぜいけないのか説明すればいいだけだと思うよ。
会社でタスクシステムで組みたいと同僚が言ったとして、
烈火の如く怒っても、自分が不利になるだけじゃなく、なぜ駄目なのかを分からせることも難しいだろ。
ここは、「現代的な設計ではそれは無い。なぜなら・・・」と話を進めるべきじゃないかな。
0185名前は開発中のものです。
2008/07/09(水) 23:14:23ID:nYED4jrhなんというか、要するに、
ただの孤独なレス乞食。
もしくはタスク・スレへの誘導係。
マンネリだな。
効率的な挑発方法については、再考した方がいい。
0186名前は開発中のものです。
2008/07/09(水) 23:17:00ID:md3RJLJr0187名前は開発中のものです。
2008/07/09(水) 23:26:06ID:30d6bQh7以前より良い設計ができない上に、収集がつかなくなった。
svnさんにお願いして、前のリビジョンに戻る日が近くないことを祈るばかりだ。
0188名前は開発中のものです。
2008/07/09(水) 23:50:08ID:XmNOce7Z0189名前は開発中のものです。
2008/07/10(木) 00:33:17ID:rFEYqRAa神は自らタスクる者をタスク。
0190名前は開発中のものです。
2008/07/10(木) 00:51:19ID:A+tXgG+Vタスクスレの話題を続けるのはよくなさそうなので情報だけ
http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/456
OSだからできることを思いっきり使ってるんで
管理手法以外はあまり参考にならんよ。
OS自体に興味があるならOS板にいくといいよ
0191名前は開発中のものです。
2008/07/10(木) 00:54:31ID:MjVgJsdw■ このスレッドは過去ログ倉庫に格納されています