トップページgamedev
1001コメント504KB

タスクシステム総合スレ part5

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/02/19(木) 02:21:01ID:k4ODtuXP
タスクシステムについての議論、相談、質問、雑談などのスレです

part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/


・タスクと呼ばれる実装は、非常に多岐に渡ります
 古典タスクシステムについての話題は「>>2」と明示してください
 そうでない場合はカスタム版タスクであることを明示してください

・人を憎んで言語を憎まず
0439名前は開発中のものです。2009/03/01(日) 21:24:04ID:1CyuAS5Y
どんな環境でもポインタで参照渡し使った方が軽いし、コード記述量も減るというのに、
彼のとった選択肢は"ポインタは分かり辛いから使わない"だとさ。
だったらCやめればいいのにと思った。
0440名前は開発中のものです。2009/03/01(日) 21:24:27ID:aHmLTao6
>>438
前に ACM Newsletter か何かで読んだが、教育レベルとか計算機環境に
よらず、一定割合でプログラミングがダメな人は存在するそうだ。

いい大学の CS に入ってくるような人間でも、適性ない人間はどうにもダメ
らしい。

0441名前は開発中のものです。2009/03/01(日) 21:25:01ID:aHmLTao6
>>439
っつか、ゲームプログラミングやめれば良いのにな。
0442名前は開発中のものです。2009/03/01(日) 21:34:18ID:bNWlMx7s
>>435
読めばよい
0443名前は開発中のものです。2009/03/01(日) 21:38:28ID:XFHzOPV1
>>431
#include "Tasksystem.h"
#include "reference_structure_macro.h"

このヘッダがzipに入ってないね。
0444名前は開発中のものです。2009/03/01(日) 22:03:38ID:1CyuAS5Y
このスレ見て、身の回りのいろんなPGを見ていて思うに、
ゲームプログラマには、大別してクリエイター型とエンジニア型が居ると思うわけよ。

■クリエイター型(C型)
ゲーム製作を美術・芸術・メッセージ表現の一種と捉え、作品の完成を目指して鍛錬する。
ゲームが完成することを最終目標としているために、エンジニア型に対して結果が全てと見下している。
ゲームとしての表現力を増すのような技術がローコスト(手間要らず)で導入であれば積極的に採用したいが、
ゲーム製作において足枷になるような技術については、嫌悪する傾向がある。
駆け出しの頃はスクリプター寄りの傾向。将来的にはPDに向いている。
プログラミング能力は低いので他業種での潰しが利き辛い。

■エンジニア型(E型)
ゲーム製作を自己のプログラミング能力向上のための試金石と捉え、ライブラリの完成を目指して鍛錬する。
フレームワーク作りに熱中し、何時まで経ってもゲームは完成しない。
新規技能・技巧をいち早く取り入れる風潮があり、汎用性・完成度・移植性などを重視する傾向がある。
技術的に稚拙なクリエイター型について、プログラム知識の無さに嫌悪することがある。
駆け出しの頃はライブラリ製作+サンプルゲームを作る傾向。将来的にはメインPGに向いている。
プログラミング能力が高いので他のSE業種に移行しやすい。
0445名前は開発中のものです。2009/03/01(日) 22:04:44ID:1CyuAS5Y
で、今までのレスの流れも見ていて、ここからは完全に独断だが、
アンチタスク派は、ずっとC型でPG経験の浅い若年層が多い気がする。
・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
・プログラム技能が未熟で、TCBなり、関数ポインタによるスケジューリングを理解できない/扱えない。
・実際にタスクシステムを使ったコーディングに従事したことがあり、タスクシステム特有の束縛された記述方法に嫌悪感を示す。
・ただタスク派をおちょくって遊びたいだけ。

一方、タスク派は、ずっとE型でPG経験の長い壮年層が多い気がする。
・OOP時代を迎え言語もコンパイラも発達し、タスクが過去の遺産であることを認めない。未だにタスクシステムをプロの技巧と賞す。
・タスクによるスケジューリングが完全汎用であると勘違いし、これを理解できない人を煽る。
・ゲーム内容の実際の記述において、タスク管理によるコーディングがどれほど厄介なのか理解できない。
・ただアンチタスク派をおちょくって遊びたいだけ。

と見ている。

個人的には、中庸が一番。
始めはE型で自作ライブラリが完成してから、C型に移行するプログラマーが理想なんだがね。
もしくはPG2名で完全分業し、E型がライブラリとスクリプトを提供して、C型がゲーム内容を記述するのでも良いと思ってる。
0446名前は開発中のものです。2009/03/01(日) 22:59:06ID:aHmLTao6
>>445
> ・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
若者でも、/* You are not expected to understand this */ とか読んだことあれば
十分だよ。
0447名前は開発中のものです。2009/03/02(月) 01:17:33ID:Ggk4JG/+
>>442
>432
> 嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?
0448名前は開発中のものです。2009/03/02(月) 02:04:32ID:qNJJjYLT
実際にタスク改みたいなシステムでゲーム何本か作ったことがあれば
いろいろあれの欠点で苦労するから純粋なタスク信者ってのはありえないけどね。
でも単純なアンチってのもまた無い。

ジャンルや環境によっては今でも十分使い物になるから。というか今の携帯機クラスの性能のゲーム機で
動いてるゲームのかなりの数がいわゆるタスク改で実装されてる。
それに純粋なタスクシステムの欠点はそれぞれ回避方法があるので使い分けができる。

ジャンルによってはタスク改ではない違う作り方のものもあるけど、アクション系ではいわゆるタスクの進化系以外の
実装はあんまりお目にかかったことが無いな。
少なくとも日本産に限っては。海外産はあんまりソース見る機会無いから知らんが…
0449名前は開発中のものです。2009/03/02(月) 07:26:29ID:N5eJa8sN
ぜってーそんなことねぇよ(笑)
こんなマイナーシステム普通使わねぇだろ
0450名前は開発中のものです。2009/03/02(月) 15:49:57ID:2YZpDjg8
ミニゲーム集みたいなゲームだとタスクシステムは向いてると思うけどね
同じインターフェースで全く遊び方の違うゲームを数十個つくらにゃいけない場合とか
一つ一つにかかるコストを大幅に削減できる
0451名前は開発中のものです。2009/03/02(月) 17:55:09ID:N5eJa8sN
向いてねぇよ
ごった煮だから弾の処理で何が呼ばれててもおかしくない
ということは弾だけなにかほかに使おうと考えても
ソースの癒着が酷くて切り出して使うということはできないというわけだよ
わかったかね
0452名前は開発中のものです。2009/03/02(月) 18:02:00ID:hIPGPAIG
よく>>451見たいな書き込みを見るけど
タスク間のアクセスはタスクシステムが間に入るから
癒着がひどいっておかしくないか
0453名前は開発中のものです。2009/03/02(月) 18:16:36ID:N5eJa8sN
それじゃなんのためのごった煮なの?
どこからでも呼び出したかったんじゃないの?
つまりそれは、すべてを呼び出している可能性だってあるということだよ
だってそのためにごった煮にしたんでしょ?
ミサイルのターゲットをポインタの保持で解決したかったんじゃないの?(笑)
0454名前は開発中のものです。2009/03/02(月) 18:25:42ID:hIPGPAIG
例えば全てを呼び出してるとして
ミサイル以外のタスクをソースから排除しても
ターゲットが見つからずにまっすぐ飛んでくだけでしょ
ターゲットのポインタなんて抽象クラスへのウィークポインタか
インクリメンタルIDのどっちかだし
0455名前は開発中のものです。2009/03/02(月) 18:33:27ID:N5eJa8sN
そんな話してねぇよ馬鹿
全部呼び出せるってことは全ヘッダーファイルが必要になるってことだろが
それとも今更カプセル化守って弾のクラス内には他のゲームオブジェクトは一切入ってこない
って方向転換するか?それでもいいぜ(笑)
0456名前は開発中のものです。2009/03/02(月) 18:48:04ID:hIPGPAIG
なんで全部呼び出せるなら全ヘッダーがいるんだ
派生先のポインタが欲しければ各自でキャストすればいい
それが嫌ならビジター作ってタスクシステム内のタスク全部なめればいい
なんで弾のクラス内に他のゲームオブジェクトが入ってくるんだ
そんな話出てきたか?めんどいんで方向転換ってことでいいです。
0457名前は開発中のものです。2009/03/02(月) 18:56:46ID:N5eJa8sN
キャストするにはだな・・・え〜そっから〜(笑)
さすがにそのレベルはかつてないな(笑)
0458名前は開発中のものです。2009/03/02(月) 19:19:04ID:hIPGPAIG
いやあ俺馬鹿だからさ優しく教えてよw
0459名前は開発中のものです。2009/03/02(月) 19:32:05ID:Rv93cI1M
>>457
面白いからもっとやって(笑)
0460名前は開発中のものです。2009/03/02(月) 19:36:16ID:wHsdSnqf
俺も見てるよ。面白い展開になりそうだからもっと熱く語り合ってほしい(笑)
0461名前は開発中のものです。2009/03/02(月) 19:57:05ID:VFyVP2iT
まだごった煮言ってるのかw
なにも進歩ないなw
0462名前は開発中のものです。2009/03/02(月) 20:14:04ID:iymFeNpw
キャストするクラスのヘッダーだけでいいだろ?
全部は必要なくね
0463ID:EEKBitmg2009/03/02(月) 20:44:58ID:0jBbfc+e
>>444-445
C型なのかな。肝炎みたいだね。「おまえの場合は脳炎だろ」とか言われそうだけど

助教授に言われたことがある
『例えばお前が作ってるゲームなんてものは技術的には枯れた要素技術の集合体であり
CASEツールで機能分析すれば、その大半は汎用のコンポーネントを結合したものとして
表現される。』と

『開発工程全体を見たとき、お前はおそらく遊び・面白さの部分を煮詰める反復作業に
 時間の多くを費やしているのだろう。ならば、ワークフロー・データフローの設計も
 そこを優先するだろ常識的に考えて。与えられてる状況(道具、人、時間、etc)にあわせて
 構造化設計すれば、最終的な結論はH**は神言語となる。わかったな?』

私は心を打たれた。この人はC型のようなE型のようなH型だ

助教授はいわゆるベーマガ世代というものらしい。本人に言わせれば『PIOとかRAMとかテクノ(何とか)を
知らないようなガキにベーマガ世代とか言われるとイラっと来る』ということらしいけど、まぁとにかく
そういう世代らしい

助教授にタスクシステム(>>2)のページを見せた。反応は「組み込みシステムを劣化猿真似してるのか」
みたいなかなり淡白なものだった
『ワークRAMが少ないゼッパチマシンでこんな贅沢な組み方してたのか?』
『70年代にこれやってたって本当か?』『メガドラとか16ビットのアーケードゲームの話じゃないのか?』
と聞き返された。そんなことは厨の俺が知るはずもないし答えられるはずもなかったから
「だってこの人(LogicianLordの人)がギャラクシアンはこうだって言ってるからそうなんじゃないすか><」
と知能障害・思考停止な返事をしたら『ふーん。あっそう』と言われた

むかつく。誰か教えて
0464ID:EEKBitmg2009/03/02(月) 21:27:36ID:0jBbfc+e
『当時は毎月、目を皿のようにしてマイコン雑誌を読み漁ったが"タスクシステム"なんて言葉は見た記憶無いな』
『俺にとっては雲の上のプロプライエタリな世界だったから。そういうプロの世界の隠語なのかな。』
『しかし30年以上経過して陳腐化したからって吹き出物みたいに今更出てきても仕方ないだろこんなもの』
『PCでさえベクトルプロセッサ化したビデオチップにマルチコア化したCPUが普及した現代においてこんな一本道の
 逐次処理コードを使ってたんじゃハードは遊び放題だな。お前らのゲームボーイ(←DSのことらしい)で使ってるテクか』
『ステートマシンの逐次処理用の優先度付きキューを手作りしてたのか。今ならboostか次期C++標準のライブラリ
から出来合えのコンテナでも引っ張ってくればいいんじゃないの。あと、機能分析すればこの実装になる必然性はない』
『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は高速化される
 という先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素なCPUアーキテクチャに
 依存した公式に過ぎない。定理ではない』

『くだらない話をふってないで、お前は早く課題レポートを提出しなさい』

うぜぇオヤジだ
0465名前は開発中のものです。2009/03/02(月) 23:57:02ID:j9iR0+6m
>>464
> マイコン雑誌
この辺の単語の使い方に、世代を感じるなぁ。
0466名前は開発中のものです。2009/03/03(火) 00:35:53ID:RAMjL7VZ
テクポリは最初技術系の雑誌だったんだね
アダルトゲーム雑誌になってからしか知らないや
0467名前は開発中のものです。2009/03/03(火) 00:54:38ID:nTxu8UVE
>>463-464
何…?このポエム

今もタスク進化系が使われ続けてる現実を前にして
現実逃避してるのかな?
0468名前は開発中のものです。2009/03/03(火) 01:06:03ID:gnPoJpgi
ID:N5eJa8sNはタスクシステムを使うとタスクシステムに全部のheaderをincludeしなければ
ならなくなるとか言っていた例の基地外だろ。

こんな低脳がアンチタスカーだから、アンチはみんな頭がおかしいと思われるんだ。

こんな奴、プログラマですらないので、この板から出てけよ。
0469名前は開発中のものです。2009/03/03(火) 01:43:30ID:e/qFL/0J
>>467
シーングラフはタスクシステムの外国版(笑)
タスクシステム改(笑)
タスク進化系(笑)

出るわ出るわ。怪しげな僕んちのソフトウェアアーキテクチャ発展史
萎びた僻地で密教みたいにひっそりやってきた「俺んちのベストプラクティス」
そいつがお前にとってのプライスレスなのはわかるけどな
何の具体的な情報も開示せずに世間に認知してもらおうなんて考えちゃダメ
世の中そんなに甘くない

公にされず標準化もされないド田舎・ローカルのソフトウェアアーキテクチャや
ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
顔真っ赤にして反論したりしない。黙ってる。そこを分かれ。出てくんな。みっともねー
幾つだよお前。誰だよ

反論するならお前の言うタスク進化系って奴が世間に認知される
ソフトウェアアーキテクチャ、ベストプラクティスとなるよう、きちんと文書にして
発表すべきだ

現在、世間の前に出てるタスクシステムに関する文献の中で唯一
書いた人間の出自が現場出身であることが垣間見えるのは秀和の
逆引きゲームプログラミングだけ。これを超えるものをお前が書けばいい


0470名前は開発中のものです。2009/03/03(火) 01:50:47ID:e/qFL/0J
>>468
あー、やっぱあいつだよな
ヘッダーがどうのとか言い出した瞬間にイカ臭かったもんな
0471名前は開発中のものです。2009/03/03(火) 02:03:06ID:nTxu8UVE
>>469
>ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
アンチじゃなくてもあんな原始的な仕組みをベストプラクティスと自認している人はいないと思うぞ。

あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
だから資料出せ、教えろ、説明しろってうるさいのか。
0472名前は開発中のものです。2009/03/03(火) 02:09:19ID:e/qFL/0J
>あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
>「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
>だから資料出せ、教えろ、説明しろってうるさいのか。

今度はアンチは実は信者論か。がんばるねー
アクロバティックな発想に翻弄されちゃうねー
生ゴミの臭いを好き好んでかぎ回るのは信者なんだけど
アンチは臭いものは臭いんだからとっとと捨てればー?
とアドバイスしてあげてる分まだ常識があるねー
0473名前は開発中のものです。2009/03/03(火) 02:22:24ID:e/qFL/0J
ま、タスカーは大人しくサンドバッグにされてろってこった
今更開陳したところで世間に八つ裂きにされるのが目に見えてるからな
俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから
とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す
なんてマゾっけたっぷりの趣味は無い
0474名前は開発中のものです。2009/03/03(火) 02:37:34ID:gnPoJpgi
ポエマーもいらねーから出てってな
0475名前は開発中のものです。2009/03/03(火) 02:42:58ID:e/qFL/0J
DSLポエマーと間違われるとは光栄だねー
タスクシステムを叩く材料が不足したら呼んでね。補給してあげるよ
アンチ応援してるよ。あーねみー。ばいばーい
0476名前は開発中のものです。2009/03/03(火) 02:53:26ID:eCcH4IzT
顔まっかなのはお前だろうに
0477名前は開発中のものです。2009/03/03(火) 02:57:23ID:eCcH4IzT
>俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから
>とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す
>なんてマゾっけたっぷりの趣味は無い

要するに、お前は過去の自分と戦ってるのか?
お前の暗い過去を皆に押し付けないで欲しい。
0478名前は開発中のものです。2009/03/03(火) 07:34:27ID:NIkO1+LI
ヘッダー全部インクルードしないと必要なときに必要なものが呼び出せないから
タスクシステム使ってるなら総合ヘッダーに全部インクルードしてあると思うよ
仮に必要なものだけだとしても関連をもったものは全部インクルードしてやる必要があるから
この構造で作ったら切り離すのは容易じゃないよ
0479名前は開発中のものです。2009/03/03(火) 07:50:27ID:NIkO1+LI
それと関連をすべてタスクにするとか嘘ついてるけど
ポインタの保持を関連タスクに強制するうえ
パラが一つでも必要になったらタスクを新しく作らなければならない
折角、ごった煮にした意味がまるでないけどそれでいいの?
だんだんタスクなんて作らないほうがいいって結論になりそうで俺は満足だけどね
0480名前は開発中のものです。2009/03/03(火) 08:19:58ID:gnPoJpgi
>>478
お前が頭がおかしくて、プログラムの組めないド素人なのはよくわかったから
もうこの板に来んな
0481名前は開発中のものです。2009/03/03(火) 08:53:25ID:HSt7mZci
>>478
んなこたない


アンチな俺でも同意できる箇所が見当たらない
0482名前は開発中のものです。2009/03/03(火) 10:09:41ID:T2e1Wx7e
一番要らない子なのはウンコちゃんだろう。
全レス内容無しってのが凄い。
0483名前は開発中のものです。2009/03/03(火) 12:43:55ID:NIkO1+LI
じゃヘッダー無しでどうやってキャストしてんだよ
まあ、これは無理でしょ

タスク信者が必要な分だけインクルードしてるなんて考えられないから
ごった煮を表現するために総合ヘッダー絶対あるだろ
だからタスク信者の書くソースは分離できない
さらにタスク信者は引数使えないから総合ヘッダーにグローバル変数の塊もあるだろうし
奴らのソースはカプセル化なんて不可能と言っていい
テンプレートは使いたがるくせにオブジェクト指向は欠片もわかってない
0484名前は開発中のものです。2009/03/03(火) 13:04:10ID:gnPoJpgi
>>483
> ごった煮を表現するために総合ヘッダー絶対あるだろ

ない。お前はOOPの基本すらわかっていない。もう死んで。
0485名前は開発中のものです。2009/03/03(火) 13:09:30ID:fc1Nudsp
>>483
なんでそこでテンプレートがでてくるのか理解できない
総合ヘッダにグローバル変数ときたら次はマクロだろ
0486名前は開発中のものです。2009/03/03(火) 13:11:42ID:HSt7mZci
>>484
OOPは関係ないだろ…
0487名前は開発中のものです。2009/03/03(火) 13:11:56ID:UVBLimNu
>>483
>総合ヘッダー
その発想は無かったwwwwwwwww
お前のコーディングすごいなwwwwwwwwwww
0488名前は開発中のものです。2009/03/03(火) 13:14:20ID:HSt7mZci
>>484
携帯からだったから483よく読んでなかったぜ
すまんこ
>>483
根拠の無い話ばかり並べても叩かれるだけ
0489名前は開発中のものです。2009/03/03(火) 18:22:34ID:NIkO1+LI
いいやあるね
少なくともごった煮をデータベースとか言ってた馬鹿のソースには確実にあるね
そもそもそいつは制限や型を言語の進化の過程でできたものという認識がまったくなかった
タスク信者の大半がこんな奴ら
関連をタスクにするなんて言ってるけど
関連クラスとどうやってやりとりする気なんだよ
グローバル変数かポインタの保持くらいしかないだろ
また、無駄に問題が増える(笑)
使わないって選択肢は選べないのかね
0490名前は開発中のものです。2009/03/03(火) 18:25:01ID:NIkO1+LI
カプセル化もわからないから自機のクラスに弾の処理書いちゃうんだよ
お前等馬鹿は
0491名前は開発中のものです。2009/03/03(火) 18:29:59ID:UVBLimNu
>>489
>>490
レスを二つにしてカプセル化したつもりですかwwww
0492名前は開発中のものです。2009/03/03(火) 18:34:43ID:gnPoJpgi
>>489
こんな馬鹿、久しぶりに見た。

悪いこと言わないから、OOPの基礎から勉強しなおしなよ。
0493名前は開発中のものです。2009/03/03(火) 18:57:02ID:NIkO1+LI
ムリムリ
タスク信者の組み方じゃ絶対分離なんて不可能
グローバルインスタンスホルダーが絶対にある
0494名前は開発中のものです。2009/03/03(火) 19:09:12ID:gnPoJpgi
>>493
仮想関数すら知らなさそうだな。本当、生きてて恥ずかしくないか?
0495名前は開発中のものです。2009/03/03(火) 19:19:33ID:NIkO1+LI
仮想関数?
いまの話題と全く関係無いけど頭おかしいの?
弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ
基底クラスじゃ自機クラス呼べないんだぜ
もしかしてしらなかった?
0496名前は開発中のものです。2009/03/03(火) 19:22:49ID:gnPoJpgi
>>495
> 弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ

呼ぶ必要なんか全くないんだが。ほんと、馬鹿だよね。
0497名前は開発中のものです。2009/03/03(火) 19:27:56ID:NIkO1+LI
でも、呼んでるんでしょ?
だからタスクシステムに固執してるんでしょ?
嘘はよくない(笑)
0498名前は開発中のものです。2009/03/03(火) 19:31:36ID:gnPoJpgi
>>497
本当、馬鹿すぎて泣ける。

ソース書いてみな。俺が添削してやるから。
0499名前は開発中のものです。2009/03/03(火) 19:38:27ID:NIkO1+LI
は?
俺はごった煮とかやってる馬鹿なタスク信者をぶん殴ってるところなんだよ
俺がなんのソースをだすんだよ
日本語大丈夫かよ(笑)
ああ、頭悪いのか
それじゃしょうがないな
0500名前は開発中のものです。2009/03/03(火) 19:42:26ID:gnPoJpgi
>>499
だからお前の糞タスクシステムのソースを出せと言ってるんだ。
全タスクのヘッダをincludeしているところを書き直してやる。
0501名前は開発中のものです。2009/03/03(火) 19:58:25ID:NIkO1+LI
は?
俺、タスクシステムなんて使わないんだけど?
だいたいソース書きたきゃ自分で書けよ
仮想関数とか明らかにズレた話題だしてる格下のお前の相手なんかしなきゃいけないんだよ
0502名前は開発中のものです。2009/03/03(火) 20:10:55ID:gnPoJpgi
>>501
仮想関数わかってないのお前。

> タスク信者が必要な分だけインクルードしてるなんて考えられないから
> ごった煮を表現するために総合ヘッダー絶対あるだろ

何度でも言うが、そんなものはないし、そんなことをする必要すらない。
まあ、このスレでわかってないのお前だけだろうから、俺はもう帰る。

基地外の相手してても仕方ないんでな。
0503名前は開発中のものです。2009/03/03(火) 20:38:10ID:fQh6ZhSe
俺も基底クラスに仮想関数つくってそれ呼び出せば、いちいち総合ヘッダーなんて必要ないと思う。
0504名前は開発中のものです。2009/03/03(火) 21:24:23ID:NIkO1+LI
は?仮に基底がゲームオブジェクトだとして自機特有の処理はどうやって呼ぶんだよ
まさか全部ゲームオブジェクトにもたせんの?(笑)
ああ、お前等のごった煮ってそこまで腐ってんだ
0505名前は開発中のものです。2009/03/03(火) 21:37:48ID:fQh6ZhSe
ああ凄いな。凄まじいなID:NIkO1+LIは。
とりあえず総合ヘッダー(笑)については、必要ないことを分かったかい?
まずはそこからだ。
0506名前は開発中のものです。2009/03/03(火) 21:39:53ID:I1ftq204
ぬるぽ
0507名前は開発中のものです。2009/03/03(火) 21:48:44ID:gnPoJpgi
>>504
お前は、OOPの基本がわかってない。

腐ってんのはお前の頭。
0508名前は開発中のものです。2009/03/03(火) 21:54:48ID:gnPoJpgi
アンチタスカーって、なんで ID:NIkO1+LI みたいな OOPすらまともに使いこなせない
糞野郎ばっかりなんだろうかね・・
0509名前は開発中のものです。2009/03/03(火) 21:57:27ID:fQh6ZhSe
さすがのアンチタスカーの俺も擁護できん。
同じPG職なら陰口叩かれてもいいレベル。
0510名前は開発中のものです。2009/03/03(火) 22:01:20ID:I1ftq204
ID:NIkO1+LI
2009年ゲ製痛い(ノ∀`)ニュース第1位確定だな。
道理でアンチタスク厨とは、マトモな会話が成り立たないわけだ。
0511名前は開発中のものです。2009/03/03(火) 22:11:53ID:NIkO1+LI
は?
どうせ総合ヘッダーよんでんだろ
そうじゃなきゃごった煮の意味ないもんな
悔しかったら総合ヘッダー無しでプログラム組んでみろよ
データベースなんだろデータベース(笑)
0512名前は開発中のものです。2009/03/03(火) 22:14:31ID:fQh6ZhSe
アンチタスカーは、タスクシステムを使って知ったうえで、叩くべきだわ。
使ったこともないのに想像だけで総合ヘッダーや癒着云々と否定しているのは滑稽すぎるわ。
0513名前は開発中のものです。2009/03/03(火) 22:16:25ID:NIkO1+LI
ハイハイ、自機のソースから弾のソースを取り払ってから言ってね
0514名前は開発中のものです。2009/03/03(火) 22:21:10ID:AybnbhgS
大昔ポケコンでシューティングを作ってた時は
敵ワークx16 弾ワークx16 とか固定長バッファを用意して、使用中フラグのビットマップで管理して動かしてた
ワークエリア内にポインタを書いてリストや仮装関数を実現するには500kHz程度クロックのCPUには重荷だった
今はもうゲームとして動いてるならなんでもいいやって感じ
0515名前は開発中のものです。2009/03/03(火) 22:41:02ID:I1ftq204
>>511
総合ヘッダー(笑)って何だよ!
総合病院にでも診てもらってこい。
C++入門者未満のくせに、デカイ顔してノイズ垂れ流しやがって。
タスクシステムを語るには20年早いわ。
0516名前は開発中のものです。2009/03/03(火) 23:02:20ID:Gs0swA+H
main.h に extern 使いまくりで
どこからでも #include "main.h" をすればコンパイルは通る
分割コンパイルの意味の分かっていないバカのやることだよ

ええ そうですよ 私の講師がそうだったように・・・
0517名前は開発中のものです。2009/03/03(火) 23:13:28ID:KhkzCgZ3
アンチタスカーだが俗に言うタスクシステムみたいな仕組みを
C++で実現している

ソース晒そうか?
0518名前は開発中のものです。2009/03/03(火) 23:28:24ID:UfdUZfM/
j
0519名前は開発中のものです。2009/03/03(火) 23:37:31ID:UfdUZfM/
仮想関数と総合ヘッダの話は
本元のクラスでなくて、抽象クラスを、includeするということ?
/*総合.h もしくはそれの#include*/
class IHoge : public ITask
{
virtual SomeFunc() = 0;
};
/*Hoge.cpp*/
class CHoge: public IHoge
{
SomeFunc();
};
ということ?
多分、総合ヘッダといった人は、IHogeを抜いて考えていたと思う
もしくは、それでもIHogeを利用するところからIHogeが見えないといけないジャンという
ことを言いたかったのかも

タスクとマルチコアとかの関連っぽい記事を発見したので張っとく
理解はしていないので、賢い人解説して
そして建設的な話をして
http://www.gamasutra.com/view/feature/3941/sponsored_feature_designing_the_.php?page=1
0520名前は開発中のものです。2009/03/03(火) 23:38:58ID:UfdUZfM/
戻り値書き忘れたけれど、突っ込まないで
0521名前は開発中のものです。2009/03/03(火) 23:47:42ID:YUVx5SHc
>>519
タスクと言う言葉を軽々しく使わないで下さい
0522名前は開発中のものです。2009/03/03(火) 23:52:38ID:NIkO1+LI
>>519
馬鹿はどっかいけよ
0523ID:EEKBitmg2009/03/04(水) 00:02:09ID:vv/UkwCS
厨房見参

総合ヘッダーさん(ID:NIkO1+LI)と引数さんは同じ人だと思うが、まぁそれはそれとして
総合ヘッダーさんはCodeZineの記事に出てくるようなタスクシステムのことを言ってるんだろ?

CodeZineの記事を書いた人は俺と同い歳くらいの学生さんだと思う。叩くつもりはないが
グチャグチャに絡み合ってる反面教師的なコードとしてはなかなか秀逸だなーと思う

task.hに
自機、敵機、自機の弾、敵機の弾 狙い撃ち、爆発、自機の制御、敵の出現制御
ステージ制御、ライフバー管理、スコア管理、タイトル画面、ゲームオーバー画面
といったTaskEx派生クラス全ての宣言をまとめてぶちこんでいる

で、例えば自機弾クラスのソースコードの中を見る。まず先頭でtask.hをインクルードしている
次に自機弾クラスの当たり判定メソッドの中を見る。こいつの中では

int 敵数=GetCount(ENEMY); // 敵の数よこせ (循環リストを総舐め)
for(int i=0;i<count;i++){
  敵クラス *task=(敵クラス*)GetTask(ENEMY , i ); //i番目の敵よこせ (ヒットするまで循環リストを舐める)
  …
}
という感じで 『"グローバルインスタンスホルダー"の検索結果 3 件中 1 - 3 件目』
に対して、『敵を全部くれ』と要求して、敵クラス型にキャスト(static_cast)している

循環リストを舐めまくりでびびった。HSPでこんなコード組んだら重くて普通に死ねる
C/C++を使うメリットを遺憾なく発揮してると思った



0524名前は開発中のものです。2009/03/04(水) 00:18:28ID:43lD+2sK
>>523
アンチだけれども、別にごった煮にして、
全てをなめるような実装にしなくてもいい気がする
最初から型ごとにリストを持ってそれごと返せばいい訳だし
ヘッダに全部宣言を入れていたのも、サンプルとしてそうしていただけで、
ヘッダが必要な個々の実装でincludeさせてそこでキャストさせればいい
そうすると、型ごとリストへ割り振りは、本当の型で判断できないので
別の情報で型を識別させるようにして型ごとリストを持たせればいいのでは?
タスクシステムに入れる時に型名を文字列で渡すとか
ここらへんは、タスクシステムの弱点ではない気がする
何回も語られているけれど、本当の弱点は、
静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う
素人考え?
0525名前は開発中のものです。2009/03/04(水) 00:23:18ID:w8Rwmagw
> 静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う

意味がわからない。例えば?
0526名前は開発中のものです。2009/03/04(水) 00:31:05ID:mN9/jFMx
>>524
それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?

class Scene {
 Player player_;
 Enemies std::list<Enemy> enemies_;
...
};
0527名前は開発中のものです。2009/03/04(水) 00:40:31ID:43lD+2sK
>>525
静的というのは、シーンクラスのメンバもしくはそのメンバに
自機、敵機、自機弾、スコア管理、ステージ制御などを階層を持たせて
配置しているということ
動的というのは、(少なくともインターフェイス越しには)ごった煮の
グローバルなリストから個々のインスタンスが勝手に互いを参照し合って
どうも統制が取れてなさそうに見えないこと
上の静的でも崩壊させることができるけれど、上手く設計すれば問題は起こらないはず
で、ごった煮はその問題をただ先延ばしにしてしまっているようなイメージを持っている
だからアンチ
>>524
そう。そう思う。
だからアンチ
0528名前は開発中のものです。2009/03/04(水) 00:48:30ID:43lD+2sK
>>どうも統制が取れてなさそうに見えないこと
どうも統制が取れているように見えないこと
0529名前は開発中のものです。2009/03/04(水) 02:40:49ID:hHE159vF
>>448 の者だが、
タスク進化系がいまだにコンシューマゲーム開発の現場で生き残っているのは単純に無駄が無いから、ってのも理由の一つ。

スーファミからPS1へ、PS1からPS2へ、PS2からPS3へ移行するたびに、こんな大量のメモリ使い切れん、と思ったものだが
なぜかマスター寸前の修羅場になるといつもメモリも速度も足りなくなりチューニングに明け暮れる日々が続く。
これはメモリ128Kのスーファミ時代から256MBのPS3まで、コンシューマ開発では変わらん定例行事。

そして常にメモリとコードの無駄を減らす圧力にさらされるんだけど、タスクみたいに毎フレーム相当数呼ばれる処理に
無駄が見つかると真っ先に削られる。

この修羅場では「可読性が…」とか「OOP的に…」なんて甘い理由よりも少しでも軽量なコードで動かすことが優先される。
で、PS3時代にもタスク進化系が生き残ってる、というわけだね。

仮想メモリつんでてスペックはユーザ毎にばらばらのPC環境では特定ハード向けにガリガリにチューニングなんて意味ないので
PC環境でしか作ったことの無い人間には理解できんだろうけど、
コンシューマ開発や組み込み系とみたいに固有のハード性能を120%使い切る開発スタイルではよくあること。
0530名前は開発中のものです。2009/03/04(水) 02:55:00ID:43lD+2sK
>>529
なるほど。全くコンシューマーを知らないけれど、説得力がある
では潤沢過ぎる程のメモリと、無限の演算能力がもしあったとしたら
喜んでタスクシステムは棄て去る?
0531ID:EEKBitmg2009/03/04(水) 03:04:13ID:vv/UkwCS
ありえない仮定を持ち出すとかスゲェな
厨だけどさすがにこれは真似できないな

お前は凄い。俺は頭痛がしてきた。寝る
0532名前は開発中のものです。2009/03/04(水) 03:13:07ID:43lD+2sK
突込みがあったので補足。
>>530は、タスクシステムが貧困な環境で使えるという>>529に対して、
ならば、十分豊かな環境だったらそうではないのか?という質問。
無限〜は *話を簡単にするため* の誇張した表現。
0533名前は開発中のものです。2009/03/04(水) 03:29:05ID:hHE159vF
>>530
無限のメモリと無限の演算能力があったら…?
それでも小規模なアクションゲーム系1人で作るならタスク進化系の管理システム使うと思う。
タスク系は下手に使うとバグの温床になるけど使いどころを間違えなければ便利だし。

まぁこれは慣れの問題なので、この手のゲームならこの手法で…とかだいたいやり方の想像つくし
タスク系固有のバグで苦しんだ結果、バグの温床にならない作り方が出来るようになってるから、ってのもある。
慣れた人間にとっては開発効率いいんだよね、あれ。

まぁでも新人込みのプログラマ数十人で大規模オンラインゲームを作る、とかならたぶん違う方法取るけどね。
0534名前は開発中のものです。2009/03/04(水) 04:55:07ID:ll33Ou9u
>>533
無限の資源があってもリスクと教育コスト考えれば結局C++使うだろうねー
無限の納期と無限の人材があるなら・・・遊んで暮らすだろうなー
0535名前は開発中のものです。2009/03/04(水) 05:47:21ID:kXQL8zXx
タスクシステムってソースがタスクなわけで
プロセスがタスクじゃないのね

ではマルチプロセス対応というのは真っ赤な嘘になるわけだ
0536名前は開発中のものです。2009/03/04(水) 06:56:53ID:m+X+Qg7j
>>527
タスクシステムはsingletonじゃねぇぞ。

タスクのなかに別のタスクシステムをcompositionで配置してタスクを
階層化できるが、お前本当にOOPわかってんのか?
0537名前は開発中のものです。2009/03/04(水) 07:31:28ID:NGMxgsfO
そんなの全く意味がないじゃん
だいたいそんなのやるならはじめから分けてもてよ
0538名前は開発中のものです。2009/03/04(水) 07:34:46ID:NGMxgsfO
並列化はどう考えても嘘
並列にするなら少なくとも並列にするデータは分けないと動かない
ごった煮でできるわけない
■ このスレッドは過去ログ倉庫に格納されています