シューティングゲーム製作技術総合 4機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/08/09 19:53ID:oKoFsB2nそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
0483名前は開発中のものです。
04/09/12 17:51:06ID:CuNiGdiOていうか東方とか有名ゲームのアーカイブの内部でpngあるかな?
2Dなら機能が足りてるし
サイズが小さい上にアルファチャンネルが付くし
0484名前は開発中のものです。
04/09/12 20:46:22ID:Gexlrf7U自分の攻撃が敵に当たったとき光るようにしたいんだけど、フルカラーだと
パレットチェンジできないから光った画像を別に用意するしかないのかなあ
0485名前は開発中のものです。
04/09/12 21:17:52ID:Tm/nOPaX0486名前は開発中のものです。
04/09/12 21:19:58ID:kQPqbtfsDirect3Dなら、SetTextureStageStateをいじれば色々出来なくもない。
0487名前は開発中のものです。
04/09/12 22:35:11ID:8XFZDvbC普通に頂点カラーとMODULATEだな、俺は
0488名前は開発中のものです。
04/09/13 00:42:26ID:dtCJG1Zg0489名前は開発中のものです。
04/09/13 00:50:56ID:HzJbUhiRそいつとMODULATEしようとしたら影響しなかった。VGAの仕様らしい。
というかTFACTORだとポリゴン同時に描画するときに同じファクタしか使えないから
やっぱり俺は頂点色を入れるのをお勧めしたいな
0490名前は開発中のものです。
04/09/13 01:35:05ID:rywG/mJb0491名前は開発中のものです。
04/09/13 01:41:21ID:HzJbUhiR0492名前は開発中のものです。
04/09/13 01:49:34ID:J+x/bBOT俺なら別画像用意する
メモリ食うけどお手軽
0493名前は開発中のものです。
04/09/13 03:01:41ID:yBngbvwi回転・αがないなら速いとか?
速度を求めてたら>>492 の言うように別画像。
自力描画で好きなように色換えるってのもあり。
0494名前は開発中のものです。
04/09/13 10:13:25ID:B4QcSK4U0495名前は開発中のものです。
04/09/13 10:19:18ID:AfW5N8rO0496名前は開発中のものです。
04/09/13 10:26:28ID:yBngbvwi特に理由はないけどDraw、ってことかな。
0497名前は開発中のものです。
04/09/13 14:19:57ID:e5E6Oiet0498名前は開発中のものです。
04/09/14 03:02:08ID:+yb2uY/A今作ってる奴が完成するまでは手を出さないつもり。
最近ウチのモニタ、640×480だと画面がブレるんだよな。
まあ、Windowモードを用意しておけば無問題だが、
次のゲームからは800×600にしとくかな?
0499名前は開発中のものです。
04/09/14 21:34:57ID:+jxrHBEg0500名前は開発中のものです。
04/09/15 08:53:11ID:Ww1OGG+40501名前は開発中のものです。
04/09/15 12:53:48ID:WWAonLpD1フレーム毎に1度ずつ回すときとか、65536/360度にしなきゃいけないけど、
これってプログラム全体を1周=65536度として作る(つまり1度=182度として考える)のか、
その都度×65536/360してからテーブルに渡すのかどっちなんでしょ?
普通は後者っぽいけど、なんか掛けたり割ったりで重そう。それでも標準関数のsinより早い?
0502名前は開発中のものです。
04/09/15 13:12:56ID:B3ytu2vxsin関数が2回以下の計算で算出できてると思う?
0503名前は開発中のものです。
04/09/15 14:03:18ID:vIOhXG6V0504名前は開発中のものです。
04/09/15 14:20:42ID:7ndEgzi/今日から1周は360度から65536度に変更された!
これでいいじゃないか。
でもテーブル化必須の時代は256度でも十分すぎるくらいだったが、コレも弾幕流行の影響かしら。
0505名前は開発中のものです。
04/09/15 14:56:52ID:799AxoX8そのうちπ使わなきゃいけなくなったりするから
今のうちに慣れとけ
0506名前は開発中のものです。
04/09/15 15:23:58ID:56alOi05速度に関しては十分すぎるよ。ソレくらい今のCPUは馬鹿みたいに速い。
0507名前は開発中のものです。
04/09/15 15:46:38ID:in9TOg6oまぁ、俺も直接三角関数で計算してるが、昔からのながれで256度で作ってるな
0508名前は開発中のものです。
04/09/15 16:26:08ID:uiPuTwn7つ[ラジアン]
>>503
キミには優しさが足りない
バファリンを見習え
0509名前は開発中のものです。
04/09/15 16:30:07ID:uiPuTwn7でもケイブあたりのを見てると今でも256度もありゃ十分だと思うんだけどどうなんかね
0510名前は開発中のものです。
04/09/15 16:32:15ID:u3zBDgOq400ピクセル離れた場所だと10ピクセルにもなっちゃうからなぁ。
今の弾幕シューでそれやるとちょっと穴だらけになりそう。
1/4周を256段階なら2-3ピクセル、これでもちょときつい
0511名前は開発中のものです。
04/09/15 16:54:18ID:uiPuTwn7そんなに発射位置と目標が離れた状況はあまりなさげだし、それだけ
離れてたったの10ピクセルならもう十分な希ガス…
0512名前は開発中のものです。
04/09/15 16:55:24ID:56alOi050513名前は開発中のものです。
04/09/15 17:06:15ID:in9TOg6o0514名前は開発中のものです。
04/09/15 17:12:37ID:u3zBDgOqボスが固定砲台だったりすると安置だらけになるぞ
距離取って砲台と軸合わせて1回チョン避けすれば
そいつからの直線弾はどうやっても当たらないわけだし
どんなに離れても最低限自機狙い弾が当たるレベルの精度は欲しい。
精度の低さを組み込んだ上でのゲームデザインならこの限りじゃないけど。
0515名前は開発中のものです。
04/09/15 17:35:35ID:uiPuTwn7今頃何言ってるよ…そのスレにいる人間がそんな事判らないとでも?
256度もあれば後はゲーム内容でどうとでもなろうっつう話なんだが
また引き合いに出してなんだがケイブシューのボスなら基本的にボス本体を動かし
射出点を常に変える事で安置を潰すのは当たり前
それに自機狙いの弾でもある程度の精度の荒さを持たせないと逆に避けるのが楽に
なってしまう(常に移動してれば当たらない)
ある程度の精度の荒さや狙いの「揺らぎ」もゲームを面白くするための技術だろうよ
0516名前は開発中のものです。
04/09/15 17:45:11ID:XEGxeqWNあの弾幕で256度は流石にいけてない…
0517名前は開発中のものです。
04/09/15 18:08:31ID:ZjJzMXp/それよりも解像度の高いPC環境でも最適間隔はいっしょなの?
自機を中心としたランダム弾をならともかく、
自機狙いが当たらないって状況はアウトだと思うんだけど…。
0518名前は開発中のものです。
04/09/15 18:09:47ID:rDTS+Uxx0519名前は開発中のものです。
04/09/15 18:22:56ID:XEGxeqWNだから2-5開幕でハイパー打ったときの戦車の弾とか、
まるで壁が押し寄せてくるような錯覚をするわけだ。
ケツイはそうじゃなくて基本的に自機狙い。
0520名前は開発中のものです。
04/09/15 18:37:11ID:u3zBDgOq段階をわざと落としたり、弾に揺らぎをもたせたりする「演出」と
最大精度でも当たらない位置関係が発生する「問題」の区別がついてないのかな?
というか、ケイブシューの解像度および当り判定なら
256段階でその「問題」が起こらない(起こりにくい)ってだけでじゃないの?
精度が低いおかげで
>それに自機狙いの弾でもある程度の精度の荒さを持たせないと逆に避けるのが楽に
>なってしまう(常に移動してれば当たらない)
>ある程度の精度の荒さや狙いの「揺らぎ」もゲームを面白くするための技術だろうよ
これらが有効的に組み込まれてる例を知らないんだが……。
0521名前は開発中のものです。
04/09/15 18:39:01ID:ZmzrpugRあんま関係無いと思うが
解像度(というかゲームワールドの大きさ)に比例して当たり判定サイズも
数値的に大きくしないの?
解像度だけ大きくしてキャラは元のままケシつぶにするなら問題だろうけど
あと引き合いに出されてるケイブのも256度かどうかは知らんが実際
自機狙い弾には精度の荒さがある
そもそも1ドットの狂いも無く狙うような敵弾デザインって少数派かと
>518
意図的に荒くしてあるね
見たとこ16〜32方向ぐらいか?
0522名前は開発中のものです。
04/09/15 18:42:23ID:ZmzrpugR>これらが有効的に組み込まれてる例を知らないんだが……。
うんざりする程引き合いに出されてるケイブシューがそうでしょ
大往生・ケツイ・ガルーダあたりのボス弾とか観察してみ
0523名前は開発中のものです。
04/09/15 18:53:02ID:ZjJzMXp/当たり判定の問題というよりも、見た目の問題。
東方みたいな弾幕で絵を描くような演出をする場合、かな?
>>522
ケイブシューって>>520の言う「演出」ってのはたくさんあるけど
最大精度?が足りてない「問題」のほうがゲームを面白くしてる例ってあるっけ?
そもそも、最大精度が足りてないって問題が発生してるんだろうか?
0524名前は開発中のものです。
04/09/15 19:09:17ID:uiPuTwn7してないと思うよ
そもそもあれは演出でこれは問題と分ける方が理解できん
技術的な問題じゃなくてゲームデザインの問題だろうに
自機、敵機、敵弾の全ての当たり判定が全て1x1ドットの大きさしか無いので
あれば精度が足りないとかいう言い分も判るけどね
まぁあんま多くは語らんでおくよ
0525名前は開発中のものです。
04/09/15 20:23:03ID:Wff+Y3n9弾は32方向もあれば充分だと思ったりしまつ。
いくら精度が細かくても、方向によって弾の速度
が目に見えて変わってしまうほうが、よっぽどダサイでつw
0526名前は開発中のものです。
04/09/15 20:31:40ID:rDTS+Uxx0527名前は開発中のものです。
04/09/15 20:33:52ID:JVnp331d0528名前は開発中のものです。
04/09/15 20:34:25ID:dTc45Y+D初代ファミコンのシューティングでも珍しいタイプだと思うが
PC6001のタイニーゼビウスあたりは斜め弾の方が早かったような
古い話ですまん
0529名前は開発中のものです。
04/09/15 20:37:05ID:m9TW7yZ5単位ベクトル求めれば良いだけの話でわ。
0530名前は開発中のものです。
04/09/15 20:37:09ID:Wff+Y3n9うるせーバカ。
最近やったいろんな同人シューやってみての経験談でつ。
アーケードでもあったなw
0531名前は開発中のものです。
04/09/15 20:44:32ID:dTc45Y+Dなんだ自分の実装したゲームの話じゃないのか
手抜きや技術不足も演出の一部と思って遊んだ方が楽しいよ
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:7K02SohA■ このスレッドは過去ログ倉庫に格納されています