07/04/22 20:52:24 1cO9U5KH
タスクシステム(サブルーチンがぶらさがってるリスト)とスレッドの相性は悪いんだろうか?
タスクを食っていくループでCPU資源にうまく割り振れば問題ないはずだ
2~8個程度のスレッドを生成してサブルーチンを処理するたびに次のポインタを受け取る
タスクが銀行のようにフォーク並びをしているのを想像して欲しい
並んでいる人がタスクでATMがスレッドだ
ここで問題になるのは実行する順番が入れ替わったり同時であった場合の影響のことだ
STGであればキャラクタの種別(敵キャラ、弾など)ごとに処理すれば
並列実行の影響を考える必要はない
だから、タスクごとに種別IDを割り振っておけばよい
種別IDが切り替わる所で一度全部のスレッドが処理を終わらせるまで待つことで同期をとる
(もちろんゲームによってはそう簡単にはいかないが……)
いままでタスクシステムでゲームをつくってきた人はループにちょっとした仕掛けを作るだけで
マルチコアCPUに対応できる可能性がある
現状のPC事情を考えると果たして意味がある行為なのかは疑問だがおもしろいTipsじゃなかろうか?
(現状のPC事情・・・マルチコアCPU=ハイスペック。といってもローエンド機が置き換わるのも時間の問題だろうけども)