- 1 名前:名前は開発中のものです。 [2008/02/18(月) 12:02:20 ID:JNgyhRqZ]
- ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。 このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談 失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。 もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを 晒してみたり、プロジェクトをはじめてみるなどもOK! ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の スレでやってくれ。 過去スレ,関連スレは >>2-3で。
- 568 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 02:02:19 ID:aaplPd6e]
- >>566
リストなんか使わずに配列に入れて毎回全走査でいい。 親子関係とかなければ、これで十分。 要点は、 ・全てのキャラクタが共通の基底クラスから派生している ・1フレームに1回呼ばれる状態更新メソッドを持っている この2つだけ。 オブジェクト自身にリスト構造を持たせるのは前時代的な 実装だから、俺は薦めない。
- 569 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 02:33:15 ID:di01Ub84]
- 配列全走査なんかしたら処理順序が狂うだろう。
弾幕シューなら敵弾の前後関係とかに影響が出る。
- 570 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 02:36:39 ID:+i/0tpop]
- というか双方向リストとかは覚えておいたほうがいいだろ。
それにネットでは解説されてるし、組み込んじゃえば 自分が触るのはリストに関係ない構造体のデータだけだし。
- 571 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 02:59:46 ID:l+iPD5/q]
- 自作でオブジェクトをリスト化するのが面倒なら、
STLのlistで、オブジェクトへのポインタを管理すればいいんジャマイカ?
- 572 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 03:23:40 ID:Zr+DHgg1]
- オブジェクトがリスト構造を持っていなくて、独立したリストがオブジェクトへのポインタを
持たせることも出来るだろうけど、あんまり分ける意味を感じないな。 配列は使い勝手を考えると流石にありえないと思うけど。
- 573 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 06:38:41 ID:DSllsGKe]
- 配列で領域確保してリストとして作動させるのが簡単ってなんかの本で読んだ覚えがあるな。
もちろん配列を超えないこと前提で。
- 574 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 06:46:16 ID:+i/0tpop]
- >>573
そりゃそうだけどね。 でも今となったらどっちもどっちでしょ。 その都度領域を確保する場合はmalloc、freeのコストが発生。 配列で領域確保してリストとして機能させる場合は 使っている配列で構成されるリストと あいている配列で構成されるリストの 二つが存在して、ややこしくなる。
- 575 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 10:34:16 ID:HN2ihE2T]
- >>573
たしかHSPとCだったと思うけど、配列を使ったリスト構造の実装をこの板でみたぞ ついでに情報処理の試験でも出題されたはず 配列を使った場合、静的に領域を確保するので、領域の上限がキッチリ決まってくる。 しかし、動的に確保する場合でも、ゲーム中にmalloc使って・・・なんて事はしないから条件は同じ (ゲーム開始前に一気に確保) >>574 >使っている配列で構成されるリストと >あいている配列で構成されるリストの これはmalloc等でも(ゲーム開始前に一気に確保)をした場合は同じ処理が必要 あれ?ひょっとしてどっちで実装してもメリット・デメリットあまり大差ないのか? 配列ならポインタでエラーがでないから、デバッグが多少は楽になるかもしれんが・・・。 (ポインタより配列の添え字とにらめっこするほうがらくだよね?ダンプ出しやすいし)
- 576 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 11:14:50 ID:qz8iv83D]
- >>566だが頭がおかしくなりそう
基底クラス │ ├自機クラス→リストへ挿入 │ ├敵機クラス→リストへ挿入 │ └弾クラス ├自弾クラス→リストへ挿入 └敵弾クラス→リストへ挿入 な感じでいいのか? といってもこれすらどう組んでいいか分からん C++とオブジェクト指向もっと勉強したほうがいいですね、わかります
- 577 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 12:12:03 ID:8fUS+A6I]
- 俺の場合は敵機・自機・敵弾・自弾・・・でリストをわけてる
そうすれば描画順を気にしないで済むし、例えば敵弾に移動速度のパラメータを持たせて 動的に全ての敵弾の速度を一気に変えたりできる 配列でのメモリ確保ってのは要するにメモリプールを作るってことだろ そんでそのプールを固定長に区切ってそれぞれの領域をオブジェクトとして利用する プールを使えばfree/mallocに伴う処理とかメモリの断片化を防げるって利点がある
- 578 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 12:59:42 ID:rl6WJKHf]
- > あれ?ひょっとしてどっちで実装してもメリット・デメリットあまり大差ないのか?
> 配列ならポインタでエラーがでないから、デバッグが多少は楽になるかもしれんが・・・。 > (ポインタより配列の添え字とにらめっこするほうがらくだよね?ダンプ出しやすいし) サイズの違う領域を確保したり開放したり繰り返すと、 あとで再利用されない領域が発生しやすい。 本棚の本をランダムに出し入れするイメージかな。 (勿論既に本棚に入ってる本を左右にずらすのは禁止でw)
- 579 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 13:15:17 ID:GHWgXrcU]
- おまえら細かい実装の話に熱くなりすぎだろ。
そんなのは個々人が好きなようにすればいいんであって、 もっと全体の設計の話をすべきじゃないか?
- 580 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 14:22:22 ID:qz8iv83D]
- class hoge{
public: hoge(int id); virtual ~hoge(); private: int hogeid; }; typedef std::list<hoge*> hogeList; main(){ hogeList hogelist; hogeClass obj1(1); hogeClass obj2(2); hogeClass obj3(3); hogeList::iterator it = hogelist.begin(); hogeList::iterator ++it = hogelist.insert(it, &obj1); hogeList::iterator ++it = hogelist.insert(it, &obj2); hogeList::iterator ++it = hogelist.insert(it, &obj3); } とりあえずSTLのlistでやってみたがこんなんでいいのかな これに自機、敵機、自弾、敵弾、その他クラスをつっこんで描画やらのループにいれればいいのか?
- 581 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 16:07:22 ID:Who4Uyml]
- STLのlist使うなら
hogeList objectlist[n]; //n=0自機 1敵機…… objectlist[i].pop_back(new hoge(...)); //オブジェクト生成 あと、hogeクラスのhogeidってなにに使うんだ?
- 582 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 16:08:22 ID:Who4Uyml]
- 寝ぼけてるな…
pop_backじゃなくてpush_backだよ・・・
- 583 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 18:42:53 ID:j2oc2Sqc]
- 何か話をぶった切って悪いんだが、
リプレイで早送りを実装する場合、 本来1/60秒経過したら更新するところを1/240秒経過したら更新、とする以外でいい方法ある? この方法だと、処理落ちしたところは早くできないんだよね。
- 584 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 18:56:10 ID:8b6P9lU/]
- だいたい処理落ちの原因は描画だから、
描画を省略したらいいんジャマイカ?
- 585 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 19:11:27 ID:/NIY82Nu]
- エフェクト類の計算処理を省略するとか
描画処理を間引きするとか
- 586 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 19:13:46 ID:j2oc2Sqc]
- >>584,585
サンクス。レスしたあと席立ったら普通にその考えが出てきたorz
- 587 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 19:20:25 ID:dWz0Uliv]
- アフリカでは良くあること
- 588 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 19:23:07 ID:yBkfb3j+]
- オープンアプリ向けに作っている人は少ないのかな
- 589 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 22:22:03 ID:XlCCcTXY]
- >>581
いんや、適当にオブジェクトを突っ込むのを実装したら こうなるかな、ってことで別に自機とか弾とかの概念はないです。 あとthx。 今度は実際にクラス作って実装か・・・ 処理してる物体がPCじゃないだけに怖いな
- 590 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 08:18:42 ID:88AJQOqo]
- >>574
つ メモリプール
- 591 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 15:44:39 ID:FfEyNKqI]
- >>569
>敵弾の前後関係 表示順序が問題になるような(半透明処理)が無ければ 表示上の前後関係は深度バッファまかせにできるから std::vectorを使った順序なしリストの走査順で描画しても 何も問題ないよ
- 592 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 16:49:40 ID:FfEyNKqI]
- >>568
たしかに敵や弾は自身がどんなコンテナにぶち込まれてるかなんて 本来なら別に知る必要のない余計な情報ともいえるから boost::intrusiveみたいな押し入り癒着してくるタイプのコンテナを下手に使えば 軒先貸して母屋ひっかきまわされるだけで終わることもある この手の侵入式(?)コンテナがドマイナーなのは利点欠点を勘定したら 欠点のほうが目立つケースのほうがずっと多いから
- 593 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 18:59:42 ID:FfEyNKqI]
- >>566
>>567 >タスクシステム 一部でそう呼ばれ、未だに一部レトロマニアに珍重・尊崇されているものの実態は boost::intrusive同様、コンテナのパラメータがオブジェクトに癒着している。 このパラメータは自前のアロケータ内部でも使われるものなので アロケータとオブジェクトが癒着しているとも言える。 またオブジェクトのメンバ変数は単なる汎用のワークメモリという扱いで 状態遷移のたびに仮想関数テーブルポインタを上書きして型が別物に化ける。 継承図とか完全無視で型が変化するので状態遷移の前後でメンバ変数が 様変わりする。 これは静的型言語のポリシーを完全に逸脱したものであり、アセンブリ言語を 使っていた自由の時代ならともかく、静的型言語であえてこんなアクロバットを 披露するのはある種の変態プレイとか路上オナニー。人前で自慢できる趣味ではない。 こんな妙なことするなら、動的型言語を新たに創造しそれをエディットする環境を構築するか 既存のスクリプト言語(LuaとかSquirrelとか)を組み込んだほうが良い
- 594 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 20:21:42 ID:FfEyNKqI]
- 話がわき道に逸れた
敵や弾をどんなコンテナに入れるのか、これは配列でも連結リストでも n分木でも好きなようにすればいいが、その要素を走査して更新いくという ゲームの基本的な仕掛けを「タスクシステム」って呼ぶのは変かなと あれはある特殊な、もはや時代錯誤ともいえる実装に付けられた 固有名詞、ローカル用語なのだから
- 595 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 21:34:37 ID:HikCyTD1]
- ちなみに正確には擬似タスクシステムな。
- 596 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 21:58:57 ID:FfEyNKqI]
- >>595
教えてくれ。あれは一体何の擬似なんだ オペレーティングシステムにおけるマルチタスクシステムのタスクの擬似なのか? ならば要件を満足してない(コンテキストスイッチすらできない)から擬似ですらないぞ スケールも素材も使用目的もまるで違うただの玩具というべきだろう
- 597 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 22:07:12 ID:9mnpmN5C]
- >>596
OSの構造しらない昔のゲームプログラマーが適当に名付けただけだよ。 その昔のゲームはキーボードからコマンドを入力するまで イベントが動かないのもあった。アニメーションもろくにできなかったしね。 その点アクションやシューティングは一定サイクル(FPS)で処理を続けてるので タスクといえる。だから擬似タスクシステムとしようってことでしょ。 組み込みのちょっとしたプログラムもRTOSとか呼ばれてるようだし。
- 598 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 22:21:05 ID:FfEyNKqI]
- 擬似なんて言い出したのは素人だろ
エンドたんでも引っ張り出して詰問してみれ
- 599 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 22:33:39 ID:FfEyNKqI]
- まぁどっちでもいいや
現場では擬似タスクは全く聞いたことないし、タスクにしたって 使わなくなってずいぶんと久しい。ほぼ廃れた言葉といっていい いまどきタスクシステムなんて単語を駆使してるのは 一部の懐古趣味野郎とかマムコ信者くらいだ。いずれにしろ老害。 痛い素人の真似するのが本望でないならもっとかっこいい言い方を 模索するべきだろう。ゲームエンジンとかオートマトンエンジンとか
- 600 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 22:54:42 ID:ij0TulEQ]
- めんどくさいからタスクシステム、擬似〜〜でも良くね?
- 601 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 22:57:43 ID:PFSFGR1E]
- ケチを付けるのが目的だから細かい名称なんてどうでもいいのさ。
- 602 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:00:02 ID:9mnpmN5C]
- >>600
いやゲームエンジンだとか、商業的になるとミドルウェアという言葉で片付く。 擬似タスクシステムってやっぱり古い時代の名残だよ。 マイコンなんかで使う用語が規模も似たようなゲームマシン時代に 当てはめて生み出した造語
- 603 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:25:21 ID:HdAQdXjX]
- 描画順はともかく、固定長配列じゃオブジェクトの追加に時間がかかるだろう
毎回走査して空きを探すのか? 富豪的に見えて、面倒なだけじゃね?
- 604 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:31:51 ID:9mnpmN5C]
- >>603
いやだから固定長配列だって、リストにすればOKだよ。 でもテストして最大値を割り出しておかないとだめだけどね。
- 605 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:37:50 ID:HdAQdXjX]
- 待って、俺が誤解していない場合、
やっぱりオブジェクトを追加するときに、 空きを探して配列を走査する必要がないか?
- 606 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:40:03 ID:uMAOIcwL]
- >>603-604
富豪厨召喚呪文が唱えられたようなのでム板からカッ飛んできた 配列厨と罵倒されることもあるけど私は元気です さて、>>591のおじさまが言ってる配列による順序無しリストってのはたぶん 要素削除時に最後の要素をそこに移動&上書きするものだと思うよ 順序がメチャクチャになるけど条件が許すなら大丈夫だよね アルファブレンドなしの2D弾幕ならZ値で上下関係は保てるしね
- 607 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:46:37 ID:9mnpmN5C]
- >>605
配列でオブジェクトを8コ取ったとするよね これには当然リストを構築するためのポインタも入ってるとする。 配列 □□□□□□□□ で、ゲームを起動した際に初期化処理として 使用中リスト NULL 未使用リスト □->□->□->□->□->□->□->□->NULL こうやって置く。 あとは関数でも用意してオブジェクトを追加したければ 使用中リスト □->NULL 未使用リスト □->□->□->□->□->□->□->NULL 使用中リスト □->□->NULL 未使用リスト □->□->□->□->□->□->NULL ・・・・ 使用中リスト □->□->□->□->□->□->□->□->NULL 未使用リスト NULL 使わなくなればまた未使用リストへつなげばいい。 malloc freeのコストはないけど配列で確保した個数以上は管理できない。
- 608 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:49:54 ID:uMAOIcwL]
- ところで富豪厨はシモジモの日々の苦しいやりくりとは無縁なので
タスクシステムとかの貧民的なアプローチに興味ないのですが このあいだ「タスクも知らないの?プギャー」と貧乏人に煽られたので ちょっとシメてやろうと思ってタスクスレを開いたら既にタスク派が 盛大に虐殺されていました あまりの恐ろしい光景に震えあがってム板に帰りました
- 609 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:51:54 ID:5JyA6mIk]
- >>605
空きの部分も線形リストで結んで管理するのが データ構造では一般的じゃなかったかなあ
- 610 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:52:07 ID:HdAQdXjX]
- >>607
OK理解した 要するにメモリプールに固定長配列を使ってるわけね って>>577が既に書いてたし 物覚え悪くてスマソ >>606 コピーのコスト(ry これぞ富豪
- 611 名前:名前は開発中のものです。 mailto:sage [2008/06/23(月) 23:58:11 ID:xReDDG2i]
- 隔離スレあるんだからタスクシステムそのものについてはそっちでやってくれ
- 612 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 00:29:33 ID:oNKHrkss]
- むしろ隔離スレから出てくるというゲハ板→ニュー速現象が・・・
こういう全体の設計って結局は人それぞれだから、あんまり2ch向けの話題じゃないな しかしレスから見るにDSとかPSP辺りで作ってるのかな?
- 613 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 00:31:28 ID:PrpKabUz]
- >>612
今となったらオブジェクトの管理メモリより 素材の方がメモリ食うんだけどね・・・
- 614 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 00:31:35 ID:NcdiOwFI]
- >>610
富豪厨は厨なのでパフォーマンスとか興味ないんだけど たまには庶民の期待に応えるためにベンチとり遊びもしてたよ 弾はサイズ小さい(弾種、座標、速度、深度とかで24Bytesくらい)から 削除時のコストは24バイトのブロック転送に過ぎないよ 弾アップデートのための巡回はただのリニアアクセスだから楽だよ 2000発の弾をランダムに飛ばしたり生成削除するテストしたときは boost::simple_segregated_storageとの速度競争で勝利を収めたよ ところでboost::simple_segregated_storageの中身って>>607のそれと よく似ていたんだけど、これは使用中リストから外して未使用リストに 繋げるとき(またはその逆のとき)ポインタ書き換えは何回発生する? それと弾アップデートのための巡回は隣接要素のポインタ経由の ランダムアクセスになるよね まぁ富豪厨にとっては瑣末な問題なので普通に弾一個一個で malloc/freeしてたけど
- 615 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 01:01:38 ID:R7H+ft0X]
- >>565
スレありがと。仕事で死んでたんで見れなかったんで。 参考になりますです。
- 616 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 01:06:33 ID:BbGOZBxw]
- >>603
富豪的に見えるかもしれないが、いまどきのPCはリストをポインタ辿って 走査するよりも配列を順走査する方が同じ要素数なら1.5倍くらい速いよ。 追加のコストが増えても、その他の処理で十分ペイできる。
- 617 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 01:12:19 ID:4FqnTxUJ]
- シューティングゲームに必要な要素数(せいぜい2000以下)だと、確かにそうなるかも
どどんぱちの裏ステージ的な状況だとどうか知らんがw
- 618 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 03:41:05 ID:3USBYfmM]
- >>617
>>591、>>606、>>614の言ってる配列コンテナの使い方は 削除処理=削除対象の要素を最後の要素で上書きするだけ。O(1)時間。 当然虫食いはないので要素追加時も空き要素検索は必要ない。O(1)時間。 これらの処理時間は要素数に関わらず常に一定。ただ要素サイズに比例する。 あと最大の欠点は削除・追加を繰り返すことで要素巡回順が不定になること。 だから「順序なしのリスト」なのね これが問題にならないケースで使えばいい
- 619 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 05:39:53 ID:2pkhJQN/]
- 固定配列にこだわって富豪ってのもなんだかな。
俺は大富豪なので弾幕シューでも容赦なくnew/deleteするが。
- 620 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 07:38:39 ID:sTkkjGQB]
- >まぁ富豪厨にとっては瑣末な問題なので普通に弾一個一個で
>malloc/freeしてたけど
- 621 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 09:34:14 ID:wbqG7Qtf]
- >>603
シューティングでは最初に発射された弾が最初に画面外に出て消滅(FIFO)するような気がするので、 空きオブジェクトをリストで管理しなくても、キュー(リングバッファ?)っぽく管理してもいいかなと思って、 最期に取得したオブジェクトの位置を保存してみたりして 試している今日このごろ。
- 622 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 10:38:43 ID:LBFcTyab]
- >621
Before---------------------------------------- Σ三> - - 敵 After---------------------------------------- Σ三> - 敵 - ↑
- 623 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 10:46:15 ID:7sGdPDL+]
- >>622に言おうとしたことかかれたw
敵とか地形が邪魔をしないゲーム(と呼べるのか?)であれば >>621の言うようにFIFOでも成り立つがゲームらしくすると 敵もしくは地形で後に発射した弾が消滅する可能性だってある。 貫通弾にすればいいというかもしれないがやっぱり 動的にオブジェクトが増えたり減ったりする場合は リストが向いてる
- 624 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 12:47:57 ID:wbqG7Qtf]
- >>622と>>623のやさしさに泣いた。
そこで、対策としてとりあえず、配列の大きさを十分に大きくしておくことと、 使用中のオブジェクトに関しては、「使用中です」フラグをつけて、スキップしようと思うんだ。 配列さえ十分な大きさがあれば、 配列を一周するまでにきっと最初に撃った弾も画面外に出て消滅してるはずってことで
- 625 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 13:47:19 ID:S5i4Hl5N]
- どっかで
class hoge{ int x; int y; char[256]; } のcharがフリー領域として使えるとかあったが、どういう仕組みなんだ?
- 626 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 15:14:33 ID:cUcYhgYN]
- sizeof(char*256)バイト分確保しとくから好きな型にキャストして使えってことじゃないの?
んでも、C++でわざわざこんな方法するかね? もっと別に良い方法があると思うけど。 よくわからん。
- 627 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 15:35:22 ID:3yXq89ZE]
- Cではそんな組み方してたみたいね
- 628 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 18:47:38 ID:nk5lzdPA]
- placement new用にメモリをプールするためにchar型の配列使ってる教本があったな
素直にnewしたいオブジェクトの配列にしろよ、と
- 629 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 19:14:29 ID:YG9wxXVw]
- 東方も順番だけ記録して固定長配列でやってそう
最後尾まで行くと最初に戻って描画順序狂ってる時があるし cave系はlistっぽいけど 普通の2D弾幕系STGなんてどっちで実装しても問題なしじゃね?
- 630 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 19:39:33 ID:cSyjiEYz]
- ぶっちゃけ最近のPCのスペックならどっちでも余裕だろうな
- 631 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 19:40:35 ID:ueXZ64IW]
- ブルーセイバーズやテイルズギアのところはBASICで作ってるらしいけど
どうやってオブジェクトを管理してるのか気になる
- 632 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 21:26:33 ID:pF7sIXlF]
- みんなで一緒に富豪厨になろうぜ。
- 633 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 22:07:45 ID:NcdiOwFI]
- >>631
富豪厨でなおかつ玉葱狂信者なのでLGPはよく知らないんだけど マニュアルを流し読みした感じでは配列使ってやりくりする以外の手がないような。 配列の添え字(番号)を使って連結リストとか 3Dのアニメーション用にフレーム(座標系)の親子関係があるみたいだけど 姿勢と座標を自動変更(線形的なアニメーション)するためだけのもので ユーザー定義の変数を入れ込んだりユーザー定義関数を登録して ゲーム独自の処理をかませるようなことはできないくさい
- 634 名前:名前は開発中のものです。 mailto:sage [2008/06/25(水) 01:48:12 ID:yLL8mfYi]
- ゲームとして面白ければ富豪厨だろうがなんだろうが関係ないぜ、
と言いつつ結構細かいプログラムに拘ってしまう俺降臨 無駄な処理を削って云々とかよりも、はやく体験版を出して色んな人から意見を貰った方がためになるのに…orz
- 635 名前:名前は開発中のものです。 mailto:sage [2008/06/25(水) 02:15:01 ID:ZT5O8Vsq]
- 公開してから「フリゲ≒軽くて当たり前」信者の対応がタルくなるけどな!
- 636 名前:名前は開発中のものです。 mailto:sage [2008/06/25(水) 09:39:54 ID:EtCnEfpl]
- >>629
それってステージで描画されるすべてのオブジェクトを前もって生成して あとは順番に描画だけしてるってこと?
- 637 名前:名前は開発中のものです。 mailto:sage [2008/06/25(水) 10:11:08 ID:HqBe87x9]
- 東方はやったことないんで推測だけ。
>636 固定長配列を前から見て、「空席があったらそこに座る」ってことじゃないかと。
- 638 名前:名前は開発中のものです。 mailto:sage [2008/06/25(水) 12:59:07 ID:pCORKo/h]
- >>634
よう俺 最近はアイデアが浮かばないから無意識のうちにギミックに凝ってしまうのだと気づいた。 勇気を出して前に進むのも必要だと思うぜ。
- 639 名前:名前は開発中のものです。 mailto:sage [2008/06/26(木) 16:22:49 ID:VGgrpFAu]
- ygs2000を使って縦スクロールSTG作ってるんですが、
インポートライブラリのatan2(y,x)の戻り値が、0から65536になっているんですよ。 どうすれば、戻り値を0から360度の範囲に変換できますか?
- 640 名前:名前は開発中のものです。 mailto:sage [2008/06/26(木) 16:51:15 ID:RTbJUwyD]
- ygsは知らんけど、65536 == 360度として考えるなら
int deg = atan2(y,x) / (65536/360);
- 641 名前:名前は開発中のものです。 mailto:sage [2008/06/26(木) 17:06:38 ID:7XWLzTd8]
- 元がどう見てもintなんだから、360掛けてから65536で割る方がいいだろう。
- 642 名前:名前は開発中のものです。 [2008/06/26(木) 17:08:05 ID:mOejCOBQ]
- 俺なら
* 360 / 65536 とするけど。 って書こうとしたら既にかかれてたw
- 643 名前:名前は開発中のものです。 mailto:sage [2008/06/26(木) 17:08:39 ID:Im8BFapF]
- >>639
勝手な予想なんだが、それ角度が360度 = 2π(rad)を超えても気にせず計算できるようになってるんじゃね?? 大抵の三角関数はラジアンで実装してるだろうから。 違ってたらすまん。
- 644 名前:名前は開発中のものです。 mailto:sage [2008/06/26(木) 17:11:19 ID:Im8BFapF]
- と思ったけどすごく見当違いですね、なかったことに。
- 645 名前:名前は開発中のものです。 mailto:sage [2008/06/26(木) 23:03:08 ID:a/ZP+zQY]
- >>639
Selene? むしろ、ゲーム自体を65536度にあわせて設計したほうがいいかもしれない
- 646 名前:名前は開発中のものです。 mailto:sage [2008/06/28(土) 15:07:32 ID:nt11KuRN]
- おまいら話ズレすぎだろw
- 647 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 01:37:53 ID:9uZftGEH]
- 横シューの背景ってどうしてますか?
- 648 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 01:45:16 ID:aWjEECAh]
- 横にスクロールさせてます。
- 649 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 02:32:17 ID:PQIEP/fX]
- お前頭いいな
- 650 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2008/07/01(火) 10:15:19 ID:1U0sNwre]
- もう決着ついてるかもしれんが、配列の空き走査なんて、
描画の処理時間に比べれば、微々微々たるもんだよ。 ループ中にnew/deleteする方が非効率だと思うけどね。
- 651 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 15:19:14 ID:QwYE1J0X]
- いまさらすぎて噴いた
- 652 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 16:24:12 ID:/457mXHb]
- 空席を見つけて適当に座る、って言って通じるもんだろうか?
- 653 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 17:20:02 ID:XbvaRuwU]
- つか何この空気コテ
- 654 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 21:08:59 ID:wExkfdnX]
- トリップでググれば哀愁漂うLinux板の糞コテ
- 655 名前:名前は開発中のものです。 mailto:sage [2008/07/01(火) 23:42:16 ID:Ya9L5X18]
- >>647
シューティングツクール的な発想でいくなら、16x16(ピクセル)のタイルを画面一杯に敷き詰めてた。 あれ、32だっけ?
- 656 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 00:02:49 ID:DI24ohjW]
- む?
俺は普通にそうしてるけど、シューティングツクール的発想以外だと違うの?
- 657 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 00:08:16 ID:gdApJWkY]
- 画面サイズと同じくらいのテクスチャをくるくる回して、
その上に当たり判定のないオブジェクト配置してるけど
- 658 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 00:25:19 ID:GT+Oyjsr]
- インベーダーやミサイルコマンドのように、そもそも背景が動かないというのも一つの選択肢だな。
- 659 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 01:07:49 ID:GdeAeksN]
- 最近の個人製作なんかでよく見る、雲模様みたいな画像を
加算、乗算処理なんかしつつ流していく手法も結構面白い。
- 660 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 01:23:47 ID:rkPq3Fgi]
- >>656
ずっと前に見たどこかのエロゲ会社が無料で配布してたやつは 画面と同じ大きさのbmpが10枚くらい入ってたよ。
- 661 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 02:53:17 ID:Z7PtKJGp]
- テクスチャを使うゲームの場合、
画面サイズだと正方形じゃないから無駄にVRAM食うのが気になって、 サイズ一つ下(512x512)のテクスチャをフィットするように拡大して使っている貧乏性な俺。
- 662 名前:アジェグ4倍 ◆4xAJeG.COM mailto:chage [2008/07/02(水) 07:49:09 ID:VoUGDrkh]
- レイヤーのビットマップを設けて、
表示する際の座標をずらせばいいんじゃあ?
- 663 名前:656 mailto:sage [2008/07/02(水) 21:04:37 ID:OZmBfWcb]
- 皆の言葉を信じて、背景の描画方法を
16×16のマップチップを敷き詰める方法から、 一画面〜四画面分の画像をベタ表示する方法へ変更してみた。 なんかリプレイ時の早送り動作が軽くなった。
- 664 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 21:21:58 ID:GT+Oyjsr]
- リプレイ機能ついてるのか。
人気あるのかな。リプレイ機能って。
- 665 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 21:29:29 ID:giqVUVjy]
- 初めてリプレイ機能を実装したときは感動した。
- 666 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 21:31:38 ID:lS1P7Ldh]
- 今時ないほうが珍しいな
デモ見せるにしても必要だし
- 667 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 22:20:06 ID:OZmBfWcb]
- >>665
俺もw リプレイ機能自体は早々に作ってたんだけどうまく再生しなくて長い間放置ぎみだったけど、 結局初期化されてない項目があった事に気づいて、ちゃんと動くようになった時は感動した。 リプレイ実装のおかげで、デモの実装も実現したし、デバッグにも役立つようになったw (テストプレイで、キャラが想定外の動きをした時、リプレイを取っておいて 修正後にリプレイを実行して、ちゃんと直ってるか確認する)
- 668 名前:名前は開発中のものです。 mailto:sage [2008/07/02(水) 23:08:12 ID:surY1LL8]
- >665
俺も俺も! その時はリプレイをどうやって実装すればいいかも分からなくて適当だったけどなw (ちなみに全ての入力を保存すると言う、よくある方法だった) そのリプレイ処理のおかげで、だいたい1日でポインタやファイル読み書き、ビットフィールドの操作とか覚えられたし。 人間、必要だと思ったらすんなりと頭に入るんだなあと思ったよ。 逆に、他人がポインタで詰まってても教えられないという欠点はあるがw
- 669 名前:名前は開発中のものです。 mailto:sage [2008/07/03(木) 07:40:20 ID:qi9huYH9]
- 非ポインタとポインタは一言で言えば、
変数の中身を取り出す時に、値をじかに取り出すのか、それとも住所を取り出すか。じゃね? ポインタは住所をやり取りする、と。 リプレイはまだ実装した事無いなー。今度実装してみよう。
- 670 名前:名前は開発中のものです。 mailto:sage [2008/07/03(木) 08:37:45 ID:Yl0JVKtk]
- キー入力保持のリプレイを他のマシンに持っていくとうまく動かないことがあるんだよな。
浮動小数点の計算誤差が若干違ったりするからだと思うけど・・・
- 671 名前:名前は開発中のものです。 mailto:sage [2008/07/03(木) 09:10:54 ID:DTx5b/+j]
- INTELとAMDのメジャーなCPU(要するにIA32互換のやつ)しかサポートしてない俺は
とりあえず ・ゲームの進行に直接作用する計算は全てFPU(x87互換のやつ)に任せる ・_controlfpとか使って計算精度等をきちんと指定する。 これで上手くいってる FPUバグ持ちクラシックペンティアムとかもう骨董品だから無視してる
- 672 名前:名前は開発中のものです。 mailto:sage [2008/07/03(木) 10:08:43 ID:FVj30rAO]
- >>670
ttp://www.01step.net/tobitsuki/bbs/test/read.php/tobi_bbs/1116256631/18
- 673 名前:名前は開発中のものです。 mailto:sage [2008/07/03(木) 16:33:12 ID:gwFP/f3L]
- >669
似たような説明はしたことがあるが、通じてるかどうかが怪しいw
- 674 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 00:41:50 ID:lh91Gh1r]
- XMLでシューティングゲームを記述できるエンジンを作ってるんだが、
敵の動きを高度にプログラムできるようにしようとすると、 結局ソースで実現した方が良いじゃないかという気がして、何だか悲しい。 Flexみたく、XMLの中にプログラム(or スクリプト)書きはじめるような仕様を作ったが最後、 100%エターなる。
- 675 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 00:51:01 ID:XLyUbCLu]
- XMLてのはデータの構造を記述するためのものだろ
それでロジックを表現しようとするのがそもそも間違いだと思うが・・・ そのXMLによるシューティングゲーム作成にはどんな利点があるんだ?
- 676 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 01:09:13 ID:qYh8NvWd]
- 動作ロジックはハードコーディングして、配置や個体パラメータを
XMLデータで指定するだけでもいいんじゃね?俺がやってる方法だけど。
- 677 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 01:11:47 ID:XLyUbCLu]
- 敵の出現タイミングとか位置だけ外部ファイルで定義するようなもんか
それだったらXMLの方が見やすいかもな エンジンとして公開するならハードコーディングの部分にかなりの工夫とバリエーションが必要だな
- 678 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 01:42:15 ID:lh91Gh1r]
- 最初は、スクリプトでシューティング作れたら、楽かなあなんて思って始めたんだけど、
XMLだと、最初から読み込んで解析してくれるライブラリがあったから、使ってみた。 ちなみに、某シューティングツクールのように 「自機に向かって移動」「移動」「弾発射」「敵発射」「なにもしない」「自爆」 で敵の動きが完結するなら、 敵の動作ロジックも全てXMLで記述できる。
- 679 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 02:21:14 ID:fzMGN+kp]
- >>674
XMLじゃないがスクリプトでシューティングのオブジェクト配置したり するのならすでに弾幕風とかあるぞ。
- 680 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 11:57:57 ID:/8DfK8rI]
- 技術的な会話しているところに、空気を読まず質問
縦スクロールSTGで、アイテムを放出する味方機を出そうと思っているのですが なんかぱっと見て敵機にしか見えなくて困っています。(普通に避けてしまう) 見るからに味方機として出現させるために、何か良い方法はないでしょうか?
- 681 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 12:01:36 ID:fzMGN+kp]
- >>680
・軽めのカットインとかメッセージを表示して見方機が来たよをかもし出す ・東方のボス戦の場合は画面下にボスのx座標がわかるようになってるがああいったマーカーを出してあげる。 で、説明書に書いておけばOK?
- 682 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 12:43:58 ID:dKlhKsZq]
- >>680
その味方機が敵の弾を喰らうとか
- 683 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 12:54:34 ID:lh91Gh1r]
- 味方機と自機のカラーを統一するとか。
- 684 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 12:54:40 ID:7DWi7vho]
- >>674
てゆかbulletMLあるよなぁ 674のも使ってみたいが。
- 685 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 14:23:05 ID:9J7xybES]
- >>680
・敵のカラーとは明らかに違う、目立つ明るい色にする。 ・デザインの系統を敵とは一目見て違うようにする。 (敵が直線っぽいデザインなら、曲線ぽいデザインに、敵が生物っぽいなら、メカっぽいデザインに) ・自機と同じ形、同じような色にする。 ・明るい色で縁取りするとか、とにかく他のキャラや背景と比べて「浮く」ようにする。
- 686 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 15:45:01 ID:eL1SAVRC]
- 動き方でも差別化をはかりたいね
小型なのにゆっくり現れて消えていくとか
- 687 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 18:25:06 ID:qjrvpm0l]
- 機体に「味方」って書いておけ
ってのは冗談だが、自軍のエンブレム的なものを作っておいて、 それとわかるように機体に表示しておくのも手だな
- 688 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 20:19:03 ID:oittVPD9]
- 救急車が飛んでくるしかあるまい
- 689 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 20:24:11 ID:fzMGN+kp]
- ちょwそれBeeメイツ
- 690 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 21:07:37 ID:juhuhHaO]
- ツインビーも救急車だったような・・・
- 691 名前:680 mailto:sage [2008/07/04(金) 23:27:30 ID:JgmzXrxe]
- 多くのレス、ありがとうございます!
絵の素材にフリー素材を使用しているため、 デザインの系統分けをしたり エンブレムを書くのは難しいものがありますが (雰囲気的な意味でも、救急車も厳しいです) 縁取りや、色の統一、カットインでの表示 なんらかの味方軍に統一の記号をつける 敵の弾を食らうなどの演出は、実装できそうなので、試してみることにします 本当にありがとうございました!
- 692 名前:名前は開発中のものです。 mailto:sage [2008/07/04(金) 23:39:04 ID:XLyUbCLu]
- 質問者が納得したうえに話の腰を折るが
製作者が気にするほどプレイヤーは見た目にこだわってないし 慣れてしまえば気にならない だからよっぽどややこしいデザインでなければ結構適当でも大丈夫
- 693 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 02:08:08 ID:OY2NBo76]
- こちらも流れに乗って技術的じゃない質問を一つ。
ショットタイプについてなんですが、 ショットボタン長押しで低速移動&ショット変化ってのと ショットとショット変更のボタンが別になっているのがあるじゃないですか。 あれってどちらが一般的なんでしょう? 最近は長押しで変化するのが多く見られる気がするんですよね。 でも昔はチェンジするボタンがあったし・・・。 ボタン配置は長押しで変化するタイプは @ショット Aボム等 Bフルオート チェンジするボタンのついてるものは @ショット Aショットチェンジ Bボム こんな感じなんでしょうかね。 オプションで好みで変えられるようにすればいいじゃないって言われればそうなんですが気になったので・・・。
- 694 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 02:23:37 ID:yT3V8RBn]
- >>693
メインウェポンのパワーアップアイテムが一定時間で種類が切り替わるようにしとけ. ウェポンチェンジしたくなったらその色のアイテムをとる,と.
- 695 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 03:05:34 ID:+VTXj324]
- >>693
銀銃みたいにボタンの組み合わせという手もある
- 696 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 04:13:01 ID:wbV3lwSQ]
- ショット変更ボタン式は、
自機の現在の武装を記憶して、目的の武装に切り替えるには何回変更ボタン押さないといけないか、 を常に考えないといけなくて煩わしく感じる。 武器別にボタン用意するか銀銃式にする方が手順を省略できてやりやすい。
- 697 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 04:35:56 ID:OY2NBo76]
- >>694
アイテムでチェンジかぁ。 怒首領蜂みたいに最初からタイプを決める形式でやってるんで 通常時と低速時の変更をどうするかで悩んでるんですよ・・・。 アイテムはパワーアップか、ハイパーみたいな感じになるかも知れないです。 >>695 ボタンの組み合わせって事は何種類か武装があるって事ですよね? 今つくってるのはそこまでバリエーションを持たせる予定がないんです。 とりあえず今は機体2種類とビット3種類で全6種類の組み合わせができるようにしてあります。 機体α:高速移動集中攻撃型(ビット可動範囲が狭い) 機体β:低速移動拡散攻撃型(ビット可動範囲が広い) ビットA:機体の前で左右に振れながら前方に攻撃。 ビットB:移動した方向に攻撃が傾く。 ビットC:前方の一番近い敵を狙う。 ちなみに通常時はメインショットオンリーで低速時(変更時)にビット展開になってます。
- 698 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 08:13:53 ID:BRmlyj+Z]
- 高速/低速の切り替えと武器が連動しているのなら
怒首領蜂式がなじみは深いな
- 699 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 08:25:07 ID:bJc5CaWq]
- ゲーム性&操作感と連動するべきだろう
即座に武器を切り替えさせる必要があるゲームなら長押しは向かないってだけ 蜂は強いレーザーで押し込むゲーム性と、ボタンを押し込む動作が非常にマッチした 心地いい操作感だよなぁ
- 700 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 19:23:58 ID:Def2so2E]
- そういえば少し前にリプレイに関する実装があったけど、その前段階として入力情報をどう管理してる?
ゲームパッドも管理するのでDirectInputを使うのが一番楽っぽいのでそれを想定して。 ・DirectInputを使用して、KeyboardStateやJoystickStateを直接使用する。 ・予めキーコンフィグ情報に応じてbool配列を吐き出す様な仕組みを作っておき、bool配列を読み取る。 後者だとリプレイ再生のさい、乱数情報とbool配列を保持していけば良いだけだから実用的かな?
- 701 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 19:29:38 ID:kss7FKxc]
- リプレイやキーコンフィグ機能があるかどうか関係なく後者
- 702 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 23:06:46 ID:jZ262oYg]
- 弾幕風とBulletMLに泣いた。
こいつらに太刀打するには、もっと他の利点を押し出さなきゃな。 XMLスキーマとXSLT書いて、WEBブラウザでゲームの仕様が閲覧できるとかw
- 703 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 01:10:01 ID:KV5s28Rv]
- >>696 >>698 >>699
今のところプレイ中のショットタイプは2種類だけで、瞬時に変える必要もないので怒首領蜂形式でやってみますね。 アドバイスありがとうございました。
- 704 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 21:02:59 ID:LhJHzATs]
- 画像しかできてないんだけどどうすればいいの
- 705 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 22:11:01 ID:Wq87ZP+f]
- 十分な量の画像があるなら、素材スレかどこかで晒してみれば?
- 706 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 08:13:49 ID:AsUKMvOQ]
- >>700
ゲームパッドやキーボード、マウスといった具象データを、 ゲームに与える抽象データとしてまとめる。 リプレイ用に保存するのは抽象データ。
- 707 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 10:49:42 ID:e2sx0hGW]
- >>704
その画像が素材として使えるなら欲しいと思ってしまう
- 708 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 11:58:08 ID:yfAt10n7]
- おまえら一緒にやれやw
- 709 名前:707 mailto:sage [2008/07/07(月) 13:46:44 ID:dJh8Ifkj]
- ツクール(SB)で製作してる俺は、お呼びでないような気がするから困る
- 710 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 14:21:11 ID:qtUGx97D]
- >>702
俺はとにかく高速性を求めたものをこしらえたよ オブジェクトプール、固定小数点、バイトコード、C/Javaライクetc しょぼいSTGなのに、見えないところに無駄に時間をかけたぜww
- 711 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 16:31:12 ID:AsUKMvOQ]
- もう弾幕には心の底から興味がないので、別のもので勝負をかける予定。冬か来年の夏な。
- 712 名前:704 mailto:sage [2008/07/07(月) 17:08:59 ID:N4UsRXoF]
- >>707
ttp://www2.uploda.org/uporg1528706.jpg 一応出しておくけど十分な量がない上に まともなのは爆発ぐらいしかない
- 713 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 17:13:10 ID:1fd4Wq9E]
- グラIIと見せかけてMSX系?
- 714 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 17:23:24 ID:OVkuxJVV]
- 去年くらいから避けゲーとしての弾幕は減ってきてる気がするな。
- 715 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 17:47:46 ID:8OrB6Wg2]
- >712
これ見てるだけで、今やってる仕事を破棄してSTG作りたくなってくるな。 素材だけで。そこまでのパワーを得られる気がした。
- 716 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 18:14:10 ID:yfAt10n7]
- jpegなのは敢えてかw
まあ使う気はないがw
- 717 名前:704 mailto:sage [2008/07/07(月) 19:57:11 ID:N4UsRXoF]
- >>712
ゴーファーの野望エピソード2のリメイクを作ってるんだ
- 718 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 20:02:56 ID:aZNnbaQ1]
- 日本語は正しく使ってくれ。
つまり、 「ゴーファーの野望エピソード2」のリメイクを個人で遊ぶ目的で作ろうとして、 ドット絵を(トレスなのか1から作っているのか解らないが)作ってる途中。 動かす方の知識は無いままドット絵を作り続けているが、 これからどうすればいいのかわからない。 という話でいいの?
- 719 名前:704 mailto:sage [2008/07/07(月) 22:03:15 ID:N4UsRXoF]
- >>718
OK ゆとりですまん 一応シューティングゲームビルダー使ってみたけど 途中で挫折した ある程度知識をつけてからまたここにくるよ
- 720 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 01:12:39 ID:/74FD1OI]
- まあがんばれや
- 721 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 05:03:13 ID:iq4s5004]
- エピ2を知ってる程度におっさんで今そんなんだと
もう一生かけても無理だな。残念だが。
- 722 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 05:09:34 ID:p1JtdrU4]
- 開発を手伝ってもらうってのもいいと思う
まず音楽どうするんだろ、アレンジじゃなくて原曲かな
- 723 名前:707 mailto:sage [2008/07/08(火) 08:09:35 ID:stdsNVnL]
- >>704
素材の出来が凄すぎて吹いた しかし作っても公開できなさそう? この辺の著作権がさっぱりわからん件 ともかくSBについては、SBのスレに書き込めば、いろいろわかってくるとは思います 手が入るというなら、自分で良ければ手伝いますよ 未だSBを全然使いこなしてはないですが。
- 724 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 11:52:52 ID:gJzpS9fO]
- エミュからの吸出しを加工したもんじゃ無いの
- 725 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 18:20:45 ID:gbythylf]
- そうなのか。STGほとんどやったことないから微妙に分からんことがある。
- 726 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 18:58:53 ID:Z1TOyIZq]
- どうもこちらでは初めまして
とあるスレでWiki管理をやってたものです そこの専属をやめてこの度7/10から新しいWikiにします www.erc-j.com/stg/ STG製作のまとめWikiです うpろだもありますので良かったら使ってください
- 727 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 01:51:32 ID:g3bziBg/]
- >>726
乙
- 728 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 12:11:40 ID:+WxpMWoT]
- frgm.jp/ フリーソフトで面白いゲーム まとめ(新)
復活したので好きなゲームに投票してくれい。
- 729 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 12:57:25 ID:eramyNaF]
- メタルブラックの1面終了後のボーナスステージの背景の表示ってどんなアルゴリズムなんでしょうか。
2D画を3Dっぽく表示させてるんだと思うんですが、拡大縮小を駆使するんでしょうかね?
- 730 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 13:43:35 ID:Px1gdp4h]
- よく覚えてないけどラスターと拡縮だっけか
- 731 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 17:32:14 ID:4tnUBWbg]
- ちょっと製作のモチベが上がらないので
少し作ったものをうpします 以前、このスレの>>377でうpして、 いろいろ意見をいただき、出来る範囲で修正を行って続きを作りました 前回プレイされた方もそうでない方も、プレイしていただければ幸いです 良ければ感想、意見お願いします one case www.erc-j.com/stg/ の左上にあるSTG-URLから入れるアップローダーのstg0261.lzhにうpしました。
- 732 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 19:34:59 ID:Px1gdp4h]
- >>731
とりあえず二つのモードともやってみたが、スタンダードはちょっとあっさりしすぎてないか。 でも5面6面は面白かったぞ。ここにやりたかったこと詰め込んだ感じw 最初なぜか死にまくってコンティニューしたが後半はそのまま進めてクリア。 チャレンジモードは確かに最初から難しいがこっちのが序盤から面白い。 スタンダードとチャレンジの構成をほぼ同じにして難易度調整するだけのが スタンダードも面白くなるんじゃないかね。後方攻撃にも意味出るし。 ちなみにチャレンジはクリアできなかった。最後のシャッター地帯とか 沙羅曼蛇並に意地悪になってんのかねw
- 733 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 20:54:08 ID:UdfaMMKk]
- >>732
プレイしてくれてありがとうございます! その優しさに泣きそうw もともとこれはチャレンジの方だけで作っていたのですが 一面から本気すぎる 特に一面の機雷や三面の後方雑魚が鬼過ぎる という意見を受け、 構成そのものを変える必要が生まれたため、 スタンダードがあんな感じに生まれた感じになりました。 プレイしやすさを重視させたのですが、 そればっかりが重視されてて、確かにあっさりですよね もう少しスタンダードの調整は考えてみることにします。 難易度調整って、本当に難しい… 沙羅蔓蛇レベルのシャッターほど鬼畜にはしてないですw そうすると自分自身がクリアーできなくなるのでw
- 734 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 20:58:15 ID:6QYOrVUt]
- >>733
>の左上にあるSTG-URLから入れるアップローダーのstg0261.lzhにうpしました。 の左上にあるSTG-UPL だったのねw 試したかったんだけどなんのこちゃって思ってたw
- 735 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 21:50:08 ID:jtrnXLQN]
- >>733
俺もプレイさせてもらったよ。 前バージョンのスタート直後から殺る気マンマンな敵には正直マイッタ(苦笑)が、今回のは普通に楽しめた。 演出的にもおおっと思うようなところがいくつかあったし。 ただもうちょっとにぎやかにしてもいいかもね。 あと、起動にえらく時間がかかるのと、6面がなぜかスローモーションになる (処理落ち?)のが気になる。
- 736 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 00:26:03 ID:G2OD2oeJ]
- 同じくプレイ。
最初なかなか起動しないんで思わずタスクマネージャを開いたら、 メモリ消費200MB超えてて吹いた。 もしや音楽全部起動時にデコードしてないか?
- 737 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 00:36:05 ID:IyRi5N7H]
- 確かに起動に時間かかったねw
何か一気に読み込んでそう
- 738 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 08:04:57 ID:nEyGaefz]
- プレイありがとうです!
>>734 なんかわかりづらい書き方してて、すまんかったw 国語ちょっと勉強し直してくる >>735 全体的に地味なのは確かに 最低限、自機ショットは派手にしてみようとは思っていますw 製作して初めて、既存のSTGの爽快感の良さに気づけた件 >>735-737 起動時やたら重たいのは、自分自身でも気になっていたところ 問題点を調べてみます うっかりループとかしてそうで怖い プログラム部分は他の有志が作ってるものなので >>736の言うようにデコードしてるのかどうかは現時点ではわからないです 6面は処理落ちだと思います。 多重スクロールかけたりしてたからかな…… こちらも軽くなるよう改善してみます
- 739 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 08:18:28 ID:ArjsFr9C]
- 国語じゃなくてUPLがURLになってるだけでしょうw
俺も最初わからなかったけど、前回の書き込みみて間違ってると気づいた。
- 740 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 09:44:50 ID:nM1lOpfJ]
- >>739
うああああ、今やっと気づいたw 形的に絶対URLだと思っていた俺涙目 わかりづらい日本語使ったから、誤解を招いたものだとばかり すまんかった、さんくす
- 741 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 22:08:14 ID:JtGVfrRu]
- 東方弾幕風以外でそれくらい機能の充実してるツールって何がありますか?
- 742 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 21:29:39 ID:ul07QMbT]
- シューティングゲームの当たり判定って矩形、円形方式以外にあるんでしょうかね?
- 743 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 21:41:41 ID:sDshxJUY]
- 1回当たり判定が正確なの作ろうとして、
1ドットずつの当たり判定を画像から配列に読み込んだ。 □□■□□ □■■■□ □■■■□ ■■■■■ ■■■■■ こんな感じに。 それで、まず短形で判定してぶつかってたら、配列で細かい判定をした。 プレイしてみると短形と変わらなかったけどね。
- 744 名前:名前は開発中のものです。 [2008/07/16(水) 21:42:49 ID:HKtDx1Lp]
- abs(自機座標Xー弾座標X)+abs(自機座標Yー弾座標Y)<適当範囲
おれ適当に作ってみたとき、これでやってた。ひし形ですな。
- 745 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 21:50:22 ID:4EgF3qxQ]
- >>744
すげえ、初めて見た
- 746 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 21:52:34 ID:ul07QMbT]
- >>743
あーそれと近いことやってます〜 今うちでやってるモードだと1ドットレベルで当たり判定できるんですが 自機の弾の当たり判定の先端と敵の端が丁度のときは思ったようにいかないんですよね・・・
- 747 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 22:33:28 ID:tH6C9Mk9]
- 弾などのオブジェクトを基底クラスへのポインタのリストで管理しているのですが、
メモリプールとかどうしてます? new/deleteは確保・解放速度、メモリ消費量で劣りますが、 boost::poolはサイズ固定なので派生クラスで使いづらかったり boost:object_poolはクラス固定なので向きません
- 748 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 22:54:04 ID:ps1864uM]
- char型配列の形でプール確保
プールで管理したいクラスのnew/delete演算子をオーバーロードしてメモリをプールから確保 これでやってる
- 749 名前:744 [2008/07/16(水) 23:12:47 ID:HKtDx1Lp]
- >>745
矩形の方が処理はやいから実際の使い道は微妙ww 巨大な敵ならいいかもしれません。
- 750 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:25:00 ID:Cl1ru+Nb]
- なんかみんなハイレベルなことやってんなぁ
クラスとかポインタとかよくわからん俺は全部構造体と配列で敵とか弾とか管理してる
- 751 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:30:18 ID:UitUcmmL]
- >>747
boost::fast_pool_allocator
- 752 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:33:13 ID:UitUcmmL]
- >>750
それでいいと思うよ。 抽象化だとか言っても結局は自己満足だ。 自分の作りやすい作り方を模索すれば良し。
- 753 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:37:49 ID:ul07QMbT]
- >>750
まあ管理機能はあるタイミングで画面に何千もオブジェクトがでないのであれば 配列でいいんじゃね? 千越えるとさすがにリストでも使っていったほうがいいだろうけど。 >>752 でもさ、C言語でゲーム組んでてサイズでかくなってきたら クラスみたいな実装形態にいつの間にかしちゃってたぜw 数種類のデータがあったらそのデータ毎にソースが独立してて アクセスする際は専用関数を呼び出す。 効率は悪くなるが安全だしな。
- 754 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:43:34 ID:ul07QMbT]
- それに実は双方向リストもたいしたことないんだよね。
どんなに構造体のサイズが変わろうが、次と前のポインターが入ってて 入り口と最後をさす管理用ポインターさえあればネットに転がってる ソースをちょこっと修正すれば完成。
- 755 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:50:36 ID:Cl1ru+Nb]
- >>752>>753
なるほど…自分のやりたいようにやれば良いのか… 弾とか敵とか合計13000個くらい(敵弾が12500発)当たり判定つきでいっぺんに動かしたらさすがに60FPS維持がキツくなったけどこんなもんなんだろうか CPUはせろりんの1.6Ghzでグラボは8400GS
- 756 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:58:44 ID:wSTAyXoK]
- 一画面にそれ全部描画してるの?
- 757 名前:755 mailto:sage [2008/07/17(木) 00:11:06 ID:6mPYwzZu]
- >>756
全部描画してることになるのかな… 表示領域?キャラが動ける範囲、そこに全部描画してみた 自機はおろか背景も見えない 移動してはみ出た弾は勝手に削除、敵は常に360/1Fの勢いで弾を出させてたから弾切れ起こしてた 携帯でスマヌ
- 758 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:13:24 ID:dzlckui1]
- >>747
富豪厨はfailmallocが大好きです
- 759 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:44:03 ID:O2fFtOBP]
- なんか>>750が俺とよく似ている……w
自分で自己満足ゲーム作ってる分には問題ないんだけど Cを使うプログラマ、という観点から見るとダメダメだなぁと落ち込むんだよなぁ。
- 760 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:49:19 ID:WDu5mPhV]
- >>759
別に勉強すればいい。 それにC++とかでクラスを使いだすとあれこれ面倒だけど Cでリスト程度ならネットで検索すれば解説もごろごろ出てるし 関数化してしまえばぜんぜん問題ない。
- 761 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 03:53:57 ID:3ZWP2jps]
- どうしてもこの処理がしたい!
でもそれをやるにはポインタが必要だ! って状況になったら覚えれるよ。
|

|