シューティングゲーム製作技術総合 12機目
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
2006/08/06(日) 00:36:37ID:bMXg4APtそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
過去スレ,関連スレは >>2で。
0936名前は開発中のものです。
2007/03/04(日) 17:44:12ID:U//ZsCle弾幕を時間をかけて大量にばらまいたあと、全部の弾が効果音と共に一瞬で別の弾に変わったりするんだが?
つまり基本的には、ステージによってルールが変化するようなケースを想定してるわけ。
0937名前は開発中のものです。
2007/03/04(日) 17:50:04ID:HAhTvGLCメインループ内に全部の処理がごちゃまぜになっているような
汚いプログラムであっても、画面チェンジ時にフラグをひとつ立てて
処理を分岐させるだけで十分だと思うのだが。
実装方法は山ほど思いつくが、グローバル変数がややこしくなるような
実装はひとつも思いつかねえ。
0938名前は開発中のものです。
2007/03/04(日) 17:51:39ID:fartzWa7・一定時間後に弾をすべて変化させるタスクの発動
・最初から一定時間後に変化する弾を作る
めんどい?
0939名前は開発中のものです。
2007/03/04(日) 17:58:46ID:ELeB6++80940名前は開発中のものです。
2007/03/04(日) 18:01:19ID:fartzWa70941名前は開発中のものです。
2007/03/04(日) 18:02:20ID:HAhTvGLCというかせめて使っている言語ぐらい教えてくれ。
0942名前は開発中のものです。
2007/03/04(日) 18:35:01ID:HAhTvGLC足りてないだけな匂いがするんだよね…。
Cを使っているのに関数ポインタや動的メモリ確保についてしらないとか、
C++やJava(いないと思うけど)を使っているのに
クラスを活用しきれていないとか(特に委譲とか)だったら
これらについて勉強しなおした方がいい。
あとタスクシステムについても。
スクリプトだったらごちゃごちゃになっても文句言うな。
0943名前は開発中のものです。
2007/03/04(日) 18:38:15ID:DdFsNkAzスクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
スクリプトだったらごちゃごちゃになっても文句言うな
0944名前は開発中のものです。
2007/03/04(日) 18:39:49ID:yrQ/olK70945名前は開発中のものです。
2007/03/04(日) 18:44:04ID:fartzWa70946名前は開発中のものです。
2007/03/04(日) 18:53:42ID:HAhTvGLCそこだけ取り上げるなバーローw
俺はスクリプトに関して無知だからアドバイスできんし
相手の仕様言語(ツール)は結局わからんしで
少々投げやりになって書いてしまっただけだw
でもスクリプトを馬鹿にする発言っぽいから謝っとく。すまんかった。
0947名前は開発中のものです。
2007/03/04(日) 19:04:07ID:3iY3lGBk0948名前は開発中のものです。
2007/03/04(日) 19:17:02ID:k0G/xwJv>東方みたいに画面チェンジと同時に弾の性質が変わったりとか、
オブジェクトリストから弾IDを持つものを探して、その情報を元に、同じ位置に新しい弾を作る。
古い弾は殺しとく。
>インベーダゲームみたいな敵弾でもこっちの弾でも壊せる障害物を一時的に出してみるとか、
障害物の当たり属性を敵弾と自機弾に設定する。
>二体以上以上のボスキャラが合体変形したりして、全部倒してようやく先に進めるとか、
子供を管理するだけの親を作り、合体前のキャラを子として見張る。
合体したくなったら子供に号令かけて合体させ、合体後は子供を殺して自分自身がキャラになる。
>色々と変なバリエーションを使うと、グローバル変数の扱いがややこしくならね?
グローバル変数は使わない。
>>937の言うとおり実装方法はいくらでもあるんだけど
俺だったらこうするみたいな。
0949名前は開発中のものです。
2007/03/04(日) 19:17:17ID:sf6/O3bq口調がいっぱしのプログラマーぶってるから
みんな普通のやり方を教えてくれないのなw
敵弾っつっても、方向と速度(移動量)だけじゃなくて
「状態」「種類」「タイマ」といったパラメータをいろいろ持たせてあげよう。
タイマが一定値になったら速度・方向を変えてやれば
東方みたいな弾幕ができるよ。
敵・自機・障害物にもフラグを持たせて、それによって
敵弾に当たる・自機弾に当たる・障害物に当たるってやれば
当たり判定は共通処理にできる。
0950名前は開発中のものです。
2007/03/04(日) 19:19:39ID:E/eX2xqkon〜gosubとローカル変数宣言で結構スッキリ組めたぞ
どんな環境でもやり方次第だと思うんだけどね
0951名前は開発中のものです。
2007/03/04(日) 19:32:12ID:HAhTvGLC俺は階層型タスクシステムを利用しているからボスに関しては同じかな。
画面チェンジで性質の変わる弾に関しては、
大量のオブジェクトの生成・破棄はなるべく避けたいから
既存の弾オブジェクトの状態を変更するだけに留めるかな。
0952名前は開発中のものです。
2007/03/04(日) 20:33:57ID:9C2BU3SO>東方みたいに画面チェンジと同時に弾の性質が変わったりとか、
複数のキャラクタが属性を共有する場合は独立させる
この場合は弾オブジェクトに弾の性質オブジェクトへの参照を持たせる
>インベーダゲームみたいな敵弾でもこっちの弾でも壊せる障害物を一時的に出してみるとか、
キャラクタの組み合わせによって分岐が変わる場合はテーブルを作成する
この場合は全キャラ×全キャラの衝突有無の表をつくって接触するたびに検索する
>二体以上以上のボスキャラが合体変形したりして、全部倒してようやく先に進めるとか、
集団を扱う場合は画面に表示しないコントロール専用のタスクを作成する
この場合はコントロールタスクからボス1やボス2へ参照を繋ぐ
コントロールタスクから合体などの指示をだす
ボス1や2が破壊された場合はコントロールタスクへそれを通知する
基本こんな感じだけど速度が問題になる場合はどんどん崩す
データベースでいう正規化された状態だからそのまま使うと遅いよ
でも設計する段階では正規化してるし崩すにしても崩すパターンあるから簡単
0953名前は開発中のものです。
2007/03/04(日) 23:40:33ID:Xjqd8ZGIという理想状態の話ばかりだけど、
「メインプログラムが糞仕様なのにも関わらず上司は最小限のソース改変しか許さない」
実務がそんなんだったらどうするんだよ
0954名前は開発中のものです。
2007/03/04(日) 23:50:24ID:RG9J/GKB0955名前は開発中のものです。
2007/03/04(日) 23:56:24ID:E/eX2xqk0956名前は開発中のものです。
2007/03/05(月) 00:07:40ID:vpsv+fAM普通のプログラムの話しようぜ
糞仕様で改変させてくれない話なんてここは愚痴スレじゃ無いぜ
0957名前は開発中のものです。
2007/03/05(月) 03:36:49ID:7tVG/VWqSDLの勉強をしっかりやっとけば大丈夫ですか?
最近じゃスレッドとか使えるから感動的に美しいコードが書ける予感がする。
0958名前は開発中のものです。
2007/03/05(月) 05:23:39ID:1nOvH2lg何勉強しても大丈夫なんじゃないんですかね
0959名前は開発中のものです。
2007/03/05(月) 09:19:24ID:vD0HTcUo特に最近のマシンは、複数のCPUが乗っていて、二つ三つのスレッドを同時処理したりするし。
0960名前は開発中のものです。
2007/03/05(月) 09:24:15ID:Cw2/WpnT0961名前は開発中のものです。
2007/03/05(月) 11:16:21ID:y4PcrGnyマルチスレッドの本みたほうがいいだろうね
そうしないと>>959の現象で落ちることになる
0962名前は開発中のものです。
2007/03/05(月) 11:51:53ID:ck7zxrxb{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;; 感動的に美しいコードが書ける予感がする。
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が
~''戈ヽ `二´ r'´:::. `! 俺にもありました
0963名前は開発中のものです。
2007/03/05(月) 18:26:26ID:MLlWK8lHそんなふうに思っていた時期もありました。
0964名前は開発中のものです。
2007/03/05(月) 18:29:35ID:yTZHNxxt敵機の動きを制御するスレッド
背景をスクロールさせるスレッド、みたいに分離して考えられるの?
0965名前は開発中のものです。
2007/03/05(月) 18:47:30ID:9WkSMmpL敵機がネットワークの向こう側ならまた話は別かもだけど
0966名前は開発中のものです。
2007/03/05(月) 20:44:29ID:t6zOS1r5敵機とか敵弾ごとにスレッド作ったら死んじゃわないかな。
ファイバーとか呼ばれる類のスレッドもどきならマルチスレッドに
関する罠も少なかろうから楽でいいんだろうけど。
メインスレッドで作業する裏で、IOとやりとりするスレッドを
回しておく、という方によく使われると思う。
Now Loading... って場面とか。
0967名前は開発中のものです。
2007/03/05(月) 20:56:03ID:wAiX0Qdt0968名前は開発中のものです。
2007/03/05(月) 21:07:51ID:yk8IUqsDファイバ使おうにも、それに対応出来る言語が無いだろ。
・・・スクリプト言語で、それっぽいのは作ってるけど。
つ〜か、タスクの概念入れたらようやく設計落ち着いたのがここ最近の話。
藻前らあんがと。
0969名前は開発中のものです。
2007/03/05(月) 21:09:42ID:yTZHNxxt逐次順番に処理するよりも負荷が分散されるんじゃないかな?<スレッド
0970名前は開発中のものです。
2007/03/05(月) 21:15:06ID:yk8IUqsDバスクロックの壁が重く感じられるようになるよ。w
0971名前は開発中のものです。
2007/03/05(月) 21:29:01ID:9YvEXR7Sってなエフェクト類を別スレッドにして云々っていう
ゲーム開発者の記事をどこかで見た希ガス
0972名前は開発中のものです。
2007/03/05(月) 22:13:33ID:XLZSlgq10973名前は開発中のものです。
2007/03/05(月) 22:28:48ID:d+wajXdt0974名前は開発中のものです。
2007/03/05(月) 22:48:52ID:UNB9akD750%しかCPU使わないなんて勿体無いじゃん
0975名前は開発中のものです。
2007/03/05(月) 23:42:49ID:ck7zxrxbお前、メニーコア時代に備えて弾一個にスレッド一個使え。
俺は多くても2〜3個で十分だよ。
君:コアが○○個あるのに2〜3個しか使わないなんて勿体無いじゃん。
俺:コア2〜3個で済むのに○○個全部使ったら電気勿体無いじゃん。
0976名前は開発中のものです。
2007/03/05(月) 23:53:42ID:mHGe8uVs0977名前は開発中のものです。
2007/03/05(月) 23:55:36ID:UNB9akD7タスクとスレッドの寿命が同じなんてことはない
0978名前は開発中のものです。
2007/03/05(月) 23:58:19ID:ck7zxrxb0979名前は開発中のものです。
2007/03/06(火) 00:04:48ID:XnSCvXz9http://www.google.co.jp/search?hl=ja&q=%E3%82%A6%E3%83%9B%E3%83%83+%E3%82%A2%E3%83%83%E3%83%BC+%E6%80%9D%E3%81%84%E3%81%A4%E3%81%84%E3%81%9F&lr=
0980名前は開発中のものです。
2007/03/06(火) 02:17:38ID:B6pqNi0M自機も敵機も背景も、全て細かいタスク
んでそれらタスクを直列に並べて
各スレッドが手が空き次第1つずつ取り出して作業していく
同一フレーム内で別のタスクにアクセスしないというルールを作れば
タスク単位で完全に並列に動作させられる
描画だと更に直列のコマンドバッファにしなきゃならんので面倒だが
これもMTフレームワークの解説を見るとほんとよくわかるよ
0981名前は開発中のものです。
2007/03/06(火) 02:49:12ID:6Yk0weKuどうだった?
0982名前は開発中のものです。
2007/03/06(火) 02:57:31ID:IIxLuT5YどうせCPUパワーあまりまくってんだから並列しないほうが単純で安定。
自己満足以外に意味ねえな
0983名前は開発中のものです。
2007/03/06(火) 10:08:59ID:SxErjURL非同期でファイル読み込みするとかサウンドのストリーム再生くらいでしか使ってないわ。
0984名前は開発中のものです。
2007/03/06(火) 11:47:52ID:nUcWYQBPいまさらだな
3Dのような個々のオブジェクトがCPUパワーを食うときのゲーム作るときは常識だろ
スレッドプール+キューつかうのはJava[ですら標準API1命令で事足りる
なんつーかおもしろそうな最新技術はないもんかね
0985名前は開発中のものです。
2007/03/06(火) 12:16:37ID:CsVjZsKa何か違う気がしませんかね。
0986名前は開発中のものです。
2007/03/06(火) 12:30:06ID:GJk8E2dr別に違わん。常識だ。
っていうかそこにツッコミ入れるのかよって感じだ。
0987名前は開発中のものです。
2007/03/06(火) 13:35:03ID:CU33KXNzIDがコロコロ変わるのは何でですか。:D
0988名前は開発中のものです。
2007/03/06(火) 14:22:37ID:nUcWYQBP単発ID必死棚
0989名前は開発中のものです。
2007/03/06(火) 14:41:24ID:Kpz8glpM0990名前は開発中のものです。
2007/03/06(火) 14:46:42ID:CU33KXNz0991名前は開発中のものです。
2007/03/06(火) 14:51:45ID:1I+jaSD20992名前は開発中のものです。
2007/03/06(火) 14:57:57ID:GJk8E2dr自分と違う意見が出ただけで自作自演認定するような奴は
技術語れないからもう来なくていいよ。
0993名前は開発中のものです。
2007/03/06(火) 15:50:11ID:CsVjZsKaマルチコアの環境でCPUブン回すゲームってのは作ったこと無いんだが
常識と呼ばれるほどそんな環境が普及してんのか?
シングルでスレッドに分けてもCPUの負荷が高い場合は利用率って落ちそうな気がするんだけど。
コンシューマでもスレッドの使いどころってメイン・サウンド・ファイル・データ解凍あたりだし。
PS3や360は知らんけどさ。
0994名前は開発中のものです。
2007/03/06(火) 18:49:52ID:Cf4tLHVW0995名前は開発中のものです。
2007/03/06(火) 19:13:25ID:CU33KXNzCoreDuoの低消費電力モード(1GHz)で色々試したことあるが
シングルスレッドでBGMのoggをデコードしながら画面全体を
弾で埋め尽くしてもCPU(コア一個の)使用率は30%以下だよ。
マルチスレッドにしても消費電力ほとんど変わらんかったから
「せっかくだから」スレッド分けてみたけどさ。必要に迫られて
やったって感じじゃないな。
数年前のペンMのB5ノートでもCPUパワーは余り気味だったし
ビデオチップ(Mobile Radeon)が先に悲鳴上げてた。
「余剰リソースがあるから使いきったれ」って発想で作るのは
別にいいと思うけどさ、実際にPCゲーの2D弾幕STGごときが
無理やりCPU使用率100%でかっ飛ばしてたりすると、何かの
不具合なんじゃねーかと疑われるのが関の山だと思うよ。
0996名前は開発中のものです。
2007/03/06(火) 19:22:30ID:Kpz8glpMまあ俺はやらんが。
0997名前は開発中のものです。
2007/03/06(火) 19:27:13ID:IUs+B/Df0998名前は開発中のものです。
2007/03/06(火) 19:47:06ID:HLzxAC0g「シングルスレッドで片方しか使わないのがなんか勿体ない」てのが起因かな
システムに余裕回せるって見方もできるし、必要に迫られなきゃ不要だと思う
0999名前は開発中のものです。
2007/03/06(火) 19:48:29ID:HLzxAC0g片方しか→コア片方しか
1000名前は開発中のものです。
2007/03/06(火) 20:21:34ID:CsVjZsKa10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。