シューティングゲーム製作技術総合 2機目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/01/10 21:07ID:hzI9eQA5それは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■ 前スレ
シューティングゲーム製作技術総合
http://bbs.gamdev.org/test/read.cgi/gamedev/1056635103/
0170165
04/01/30 03:05ID:wHwjFN70なんてゆーか、動的メモリ恐怖症なんです(((´Д`;;)))
今、このシステムをベースにしてゲーム作ってるんですが、
やっぱりクラスを使わないとできることが限られてしまうワケで。
次回作にはちゃんとクラスで実装して、
もう少しいろいろできるコアを作ろうと思ってます。
|Д`)。o (newしてdeleteするだけなのに出来ないチキンな漏れ…。
0171名前は開発中のものです。
04/01/30 03:08ID:lKd8f126gamdevうpろだを使う手があるのかーそーなのかー
0173名前は開発中のものです。
04/01/30 08:39ID:B84U1womこいつらの関数は派生するからサブクラス側でも使える。
固定サイズの作業領域を用意するなどのことは簡単
0174名前は開発中のものです。
04/01/30 09:48ID:WyldIjeOだめぽ・・・_| ̄|○
参考サイトとかそこらにあるゲーム見て回ったんだが・・・
弾幕作れない(最大敵弾数が低い)上に妙に重い・・・
おとなしく他のもの使おうと思います・・・
0175名前は開発中のものです。
04/01/30 09:57ID:I36G2mCC0176老人
04/01/30 11:15ID:ju7uiRkE0177名前は開発中のものです。
04/01/30 11:37ID:+ZMRzRw0>なんてゆーか、動的メモリ恐怖症なんです(((´Д`;;)))
つか、ゲームループ中での動的確保は流石にやらないのが普通では?
例えばタイトル->ゲーム本編->ゲームオーバー処理みたいに状態が大きく偏移するときならまだしも、
ゲーム本編のループ内で1キャラ出したり消したりする度に一々new/deleteなんてやらんでしょ
0178名前は開発中のものです。
04/01/30 12:41ID:EdduHOr8まだ書いたこと無いな
0179名前は開発中のものです。
04/01/30 13:06ID:B84U1womデフォのnew/delete使ってたんだけど
困ることってなかったけどね
今作ってる奴はそういうオブジェクトの基底クラスのnew/deleteを書き換えてるけど
そもそも開発環境のPC性能が圧倒的だから全然変わった気がしない
0180名前は開発中のものです。
04/01/30 19:25ID:yvxTFkB0オレは一々動的確保してます。
むしろ、動的確保しないで立ち回る方法がわからん・・・
0181名前は開発中のものです。
04/01/30 19:40ID:Ev4JnOfR途中で飽きてほったらかしにしてあるのでもあげてみるか。
C++でいろいろと無駄なことをやって分かりづらいと思うけど。
ttp://gamdev.org/up/img/216.lzh
0182名前は開発中のものです。
04/01/30 20:44ID:J/h2K8Zb0183名前は開発中のものです。
04/01/30 20:49ID:quCXdfvpなんとも古典的な内容のサイトだなあ。
今から始めるのなら参考にしないほうがいいよ。てゆーかするな。
こっちの「オブジェクト指向風シューティングゲーム」とかのほうが今風で役に立つと思う。
http://www.sm.rim.or.jp/~shishido/gamedev.html
あと、OOスレとかいろんなとこで話題になってるけど、
new/deleteは今のハードなら忌避する必要ありまへん。俺は16ビット時代に捨てたし。
0184名前は開発中のものです。
04/01/30 20:53ID:quCXdfvp・完成までの工程を計画する。
・開発日誌をつける。
・ToDoリストを作る。
これだけでだいぶ違う。
0185名前は開発中のものです。
04/01/30 21:08ID:I36G2mCC喧嘩してもいいけど引きずるとアウト
0186名前は開発中のものです。
04/01/30 21:46ID:TZcIf85k時間管理の不備がツッコミどころかな…
まあこれを読める人ならそれくらいは自力でなんとかできるかな
>>167は、古典的タスク管理以外はじゅうぶん真似すべき
プログラムはともかく、シューティングづくりの基礎がつまっている
0187名前は開発中のものです。
04/01/30 22:59ID:rh+IQ9Rwadjest
予想されるキーワード: adjust
ちょっと気になった。
0188名前は開発中のものです。
04/01/31 01:05ID:5B0kWu8Iマイクロチップを自在にプログラムできる技術は重宝するよ
0189名前は開発中のものです。
04/01/31 01:12ID:1U/kPgvPC++でやることをCでやったらこうなりました、って感じかのうw
完全移植するならvfテーブル使えってことにはなるけどな。
あれに無理に固執する必要は無いってだけで考え方は大切だと思うー
確かスーパーマリオとか既にああいう感じで作られてたと聞いたことあるけどそうなのかな?
だとしたら任天堂ってすげーなー。w
0190名前は開発中のものです。
04/01/31 01:38ID:DrBR1GMU配列だけでゲーム作ってるけど・・・
0191名前は開発中のものです。
04/01/31 02:55ID:noKezy4x0192名前は開発中のものです。
04/01/31 07:57ID:H1XPs9z1例えば、あるキャラのみで使う必要な変数が増えたらどうすんの?
固定長だとキャラ(=タスク?)共通の汎用のワークエリアみたいなのを増やすわけですか?
で、1キャラで大きな容量のメモリ領域を使いたいときは、
無駄にワークエリアを増やすのは無駄だから、
他のところで確保したメモリへのポインタを指すだけにするわけ?
あ、なんだか出来そうな気がしてきた・・・
0193名前は開発中のものです。
04/01/31 11:45ID:NyjV8jKYもう少しシューティングを研究してみたらいいと思う
0194190
04/01/31 12:07ID:DrBR1GMUとりあえず、ハードの容量にも寄るけど1タスクで64バイトくらいあれば
ゲームのキャラは動かせるので、それをゲームで使いそうな分を実行時に確保。
よっぽど足りない時は2タスク分確保してそっちも使う。
使ったこと無いけど。
自機弾なんて凝らなければ、座標と移動値か向きとタイマーと耐久力くらいがあればいい訳だから、弾は16バイトもあれば十分かな。
0196名前は開発中のものです。
04/02/01 03:11ID:8Ppt2JqF789
4敵6
123
数字が敵の動きとして
static int e_houkou[]={1,2,3,4,8,7,9};
e_flg=0;
int ex=100,ey=100;
int e_cnt;
〜(省略)〜
if(e_flg==1){
switch(e_houkou[e_cnt]){
case 1: ex-=10; ey+=10; break;
case 2: ey+=10; break;
case 3: ex+=10; ey+=10; break;
〜(省略)〜
という風にして配列に数値を最初に入れておいてその数値によって敵の動きを移動方向を決めれば
良いと言う事ですか?。
どのタイミングで敵の移動方向を出せば良いのだろう・・・_| ̄|○
0197名前は開発中のものです。
04/02/01 03:40ID:rg9VfL530198名前は開発中のものです。
04/02/01 05:33ID:+wlkYdKmC言語でそのまま記述するのではなくて、
もっと簡単に動きを記述できる中間言語を用いることだよ
0199168
04/02/01 11:34ID:+i7W5a7tスクリプト化は>>198さんが言ってる通りのこと。
スクリプト化する利点は、本体のコードを修正せずに変更できること。
(コンパイル不要。他人の協力を得やすいこと)
欠点は、処理速度の低下、本体のコードの複雑化など。
>>196のコードでe_houkouをファイルから読み出して使うようにすれば
一応スクリプト化は出来てると言えるんじゃないかな、とは思うけれども、
その言語仕様では柔軟性が無い。(敵弾は吐けないし、曲線を描く行動も、
自機追尾もできない。)
だから、といって十分柔軟な仕様のスクリプトを実装しろ、というわけでは
なく、目的に合った方法を使えということ。
敵行動に関して、漏れは以下のパターンでやってる。
実物は>>168に。
if(enemy.type[t] == EN_ENEMY1)MoveEnemy(t);
// >>131のカクッと折れる敵の行動
void MoveEnemy(t){
enemy[t].timer++;
if(enemy[t].timer < 120){
enemy[t].x -= 4;
}else{
enemy[t].y += 4;
enemy[t].x -= 4;
}
各敵にtypeとtimerを記憶させておいて、
それに応じて行動させている。
0200名前は開発中のものです。
04/02/01 13:49ID:bcjVD8/s>自機追尾もできない。)
文字列にしてa〜zにもコマンドを割り振ったりなんかしたりして。
いや言ってみただけ言ってみただけ
0201168
04/02/01 15:26ID:+i7W5a7tその考え方で正解だよ。
ただ、コマンド数を延々増やしてると、そのうち自分でも
ごっちゃになる。すると、それなりの言語設計をしたり、
パーサー(構文解析)を作ったりする必要が出てくる。
本来の作業に加えてね。
しかし、それを実装したところで、ゲームが面白くなるとは
限らない。そもそも、プレーヤーはゲームの中を見ることが
ない。
まぁ、利点欠点を考えて適材適所ってことなんですが。
0202名前は開発中のものです。
04/02/01 15:57ID:+wlkYdKmスクリプトに限らず、仕様ばっか凝り出してゲームが進まないってのは良くある罠だよね
0203名前は開発中のものです。
04/02/01 20:31ID:gPJywN+lなので今回はスクラッチとダウンサイジングと仕様削減を合言葉に作ってる
0204名前は開発中のものです。
04/02/01 21:06ID:l59wl63M0205名前は開発中のものです。
04/02/01 21:28ID:lw1srjwx弾回避や予測射撃の知識も身につくYO!
いや、はじめからSTG向けのスクリプトを弄れ!という指摘もあるだろうけど :P
0206名前は開発中のものです。
04/02/01 21:57ID:38LSgSLDというか、きっちりしようを決めて作るべし。
仕様を凝る(=拡張可能な柔軟なつくりばかり追求する)って、実は
一番重要な部分を先送りしてるだけなんだよね。
オレはやっと最近それに気づいたヘタレ…完成しないわけだよ…
0207名前は開発中のものです。
04/02/01 23:54ID:vey8p8Wy0208名前は開発中のものです。
04/02/02 03:06ID:i/GekYP5あとは90度回転で済ませたいんですが、画像を回転させてコピーする(Bitbltみたいに)APIってないですか?
開発環境はBCC5.5で32APIゴリ書きです。
0209名前は開発中のものです。
04/02/02 03:48ID:FCoWK6NPディザかけるなどの処理が無くてもよいバトルガレッガ程度の画質の回転ライブラリ、欲しいね
0210名前は開発中のものです。
04/02/02 04:00ID:MdNwFQG/0211名前は開発中のものです。
04/02/02 04:30ID:yc9JYL9G0212名前は開発中のものです。
04/02/02 06:26ID:HsES/+LZ一応こういう有名なゲーム用ライブラリがあるけど。回転拡縮スプライトあるにょ。
ただしAPIを見ても分かるとおり、かなり古風な作り。(DOS時代からのものだしな)
まあ、素直にDirect3D使うのが一番素直でしょう。
0213名前は開発中のものです。
04/02/02 06:28ID:HsES/+LZ0214208
04/02/02 11:32ID:i/GekYP5色々とご意見ありがとうございます。
まあ時代遅れなのはわかってるんですが、winプログラム覚えたてなもんで…
いずれはDirectXに移植したいんですけどね〜
0215名前は開発中のものです。
04/02/02 14:34ID:FCoWK6NPDirectX導入による保守性の低下が懸念なら、
回転オブジェクトの描画をきっぱり諦める。
または何か適切なラッパライブラリを使い、
コーディングの幅が狭くなるかわりに見通し良い状態にする。
のがいいんじゃないだろうか。
ラッパライブラリで何が適しているかはわからないけど。elとかdxlibとかは有名だね
0216208
04/02/02 15:00ID:i/GekYP50217名前は開発中のものです。
04/02/02 16:58ID:/V+ybFzq0218名前は開発中のものです。
04/02/02 17:58ID:BnC8luPI注意が必要だ(デバッグ版はDLLになってるのでそのまま使えるけど)。
いや、D3DX使わないなら関係ないけどね。
0219208
04/02/02 19:35ID:i/GekYP5そうなんですか…やっぱBCCでDirectXは険しい道のりなんですね〜
さっき本屋にも逝ったけどVC関連ばっかりで…
「VCの機能を最大限に生かしたプログラム」しなくてええっちゅーねん。
0220名前は開発中のものです。
04/02/02 22:09ID:dlkS80ye0221名前は開発中のものです。
04/02/02 23:17ID:wBMgBDwz0222名前は開発中のものです。
04/02/03 00:36ID:ZiFEw0DzABA Gamesのは(少なくともrRとかは)BCCじゃなくてMinGWな気が。
0223名前は開発中のものです。
04/02/03 01:15ID:J8lns4TSあとのC++とかDとかはおいといて
0224名前は開発中のものです。
04/02/03 01:17ID:/Uw/QLq7複数の敵を一つのグループで動かす場合は
どうすればいいのかわからない_| ̄|○
0225名前は開発中のものです。
04/02/03 01:32ID:vqom/Z2h編隊のこと?
俺は、編隊も1匹も同じで敵キャラの出現タイミングと出現場所を書いたデータファイルを
作成してステージのはじめに読み込むようにしてた。
これが正しいかわからんけど。
0226名前は開発中のものです。
04/02/03 02:37ID:fdd6paxL変態タスクを作って雑魚タスクを管理。
0227名前は開発中のものです。
04/02/03 12:30ID:pgLOj0Cx結果的に群れてるようにも見える。大往生4面雑魚とかはそんな感じだろう。
一方、グラディウスで雑魚が全滅したときにアイテムが出るが、これは
複数の敵をグループとして管理すると実現しやすい。
グループリーダー(実体はなく、アイテムを出すだけの役割)に
一匹一匹が「やられましたー」と報告して、最後の一匹がやられたらアイテムを出す。
リストで管理して削除していくのが一般的かな。
いきなり複数のグループを扱おうとする前に
まずは単純に画面内の敵すべてを1グループとして
敵全滅判断の処理を組んでみると、わかりやすくていいかもよ。
0228名前は開発中のものです。
04/02/03 16:50ID:v5+DNIElそういや回転といえば、ケイブのやつとかはちゃんと光源の方向を考慮した回転
パターンを用意してない?
達人とかビッグコアみたいに真上(真横)から光を当てたような、真ん中が明るく
エッジが暗い左右対称なデザインだと、回しても違和感が無いけど、今となっては
PC猿人のゲーム みたいで貧乏臭く感じるんだけど。
0229名前は開発中のものです。
04/02/03 18:17ID:pMaVXkyO3Dでモデル化したやつから2D画を起こしてるんじゃなかたっけ?
手法は違えど角度毎に別な画を全て用意するというのは古典的(かつ効果的)な手法だよな
よく2D絵を回す為にD3Dで2D絵を回転とか言うヤシ見かけるが、あらゆる意味でセンス無えと思う
0230名前は開発中のものです。
04/02/03 18:36ID:0mx1dz/i> D3Dで2D絵回転
プログラマ的視点から言えば正常じゃねーの?
うちでも、立体感ない回転させた日には、ドッタさんが腹立てて
「回転パターン書く!」とか言い出します。
0231名前は開発中のものです。
04/02/03 18:58ID:muHYIOOj素人作品はむしろモデリングやドット絵がボトルネックになっているもののほうが多い
0232名前は開発中のものです。
04/02/03 20:45ID:SuvAycYQまぁポリゴンならプログラムで回せて光源も正しく処理されるわけだが
0233208
04/02/03 22:09ID:7faPxv3Q色々調べたら、OpenGLはLinux上でも動くっぽいのでどうせVC++を持ってないならOpenGLにしようかなとも考えてます。
まだ大分先のことになりそうですけどね…
0234名前は開発中のものです。
04/02/03 22:50ID:vqom/Z2hあれなんか、WAVの爆発音を重ねるのが重くなるからか、
「どかーん」というWAVと「どかどかーん」というWAVを用意して
複数の敵を倒したときは「どかどかーん」を鳴らしてる。
けっこう力技の方が一般的なんだよね。光源の2D化とかも。
0235名前は開発中のものです。
04/02/03 23:51ID:1w8HaMS4ドット絵1枚描くよりも、プリレンダリング用のモデル1つ用意するほうがコストかかるじゃろ。
ちゃんとしたデザイナーさんがついてて今風の絵にするならともかく、
古典的な2Dゲーではグリグリ回してもあまり問題ないケースが多いと思われ。
まあ、光源の方向が決まってる絵をむやみに回すなってのは基本ではあるわよね。
あと昔のハードに必ず載ってた左右/上下反転も、今では使えないケースのほうが多い。
0236名前は開発中のものです。
04/02/04 01:07ID:Beg7JZOX3D使わないで動かして、なんて発注されたら逃げたくなるが…。
0237名前は開発中のものです。
04/02/04 03:09ID:zh4e0FJkレイフォースのレーザーも全部キャラクタで持ってますが…。
0238名前は開発中のものです。
04/02/04 03:36ID:ijYeRi9Y0239名前は開発中のものです。
04/02/04 04:14ID:cMovHLL63Dモデル1つ用意すればあとは32方向分でも64方向分でもすぐに用意できるワケだが
モデルを起こせる環境さえ整ってればむしろこちらの方がローコストなんだよ
0240235
04/02/04 05:24ID:ijYeRi9Yあたしゃ、(回転可能な)ドット絵を1枚描いてそのまま回転させるのと、
モデル1体作ってそのまま回転させるコストを比較してるんであって。
0241名前は開発中のものです。
04/02/04 05:26ID:2ZZdt/7Kそうだね。
例え一枚でも規模によってはモデリングしたほうが楽なこともある。
ただ、手作業の擬似3Dには別の味があるので、一概に比較できないけど。
0242241
04/02/04 05:27ID:2ZZdt/7Kまあ書いたとおりだが。
0243235
04/02/04 06:24ID:abwzumam> 例え一枚でも規模によってはモデリングしたほうが楽なこともある。
それは認める。
というかなんだ、前処理で回転パターンを生成するにせよ、ハードウェアの回転機能を使うにせよ、
手描きの一枚絵をそのまま回転させてるゲームは山ほどあるわけだ。
そりゃいまどきの市販ソフトの映像クオリティだと流行らんけどさ、
誰もがそういうの作ってるわけでなし、モデラーや鬼のドッターを用意できるわけでなし、
個々の制作者の事情を無視して、あらゆる意味でセンス無えとかってのはどうかと思うわけよ。
俺はクロノトリガーのタイトル画面好きだぜ。関係ないけど。
0244241
04/02/04 07:19ID:2ZZdt/7K適材適所と言っても常に適材が用意できるわけじゃなし。
2D3D両方のスキルを持ってないと比較は出来んわけだし。
0245名前は開発中のものです。
04/02/04 07:53ID:LnBAGbEKネタです。突っ込まないように
0246名前は開発中のものです。
04/02/04 08:36ID:S4gpfpmI禿同
0247名前は開発中のものです。
04/02/04 08:58ID:IxWgKU0p0248名前は開発中のものです。
04/02/04 11:04ID:o8s5uh5e少なくとも手抜き目的以外で積極的にやるもんではない
0249名前は開発中のものです。
04/02/04 11:06ID:ZMAKlGIMバンプマッピングでそこはかとなく立体感を出すとか!
0250名前は開発中のものです。
04/02/04 12:05ID:vcRDEO440251名前は開発中のものです。
04/02/04 12:26ID:o8s5uh5eそれだと余計に手間がかかるだけじゃねーの?
光の角度一回点分の絵を全て用意した上で更にソフトで回転処理?
いっそケイブ方式の方がラクのような気がする
0252名前は開発中のものです。
04/02/04 15:06ID:ZMAKlGIM斜めだと使えないね。
0253名前は開発中のものです。
04/02/04 15:38ID:EFi4FUcsCPUコスト問題
製作コスト問題
クオリティ問題
宗教の問題なのかね?
0254名前は開発中のものです。
04/02/04 15:52ID:IxWgKU0p0255名前は開発中のものです。
04/02/04 15:53ID:amRATcZY宗教というよりはトラウマだな。
0256名前は開発中のものです。
04/02/04 21:30ID:nM6massKことだよね? たしかにそれじゃスーファミレベルだな。
漏れが昔2Dゲー作った時は、ドッター氏がソフトで回転させたのを
手修正してくれた。久々に連絡取ったら、彼は携帯アプリやってる
らしい…。
0257名前は開発中のものです。
04/02/05 02:07ID:a0yna+kjVAIOで作ったヤツに使ったフォントはその機種にだけ入っていたフォントなので
修正に苦労したよ。
0258名前は開発中のものです。
04/02/05 02:20ID:a0yna+kj0259名前は開発中のものです。
04/02/05 03:36ID:YTjX4EjP任天堂のスターフォックスタイプの3Dシューティング作ってる人居ませんかね?
0260名前は開発中のものです。
04/02/05 09:08ID:5cXEa3IVあの独特の疑似3D感をGLで出すのに苦戦してます。
0261名前は開発中のものです。
04/02/05 18:54ID:yfmjYTKaあの市松模様をやるわけね。
自分もポールポジション的コースの再現に凝ったことあるよ。
0262名前は開発中のものです。
04/02/06 18:22ID:olmPAvex0263名前は開発中のものです。
04/02/06 20:36ID:elf/HAQjタスクってなんなんですか?
0264名前は開発中のものです。
04/02/06 21:48ID:91D2MlSNコンピュータゲームのからくり
http://www.hh.iij4u.or.jp/~peto/Games/games_top.html
古い技術なので、別に無理して使うこと無いと思う。
参考にするくらいはしてもいいと思うけど。
0265名前は開発中のものです。
04/02/06 23:15ID:mMIlunZa「タスクを用いない作り方」はいかにも悪例のようですけど
0266名前は開発中のものです。
04/02/06 23:15ID:XUqqah8eメモリコスト問題
CPUコスト問題
製作コスト問題
クオリティコスト問題
コストの問題のような気もします。
MEMORY < CPU < QUALITY < PRODUCTION
0267名前は開発中のものです。
04/02/06 23:39ID:CN/1QPD2みなさんがんばってください!!力になれないけど
応援します!プログラミング出来たらおれも作り手ー
0268名前は開発中のものです。
04/02/07 00:33ID:I/AtIKu3新作を見せ付けられることが、製作者の燃料だ!!
0269名前は開発中のものです。
04/02/07 01:15ID:O8A0WUto必須っすかね?
同人作品全般、並びにシューターサイトを眺めてみると、その嗜好は
明かなので、そのあたりのクオリティが低いと認知されにくいのかなぁと。
このスレの多くはプログラマさんだと思いますが、オブジェクトや音楽以外の
要素をどのくらい重要視されてますか?
■ このスレッドは過去ログ倉庫に格納されています