[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 18:44 / Filesize : 126 KB / Number-of Response : 339
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2009/02/01(日) 12:38:10 ID:rVEgp4cM]
タスクシステムについての議論、相談、質問、雑談などのスレです

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

320 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:23:26 ID:+Lu8guC0]
とりあえず、描画タイミング、ゲームオブジェクトの移動、当たり判定なんかの処理は一定間隔で行いたい。
だから、単純なゲームのとあるシーンは以下のようになる。
while(1) {
  描画
  ゲームオブジェクトの移動
  当たり判定
  時間調整
}

次にタイトル画面を表示するシーンが欲しいなと思ったら、もう一つループを追加する
while(1) {
  描画(タイトル画面表示)
  キー入力
  時間調整
}

シーンの数だけループができた。
じゃあ、このループを一般化して、ハードコーディングではなく、外部からのスクリプト読み込みなどで
動的に生成できないかと悩んでみると、タスクシステム(っぽい何か)に行き着いた。


321 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:23:57 ID:DctRL+eT]
>>318
ただのFSMではなくコルーチン&スケジューラが実装されていたのなら
そう書いてもらったほうが分かりやすい

322 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:28:08 ID:xD+TYCTG]
>>298
指標をいくつか決めて実装手法ごとに○×付け。一番○が多いのを使う。
これでいいんじゃね?

どういった表現方法使ったってどうせ全部「データの受け渡し」であることには変わりない。
概念的には一つのことを実現しようとしてるだけ。

もし引数の概念が無い言語ならグローバル変数使わざるを得ないし、
グローバル変数の概念が無い言語なら引数使わざるを得ないかもしれない。
この辺の手法の差異なんて言語に左右されるような瑣末なこと。

C++ではたまたまいろいろな手法が利用可能だけども
概念的には「データの受け渡し」だけが目的なんだから、
CPU使用時間とかメモリ使用量とかソース可読性とかそういった瑣末な指標によって選択すればいい。
「C++におけるデータ受け渡しの実装手法はどれが一番概念的に優れてるか」とか悩むのは
そもそも問いかけの選択からして間違ってる。どれも概念的には「データの受け渡し」で同一のもの。比較不可。
優劣が付けられるのは前述の瑣末な指標で比較した場合のみ。

C++がやれること多すぎて悩むの疲れたのならいっそもっと選択肢少ない言語に変えてみたら?
Cとかに。わりと本気で。
#レスなげえ、俺きめえ。ごめんね

323 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:36:38 ID:buJH1feo]
C縛りは問題の本質を考える上でいいと思うが
納得しない人たちもいると思う


オレはC++大好きデザパタ大好きだが、自戒をこめてこの言葉を君たちに

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが簡単に生産されるようになってる。
正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、
それ自体、C を使う強力な理由になりうる。
-- Linus Torvalds

324 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:36:54 ID:VfZ7TaKb]
「ホットスーププロセッサ」・・・チッ、気取った名前付けやがって。
「タスクシステム」を批判できる立場にねーだろ。

325 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:42:17 ID:L1xVTjvz]
>324
いやいや、作ったソフトにどんな名前をつけるかは作者の権利だ。
それについてどうこう言うのと、『タスクシステム』という名前についてアレコレ言うのは
違う気がするぞ。

326 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:44:14 ID:VfZ7TaKb]
>>325
悪い、ちょい嫉妬しただけだ。
大人げなかったな。

327 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:46:18 ID:L1xVTjvz]
いや、落ち着いて逝こうぜ。

328 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:48:32 ID:iemYL3IE]
>>322
確かになー。
本当に悩むべきはそんなところじゃねーだろーっていつも頭では思うんだけど、
「もし理想のやり方が見つかれば、二度と悩まなくて済む」って甘い罠に取りつかれちゃうんだな。

つーかなんかタスクシステムに限った話じゃなくなってるな。
↓こっちの話題だなすまん。

ゲームにおけるデータ構造・クラス設計・パターン2
pc11.2ch.net/test/read.cgi/gamedev/1211544659/



329 名前:名前は開発中のものです。 [2009/02/08(日) 23:49:52 ID:/7HQNkAm]
タスクシステムとやらにこだわる人は
HSP使った方がいいよ、資源の無駄
かっこつけてC++なんて使う意味ないって
俺かっこいい超天才C++使いこなす俺超天才って言って
一ヶ月かけて作ったゲームも
HSPなら三日で作れるから
所詮タスクシステムなんてその程度
DSL的アプローチとしてはHSPの方が有益
タスクシステムはうんこ
うんこに指差してうんこって言って何が悪い
これはうんこじゃないやいって言ったところで
それはうんこだ
うんこうんこ

330 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:54:43 ID:L1xVTjvz]
あぁ、ウンコが何か吠えているw

331 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 00:03:05 ID:jAkDZVno]
>>328
いっぺん表作っちゃえば二度と悩まなくて済むよ
処理時間短縮重視ならこれ、メモリ使用量極小を狙うならこれ、
とかって簡単に決定できる

まぁ、大体PCならメモリとかCPUなんて潤沢に使えるから気にせず
コードの可読性だけでさくっと決めていい気がするけど

332 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 00:28:43 ID:xIvd3PJC]
>>315
普通にできるだろ
馬鹿かお前大丈夫か?
ていうか一度でも組んでみてから言ってくれよ

つーか、お前、タスクシステム云々がどうとかそういうところこだわる前に
プログラマとしてヤバイだろw

333 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 00:54:39 ID:rrMBb3Sk]
実際HSPでもシューティングゲームぐらい作れるしな。

334 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 01:34:23 ID:K+aHd4rk]
HSPで済むならそれを使っておけばいいんだよ。
適材適所。

335 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 01:44:30 ID:Tt5KtR55]
>>315
なーにが広義のタスクシステムだ。バッカじゃねーの?このカッペ野郎
毎度毎度テメェの都合でローカル用語の解釈を変えてんじゃねー
あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな

お前いつもそんなふうに新しい用語をクリエイトしながら他人とお話しするの?



336 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 07:48:20 ID:tQgf226p]
>>320
タイトル画面や戦闘シーンは、相互依存がほとんどなく、インスタンス数もたかが知れてる。また処理パターンが仕様変更で変わる可能性がある。

そういう用途には、std::list<> に virtual void exec() だけ実装したクラスのインスタンスを入れておいて、定期的に呼び出してやれば良い。システムと呼ぶ程のモノじゃないがな。

一方、プレイヤーや敵キャラなどは、上の前提条件が成り立たない。相互依存が多く、処理も一度「移動、ヒット判定、死亡判定」と決めたら、まず変更しない。
困難なポイントが違うので、解決策も必然的に変わってくる。

337 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 12:40:04 ID:Q7FeorJ2]
>>336

これでFA。

338 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 13:30:04 ID:DGIHyZBW]
>>335
>あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな
まだ君の頭では理解できないことかもしれないけど
”MTフレームワーク”でググって勉強してみれば意味が分かるかもね…









[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<126KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef