シューティングゲーム製作技術総合 18機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/04/01(水) 02:21:10ID:UrkwRfrdそれは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
過去スレ,関連スレは >>2-3で。
0002名前は開発中のものです。
2009/04/01(水) 02:23:06ID:UrkwRfrd17機目 http://pc11.2ch.net/test/read.cgi/gamedev/1227748699/
16機目 http://pc11.2ch.net/test/read.cgi/gamedev/1217601153/
15機目 http://pc11.2ch.net/test/read.cgi/gamedev/1203303740/
14機目 http://pc11.2ch.net/test/read.cgi/gamedev/1184110374/
13機目 http://pc11.2ch.net/test/read.cgi/gamedev/1173188370/
12機目 http://pc11.2ch.net/test/read.cgi/gamedev/1154792197/
11機目 http://pc8.2ch.net/test/read.cgi/gamedev/1149422610/
10機目 http://pc8.2ch.net/test/read.cgi/gamedev/1143038992/
9機目 http://pc8.2ch.net/test/read.cgi/gamedev/1134236719/
8機目 http://pc8.2ch.net/test/read.cgi/gamedev/1120669295/
7機目 http://pc8.2ch.net/test/read.cgi/gamedev/1110815882/
6機目 http://pc5.2ch.net/test/read.cgi/gamedev/1105176011/
5機目 http://pc5.2ch.net/test/read.cgi/gamedev/1098034919/
4機目 http://pc5.2ch.net/test/read.cgi/gamedev/1092048824/
3機目 http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/
2機目 http://pc5.2ch.net/test/read.cgi/gamedev/1073736474/
初代スレ http://bbs.gamdev.org/test/read.cgi/gamedev/1056635103/ (リンク切れ)
0003名前は開発中のものです。
2009/04/01(水) 02:24:36ID:UrkwRfrdシューティングツクールXPを待ち続けるスレ Part7
http://pc11.2ch.net/test/read.cgi/gamedev/1214383534/
【SB】 Shooting Game Builder ver.4 【シューティング】
http://pc11.2ch.net/test/read.cgi/gamedev/1231249469/
■他
シューティングゲーム製作技術総合スレまとめページ
http://pcstg.s59.xrea.com/tech.html
SHOOTING GAME TKOOL WIKI(製作支援用Wikiとろだ)
http://www.esc-j.net/stg/
game-develop.com wiki
http://wiki.game-develop.com/
0004名前は開発中のものです。
2009/04/01(水) 08:16:25ID:B3IqLKFM// sin関数
dblData = 0.0f;
intTime1 = GetTickCount();
for ( i = 0; i < 100000; i++)
{
dblData = sin ( 0.5f);
for ( j = 0; j < 100000; j++)
{
intData = intOtherMemory[intNo[i]];
}
}
intTime2 = GetTickCount();
intKekka1 = intTime2 - intTime1;
// グローバルメモリ参照
dblData = 0.0f;
intTime1 = GetTickCount();
for ( i = 0; i < 100000; i++)
{
dblData = dblSin[ intNo[i]];
for ( j = 0; j < 100000; j++)
{
intData = intOtherMemory[intNo[i]];
}
}
intTime2 = GetTickCount();
intKekka2 = intTime2 - intTime1;
intKekka1 12641 intKekka2 12578
0005名前は開発中のものです。
2009/04/01(水) 10:50:58ID:dIGRS2qE0006名前は開発中のものです。
2009/04/01(水) 11:21:23ID:dU2XnGK3{
dblData = dblSin[ intNo[i]];
for ( j = 0; j < 100000; j++)//ここ
ループの数によってsin・テーブルの優越が入れ替わる不思議(^q^)
0007名前は開発中のものです。
2009/04/01(水) 14:54:53ID:KKNG1iC90008名前は開発中のものです。
2009/04/01(水) 17:07:15ID:btu6DSBNお前・・・
「自分はキャッシュミスが再現できない馬鹿です」と言って廻ってるような物だぞ・・・
0009名前は開発中のものです。
2009/04/01(水) 17:48:04ID:uyuVIX77例えばスクリプトの書き方とか教えて参考にするから
0010名前は開発中のものです。
2009/04/01(水) 17:49:53ID:m0yxI9U20011名前は開発中のものです。
2009/04/01(水) 19:57:39ID:uyuVIX77クソの役にもたたねーもんw
0012名前は開発中のものです。
2009/04/01(水) 20:16:21ID:zeqW4SrT10,200,200,//繰り返すフレーム数、X移動量、y移動量
15,100,-200,
30,0,100,
30,0,-100,
0013名前は開発中のものです。
2009/04/01(水) 20:21:49ID:dU2XnGK3Lua
>>1にさ、BulletMLとか書いてあるけど、2001年の物だし古くね?
0014名前は開発中のものです。
2009/04/01(水) 20:32:09ID:C2BDoVxa0015名前は開発中のものです。
2009/04/01(水) 20:32:16ID:zeqW4SrT200,3,10,5,60
//出現開始から弾を撃ちはじめるまでの待機時間、
//一回の斉射で撃つ回数、
//射撃間隔
//弾数
//一斉射が終わったあとに待機するフレーム
これを実装すると
class enemy{
private canon[] canons;
private move[] moves;
}
って感じになる。
0016名前は開発中のものです。
2009/04/01(水) 20:33:58ID:C2BDoVxa0017名前は開発中のものです。
2009/04/01(水) 20:45:26ID:zeqW4SrTスクリプトの書き方でも実装でもなんでもねえだろw
0018名前は開発中のものです。
2009/04/01(水) 21:01:40ID:KKNG1iC90019名前は開発中のものです。
2009/04/01(水) 21:23:28ID:8Dg3D/gXやっぱりというかなんというか、基本的な弾幕ばかり。
1回STG作ったことがある人なら不要。
STG作ったことがなくて、作り方がわからん人にはいいのかも。
前の2冊もそうだったよね。
0020名前は開発中のものです。
2009/04/01(水) 21:38:02ID:C2BDoVxa本当に弾幕だけで、本屋でちょっと噴きだしたよw
まぁ、あれならBulletMLで色々試行錯誤するほうがマシ。
0021名前は開発中のものです。
2009/04/01(水) 22:52:17ID:QsU0UebX・固定砲台
・回転砲台
・追尾砲台
があるけど、これの他に
・偏差撃ち砲台(プレイヤーの移動履歴から軌跡を予測してそこに撃つ)
・シーケンシャル砲台(順に入力した角度で方を向ける)
とか拡張が出来るよな。
なんか、他にもbulletMLに足りないような仕様って無いかな
0022名前は開発中のものです。
2009/04/02(木) 00:03:55ID:L9tCylpZそんな色んな種類のものは使わないなあ
0023名前は開発中のものです。
2009/04/02(木) 05:43:03ID:OkqtCSON0024名前は開発中のものです。
2009/04/02(木) 07:37:14ID:yXIvxvr/0025名前は開発中のものです。
2009/04/02(木) 07:53:01ID:CktrGb4U一気に汚物シューとなった
アイテム1つでぱわ〜あっぷするコードにするとまじやばい
0026名前は開発中のものです。
2009/04/02(木) 09:39:10ID:wsgWBKLOなんとなくわかるところがイヤだw
0027名前は開発中のものです。
2009/04/02(木) 10:13:45ID:vpaE0Dqr0028名前は開発中のものです。
2009/04/02(木) 10:34:09ID:gY9SSil80029名前は開発中のものです。
2009/04/02(木) 11:31:39ID:OkqtCSON実につまらん!!
が共感してしまう俺ガイル
0030名前は開発中のものです。
2009/04/02(木) 14:47:18ID:OkqtCSON0031名前は開発中のものです。
2009/04/02(木) 14:57:45ID:OkqtCSONhttp://mogera.jp/gameplay?gid=gm0000000129
0032名前は開発中のものです。
2009/04/02(木) 16:14:19ID:muWHwwS30033名前は開発中のものです。
2009/04/02(木) 17:31:02ID:OkqtCSON本当にすまん!
シューティングに関係なくすまん
ところで ウンテイオナニー ってなんだ?
0034名前は開発中のものです。
2009/04/02(木) 22:44:34ID:8KnvGqVi0035名前は開発中のものです。
2009/04/02(木) 23:05:43ID:JmbmTgMR0036名前は開発中のものです。
2009/04/02(木) 23:12:55ID:SVjG00/Pだが、逆に言うと自分なんかはあの本の助けを借りずしてあの領域まで到達したわけで……
なんか、自分の経験値が相対的に陳腐化したようでちょっとかなしい。
0037名前は開発中のものです。
2009/04/02(木) 23:36:06ID:8KnvGqVi相手にすんなって意味
0038名前は開発中のものです。
2009/04/03(金) 09:07:21ID:TxHaBE5pおまえらの上から目線が痛い
レベルも低いし、アホでも書き込める状態が事実だと思う
0039名前は開発中のものです。
2009/04/03(金) 10:54:25ID:YHpfA95p0040名前は開発中のものです。
2009/04/03(金) 10:56:31ID:4uiCP2N3お前が一番上から目線じゃないか
レベルが低いとかw
0041名前は開発中のものです。
2009/04/03(金) 11:25:49ID:HPWLmG0jおお こわい こわい
0042名前は開発中のものです。
2009/04/03(金) 11:50:27ID:TxHaBE5p0043名前は開発中のものです。
2009/04/03(金) 11:53:22ID:TxHaBE5pミ;;:;,. _,.;:゙ ヨイショ....
( ´・ω・)
/ つ〜⌒ヽ
( (';; _, ...,,)
∪,)....´;;;,,,..(ヽ
(::::::ノ⌒)_ヽ)
 ̄
∩⌒>⌒ヽ ゴソゴソ
/(';; _, ...,,)
( ,)...´;;;,,,..(ヽ
~ U(::::::ノ⌒)_ヽ)
,.:-一;:、
ミ;;:;,. _,.;:゙
/( ´・ω・) フトンサイコー
/ У~ヽ
(__ ノ、__)
カタカタカタ
_ :-一;:、
.//|:| ミ;;:;,. _,.;:゙
| |..|.| (・ω・`,ノ⌒ヽ フトンサイコー
 ̄ll ]-、と /~ ノ )
 ̄ ̄ ̄|(_ ( ,_)
0044名前は開発中のものです。
2009/04/03(金) 12:01:33ID:0K5v1Gbc0045名前は開発中のものです。
2009/04/03(金) 12:53:05ID:HPWLmG0j0046名前は開発中のものです。
2009/04/04(土) 01:56:29ID:wnyi1zlx0047名前は開発中のものです。
2009/04/04(土) 02:42:00ID:2fTyCh520048名前は開発中のものです。
2009/04/04(土) 09:17:58ID:z/E1khfH0049名前は開発中のものです。
2009/04/04(土) 14:16:20ID:Av6jqp4T0050名前は開発中のものです。
2009/04/04(土) 14:35:29ID:7CaNAE8/そんなことできそうな流れじゃないぜ
0051名前は開発中のものです。
2009/04/04(土) 14:51:58ID:VHapYuPQ0052名前は開発中のものです。
2009/04/04(土) 16:58:54ID:GhAzQblEここより大きいとなお良いのだけれど。
0053名前は開発中のものです。
2009/04/04(土) 18:01:16ID:Iwp/gNLI個人的には大歓迎なんだが、確かにお勧めできる雰囲気じゃないな。
0054名前は開発中のものです。
2009/04/04(土) 19:11:16ID:7CaNAE8/小規模でSTG限定じゃないけど機能してるところなら知ってる
でもこの流れで具体的に名前出しちゃうと喧嘩してる面子まで流れ込みそうで嫌だな
0055名前は開発中のものです。
2009/04/04(土) 19:59:37ID:geEi2iNOSHMUP-DEV行ってこい
こことは比べ物にならんほど大きいぞ
0056名前は開発中のものです。
2009/04/04(土) 20:09:35ID:4rWfhfKa・敵機と敵弾にも属性があり、自機は同じ属性に対しては接触してもミスとはならない
・同属性の敵弾を吸収し続けると、白濁レーザーが撃てる
0057名前は開発中のものです。
2009/04/04(土) 20:22:49ID:mfukvvdc0058FreeZoneSTG05%
2009/04/05(日) 09:27:56ID:vOF6Xfm3あれはもう、シューティングというよりパズルな気がするw
0059名前は開発中のものです。
2009/04/05(日) 09:54:47ID:muDa/eyF0060名前は開発中のものです。
2009/04/05(日) 11:11:39ID:+iR4cUex0061名前は開発中のものです。
2009/04/05(日) 11:54:39ID:Q5CdXFxN0062名前は開発中のものです。
2009/04/05(日) 12:39:53ID:xCJsaRCg俺の場合は敵死亡時に当たり判定の無い全く別のキャラクター生成してるけど……
0063名前は開発中のものです。
2009/04/05(日) 12:55:03ID:xCJsaRCg今現在、俺のゲームの中では
・弾リスト(サイズ浮動)
・敵リスト(サイズ固定)
・自弾リスト(サイズ固定)
・自分リスト(サイズ固定)
・エフェクトリスト(サイズ浮動)
って感じであって、それぞれ基底クラスが同じもののリストを持ってるんだけど、
どうも無駄なような気がしてならない。
もっと効率のよい、ベターな実装はないもんか?
0064名前は開発中のものです。
2009/04/05(日) 13:09:50ID:hPLJ7+8Jただ、エフェクトとか常時大量にでてくるオブジェクトはリストじゃなくて静的配列で管理したほうが早いと思う
死亡時のアニメーションは適当にフラグ持たせてやればいいんじゃね
今の時代はメモリのほうが余ってるからそっちで富豪プログラミングすればいい
0065名前は開発中のものです。
2009/04/05(日) 15:33:30ID:VJJOOo9uclass Bullet : public Object; // 弾
class Enemy : public Object; // 敵
class Player : public Object; // プレイヤー
class Effect : public Object; // エフェクト
で
vector<Object*> obj_...
な 感じでやってるがどうだろうか?
0066名前は開発中のものです。
2009/04/05(日) 17:34:18ID:zDTTlFCJ全部構造体マンセー
0067名前は開発中のものです。
2009/04/05(日) 18:19:15ID:hyLucYNmその省略した部分が
vector<Object*> obj_bullet;
vector<Object*> obj_enemy;...
なら、Object*で持つ意味は無いな。
それぞれ継承した型で持った方がいいと思う。
0068名前は開発中のものです。
2009/04/05(日) 18:30:50ID:VJJOOo9u釣り?
0069名前は開発中のものです。
2009/04/05(日) 18:32:22ID:tQn2vmhaいっそリストのリストにして
vector<vector<Object>> objLists
const int PLAYER = 0;
const int P_BULLET = 1;
const int ENEMY = 2;
const int E_BULLET = 3;
const int EFFECT = 4;
でもいいかもね。vectorがこういう使い方できるかは知らんけど。
0070名前は開発中のものです。
2009/04/05(日) 18:32:45ID:H9cjbpvD0071名前は開発中のものです。
2009/04/05(日) 18:38:42ID:hPLJ7+8J俺の書き方悪かったな
オブジェクトといってもオブジェクト風なだけで実装は構造体でやってるよ
struct Enemy enemys[10000];
Enemy* last = enemys; // 使用中の最後の位置
で、新しく作るときは
Enemy* new = last++;
new->position = ...
消すときは*old = *(last--);
イテレータ風に
Enemy* itr = enemys;
while (itr < last) ..., itr++;
同じ構造体で多態性持たせたいなら関数ポインタ持たせてもいいな
0072名前は開発中のものです。
2009/04/05(日) 18:48:31ID:VJJOOo9uこれが保守という名のコストか・・・
0073名前は開発中のものです。
2009/04/05(日) 19:06:26ID:hyLucYNmなぜそう思う?
0074名前は開発中のものです。
2009/04/05(日) 19:07:43ID:r8NBRCxm描画順ぐっちゃぐちゃになるね
>>73
本気で言ってんのか?
0075名前は開発中のものです。
2009/04/05(日) 19:39:06ID:ZnQmmsrk> 描画順ぐっちゃぐちゃになるね
描画順を同じリストで制御しようとするなよ。
0076名前は開発中のものです。
2009/04/05(日) 19:39:45ID:BchAjALK説明できるだけの力量持たないヤツでも文句たれる事だけはできる。
教えてやる義務は無い、って考えてるんだったら
最初から口出さなければいいだけ。
0077名前は開発中のものです。
2009/04/05(日) 19:59:59ID:r8NBRCxmごめん、俺が読み違えてた
0078名前は開発中のものです。
2009/04/05(日) 20:00:23ID:r8NBRCxm0079名前は開発中のものです。
2009/04/05(日) 20:16:52ID:hyLucYNm釣りってことにしておいてくれ・・・
0080名前は開発中のものです。
2009/04/05(日) 21:32:55ID:jrbleaR0vector<Object*> obj_bullets; //class Bulletのインスタンスのみ
と言う事なら、Object*でインターフェイスを制限する意味がない。
obj_bulletsからBulletのメンバ関数を呼び出したい時はどうするのか?
0081名前は開発中のものです。
2009/04/05(日) 21:41:12ID:NPssW2ghいちいちキャストしなきゃならんのは嫌なので型それぞれリスト作る。
むしろ全部Objectなリストも作ってる事もある。
0082名前は開発中のものです。
2009/04/05(日) 22:21:54ID:xCJsaRCgこの前自分で書いてみたけど……かなりヤバかった。
0083名前は開発中のものです。
2009/04/05(日) 22:47:49ID:oecXgp0a2chで講釈たれるような物でも無いな
0084名前は開発中のものです。
2009/04/05(日) 23:52:51ID:SQfTXfkO当然、それなりのものしか出来ん。
0085名前は開発中のものです。
2009/04/06(月) 00:28:25ID:6PPcVq9Tただしそれなりに普通の絵が描けることが前提で、そうでないとやっぱり厳しい
008666
2009/04/06(月) 00:32:47ID:7OvX1Q9e表示順のソートや優先度も自由にいじれるから何も問題ナイゼー
0087名前は開発中のものです。
2009/04/06(月) 01:37:41ID:WF40IGUdやるとすると、
Objectにbool existFlagを保持しておいて、newしたらそれぞれ双方のリストに追加する。
・moveではexistFlag判定、および取り除き。
・drawではexistFlagがfalseを確認したら、リストから取り除く。・・・とかやるん?
0088名前は開発中のものです。
2009/04/06(月) 01:54:03ID:/udpOt2+public void update()
{
doTask();
doMove();
boundCheck();
}
abstract void doMove();
ってやってて、実装は派生クラス任せだからなあ。
ちなみに、描画の制御はvisibleフラッグで制御してるよ。
public void draw(Graphics g)
{
if(!visible)return;
}
で良いんじゃないのかなあ。処理的に別に重くならないっしょ。
0089名前は開発中のものです。
2009/04/06(月) 05:55:12ID:4/Jcvo/Dそれ1年後の自分が読んだらどうだろうね
0090名前は開発中のものです。
2009/04/06(月) 11:28:30ID:C2IpaJ7kあと俺はvector じゃなく list の方を使ってるが
俺も>>65と同じく<Object*>使ってるけどなあ
なぜかと言えばそのリスト全体を表示させたり動かしたりするコードが一つで済むから
まあもっと上手い人はテンプレートでやるんだろうが
>moveとdrawは別々のリストで管理したほうがいいのかね?
それやるとややこしくなりそうだからなあ
俺の場合は全体をmoveする処理とdrawする処理それぞれ別個でやるからそれでいいんじゃないかなあと思うけど
0091名前は開発中のものです。
2009/04/06(月) 11:52:13ID:eCRbQjCM無理にドットにしないで3Dモデルのプリレンダを修正とかのが良いんじゃ
0092名前は開発中のものです。
2009/04/06(月) 13:12:54ID:4/Jcvo/D体験版なんで利用規約に違反するんだよね
もっと上はその内容も自動化されてるんだろうねぇ・・・
0093名前は開発中のものです。
2009/04/07(火) 06:41:16ID:GdSTb+NH0094名前は開発中のものです。
2009/04/07(火) 10:43:13ID:2eOymHxF0095名前は開発中のものです。
2009/04/07(火) 16:20:40ID:qPHfrX0S背景のスクロールによってそう見えるだけで
処理的には止まっている、というような事ができますよね。
でも自由スクロール物の場合はそうもいかず、
自機の移動方向に合わせて背景や敵、敵弾なども相対的に動きますよね。
この時、敵が弾を発射する時点で、自機を正確に狙うようにすると
自機は動いてるわけですから、当然、敵弾はほっといても逸れますよね。
こういう場合、やっぱりスクロール速度と方向と距離と弾速から計算して
予測射撃させるのが一般的な方法なんでしょうか?
0096名前は開発中のものです。
2009/04/07(火) 16:33:48ID:xDWS2W7K個人的に予測射撃は好かんが、やってみて面白ければそれで良いのでは
基本的には撃つときに自機が居た場所に撃つってのがやっぱり一般的だと思う
あとはway弾や誘導弾などを絡めれば良いんじゃない
どんなの想定してるか判らんがこんなの↓やってみ
ttp://www.olofson.net/kobodl/
0097名前は開発中のものです。
2009/04/07(火) 17:00:24ID:m1XQsXIa描画の部分で部分的に書けばいいだけ。
class bound{
int left,top,width,height
}これが領域クラスで、
bound field =new bound(-50,-50,350,450);←これがフィールド全体のサイズ定義で
class scope{
int posX,posY,width,height;
public void slide(int x,int y){
<posxとposYをそれぞれ移動させる>
}
}
scope view=new scope(30,30,100,100);←これが画面に表示される範囲
って感じで二つクラスを定義して適度にスライドさせてやれば良いだけの話。
0098名前は開発中のものです。
2009/04/07(火) 22:04:54ID:VvhPlWnB8方向スクロールでも敵弾発射時の自機位置を見て発射で問題は無いと思うよ
速度違いの弾を混ぜるのと発射方向(敵配置)を一工夫するとそれなりになってくるし
0099名前は開発中のものです。
2009/04/07(火) 23:30:40ID:BI2+aeJCそうそう当たらないから同じように考えちゃって構わんと思うよ
010095
2009/04/08(水) 00:10:32ID:oGWHxv0C96さんの挙げられてるのとは違ってて
キー入力なくてもゆっくり前方にスクロールするけど、キー入力をすると高速でスクロールするって仕様でして
キー入力なしでぼーっとしてても飛んでくる弾が全部スカスカはずれるのがかなり情けなかったので悩んでました。
スクロール方向の補正を常にかけると方向転換した時異常な挙動になるし、
スクロール分だけ初速に補正かけると、弾速が異常に早くなるしで
結局、簡易的な予測射撃をさせる事で落ち着きそうです。
これでもやっぱり自機のスピードに緩急つけた時に
敵弾が変な方向にとんでっておかしいけどw
0101名前は開発中のものです。
2009/04/08(水) 00:29:53ID:AUX7bEidそもそも延々と前に進んでると正面に敵や障害物が出てきて激突死したりしないのか?
入力方向に高速で移動できるならなおさら、同じ方向に延々移動し続けられない制限が要るだろ
どうやって自機を殺しに行く想定なんだ
■ このスレッドは過去ログ倉庫に格納されています