タスクシステム総合スレ part4
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/02/01(日) 12:38:10ID:rVEgp4cMpart3 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/
0598名前は開発中のものです。
2009/02/14(土) 22:07:49ID:KRjtx6a70599名前は開発中のものです。
2009/02/14(土) 22:09:18ID:ojCD6VCw0600名前は開発中のものです。
2009/02/14(土) 22:09:48ID:krP7oFWE目的って、あのソース見て目的がわからなければ相当の低脳だろ。
プログラム一行でも書けんのか?
プログラムかけねぇヤシはすっこんでろ。
0601名前は開発中のものです。
2009/02/14(土) 22:15:03ID:UJelYgTf> 処理の流れが基本一本道なので、どこで誰がなにをしているかすぐ分かる。
これを達成しつつ、
> 処理の自動並列化。
これを実現したいということだよね。
そのためにデータ共有を制御したいということだよね。
> ・データベースへのリクエスト時はデータベース全体をジャイアントロック。
これは分かる。
> ・しかし、リクエストそのものは並列実行される。
意味不
ロックされてるのに?
もしロックしてるやつが書き込みしてたらReadOnlyですら保証されないよね
あと、
> すべてのデータがデータベースに登録されているので、データ構造が明確。
メモリ上の情報だけでなくデバイスもデータとして扱うとデータ間に依存関係あると思うんだ。
DirectXデバイスとTextureとか。その辺不明確では?
>>510 のコードの半分も理解してない(読めない)俺が間違ってる?
0602名前は開発中のものです。
2009/02/14(土) 22:16:34ID:wj98RZ4Cそうやって明確に答えずに変な解釈ばっかりするからこのスレはこんな有様なんだよ
そうだと思ってたことが実は違うなんてことは頻繁に発生する
わかった気になるのが一番怖い
ためしにお前がどう考えたのか>>510に確認とってみろ(別人かどうかは知らんけどなw)
0603名前は開発中のものです。
2009/02/14(土) 22:17:36ID:KRjtx6a7できない。
0604名前は開発中のものです。
2009/02/14(土) 22:17:56ID:LGQXbjlW同じコードから読み取れるものが皆同じってのはちょっとありえないと思うわぁ
0605名前は開発中のものです。
2009/02/14(土) 22:19:14ID:wj98RZ4C本気でその状態で怖いわ
ジャンプにナ○トってカオスな漫画があるけど
このスレも全く同じようなカオスな状態で全然笑えない
プログラマでこれかよって感じ
>>599
それは技術者にとって負債にしかならない
0606名前は開発中のものです。
2009/02/14(土) 22:34:50ID:VBVBn6GZ苦し紛れに罵倒するだけで、結局プログラム的な反論がほとんど無いのかよw
口汚くても有意義な情報が見られるかもと思ってpart1から見てたのに、
アンチタスク派にはホントがっかりだわ。最初から最後まで口だけか。
もーそうやって一生罵倒してろよ。
お前らはもうソレしか出来ないんだから。
やっぱゲ製板の住民だよ、お前ら。
0607名前は開発中のものです。
2009/02/14(土) 22:37:58ID:wj98RZ4Cだからぁ
そうやって主旨を横にどかして感情だけでしゃべるなよ馬鹿
本当にプログラマかてめーは
今日の飲み会盛り上がりましたね!?
って妙な確認とってくる新人かてめーはw
ソース自体を公開するのはいいよ
でもそのソースの目的を明確にしてもらわなきゃなにも判断できないだろ
0608名前は開発中のものです。
2009/02/14(土) 22:40:24ID:UJelYgTfども。やっぱり。
というかもう >>566 で危ないって書いてたんすね
さっき読んだ時はなんか難しいこと言ってんなー、位で理解できてなかった
0609名前は開発中のものです。
2009/02/14(土) 22:49:40ID:segjkn8U正直俺も>>601同様の疑問を持ったけど
C++は参照透明な純粋関数型言語ではないので、副作用だのオブジェクトの破棄だのが
色々ネックになりそうに見える
単なるISAMならともかく
まともなRDBなどでは読み取り一貫性のようなものを保障するためには
相当にしち面倒くさいことをやっているが
0610名前は開発中のものです。
2009/02/14(土) 22:52:53ID:wj98RZ4Cは?
俺にはメリット(=目的でなきゃ駄目だろ?)がまったく見えねー
>>528に書いてあるのはただの処理内容だろ?
やりたいことは〜って文章からまったくつながってねぇよ
C言語やる前に日本語どうにかしろよレベルだろコレ
0611名前は開発中のものです。
2009/02/14(土) 22:54:10ID:segjkn8U>排他処理の自動化。データ構造に基づいてロックをかけるのでデッドロックしない。
>処理の自動並列化。
>すべてのデータがデータベースに登録されているので、データ構造が明確。
>処理の流れが基本一本道なので、どこで誰がなにをしているかすぐ分かる。
これはメリット=目的だと受け取っていいんじゃないの?
できてるかどうかはともかく、ね
0612名前は開発中のものです。
2009/02/14(土) 23:04:48ID:vvv9+ke/それを達成するための手段はいくつあってもいいけど
その手段それぞれにメリットデメリットがある
タスクシステムも手段の一つに過ぎない
さっ、教えてくれ
0613名前は開発中のものです。
2009/02/14(土) 23:16:26ID:wj98RZ4Cは?どれが?
そもそも1つじゃなくてなんでたくさんあるの?
例えばな
「自動化」
ってあるけど
自動化はわかった
で?何がいいの?
ってなるじゃん
機能を並べただけなんだよ
それとそのメリットって>>2と比べてこのソースは〜って話?
それとも普通の組み方と比べてこのソースは〜って話?
0614名前は開発中のものです。
2009/02/14(土) 23:18:24ID:wj98RZ4C>そもそも1つじゃなくてなんでたくさんあるの?
まず、大まかにそんなにたくさん主旨があるのはおかしいだろ
それ、全部目的なの?
仮にそれのどれが欠けた場合に失敗なの?
それの1つでも残れば他にどんなデメリットが出ても成功なわけ?
一つに絞れよ
0615名前は開発中のものです。
2009/02/14(土) 23:20:11ID:segjkn8Uちゃんとpros/consが網羅されいるとも、分析/評価としてちゃんとしてるとも
別に俺は思わないしね
つっかかる相手を間違ってないか?
0616名前は開発中のものです。
2009/02/14(土) 23:35:14ID:vvv9+ke/確信に近づくと止まる、メリットデメリットを聞くと止まる
そして日付が変わってIDが変わる
今までの話はなかったことにして、話題を変えてまた実装の話
これの繰り返しだよ
代わりをよこせといってる人がいたからDSLを持ってきたのに
無視しやがるし、ちくしょうめ
0617名前は開発中のものです。
2009/02/14(土) 23:39:06ID:UJelYgTf俺の目的はゲーム作りの型を身に付けること。これで十分だろ。
まさか2chに来ておいて統一見解求めるつもりは無いよな?
修破離の修を独学でやるには既存の型を学ぶのが手っ取り早い。
そしてそこにC++なんちゃってタスクシステムがあった。だから飛びつく。
全くの初心者がいたとして、運しだいではこういったこともありえる。ただそれだけの話。
それこそ何を目的に何を問題として提起しているのか。
タスクシステムの根本思想が「タスク=ゲームオブジェクト」と腐っていようと、
規模の増大に耐えられない虚弱で捻じ曲がったシステムであろうと、
本当の初心者がたとえミニゲームであっても実際にゲームを完成させることが可能という点で
目的は達成可能な手段ではある。
目的を達成可能な手段がそれしか見つけられないならば、
たとえ先の無い最悪な手段でもあると分かっていても使うやつは使う。
他人ができるのはよりましな手段を残しておく位だと思うが
なぜその議論自体を止めようとするのか。
先達のいない孤独な入門者が必死にゲーム製作への道を模索してようやく腐れタスクシステムを見つけたときに、
それは糞だ。だから使うなと言い放ってまた路頭に迷わせるのと、
それは糞だ。だからもっとましなこっち使えと言うのと、
一体あなたはどちらを今実施しているのか。そういう話。
俺としては「タスク≠ゲームオブジェクト」な養成ギプスシステムを作ることまで邪魔するのは許せない
0618名前は開発中のものです。
2009/02/14(土) 23:39:59ID:UJelYgTf>>610 じゃなくて
>>612 ね
0619名前は開発中のものです。
2009/02/14(土) 23:42:47ID:KRjtx6a7ふつーに書けば良いだけだと思うんだが…
何をそんなに悩むのかが分からん。
0620510
2009/02/14(土) 23:44:17ID:V87nWtWS・タスク → データに格下げ
・foreach → タスクに格上げ
ってだけなんだけどね。
なんせタスクシステムっていう名前が悪かった。
タスクなんて言うから、データに処理をくくりつけたくなってくる。
タスクなんて呼ばず、データなりリソースなりというもっと低レベルな名前にしておけば、
そこに処理を括り付けようなんていう厨発想は消える。
変わりにforeachをタスクと呼びかえ、適当なマクロ定義して、
「ここに処理を書けば自動で並列化できますよ」と提灯ぶら下げとけば、みんなそっちに書く。
かくして世の中は平和になる。タスクシステム論争終わり。めでたしめでたし。
0621名前は開発中のものです。
2009/02/14(土) 23:46:58ID:UJelYgTf配列とりあえずわかったー!(気がするー!)
定義と宣言の違い、わからないー!
ポインタ、全くわからないー!
というレベルを想定してみよう。そして頭は中か下程度。
頭いい人とか身近に先達がいるという幸運なケースは除いて考えるのがミソ。
0622名前は開発中のものです。
2009/02/14(土) 23:53:19ID:vvv9+ke/なんだかよくわからないけど
俺が知りたいのはタスクシステムのメリットデメリットであって
君の目的ではない
長々と書いてもらってすまないが見当違いなので
話題そらしされてるのかと錯覚してしまったよ
以下略>>564
0623名前は開発中のものです。
2009/02/14(土) 23:58:01ID:krP7oFWEお前はプログラマ失格なんだから出てくんな
0624名前は開発中のものです。
2009/02/14(土) 23:59:22ID:vvv9+ke/目的と手段ぐらいは明確にできると思うよ
手段の利点欠点ぐらい明確に知っていると思うよ
頭のいい人はすごいからきっとできるよ、できるよ
俺は頭が悪いから教えて欲しいよ、欲しいよ
タスクシステムのメリットとデメリットを教えてください
また失格言われました><
0625名前は開発中のものです。
2009/02/14(土) 23:59:31ID:g0on6kGhおいおい、>>2は図も使って紳士的に説明努力もしているサイト群だぞ。
ドラゴンソルジャーLaw(笑)だかDouteiSeniorLoliconだか、何だか知らねえが、
キーワードだけって、なんじゃそりゃ?
全然、筋通してねえじゃねえか。
考え甘いんちゃうか?
>>2の説明努力が不足しているなら、それも補ってくれよ?
手前のクソは成分が違うって言いたいんだろ?
あぁ?
0626名前は開発中のものです。
2009/02/14(土) 23:59:31ID:UJelYgTf結構良かった
何人かこれで攻めていくんじゃないかと思う。
難しくて謎めいてるあたりもそそるかもしれないしね。
>>622
だから無意味で無害なパターンが必要とされてるの
初心者以外にとっては無意味でいいの。無意味で当たり前だから価値があるの。
0627名前は開発中のものです。
2009/02/15(日) 00:20:01ID:/3SpaYGWみんな俺だけ仲間はずれにして、泣くぞ
>>625
前に同じこと書いたけど>>2にはメリットデメリットが書いてないし
そのときも誰もメリットデメリットを教えてくれなかったし
推測しろという、不親切過ぎるだろ
補えって言うくらいだから、使ってる人は知ってるんでしょ?メリットデメリットを
まさか知らないで使っているわけないよね
誰でもいいからタスクシステムの
メリットとデメリットを教えてください
いじわるしないで教えてください、お願いします
0628名前は開発中のものです。
2009/02/15(日) 00:24:05ID:h/ugUohbメリットデメリット→相対的な話
0629名前は開発中のものです。
2009/02/15(日) 00:28:19ID:/3SpaYGWA.ハハン、自分で考えろ
……俺はどうすればいいんだろう
0630名前は開発中のものです。
2009/02/15(日) 00:28:29ID:pf6wVUPlお前が一行もプログラムの書けないポエマーなのは十分わかったから、もう出てこなくていいよ
0631名前は開発中のものです。
2009/02/15(日) 00:34:23ID:kIY9LVp/メリット、デメリットを出せって奴は俺もいるぜ
0632名前は開発中のものです。
2009/02/15(日) 00:38:02ID:h/ugUohbアドバンテージ云々って話にはならんだろ
0633名前は開発中のものです。
2009/02/15(日) 00:45:37ID:kIY9LVp/タスクシステムしか知らんの?
0634名前は開発中のものです。
2009/02/15(日) 00:47:57ID:/3SpaYGW>アドバンテージ云々って話にはならんだろ
DSL
タスクシステムがフレームワークに類するのかどうかわからないけど
フレームワークはいくつかある
比較対照はたくさんあるけど
タスクシステムの基本的な事がわからないのでなんとも言えない
それに比較対照がなくても、大きいメリット一つぐらいはわかりそうなものだが
Q.タスクシステムのメリットとデメリットを教えてください
A.ハハン、自分で考えろ
なんだかこのやりとりが気に入ったw
0635名前は開発中のものです。
2009/02/15(日) 00:53:32ID:Oer16jPuboost::protoでevalできるものは全てDSL(*)って言えるし、さらに(*)すらDSLの一部だぞ
0636名前は開発中のものです。
2009/02/15(日) 00:55:04ID:h/ugUohb比較対象として出してみ。
そうすればメリット、デメリットの話もできるだろう。
0637名前は開発中のものです。
2009/02/15(日) 01:01:58ID:/3SpaYGWDSLのメリットとデメリットはわかる
色々あるなら全部比較対照にすればいいから
比較してタスクシステムのメリットとデメリットを教えてもらいたい
>>636
タスクシステム的発想というものがさっぱりわからないけど
DSL
0638名前は開発中のものです。
2009/02/15(日) 01:14:37ID:20MV6lUe・メリット:なんだこんな簡単な仕組みでゲーム作れるんじゃん。やっぱりな。これなら自分でも覚えられるぞ! とか、
おれのSTG(もどき)が動いた! といったあたりまでゲーム製作が推進可能となる
・デメリット:わりと最悪の部類に入る設計思想でした。もう一歩も先に進めません。という時期が来る
ベテラン(?)
・メリット:デバッガとか周辺ツールが便利らしい
・デメリット:デバッガとか周辺ツールを自分で作るらしい。あと、抽象化を見極めるワザが必要らしい。
タスクシステムに設計パターンとしてのメリットは無いね。
Byアンチ
0639名前は開発中のものです。
2009/02/15(日) 01:19:05ID:h/ugUohbDSLとやらと比較したいんだったら、自分で比較作業やればいいじゃないか。
それを他人にさせようとするなよ。
ただしタスクシステム批判するなら、根拠となる比較作業結果を明示する。
0640名前は開発中のものです。
2009/02/15(日) 02:50:31ID:FA9cfUTD> 『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
> 脳みそに染み渡った?質問どうぞ
つまりアンチタスクシステム厨というのは、自分にとって理解できないものに対して『俺は何が理解できて
いないか理解できていないぞ』と公衆の場で叫ぶキチガイと言うことか?
0641名前は開発中のものです。
2009/02/15(日) 03:05:29ID:kIY9LVp/http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8884.zip
どこか変わったか?w
っていうか糞わかりにくいコードだったからバグってるかもしれない
まあ、雰囲気だけ受け取ってくれ
どうせやるなら
自機、敵、弾の3種類のクラスがあって
弾は追尾機能(関連を作るため)がついてるほうがいいな
0642名前は開発中のものです。
2009/02/15(日) 08:39:51ID:OFTP7lcImainにwhileがあって中で星の数だけ処理をforで回す…と。
初心者がC言語習って最初に作るミニゲームとかはこーなるだろうなーと。
これでブラックホールとか自機とかさらに複数の要素が加わったら全部の要素をこのwhile内にハードコードで追加して巨大化していくのかな?
タスクシステムなら新しい要素をタスクに登録するだけで、スクリプトとかから動的に要素を増減できるけど。
さらに、ゲームだとタイトルとかコンフィグとか、デモとか、ボーナスステージとかステージ毎に違う仕掛けがあるケースはどう書くのかな?
一個のメインループの中にswitchとかで切り分けて無理やり全部詰め込む?
それとも全ての要素の組み合わせごとにメインループを分ける?
…ってことは見苦しいからやりたくない、って思ったプログラマがタスクシステムを作ったんだけどね。
タスクならメインループは一個。タイトルやゲームも要素の増減もタスクで処理可能。
頑張って非タスク作るって、結局アンチはその程度のことも分かってないプログラマだった、という証明になってるんだが…
まぁ、たまたまこのアンチのレベルが低いだけで、まさか全部のアンチがこんなレベルのプログラマじゃないよな?
0643名前は開発中のものです。
2009/02/15(日) 08:49:10ID:5MvrWTvYオレも最初そう思ったw
Squirrel可愛いよSquirrel
タスクからSquirrel呼んじゃうよ(まあ俺はタスク使わんけど)
んで、まじめにDSLという(Java/Ruby界隈中心に広まった?)言葉の定義を調べてみたが、
どうやら外部DSLはSquirrelやLua、XML、JRuby、Groobyのようないわゆる組み込み言語を指すらしい
で、内部DSLというのはyacc/bisonやboost::lambda、Lispのマクロ機能、
アスペクト指向トランスレータに見られるような言語自体のメタ的拡張手法を指すようだね
煽るつもりはないが、内部DSLがゲームのなにを解決するのか分からないなあ
しかもタスクの問題範囲と競合してるようにも見えない
どういう風にゲーム開発に活用しているんだろう?モナディウスとか?
>>642
売り言葉に買い言葉なのは分かるが、安全なところから他人のコードを叩くなよ
0644名前は開発中のものです。
2009/02/15(日) 09:32:34ID:pf6wVUPlまあ、アンチの代表格が、510のプログラムさえ読めなかった低脳ポエマーだったことが発覚したので仕方ないんじゃね?
あと説明責任君とか。510のプログラム見てわからないなら、プログラマを語るなと言いたいんだが。
0645名前は開発中のものです。
2009/02/15(日) 10:15:31ID:kIY9LVp/だから、こんなサンプルじゃそーゆーのを俺がどう書くのかわかんねーだろ?w
だから、自機、敵、弾のサンプルのがいいって言ってるのに
0646名前は開発中のものです。
2009/02/15(日) 10:21:59ID:OFTP7lcIならこのサンプル出す意味無いんじゃね?
タスクシステムの比較対象にすらなってないし。
0647名前は開発中のものです。
2009/02/15(日) 10:25:34ID:kIY9LVp/ホント、その通りなんだけど
それは>>510にしかわからないw
0648名前は開発中のものです。
2009/02/15(日) 10:30:58ID:/3uMAyPp単純で読みやすい。
whieループの中の「〜タスク」は別関数に切り出して欲しいが。
こんな簡単な問題をなんで変なマクロでくくって、ややこしくするのかが理解できん。
>>510タスクシステムが理解できないのではなく、
簡単な問題をわざわざ複雑に解く理由が分からんと言っている。
事実、>>641のコード量は>>510の半分程度になってるだろ。
0649名前は開発中のものです。
2009/02/15(日) 10:32:18ID:/3uMAyPp0650名前は開発中のものです。
2009/02/15(日) 10:39:55ID:hUQv8RGuDSL具体例出してくれてありがとう。よく分かったよ。
Squirrelな俺にとってはいつのまにか外部DSL派だったわけね。
スクリプトにタスク概念入れると処理の一貫性や可読性やらの諸問題で、
タスク使わない派に戻りました。今のところコルーチンでFAな感じ。すげえし読みやすい/書きやすいよ。
もしコルーチンで記述できない/処理が重い問題にぶち当たればタスクに戻るよ。その辺は柔軟に考えている。
ゲームっつっても、小規模STGなのか大規模RPGなのか、2D/3Dなのかネットワーク対応/非対応なのかにもよって変わってくるだろうし
理論と実践は異なるってことだよだな。銀の弾丸は無いよ。
各自好きなの使えばいいじゃん。
0651名前は開発中のものです。
2009/02/15(日) 10:44:27ID:kIY9LVp/こんなんじゃ納得できないと思うな奴等w
結局オブジェクトも1種類しかないし
種類が増えたときにごった煮が役に立つを思ってる奴等でしょ?w
なんで>>510なんかに飛びついてたのかわからないけどw
0652名前は開発中のものです。
2009/02/15(日) 10:45:34ID:OFTP7lcIそれは庭いじりしか知らない人がハサミで十分だから
ノコギリの必要性が理解できないと言ってるのと同じ。
サンプル規模のプログラムでタスクシステム使うのは庭いじりにノコギリ使うようなものだが
>>642 のような実際のゲーム規模では必ず遭遇する問題にはタスクシステムかそれに変わる何らかのシステムが無いと
こんなベタ組みじゃやってられんよね、ということだ。
0653名前は開発中のものです。
2009/02/15(日) 10:52:37ID:kIY9LVp/絶対、かわんねぇよ
だって書かなきゃいけない処理って決まってるじゃん
書かなきゃいけない処理の一覧書き出して
タスクシステムで書かなくてよくなる処理を○でもつけてみろw
自機、敵、弾ってあってそれぞれが関係するなら
自機x敵、自機x弾、敵x弾の関連の処理は絶対に省略できないってw
アフォでもわかるべ〜w
冷静になって考えてみろよw
0654名前は開発中のものです。
2009/02/15(日) 10:58:26ID:OFTP7lcI>タスクシステムで書かなくてよくなる処理を○でもつけてみろw
タスクシステムは書かなきゃいけない処理を書かなくてもよくするためのものじゃないぞ。
そもそもそんなシステムは無いだろ。
関係するオブジェクトの増減やゲームの状態推移を統一した扱いにできて便利、ぐらいのもの。
自機、敵、弾だけで完結できるほどシンプルなサンプルレベルのなら使わなくてもいいんでない?
0655名前は開発中のものです。
2009/02/15(日) 10:59:18ID:pf6wVUPl抽象化するコストって、TaskSystem自体は再利用できるんだから、たくさんゲームを作るなら
ゼロに近づいていくんだが。
まさかあんたは一本だけゲームを作って一生を終えるつもりか?
0656名前は開発中のものです。
2009/02/15(日) 11:08:15ID:kIY9LVp/>タスクシステムは書かなきゃいけない処理を書かなくてもよくするためのものじゃないぞ。
>関係するオブジェクトの増減やゲームの状態推移を統一した扱いにできて便利、ぐらいのもの。
はぁ?じゃ、何がメリットなんだよw
さっさと言えよ
とりあえず>>510のサンプルなんてなんの役にも立たないってわかった?
目的もなく動いたって無駄なんだよ
ホント馬鹿だな
無駄、呼吸してること自体が無駄
>>510のサンプルに飛びついてたゴミはすべて無能
>自機、敵、弾だけで完結できるほどシンプルなサンプルレベルのなら使わなくてもいいんでない?
だから、そういうだろwお前等w
>>510のサンプルはなんの意味もねーって言ってるのに
わかんねぇかなぁw
0657名前は開発中のものです。
2009/02/15(日) 11:14:35ID:hUQv8RGu>自機x敵、自機x弾、敵x弾の関連の処理は絶対に省略できないってw
処理が似たり寄ったりなら、そこはクラスの「抽象化」の一言で済むんじゃない?
タスクの範疇じゃないでしょ。タスクについて勘違いしてるよ〜
0658名前は開発中のものです。
2009/02/15(日) 11:14:44ID:OFTP7lcI>はぁ?じゃ、何がメリットなんだよw
>>642 でタスク使えばこーかける、ってのが出てるけど。
これじゃ理解できないかな?
まぁ、メリットデメリットが理解できないなら使わなければいいだけなんだが。
誰か君にタスク使うよう強要してるの?
0659名前は開発中のものです。
2009/02/15(日) 11:16:56ID:kIY9LVp/うーん?
何?言ってることさっぱりわからない
苦し紛れに意味わかんないこと言わないでよw
0660名前は開発中のものです。
2009/02/15(日) 11:19:37ID:hUQv8RGuGoFのデザインパターンとか、その辺から見てみるといいよ。
あくまでタスクは状態遷移のためのもので、データの抽象化等とか根本的に違うっしょ。
0661名前は開発中のものです。
2009/02/15(日) 11:20:48ID:kIY9LVp/えーだって結局>>510のサンプルはなんの意味もなしてないわけでしょ?
あのソースにあれこれ言ってた人はどこ行ったの?
0662名前は開発中のものです。
2009/02/15(日) 11:22:49ID:OFTP7lcIタスクシステムの実装の一例として
>>641のサンプルよりは意味があるんでない?
0663名前は開発中のものです。
2009/02/15(日) 11:24:37ID:kIY9LVp/おいおい>>641は>>510がなんの意味もなくね?っていうのを表現するために作ったんだぜ
んでそれは納得できた?YES?orNO?
0664名前は開発中のものです。
2009/02/15(日) 11:29:11ID:hUQv8RGu従来のタスクよりは、可読性について大幅に改善していると思うよ。
今までのタスクは処理が飛びまくるから目で追うのが大変だったからね。
0665名前は開発中のものです。
2009/02/15(日) 11:33:51ID:OFTP7lcI>>510 タスクシステムを使ったサンプル(実装例として意味ある)
>>641 何も使ってないサンプル(実装例として意味無い)
だけの話でしょ…
というか、タスクシステムごとき単純な考え方を煽りじゃなく本当に理解できないとしたら
プログラマとしてどーかと思うぞ。
0666名前は開発中のものです。
2009/02/15(日) 11:34:44ID:/3uMAyPp扱う問題が巨大になったとき、>>510版と>>641版でどれほどの差が出るかなんだが。
なんかあるの?
単にタスクシステムの分だけオーバーヘッドになってるように見えるんだけど。
>>510を使えば使うほど何らかのコストが浮くのかな?
一体何がラクになるのだ。
どんな問題を解決しているのだ。
もともと制御部っていうのは本質的に複雑だから再利用は難しい。
汎用的にすればするほど中身がなくなっていく部分。
「ドラクエ風ゲームエンジン」「横シューエンジン」「スト2風格ゲーエンジン」「アンリアル風エンジン」
ここまで的を絞って3〜4本量産してようやくペイするってところじゃないか。
マルチスレッドに注目したMTフレームワークなんかは、デバッグのしやすさや移植しやすさも売りにして抽象コストをキッチリ回収している。
実行環境/開発環境として、実行/開発において誰もがぶち当たるありふれた問題を一手に引き受けて解決している。
単にforループで済む部分を別のやり方でやって偉ぶっているわけではないので混同しないようにな。
>>510
これはHOW。結局タスクシステムはどの問題を解決しているのか。
ただのforループ以上の何があるんだ。ただのforループに勝ってるのか。
そうでないならforループを使うほうが遥かに良い。単純明快説明不要でコスト0だ。
>>620
「ここに処理を書けば自動で並列化できますよ」
まず、何がどう自動なんだか分からない。
実のところ、何も自動化されていない。
0667名前は開発中のものです。
2009/02/15(日) 11:35:19ID:pf6wVUPlお取り込み中のところ横からで済まないが
>>641 のソースだが、明らかに元のソースより読みにくい。
forがロジック部に出てきてるのだとか、null判定してcontinueしているのとか
Starの空きを探す部分だとか。
結局、
・もし事前に510のタスクシステムが存在していてこの開発コストが0だと見なせるなら、
641のコードのほうが工数が多いのは明らか。
・もし事前に510のタスクシステムが存在していてこの開発コストが0だと見なせるなら、
が成り立たないなら641の書き方でいいんじゃね?とは思うけどな。
0668名前は開発中のものです。
2009/02/15(日) 11:36:30ID:kIY9LVp/で?>>510と>>641は大して変わらないソースになったけど
これがオブジェクトの種類が増えていくとどう変わる?って展望があるのかな?
そーゆーことが言いたいなら少なくともそういう色の出てるソースじゃないと意味ないよね?
つまり、この時点では>>510はなんの意味もない、そういうことだよね?
0669名前は開発中のものです。
2009/02/15(日) 11:37:31ID:kIY9LVp/>>>641 のソースだが、明らかに元のソースより読みにくい。
なんか言い出しちゃったよw
0670名前は開発中のものです。
2009/02/15(日) 11:39:29ID:OFTP7lcI明確なデメリットがあるからアンチとか
他にもっといい方法があるからアンチ
ってわけじゃなく
そもそも経験不足でメリット・デメリットや使いどころが想像つかないけど
他の人は理解してて悔しいからアンチ
って感じにしか見えん。
自分の好みに合わないなら使わなきゃいいだけなのにねぇ…
0671名前は開発中のものです。
2009/02/15(日) 11:40:50ID:pf6wVUPl> 「ドラクエ風ゲームエンジン」「横シューエンジン」「スト2風格ゲーエンジン」「アンリアル風エンジン」
> ここまで的を絞って3〜4本量産してようやくペイするってところじゃないか。
そう簡単な話じゃないんだ。
これは現場の俺から言わせてもらえれば、
エンジンを作ったり設計したりしてるのは賢い連中なのよ。
それぞれのゲームを作ってるのはもっと質の悪い、単価の安い、なんと言うか・・まあ、皆まで言わすな。
だから、プログラムのうち、難しい部分と簡単な部分とを切り分けて、難しい部分を賢い連中に
担当させるのは、理にかなってるんだよ。
0672名前は開発中のものです。
2009/02/15(日) 11:41:22ID:5MvrWTvY組み込みスクリプトには2種類のメリットがあると思う
1.フレームをまたいだ継続処理の記述が平易にできる
コルーチンがもてはやされるけど、実はコルーチンでなくても
コンテキストを保ったままフレームをまたげる実装であれば良い
そういう意味では目新しいものではなく、今までも各社独自でこのようなスクリプト実装は行っていた
2.データをソースコードの外部に出すことができる
Game Programing Gems1巻で最初に触れられるのがこれ(データ主導設計)
今風に言うとXMLよりJSONだよね的な話だが、もちろんコレも新しいものではない
こうして見ると、結局コルーチンもデータ主導設計もDSLと同じで、
それと意識されることなく昔から使われていた手法だよね
考え方に名前を付けるのは必要なことだけど、普及しはじめるとHYPE化するのはどうしてなんだろう
みんな銀の弾丸が欲しくてHYPEに踊らされすぎなんじゃないか?
#もちろん"タスクシステム"もHYPEであり、タスク厨はそれに踊らされ、アンチはそれを嫌うクセに別のHYPEに群がるんだ
0673名前は開発中のものです。
2009/02/15(日) 11:42:11ID:hUQv8RGuわざわざ>>510から戻した理由がわからん……。
0674名前は開発中のものです。
2009/02/15(日) 11:43:39ID:pf6wVUPlいや、比較のためだろう。
俺は、>>641 はそういう意味ではいい仕事したと思うよ。
0675名前は開発中のものです。
2009/02/15(日) 12:01:12ID:hUQv8RGuなかなか深い観点だ。恐れ入った。
業界人じゃないから昔の話とか全然わからんけど、色々と工夫していたみたいね。
いまからゲームを作るのであれば、コルーチンで書く書かないはスクリプターのセンスに任せるとして、
データの外部化については正直必須だと思うんだ。
その辺をしっかり作っておけば、準汎用で使いまわしが便利な資産になる感じだと思ってる。(完全に汎用ではないけど)
HYPE化はしかないんじゃない?
タスクに代わる実装には選択肢が多々あるから、
1択に絞れる(1択に絞れる方法が存在する)のならそれに依存したいとおもうのは仕方ない。信仰宗教と代わらんね。
0676名前は開発中のものです。
2009/02/15(日) 12:19:02ID:D0niLPLq作るゲームの規模や種類によっても違ってくるだろうし、
万事での最善も最悪も無さそうだ。
実際にある程度の規模のゲーム作って
議論してるやつがどれだけいるか知らんがなあ。
0677名前は開発中のものです。
2009/02/15(日) 12:32:22ID:20MV6lUe1000行程度から5000行程度ならタスクシステム導入でもなんとかやりすごせる
30000行程度ならタスクシステムは糞。完全に開発ストップ。 >>641 的に書くとこから再出発。
100000行程度、、、組んだこと無い
>>641 よりタスクシステム導入した方が良いとかいうやつ、30000行以上のもの書いたことあるのか?
また話変わるぞ?
そんな小手先の技術じゃどうにもならなくなる時が来るはずなんだが
なぜそこまでたどり着かないのか不思議
0678名前は開発中のものです。
2009/02/15(日) 12:44:56ID:fgsPvXPGタスクシステム以前に設計が糞なだけだろ
0679名前は開発中のものです。
2009/02/15(日) 12:45:47ID:20MV6lUe>>620
0680名前は開発中のものです。
2009/02/15(日) 12:47:31ID:20MV6lUeタスクシステムは設計の範疇にいれないんだwww
設計じゃないならなんなんだよwww
0681名前は開発中のものです。
2009/02/15(日) 12:47:49ID:hnmq8yzx自分も同人で50Kオーバーの作品を作ったことあるけど、
総ステップと、タスクが使えるかどうかは、>>670と全く同じ考え。
タスクシステムは歪みがこの程度のサイズで出てくる。
行数で、手法を変えるというよりも、タスクでやるのが、無理になってくる。
0682名前は開発中のものです。
2009/02/15(日) 12:48:40ID:hnmq8yzx0683名前は開発中のものです。
2009/02/15(日) 13:03:59ID:pf6wVUPl3万行って、ソースで言えばたったの1MBぐらいだろ?
10万行規模のソースのあるプロジェクトに関わったことがないって、どこの弱小ゲームメーカーだよ。
ちょっとした規模の商用ゲームなら、ライブラリの一部だけでも3万行ぐらいあるだろうに。
タスクシステムに限らんが、使うに値するところには使えばいいんだ。
まあ、たいていのゲームは大規模になってくると、そのゲームに特化したエンジンにせざるを得ないので
汎用的で使い回しの利く部分は減っていくのは仕方ないが。
0684名前は開発中のものです。
2009/02/15(日) 13:08:21ID:hUQv8RGuタスクシステムは規模が大きくなるにつれ処理を追うことが困難になりやすい。
(そのためにタスク管理やタスク監視のデバッグメニューを実装する必要も出てくる)
そんな中>>641に戻すのも手だが、それなら初めから組み込みスクリプト使うかな。自分なら。
0685名前は開発中のものです。
2009/02/15(日) 13:39:19ID:h/ugUohbCGエフェクトのハードコーディングを避ける目的に使うくらいじゃねえの?
ある程度、個々のタスクの動作の選択肢が限られているからこそ、
>>2をより一層抽象化できるというか。
タスクシステムの動作原理を継承しているよな。
0686名前は開発中のものです。
2009/02/15(日) 13:48:09ID:OFTP7lcI決して見やすいソースでは無かったけど、不可能では無いわな。
ゲームのモード用メインループタスク階層。敵や味方のオブジェクト用タスク階層。
メニューシステムタスク階層とか、分割統治方式で使ってたが。
他にはswitch/caseの状態を階層化して管理してる某ステップ方式とかも見たことあるが
どれも規模が大きくなると悲惨なことには変わりなかったなぁ
ただ >>641 は何のシステムも無しに力技でベタに作ってく方法だから、そもそもタスクが使えんほど
大きなコードではまったく話にならんよ…
0687名前は開発中のものです。
2009/02/15(日) 13:59:12ID:hUQv8RGu例えばLuaの適用ゲームはこんな感じ。
http://en.wikipedia.org/wiki/Lua_(programming_language)#Applications
どの程度使ってるのかは、ゲーム内によって異なるので定かではないが、
CEDECでスクエニの中の人が発表していた内容では、
WiiのFFCCというゲームの開発ではSquirrelを使っていて、
コード比はプログラム3割スクリプト7割だってさ。
0688名前は開発中のものです。
2009/02/15(日) 14:10:51ID:h/ugUohb参考になりました
0689名前は開発中のものです。
2009/02/15(日) 14:19:19ID:kIY9LVp/それは意図が全然違うじゃん
スクリプトは処理を企画に渡せるってだけでしょ?
書かなきゃいけない処理はまったく変わらない
スクリプトを話題に出してる時点で意味不明
0690名前は開発中のものです。
2009/02/15(日) 14:20:50ID:h/ugUohbスクリプトだと中間言語経由になるから、高速な相互影響処理には向いてないよね。
>WiiのFFCC
FC世代RPGの厚化粧版か。
>コード比はプログラム3割スクリプト7割
プリミティブな次元では従来のゲームからの変革はなし。
VFXだけ肥大といったところか。
タイトルの詳細をチェックしていないので、テキトーなこと言ってるけど
結局、タスクシステムは必要ってことだ。
0691名前は開発中のものです。
2009/02/15(日) 14:26:13ID:hUQv8RGu減ったりも増えたりもしない。
まずは、フレームワークとスクリプトを完全に分けます。
で、スクリプト言語の持っているコルーチンに頼って、
スクリプト実装者がゴリゴリ書く。
仕事も責任も分担できる。オススメです。
0692名前は開発中のものです。
2009/02/15(日) 14:26:58ID:FA9cfUTDムリになってくるってことだろ?
0693名前は開発中のものです。
2009/02/15(日) 14:27:13ID:kIY9LVp/じゃあ、この場所で出す話題として適切なの?どうなの?
それともその話題はタスクシステムのメリットデメリットに直結するものなの?
ちゃんと考えて発言してよ
0694名前は開発中のものです。
2009/02/15(日) 14:30:08ID:hUQv8RGuJITがあるよ。x86なら公開されてる。必要なら個人で実装すればいいけど、敷居は高いかな。
速度を稼ぐ必要があるのならCに戻すことも考慮されている。
Luaならここかな。http://luajit.org/
0695名前は開発中のものです。
2009/02/15(日) 14:34:20ID:hUQv8RGu俺の考えは、アンチタスク派で、
タスク派がコード量でプログラムが肥大化して可視性が悪いよというのであれば、スクリプト使え
ってこと。
ちゃんと考えて発言してないように見えるかい?
0696名前は開発中のものです。
2009/02/15(日) 14:43:31ID:FA9cfUTDjikiについての関数は当然別々に書くんだよな? 違うの?
0697名前は開発中のものです。
2009/02/15(日) 14:55:33ID:OFTP7lcI今後ゲーム開発はスクリプト使う方向に行くだろうし、
それ自体は賛成だけど
タスクシステムの上にスクリプトが乗っかるのか、スクリプトの上にタスクシステムを構築するのか、って感じで
スクリプト自体はタスクシステムの有無とはまた違う話だよね。
間接的にデータ駆動でコード中の複雑性が減ってタスクシステムでもコード見通しがよくなるね、という程度の話なのかな?
まぁネイティブコードの量は減るから見通しは良くなりそうだけど、スクリプトの分量が増えると
ネイティブコードと中間コードの二系統をメンテする手間で結局あまり変わらない気もする…
■ このスレッドは過去ログ倉庫に格納されています