シューティングゲーム製作技術総合 4機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/08/09 19:53ID:oKoFsB2nそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
0145名前は開発中のものです。
04/08/15 22:07ID:acFn8L7f誘導ミサイルだとか曲がるレーザーとか特定の方法が分からない場合には役に立つか
既にシューティング1作完成させたことがある人ならちょっと考えれば分かるような事ばかりだし不要だな
0146名前は開発中のものです。
04/08/15 22:33ID:sw0d/9/H解説自体は小中学生がわかるぐらい噛み砕いてる
やね本で補完すれば人前に出せるぐらいのものが作れるのでは?
シューティング好きがプログラムを学ぶというより
プログラム好きがシューティングを学ぶ本かな
課題スレ等この板でうぷされるものでも弾や敵の軌道で悩む(というか実装しない)人は
多いから需要はあるんじゃないかなぁ
このスレの人には年齢的にも経験値からみても関係ない本だとは思うよ
0147名前は開発中のものです。
04/08/16 08:20ID:joo2x3ui0148名前は開発中のものです。
04/08/16 09:07ID:6LiQYGlKムキャやNAOMIはPower VRだからね。パイプラインの都合で通常3フレームの遅延がつく。
なにげにゲーマーにはおすすめできないハードだ。
0149名前は開発中のものです。
04/08/16 14:12ID:S2H1k4RN0150名前は開発中のものです。
04/08/16 14:53ID:gQZTHlWu0151名前は開発中のものです。
04/08/16 16:01ID:CUjNcCnA0152名前は開発中のものです。
04/08/16 16:08ID:FI8a2ktDhttp://www.google.com/
0153名前は開発中のものです。
04/08/17 08:04ID:YUBR3oDa0154名前は開発中のものです。
04/08/17 19:55ID:yTjGyUP90155名前は開発中のものです。
04/08/23 23:51ID:DCDr3oUa人のソース改造してシューティングゲームを制作してるんですが、
横スクロールタイプシューティングの「放物線を描いて落ちる落下弾」が作れません。
(ちなみにSTGアルゴニズムマニアックス読んでるのに作れない素人・・・)
なにとぞご教授ください。
(C++とDirectX9です)
以下の文はまっすぐ右に飛ぶ弾です。
p->vec2.x += 7.0f;
// 変換行列を作成
D3DXMatrixTransformation2D(&p->Matrix, NULL, 0, NULL, NULL, 0, &p->vec2);
0156名前は開発中のものです。
04/08/23 23:54ID:Xua3I1Iray++;
0157名前は開発中のものです。
04/08/24 00:05ID:Et3nh4zYあなたの人となりを否定するつもりないけど
>人のソース改造してシューティングゲームを制作
そんなことしたくないなあー・・・
だって出来てからの満足感がまるでないし、つまんねーじゃん?
時間かかっても0から作ったほうがいいと思うよ。
急がばまわれだワン1
0158名前は開発中のものです。
04/08/24 00:12ID:uXam+ITsベーマガ世代やオープンソースを完全否定するようなことを……(笑
0159名前は開発中のものです。
04/08/24 00:30ID:1kP3mPcm1.元のソースが理解できないので、改造して落下弾を作ることができない
2.STGアルゴニズムマニアックスの落下弾の説明を読んでも意味がわからない
どっちだろ・・・
なんか1っぽいんだけど(汗
もし2だとしたら、STGアルゴニズムマニアックスのLIST2-22にサンプルのソースが
そのまんま載ってるので、自分のプログラムに合わせて変数を変えるだけで動くかと。
放物線の運動の理屈がわからないのでしたら、中学校の物理の教科書でも・・・
0160名前は開発中のものです。
04/08/24 00:44ID:iL1CymvD>>156
やってみたんですが・・うまくいかず。
>>157
0からやってみます。まずはウインドウ作成からですね・・・
>>159
1も2も該当してる気がします。いや、該当してます。
放物線ってy=axですよね?
vy+=accel;
x+=vx; y+=vy;
足し算あるけど掛け算ないぞ???って思いました。
いい年した成人なんすけど、頭固くてプログラムむいてないっすね。
0161名前は開発中のものです。
04/08/24 00:47ID:s88LEut3y=axは直線
0162名前は開発中のものです。
04/08/24 00:55ID:iL1CymvDあ、、たしかに直線でした・・・
0163名前は開発中のものです。
04/08/24 01:13ID:eGI5Mb3C実際には加速していないように見えるかも知れない。
わからないことはこまめに試して、身体で憶えてしまえ。
ゲームに使う数学に関しては、体系だてて数式で憶えなくとも、
プログラムで憶えてしまえば(趣味の範囲では)十分通用する。
0164159
04/08/24 01:51ID:1kP3mPcmその2行だけだと分かりにくいですけど、vyの値が呼び出し側に戻されてる(&)がミソです。
前回関数が呼び出されたときのvyの値が保存されてるので、vyには毎回差分を足すだけで
OKなわけです。要は、
1回目:vy=accel
2回目:vy=accel*2
3回目:vy=accel*3
って毎回計算するのと、前回の計算結果を利用して
1回目:vy =accel
2回目:vy+=accel ( accel+accel )
3回目:vy+=accel ( accel+accel+accel )
の違いかと。
0165名前は開発中のものです。
04/08/24 02:05ID:s88LEut3横へ移動する速度は等速
縦へ移動する速度は増えていく
ここまではいいですか?
x=x+1
y=y+1
だと右下へ直線に動いていきます
x=x+1
y=y+2
これだと角度が急になりますがやっぱり直線です
x=x+1
y=y+3
これだとさらに角度が急になりますが直線です
と、ここで今まで引いた線を順番に繋げてみてください
放物線に見えませんか?
+4,+5,+6……とさらに続けていくともっとわかりやすくなります
p.56の加速弾は理解してますか?
xとyで加速する量が違うのが落下弾です
もし元のソースがよくわからないのであれば斜めに真っ直ぐ進む弾を撃ってみてください
これができれば放物線もそれほど変わりません
たぶん、y=ax^2+bが頭にあるんだと思いますがこれは忘れてください
今回は関係ないです
0166名前は開発中のものです。
04/08/24 02:43ID:2AkloNW+0167名前は開発中のものです。
04/08/24 03:22ID:eA831uwq0168名前は開発中のものです。
04/08/24 04:36ID:yQt8in03xを位置、vを速度、aを加速度、dtを経過時間(=1フレームの時間)とすると、
等加速度運動なんだから「速度の変化量=加速度*経過時間」なわけで、それを数式で表せば
v+=a*dt
だな。「位置の変化量=速度*経過時間」だから、
x+=v*dt
だ。dtは普通固定だから事前にaやvにdtを掛けた値を使う。最終的にプログラムは、
v+=a;
x+=v;
で済むわけ。こんな説明でOKかいな?
0169名前は開発中のものです。
04/08/24 04:47ID:gBLSZJEf中学理科で台車ころがして「差が段々でかくなる〜」みたいなのなかったっけ。
0170名前は開発中のものです。
04/08/24 07:34ID:QNZmrm750171名前は開発中のものです。
04/08/24 07:41ID:s88LEut31063.4
低めの弾道で跳ねさせたほうが飛ぶね
よい放物線サンプルですた
0172名前は開発中のものです。
04/08/24 23:24ID:BLYPidSaおまえプログラムしたことないだろ
0173名前は開発中のものです。
04/08/24 23:27ID:IQBFNe/mおまえコピペプログラマだろ。
0174名前は開発中のものです。
04/08/25 00:12ID:lI2H/pKM0175名前は開発中のものです。
04/08/25 00:33ID:PyRy/eNu糞ソースを改造するのは気が退ける。
0176名前は開発中のものです。
04/08/25 01:48ID:9EM9vodUそれ言ったら、ウィンドウ開く一つとっても全部自前でないし、
ファイル、入出力、 etc・・・何をするにしたってそうだ。
0からなんて言ったらキリがない。
しかし、シューティングゲーム製作スレだろ。
>>157は
>人のソース改造してシューティングゲームを制作してるんですが、
に対しての一意見がそれで、車輪の話などしとらんだろ。
それにフリーで一人でやってるんなら全部一人でやってればいい。
時間があればの話だけどね。さらに言うと良いプログラムを読み書きできるのと、
良いソフトウェアを製作するのとは別だよ。
0177名前は開発中のものです。
04/08/25 03:30ID:jOyMajPZ消化不良を起こす155のような層が存在することが
再確認できた。
彼らにとっては、あの本のタイトルはハッタリではなく
その名に相応しい難解でマニアックな本だったのd ΩΩΩ < ナ、ナンダッテー
0178名前は開発中のものです。
04/08/25 03:33ID:/FyDerrC「ひょっとしたら自分は数人に一人しかいないプログラム適正をもってるんだ!」
とか思っちゃだめだぞ!
0179名前は開発中のものです。
04/08/25 04:03ID:jOyMajPZ世の中色々。STG作る人も色々。
0180名前は開発中のものです。
04/08/25 04:55ID:/FyDerrCだけど意外とそういう馬鹿が作ったゲ=ムのほうが面白かったりしてね。
0181名前は開発中のものです。
04/08/25 10:31ID:KMSuSYxL0182名前は開発中のものです。
04/08/25 12:01ID:/YO03vyP技術が無くても面白いゲーム作る人も沢山いるし、
それらに当てはまらない人も沢山いる
0183名前は開発中のものです。
04/08/25 14:22ID:zvZNP4N40184名前は開発中のものです。
04/08/25 15:03ID:3aTds6NW技術があるだけじゃ、何もならないからなぁ
0185名前は開発中のものです。
04/08/25 15:29ID:4lm3WJsn一回できあがりかけたころ、最初から作り直すと美しいプログラムになったりもする。
そしてそのほうが原因不明のバグに悩まされることも無かったり。
0186名前は開発中のものです。
04/08/25 15:48ID:A1d2CZ2L一応完成させてからリファクタリングした方がいいと思う。
そうじゃないと永遠に完成しない罠。
まあ俺は、オブジェクト指向的にシューティングをコーディングする、というのが目的だから、
完成は二の次でも無問題。
0187185
04/08/25 16:24ID:4lm3WJsn確かに。
漏れは、仕事でゲーム作ってるとき、新しいデータを組み込みつつ、待ち時間にプログラムを
改良してまつ。じゃないと納期間際におそろしいことに…orz
改良しきれずバグが出ないように祈りつつ運用する場合も多いですがorz
0188名前は開発中のものです。
04/08/25 16:41ID:lT5JyHro書き直そうか悩んでる
orz
0189名前は開発中のものです。
04/08/25 17:08ID:eME6g1xv時間があるなら書き直した方が良いかもね。ただし、
趣味でやってるならほどほどにしといた方が良いぞ。
それこそ本気で終わらなくなる事も・・・or2
0190名前は開発中のものです。
04/08/25 17:59ID:HRl+UBuZしばらくいじってないと呼び出し元とか使われ方とか
わからなくなることがよくある。
0191188
04/08/25 19:17ID:lT5JyHroまさに俺もその罠に嵌ってる
特定の自作ライブラリにはもう手を付けないだろうと思っていても、後から変更しなきゃ
ならなくなったときにもう覚えて無かったり
0192名前は開発中のものです。
04/08/25 20:36ID:waZrD0yj自分で書いたプログラムなのに後で見て分からなくなる?信じられん。
数年前のコード見ても即座に手をつけられるぞ。
コメントもほとんど書かないしな。
0193名前は開発中のものです。
04/08/25 20:39ID:fNQzeNruそんな漏れは技術そこそこで糞詰まらんゲームを製作していまつ。
とりあえず完成までは持ってけてる点だけが唯一の救いかも。
0194名前は開発中のものです。
04/08/25 20:46ID:oNcxf4w3俺一人だけ遊んで終わり。めっちゃ虚しいぞ!!!
0195名前は開発中のものです。
04/08/25 20:54ID:TjnPIVb2忘却能力の働かない人間って、たま〜にいるよな……
0196名前は開発中のものです。
04/08/25 21:46ID:4lm3WJsnデータ構造、パラメータの意味はどこかにコメントしといたほうがいいかもね。
0197名前は開発中のものです。
04/08/25 21:58ID:J9d0CGzBまあ俺もその類だな。流石に1ヶ月くらい前ならまだなんとかなるけれど
0198名前は開発中のものです。
04/08/25 22:04ID:6SwQIIVqセガの人みたいに手入れすればいいのか。
0199名前は開発中のものです。
04/08/25 23:19ID:JqXHRUiA可読性重視でほとんど全部書き直してからは、覚えて無くても、
あんまし悩まなくなったな。理解は出来るから。
相変わらずコメントとか付けてないケド。
0200名前は開発中のものです。
04/08/27 13:40ID:Ug/4/aXoここのやつやってみて
前とはだいぶ変わったよ
0201名前は開発中のものです。
04/08/27 15:14ID:vuQYK+x20202名前は開発中のものです。
04/08/27 23:31ID:+3GSaJqg0203名前は開発中のものです。
04/08/28 00:24ID:3c0hiz+oatan2の640x480を64*48のテーブル処理使っているんだけど
グラフィックとかしょぼいと駄目だな
0204名前は開発中のものです。
04/08/28 00:58ID:02FFley8「固定小数点を使う」と、「グラフィックとかしょぼいと駄目」がまるで繋がらないのだが?
あと、atan2の64*48テーブルって何?
0205名前は開発中のものです。
04/08/28 01:07ID:3c0hiz+o固定小数点とか独自のパックファイルとかプログラムに結構力を注いだんだけど
見た目のためか評価が低いことをからの感想
atan2の64*48テーブル ってのは
イカベーダの画面の解像度が640*480だから
配列のサイズを考えて(1/10)^2の64*48にって事でこうなる
たとえば弾の発射元座標が(0,0)でプレイヤーの座標が(640,480)だとしたら
atanTbl[64][48]を参照すればatan2のテーブルから45度とか帰ってくるわけ
それで方向弾を撃つと アルゴリズムマニアックス読みますた
0206名前は開発中のものです。
04/08/28 01:12ID:3c0hiz+o180度足したりして返すと
sqrtはとにかく使わない 角度が得られないとn-wayで狙うとかできないし
0207名前は開発中のものです。
04/08/28 01:37ID:nKUXznWKテーブルなどいらぬはずだ!
豪華に atan2 そのままつかっちゃおうぜ
0208名前は開発中のものです。
04/08/28 01:37ID:oqoVAKqOサインテーブルを使ってる部分を
普通のsinに置き換えてみたら分かる。
処理スピードなんざ全然変わらん。
0209名前は開発中のものです。
04/08/28 01:52ID:02FFley8>205
そら、見えない部分を評価することは出来ないし、ゲームとはそういうものだ。
あと、そのatanテーブルだと誤差が大きすぎる気がするが。
実用に問題がないなら、それはそれでいいけど。
でも、DirectXGraphicsでやる場合、特に理由がないなら、素直に浮動小数点を使っとけ。
0210名前は開発中のものです。
04/08/28 02:29ID:RtjyAj0Qプログラムと爆発エフェクト作成ツールだけで派手な爆発とかは作れるし
0211名前は開発中のものです。
04/08/28 03:46ID:SvxFK2IBジョイパッドが刺さってるとキーボードが使えないので使えるようにして欲しい。
マニュアルにジョイパッドの操作説明がなかった。
最小化して元に戻すと背景の星が横一列に並んでしまう。
Xでコンティニューだけどタイトルに戻りたい場合はどうすれば?
0212名前は開発中のものです。
04/08/28 08:14ID:uycPsnKNそうしないと突っ込みやすいところばかり突っ込まれるだけ。
0213名前は開発中のものです。
04/08/28 10:43ID:Qvjx0eXJ技術もatan2使おうぜ、という点以外は問題なさそう
たぶん、まだゲーム内容に凝る予定じゃないんだよな
だから、今のところは良くできてるよ、と言っとく
0214名前は開発中のものです。
04/08/28 11:27ID:uMxB3nIY#今のCPUじゃ言うほどの利得は無いのは承知
>イカベーダの画面の解像度が640*480だから
>配列のサイズを考えて(1/10)^2の64*48にって事でこうなる
非常に些細な事なんだが”もうひと工夫”欲しかった
固定少数を使うという事は根底に高速化したいという思想があるはず
であれば俺なら「1/10」にはしない
さて、何でだと思う?>205
本当に些細な事なんだけどな(w
0215名前は開発中のものです。
04/08/28 12:12ID:3c0hiz+oやっぱ1/10 にする割り算がかえって
高速化が目的のテーブル処理を遅くしてるってことなんかな
やっぱテーブルって大きいものとか
最初にアルゴリズムマニアックスを読んだときは円形の方向弾が四角くしか飛ばなくて困った
タイトル画面で弾を撃ち続けるとエキストラモード入れるよ
0216名前は開発中のものです。
04/08/28 12:59ID:Ah1rFXTm良いものを置いといてやろう
|)つ [ シフト演算 ]
0217名前は開発中のものです。
04/08/28 13:23ID:VP551XAu0218名前は開発中のものです。
04/08/28 13:48ID:O4PrxWZn実際に発生した例があるとわかりやすいんだが
0219名前は開発中のものです。
04/08/28 15:26ID:51GnK4hLシフト多用すると遅くなるんだよな
0220名前は開発中のものです。
04/08/28 16:42ID:6yv19I3A0221名前は開発中のものです。
04/08/28 16:54ID:YTH8UYqt0222名前は開発中のものです。
04/08/28 17:01ID:CbJi6nQO256x224の座標でatanだと16x14持ってれば良い?
0223名前は開発中のものです。
04/08/28 17:12ID:o/Ue0GcL自機止まってるのに普通の狙い弾が当たりもしないよ…なんて事態にならなければ、
適度に粗くしていいのかもな
0224名前は開発中のものです。
04/08/28 18:37ID:02FFley8多少CPUを使えば、角度数/4のサイズでかなり正確な、
/8でも割と正確なatan2ができるけど。
0225名前は開発中のものです。
04/08/28 20:40ID:/fDrRRq20226名前は開発中のものです。
04/08/28 21:25ID:jcHl+d+n速度以外になんの利点があるの?
0227名前は開発中のものです。
04/08/28 21:28ID:KrOJOCaBああおそろしや。
0228名前は開発中のものです。
04/08/28 21:53ID:jcHl+d+n変わったら何があかんの?
0229名前は開発中のものです。
04/08/28 21:56ID:KrOJOCaB0230名前は開発中のものです。
04/08/28 22:03ID:02FFley8小数点以下の精度を固定できる。
任意の進数で小数点以下を表現できる。
0231名前は開発中のものです。
04/08/28 22:33ID:J4Yqp6XO制度は固定できるけどな。
0232名前は開発中のものです。
04/08/28 22:37ID:WE2yckIhたとえば80%だったらのこり20%は狂ってきて再現性がなくなるってか
0233名前は開発中のものです。
04/08/28 23:01ID:OUtnzTtn普通IntelでもAMDでも浮動小数の演算結果はIEEE準拠で実装してれば同じになるはず。
バグとかはともかく、いわゆる普通のIntel系CPUで結果がずれることってそんなにあるの?
0234名前は開発中のものです。
04/08/28 23:09ID:jcHl+d+n世の中のリプレイ機能付きはみんな固定少数点数でやってるの?
浮動小数点数使わずに?
>>230
なるほど。ってゲームでそんなこと気にする?
>>231
よかった。オレのリプレイ付きゲーム内で使われている浮動小数点数すべてを
固定少数点数に置き換えなきゃいけないのかと思った。
>>232
別に固定小数点数でも誤差は出ると思うけど
>>233
オレも疑問です。
0235名前は開発中のものです。
04/08/28 23:20ID:uMxB3nIY0236名前は開発中のものです。
04/08/28 23:28ID:CqUKbU2y0237名前は開発中のものです。
04/08/28 23:43ID:6yv19I3A0238名前は開発中のものです。
04/08/28 23:52ID:jcHl+d+n上手い人のプレイは見てて面白いですよ。
あとデモとして流すとかにも使えますよね。
>>237
うーん、例えばカーレースでしょうか。
大抵リプレイ機能、ゴースト機能ついてますよね。
0239名前は開発中のものです。
04/08/29 00:05ID:kzy7yBjWそうじゃなくて、((π + 10) - 10) != πとなってしまう事を言いたかったのだが。
「浮動」である以上、桁が大きくなると少数に割り当てられる精度が落ちてしまう。
まあ普通のシューティングでは、まさに誤差の範囲内で済む事だけど。
もちろんリプレイに影響が出るとか言うものでもないし。
0240名前は開発中のものです。
04/08/29 00:08ID:vX3tTwgZああ、たしかにレースゲーのリプレイはアリだな。
0241231
04/08/29 00:32ID:dvcQQr7Qん?>>230氏と同一人物かな?>>239の内容はその通り。
オレが気にしてたのは、>>227>>229>>232あたりは間違いなんで、
変なことが常識として広まらないで欲しいなぁ、ってこと。
浮動小数を使用した場合確かに((π + 10) - 10) != πだが、
その誤差や演算結果は毎回同じ。
なので、リプレイがずれたりすることはありえない。
0242名前は開発中のものです。
04/08/29 00:54ID:al7btGsh某メーカーが昔出したPCでは演算結果がほかと異なるということがあった
だからPCゲームではそのへんを気を使わなきゃならんと。
BBXでも何回かでたぞこの話題。
0243名前は開発中のものです。
04/08/29 00:56ID:al7btGsh演算結果が変わるだったかな?これはどの機種でも関係ありそうだ
0244名前は開発中のものです。
04/08/29 01:16ID:dvcQQr7Q昔、初代Pentiumで浮動小数計算にバグがあって
演算結果がずれるとかいうのがあったのは知ってましたが。
他にはx86系(Pentium以降かな?)には
IEEE754互換モードと、もっと精度の高い(80bit)モードがあって、
違うモードだと当然結果が異なるとかいうのもあるけど。
>>243氏が言ってるのは
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=36&vew=261
このあたり?
# 裏で動いている他のアプリがレジスタのモードを変えちゃって
# 計算結果がずれる、とかかなぁ。
いや、煽りとかじゃなくて、自分が知ってる原因以外で誤差が出ても困るんで
ポインタあったら教えてくださいってことで。
■ このスレッドは過去ログ倉庫に格納されています