トップページgamedev
1001コメント313KB

シューティングゲーム製作技術総合 4機目

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

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

ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。

■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
0383名前は開発中のものです。04/09/04 09:04ID:28WXfw+v
なにほざいてんだバーカ
0384名前は開発中のものです。04/09/04 10:45ID:1uEQtt+S
ステートセーブなんて真のステートセーブはエミュならではのものなんだよ!
考えてみると構造体の中にポインタがあったらそれだけでmallocされたメモリとかアドレスとか
あれこれ違ってくる。RPGのセーブはステータスと場所とフラグぐらいだが
0385名前は開発中のものです。04/09/04 11:29ID:w/FPKiOs
>>384
|ω・)つ[シリアライズ]
0386名前は開発中のものです。04/09/04 13:41ID:67OTd1X/
>>384
|ω・)つ[シリアライズ]
0387名前は開発中のものです。04/09/04 14:06ID:lsT93R/j
シリアライズの実装は難しい
0388名前は開発中のものです。04/09/04 16:03ID:1yYp47iK
ステートセーブは大変だよな…普通はステージごとのセーブとリプレイ早送りで十分だ。
ステージ開始にセーブ/ロードするだけなら、普通は敵や弾の座標は一切記録する必要が無い。
自機のステータスとランクなどだけですむ。
0389名前は開発中のものです。04/09/04 16:18ID:ahSAn11t
そういや、ボス前に雑魚を出さない仕様にするとかあるな。
0390名前は開発中のものです。04/09/04 16:25ID:EOXs62Ac
ボスの必殺技を何度も何度もチャレンジしてみたいというのはあるが...

しかし実装し(てもらい)たいのは自分のゲームじゃないんだな。
0391名前は開発中のものです。04/09/04 20:48ID:Pf2Z+TKE
最近の言語ならシリアライズは標準実装で余裕だろ
0392名前は開発中のものです。04/09/04 22:19ID:YX3XC6uY
よし、あれだ。

巻き戻したい場合は1フレーム目から計算しなおせば良うわなにおする
0393名前は開発中のものです。04/09/04 23:31ID:+kpUEDCp
音楽プレイヤーでシークを「冒頭から指定時間までの早送り」として実装するようなもんだな
多少時間はかかっても実用に堪えればそれでよい
0394名前は開発中のものです。04/09/05 04:49ID:jBYbFXZt
CPUとGPUを上手く並列に処理できるよう書いてる人って居ますか?
要するに現フレームのバックバッファへの描画を終えて垂直同期の待機中、
CPUは次フレームの計算を初めても問題がない、って部分っす。
実際2Dシューってそこまでする必要はないと思うけれども…
そうなるとマルチスレッドにしてイベントで同期を取るって感じになるのかな。
0395名前は開発中のものです。04/09/05 06:35ID:0ekjaJx5
>実際2Dシューってそこまでする必要はないと思うけれども…
計算だけになるから凄く速くなる。先の分を処理しても
一回先の計算を終えて待っていることになりあまり効果が無いかと…
むしろ表示が原因で処理落ちが発生しているときに、タスクの
座標計算だけ処理して表示を何回か飛ばしてしまう処理の方が
ほしいのではないでしょうか。
0396名前は開発中のものです。04/09/05 06:55ID:9hrBJRap
ttp://up.isp.2ch.net/up/220b9d78ae46.lzh

観音蜂を改変してみますた。
エクステンドいじってみただけですが、バランスぶっ壊れ。
039739604/09/05 06:58ID:9hrBJRap
ただし、うちは観音蜂の作者じゃないので、間違っても観音蜂の作者に改変についての動作不都合報告とかしないように。

とりあえず動作確認はしてありますが、ウイルスチェックはしたほうが安全かもしれませんし、
また、ノークレームでお願いします。
0398名前は開発中のものです。04/09/05 10:00ID:3KHpp+4T
そんなものをここに貼るのはまちがっている。
技術的にも見るものがない
0399名前は開発中のものです。04/09/05 10:21ID:GEDEt6J2
>>394
まぁすでに3Dの描画でもネックじゃないしねぇ
レスポンスがおくれるほうがまずい
0400名前は開発中のものです。04/09/05 11:28ID:haCuFxjW
>>398
見るべき所があるかどうかは、見る人が決めること。
藻前が決めることでも無いだろ。というか、
見るべき技術のあるヤシが、こんな所に張るわけがないだろ。
0401名前は開発中のものです。04/09/05 11:58ID:zFD8NlgN
技術的に見るものがないかどうかはともかく
勝手に改変したものを貼るのはどうかと思うが?
0402名前は開発中のものです。04/09/05 12:15ID:HL1TpU4J
改変の具体的な内容とその手段が明らかにされればそれでいいや
俺は触ったことがないが、チートツール使えば一発ですむようなネタかな
0403名前は開発中のものです。04/09/05 12:26ID:fYUJo/EI
まあとりあえずアフォがいることだけは連絡済み。
0404名前は開発中のものです。04/09/05 20:11ID:EjjMcQBr
>>403=アフォ
040539604/09/05 22:21ID:9hrBJRap
>>402
正式に配布されているパッチ03とdiffしてください。
2箇所を数バイト書き換えた程度です。

2回目以降のエクステンドを劇ヌルにしますた。

とりあえず弾幕の研究などに役立ててみてください・・・って役立つのか?
0406名前は開発中のものです。04/09/06 01:08ID:G5UqfzEW
>>405=396
板違い。ここ池。
http://pcstg.s59.xrea.com/
0407名前は開発中のものです。04/09/06 01:09ID:auNVauLj
>>398=401=403=406
040839604/09/06 01:16ID:seHK1QkI
>>407
ADSLでネカフェに入れるようなお金持ち合わせてないんで、無茶です。
0409名前は開発中のものです。04/09/06 01:29ID:u3Xqk7WV
チートは板違いやね。
0410名前は開発中のものです。04/09/06 11:06ID:4CObFC3E
じゃ、作者側としてはチートに対抗する手段を考えよう。
完全に防御するのは無理としても、シロウトに毛の生えた程度のレベルの奴らの解析モチベーションを萎えさせるような。
0411名前は開発中のものです。04/09/06 12:07ID:ObP3Kgea
全てのキャラにスレッドを持たせてマルチスレッドで動作。
順序が必要な場合はきっちりイベントでスレッド同期を取る。
スクリプトは実行時コンパイルでマルチOS対応だぜ!
0412名前は開発中のものです。04/09/06 13:38ID:zZFndjB4
タスク処理を知ってるかい?
0413名前は開発中のものです。04/09/06 14:32ID:YyEXjF8/
メモリ上の変数のアドレスが起動ごとにころころ変わればいいんだっけ?
パターンマッチ検索にもひっかからないように、さらにシャッフルしてみるとか。
0414名前は開発中のものです。04/09/06 15:58ID:4CObFC3E
例えばチートの手法ってどんなのがあるか浮かぶものとして、
・プログラムファイルの解析&修正→デフォルトの残機数を記載してある部分を修正
・メモリの変化をサーチ→ダメージを受けたり、残機やライフが減ったときの前後の
メモリの変化を調べ、残機値が格納されたアドレスの値を変更

などあると思うけど、他にどのようなものがありますかね
0415初心者シューター04/09/06 16:11ID:MAHnG5m3
1機目から読ませていただき大変勉強になっています。
質問したく書き込みしました。一般的に機体・敵・弾にどのくらいの変数を持たせるのでしょうか?

ネットサーフィンをしていて弾には50以上の情報を持たせているというのを見て驚き質問しました。
ちなみに自分はフラグなども合わせて10個前後です。
0416名前は開発中のものです。04/09/06 16:25ID:yDTtNb+/
30から36バイトだなぁ…
0417名前は開発中のものです。04/09/06 18:49ID:OVtBUS5O
自分に限れば、敵は多くて30個、敵弾は曲げない場合多くて10個
でも凝っていろいろ増える場合もあるし、ちゃんとした理由があり保守や速度で対策がとってあるなら
やたら多くても構わない
0418名前は開発中のものです。04/09/06 21:18ID:YX5GWUV7
>>414
自機数の増減を行う部分に、暗号化したコピーを別の場所に作成しておく機能を
付加しておく。暗号化したコピーと、自機数が異なったら終了にする
0419名前は開発中のものです。04/09/06 22:39ID:H0B5S2Ss
メモリアクセスを検知したら強制終了みたいなことはできないのかねえ

自機の数とか正規に増やすには専用のイベントを呼んで増やしていくみたいにして
不連続&&イベントで増えていないと判断した場合は1機にしちゃうとか

実装するにはフラグを作るって感じで
フラグがONになってないのに増えていた場合は不正と

でフラグも変えられたらとなるかもしれんがフラグはmallocで確保して
どこにあるのかわからないようにすればいいのかな

不正を関知したときの罰をどうするかだね
これ次第では解析をやる気を無くすことになる

普通なら1にもどるとかだけど
場合によってはセーブが消えるゲームの例もあるそうだし
DQ IV(PS)は改造王 ? だっけて称号になるとか
シューティングならタイトルに戻るとかがいいね

某シェアウェアみたいにロジックボムは・・・
0420名前は開発中のものです。04/09/06 23:09ID:yDTtNb+/
ワークラムのチェックサムとるとか。
0421名前は開発中のものです。04/09/06 23:17ID:H0B5S2Ss
とにかく軽い事が前提って感じもするな
不正チェックでFPSが下がったりしたら目も当てられない
0422名前は開発中のものです。04/09/06 23:28ID:+eLiXSxV
内部処理の範囲内だから
余程大げさなことしなければ
処理速度に影響は出ないでしょ。
場合によっては、毎フレームチェックする必要もないし。
0423名前は開発中のものです。04/09/07 00:02ID:h7I5YBzw
普通にパラメータのチェックサム取るだけでも、処理速度に影響しない割に
かなりの効果はありそうだと思う
できるだけ対象のパラメータが変化する部分をまとめたほうがいいかな。
0424名前は開発中のものです。04/09/07 00:10ID:wt9esqtB
>415
たくさんの変数を持つオブジェクトを作ってるのは、
最小公倍数的な設計をしているからじゃないの?
0425名前は開発中のものです。04/09/07 00:31ID:asZ/U40h
OSレベルのクラッシュコードを走らせる>罰
0426名前は開発中のものです。04/09/07 00:56ID:gZ7IZfSE
それは誤爆したら洒落にならん。
しかも誤爆じゃなくても、製作者の評判が貶められる自殺行為。
0427名前は開発中のものです。04/09/07 01:20ID:Ql6zLCx/
即タイトル画面に戻す → 無難
増やしたはずなのに増えていないような…いや、増えたように見えているだけ?
ボス体力が無限になっていて自爆もしない?など混乱させる
 → 解析への嫌がらせとしてはこちらのほうが効果があるか
0428名前は開発中のものです。04/09/07 01:25ID:+PutyQIb
東方みたいなストーリー性の高い奴を作る場合なら、1回不正を検知したら
クライマックスで突然
「お前メモリいじったろ」
「この卑怯者!」
とか罵声浴びせてバッドエンドとか……はて、どっかで見たような。
0429名前は開発中のものです。04/09/07 01:25ID:OZoSHpNJ
何か一昔前のプロテクトみたいだなw
0430名前は開発中のものです。04/09/07 01:26ID:+PutyQIb
ああ、別にどういうタイプでもエンディングでスタッフロール流す代わりに悪口を延々流せば良いのか。
0431名前は開発中のものです。04/09/07 01:47ID:qTEhYFt+
>>412
擬似タスク処理を無駄にCPUとOSの機能で実装して
意味不明なことをすることに意義があるんじゃないかw
0432名前は開発中のものです。04/09/07 02:35ID:qijeeSAs
wingroov関係の記事ググって読んでみ。
正直怖くなる。そんなことできなくなるから。
>バッドエンド、クラッシュコード

「別のプロセスにより書きかえられました」
とか丁寧で無難なメッセージを表示してexit。
0433名前は開発中のものです。04/09/07 02:54ID:iGtyS1tp
クラッシュコードは冗談で言ったんだろうけどさ・・・

まぁ、俺はPCのシューティングゲームはリプレイで競い合うもんだと思ってるし
凝ったチート対策なんていちいちしないけどね

意図的な処理落ちによるスローモーション対策とかはがんばってるよ
0434名前は開発中のものです。04/09/07 04:28ID:/iE4xahX
ねこまんまが脅威だ・・・
メモリアクセス検知ありそうなんだけどねぇ。
ある?
0435名前は開発中のものです。04/09/07 07:34ID:zfVoxFjs
ねこまんまのプロセスがあったら終了で
0436名前は開発中のものです。04/09/07 20:01ID:o6RynIKo
チートやクラック対策は別板に行った方がレベル高い情報得られると思う。
STG特有の話でもないし、俺や素人が思いつくレベルのことなら既出だろうし
クラック方法もほぼ確立してるだろうし。
APIフックやIsDebuggerPresentでとりあえず対策してたつもりだったけど
破る方法さっくり言い当てられちゃったし。
0437名前は開発中のものです。04/09/07 20:23ID:aQyzw09w
チートプログラマー養成スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1030635642/
Windowsでクラックされないオートセーブを!
http://pc5.2ch.net/test/read.cgi/gamedev/1013457353/
0438名前は開発中のものです。04/09/08 00:45ID:huNOrUiD
正直、クラック対策より完成を急ぐ方が先だろ
0439名前は開発中のものです。04/09/08 00:50ID:5CYgaSdz
然り
0440名前は開発中のものです。04/09/08 03:41ID:C6lXxpXg
納期があるわけじゃあるまいし
急ぐ必要はないだろう
0441名前は開発中のものです。04/09/08 03:54ID:E518gHiO
他人にゲームとして遊んでもらえる最低限の出来、を完成とするなら、
一般的にはできるだけ急ぐほうが良いのでは。
(調整が完了するという意味での)完成は永遠にしないよ、という宣言は例外としておいとく。
まあのんびりやって長くモチベーションを維持できるスキルを身に付けてる人なら、特に急ぐことも無いか。
0442名前は開発中のものです。04/09/08 04:28ID:G2l0zlnp
「ゲーム」の質を優先させるべき、と言いたかったのではなかろうか。
チートさせる気を起こさせないほどの、「ゲームとしての面白さ」が最強のプロテクトだ!
とか言ってみるテスト。
0443名前は開発中のものです。04/09/08 04:48ID:lIUoYSyo
ソレダ
0444名前は開発中のものです。04/09/08 05:55ID:GSLy4zsB
ヤシらはゲームする前にコード探してる気がするw
0445名前は開発中のものです。04/09/08 08:44ID:IGj2SdV/
そもそも完成してない奴はチート対策に興味を持たないだろ
0446名前は開発中のものです。04/09/08 09:00ID:MJ1Z97B8
完成してない奴ほど気にする

ってか俺は>>442は名言だと思う
0447名前は開発中のものです。04/09/08 09:46ID:qAJQz44f
なんつーか攻めの考えで、良いね
0448名前は開発中のものです。04/09/08 11:54ID:IGj2SdV/
そうなん?
漏れは>>446じゃないから完成してない奴の気持ちは分からんけど、
インターネット見る前まではチートなんか気にしたことなかったよ。

気にするようになったのはネット上でチート対象となっていた情報を得てから。
0449名前は開発中のものです。04/09/08 12:51ID:C6lXxpXg
現実を見る限り、チートするしないにゲームの面白さなんか関係ないけど。
0450名前は開発中のものです。04/09/08 13:15ID:5CYgaSdz
チート対策しなきゃいけないほど多くの人にプレイされてるのか?
0451名前は開発中のものです。04/09/08 16:26ID:lIUoYSyo
っつかシューティング好きな奴で、ここぞとばかりにチートしまくるやつもあんまいないだろう
そんな奴は実はシューティングが好きじゃないからすぐ離れていく


つい最近からこのスレ見始めたんだけど
意外と質問に来るヤシとかいないんだな
0452名前は開発中のものです。04/09/08 16:52ID:y+rz/Cdn
>意外と質問に来るヤシとかいないんだな

実装案はちょっと考えればすぐに解かるものばっかだからだろ>STG製作
改めて質問するほどの内容なんてそうそうなさげ

作るにあたっての最大の難関は素材かと
0453名前は開発中のものです。04/09/08 17:06ID:0YfQD2pk
プログラム初心者が自分の理解度などの情報をちゃんと明かして質問してくれれば
答えるほうも楽なんだろうけど、なかなかそういう例が少ないな

テキトウにSTG用絵素材を生成するツールを作ろうかと思ったが、いまだに影も形もできてない
できたところで自分の好みにあってるだけの、汎用性の低い素材しか作れない可能性も大きい
0454名前は開発中のものです。04/09/08 18:26ID:F9yWuPFo
素材生成つっても爆発とフラクタル雲、あとはせいぜいショットくらいだろう?
他に何か自動生成で作れそうなのあるかね。
0455名前は開発中のものです。04/09/08 19:32ID:9ItgcPnE
巷にあるようなすごい素材をボタン一つで自動生成!というレベルは自分には到底無理なので、
単色8x8ドットの質の素材を自機、敵、背景チップなどで用意するときに手抜きしよう、という程度。
ある程度できれば色数や形はそれなりに拡張できるだろうし。
8x8ドットじゃ小さいだろ → ネタゲーのように単純拡大 といった方向。
最初は低画質だが、自分の好みの粒の揃った素材を用意できるかも、あたりが発想だったかな。
爆風ツールとかドット絵ツールで普通に素材用意もしてるんだけどね。
うーん、うまく説明できないや。ともかく大幅に期待外れな内容でスマンかった。
0456名前は開発中のものです。04/09/08 21:43ID:fWjDGIHW
携帯コンテンツ作成の敷居が下がれば需要が出るかも
0457名前は開発中のものです。04/09/09 00:02ID:zU27/GU6
でも携帯用のゲームなんか作りたくないなぁ・・・。
0458名前は開発中のものです。04/09/09 00:44ID:7i2T5i8v
ケイブもやってるし
0459名前は開発中のものです。04/09/09 00:57ID:7nQXAewx
ケイブもやってるから何?
0460名前は開発中のものです。04/09/09 12:28ID:n2aKR8xE
ケイブもケータイやってるよ
0461名前は開発中のものです。04/09/09 12:46ID:xj4HqZKD
だからそれがどうかしたのか?
0462名前は開発中のものです。04/09/09 12:50ID:9jCMKVl8
現実世界でも良く見る光景だ、うむw
0463名前は開発中のものです。04/09/09 14:42ID:AUUcz4tA
ワロタ
0464名前は開発中のものです。04/09/09 23:01ID:TzUPd00B
ガイジンがむかつくんだけど
ガイジンにプレイさせないようにするにはどうすればいいかな?
OSはWindowsなんだけど、
Windowsが日本語版かどうか判定すればいいの?
0465名前は開発中のものです。04/09/09 23:03ID:dXv3F1ZE
>>464
スレ違い

チートプログラマー養成スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1030635642/
0466名前は開発中のものです。04/09/09 23:38ID:4oSKRomu
>>464
日本語のADVパートを随所に挿入
0467名前は開発中のものです。04/09/09 23:58ID:4tQyFezU
無変換キーの入力を要求するとか。
0468名前は開発中のものです。04/09/10 00:01ID:+r9mwvZc
ガイジンだって日本語Windowsで日本語キーボード使ってるかもよ?
0469名前は開発中のものです。04/09/10 00:07ID:ibAfBhUy
音声入力いれる。
0470名前は開発中のものです。04/09/10 00:18ID:u/l40Ob4
日本語フォントの有無をチェック
0471名前は開発中のものです。04/09/10 00:51ID:FSBi9Bqi
>>464
ttp://www3.realint.com/cgi-bin/tarticles.cgi?phantasy+346
IMEの有無をチェックすればある程度ふるいに掛けられそう
IMEを入れてまでやりたがるようなガイジンは見上げた野郎だから許しておやり
0472名前は開発中のものです。04/09/11 14:09:51ID:GNjrceOu
APIで国コード拾うとかできないかな?
基本言語設定変えてまで遊ぶヤシは稀にしかいなそうだし。

あ、でもメリケンのヲタは気合入ってるみたいだから、
日本語マシーン1台作ってでも遊びそう・・・
0473名前は開発中のものです。04/09/11 14:52:31ID:A3sMqAzk
日本語でクイズを出してそれに答えられたら出来るようにすればいいじゃん
マシンだけじゃどうにもならないさ
0474名前は開発中のものです。04/09/11 16:07:22ID:s3ejcAfi
「テロリストによる銀行強盗が起きました。
犯人は銃器を持っている危険な強盗のようです。
数人の人質を捕まえて、銀行に立て籠もりました。

犯人は警察に向かって、「見逃してくれないと人質を殺す」と人質に銃を突きつけて叫んでいます。

さて、警察はどうするべきでしょか?
1. 断固として犯人の要求を受けずに、隙を見て犯人を射殺する。
2. 人質の生死を最優先に考え、場合によっては犯人の要求も受ける。



先進国の多くのガイジンは1を選ぶ。
0475名前は開発中のものです。04/09/11 17:44:44ID:GNjrceOu
3. 「人質を殺せばお前もここで死ぬことになる」と逆に犯人を脅す。

先進国の多くのマンガ野郎は3を選ぶ。
0476名前は開発中のものです。04/09/11 17:45:20ID:zggAVY24
質問させてください。

Direct3D8で2Dシューティング作ってるんですが、
(半透明を多く使いたいので)
マップスクロールで良い実装が思いつきません。

画面上の2倍ぐらいのサーフェイスを持ってそれに
レンダリングターゲットを切り替えてマップチップ単位で
少しずつ転送すれば行けるんでしょうか?

ただ、これだとサーフェイス->バックバッファ->メイン描画の
三段階の転送になるので、スクロール速度が早くなると
描画遅延が気になるんですが…。

マルチテクスチャとかは使えないです…。
0477名前は開発中のものです。04/09/11 17:57:14ID:WZKOSImn
なぜ描画の遅延が出てくる?
三段階の転送がパイプラインで並列に動いているなら考えられるが、
普通に組んでいたらありえないよ?
遅延やらマルチテクスチャやらはまるで関係ない。これっぽっちも。

普通にバックバッファにチップを並べても速度的には何の問題も無い。
とりあえず作ってみれ。
それでもだめならもう一度ここに書き込み。
0478名前は開発中のものです。04/09/11 19:54:24ID:K/Wbqwhd
ちょっと質問
ステージ構成はハードコーディングでも最初はいいと思うけど、
最終的なステージ情報の管理はどのようにしてますか?
0479名前は開発中のものです。04/09/11 21:00:56ID:hhrqMGGI
マップチップとスクリプトと進行タスクで管理。
0480名前は開発中のものです。04/09/11 22:09:11ID:9RozMV4p
進行タスクって何?
0481名前は開発中のものです。04/09/12 01:20:21ID:w0zW5mAs
マップやシーンの切り替えの管理を一元的にするヤツでは?
漏れは非表示キャラで管理してる。
0482名前は開発中のものです。04/09/12 14:33:49ID:EHPw0i2N
さんくす
0483名前は開発中のものです。04/09/12 17:51:06ID:CuNiGdiO
画像ってやっぱpng使ってる?
ていうか東方とか有名ゲームのアーカイブの内部でpngあるかな?

2Dなら機能が足りてるし
サイズが小さい上にアルファチャンネルが付くし
■ このスレッドは過去ログ倉庫に格納されています