シューティングゲーム製作技術総合 9機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/12/11(日) 02:45:19ID:mUK4fRmrそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
過去スレ,関連スレは >>2で。
0210名前は開発中のものです。
2006/01/15(日) 01:15:19ID:gUxmcQaM0211名前は開発中のものです。
2006/01/15(日) 01:20:43ID:ecaP/9FCShadeだと楽になるどころか難しくなる気がするが、楽したいならDOGA使えばいいんじゃないか
どう見てもDOGAです
って絵になるのが嫌なら使えないけど
0212名前は開発中のものです。
2006/01/15(日) 02:00:23ID:zh6qivfOオペレーションラグナロクを思い出した(笑)
0213名前は開発中のものです。
2006/01/15(日) 02:10:01ID:lEL0CT1s0214名前は開発中のものです。
2006/01/15(日) 09:48:31ID:zh6qivfO自分の作品が平凡なイメージになってしまうと危惧する人はいるかもしれんね。
0215207
2006/01/15(日) 22:27:37ID:tfthn8aBやはり同人らしく漫画やアニメ等の元ネタあるSTG作りたい。
エリア88っぽいの作ろうと思ったが、まだ無理だったので
もう少しレベル下げて中華大仙あたりが作れるようになろうっと。
>209
テストとして六角でモデルにポーズ取らせて取り込んだだけぽ。
元々8頭身モナーだったりする。
0216名前は開発中のものです。
2006/01/16(月) 00:47:41ID:irGPFY+vここのサンプルコード見てみたんですが、シューティングってtimeGetTime()と
thread必須じゃないんですね。
弾の管理とかスレッド必須かと思ってたから、道が開けた。(DirectXも必須じゃなry
目標は東鳩2シュー。
0217名前は開発中のものです。
2006/01/16(月) 00:49:57ID:DTLttG/10218名前は開発中のものです。
2006/01/16(月) 01:13:59ID:irGPFY+v速度的に厳しいのかと思ってました。
0219名前は開発中のものです。
2006/01/16(月) 01:34:19ID:xiH0NP2q0220名前は開発中のものです。
2006/01/16(月) 03:41:08ID:nh3xjDU2まあ適当なライブラリを使えば隠蔽してくれるが。
伝統的なタスクシステムによる並列動作が基本としてあるから、
ゲーム部分を作る時には要らんわな。
そこそこ精度のいいタイマーは、あるにこしたことはないが。
0221名前は開発中のものです。
2006/01/16(月) 07:18:45ID:Tq1BbUbx別個に連続した動作をさせる場合に、初心者だと必要だと思うものだよ
これはこれでわりと便利だから、使い方を覚えるにこした事はないしな
まあ、使い方を間違えると、何が起きるか予想もつかんケド
0222名前は開発中のものです。
2006/01/16(月) 08:07:45ID:xiH0NP2qごめんきっと誰もが一度は考えるお馬鹿ネタでした。
真面目な話だとマイクロスレッド使ってやると面白そうだね
0223名前は開発中のものです。
2006/01/16(月) 08:25:10ID:35vyRejV初心者はスレッドなんて知らねーよアホ
0224名前は開発中のものです。
2006/01/16(月) 08:37:51ID:rA79UtDxWindowsプログラムを勉強する時に、
一度ぐらいはOSにどんな機能があるのか調べるだろ?
俺、何か間違った事を言ってるか?
0225名前は開発中のものです。
2006/01/16(月) 08:43:05ID:rA79UtDx俺、今やってる・・・orz
そのために自前スクリプトを改良してるんだけどな・・・
スクリプト作りは大変だよ・・・
0226名前は開発中のものです。
2006/01/16(月) 09:23:10ID:T6Mi47Xmおまえが日本語を知らないチョンということはわかったから「初心者」の意味を調べてこい
0227名前は開発中のものです。
2006/01/16(月) 11:11:38ID:GFfHAuGC0228名前は開発中のものです。
2006/01/16(月) 12:09:59ID:mOmX5K2f君も君で、耳年増という単語をググってこい
0229名前は開発中のものです。
2006/01/16(月) 16:32:15ID:unhyQ+MFほんと分かりやすいなこれ
解説ページも基礎の基礎から書いてるから
初心者の俺でもキャラ移動させることができた
0230名前は開発中のものです。
2006/01/16(月) 19:55:09ID:OMBMknep初心者と書かずに素人と書くべきだったか・・・
0231名前は開発中のものです。
2006/01/16(月) 20:22:21ID:jdllBzfs0232名前は開発中のものです。
2006/01/16(月) 20:49:04ID:L1ymANwaただ逆に、同時処理ゆえに扱いづらい部分もある。
同時に同じ場所に書き込むと、何が起きるか分からないし、
イベントとかミューテックス等の同期オブジェクトの使い方を間違えれば、
即座にデッドロックだ。
0233216
2006/01/16(月) 22:10:43ID:irGPFY+vスマソ、スレッド知ってるけど初心者です orz
普段はインフラの仕事してるから、開発は初心者。
でもシューティングはすっげ好き。
初代R-TYPEからのシュータ(ry
みなさん、批判ともどもアドバイスサンクス!
0234名前は開発中のものです。
2006/01/16(月) 22:11:18ID:0mAoyPqPシングルスレッドでアセンブラレベルでチューニングするよりマルチスレッドが容易に扱える
Javaや.NET等でさくっとつくったほうがパフォーマンスはまず上だしな
並列具合とか設計を考える必要はあるが
0235名前は開発中のものです。
2006/01/16(月) 22:25:14ID:o8WVq/lN0236名前は開発中のものです。
2006/01/16(月) 22:31:03ID:4z+09alj0237名前は開発中のものです。
2006/01/16(月) 22:35:11ID:82NT9k+l0238名前は開発中のものです。
2006/01/16(月) 22:43:29ID:bC8WJ/huそもそも、1フレーム=16.6msで100や200の切り替えとかOSが対応してると思えないんだけど。
普通に擬似タスクや、配列で管理した方が普通にパフォーマンス出るよな?
もしかしてネタにマジレスしちゃってる?
0239名前は開発中のものです。
2006/01/16(月) 22:48:02ID:XtVGoflc正しく排他処理してさらにパフォーマンス上げろとか地獄に聞こえるんですが
0240名前は開発中のものです。
2006/01/16(月) 22:49:24ID:k0icdwsx流石に全部一つ一つなんてキチガイぢみてる
0241名前は開発中のものです。
2006/01/16(月) 22:51:24ID:4iFikG75デッドロックでもう死に掛けたことあるよ。
あとは、リプレイするときに、同じ状況再現できねえとか、問題山積。
プリエンティブでないマルチタスクは、ゲームにはないと逆に面倒だよな。
ようは、擬似タスクとか、マイクロスレッドとか。
0242名前は開発中のものです。
2006/01/16(月) 23:02:58ID:mOmX5K2fやるとしたらせいぜい>>240くらいか
あとは裏でVSTiを立ち上げて無駄にリアルタイムにサウンド合成するとか・・・
0243名前は開発中のものです。
2006/01/16(月) 23:20:03ID:0mAoyPqP補足さんきゅ
今後マルチコアが当たり前になるのでということ
>>241
マルチスレッドがリプレイに影響出るとかってのは設計の問題だろう
>>238
さすがにそんな馬鹿はいないはずだが
スレッドプーリングで意外と何とかなるのかも
その辺を使うとなると中間言語系レベルのの高級言語がほぼ必須になってくるわけだが
まぁGCとマルチコアの関係もわりといいしちょうどいいのかも
>>236
2DSTG以外にもあるだろ、パフォーマンス要求するSTGは
ま、有り余るマシンパワーで雷電2以上のエフェクトをだしてみたいけど
0244名前は開発中のものです。
2006/01/16(月) 23:56:25ID:4z+09aljスレッドをプールしといても、スレッド生成のコストがなくなるだけで
切り替えのコストはなくならない。
>マルチスレッドがリプレイに影響出るとかってのは設計の問題だろう
リプレイに影響が出ないように設計しちまったら、マルチスレッドの利点が殺ぎ落とされるだろ。
>その辺を使うとなると中間言語系レベルのの高級言語がほぼ必須になってくるわけだが
おいおいアホぅか。スレッドプール如きで「必須」て。
第一スレッド系はお前の挙げたJavaでもC#でもC++でも手間は対して変わらん。
織田信長とか挙げたら説得力あったのにw
>2DSTG以外にもあるだろ、パフォーマンス要求するSTGは
>ま、有り余るマシンパワーで雷電2以上のエフェクトをだしてみたいけど
必要なのはGPUのパワーだろ。マルチスレッドにすると描画も速くなると主張するか?
0245名前は開発中のものです。
2006/01/17(火) 00:32:06ID:4NyPfQ7dスレッドプールはスレッドの数を調整できてアプリ側からは気にしないのが売りなので
並列動作させるオブジェクトが数百あろうがコアが2つだからスレッドは2つ、
4コアになったからスレッド4つというふうに使うのが普通では?
0246名前は開発中のものです。
2006/01/17(火) 00:36:14ID:70FH2cU+>>245
0247名前は開発中のものです。
2006/01/17(火) 00:37:55ID:70FH2cU+>>245
まあそうなんだけど、OSが1000個くらいスレッド走らせてるからな。
4コアくらいに分割しなきゃパフォーマンスに問題があるわけじゃないなら
やらないほうが軽くていいと思うけど。
0248名前は開発中のものです。
2006/01/17(火) 00:38:06ID:U95GqFOrSTGにマルチスレッドは不向き、それだけ。
0249名前は開発中のものです。
2006/01/17(火) 00:45:32ID:BePG7deS>並列動作させるオブジェクトが数百あろうがコアが2つだからスレッドは2つ、
>4コアになったからスレッド4つというふうに使うのが普通では?
何言ってんだ。お前は。
スレッドプールの説明はメンドクサイので、ググって見つけた記事嫁
http://www.atmarkit.co.jp/fdotnet/mthread/mthread02/mthread02_01.html
スレッドが2個しかなかったら、同時に動けるオブジェクトが2個ずつじゃねーかw
一個撃墜されたら、キューから出てきてまた一つ産まれるのかw
0250名前は開発中のものです。
2006/01/17(火) 01:05:22ID:4NyPfQ7dフィックスドプールはそうだよ。
いわゆる同時に動かす数をきめといてあとはブロッキングされる。
キャッシュドプールはスレッドを基本的には作るんだけど、
すでに作られていてプールされていればそれを使う、
一定時間使わなければスレッド自体破棄ってやつだ。
通常はフィックスドプールがパフォーマンスの把握が出来つてつかいやすい。
先ほどからあおってる、あなたにはたぶんマルチスレッドのプログラムは
無理だから今までどおりシングルスレッドでやってください。
上でもいってるけど必須科目ではないんだし。
0251名前は開発中のものです。
2006/01/17(火) 01:13:15ID:BePG7deSはぁw そうですかw
で、
>並列動作させるオブジェクトが数百あろうがコアが2つだからスレッドは2つ、
>4コアになったからスレッド4つというふうに使うのが普通では?
↑この自分で書いた恥ずかしい文章はどうするのww?
0252名前は開発中のものです。
2006/01/17(火) 01:25:34ID:28sxExEk俺ついてけねえwww
0253名前は開発中のものです。
2006/01/17(火) 01:46:19ID:r59AENEl暇なので252と酒でも飲む。
0254名前は開発中のものです。
2006/01/17(火) 07:58:56ID:LW1RggL0計算部分をスレッドにして16ミリ秒とか33ミリ秒ごとにコールするようにして
描画部分はメインループで処理すればfpsとリフレッシュレートが
一致しない事による画面のカクツキを抑えることが出来る
同期の問題で実装が難しいけどな
0255名前は開発中のものです。
2006/01/17(火) 09:51:04ID:WVOcDfiN切り替えコストが少なくなるのは当然じゃねーのか
0256名前は開発中のものです。
2006/01/17(火) 10:47:29ID:MtVqA6rKスレッド使ってややっこしくしてバグ生む要因を増やすなら、素直にシングルで
作って、その労力や時間をゲームの方に割り当てたいよ。
PCみたいな動作環境がバラバラで、ゲームのコア部分にスレッド使ってシビアな
同期取るとか、考えただけでも頭こんがらがりそうだ。
243はやたらマルチスレッドが重要だ!って言ってる気がするが、マルチスレッドが
必要になるくらいパフォーマンス要求される2DSTGってどんなんだよ。
出てくるオブジェクト全部が物理演算で動いてて、しかも常時1000個以上がグリグリ動いて
とかだったら、それは必要かもしれんが。
0257名前は開発中のものです。
2006/01/17(火) 13:26:05ID:AJ+Jw87F> 同期取るとか、考えただけでも頭こんがらがりそうだ。
ここでのシビアな同期って? 例えば何?
> マルチスレッドが必要になるくらいパフォーマンス要求される2DSTGってどんなんだよ。
> 出てくるオブジェクト全部が物理演算で動いてて、しかも常時1000個以上がグリグリ動いて
> とかだったら、それは必要かもしれんが。
それはマルチスレッドで解決するの? たとえば60FPSを目標にしたばあい、
次のフレームまでのわずかな時間に演算を終らせるかどうかが問題であり、
その話題にマルチスレッドうんぬんがどうからんでくるの?
複数のプロセッサの場合スレッドがそれを有効に使うんだっけ?
0258名前は開発中のものです。
2006/01/17(火) 16:04:39ID:WYB6k/rmhttp://pc8.2ch.net/test/read.cgi/tech/1115311515/643-
0259名前は開発中のものです。
2006/01/17(火) 21:25:41ID:+YDj+cqfマルチコアを有効に使うには、まずこの考え自体を破棄しているのが、最近の流れだな
わずかな時間で処理する物と、フレームを飛び越えて長い時間をかけて処理するものと、など
0260名前は開発中のものです。
2006/01/17(火) 22:03:47ID:zdmRfE9uおまいらが今話していることはどうでもいい!
スレッドの1つや2つ使うことに関しては個人の自由だ勝手にしやがれ!
って友達が言ってた。
0261名前は開発中のものです。
2006/01/17(火) 22:14:58ID:WYB6k/rm>>222のそういう発想は誰もが一度はするかもね
で終わってるんだが。>>237みたく引っ張ってるやつもいるけど。
0262名前は開発中のものです。
2006/01/17(火) 22:17:08ID:wIyB/JTz0263名前は開発中のものです。
2006/01/17(火) 22:51:03ID:fFbNMkDz終わってねーよボケ。
お前の人生は終わってるけど。
0264名前は開発中のものです。
2006/01/17(火) 22:54:10ID:AJ+Jw87F0265名前は開発中のものです。
2006/01/17(火) 23:09:07ID:U95GqFOr↓次の話題ドゾー↓
0266名前は開発中のものです。
2006/01/17(火) 23:10:27ID:v/t2iyA10267名前は開発中のものです。
2006/01/17(火) 23:54:42ID:WVOcDfiN0268名前は開発中のものです。
2006/01/17(火) 23:56:03ID:AJ+Jw87F0269名前は開発中のものです。
2006/01/18(水) 00:26:10ID:c2N1wZsa0270名前は開発中のものです。
2006/01/18(水) 00:36:32ID:r0qZUgzd0271名前は開発中のものです。
2006/01/18(水) 00:38:34ID:Y4Ph60bK0272名前は開発中のものです。
2006/01/18(水) 01:49:01ID:ywg82UUl0273名前は開発中のものです。
2006/01/18(水) 02:08:34ID:r0qZUgzd俺は絵描き&音屋なんでプログラムはできれば誰かにやって欲しいんだが
誰もいないので仕方なく全部一人でやってるというわけさorz
0274名前は開発中のものです。
2006/01/18(水) 02:19:09ID:pPSpzIS9絵は1パターンにつき16色、サイズ16*16の組み合わせ、パレット16本を使いまわし
音はMDXでPCM8無し
それでも良ければやってやる
0275名前は開発中のものです。
2006/01/18(水) 02:38:24ID:r0qZUgzdんじゃあらかじめ複数パート合成したPCMでPDXを用意して…
0276名前は開発中のものです。
2006/01/18(水) 02:51:16ID:ZoolGVYbえらく東方の人くさいw
0277名前は開発中のものです。
2006/01/18(水) 02:51:58ID:XTj3S8TT0278名前は開発中のものです。
2006/01/18(水) 04:22:16ID:acZ9pvyTプログラムはできるけど絵、作曲ができない人なんてごろごろいるから本気で探せばすぐ見つかるんじゃないか?
0279210
2006/01/18(水) 09:31:31ID:Y4Ph60bK絵と音楽の問題はいつも俺のモチベーションを下げる(苦笑)。
0280名前は開発中のものです。
2006/01/18(水) 12:53:48ID:O0LAXWPJ0281名前は開発中のものです。
2006/01/18(水) 13:53:06ID:YZsgC2vF0282名前は開発中のものです。
2006/01/19(木) 01:38:30ID:1AbyI4uF0283名前は開発中のものです。
2006/01/19(木) 23:51:19ID:G+Fa0eE/0284名前は開発中のものです。
2006/01/20(金) 01:20:09ID:B/gap/lO0285名前は開発中のものです。
2006/01/20(金) 01:40:22ID:GqKVO76u作りすぎはそれはそれでよくない
>カプセル化
変数を勝手なタイミングで書き換えたり関数を呼んではいけないタイミングで呼んだりしてほしくないならしたほうがいい
そこらへんを完全に管理できる自信があるんならしなくてもいい
0286名前は開発中のものです。
2006/01/20(金) 01:49:28ID:AahjlHJWカプセル化は最初のうちは気にしなくてもいいが、
1メソッドはなるべく50行以内にするべし。
変数のスコープを最小限に抑えるようにしよう。
0287名前は開発中のものです。
2006/01/20(金) 05:22:28ID:RKJ8Oxlg「なぜそうしなければならないのか」
それが分からないうちはやる必要がないよ
0288名前は開発中のものです。
2006/01/20(金) 08:28:37ID:sMyuG+ym0289名前は開発中のものです。
2006/01/20(金) 09:40:12ID:RKJ8Oxlg俺は、オブジェクト指向プログラミングという概念があって、
それを実現するためにクラスを使うと表現が洗練される、という程度の問題で、
クラスを使うことは必須ではないと思うんだけれど。
そーいった意味で必須なのはモジュール化だと俺は思う。
0290名前は開発中のものです。
2006/01/20(金) 11:36:21ID:BRqppxJO>>285 なにかおかしい。
クラスの作りすぎが良くないの意味がどうにも分からん。
何をどうクラス化するか、粒度とか役割のバランスをきちんとすれば、
その結果、クラスの数が多くなる事だってあるでしょ。
0291名前は開発中のものです。
2006/01/20(金) 13:55:41ID:l6R/m2Su0292名前は開発中のものです。
2006/01/20(金) 18:42:19ID:GqKVO76u>バランスをきちんとすれば
いや俺は作り「すぎ」はいくないと言っただけであって
たくさん作るなとは言ってないわけで
適正に考えた上での数なら別に文句は言わんよ。
極端すぎる話だが1関数につき1クラスとか、どう考えても多いでしょ。
0293名前は開発中のものです。
2006/01/20(金) 18:51:51ID:BRqppxJO> 極端すぎる話だが1関数につき1クラスとか、どう考えても多いでしょ。
うん、まぁこれについても、「多い」のが直接の問題というよりは、
「そもそもその設計で正しいのか?」という匂いがするのが問題かな、と思う。
(余談:一個の関数のみオーバーライドした派生クラスなどは、関数一個と数えるのかな)
0294名前は開発中のものです。
2006/01/20(金) 21:52:57ID:Un0F1Pki0295名前は開発中のものです。
2006/01/20(金) 23:52:53ID:rs0ICqBVクラスは基礎をかじっただけでも飛躍的にプログラムが組みやすくなる
0296名前は開発中のものです。
2006/01/21(土) 00:29:20ID:x/UppAtT0297名前は開発中のものです。
2006/01/21(土) 00:30:08ID:3jTeBScx0298名前は開発中のものです。
2006/01/21(土) 00:30:18ID:dmPbXSD+0299名前は開発中のものです。
2006/01/21(土) 00:31:52ID:G740ceEl0300名前は開発中のものです。
2006/01/21(土) 00:39:49ID:G740ceElどちらかといえば大雑把な設計向け
0301名前は開発中のものです。
2006/01/21(土) 00:49:30ID:G740ceElクラスの数が異常なまでに増えたりするわな
漏れの事だが
0302名前は開発中のものです。
2006/01/21(土) 01:02:30ID:NWahimDI現状、
関数A1(&player, &enemy)
関数A2(&enemy, &player)
理想、
関数A3(&player, &enemy)
関数A3(&enemy, &player)
ちなみにplayerとenemyは構造体です。
0303名前は開発中のものです。
2006/01/21(土) 01:07:12ID:k2Azwx8g0304名前は開発中のものです。
2006/01/21(土) 01:11:33ID:NbWlpyc9方法1
playerとenemyの基底クラスを揃える
方法2
共用体を使う
方法3
構造体の内容を無理やりにでも揃える
方法4
当たり判定に必要なデータを入れ子にして保持する
方法5
入れ替える必要あんの?どっちが主で従でも当たってるかどうかがわかればいいのでは?
方法4がお手軽で汎用的
構造体の中にx、y、width、heightをバラバラに持つのではなく
player構造体やenemy構造体にrect構造体を持たせる
0305名前は開発中のものです。
2006/01/21(土) 01:13:55ID:qcTN1Btg0306名前は開発中のものです。
2006/01/21(土) 01:19:01ID:ht2WeWt90307名前は開発中のものです。
2006/01/21(土) 01:23:16ID:geuRotB0OOPで作ってる場合はほとんど当然方法1になっており、
悩む必要が発生しない。クラスを使うかどうかというより、
OOPを自分が採用するかどうかに悩めばいいのに!とおもふ。
0308名前は開発中のものです。
2006/01/21(土) 01:27:04ID:geuRotB00309名前は開発中のものです。
2006/01/21(土) 01:31:53ID:K9PfjxeG■ このスレッドは過去ログ倉庫に格納されています