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


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

シューティングゲーム製作技術総合 13機目



1 名前:名前は開発中のものです。 mailto:sage [2007/03/06(火) 22:39:30 ID:17uIsd2S]
ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。

このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!

ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。

過去スレ,関連スレは >>2で。


119 名前:名前は開発中のものです。 mailto:sage [2007/04/03(火) 18:33:25 ID:Ci7BKCSJ]
STG知らずに作るとマイルストーンみたいになると思う


120 名前:名前は開発中のものです。 mailto:sage [2007/04/03(火) 22:08:06 ID:HPnXOUXN]
グラディウス3とかスコルピウスとか
ゲーマーの意見を集約したら駄ゲーになるんだろう


121 名前:名前は開発中のものです。 mailto:sage [2007/04/04(水) 00:31:51 ID:sBrehmfM]
特にひどいタイトルが来たなw

122 名前:名前は開発中のものです。 mailto:sage [2007/04/04(水) 17:28:43 ID:xZsJ6jDt]
>>114
俺が今作ってるやつで消してやるよ。

123 名前:名前は開発中のものです。 mailto:sage [2007/04/04(水) 23:00:49 ID:GUhYKL0X]
意見聞きすぎもダメ、聞かなすぎもダメ
なにごともほどほどが一番
当たり前すぎてつまんねwwww

これまでいろいろ見てきた限りだと
同人なら己だけ信じて作ったほうがマシかも

124 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 01:32:10 ID:60F7Zb/h]
つ ttp://www.aoky.net/articles/kathy_sierra/dont_give_in_to.htm

125 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 02:25:56 ID:0U6Gz5TR]
もっともらしいこと書いてあるけど
あまり役に立ちそうにないな

126 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 14:01:47 ID:d37Jov0m]
シューティングって売れるの?
俺は超連射とか弾幕姉妹は1000円位なら買ってもいいと思うけど

127 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 14:03:16 ID:wPALxYRS]
タスクシステムってマジ凄いね。
敵の数が1000超え、弾総数が500超えでも俺のセレロン2.5GHzはたまにCPU100%になるくらい。
偉大だわ、タスクシステム様様。



128 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 14:49:13 ID:L3yruvwZ]
>>127
( ゜Д゜)・・・

( ゜Д゜ )

129 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 17:12:35 ID:GzOaY9aQ]

   / ̄ ̄\
 /   _ノ  \
 |   ( ●)(●)
. |     (__人__)____
  |     ` ⌒/ ─' 'ー\
.  |       /( ○)  (○)\
.  ヽ     /  ⌒(n_人__)⌒ \  
   ヽ   |、    (  ヨ    | >>127よ、おまいは一体nウググ
   /    `ー─−  厂   /
   |   、 _   __,,/     \
    |       ̄

130 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 00:00:08 ID:xOHyAwJg]
>>126
超連射は有料の同人ソフトだったのをしらんのかね

131 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 01:07:51 ID:WJFhenl5]
だから何だ

132 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 12:28:44 ID:XNbhGIEV]
弾幕姉妹も元々有料だな

133 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 12:48:54 ID:Ez0a5X2M]
で、それくらいのクオリティだったら売れるの?

134 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 13:46:05 ID:cRkLHc54]
俺のシューティングは2000円でも売れるし、
キミらのは100円でも売れない。それだけだ。

135 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 14:07:24 ID:Ez0a5X2M]
>>134
2000円で合計いくら売れた?

136 名前:名前は開発中のものです。 mailto:sage [2007/04/07(土) 09:29:04 ID:ZlErejSJ]
>>134
いいなあ

>>127


137 名前:名前は開発中のものです。 mailto:sage [2007/04/07(土) 09:46:42 ID:lW/a3cZ6]
ゲームが1500だったとして、ソース付きで\2500なら買う?



138 名前:名前は開発中のものです。 mailto:sage [2007/04/07(土) 10:32:28 ID:tjrQgg/c]
>>127 まったく釣れませんねw

139 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 10:10:29 ID:NPDzV1Zi]
タスクシステムと描画システムって分離させてる?

いまは描画タスクとスプライトが1:1で対応しているせいで複数のスプライトを使う
ザコキャラを作るのに、当たり判定のないタスクを作らないといけなくて不便。

最初は1キャラ=1スプライトで作ってたからよかったんだけど、
見た目を少しよくしようとすると1スプライトじゃダメだね。


140 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 11:28:03 ID:2EzO/eoT]
>>139
1キャラ1スプライトってタスクシステムだとかそういう問題じゃなくね?

141 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 13:42:29 ID:pJLb1EHC]
タンデムシステムで2重化すればいいんだよ

142 名前:139 mailto:sage [2007/04/08(日) 14:53:18 ID:tC+t1ah0]
質問を変えてみる

・1キャラで任意枚数のスプライトが持てる?
それとも、各キャラごとに固定枚数? ザコAなら1枚、ザコBなら2枚とか。

・スプライトの表示座標は誰が持つ?
a.タスククラスのメンバ
b.タスククラスのメンバの中のスプライトクラス
c.タスククラスは、スプライト管理用のハンドルかポインタを持つだけで、
スプライト管理クラス内のスプライトクラスが持つ

いまは、1キャラで1枚固定でaタイプになってるのを
1キャラで任意枚数持てて、cタイプに移行しようかと思ってるんだけれど。


143 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 14:56:50 ID:MeJkbAWf]
C++のクラス継承を使ったタスクシステムなど邪道。
バッファの配置にもろに依存したり、関数ポインタをいじらないと気分がでない。

ということなんじゃないかな。


144 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 15:05:56 ID:MeJkbAWf]
表示座標はかならずしも持つ必要がない。描画のときに算出して使い捨てにするならば。


145 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 15:09:14 ID:MeJkbAWf]
3DモデルでSTGを作るとしたら、タスク側からキャラごとにポリゴン枚数を限定する設計にはしないだろう。
2Dでも同じ。タスク外部の「2Dモデルデータ」を表示すると考えるべき。


146 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 15:10:51 ID:8er0Ti+V]
キャラが複数パーツで構成されてる同人2DSTG自体ほとんど見ないなぁ。

パッと思いつくのは
超連射・ヒトガタハッパ・WARNING FOREVER・GALSHELL2
くらいかな。

俺もやったことないのでこういうノウハウは気になる。

147 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 15:17:12 ID:llFVYKvr]
釣りに思えてきた



148 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 17:48:42 ID:asjpoDkq]
>>147 もうすこし見守ろうw

149 名前:名前は開発中のものです。 mailto:sage [2007/04/08(日) 18:03:25 ID:971sF5UC]
>139
分離したければすれば? としか言いようがないんだが。
あと>140に同意
意外に定義があやふやだから安易にタスクとか言うなと。

150 名前:139 mailto:sage [2007/04/08(日) 23:57:59 ID:V50EkWBY]
>>145のいうようにモデルデータのような感じで管理しようかとは思ってた。

>>149 他の人間がどうしてるのか聞きたいんだって。
分離するつもりではいる。

俺の聞き方が悪いんだろうけど、
問題を把握できていないのでどう聞いていいのか分らないな。


151 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 01:01:23 ID:TxFUogfY]
タスクとか
  ↓
上位レイヤ(複数スプライト・複数モデル・混合など)
  ↓
下位レイヤ(単スプライト・単モデルとか)

こんなイメージで。
上位で階層構造を解析してマトリクスを作って下位を呼ぶ。
2Dか3Dかはあんまり関係ないな。

152 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 10:31:02 ID:mEhqG2Ma]
どうにも前スレでボスステージがどうたら言っていた彼っぽい気がするんだが・・・。
>>151とイメージしてることは同じだが、少し噛み砕いた擬似コードで書く。

ZakoTask() {
 PutCharacter( 「雑魚1」, x, y );
}

PutCharactor( 敵種類, x, y ) {
 if ( 敵種類 == 「雑魚1」 ) {
  PutSprite( 胴体, x, y );
  PutSprite( 右手, x-8, y );
  PutSprite( 左手, x+8, y );
  PutSprite( プロペラ, x, y+4 );
 }
}

みたいな。(コード直書きはダサいから普通ならテーブル作るけど)
ここまで書けば流石に理解できると思う。

タスク内部にスプライトへのポインタを保持したければしてもいいけど
表示するたびに破棄したほうが楽だと思うぞ。

153 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 11:10:29 ID:TJO4g1v+]
俺だったらSpriteクラスを作って、
Spriteオブジェクトへのポインタを保持させて
spriteBody->draw(x, y, …);
spriteHead->draw(x, y-4, …);
ってな感じにする。
パーツ量を可変にしたいときは、
Spriteオブジェクトへのポインタをリストで管理すればいい。
表示するたびに破棄ってのは楽だと思うけどオススメできない。

っていうか
>どうにも前スレでボスステージがどうたら言っていた彼っぽい気がするんだが・・・。
俺もそう思う。前スレでの反省が全く生かされていない。

154 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 12:19:38 ID:TxFUogfY]
151だが。
上位イレヤーは
 while(Object){
#if CPP
  Object->Draw();
#else
  Object->Draw(Object);
#endif
  Object = Object->Next;
 }
でOK。
座標は前もってObjectクラス/構造体に設定しておく。
リストで管理すれば面倒が無いし汎用性もあるでそ。

155 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 12:34:37 ID:TxFUogfY]
もうちょい書くか。C++っぽく。
DrawAll (){
 cTASK* Task;
 cObject* Object;
 for( Task=(cTask*)TaskIdxTop ; Task ; Task=Task->Next )
 {
  for( Object=Task->Object; Object ; Object=Object->Next )
   Object->Draw();
 }
}
簡易的に書くとこんな感じ。
一方向リストじゃなくてChild、Parent、Sibling等の連結で階層構造にしてマトリクスで座標を管理したりする。
階層構造をがっしりと作って弾の射出位置なんかも組み込めば、多パーツで手の先から弾を撃ったりとかも可能。

方言が多くて分りにくいかも知れんけど。

156 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 12:51:57 ID:TJO4g1v+]
>>155
そこまでやっちゃうんだったらタスクシステム捨てて
普通にオブジェクト指向で作った方がよくね?
Object=Task->Object;にすっごい違和感を感じる。

157 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 13:22:09 ID:TxFUogfY]
>>156 の言うタスクシステムとオブジェクト指向にどれくらいの違いがあるのか分らんが、
cTaskはタスククラスの基底で、cObjectは描画オブジェクトクラスの基底なので
オブジェクト指向とやらになっていると思うんだけど。
いや、ちゃんと勉強しているわけじゃないから単語の正式な意味は知らんのだけどさ。

だいたい、そこまでやっちゃうくらいなら、というけど
> if ( 敵種類 == 「雑魚1」 ) {
>  PutSprite( 胴体, x, y );
>  PutSprite( 右手, x-8, y );
>  PutSprite( 左手, x+8, y );
>  PutSprite( プロペラ, x, y+4 );
> }
こういう形で作っていくのを一歩押し進めただけじゃね?

>Object=Task->Object;にすっごい違和感を感じる。
どういう違和感か教えてもらえると勉強になるんですが、よろしければ教えてください。



158 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 13:47:46 ID:TJO4g1v+]
>>157
別に>>155がオブジェクト指向でないとは言っていないんだが…。

違和感を感じたのは、オブジェクトの入れ物と化しているものに
「タスク」という名前がついている点。
「タスク」って「物の塊」ではなく「処理の単位」を表す言葉だと思うから、
胴体やら腕やらが「オブジェクト」に分類されて、
それを持つ雑魚が「タスク」に分類されるのが何となく変だと思った。

159 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 14:40:22 ID:TJO4g1v+]
(>>158の続き)
つまり、雑魚も「オブジェクト」でいいじゃんっていう話。
class Zako : public Object
{
public:
  void draw() {doutai->draw(x, y); migite->draw(x-8, y); …}
protected:
  double x, y;
  Doutai* doutai;
  Migite* migite;
};

リストを使ってスマートにやりたいっていうんだったら、
class ObjectComposite : public Object
{
public:
  void draw() {object_list内の全オブジェクトのdrawを呼ぶ};
protected:
  list<Object*> object_list;
};
をZakoが継承すればいい。個別に引数を渡したいときには困るかもだがな。

こういう風にすれば、全てのオブジェクトを描画したい時は
for(iterator = list.begin(); iterator != list.end(); ++iterator) {
  (*iterator)->draw();
}
だけで済む。オブジェクトが次のオブジェクトを知っている必要はなくなる。

まだ色々書きたいことはあるけど何か反応があってからにする。長文スマン。

160 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 16:04:22 ID:TxFUogfY]
cTask から派生したcZakoなりなんなりが移動やらの処理させるわけだが。
で、部位破壊やコリジョン・射出位置なんかの階層構造を元にcObjectから派生した表示物(cSpriteやcModelみたいなの)を
表示していく。
処理であるcTaskが管理する表示物cObjectってのに違和感があるの?
分ってると思うが、TASK−SPRITEが一対一でやってる人向けへの多表示物のサンプルだぞ?

階層構造のリストを別に持つならばオブジェクト自体は親子関係を知らなくてもいいが、
おそらく、そのあたりを理解していないと思ってあんまり突っ込んでないんだけど。

言わんとすることは分るけど、そもそもが一応>>139へのアドバイスのつもりで書いているので
Cの人でもなんとなく理解できる形にしているってのを念頭において欲しい。
というか、>>157は書かん方が良かった気がしてきたよ。

仕事が込み入ってきたので次のレスはちょっと後になります。

161 名前:139 mailto:sage [2007/04/09(月) 21:04:22 ID:IZQ6dIv+]
前スレのボスステージを聞いていたやつ並にアホなことを聞いてたのか
親子だのリストだの説明されてるしorz

>>152のようにやれば動くのは判ってる。その上で>>152が指摘するように
ダサいからどうやってまとめるか?テーブル化するか?って話が聞きたかったのよ。

>>158-159 の説明とうちの仕組みの差が分らない。
うちではザコ戦闘機とそいつの影が2つのオブジェクトになっていて、
影は戦闘機の子供になってる。システムからみたら等価。


162 名前:139 mailto:sage [2007/04/09(月) 21:10:28 ID:IZQ6dIv+]
意味無いけどうちの描画処理

void CPriorityList::DoAll( PtrTaskFunc pFunc) {
 for_each( mList.begin(), mList.end(), std::mem_fun(pFunc));
}
void CTaskManager::DrawAll()
{
 if (!mpTaskFunc) return;
 for_each( mList.begin(), mList.end()
  , std::bind2nd( std::mem_fun(&CPriorityList::DoAll), mpDrawFunc));
}

CPriorityListはオーダーリングテーブルでここにぶら下がってるやつらは同じ優先順位で描画される。
このリストとタスク自体の親子関係は別で子供のほうが優先度で上にくることもある。

こいつをCSpriteManagerにして、それを管理するタスククラスを作れば>>155風になるか。


163 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 21:57:31 ID:SuUEv+7y]
さっぱり分からん。BASICが一番だな。C++でできることって
BASICでもできるし。アルゴリズムをどうしようかというより、
プログラムに振り回されてるように見える。BASICなら
そんなことないし。BASICが一番だな。

members2.tsukaeru.net/ogawa/yaap.html



164 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 22:21:02 ID:i6AODBV6]
>アルゴリズムをどうしようかというより、プログラムに振り回されてるように見える
それは単に ( プログラムを組む側の問題 || お前の主観 ) だろ。
でも俺はC++を支持しない。BASICも支持しない。

165 名前:名前は開発中のものです。 mailto:sage [2007/04/09(月) 22:32:57 ID:i6AODBV6]
>>163
結婚してください!

166 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 02:01:32 ID:9N2vtVIw]
>>163
お前、Basicに振り回されてるぞw

167 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 02:15:50 ID:lD8YyDT2]
>>163
あなたは 統合失調症破瓜型 (ICD-10 F20.1) です。



168 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 03:33:36 ID:tZbTxBE+]
タスクシステムに振り回される人たちが何言ってもな

169 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 09:29:44 ID:UI/nSn6t]
>C++でできることってBASICでもできるし。
逆だろ

170 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 09:37:52 ID:9N2vtVIw]
10年くらい前に、C言語でできるしって逝っている人思い出すね

171 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 09:50:07 ID:/+DtHVxm]
GOTO >>163

172 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 10:06:24 ID:U0fc/rJ5]
C++でできることってアセンブラでもできるし。

173 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 10:22:25 ID:BAAIxBDb]
そりゃそうだが

174 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 10:28:05 ID:BAAIxBDb]
で、139はお腹一杯になったんだろうか?

このスレは常にネタに飢えてるから、なんかないか?
仕事の合間だが反応できるものには食いつくぜー?

175 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 11:43:20 ID:egUnfrgh]
プログラムに関しては特にないんだよなあ

176 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 16:16:41 ID:qQCxWcPx]
テイルズギアみたいなの作りたいんだけど(3Dなのに物体が食い込まない)
3Dを一回メモリに描いてからゲーム画面に描くしかないよね?
そして真上から見てるときはいいけど一旦3D表示したいときの座標計算がわけ分からなくなる

177 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 16:22:16 ID:qQCxWcPx]
一人で作るから完成しない確立高いけどな



178 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 16:44:06 ID:egUnfrgh]
>177
おまえいくつ?

179 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 16:46:27 ID:BAAIxBDb]
>>176
ポリ単位でZソートになるが、Zバッファを使わないってのはどうよ。
モデルをプライオリティでソート → モデル描画時にポリゴンをZソート
って手順で。

180 名前:名前は開発中のものです。 mailto:sage [2007/04/10(火) 17:12:03 ID:qQCxWcPx]
>>179
3Dは全部ライブラリに任せてたから気付かなかった
ありがとう

181 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 10:22:36 ID:J6IpVt/X]
>>139>>155方式を採用したのだろうか
どう考えても劣化するようにしか思えないけど

182 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 16:10:21 ID:8+/pBWNi]
どっちも大差ないよ
重要なのはデータ構造とその持ち方だし

183 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 16:35:15 ID:gWESHKc4]
データ構造で比較したらどう考えても>>162 >>> >>155だろ・・・

184 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 16:52:45 ID:/TToK/W0]
一制御多描画のサンプルとして書いた155は要求を満たしていると思うんだが。
もしかして実際に使ってるコードを貼らんといかんかったの?

つーかなんで今頃蒸し返してんの

185 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 17:16:35 ID:I1U3Wgr+]
要求を満たしていないといっているやつはだーれもおらんがな(´・ω・`)
本人乙

186 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 17:29:06 ID:/TToK/W0]
乙もなにも普通に本人だよ。
リストや階層で持つのはどうよーってサンプル書いただけで、後になって劣化だの何だの言われんのは
気持ちワリーっつーの。

187 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 18:03:29 ID:NjuRL1Cm]
叩かれている最中に本人宣言して乗り込むような真似をしたら
余計に荒れるだろ。微妙な空気で静観していたこっちの身にもなってくれ。

全ては>>139が日本語で質問しなかったのと、他に特に話題が無いせい。
次スレは無くてもいいかもわからんね。



188 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 18:06:44 ID:8+/pBWNi]
>>162>>155にプライオリティキューが生えただけの代物で本質的には大差ないよ
>>155のObject->Draw()の先にソートを追加すればほぼ等価になるし

俺が話題にしたかったのは>>161に書かれているように
複合スプライトテーブルをどのように作り持つかってことだったんだが
どうでもよくなってきた

189 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 18:09:33 ID:8+/pBWNi]
あ、個人叩きの最中だったのか
どうもお邪魔しました
てへへ

190 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 18:44:52 ID:OIcSfTuQ]
>>186
だから今時BASICなんて流行らないと

191 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 19:20:56 ID:QLq+44EF]
HSPで

192 名前:139 mailto:sage [2007/04/11(水) 21:44:16 ID:Bi8yiGUR]
キャラが生成された時点で、スプライト群の状態が固定されるなら
3Dモデルのようにデータ/テーブル化でいいかなと思ったんだけど
頻繁に個々のスプライトの状態を弄るようなら下手に隠蔽化はよくないかな。
と悩み中。

どっちにしても>>155のようにタスク(キャラ)とオブジェクト(スプライト)で分離する。

いい加減に名無しに戻るわ。


193 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 22:07:09 ID:4yrXyFS8]
思ったんだけど、
for(;ここに文を入れるということで;)
タスクシステムの利点である、条件分岐の少なさによるパフォーマンス向上が
無くなってると思うんだ。
そんな風にするんだったら最初からグループごとに静的なタスクを作っておいてそのポインタをグローバルに保持、
それを目印にタスクを中途位置から挿入ってすれば良いじゃん。下みたいに。
TaskGroup1(dumytask) next TaskGroup2
TaskGroup2(dumytask) next TaskGroup3
TaskGroup3(dumytask) next TaskGroup1

TaskGroup1(dumytask) next BulletTask (0)
BulletTask (0) next BulletTask (1)
BulletTask (1) next BulletTask (2)
BulletTask (2) next BulletTask (3)
BulletTask (3) next BulletTask (4)
BulletTask (4) next TaskGroup2
TaskGroup2(dumytask) next EnemyTask (0)
EnemyTask (0) next EnemyTask (1)
EnemyTask (1) next TaskGroup3
TaskGroup3(dumytask) next TaskGroup1
でもメモリ無駄遣いしてるのは確かだから、気になる人はあれだね、うん。饅頭くいながら焼酎はうまい。

194 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 22:33:14 ID:/TToK/W0]
> タスクシステムの利点である、条件分岐の少なさによるパフォーマンス向上が
ものすごくはじめて聞きました。
俺の予想では>>193>>127だ。

そんで何がしたいのかサッパリ分らんソースだ。
リンクの終端と先頭が繋がっているがコレをどうやって処理していくの?
リンク順に処理していったら無限ループ突入じゃん。

195 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 22:42:33 ID:U9aP3Rrw]
>>192
スプライトという言い方がおかしいのかもしれんぞ?
タスク管理とかそんなのとまったく関係ないし

196 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 23:10:17 ID:XaHk6A2z]
>>194
オリジナル(ギャラクシアン)のタスクシステムは循環構造だよ、リングなんだよ
Windowsでやるならメッセージループタスクを挿入する必要がある
無限ループじゃなければ(純粋な)タスクシステムではない


>行動ループと描画ループを混ぜるか否か
行動と描画を一緒にやっちゃうとDirectXの場合はグラフィックボード担当部分のパフォーマンスが稼げない
しかし、一般的にはループの回数が増えるほどパフォーマンスは不利(CPU担当部分)
設計としては分離してるほうが美しいね、Javaっぽい美しさだけどw

197 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 00:04:08 ID:U9aP3Rrw]
行動と描画は分けるのが基本だべ
ラスタースプライトならなおさら必須だったし

何を持ってJavaっぽいというのか疑問



198 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 03:35:59 ID:UxnuW2YG]
(純粋な)タスクシステムって・・・オイオイ
どこの解説に感化されたのか知らんけどあまり鵜呑みにしちゃいかんよ

199 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 06:37:42 ID:/5yDka2p]
>>198
オフコンとかの時代の組み込みOSがそんなかっじだったような。

スレッドみたいなもんだから強ち間違ってないよ。

200 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 07:47:47 ID:qgsnUEw8]
原理主義者みたいなのが必ず出てくる。
俺定義に合わない奴を「異教徒どもめ」と糾弾を始める。
荒れる。

宗教の話ですが。

201 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 07:57:30 ID:V5BuRGqQ]
自己紹介乙

202 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 09:50:35 ID:fA3Ep4gK]
うごきゃなんでもいいんだよ

203 名前:名前は開発中のものです。 [2007/04/12(木) 13:19:35 ID:gzUpXrks]
「シューティングゲームプログラミング」のタスクシステムって構造体キャスト使ってるけど、危ないよね
動的メモリ確保の方がいいような気がする


204 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 13:30:12 ID:/5yDka2p]
何が危ないんだか良く分らん。

メモリを気にしなくて良い環境なら動的確保の方がスマート。
メモリを気にしないといけない環境なら構造体キャストの方がメモリ分断のリスクが無い。
どっちも一長一短だから好きな方でいいでしょ。

小メモリでもメモリ管理を自前で作れば分断の危険も抑えつつ動的確保ができて
両方の長所をゲットできる。
短所もゲットできるが。

205 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 13:58:34 ID:NfSDrzn5]
シューティングってハードコーティングの量が多くね?

206 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 16:03:03 ID:UxnuW2YG]
ジャンルで括るならむしろ少ないほうだと思うが。
ただ敷居が低い分、ハードコーディングしてしまう人間が多い印象はある。

207 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 19:27:25 ID:4Hf1Cbgr]
無駄な最適化に血道を上げる人が一番多い印象がある。



208 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 19:31:57 ID:SBQ7922s]
完成させることが目的じゃない人が大勢いるからな

209 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 22:11:28 ID:V5BuRGqQ]
ゲーム製作の観点からすると、シューティングゲームは
昔に発明された最適化手法が盛りだくさんだし、
普通に作ろうとする分には比較的楽だしで
恰好の教材・実験台だからな。
シューターからすれば、さっさと完成させろって感じだろうけど。

210 名前:名前は開発中のものです。 mailto:sage [2007/04/12(木) 22:18:41 ID:/5yDka2p]
自作ライブラリのサンプルはだいたい簡易STGだ。

211 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 02:18:44 ID:DksOutEf]
>>207-208
あ〜、それはあるな
ソースコードを奇麗で見やすく最適に書く事の方が、
ゲームの完成よりも優先順位が上になってるとオモ

212 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 08:20:01 ID:nB0ufN7B]
ミニシューは叩き台に丁度いいよね。作りながらライブラリに手を入れてる。
ミニシュー→ライブラリ→ミニシュー→ライブラリ→ リセットボタン押すまで無限ループ

213 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 08:24:24 ID:4sSLH2P/]
人生の転機で止めざるを得なくなるリセットボタンだけどなw
(ゲーム会社に入って仕事が忙しくて作る気がなくなるのも含め)


214 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 20:36:55 ID:zI+k+2LL]
自分の技術力向上とともにプログラムのアラが見えてきてしまい、
結局全面リフォームor気力不足で中断、という展開もあるけどね。

215 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 20:49:44 ID:LkRq5pyV]
だから小規模な作品でってことでそ。
そもそもシューティング自体そんなご大層な規模じゃないけど。

216 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 21:50:41 ID:DXjatq+g]
凝るべきところはゲーム性であり絵であるわけでプログラムでは断じて無いからな。
といいつつ後で楽するためなんだ、とか自分に言い訳して無駄な回り道をしている俺。

217 名前:名前は開発中のものです。 mailto:sage [2007/04/14(土) 15:24:26 ID:AaNYoTSp]
Windowsアップデートしたらジョイスティック認識されなくなった
なんでだろ〜♪
なんでだろ〜♪

コンシューマーで開発できる連中がうらやましいくなった
なんでだろ〜♪
なんでだろ〜♪



218 名前:名前は開発中のものです。 mailto:sage [2007/04/14(土) 15:26:16 ID:B++udHW8]
昔DirectXを更新するたびに、ジョイスティックのオブジェクト名が変わったことあったが、それ関連?

219 名前:名前は開発中のものです。 mailto:sage [2007/04/14(土) 16:38:39 ID:AaNYoTSp]
ソースコードレベルじゃなくてハードウェアレベルの問題
ドライバ関連か俺?ふじぇじfsじゃいfjw;あえ






[ 続きを読む ] / [ 携帯版 ]

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

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