トップページgamedev
987コメント289KB

シューティングゲーム(非FPS)製作技術総合

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/07/17(金) 23:37:46ID:WRVq1Lf8
ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。

このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!

ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
0674名前は開発中のものです。2010/09/20(月) 14:21:53ID:Nx+Q2MDR
メモリに直接アクセスできるC言語なんて使えたら
アプリで携帯をぶっ壊すことが可能になっちゃうだろ
0675名前は開発中のものです。2010/09/20(月) 14:24:27ID:xBpgp9ZY
確かauのBREWはCでも組めたよ
0676名前は開発中のものです。2010/09/20(月) 16:31:44ID:JYtE6tSU
http://www1.axfc.net/uploader/He/so/294554
>>607の改造版
0677名前は開発中のものです。2010/09/20(月) 17:39:11ID:ioukBWfm
>>676
産業で言うと

解凍したら赤さんでてきて釣りかと思った
起動したら爆音がするって書いておけカス
進歩が見られない
0678名前は開発中のものです。2010/09/20(月) 18:18:12ID:NT835AJ6
>>663
ソース内で制御構文使って分岐をベタ書きしても全く不都合ない、つー前提を
>>661から読み取るとifとswitchの主な差は可読性だろうなぁ
「単純な識別子に応じて複数の処理があるよ」てことをswitch文は示唆するから
一瞥した時にif文よりも幾分読みやすいだろ

ただマジックナンバー使ってるから「即席・作り捨ての小さなプログラム」とも読み取れるし
ここではどっちでもいい話かもな

あとif文とswitch文に速度差が出るくらい識別子の種類が増えたり、メインプログラムの
ソース内にベタ書きすると不便になるくらい頻繁に修正が入るような部分なら外に追い払うだろ
0679名前は開発中のものです。2010/09/20(月) 18:56:42ID:ZXsfQDzK
クラス使えばポインタで分岐できて見やすい
0680名前は開発中のものです。2010/09/20(月) 20:15:10ID:d2fwGT9E
ポインタとイフスイッチどっちが速いの?
0681名前は開発中のものです。2010/09/20(月) 20:24:53ID:YYPdi3El
場合による
0682名前は開発中のものです。2010/09/20(月) 20:50:24ID:Nx+Q2MDR
>>676
×押してもプロセスが終了しないんだが
0683名前は開発中のものです。2010/09/22(水) 23:47:32ID:nqz2yjng
今Flash使ってアクションシューティングもどき作ってる初心者ですが
一つの敵に腕とか複数のパーツがある敵ってどう作ればいいか全く見当がつきません
ググっても分かりません助けてください
0684名前は開発中のものです。2010/09/22(水) 23:55:19ID:zu5HzNuZ
初心者はシューティングだけにしとけ
Flashやめてツクールにしなさい
0685名前は開発中のものです。2010/09/22(水) 23:59:06ID:8UDo2dBB
腕とかもひとつのキャラとして扱って、その座標を本体にあわせるだけ。
0686名前は開発中のものです。2010/09/23(木) 00:10:07ID:o1v/wkDY
>>685
そこまでは分かるけどそれだと親から子へどうやって情報を渡せば良いんでしょうか・・・
0687名前は開発中のものです。2010/09/23(木) 01:23:32ID:UiyQ0o5D
俺は単純に子の情報を親に持たせて、そこから操作させてるけど
一般的にもっといい方法あるかもね。

俺は動けばいいレベルしか作れんし。
0688名前は開発中のものです。2010/09/23(木) 02:53:39ID:Jre2ShzM
俺はまず敵を作る時にIDを設定する。
で、親が子を作る時に一番上の親(root)のIDと、一つ上の親(parent)のIDを渡してる。

敵の座標などのパラメータは全て配列で制御していて、そのIDを入れるとその敵の座標を参照できるようにしてる。
要は敵を生成する時にまとめて x[ID] = 10; みたいな感じでパラメータを入れてる。

子の座標(x, y)が ((enemyX[parentID] + x), (enemyY[parentID] + y)) みたいな感じ。
コレを繰り返すと触手みたいになるって寸法。

まぁ、Cで独自にやってるので凄く微妙な作りだと思います。
Flashなら腕を動かしてるアニメをあらかじめ作っちゃうって手もあるかもw
0689名前は開発中のものです。2010/09/23(木) 03:18:16ID:Jre2ShzM
一番上と自分のIDを子に渡すだった。。。
0690名前は開発中のものです。2010/09/24(金) 01:46:36ID:4mRtFkVz
な、何でこんなににぎわってるんだすごくうれしいぞ!どんなレスでもにぎわってるほうがいいなやはり。

>>683
基本的には>>688のとおり。スキンメッシュやアニメーションメッシュなんかも原理的にはこれ。

class NestableUnit{
public NestableUnit Parent;
public List<NestableUnit> Children;
public PosVelocityAccele GrobalMoveState;

protected PosVelocityAccele localMoveState;
public abstract void Move(object arg);
public abstract void Draw(Vector3 addPosition); //大きい敵撃破時の振動エフェクト処理など、衝突判定その他には関係ないが描画位置を動かしたい場合にここから渡す。
・・・
}
class UnitA : NestableUnit{
public override void Move(object arg){
foreach(a this.Children){
a.Move(this);
}
}
}

グローバル座標は、直親のグローバル座標と子のローカル座標から算出。
判定処理はもちろんグローバル座標で処理する。

・・・ただ、実際のところほとんどの敵キャラは座標の階層化しないから、うちはNestableUnitの親にCustomUnitがいて、ほとんどの表示物はそいつの派生になってる。
Unit(汎用クラス。ほぼインタフェース状態。)
-CustomUnit(自分のゲームシステム用にメンバの追加や基本処理でoverrideを行ったもの。自分は最近接キャラに対する追尾弾などを処理するのを楽するため、StageはList<CustomUnit>をもち、CustomUnitはStageを持つ。)
--CustomNestableUnit(触手系用にメンバを増やしたもの。)
--Custom3DUnit(Unitはスクリーン座標管理なので、3Dグラフィックのキャラをスクリーン座標で管理できるようにしたもの。)
0691名前は開発中のものです。2010/09/24(金) 20:50:47ID:AOoN4ZAZ
>>688
ふむ…なるほどぅ
親が子供に命令を出すのじゃなく子供が親の状態を見るわけかせんきゅう
今作ってる奴もぴったり生成時にx[ID] = 10;みたいにまとめてパラメータを入力してるからちょうどええで
いける気がしましたやってみます!
>>690
悲しいかな私のFlashはMXでした…AS3っぽいけど全く分からなかったデス吸いません;;
0692名前は開発中のものです。2010/10/13(水) 22:56:03ID:dRb2l7e2
javascriptでシューティング作ろうとしたら重すぎてだめだった。
0693名前は開発中のものです。2010/10/14(木) 23:23:32ID:8GZOnq4X
綺麗なレーザーの作り方がいまいち良く解らん
どっかに解説してるサイトとか無いかな…
0694名前は開発中のものです。2010/10/15(金) 00:02:01ID:9Tf2hbLL
木こりの泉にレーザーを落とすんダ
0695名前は開発中のものです。2010/10/15(金) 04:00:40ID:hWDK4IHz
貴方の落としたレーザーは、この汚いレーザーですか、それとも綺麗なレーザーですか、ってか。

>>693

自分が綺麗だ、と思うレーザーみて真似するのが早いんじゃない?

君が望むレーザーがどんなものか判らん上に、なのが「良く解らん」のかも判らん以上、
他の人にはどうしようもないと思うが。
0696名前は開発中のものです。2010/10/15(金) 20:03:02ID:st9rDedo
レーザーなんて線の絵を書いて張り付けるだけじゃないの?
0697名前は開発中のものです。2010/10/15(金) 22:03:33ID:v07HWj+k
グラディウスみたいな直線レーザー
レイフォースみたいな曲がるレーザー
蜂みたいな滝レーザー

他にも雷電のリーマンレーザーとかSTGって色々なレーザーあるよね
0698名前は開発中のものです。2010/10/15(金) 22:15:55ID:e21fI4aL
LINE文を使うんだろ?
0699名前は開発中のものです。2010/10/15(金) 23:51:07ID:YwMPVDHf
それでもいけそうだな。
0700名前は開発中のものです。2010/10/16(土) 00:35:45ID:bCbR/GgY
テグザーか
0701名前は開発中のものです。2010/10/16(土) 00:56:35ID:UzFrsD/J
曲がるレーザーってどうやって当たり判定するの?
0702名前は開発中のものです。2010/10/16(土) 01:15:20ID:Mg6mqKVP
一ドットずつ調べんだよ
0703名前は開発中のものです。2010/10/16(土) 02:01:47ID:ey43RyYZ
>>701
俺は先端にだけ判定付けてる。

↓こんな感じ。

●○○○○○
0704名前は開発中のものです。2010/10/21(木) 06:40:18ID:cb6r656W
曲がってないようにみえる
0705名前は開発中のものです。2010/10/21(木) 08:39:33ID:3JqvbtKj
○簡易ホーミングレーザー

・1、敵弾
・2、自機に向かう敵弾(追尾弾ではなく自機の位置を見て発射するもの)
・3、方向を指定して撃てる弾(細長いものなどで角度も合わせる)
・4、レーザー(絵を繋いだ敵弾・またはLINEで描いたり)

・A、動く敵
・B、敵を生成する敵
・C、円を描いて追尾する敵
・D、蛇(グラディウスのドラゴンみたいなやつ)

を各自こなして、4とDを足したようなのを作れば完成!

※4は細かくすればするほど動きが綺麗(なめらか)になるが重くなる。
※絵や線の周りを光らせるような処理を描くと見た目がとても派手になるぞ!
0706名前は開発中のものです。2010/10/21(木) 08:41:19ID:3JqvbtKj
書き忘れた…

→円を描いて追尾する敵(カバードコアのホーミングミサイルみたいなやつ)
0707名前は開発中のものです。2010/10/21(木) 15:42:28ID:Vd75RcHy
俺の場合、ミサイルがしっぽのように吐く煙と同じように
レーザーの先端がレーザーのしっぽを吐くようにしてるな。
(レーザーの1フレームの移動速度はしっぽの長さを越えない事が前提)

当たり判定は先端にしかないけど、
全体に判定つけたければ、しっぽに判定つけるだけで済むわ。
0708名前は開発中のものです。2010/10/21(木) 22:33:16ID:Q7DGlSYo
カバードコアのってホーミングか?
丸い奴だよな?
0709名前は開発中のものです。2010/10/21(木) 22:52:54ID:3JqvbtKj
ごめん、ホーミングじゃなかったなw
向きを変えたり円を描くような動きはするので、動き的にはあんな感じではあるかな。
その動きを自機に向かいながら繰り返せばホーミングミサイルって言うか。
0710名前は開発中のものです。2010/10/25(月) 02:00:23ID:d7jBwYt4
シューティングの背景って常に流れるようにするのがむずすぎ
やっぱ3Dを勉強しないとダメなんだろうか
0711名前は開発中のものです。2010/10/25(月) 04:27:45ID:2PMR2Ic+

1・星(や雲)を流す
2・マップチップ(ループ背景)
3・大きい絵をスクロール
4・動画を流す
5・3D
0712名前は開発中のものです。2010/10/25(月) 07:49:59ID:hzk9GvVv
3Dはやった事ないから難易度はわからんけど
2Dの背景をスクロールさせる(?)なんて難しくもなんともないだろう?
キャラクター動かすのとなんら変わるところはない。

それとも何か別の事を指して言っているのか?
0713名前は開発中のものです。2010/10/25(月) 10:40:35ID:yjPjoxeK
道中からボス戦へ背景が変わるのをやりたいとか。
ていうか3Dだろうと2Dだろうとやってることはそんなに変わらんでしょ
0714名前は開発中のものです。2010/11/07(日) 21:54:29ID:x5vJfpN3
>>707
俺は先頭の弾が移動するたびに移動しないで当たり判定だけある
弾を生成してタイムリリースするようにしてるけど、ほぼ同じ
処理だよね?このやり方だと早いレーザーの処理がむりなんす
けどね。
0715名前は開発中のものです。2010/11/07(日) 22:50:20ID:X0bQhyNg
ほぼというかまったく同じだろうね。

早いレーザーなら、それこそ弾道にそって複数の当たり判定ある玉を並べて生成すればいいんじゃね?
0716名前は開発中のものです。2010/11/17(水) 00:19:57ID:/GdGrnFL
シューティングって他のゲームと比べて作るのが楽なの?
0717名前は開発中のものです。2010/11/17(水) 00:28:35ID:M4Yd1VFw
比較的楽というだけで楽ではないけどな。
0718名前は開発中のものです。2010/11/17(水) 00:33:19ID:5zoGAHwQ
基礎を学ぶにはいいと思う
0719名前は開発中のものです。2010/11/17(水) 09:13:18ID:9K2YbatA
作るだけなら楽だが、面白くなるように調整する大変さは他のゲームと変わらない。
0720名前は開発中のものです。2010/11/17(水) 18:01:27ID:TjnmUltd
まぁ、解説サイトが多いから作り易いし
0721名前は開発中のものです。2010/11/17(水) 19:07:46ID:VPXiT162
技術的にはできるようになったけど面白いゲームが作れなくて
もう2年も試作みたいなのしか作れない。
マジでステージとか考えれる奴はすごいと思う。
1面すらまともなのができる気がしない。
0722名前は開発中のものです。2010/11/17(水) 20:08:43ID:7lX3zJ21
なんでもそうだけど、最初は真似から入るのがいいんじゃないかな。
好きなゲームをそのまま自分で作るつもりで。

微にいり細にいり、1ドットも違わずまるコピー……じゃなくて、うろ覚えでいいから。
自機の動く感覚とか弾の出るタイミングとか、そうやって覚えていけばなんとかなるんじゃないかな。

もちろんそうやって丸コピーしたゲームを自作オリジナル作品として公開なんかしたら
叩かれるのは目に見えてるから、そこらへんはうまくやらないといけないけど。
0723名前は開発中のものです。2010/11/18(木) 00:37:50ID:qpJm5sXz
市販のゲーム追いかけ過ぎなんじゃないかね
参考にするのはいいけど自分の作りたいように作ればいいんじゃね
0724名前は開発中のものです。2010/11/19(金) 08:24:08ID:QhwpoYkw
シューティングは廃れたジャンル
0725名前は開発中のものです。2010/11/19(金) 09:12:31ID:mY5Ker5U
みんな同人に移っちまったからな
0726名前は開発中のものです。2010/11/19(金) 16:14:05ID:LZOYQqz3
ゲームプログラミングの教材としたらかなりのもんだと思うのだが
0727名前は開発中のものです。2010/11/19(金) 18:04:27ID:lptLtI9S
シューティングはオワコン。
素人でも作れるということがバレれしまい、
お金を出さなくなった。
0728名前は開発中のものです。2010/11/19(金) 18:45:31ID:cN9sseqM
素人には作れないシューティングを作るしか無い
0729名前は開発中のものです。2010/11/19(金) 19:36:21ID:7StUoQpy
俺は素人だから無理だな。
0730名前は開発中のものです。2010/11/19(金) 20:09:14ID:QhwpoYkw
アイデアで勝負だよ
0731名前は開発中のものです。2010/11/19(金) 21:27:30ID:nXKhCIFM
廃れた廃れた詐欺だよな
十数年前から廃れてたけど新作は出る
0732名前は開発中のものです。2010/11/20(土) 02:56:40ID:WORTq2j2
これって人に売ったり評価されるために作るのか
自分で好き勝手に作りたいものを作る、あるいは単に学習の為に作るのか
という立場で違ってくるよね
0733名前は開発中のものです。2010/11/22(月) 20:25:34ID:Qla5p+27
ゲーム製作の入門書とかにあるのとか弾幕みたいのを作ってシューティングは簡単って言っちゃだめだよぅ。
0734名前は開発中のものです。2010/11/23(火) 00:05:54ID:GjcQcyV5
ソースコードが長くなると、ちょっとの機能追加が大変な事になるからな。
これを理解出来ない厨房の何と多い事か。
0735名前は開発中のものです。2010/11/23(火) 00:31:37ID:0llWMy4J
ソースコードが増えても仕様変更に耐えうる柔軟な設計さえできていれば機能追加がそこまで苦痛にはならないよな
先を見据えた設計ができないと問題にぶち当たったときモチベが死ぬ
0736名前は開発中のものです。2010/11/23(火) 00:55:19ID:Hqslhn19
つまりオブジェクト指向最強ってことで
0737名前は開発中のものです。2010/11/23(火) 08:46:49ID:GjcQcyV5
モジュールやリファクタリング、デザインパターンも意外と重要だと思うぞ?
で、あと他に仕様変更に耐えうる柔軟な設計のコツってどんなのがあるよ?
0738名前は開発中のものです。2010/11/23(火) 11:13:32ID:3iACtkiJ
てか仕様変更とかエターナルフラグ
0739名前は開発中のものです。2010/11/24(水) 12:17:52ID:SksW09hK
スクリプト言語とかを使って、変更頻度の高い処理を外に出すとか?
0740名前は開発中のものです。2010/11/24(水) 12:19:36ID:gepYbRl7
バグが追えなくなるフラグ
0741名前は開発中のものです。2010/11/24(水) 16:26:50ID:SksW09hK
デバッガで追えないバグを見つけられるようになってこそ、ようやく半人前。
0742名前は開発中のものです。2010/11/24(水) 17:34:26ID:b+UwaDJP
シューティングにスクリプトってどんなのに使うの?
敵の行動をいちいちスクリプトで動かしたりしたら重そうだよね
0743名前は開発中のものです。2010/11/24(水) 19:21:48ID:VV5nF7iA
俺はスクリプトの仕組みなんて知らんヘタレだが、
そんなの最初に読み込んで、処理用に最適化(っていうのかどうかわからんけど)しておけば済むだけだろう。
仮にそんな事しなくても問題になるほど重くなるとは思えないけど。
0744名前は開発中のものです。2010/11/24(水) 19:48:07ID:CqG4BCxK
ツクールを他人に使わせることで
何もしなくても自分が関わったゲームができていくと言う
究極の省力プログラミングが可能となる
0745名前は開発中のものです。2010/11/25(木) 01:10:20ID:YGleVLcl
昔javascriptにシューティング移植しようとしたら紙芝居になった。
スクリプトは重くてだめだよ
0746名前は開発中のものです。2010/11/25(木) 02:18:03ID:sHEPXRBc
現行スレぐらい読み直さないとだめだよ
0747名前は開発中のものです。2010/11/25(木) 11:52:09ID:TmP63C2x
>>745
それはお前がバカなだけだ
0748名前は開発中のものです。2010/11/25(木) 13:02:07ID:zCogIgBc
そうカリカリするなよ…
0749名前は開発中のものです。2010/11/27(土) 21:50:43ID:9MwXLrwI
シューティングってこれ以上進化することがないよね
0750名前は開発中のものです。2010/11/27(土) 23:00:58ID:2k9mBJTf
なんか変わったもん作ろうとすると早々クソゲーだと判明する
0751名前は開発中のものです。2010/11/28(日) 00:05:38ID:tdYYya7u
>>744
そういや、アクツクでシューティング作れるみたいだな
0752名前は開発中のものです。2010/11/28(日) 00:06:59ID:Ii2k4zLf
実際に戦闘機に乗り込んで
機関銃を乱射できるリアルシューティングゲームを作ろうって人はいないの?
0753名前は開発中のものです。2010/11/28(日) 00:21:16ID:6jivkArF
FPSのことか?フライトシミュレータのことか?
0754名前は開発中のものです。2010/11/28(日) 11:06:38ID:Dw/b2ZFd
自分は作ろうとは思わないの?
0755名前は開発中のものです。2010/11/28(日) 11:16:00ID:d2XyW5r2
>>752
誰か作れば無料ならやるかもしれないけど、そこまでやりたいようなゲームでもない。
って位置のゲームですよね。
0756名前は開発中のものです。2010/11/29(月) 16:13:48ID:tzJ9ODiI
シューティングって作るのにどのくらいのプログラムの行数が必要なのか気になる
例えば東方とかだと1万行くらいプログラム書いてるんだろうか
0757名前は開発中のものです。2010/11/29(月) 16:27:24ID:2uhS3Cvv
シューティングにもピンからキリがあるし、プログラマーの書き方によっても変わってくるだろ。
だからZUNにでも聞かない限り普通はわからんと思うが
0758名前は開発中のものです。2010/11/29(月) 16:40:59ID:iSc8Dpob
行数なんて気にしてどうするんだ。
20年以上前のビジネスソフト開発とかだとステップ数で見積もったりしてたらしいが
そういう事がやりたいのか。
0759名前は開発中のものです。2010/11/29(月) 17:13:27ID:Vlbtskim
とりあえず俺が作ってる途中のソース見てみたら改行とかも含めて30000行くらいだった。
まぁ、あんまりリファクタリングしてないし敵の動きとか増やす時にとりあえずでコピペしちゃう事も多いからなんだけど…
0760名前は開発中のものです。2010/11/29(月) 19:16:28ID:5d+LIIIF
3800行ぐらいだったぞ
バイト数で112k

そんな物尺度にしても意味無い
0761名前は開発中のものです。2010/11/29(月) 19:22:33ID:tzJ9ODiI
>>759
30000行ってすごすぎ
それくらい行くゲームってやっぱ3Dなの?

>>758>>760
ただの興味本位です
0762名前は開発中のものです。2010/11/29(月) 20:54:19ID:wKqkOUOh
>>756
俺が制作中のGeometry Wars型シューティングは34kBだよ。
行数は多数にファイル分割してるからしらねw
0763名前は開発中のものです。2010/11/29(月) 21:25:24ID:tzJ9ODiI
>>762
http://www.vector.co.jp/soft/dl/winnt/prog/se420236.html
コロ助使えば行数わかるよ
0764名前は開発中のものです。2010/11/29(月) 22:08:51ID:CwzrBR+O
アセンブラでやれば?
0765名前は開発中のものです。2010/11/29(月) 22:10:35ID:Vlbtskim
>>761
いや2Dです。無駄が多いだけですw
「後でクラスにしよう(キリッ」みたいな処理がたくさんあるんですw
0766名前は開発中のものです。2010/11/30(火) 00:13:45ID:5sPm1Hcs
>>758
日本の一般的なソフト開発では、その20年遅れている事を未だにやってる。
だから日本では、iPodやiPhoneみたいなソフト開発は不可能に近いんだよ。
0767名前は開発中のものです。2010/11/30(火) 00:20:37ID:7zUK8jmM
行数で値段高くなるなら
ループなんて誰も使わなくなるなw
0768名前は開発中のものです。2010/11/30(火) 12:55:17ID:jG8WeBxN
敵の動作とかは下手にまとめたりするよりコピペ改変の方が効率いいよねw
バランスとりながら弄りまくるからまとめにくい
あとでコピペしたとこ全部直すハメになるときもあるけどなー
0769名前は開発中のものです。2010/11/30(火) 19:40:19ID:NDqf8wm8
こういう5,6本は作った経験が有るように書く
奴って 1000行も書いた事が無いよね
半年ROMったからわかる
0770名前は開発中のものです。2010/11/30(火) 19:41:16ID:174+f84d
どうやって確認したんだ。
0771名前は開発中のものです。2010/11/30(火) 19:43:43ID:SGzy5v12
1000行とか1面しかないゴミのようなシューティングしか作れなさそうw
0772名前は開発中のものです。2010/11/30(火) 22:42:50ID:NDqf8wm8
やっぱり11歳ぐらいなんだろうな
それよか物がわかりそうな年なら絶望的だもんな
0773名前は開発中のものです。2010/11/30(火) 23:05:36ID:shY5PCIx
自分に自信のない人間が、空想上の「自分より劣る人間」を作り出し、貶しているように見える。
■ このスレッドは過去ログ倉庫に格納されています