シューティングゲーム製作技術総合 4機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/08/09 19:53ID:oKoFsB2nそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
0532名前は開発中のものです。
04/09/15 20:45:07ID:Wff+Y3n9いや、それとは全然ちゃうケースだと思いまつ。
ファミコンの斜め弾が速いのは、多分スターフォース。
0533名前は開発中のものです。
04/09/15 20:47:09ID:Wff+Y3n9自分のじゃないよ。ヘンだな〜?
と思ったら、そうならない様にするでしょ。
0534名前は開発中のものです。
04/09/15 20:50:43ID:Wff+Y3n9>演出の一部
グラIIの赤いレーザー安地とか美しいでつね。
連投スマソ、>>527もごめん。怒らないでねっつ。
0535名前は開発中のものです。
04/09/15 20:50:54ID:M4L32DN20536名前は開発中のものです。
04/09/15 20:53:15ID:Ad6nAFeR0537名前は開発中のものです。
04/09/15 21:08:05ID:8jBB4L1Hだから640x480サイズだと、当たり判定の大きさによっては256じゃ辛い場合も出てくると思う。
そういやWindowsに移行してからテーブル使ってないや。
0538名前は開発中のものです。
04/09/15 21:31:41ID:dTc45Y+Dsin = new int[360];
cos = new int[360];
for(n=0;n<360;n++)
{
sin[n] = (int)(Math.sin(n*Math.PI/180)*256);
…
俺も小学生(´・ω・`)?>>503
0539名前は開発中のものです。
04/09/15 21:52:54ID:aySmI8wo0540名前は開発中のものです。
04/09/15 22:05:01ID:P+UMdyOa0541名前は開発中のものです。
04/09/15 22:10:34ID:XqVXCPyLだから東方の弾密度は256分割では無理、
って何度も出てるのに無視すんなって。
0542名前は開発中のものです。
04/09/15 22:28:12ID:cXPm3Dea0543名前は開発中のものです。
04/09/15 22:30:08ID:Ad6nAFeR0544名前は開発中のものです。
04/09/15 22:32:59ID:XEGxeqWN0545名前は開発中のものです。
04/09/15 22:39:38ID:s2UvXm49基準におく必要はないけど、実際に256度で再現不可能なゲームがある、
そしてそれがPC同人シューティングでは一番プレイ人口が多いと思われる、
といった点を無視して話すのもどうかと。
0546名前は開発中のものです。
04/09/15 22:39:40ID:t/0s0Y9M0547名前は開発中のものです。
04/09/15 22:54:46ID:kDXNVxjY俺もそう思っていたんだが、よく考えると、
単発ならいけるけど狙いnWayが撃てない。
0548名前は開発中のものです。
04/09/15 22:56:20ID:rDTS+Uxx0549名前は開発中のものです。
04/09/15 22:56:33ID:0OsHBWyPヘタレシューターだし。
0550547
04/09/15 23:01:05ID:kDXNVxjY単位ベクトルの90度回転ベクトルは簡単に作れるから、sinとcosの比率で足せば。
0551名前は開発中のものです。
04/09/15 23:05:31ID:L1jfflUJ誰に強制されることも無いでそ
0552名前は開発中のものです。
04/09/15 23:14:38ID:rDTS+Uxx0553名前は開発中のものです。
04/09/15 23:15:39ID:t/0s0Y9M0554名前は開発中のものです。
04/09/15 23:20:09ID:799AxoX8角度で管理したほうが楽じゃね?(´ω`)
0555名前は開発中のものです。
04/09/15 23:22:28ID:SOZJtiAp0556名前は開発中のものです。
04/09/15 23:34:20ID:+5QfUIc9222万、143万、260万クロック前後だった。平方根は44万クロック前後。
Windowsでスレッドの優先順も変えずにやってるベンチなので、1割は誤差が
あると思うけど。
4096度系のテーブル使って二次元ベクトルの回転するのに35万クロック程度
なので、キャッシュを汚すことを考えなければテーブルの方が依然として
10倍は早い。
ただ、画像の一ピクセル毎をソフトウェアで回転とかでもなく、一キャラに
つき数回計算される程度である回転用のSin,Cosの速度に拘っても仕方ない気
はするけどね。一直線に飛ぶ弾だったら、生成時に一回計算するだけだし。
0557547
04/09/15 23:39:14ID:kDXNVxjYいやまあそうだけど、あくまで角度で狙えない位置を正確に狙う時に出来るかどうか話。
そもそも単位ベクトルを求めるのに、平方根を求める必要があるからなぁ。
まあ、角度で狙う場合もアークタンジェントが要るからどっちもどっちか。
0558名前は開発中のものです。
04/09/15 23:50:26ID:tLpbhboshttp://cgi.2chan.net/up2/src/f62638.zip
画面はアーケードライクに240x320
左上を原点として8x8ピクセルの弾(つっても数字の"0")を真下から
反時計回りに32度分流してみた
8x8ピクセルはちょうど敵弾サイズだからイメージつかめやすいかと
弾の隙間がかなり下にいかないと空かないのがわかる
なおちょっとガタついて見えるのはFlip時に同期を取ってないからだから気にするな
0559名前は開発中のものです。
04/09/15 23:54:36ID:tLpbhboshttp://cgi.2chan.net/up2/src/f62644.png
発射直後と広がった後の扇弾の並び具合に注目
0560名前は開発中のものです。
04/09/16 00:04:19ID:QUfl3PDl# 検証してない擬似コードなんで間違いがあるかもしれんが、察してくれ
class Bullet {
const Vec2d from;
const Vec2d vec;
Vec2d pos;
float timer;
public:
// fから発射して、tを通過する。sはスピード
Bullet(const Vec2d& f,const Vec2d& t,float s) :
from(f),vec((t - f) / (Distance(f,t) / s)),pos(f),timer(0) {}
void Update() {
timer += GetDt();
pos = from + vec * timer;
}
const Vec2d& GetPos() {return pos;}
};
0561558
04/09/16 00:20:32ID:u12e8KYs適当なうpろだ無いかね?
0562名前は開発中のものです。
04/09/16 00:28:23ID:7K02SohAそれは単に>529をコード化しただけだな。
しかし、例でそのUpdate()の仕方は……まあ個人の自由だけど。
>561
http://gamdev.org/up/
ここでもいいんじゃね?
正直、ソースも付いてないし、具体的に何をしているかも書いてないから、
たいして参考にならんかったけど。
0563558
04/09/16 00:31:36ID:u12e8KYs単に256度の精度でも十分だって事を示しただけだからな
0564名前は開発中のものです。
04/09/16 00:43:55ID:dHi+CclS自分がやりたいこと、表現したいことで最適なテーブルサイズは異なるのに
なんで共通の最適値があると思い込むんだろうか?
0565名前は開発中のものです。
04/09/16 00:47:39ID:PmHo7pHKでも十分じゃないゲームを作りたい人もいる。
なぜそれが判らんのか。
0566名前は開発中のものです。
04/09/16 01:11:52ID:btdeDeo+0567名前は開発中のものです。
04/09/16 01:25:41ID:i2lv27Z3自分にとって最適化されていないコードを許容できないジジイがいるから、
とも言える。
0568名前は開発中のものです。
04/09/16 01:27:16ID:+LjglWi20569名前は開発中のものです。
04/09/16 01:33:59ID:i2lv27Z3いやだから、ジジイと坊やの間で話がかみあってないだけだよ、と言いたかった。
0570名前は開発中のものです。
04/09/16 02:09:40ID:UgkrnhBb0571名前は開発中のものです。
04/09/16 02:21:13ID:PmHo7pHK東方みたいなのだったら256でも足らない。
自分の作りたい内容で解像度を決めれば良い。
これだけの話で何故もめるのか…。
0572名前は開発中のものです。
04/09/16 02:30:23ID:bp4dF4p6要するに作りたいゲームに合ったものを使えばいいんですよ。適所適材
0573名前は開発中のものです。
04/09/16 08:41:43ID:dOIIsKJL0574名前は開発中のものです。
04/09/16 08:49:52ID:2GihEWfg蒸し返さない。>>571でFA。
0575名前は開発中のものです。
04/09/16 09:36:05ID:aWVODxbw固定小数の精度が8bitだったりするのにもかかわらず
テーブルサイズが65536とかなら突っ込みたくなる気持ちもわからんでもない
1度の差が(最大)0.5ビット未満って精度はいらないだろ、と
0576名前は開発中のものです。
04/09/16 09:43:28ID:aWVODxbw○0.5未満
なんかいらないものが入った
0577名前は開発中のものです。
04/09/16 13:13:55ID:j6PM2+at0578名前は開発中のものです。
04/09/16 13:43:02ID:UN7Y5Viuそんな、ワンダースワンじゃ重すぎて使えないよ!
…ワンダーウィッチでがんばってたけど、上には遥か上がいると嫌でも知らされるな、こういうハード。
0579名前は開発中のものです。
04/09/16 14:21:04ID:UN7Y5Viu「覚えてなきゃ死ぬ」攻撃の理想的な含有率ってどのくらいなんだろう、とか考えたけど
世間の面白いといわれるSTGを観察すりゃ終わる話だしなー。
1つの難易度で初心者も上級者も楽しめるSTGの方法論ってのも無理があるかしら。
0580名前は開発中のものです。
04/09/16 14:25:51ID:bp4dF4p6ただ1面は稼ぎシステムが有効に使えないと上級者が飽きる。
俺はその点でガルーダはかなり上手いと思ったなぁ
0581名前は開発中のものです。
04/09/16 14:55:24ID:pWOZRsF+・来るとわかっていれば大丈夫なもの
・来るとわかっていても解法がわからないうちは安定しないもの
・解法の有無で難度が激しく変わる場合と、安定度が多少増す程度に収まる場合
・解法の知識ではなく、体得が必要なもの (解法がわかっただけでは実行できないもの)
いろいろあるな
こんな抽象的ではダメでもう少し具体的に書くべきかな
どの面白さもバランス良く含むのが理想、しかしいろいろな要素を入れてもそれぞれがつまらなければ失敗、
と書くのは簡単なんだが…
0582名前は開発中のものです。
04/09/16 19:23:40ID:qRU84G2z0583名前は開発中のものです。
04/09/16 19:33:48ID:7K02SohA0584名前は開発中のものです。
04/09/16 19:41:39ID:v0V6lAzn0585名前は開発中のものです。
04/09/16 19:43:41ID:dHi+CclSパワーに余裕があれば素直にatan使う。
無ければ>>205のみたいなテーブル使うかな?
(テーブルのサイズはNの大きさによって変える必要はあるけど)
0586名前は開発中のものです。
04/09/16 22:49:29ID:uwVQc3HT一応言っておくと
紅魔郷はおそらく256分割
敵から離れた所にいれば、自機狙いがよく当たらなかったりするよ
紅魔郷以降の作品は知らないけど
0587名前は開発中のものです。
04/09/16 23:35:12ID:AQNYTVA4>>520
0588名前は開発中のものです。
04/09/16 23:55:24ID:v0V6lAzn必死なのは結構だがヨソでやれや
うぜぇ
0589名前は開発中のものです。
04/09/17 00:03:02ID:a0f2gCix0590名前は開発中のものです。
04/09/17 00:07:01ID:jqWr+HpC>>588
0591名前は開発中のものです。
04/09/17 00:49:12ID:x/3CeNl1試しに公開してみ?
それが出来なきゃおとなしくすっこんでろと
0592名前は開発中のものです。
04/09/17 01:29:21ID:DdU/gByT>>588
0593名前は開発中のものです。
04/09/17 01:50:55ID:P7DuapJiテーマはボス戦の弾幕。
期限は一週間。
はじめぃ!
みたいなノリでw
0594名前は開発中のものです。
04/09/17 02:32:24ID:tAYORpB7あーいえばこーいう
ガキ
うざ
東方が256度と指摘されて逆ギレした>520が暴れてる?
0595名前は開発中のものです。
04/09/17 02:52:31ID:zgGvzeTwボス戦だけとはいえ1週間で1から作るのは骨だけどな
0596名前は開発中のものです。
04/09/17 02:57:12ID:eZO96wmL要は弾の”模様”だけとか
それでも結構面倒だが
0597名前は開発中のものです。
04/09/17 03:07:52ID:eZO96wmL0598名前は開発中のものです。
04/09/17 03:30:12ID:E8yVXE9A> 東方が256度と指摘されて逆ギレした>520が暴れてる?
>>520ではないが、ちょっと意地になって検証してみた。
http://gamdev.org/up/img/1248.png
オレの結論は、「東方は256分割ではない」だ。
0599名前は開発中のものです。
04/09/17 03:38:09ID:eZO96wmL0600名前は開発中のものです。
04/09/17 04:34:33ID:/tWOv2rKちなみに、等分じゃないと方向弾が撃てないわけじゃないと思うよ?
方向なんて計算で出してるんだからさ。
for(cnt=0;cnt<88;cnt++){
angl = (cnt*ANGLE_MAX)/88 ;
とかやってるんだからさ。
なんか、真新しい感じのアイデア出そうと考えてくると、
どんどんアクションゲームっぽいまとまりになってくる。
アクションっぽいシューティングってどうだろうか。
0601名前は開発中のものです。
04/09/17 06:21:48ID:YZKIDf8P素直にアクションゲームにしとけ。
漏れはアクション作成がメインで、シューティングは試作。
0602名前は開発中のものです。
04/09/17 07:23:01ID:FK4qcDZiあまり既存の文脈に通じてない「新しい」ものをリリースしたいなら
アクションと銘打つほうが余計な先入観なく受け取ってもらえるかもな
0603名前は開発中のものです。
04/09/17 08:05:56ID:8qMx6btTじゃないと取っ付きが悪くてやってもらえない可能性大。
0604603
04/09/17 08:06:37ID:8qMx6btT0605名前は開発中のものです。
04/09/17 09:03:26ID:HvyruFW00606名前は開発中のものです。
04/09/17 09:09:47ID:shGsgpdwここで問題なのは、nWay弾が等分じゃないと撃てないかどうかじゃなくて、
SSの88Way弾が見た目に綺麗に88等分になっていることだろ。
1周256度のテーブルで88Way弾を撃ったら、
間隔が2度と3度のところが混ざって綺麗な88等分に見える軌跡にはならない。
0607名前は開発中のものです。
04/09/17 09:16:58ID:5H4xPSKFだから、間隔が他に比べて66%の場所が10個に1つ現れるはず。
でも、十分に広がった後の弾間隔を見てみても
66%になってる場所があるようにはちょっと見えない。
(実は196段階や88段階だったって可能性もあるけど)
でもこれは東方がその精度が必要だっただけ。
自分が作りたいSTGで必要な精度を用意すればいいだけなのに
なんで256って数字にこだわるんだろう?
0608名前は開発中のものです。
04/09/17 09:30:46ID:GTadB0Hqではないところが・・・。
例えば動いてもいないのに、自機と正反対の方向へ弾を撃ってたり。
萎えるね。パッターンな弾幕に多いんだなーこれがw
いいかげん、そろそろ作業ゲーは勘弁!
0609名前は開発中のものです。
04/09/17 09:33:30ID:GTadB0Hq0610名前は開発中のものです。
04/09/17 09:35:03ID:eZO96wmL不毛すぎる
0611名前は開発中のものです。
04/09/17 09:40:07ID:eZO96wmL作った人は何で"88wayにしよう"と思ったんだろうか
0612名前は開発中のものです。
04/09/17 09:48:16ID:5H4xPSKF1.テーブルサイズが88の倍数
2.何か元ネタがある
3.バランス調整のために増減してたらそうなった
たぶん3.だろうけど2.の可能性も捨てきれない。
0613名前は開発中のものです。
04/09/17 10:20:48ID:vCq6kiU0ここの住人ならそれほど語るレベルの話じゃないと思うんだが…。
0614名前は開発中のものです。
04/09/17 10:21:41ID:kcMH00kT作者はいろいろ設定みたいなのも考えてるみたいだし
0615名前は開発中のものです。
04/09/17 11:31:44ID:GTadB0Hq東方なんてとんでもねー話だ!(大げさだが)
0616名前は開発中のものです。
04/09/17 12:17:36ID:vCq6kiU00617名前は開発中のものです。
04/09/17 13:02:49ID:nP12VnTm>なんで256って数字にこだわるんだろう?
おそらく、角度を保持する変数が1Byteに収まるからでは。
まあ今どきのPCではこんなメモリ節約意味ないけど。
0618名前は開発中のものです。
04/09/17 13:34:26ID:eZO96wmL大量の実数演算の使用に抵抗が無いハードウェア能力に頼った富豪プログラミングか、
旧来の手法(つっても現役の技術だが…)を駆使し、実数演算を排除して最適化を優先
するか。
宗教論なんだよな。
0619名前は開発中のものです。
04/09/17 13:55:07ID:zlFo7GKl0620名前は開発中のものです。
04/09/17 14:29:38ID:nHq002fKマクローリン展開で求める方法もあるというのを
Gemsだったかどっかで見たような…
ただ収束半径の問題であまり大きな範囲の値を使えないってのはあるけれど
2Dシューなら普通に-PI〜PIの間に収まるから結構いいんでない?
もちろん256分割どころじゃなくFPU並みの精度で求まる
0621名前は開発中のものです。
04/09/17 15:31:10ID:5H4xPSKFおおざっぱなテーブル+隙間は線形補間って手もあるね
ただ、今の計算機だと有効的に使える状況はほとんど無さそうだけど。
0622名前は開発中のものです。
04/09/17 15:39:46ID:EUkBE/QYへぼハードぐらいか
0623名前は開発中のものです。
04/09/17 16:09:58ID:3EFz6gTJ携帯JAVA
0624名前は開発中のものです。
04/09/17 16:22:09ID:eZO96wmL手法に限定されるんだろうな
あんなんでシューティング作るケイブも相当なもんだな…
0625名前は開発中のものです。
04/09/17 21:12:31ID:lNpq1J0Vマクローリン展開なんて・・・
「こんなもん覚えたって一生つかわねぇよ!」
なんて言いつつ昔公式覚えた記憶が。
まさかこんなところで再び聞くことになるとは・・・
当然「まくろーりん展開」がなんだったのかさえ、既に記憶の
彼方なのは言うに及ばず。
テーラー展開とセットで覚えた記憶はあるんだけど _| ̄|○
0626名前は開発中のものです。
04/09/17 21:22:27ID:MYym9y6y> メモリアクセス速度も結構馬鹿にならないから
> マクローリン展開で求める方法もあるというのを
> Gemsだったかどっかで見たような…
自由に使える実装どっかにある?
何となく試してみたいな〜、と思ったりしたのだが。
0627名前は開発中のものです。
04/09/17 21:34:00ID:nHq002fKsin(x)=x - x^3/3! + x^5/5! - x^7/7! +... って奴ですな。
templateを使ってループをインライン展開すると爆速だって話もあったかな?
ただIntel系CPUの場合はアキュムレータでループさせたほうがいいとかなんとか。
まあ詳しいことはGemsに書いてあるはず。俺は持ってるわけじゃないので…。
0628名前は開発中のものです。
04/09/17 21:48:58ID:MYym9y6yそうですか。情報thx。
0629名前は開発中のものです。
04/09/17 22:15:27ID:roAee6Xnそれによっては使い物になりそうなんだが……。
0630名前は開発中のものです。
04/09/17 23:41:02ID:roAee6Xn13〜14乗の項まで使った場合、sin,cosの±PIでの誤差は10^(-4〜-5)に収束するね。
ちなみに256分割テーブルでの最大誤差は1.2x10^(-2)
256分割テーブル+線形補間の最大誤差が7.5x10^(-5)
条件分岐を使っていいって話であれば
正負反転で-PI/2〜PI/2、sin,cos入れ替えで-PI/4〜PI/4まで範囲が限定できるので
もうすこし次数を落として収束させることは可能。
ただ、条件分岐多用して何が高速化だ?って話もある。
0631名前は開発中のものです。
04/09/18 00:27:15ID:Pg/xE0CF1024になれば綺麗に追いかける弾でもまず精度は問題にならないねぇ
問題は面白いかどうかだ
いくら精度がよくても面白くないのでは意味無し
そして精度は面白さに直結するものでもない
0632名前は開発中のものです。
04/09/18 00:38:42ID:42408vke■ このスレッドは過去ログ倉庫に格納されています