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

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

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

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

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

■前スレ
シューティングゲーム製作技術総合 3機目
http://pc5.2ch.net/test/read.cgi/gamedev/1087339516/l50
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なら機能が足りてるし
サイズが小さい上にアルファチャンネルが付くし
0484名前は開発中のものです。04/09/12 20:46:22ID:Gexlrf7U
便乗質問
自分の攻撃が敵に当たったとき光るようにしたいんだけど、フルカラーだと
パレットチェンジできないから光った画像を別に用意するしかないのかなあ
0485名前は開発中のものです。04/09/12 21:17:52ID:Tm/nOPaX
テクスチャでやれば赤くしたり、透明化したりいろいろ簡単にできるよ
0486名前は開発中のものです。04/09/12 21:19:58ID:kQPqbtfs
>484
Direct3Dなら、SetTextureStageStateをいじれば色々出来なくもない。
0487名前は開発中のものです。04/09/12 22:35:11ID:8XFZDvbC
うーん
普通に頂点カラーとMODULATEだな、俺は
0488名前は開発中のものです。04/09/13 00:42:26ID:dtCJG1Zg
うむ、TextureFactorが便利なんで色々使ってる。
0489名前は開発中のものです。04/09/13 00:50:56ID:HzJbUhiR
TFACTORはVGAによっては駄目な奴があるらしい…。
そいつとMODULATEしようとしたら影響しなかった。VGAの仕様らしい。
というかTFACTORだとポリゴン同時に描画するときに同じファクタしか使えないから
やっぱり俺は頂点色を入れるのをお勧めしたいな
0490名前は開発中のものです。04/09/13 01:35:05ID:rywG/mJb
ただのMODULATEだと、明るくすることが出来ないのが弾にキズだけどな。
0491名前は開発中のものです。04/09/13 01:41:21ID:HzJbUhiR
MODULATE2Xとか使えば?
0492名前は開発中のものです。04/09/13 01:49:34ID:J+x/bBOT
パレットとか言ってるからDirectDraw前提じゃないの
俺なら別画像用意する
メモリ食うけどお手軽
0493名前は開発中のものです。04/09/13 03:01:41ID:yBngbvwi
フルカラーでDDraw使う意味ってあんまりないよな。
回転・αがないなら速いとか?
速度を求めてたら>>492 の言うように別画像。
自力描画で好きなように色換えるってのもあり。
0494名前は開発中のものです。04/09/13 10:13:25ID:B4QcSK4U
エロゲヲタの古いノーパソで動かす事を視野に入れたらDDrawもありかと
0495名前は開発中のものです。04/09/13 10:19:18ID:AfW5N8rO
オタなら意味もなく高スペックかもしれんといってみる
0496名前は開発中のものです。04/09/13 10:26:28ID:yBngbvwi
古いノートが視野ならフルカラーはなさそう。
特に理由はないけどDraw、ってことかな。
0497名前は開発中のものです。04/09/13 14:19:57ID:e5E6Oiet
使ってるライブラリがDirectDrawのみに対応してるとか
0498名前は開発中のものです。04/09/14 03:02:08ID:+yb2uY/A
漏れもDirect3Dは使って無いぞ。とりあえず、
今作ってる奴が完成するまでは手を出さないつもり。

最近ウチのモニタ、640×480だと画面がブレるんだよな。
まあ、Windowモードを用意しておけば無問題だが、
次のゲームからは800×600にしとくかな?
0499名前は開発中のものです。04/09/14 21:34:57ID:+jxrHBEg
走査線のぶれ?
0500名前は開発中のものです。04/09/15 08:53:11ID:Ww1OGG+4
壊れてるだけでしょ
0501名前は開発中のものです。04/09/15 12:53:48ID:WWAonLpD
よく三角関数をテーブルにするやり方を見るけど、1周が65536とかって感覚的に凄い分かりづらくないですか?
1フレーム毎に1度ずつ回すときとか、65536/360度にしなきゃいけないけど、
これってプログラム全体を1周=65536度として作る(つまり1度=182度として考える)のか、
その都度×65536/360してからテーブルに渡すのかどっちなんでしょ?
普通は後者っぽいけど、なんか掛けたり割ったりで重そう。それでも標準関数のsinより早い?
0502名前は開発中のものです。04/09/15 13:12:56ID:B3ytu2vx
>>501
sin関数が2回以下の計算で算出できてると思う?
0503名前は開発中のものです。04/09/15 14:03:18ID:vIOhXG6V
なんで度で考えるのだろう?小学生かな。
0504名前は開発中のものです。04/09/15 14:20:42ID:7ndEgzi/
>>501
今日から1周は360度から65536度に変更された!
これでいいじゃないか。

でもテーブル化必須の時代は256度でも十分すぎるくらいだったが、コレも弾幕流行の影響かしら。
0505名前は開発中のものです。04/09/15 14:56:52ID:799AxoX8
>>501
そのうちπ使わなきゃいけなくなったりするから
今のうちに慣れとけ
0506名前は開発中のものです。04/09/15 15:23:58ID:56alOi05
俺は三角関数使いまくりだし正規化とかも思う存分やりまくってるけれど、
速度に関しては十分すぎるよ。ソレくらい今のCPUは馬鹿みたいに速い。
0507名前は開発中のものです。04/09/15 15:46:38ID:in9TOg6o
Celeron系とかだとキャッシュ容量すくないし計算した方が早い場合もそろそろ多いと思われ
まぁ、俺も直接三角関数で計算してるが、昔からのながれで256度で作ってるな
0508名前は開発中のものです。04/09/15 16:26:08ID:uiPuTwn7
>>501

つ[ラジアン]


>>503
キミには優しさが足りない
バファリンを見習え
0509名前は開発中のものです。04/09/15 16:30:07ID:uiPuTwn7

でもケイブあたりのを見てると今でも256度もありゃ十分だと思うんだけどどうなんかね
0510名前は開発中のものです。04/09/15 16:32:15ID:u3zBDgOq
一周256段階のテーブルでの一単位の差は
400ピクセル離れた場所だと10ピクセルにもなっちゃうからなぁ。
今の弾幕シューでそれやるとちょっと穴だらけになりそう。

1/4周を256段階なら2-3ピクセル、これでもちょときつい
0511名前は開発中のものです。04/09/15 16:54:18ID:uiPuTwn7
>400ピクセル離れた場所だと10ピクセルにもなっちゃうからなぁ。

そんなに発射位置と目標が離れた状況はあまりなさげだし、それだけ
離れてたったの10ピクセルならもう十分な希ガス…
■ このスレッドは過去ログ倉庫に格納されています