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

このエントリーをはてなブックマークに追加
952名前は開発中のものです。:05/01/08 15:32:10 ID:UcHRni1n
>>949
>それにその方法だと敵も自機も極太レーザーのことを知ってないと
>ダメじゃないか
当たり判定クラスが知っていればいいだけじゃないのか?
敵や自機が知ってなきゃいけないのは
HITしたが得点は入らない というメッセージの種類。
953名前は開発中のものです。:05/01/08 15:54:31 ID:IO0rnvab
自機と敵の判定がないSTGなんてそんなに珍しくないだろ

>>952
> 極太レーザーだったら得点追加メッセージを投げないようにする。
の主語を勝手に敵クラスとしてしまった。すまん。
954名前は開発中のものです。:05/01/08 15:59:20 ID:dfDMWTxp
>>953
必死になるな。そんなに珍しくないって事は、普通のSTGは当たり判定があるわけだからさ。
つか、俺はあたり判定があるほうが普通だと思うぞ。まずは落ち着け。
955名前は開発中のものです。:05/01/08 16:00:15 ID:P0nW7hUU
まあ、5年間シューティング作ってきた俺の結論は「どうでもいい」だな。
3年前ならちょっと熱くなって持論を展開したかも知れんが
シューティングごとき、どういう設計で作っても何とでもなるのに気づいてどうでもよくなった。

ところで、エクステンドまだ〜?
956名前は開発中のものです。:05/01/08 16:07:22 ID:IO0rnvab
俺がそういうSTGばっかりやってて実際のところ良く分からんから
そんなに珍しくないと書いたんだが、都合の良い解釈ばかりする奴がいるようだ。
957名前は開発中のものです。:05/01/08 16:10:46 ID:dfDMWTxp
>>956
実際のところ良く分からんなら書くなと小一j(ry

まぁお互い落ち着こう、な?
958名前は開発中のものです。:05/01/08 16:36:08 ID:JG8y5vsc
■まとめ

▼リストわけないよ派の主張
多態が生かせる
仕様変更に強い

▼リストわけるよ派の主張
判定回数が少ない

■漏れの疑問
・リストわけたらなぜ多態が生かせないことになるの?
・リストわけない場合は当たり判定がオブジェクト数の2乗に比例しますが解決策は?
・リストわけると、事あるごとにリストを宣言してループ書いてって面倒じゃね?
・継承したオブジェクトをリストで管理して多態させるって最近のオブジェクト指向の考え方に反するよね。 移譲じゃダメなの?

おまいらの愛するやね本2にも少し記述あるよ・・・・

■今やるべきこと
次スレを立てる
959名前は開発中のものです。:05/01/08 16:45:46 ID:6F8Wag/3
他人がどう作ろうと良いじゃねーか。
960227:05/01/08 17:23:27 ID:ICmtvtLq
基本的にはわけない派かなあ?
俺も理由は、仕様変更に強い。というところ。
ぶっちゃけ、STG以外でも使う予定だったし。
共通処理を複数に分けると、歯抜けバグが出来そうで怖いし。

ゲーム仕様上分けた方が良い場合は、1つ上の具現化された層で、
リストわけて管理する判定クラスとか用意する。じゃ駄目?
1回総ナメすればわけてないクラスから欲しいもの抽出出来るわけだし。
961名前は開発中のものです。:05/01/08 18:17:32 ID:k6jzP4jn
リスト1本にするのは、ソースの見た目上の整合性とか、そんなのが主な理由でしょ。
多態を生かせるだとか、仕様変更に強いだとか、ソースを書く側の都合。
パフォーマンス視点から言ったらリストN本にしたほうが良いのは当たり前の話。
だけどループをまわすのがめんどくさいとかも、ソースを書く側の都合。

ならば、内部はリストN本なのに、多態を生かせて、仕様変更に強く、ループをまわすのが楽なリストを作る、
ってのが考え方としては筋ではないかと俺は思うんだがな。
class LayeredList {}; でも作ればリスト1本にしたがる人はご希望のリスト1本が完成しますが。
962名前は開発中のものです。:05/01/08 18:21:34 ID:iyOU+bwt
963名前は開発中のものです。:05/01/08 18:23:44 ID:N06HHtKa
>>962
964919:05/01/08 19:05:18 ID:hjzep1WS
>>955
んなこたーない、と釣られてみる
て言うかお前、作ったことないだろw

>>958
オレの場合はリストに分ける&分けな派両方だな。
というよりも、リストの追加、削除、内容変更等を監視するリスト監視クラスとそのインターフェースリスナ、
そしてリストの内容を種類別に分け、それを保持するクラス、この3つをインプリメントしとけばOK。

つまりすべてのタスクを収納したリストと、タスクを種類別に分けたリスト、両方持たせる。
種類別に分けたリストのほうは、本体の追加、削除のイベントに連動する。あくまで参照レベルだがな。

965名前は開発中のものです。:05/01/08 19:06:30 ID:hjzep1WS
スマンあげてしまった・・・
966名前は開発中のものです。:05/01/08 19:08:03 ID:lgshSzuj
「他人がどう作ろうと良いじゃねーか。」
みたいなつまんねぇし醒めるだけの発言は止めろボケ

まだまだ熱鉄板の上でダンス踊ってくれないと楽しめないだろうが
967964:05/01/08 19:13:52 ID:hjzep1WS
と思ったら>>960が先に語ってたな
968名前は開発中のものです。:05/01/08 19:52:02 ID:FJBKk48Z
>>964
だから、全体をまとめたリスト、目的別に分けたリストに「分ける」わけなんだよ。

オレの作ったやつもありとあらゆるものが1つのツリーになってるが、目的に応じていろいろ分けてる。
敵弾を管理するタスクの中に敵弾のリストが入ってるしな。

当たり判定なんだが、当たり判定管理のリストを種類ごとに1つ作って、リスト対リストで比較して
処理ルーチンをコールバックにしてる。 種類が増えたらリスト増やすし、敵と敵を比較したくなったら
同じリスト同士を比較処理に投げて、当たった場合の処理を新規に書き起こしてコールバックに登録。
(当たり判定は自分同士を当たらないようにだけ細工してある。)

8ビットや16ビットCPUの時代から処理作ってたら1つで全部管理するリストだけなんてやって使えネーで
終了する話だったがなぁ。

「多様性」がまったく理解できないや。
969名前は開発中のものです。:05/01/08 20:09:40 ID:r3QzsOeN
        ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < 多態性のメリットマダ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | .温州みかん.  |/
970名前は開発中のものです。:05/01/08 20:25:21 ID:aFq71GdG
リスナリスナいってないでdelegate使えば?
javaの他にC#も使えるんでしょ?(プ
971名前は開発中のものです。:05/01/08 20:45:43 ID:aFq71GdG
多態性のメリット
なんでもかんでもごっちゃに一つのコンテナにつっこめるやーカコ(・∀・)イイ!
中に入ってる各型ごとにswitch文で分けてダウンキャストして処理を書き分ければ
いつもどおりの俺のプログラムになった!わかりやすい!(・∀・)
972名前は開発中のものです。:05/01/08 21:06:24 ID:YRv+CHdD
汎用性があるように作ると、生産性はあがるけど、
たった1つの例外の存在により、クラスの構成に変更が入るという
矛盾した条件が発生するんだよなー。

徹底的な仮想化はあんまりお勧めできない。
973名前は開発中のものです。:05/01/08 21:21:44 ID:9Xzl9kF6
それを防ぐためのデザインパターンだろうに
974名前は開発中のものです。:05/01/08 21:28:30 ID:hjzep1WS
>>969
自動車免許のやつと原付免許のやつが戦車に乗り込みバトルしたら・・・
975名前は開発中のものです。:05/01/08 21:28:58 ID:ar3CYnQZ
プログラムはてきとうにつくればいいよ
リソースが全てだ
976名前は開発中のものです。:05/01/08 21:29:36 ID:r3QzsOeN
ダウンキャスト(・A・)イクナイ!
977名前は開発中のものです。:05/01/08 22:22:16 ID:S8I229Af
>>975
うまいリソースづくりの技法か…割と切に欲しいな
プログラムにかける労力を最小限にしそのぶんリソースに注力するというのは大前提として、
そこから先
いいレベルエディタをこれまた最小限の労力で作れってのも前提か
978名前は開発中のものです。:05/01/09 01:47:28 ID:S2u0AHY5
>966
つまり959が焼き土下座のAAを張れば万事解決ってことだな。
979959:05/01/09 02:06:09 ID:7iEvUstc
   ジュー

  ○| ̄|_
~~~~~~~~~~~~~~~~
980964:05/01/09 02:20:28 ID:tsluRhoF
オレはC++は全然詳しくないんだが君のOOPインベーダのリスト見させてもらった。
既に外出だが、ミサイルとタンクのクラス構成がダメダメだなw
キャラクタークラスという抽象クラスを作り、自機、自機弾、敵、敵弾、爆風、防壁、すべてそれから派生させるべき。
おれなら、スコア(イメージフォントの場合)もタイトルロゴも背景もそうするけどな。

あと、キー入力はキー監視クラス作れ。そしてキー入力に反応する自機とシステムキャラクタの二つだけが
キー情報の通報を受けるように要求する。このとき、キー監視クラスから送られて来たキー情報は第三者へ
渡さないようにする。キー情報がほしいクラスは、個々にキー監視クラスに要求すること。
これはキー監視クラスに限ったことではない。
システムキャラクタって言うのはシステム側に属するキャラクタであり、ゲームの開始・終了を管理するもの。
タスク内に常に存在し、彼がESCキーを受け取ればゲームは終了する。

監視監視ってうるさいかもしれんが、イベントドリブンはOOPにおいてベストオブベストなんだよ。
VSYNC監視やタイマ監視ぐらい使ったことあるだろ?
981964:05/01/09 02:22:12 ID:tsluRhoF
スマン、こっちは無視してくれ
982名前は開発中のものです。:05/01/09 02:26:11 ID:D1XLEQdQ
解説君乙
983名前は開発中のものです。:05/01/09 02:52:33 ID:O8/qKQgV
ドリブンのイベントは、上から金ダライが落ちてきたり、カラスが鳴いたり
ミイラに観客が「うしろうしろー!」と叫んだりします。
984名前は開発中のものです。:05/01/09 02:57:12 ID:JhwV0SDY
2点
985名前は開発中のものです。:05/01/09 03:03:40 ID:vxPl5S11
当たり判定でもめた形跡があるが
ザナックってどうやってたんだろう。
986名前は開発中のものです。:05/01/09 03:17:45 ID:N4fGN9F1
もめた内容がシューティングゲーム製作以前の話というのが・・・。
いやまあ、一応重要な部分ではあるんだけどね。
987名前は開発中のものです。:05/01/09 03:25:12 ID:Xm1HCRTl
ここでいってる「シューティング」は、落ちモノ系と並んで、初心者向けだからな
基本のお勉強スレになってるな
988名前は開発中のものです。:05/01/09 03:26:29 ID:JhwV0SDY
誰でも一回はぶち当たる壁なんだから、いいんじゃない?
989名前は開発中のものです。:05/01/09 13:40:07 ID:j+WNN7G5
近頃の初心者はシューティングからではなく・・・・MMORPGから作りたがる・・・・間違いない
990名前は開発中のものです。:05/01/09 13:50:32 ID:ishiSPfH
とすると、初心者はいきなり挫折を味わうことになるのか・・・。
991名前は開発中のものです。:05/01/09 13:51:19 ID:L+xAYUET
敵の配置とかアルゴリズムをちゃんと作ることを考えると
シューティング制作がとても初心者向けとは思えんけどね。

弾を撃ちながら降りてくる敵を自機が撃つ、という程度までを
完成目標とするなら、ジャンプアクションとかで同クオリティの
ものでも制作難度は変わらん気がする。
992名前は開発中のものです。:05/01/09 13:59:59 ID:NMQlD5HP
とりあえず形になるのが早いっていう点が、STG作成のいいところだと思う。
画像の表示、動きの基礎、他オブジェクトの生成といった基本を身につけるのも容易なんじゃないかな。
ジャンプアクションは床や壁との衝突判定が一番面倒なところじゃなかろうか。

まあ一番楽なのは、最初はRPGツクール等を使って何か作ってみることだとは思うけど。
俺もプログラミング始めるまではデザエモンやClick&Playやってたし。(懐かすぃ)
993名前は開発中のものです。:05/01/09 14:33:34 ID:RfBZ0DpC
シューティングは概念が簡単だから、プログラミング初心者には
とっつきがいいでしょう
994988:05/01/09 14:50:52 ID:Xm1HCRTl
>>991
もう散々言われてしまって言うことがないが、とりあえず書いておくと、
ジャンプアクションは初心者には無理すぎ。
シューティングは適当に動いて適当に当たり判定ついてれば、なぜか遊べてしまうが
そうはいかないからな。
995名前は開発中のものです。:05/01/09 14:52:51 ID:aLY2NpdP
俺はコンソールから入ったから、
シューティングの前に壁マリオなるものを作ったけどなぁ
996988× 987○:05/01/09 14:54:56 ID:Xm1HCRTl
すまん>>988

まあとにかく、自分の地形とのあたり判定、敵にも重力が適用され、ワールド座標で動く管理
こんなのが絡み合うからジャンプアクションは数段レベルが上よん
997名前は開発中のものです。:05/01/09 15:08:20 ID:L+xAYUET
あーそうか。
まあスクロールする必要はないんだが、最低必要な要素のレベルは高いかもなあ。
998名前は開発中のものです。:05/01/09 15:29:16 ID:CJKoZOCR
段階学習スレでもマリオは人気ない・・・・

GamDevPukiWiki - 段階的学習!
http://gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
999名前は開発中のものです。:05/01/09 16:21:21 ID:RitiJiRi
シューティングゲーム製作技術総合 6機目
http://pc5.2ch.net/test/read.cgi/gamedev/1105176011/l50
1000名前は開発中のものです。:05/01/09 16:23:23 ID:RitiJiRi
とりあえず1000get
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。