1 :
名前は開発中のものです。 :
04/01/10 21:07 ID:hzI9eQA5 ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!
ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
■ 前スレ
シューティングゲーム製作技術総合
http://bbs.gamdev.org/test/read.cgi/gamedev/1056635103/
2 :
関連スレ :04/01/10 21:08 ID:hzI9eQA5
3 :
関連サイト :04/01/10 21:09 ID:hzI9eQA5
糞スレの4をゲットする俺
乙です! 前スレさくっと埋まっちゃって、どうなるのかと思ってた。
今まで作ろうと思いつつ踏み込めない・・・ その理由は漏れがシューティング下手だから。東方妖々夢のエクストラが越せないし(つД`) やっぱ作るならそのジャンルのゲームはかなり上手くないと駄目だと思うのですよ。 調整とか難しいだろうし。 喪前さん方はやっぱ上級者なんでつか?大往生2周できたり??
>>7 シューティングが苦手な人のためのシューティングを作ればいいやん
俺その具体的なアイデアひとつ持ってるけど内緒
シューティングに限らないけど、テストプレイするうちに自分だけどんどん旨くなっちゃって リリースするときにはやっぱり難しくなってる罠、ってのが存在する。 というか、ゲームが上手いのとバランス取りが上手いのってどれくらい相関あるんだろね?
テストプレイってのは自分がやるもんじゃないぞ
>>7 漏れもエキストラクリアできてないw
まぁ、まだプログラムの勉強始めたばっかだから、時間的余裕はあるし
一番最初に作るであろう習作は難易度とかそういうのあんま考えずに
自分の思うまま作ろうかと考えてる・・・。
うーん、STGもプログラムも精進せにゃなぁ・・・。
13 :
7 :04/01/12 01:49 ID:dfeXEKEr
>>10 前に格ゲーみたいの作ったらバランス面でボロクソ言われたんですよ。
いいテスターがいればいいんだろうけど・・・友達いない罠(つД`)
>>12 おお!仲間だ・・・w
確かに習作なら好きに作ればいいとは思うけどね・・・。
でも一応プログラミングは分かるんだよなぁ・・・やっぱそれなりに面白いものを作りたいしね。
でも何よりの問題は絵描くのがめちゃくちゃ時間かかることかな。大体途中で飽きちゃうんだよね・・・。
つーかゲームって一人で作るもんじゃないよな。うん、分かってるんだ・・・でも友達いないんだ・・・
シューティングは相当難しくしても大丈夫でしょう。 A級シューターの腕ってのは、ある意味極限までイッちゃってるから。 もっとも、やる気にさせるくらい面白くないと駄目だが。
>>7 東方のシューティングの場合はHardクリア辺りで十分かと。
何故ならあれは難易度=弾幕密度なだけで、根本的な違いがないから。
大往生2周なんて現状ですら日本で20人かそこらしか居ないようなレベルですよ。
大往生の真髄ってのは2周目ですが、実際は1-3以降はずーっと一緒なのです。
個人的には、1-3までノーミスノーボムクリアできた人ってのは、
大往生とはどういうゲームなのか、ってのがよく分かってる人だと思ってます。(笑)
16 :
15 :04/01/12 15:59 ID:TBQQ9OX4
>>7 さんが東方と大往生の名前を出していたから使いましたが、
要するに、東方や蜂などのゲームの性質の特徴を理解していれば、
上手下手はあまり関係ないんじゃないかなと。
だけどある程度はゲームの先に進まないと性質の違いを理解できないから、
その辺は、やっぱりやりこまないとダメかな。って感じです。
ケイブのユーザーズルームの中に、
弾幕製作の仕方について書かれてるけど、あの辺がかなり興味深い。
バランス取り、というか道中の製作の仕方のコツが書いてある。
17 :
7 :04/01/12 17:29 ID:4bVbjk9r
>>15 >>16 なるほど。助言サンクスです。
ケイブのユーザーズルーム見てみました。
かなり面白いですね!じっくり読んでみようと思います。
で、四の五の言わず取りあえず作ってみようかな。
もしできたらここにうpしますね。いつになるか分からないけど。
このスレがあって良かったー。ほっとしてます。 フリーのBCC簡易統合環境で スケルトン+サンプルソースをいくつかdropすればできあがり、の STGスケルトンを作れたらなぁ、と妄想したんだけど、 DirectXの知識を持ってないことに気づいてガックリ。 webを探していてほかにそういった用途に向きそうだと思ったのはygs2k。 Cでシューティングを書くための基本に慣れるには最適に見えます。 HSPも1画面シューティング向けっぽい。 ygs2kよりもdll開発情報が充実しているので、 STGに特化したライブラリを発表しあってウマー、なんて妄想も。 とりあえず小さいプログラムをいくつか書いて慣れてみるかなぁ。
そりはSTGのフレームワークを作ろうという話? (各自フレームワークもどきは持ってると思うけど統一はされてないか。)
20 :
18 :04/01/14 12:08 ID:tfvL3SeZ
どっちかというと、1画面サンプルを充実させようや程度で。 シューティングに不要な部分はごっそり削ってコンパクトに。 高度なフレームワークへの関心もありますが、 俺は低レベルなので提示されても読みきれなかったり。
シューティングに不要な部分ってのがいまいちはっきりしない・・・ シューティングといっても千差万別っぽいし、アクションと内部的にはアクションとかと そう変わらないと思うし。 Windows依存の部分とか?
俺も積極的に削れという意味合いで言ったわけでもないので、気にしないで。 意味無い発言するなゴルァってことならごめんね。
プログラム初級者です。敵のプログラムとして while(1){ for (i=0;i<7;i++){ fire(); wait(5); } wait(11); } のようなことを並列に実行させるのに、いままでは敵ごとに同じような関数を書いていました。 射撃、状態遷移、カウンタが一定値になったら次の状態に遷移、という具合に。 細部の違う敵を作るときのための定数分離も行いましたが、 行動そのものが違う敵の記述にはやはり同じような関数を書く必要が出てしまい、 億劫になってコーディングが頓挫してしまいました。根性ないです。 言語仕様策定などゲームデザイン本質に関係のない煩雑な作業をせずに 簡易言語で敵を記述するツールはないものでしょうか? 前スレやwebやプログラミング板を眺めて、使えそうなものは (1) 組み込み言語 (2) 独自言語をバイトコードに翻訳するコンバータと、 ゲーム内でバイトコードを解析して逐次実行するエンジン (3) コードサイズやコンパイル速度に糸目を付けず、 独自言語を並列動作用の手続き群に翻訳するコンバータ あたりと思ったのですが、luaスレもXMLもパーザも俺には高等すぎて理解不能でした。 (2)は以前やってみたのですが、パーザの知識がなく言語仕様が粗末なままで、これまた挫けました。 (3)は原始的な思いつきなのですが、なんとなく勉強不要そうなのでここから手をつけてしまうかも。
シューティングで使える フリーのグラフィック素材はない?
シューティング用にフリーのグラフィック素材を探したことないからわからねえや、ごめんな
http://www.google.com/search?lr=lang_ja&q=シューティング%20素材&num=100 たしかにすぐに見つかるってわけでもないようだ
俺は素材探すのマンドーだから、全部自分で作ったよ。そのほうが
使えないものを没にする時間の無駄がまったくなくて、楽だった。
EDGE、JTrim などのグラフィックエディタ、
発色弾などの爆発パターン生成ツール、
DoGAなどの、パーツからオリジナルメカを作ってすぐに画像にできるツール、
そのへんを使った。
最近は絵の質感統合がマンドーだからGDIでテキトウに描くだけ済ませてる。
これならbmp読み込みなどの処理をする必要もないしな。今は万人にオススメできる方法じゃないけど
DoGAのはパーツに著作権があるからなあ。 海外の素材サイトなんかも著作権侵害してるとこばっかだし、 結局、素直に自分で作るか誰かに頼むのが一番よさげよ。
DoGA L1 なら、ダウンロードも利用もフリーだぜ > 商業利用の場合は、別途DoGAの許諾が必要です。 これはL3のところに書いてあるけど、L1やL2も同じかこれより甘いだろう 売るようなシューティングを作るなら別だけど、今回の話題とは違うってことで
「フリーのグラフィック素材」ってだけで、 フリーソフトを作るのに限定した話ぢゃないと思うぞ。
文脈と俺脳内常識から、フリーのシューティングを作る用途限定だと、勝手に判断させていただいた。
>>30 こりゃすげーや。事前連絡さえすれば改造二次使用まで可なんて、懐が深いなー。
>>28 DOGA-Lは同人OKですよ
FAQにわざわざ記載されてます
商業・営利利用もプロフェッショナル登録をすればOKです
> DOGA-Lシリーズは、より多くの方々にCGアニメの楽しさを知っていただきたいという目的で開発されました。 > ですから、その開発や配布につきましては採算性を度外視しており、いわば慈善事業として行っております。 > ですから、当チームとしては、Lシリーズを商業・営利目的で使用して欲しくないという想いがあります。 > でも、どうしても仕事で使いたいという方には、少し多めに使用料をいただくことで、商業・営利利用を許可し > ています。それがプロフェッショナル登録です。ですから、使用料が高くなる(20000円)というだけで、機能が > 増えたり、サポートがちゃんと行われるというようなことはまったくありません。 > L3で制作された映像には、必ずL3のパーツが使用されます。L3のパーツの著作権は、DoGAが所有してお > りますので、結果的にL3で制作された すべての映像は、制作者とDoGAの共同著作物になります。 各ユー > ザーに対して、個人レベルでの使用や、映像やCG系のコンテ スト等に出品するといった活動に対し、DoGA > がその著作権を行使することはありません。しかし、商業利用の場合は、別途DoGAの許諾が必 要です。 20000円払えばパーツ込みで商業利用可能ってことやね。 個人的にはDOGAのスタンスに賛同できないので、係わり合いになるつもりはないけど。
>>33 質問するときに情報は小出しにするな、の法則を破ってしまいました。申し訳ない。
BulletMLの可能性の高さはABA gamesのC++/Dソースと同梱XMLを見るにつけ実感していますが
導入には知識を要し挫折中です、今の俺では無理ぽ
針弾や時間変化する弾サーフィスを表示できるようなLibBulletMLサンプルがあれば…と思ったら
rRootageがそうだったのですが、BulletML部分だけ抜き取って手元のスクラッチに追加するのは
やはり難しすぎて断念しました。
(3)を選び、現在作業を進めています。
>>23 は100行かそこらのコンバータを2個書き実現しました。ごくごく簡易に字句/構文解析するだけ。
敵オブジェクトのほうはプログラムカウンタとワークエリアを追加しただけで済みました。
やりたいことはその程度の簡単なことだったようです。
>>35 最後の1行同意
>結果的にL3で制作された すべての映像は、制作者とDoGAの共同著作物になります。
こんなんで使いたいヤシの気がしれん
38 :
35 :04/01/19 15:01 ID:zcCFBDmJ
ああいや、私の場合はどっちかというとDoGAという団体の活動に対しての話なのですが。 68時代からずっと見てきたからなあ。 ま、シューティング制作スレなんで細かい話はパス。(ていうか忘れたともいう)
Metasequoia+Lightflowでいいやん
VCとDirectXでシューティングを作りたいのですが 参考になるようなHPが中々ありません。 なにかVCとDirectXでシューティング作りについて詳しく 解説や説明されているHPってありますでしょうか?
>なにかVCとDirectXでシューティング作りについて詳しく >解説や説明されているHPってありますでしょうか? なんかね… まずVCをマスターしてから改めて質問しな
VC++やDirectXの解説サイトは山ほどあるよな。そこで情報をつまみぐいすればいいんじゃね? もしプログラム言語をまったく知らずに いきなりVC++を買ってシューティングを作り始めるというのなら、とめはしないが とりあえずHSPなど楽に書ける言語から始めて シューティングづくりのおおまかな雰囲気をつかんでみるのもいいよ、と言っとく
敵雑魚とか弾など、頻繁に出現/消滅するオブジェクト管理に線形リストを考えてたんだが、 実際にはあんま線形リストにする必要が無いような気がしてきた。 データ挿入時も頭から空き探したところでオーバーヘッドは無視できるレベルだしなぁ。
んなもんC++のSTLコンテナ使えば一発よ。 アルゴリズムとか実装の理屈さえ理解しているなら、 STLコンテナを使わない手は無いぞ。
STLの存在は知ってるけど今まで全く使ったこと無いんだよね これを機にSTL覚えようかとも思ったがなんかマンドクサ
struct Unko { ... }; list<Unko> unko_list; これでうんこリストの完成だ 使い方(挿入、削除、全参照など)は至って簡単だ Webで探すなりマニュアル読むなりするがよい
>>45 間に挿入すると、弾が激しく重なるような弾幕出すときにアレだから。
必ず最後/最初に新しいオブジェクトがつくのがいいのら。
ざっと調べたが、STLのlistの内部実装がワカラン 頻繁に挿入/削除を繰り返したらOS管理のメモリ領域が不連続領域だらけになりそうなヨカソ STL使えば実装は楽だろうけどそれ以上のメリット無いんでは?
>>50 もしかしてnewとかdeleteとか頻繁にやってるとか思ってる?
STLは速度特化で作られたもんですよ。更に実装も楽。使わない手は無い。
怒蜂家庭用スレに誤爆してしまった…_| ̄|○
>>50 STLのほとんどの実装はメモリ再利用するみたいだからダイジョウブだと思うよ。
気になるならアロケータを作成するという手も。
>>49 オレなんか毎回(表示優先度→Obj作成時間)でソートしてから表示してるぜ!
53 :
_ :04/01/21 23:12 ID:caBBi+Ux
>もしかしてnewとかdeleteとか頻繁にやってるとか思ってる? やってないと言いきれない罠
>>49 弾に大小があるなら、
大きい弾を下、小さい弾を上に描画すると親切かも。
見栄えにもよるけど。
>>54 ゲーム的に元々優先順位が違う敵弾はそれでいいんだけど、
隙間のない連続弾とか、「しなる弾幕」(某氏の日記から名前拝借)とか、
弾と弾が激しく重なりまくるケースで、
配列の空き要素探索方式だと表示順序がメタメタになってちょっと気分悪くなるでし。
>>52 > オレなんか毎回(表示優先度→Obj作成時間)でソートしてから表示してるぜ!
作成時間までも。豪快ですなそれわ。
>>51 ,52
STLのメモリの利用方法って簡単に調べる方法あるの?
それともSTLのソース読んでみるしかないのかな。
昔のアーケードのような16bit8MHzCPUで作ってたシューティングと比べると ものすごい勢いで富豪プログラミングが可能っぽ
開発の手間をいかにして削減するかのほうがよっぽど重要。 俺の場合はSTL無しの言語なんかやってられんわ…マンドクサ
>>57 確かにそうなんだが、「10年前のハイテク」に敗北してるとも言える>富豪コーディング
CPU能力もメモリ環境も一昔前では考えられない程向上してるのに、出来た代物は10年前の
ゲームにすら及ばなかったらカコワルイわな。
STLのListは興味深い話だと思う。
シューティングに限った話じゃないけど、俺のコード設計の場合アプリケーション起動時に
必要なメモリを確保して、その後は終了まで一切新たにメモリ確保はしない。
極端な話、ゲームの真っ最中にnewに失敗したらどうすんのか?と考えるワケよ。
それにアーケード基板やゲーム専用機はメモリ容量は最初から決まってるから動的に確保・開放
する必要も無い。
STLの実装がどうなってるかは知る由も無いが、もし内部でメモリの動的確保してるとしたら
俺は使うのを躊躇うよ。
>CPU能力もメモリ環境も一昔前では考えられない程向上してるのに、出来た代物は10年前の >ゲームにすら及ばなかったらカコワルイわな。 普通に作ってる限りそんなことないと思われ。 >極端な話、ゲームの真っ最中にnewに失敗したらどうすんのか?と考えるワケよ。 失敗することが問題ではなくて、何時失敗するか予想しづらいことが問題ね。 分かってると思うけど、一応つっこんどく。 >STLの実装がどうなってるかは知る由も無いが、もし内部でメモリの動的確保してるとしたら >俺は使うのを躊躇うよ。 アロケータを自分で書けばいいんじゃない?
>>59 もしかして自力でメモリマネージャ書いてる?
>>59 プログラムはゲームの面白さにはあまり貢献できないんだよ。。。
ああ、面白いとかいう話じゃないのか。 カンチガイスマソ
10年前っつーと94年。 ダラ外やレイフォースが出ているが、それよりすごいのみんな作れるの? すげぇな。
どうせ趣味でやってるプログラムなんて自己満足の世界なんだから 本人が納得のいくようなコーディングができればいいんでないの その結果できたもんが面白ければみんなが遊んでくれて 面白くなければ見向きもされない、それだけのこと。
富豪的プログラミングやってて気づいたんだが、 結局、昔からのテクニックや資産を受け継いでなくても それなりに作れてしまう罠。 んで、PC以外の環境で作ることになりそうなんだけど、手も足も出ないよ_| ̄|○ 昔ながらの擬似タスクの実装とか、動的メモリ確保なしでやりくりするような 低コストでゲーム作る方法はどっかで得られないものか・・・
(1)自分でメモリ管理モジュールを書く
(2)その辺に落ちてる再利用可なmallocライブラリを移植する
(3)newlibを移植する
とか。
ゲームなら(1)で十分?
GBAとかならまだ(ゲームの規模にもよるが)十分富豪的に出来ると思うけど、
8ビット機とかだとつらいかもね!
>>64 意図的に話を摩り替えて煽ろうってのも結構カコワルイな。
天然だったらごめんw
なんでもかんでも必要オブジェクト数ぶんmallocしておいて あとはオブジェクトへのポインタのリストをソートするだけじゃダメなのか? 動的な配置が必要になるほど高度なもの書いたことないからわからなくて。
>なんでもかんでも必要オブジェクト数ぶんmalloc これが富豪プログラミングだということなんだよ… アケ基盤とか家庭用機ってのは非常にメモリが少ないんでメモリ管理が大事なわけ
必要な分だけmallocするなり配列定義するなりして、要求に応じて 使っていくのが(1)なわけだな。
メモリ制約の大きい環境では、節約のために 動的なメモリブロック解放と再配置が必要、ということか。 大変なんだな… 疑似タスクはバイトコード実行エンジンの規模を小さくする以外に方法あるのかな。
>>68 >>CPU能力もメモリ環境も一昔前では考えられない程向上してるのに、出来た代物は10年前の
>>ゲームにすら及ばなかったらカコワルイわな。
>普通に作ってる限りそんなことないと思われ。
この流れから行くと10年前のものより良いもの作れて当たり前、と読めたんですが。
強者ぞろいだなー、と普通に感心してしまったんですが。
煽るつもりはなかったので天然すか・・・ orz
>>73 安心しる
漏れも同感だ
>普通に作ってる限りそんなことないと思われ
これどういう理屈か全く理解できんが
単に誤解してるだけでは。
>>68 はいまどき敵弾が画面内に16発しか出ないとかフレームレート30しか出ないとか
そういった意味の話をしてる。
>>73 とか
>>74 は、怒蜂より面白いゲームが作れるのかーヘェーとか解釈してる。
まぁ俺も最初に読んだときは釣られそうになったけどね。
敵を一体作るたびに面白いゲーム作るのって難しいなと痛感してるから。
つーか10年前のゲームを知らんだけだったりしてな 温故知新ですよ
>>73-74 だからなんで
・富豪 vs 旧来手法
という話を
・面白い vs つまらない
・技術的に高度 vs 高度でない
に摩り替えたがるのかなー?
それぞれ独立な話でしょ。
まぁ、
>>73-74 的な話に付き合うならば、富豪的プログラミングをしようが
しまいが、面白い奴を作れる奴は作れるし、作れない奴は作れない。それだけの話。
>>普通に作ってる限りそんなことないと思われ
>これどういう理屈か全く理解できんが
「ハードが足を引っ張ることはない」という意味で、ゲーム作りの実力が同じなら、
富豪的に作っても少なくとも出来が下回ることは無い(実力が普通に出せれば)とい
うこと。実力が無いなら当然劣るものしか作れないだろうね(当たり前だけど)。
10年前のPC98のゲームということじゃねえの? 色数とか弾数だけなら負けねえっとことでは。 まぁ、10年前の良作の足下にも及ばないものが多いのも事実。 (スカッシュボムとか今新作とし出しても十分通用しそうだしな)
10年前の駄作を上回るゲームも多いけどな。そういう話でしょ?
後付けカコワルイ
10年なんて適当に言っただけだろうし、あんまり突っ込むのもどうかとw。 だいたいゲームなんて10年前どころか20年前と比べたって、進化してるのは ハードウェアとグラフィックだけだ。
うむ、かなりイタイな
プログラミングの技術はwebに転がってるけど、 シューティングをどう作ると面白いのか、っていう技術はほとんど知られてないよなあ このスレでそういったネタも扱えると面白いんじゃないかと思うんだが
商業作品を例に出して、面白さの研究をするってのは悪くないが スレの内容として微妙だと判断する人もいるかも試練。
何のゲームのどこが面白かったを語るぐらいなら問題無いんでないかい? スターソルジャーはオモロカッタな。 あれで初めて敵の早回しという概念が出たと思う。 以下読まなくてもいい文章。 どう作ると面白いのか?ってのはシューティングの概念から外れそうだな。 突き詰めると映画マンガ音楽ゲーム、全てのものに当てはまるようなものになるだろうし。 緩急のリズムやら意外性やら呼吸の間やら、何に対して爽快感などの快楽を感じられるか? ストレスによる圧迫とそれが解放された時の快楽など、精神の奥深くを理解しないといけない。 優れた芸術家ってのはそこら辺を計算でなく感覚で判っているような人たちだと思う。 なのでどうすれば面白く作れるか?を話し合っても、結論が出なくて荒れるだけだと思うぞ。
王道シューティング(ショット&レーザー&ボムだけのゲーム)だとしたら、 それなりにシューティングをやりこんでないと面白いのは作れないかも。 敵配置や敵の攻撃とかは実体験によって得られるもんだと思うんで。 だけどオリジナリティが無いと既存ゲーと似たようなものになっちゃう。 当然プログラムの能力が無いと実装すらできない。(w まーその辺の能力が揃って面白いゲームが作れると思うんだけどね
結論の出ないネタを振るつもりはなかった。 いわゆる早回しには二通りあるとか、そういった事実を述べるだけでいいと思ってたんで。 ネタを仕込んでも調整が足りなければつまらんゲームになってしまうけど、 何も知らないで天然ゲーばかり作っているよりは進歩があるんじゃないかな。
当たり判定の管理ってどうやってる? 特に擬似マルチタスクを用いてプログラミングしているとき、どうやって相手を特定するのか 自機、自機弾、アイテム、敵機、敵機弾などの判定の仕方とか 静的にデータを持ってるならオブジェクト数分ループすれば良さそうだけど
今のコンシューマハードなら、シューティング程度なら 十分すぎるほど富豪的プログラミングできるはずだぞ。 動的メモリ管理についてはOOスレでフレームになってたので読みたまえ。
>>88 あんまりいい方法じゃないと思うんだけど、
俺が擬似タスクを使ってたころは毎フレーム当たり判定領域を登録してた。
擬似タスク処理、そのへんを詰めていくと変になる。色々と上手くいかなくて。
今はタスク処理など使わずに普通にSTLコンテナ使ってます
前スレにも書いたけど、 (1)管理オブジェクト(orメインループ)内で全組み合わせで当たり判定 (2)当たっていたらそれぞれのオブジェクトに何と衝突したかを通知 こんな感じ。 管理オブジェクトは画面内のオブジェクトをタイプ別にリストとかで持ってるわけね。 どのオブジェクトタイプとオブジェクトタイプを当たり判定すべきなのかは ハードコーディングしてる(自弾と敵、敵弾と自分、敵と自分…とか)。 って、擬似タスクの話じゃないね。ごめん。
92 :
59 :04/01/23 22:37 ID:jmlq0XPJ
なんか一人上手な方が暴れてたようですな…
>>83-87 面白さを議論するなら、PCゲーム板のスレが参考になると思うんだが。
あそこは開発者もいっぱい見てるみたいだしね。時々そういう話の流れになるw
アケ板のシューティングスレ等は、蜂マンセーなのもいれば、蜂はシューティングをダメにした元凶という意見があったり千差万別で興味深い
ゲーム性が別ものだもんね オレは蜂好きだけど蜂の真似して作られた弾幕シューは嫌い… ケイブ以外が出してる弾幕シューはつまらん!
つ〜か、弾幕ゲ〜見てると、作ってる人間が楽しんでるだけにしか…。 人を楽しませるって感じがしないのは古い人間だから?
>>96 実際そういうのは多いと思う。
でもそうでないものもちゃんとあると思う。
弾幕シューって、ただ弾を撒き散らしてるだけじゃ駄目なんだよ。 そこがケイブシューと他の弾幕シューの違い。 ほんとにケイブんとこは見事に考えられてる
>>98 激しく同意。
>>94 の意見が出るのもわかるけど、
それは、蜂が駄目にしたんじゃなくて、
見た目の面白さだけ真似たゲームが駄目にしたと言っていい。
決して、ケイブは弾幕(だけが)がすごい、面白いわけじゃない。
弾幕シューだけども「自機ありき」と「弾幕ありき」の違いがあるわけ。 ケイブのユーザーズルームに、自機にこういう動きをさせるには、どういう弾幕ならできるか? ということを考えてる、と書いてあるっしょ。自機を動かすための弾幕なわけで。 大量の弾が高速に襲ってくるが決まった動きをしてれば死なないように出来てる。 そのケイブの意図した動きが出来なければ、追い詰められて死ぬ。 ん?ケイブシューターは池田に踊らされてるのか?w それ以外の真似ただけのゲームってのは、自機の動きはお構いなしに弾を出してる感が強い。 そうすると、発射時は幾何学的に美しい模様をしていても、自機に到達する頃には、 各種の発射源からの弾がごちゃ混ぜになったばら撒き弾になってることが多い。 だからステージ全般(道中、ボス)を通して主に自機の周りの細かい弾避けがメインになる。 なんでもないところで操作ミスによる死が多い。 それぞれどう感じるかは人それぞれ。 俺は前者を突き詰めたのが大往生であり後者は東方だと思ってる。両方とも俺は好き。
なんだよおまえら。俺の言いたいこと全部言ってくれやがって。 そんな俺も蜂フォロワーは作りたいけど、基本に戻ってタイガーヘリフォロワーからやってるYO
最近のシューティングって、弾幕の濃さだけを求めた結果、当たり判定がコックピットだけとか、 1ドットとかばかりになってしまった弊害を生んでるけど、どうだろう。 俺は理不尽なミスを感じるので否定派 大往生のプロモムービー見たとき「お前死んでるじゃん!」、「なんで死んだんだよ!」 と思ったことひとしきり。
昔のシューティングって、弾の速さだけを求めた結果、当たり判定が自機の大きさ以上とか、 自機の大きさをはみ出した四角とかばかりになってしまった弊害を生んでるけど、どうだろう。 俺は理不尽なミスを感じるので否定派 雷電の自分プレイを見たとき「オレ死んでるじゃん!」、「なんで死んだんだよ!」 と思ったことひとしきり。
>>103 雷電もトライゴンさえも自機より判定がでかいということはないが。
翼の先まで正確に当り判定を定めた所で果たして面白くなるのかどうか。 横にロールしてる時は当り判定が小さくなるとか、 変形によって判定を変化させるとかその程度か?
弾と自機の接触が見た目より大きいのはソルバルウとSYDくらいだね(斜前で死ぬ) 大抵はキャラクタ絵に収まる矩形で判定されてるはず 今なら中心間の距離等で判定するのがお手軽
そうなの?なんか感覚的に 「△」これを自機としたとき左上と右上の何も無い部分にまで 当たり判定があるように感じる
>>105 いくらなんでもそこまでせんでもよいと思うが(w
>>102 弾幕の濃さとか当たり判定とかが小さいとかは、弊害とはいわんやろ。
それはそういうシステムなのだと考えるものじゃないかな。
理不尽なミスってのは例えば某スレで上がってるpersec47の高難易度面で出てくるような
突然「全方位で超速弾なのに密度MAXな弾幕」にぶち当たるとかじゃないのかね。
高速弾だろうが高弾幕密度だろうが、それぞれ理詰めで抜けられる。
但しそれをどう感じるかは微妙。理詰め要素が好きな人もいれば嫌いな人もいるし。
ただアケシューターってのはそういうのが大好きな奴が多い。と俺は思う。俺もそうだしw
シューティングって見た目地味だから、弾が多くて派手にするという点では、
弾幕が濃いってのは売り物としては成功なんじゃないかな。
なんか書いてて無茶苦茶になってる… perser47ってランダムで敵キャラ生成するんだけど高難易度面だと絶対無理な弾幕が生成されるんですわ。 それに対して彩京シューの高速弾やケイブの高密度弾幕は理詰めで抜ける道が用意されてる、って話っす。
>>109 確かに弊害というのは語弊があるかもしれないけど、昨今のシューティング(特にオンライン物)
見てると、猫も杓子も軒並み弾幕・当たり判定小さいというのばっかりになってしまって、食傷
気味になっているんだよね。
それがシューティングのプレイヤー離れを起こしている要因にもなっていると思うし。
現在のアケシューターが弾幕を求めているのは分かるけど、それは結果的に弾幕に対して適性が
あったものだけが残ったもので、多くのものは離れてしまったのでは?、と。
かく言う俺にとって至高のシューティングは未だに雷電なんで、今となってはこんなのマイノリティ
の戯れ言なんだろうな。
>>105 傾いたときに当たり判定が小さくなるのはポピュラーですよ。
必死で避けてる時に避けやすくする、という意味でね。
雷電もケイブも弾の撃ちかたがすごく洗練されてるんだよなあ。 ただの高速弾や大量弾じゃない。 なんとかその中身まで受け継ぎたいと思うよ。 雷電には学ぶべき良い点が多い。恥ずかしながらシューティング作り始めてから気づいたけど。
漏れは弾幕よりも、演出マンセーなシューターなので、 ケイブ系よりもタイトーとかコナミ系の方が取っ付きがいい ジジイだからな
俺はジジイだが逆だぞw
雷電やソニックウイングがあったころはシューティングもゲーセンの主要ポジションにあって 結構いけてた気がする。 でも、今のプレイヤーが求めているのが美しい弾幕、ケイブのように計算された弾幕 であるなら、シュー制作者としては皆そっち方面の技術・面白さを追求することが正解だろう。
プレイヤーを洗脳して、俺が好きなものをプレイヤーにも求めさせるつもりでやってる。 美しい弾幕はおまけというか釣りで、本質は道中の多様な変化 (腕前の変化で道中の内容が変わる)をプレイヤーに楽しませること。 あと俺もジジイだが、今風の演出よりは古式ゆかしい東亜前期の弾避けが好きだ。
タイトーシューは昔から演出がイイと思うんだが、 モノによっては演出過多でゲーム展開を阻害してるのも事実。
>演出過多でゲーム展開を阻害 サイヴァリア2の1面ボス開幕だなw
ダライアスはいいゲーム
121 :
名前は開発中のものです。 :04/01/26 00:18 ID:JSXTKa7f
ダライアスは弾切れが良かったよね。 本当の事を言うとアノ頃の自分にとってグラディウスが神で、 ダライアス、ファンタジーゾーン、R-TYPEはクソだった。 15年以上して、それぞれの面白さを認められるようになったが・・・ こんな自分はたとえ、ゲーム開発者になっていたとしても、 きっと、偏った、独りよがりのゲームしか作れなかったと思う。
>>121 それはわからない。
人は成長するもんだ。
>121 だったら、逆に言えば、今なら開発者としてじゃなく 趣味で作っても、独りよがりじゃない面白いゲームが作れるかもよ? と言って密かに面白いゲームが遊べることを期待する俺(笑)
>>121 作って見れ。
それなりにシューティングやって、面白いか面白くないか分かってるなら
それでいいだろ。面白いと思ったところだけ引き抜いて1つの
ゲームにしてしまうんだ。
漏れシューティング作ってる。お前も作れ。
と、
>>123 と賛同する漏れ。
一人1面担当のごった煮シュー(゚Д゚)ウマー な訳無いか。
自分で昔作った時に重視したのは、何より敵が「編隊」で現れるところ。 格闘ゲームのコンボとかに近いんだよね、ツボを突いたら連続して撃ち込める!みたいな、実力でつかめるお徳感が味わえる。 で、何連続で破壊できたか?て訳でコンボ数を表示。破壊時の爆風アニメーションが一つでも残ってればコンボ数が継続されるようにした。 スターフォースの頃からあった仕組みの、敵を倒しきったらすぐ次の敵が出るというシステムを採用していたので、撃ち漏らしさえしなければ延々とコンボを繋げられた。 コンボが途切れた時点で、コンボ数×コンボ数のボーナス点。 一定の編隊数を倒すとボス戦なので、開幕からボスまでコンボ繋げられればパーフェクトボーナスで×2。 ボスはサラマンダの123ボスを再現したなぁ。丁度手頃なボリュームなんだよね。 ラスボスは動き回るゴーファーもどきの口に入って、狭い頭内で脳を破壊するようにしたよ。
みなさんは敵の座標・データとかはどうしてますか? 敵のデータを書き込んで動かそうとしているけど なんだかうまくいかないので困ってます・・・ モウダメポ・・・_| ̄|○
もうちょっと詳しく話してみろよ。どんな結果を期待してたのにどううまくいかなかったんだ? 俺も今作ってるから、何か助言できるかも知れない
129 :
124 :04/01/28 00:44 ID:Bd929imP
>>127 今一言ってることがわかんないんだけど、
敵自体の動きは数を押さえてコード上で記述。
ステージはスクリプト化して別テキストデータで用意、ステージ選択後にロード。
というような話でいいんだよね(;´ω`)
漏れもそこは大変だった。ガンガレ
よく分かんないけど、とんでもないとこで上書きしてるとか? とりあえず動かないキャラの座標メモリへのアクセスをデバッガでヲチしてみれ
う〜ん、敵の座標を ―――●←敵 / / / ● という風に動かしたいのだけど 斜めに逝かず横に逝ったり、横に逝かずに下にいったりするんです ちゃんと行きたい方向の値を書いているのに・・・ ・・・スクリプト化ってナンデスカ_| ̄|○
値の入力がおかしいのか、変数が壊れてるのか、計算が間違ってるのか トレースして調べてみよ
>>131 なんかもう初歩の段階で躓いてるヨカソ
ちなみに斜めに弾は飛ばせるか?
たぶん、これまでの回答の半分は難しく答えすぎて伝わってないな
>>131 は (100,100) に出現して 真横に移動する敵
(200,200) に出現して 真上に移動する敵
任意の場所に出現して 任意の方向に移動する敵
をそれぞれ作ってみな。方向転換のことは最初は考えなくていいから。
敵キャラの動きとか配置って大変だよねえ… 効率的に作成する方法ってないもんかなあ。
いろんな方法があるよな 俺は効率の追及以前に、自分にとっては高度すぎる配置と動きを組もうとして挫折したことがある いまはやれる範囲でいろいろやってるので、時間がかかっても結果は出せてる 少しずつ高度なこともやれるようになってきた
>>135 道中が長いと面後半の調整は大変ですな。
昔作ったシューティングでは途中を飛ばす機能を入れておいた。
単に無敵にして目的の場所まで画面を表示しないようにしただけだけど。(w
当時は画面表示が占める処理が大きかったので結構使えた。
俺が作ってるタイプは、やっぱり今でも画面表示の占める処理がほぼ全部だぜ 表示しないモード、描画同期待ちしないモードの切り替えはいろいろ役立つな
敵出現用のマップエディタは便利
敵動かすのって、敵テーブルに種別と座標、耐久力、弾に関係するフラグやカウンタ、動きに関係するフラグやカウンタを持っておいて、 色んな角度に直進する動きだけ書いた敵動作関数にインデックス渡して、種類と動作関係フラグ毎に角度と速度決めて動かせばいいんでしょ?
>色んな角度に直進する動きだけ書いた敵動作関数 気が向いたら曲線も入れてやれ
>>141 曲線なんていつ使うの?
1フレ毎に角度変えればいいだけじゃん。
>>142 データが小さくできるから変更が楽ですよ?
CatmullRomとかで通過点指定するだけで滑らかな動きが実現できるんだから使わない手は無い
へぇー。 便利な関数があるってわけだ。
特殊な動きをさせるのでない限り、スプラインとかそういう奴でパスを作って それをなぞらせるだけのほうが開発効率いいかなぁとか最近オモタ
敵出現のタイミングも一考ものだな 毎フレーム、敵テーブルや敵配置マップから情報を読み取って、淡々と出現させるものと 一度にある一定数を出現させた後、プレイヤーが全部を倒すか、画面から消えるかすると 改めて、また一定数の敵を出現させる物 アーケードでは前者は怒首領蜂 大往生、後者は式神1が当てはまるな
>>140 敵は与えられたルートに従って動くだけならこれで良いかも。
敵が自分で判断して挙動を変えたりとかはしないの?
>>147 後者の代表例はゼビウス、スターフォース、ザナックあたりかな
出現時刻がアナログに変化するところが前者との大きな違いだ
前者のほうが確実に組めるので調整はしやすいが、
後者にもいろいろと可能性がありそう
ZANACは早回しとか入ってないよ。
テキトウ言っちまった。スマン。 ZANACは敵消滅が次の敵のトリガになるわけじゃなかったね(キャラオーバー時のぞく)。 武器を取った瞬間にテーブルが変わって新しい敵が出る(ことがある)ので、それとごっちゃに語ってた。
戦車とか砲台を地形にシンクロさせるためには出現時刻の細かな調整が欠かせない。 しかし地形を意識しなくなると途端に作業が楽になるな。
地形とのシンクロをしっかりやってるのって 同人とかだと少なくない?
大往生の1面中ボス後の中型機とかは、 時刻じゃなくてスクロールに同期してるよな
>>153 最近は美しい弾を多く出すことが重要なんで、近代〜近未来的な重厚なメカは流行らないからではないかな?
俺はGストリームのキャラに感動してたけど。(w
漏れは激しく戦車が好きだ
今、ボタンを押すと自機の少し右斜めに爆弾が表示されてずっとそこから動かず 敵と触れると爆発するという罠みたいな武器を作っているんだけど 爆弾が一個の時はうまく爆発アニメーションもしていけたのに 爆弾を5個にしたらなぜか爆発アニメーションもせず、その座標にずーっと 表示され当たり判定も全然触れてない敵と当たっているし・・・ モウ頭ガ大混乱・・・
がんがれ。ときには一歩戻ることも大事だ。1個に戻すとか。 当たり判定表示モードを用意する手もある
>>157 確実に変数がかぶってるでしょ。
構造体にフラグ持たせて、爆弾一個一個ごとにフラグもカウンタも持たせればいい。
>>157 いいなぁ。。。俺もそんな時期があった。。。
あのころにはもうもどれない
>>160 なーに、ちょっと記憶喪失になればスグだ
C/C++でシューティングゲームを作ろうと思い立ったけれど自機・敵機などのオブジェクトの管理法や 当たり判定などごく基礎的なことからわからず調べている始末… みなさんこういう入り口ってどこから学びました?
まず、アクションゲーム作り慣れしよう webでの情報は…なかなか有用なものは無いんだよね atanだけ知ってれば弾は吐けるから、そこをスタートにしてみるとか アマチュアが作ったもので技術的に参考になりそうな作品を ひととおりチェックしてみるといい ソースを付けていたり、サイトでプログラム系コンテンツを展開していたりするものもある
あい、週末にいろいろ思いついたことを実際に組んでみて実験したりして 慣れようと思います。 ソース付きのサンプルは探しているけれどなかなか見つからず… あとは本も探してみるかな。 みなさんが参考にしたサイトや書籍などを教えていただけたらうれしいです。
まずは、ソースを見ること、ソースを読むことかな。 漏れはBASICからスタートして、BASICで一応STGと呼べるものを 作ってからWindowsに来たから、何ともいえないけどね。 まだ起きてるなら、 参考になれそうに無いサンプルでよければ上げるよ。
>>165 162じゃないけどサンプル( ゚д゚)ホスィ…
168 :
165 :04/01/30 02:48 ID:wHwjFN70
>>168 dクス
キャラの管理にクラスは使ってないのね。
漏れはいつもクラス設計で迷ってなかなか先に進まない…アフォか_| ̄|○
170 :
165 :04/01/30 03:05 ID:wHwjFN70
>>169 なんてゆーか、動的メモリ恐怖症なんです(((´Д`;;)))
今、このシステムをベースにしてゲーム作ってるんですが、
やっぱりクラスを使わないとできることが限られてしまうワケで。
次回作にはちゃんとクラスで実装して、
もう少しいろいろできるコアを作ろうと思ってます。
|Д`)。o (newしてdeleteするだけなのに出来ないチキンな漏れ…。
コンパクトで可読性高くて、助かります。勉強させていただきました gamdevうpろだを使う手があるのかーそーなのかー
172 :
162 :04/01/30 07:28 ID:PNE+GE9D
おはようございます。
>>165 うわー、ありがとうございます。これから穴があくほどじっくり読ませてもらいます。
newもdeleteも基底クラスでメモリ管理クラス作っちゃえばよし。 こいつらの関数は派生するからサブクラス側でも使える。 固定サイズの作業領域を用意するなどのことは簡単
シューティング作ろうと思ってシューティングツクール95導入しようかと考えたんだが・・・ だめぽ・・・_| ̄|○ 参考サイトとかそこらにあるゲーム見て回ったんだが・・・ 弾幕作れない(最大敵弾数が低い)上に妙に重い・・・ おとなしく他のもの使おうと思います・・・
VC++使え
176 :
老人 :04/01/30 11:15 ID:ju7uiRkE
最近はVBやC++から入門した人が多いみたいだけど、みんな授業でやってるから?
>>170 >なんてゆーか、動的メモリ恐怖症なんです(((´Д`;;)))
つか、ゲームループ中での動的確保は流石にやらないのが普通では?
例えばタイトル->ゲーム本編->ゲームオーバー処理みたいに状態が大きく偏移するときならまだしも、
ゲーム本編のループ内で1キャラ出したり消したりする度に一々new/deleteなんてやらんでしょ
遅かったらあとでoperator new/delete書けばいいやーなどと思いつつ まだ書いたこと無いな
俺もフリーのソフト何本か作ってて デフォのnew/delete使ってたんだけど 困ることってなかったけどね 今作ってる奴はそういうオブジェクトの基底クラスのnew/deleteを書き換えてるけど そもそも開発環境のPC性能が圧倒的だから全然変わった気がしない
>>177 オレは一々動的確保してます。
むしろ、動的確保しないで立ち回る方法がわからん・・・
作るのを途中で飽きないで最後まで完成させるための技術を教えてください。
>>182 ・完成までの工程を計画する。
・開発日誌をつける。
・ToDoリストを作る。
これだけでだいぶ違う。
最も重要なのは「仲間と喧嘩しない」かな 喧嘩してもいいけど引きずるとアウト
>>183 のは短いコードでオブジェクト管理を学べて良いね
時間管理の不備がツッコミどころかな…
まあこれを読める人ならそれくらいは自力でなんとかできるかな
>>167 は、古典的タスク管理以外はじゅうぶん真似すべき
プログラムはともかく、シューティングづくりの基礎がつまっている
>>183 adjest
予想されるキーワード: adjust
ちょっと気になった。
>>167 はどちらかというと将来エンジニアになりたい人には向いてる。
マイクロチップを自在にプログラムできる技術は重宝するよ
悪い技術ってわけじゃないからな。 C++でやることをCでやったらこうなりました、って感じかのうw 完全移植するならvfテーブル使えってことにはなるけどな。 あれに無理に固執する必要は無いってだけで考え方は大切だと思うー 確かスーパーマリオとか既にああいう感じで作られてたと聞いたことあるけどそうなのかな? だとしたら任天堂ってすげーなー。w
わしはクラスとか使わないで 配列だけでゲーム作ってるけど・・・
ナカーマハケーン
>>190-191 例えば、あるキャラのみで使う必要な変数が増えたらどうすんの?
固定長だとキャラ(=タスク?)共通の汎用のワークエリアみたいなのを増やすわけですか?
で、1キャラで大きな容量のメモリ領域を使いたいときは、
無駄にワークエリアを増やすのは無駄だから、
他のところで確保したメモリへのポインタを指すだけにするわけ?
あ、なんだか出来そうな気がしてきた・・・
最低限のパラメータで様々なバリエーションの動きをプログラムできるセンスを磨く必要があるな。 もう少しシューティングを研究してみたらいいと思う
194 :
190 :04/01/31 12:07 ID:DrBR1GMU
>>192 とりあえず、ハードの容量にも寄るけど1タスクで64バイトくらいあれば
ゲームのキャラは動かせるので、それをゲームで使いそうな分を実行時に確保。
よっぽど足りない時は2タスク分確保してそっちも使う。
使ったこと無いけど。
自機弾なんて凝らなければ、座標と移動値か向きとタイマーと耐久力くらいがあればいい訳だから、弾は16バイトもあれば十分かな。
195 :
:04/01/31 18:06 ID:oHbNCYBm
>>167 のサイト実行ファイルが無いのは不親切だな。
>>131 の者なんですが、スクリプト化っていうのは
789
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;
〜(省略)〜
という風にして配列に数値を最初に入れておいてその数値によって敵の動きを移動方向を決めれば
良いと言う事ですか?。
どのタイミングで敵の移動方向を出せば良いのだろう・・・_| ̄|○
ディレイカウンタを一個作る
スクリプト化ってのは、敵のパターンなんかを C言語でそのまま記述するのではなくて、 もっと簡単に動きを記述できる中間言語を用いることだよ
199 :
168 :04/02/01 11:34 ID:+i7W5a7t
>>196 スクリプト化は
>>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を記憶させておいて、
それに応じて行動させている。
>その言語仕様では柔軟性が無い。(敵弾は吐けないし、曲線を描く行動も、 >自機追尾もできない。) 文字列にしてa〜zにもコマンドを割り振ったりなんかしたりして。 いや言ってみただけ言ってみただけ
201 :
168 :04/02/01 15:26 ID:+i7W5a7t
>>200 その考え方で正解だよ。
ただ、コマンド数を延々増やしてると、そのうち自分でも
ごっちゃになる。すると、それなりの言語設計をしたり、
パーサー(構文解析)を作ったりする必要が出てくる。
本来の作業に加えてね。
しかし、それを実装したところで、ゲームが面白くなるとは
限らない。そもそも、プレーヤーはゲームの中を見ることが
ない。
まぁ、利点欠点を考えて適材適所ってことなんですが。
>>201 スクリプトに限らず、仕様ばっか凝り出してゲームが進まないってのは良くある罠だよね
二度ほどそれで臍を噛んでるYO なので今回はスクラッチとダウンサイジングと仕様削減を合言葉に作ってる
GAっぽいの使ってホーミングレーザー育成STGでも作ろうかな。
言語仕様がさっぱりどっきり手探りな人はRobocodeやるとイイ!! 弾回避や予測射撃の知識も身につくYO! いや、はじめからSTG向けのスクリプトを弄れ!という指摘もあるだろうけど :P
>なので今回はスクラッチとダウンサイジングと仕様削減を合言葉に作ってる というか、きっちりしようを決めて作るべし。 仕様を凝る(=拡張可能な柔軟なつくりばかり追求する)って、実は 一番重要な部分を先送りしてるだけなんだよね。 オレはやっと最近それに気づいたヘタレ…完成しないわけだよ…
作る課程を楽しむのも由
208 :
名前は開発中のものです。 :04/02/02 03:06 ID:i/GekYP5
全方向シューティング作ってて、64方位のうち0〜15方位まで画像用意して、 あとは90度回転で済ませたいんですが、画像を回転させてコピーする(Bitbltみたいに)APIってないですか? 開発環境はBCC5.5で32APIゴリ書きです。
0方位だけであとは起動時に微回転させてビデオRAMに持たせておくのもいいかもな ディザかけるなどの処理が無くてもよいバトルガレッガ程度の画質の回転ライブラリ、欲しいね
無くて結局自力描画になるからD3Dを進める訳なんですが。
素直にポリゴンで出せって。何時の時代に生きてんの?
ってちょっと日本語壊れてるな、俺。徹夜なんでゆるして。
214 :
208 :04/02/02 11:32 ID:i/GekYP5
なるほど。 色々とご意見ありがとうございます。 まあ時代遅れなのはわかってるんですが、winプログラム覚えたてなもんで… いずれはDirectXに移植したいんですけどね〜
BCC5.5ならDirectX導入に問題はないな DirectX導入による保守性の低下が懸念なら、 回転オブジェクトの描画をきっぱり諦める。 または何か適切なラッパライブラリを使い、 コーディングの幅が狭くなるかわりに見通し良い状態にする。 のがいいんじゃないだろうか。 ラッパライブラリで何が適しているかはわからないけど。elとかdxlibとかは有名だね
216 :
208 :04/02/02 15:00 ID:i/GekYP5
了解です。調べてきます〜
他人の書いたラッパを理解するより自分で書いたほうが手っ取り早かったりするんだよな(w
BCCとかだとD3DXライブラリ(D3DXSpriteもこの中)が直接使えないから 注意が必要だ(デバッグ版はDLLになってるのでそのまま使えるけど)。 いや、D3DX使わないなら関係ないけどね。
219 :
208 :04/02/02 19:35 ID:i/GekYP5
>>218 そうなんですか…やっぱBCCでDirectXは険しい道のりなんですね〜
さっき本屋にも逝ったけどVC関連ばっかりで…
「VCの機能を最大限に生かしたプログラム」しなくてええっちゅーねん。
220 :
名前は開発中のものです。 :04/02/02 22:09 ID:dlkS80ye
そんな時こそOpenGL
ABA gamesのシューティングはBCC+OpenGLだな
>>221 ABA Gamesのは(少なくともrRとかは)BCCじゃなくてMinGWな気が。
rRootageもPARSEC47もOpenGLを使ってはいるな あとのC++とかDとかはおいといて
敵を動かすのは良いけど 複数の敵を一つのグループで動かす場合は どうすればいいのかわからない_| ̄|○
>>224 編隊のこと?
俺は、編隊も1匹も同じで敵キャラの出現タイミングと出現場所を書いたデータファイルを
作成してステージのはじめに読み込むようにしてた。
これが正しいかわからんけど。
>>225 のように、それぞれはバラバラでも、同じ法則で動いていれば、
結果的に群れてるようにも見える。大往生4面雑魚とかはそんな感じだろう。
一方、グラディウスで雑魚が全滅したときにアイテムが出るが、これは
複数の敵をグループとして管理すると実現しやすい。
グループリーダー(実体はなく、アイテムを出すだけの役割)に
一匹一匹が「やられましたー」と報告して、最後の一匹がやられたらアイテムを出す。
リストで管理して削除していくのが一般的かな。
いきなり複数のグループを扱おうとする前に
まずは単純に画面内の敵すべてを1グループとして
敵全滅判断の処理を組んでみると、わかりやすくていいかもよ。
そういや回転といえば、ケイブのやつとかはちゃんと光源の方向を考慮した回転 パターンを用意してない? 達人とかビッグコアみたいに真上(真横)から光を当てたような、真ん中が明るく エッジが暗い左右対称なデザインだと、回しても違和感が無いけど、今となっては PC猿人のゲーム みたいで貧乏臭く感じるんだけど。
>>228 3Dでモデル化したやつから2D画を起こしてるんじゃなかたっけ?
手法は違えど角度毎に別な画を全て用意するというのは古典的(かつ効果的)な手法だよな
よく2D絵を回す為にD3Dで2D絵を回転とか言うヤシ見かけるが、あらゆる意味でセンス無えと思う
ケイブはプリレンダですな > D3Dで2D絵回転 プログラマ的視点から言えば正常じゃねーの? うちでも、立体感ない回転させた日には、ドッタさんが腹立てて 「回転パターン書く!」とか言い出します。
バトルガレッガだってD3Dで2D回転させるのと大差無い絵でしょ 素人作品はむしろモデリングやドット絵がボトルネックになっているもののほうが多い
プログラム的に回すとしたらレイフォースのレーザーみたいな奴だろうね。 まぁポリゴンならプログラムで回せて光源も正しく処理されるわけだが
233 :
208 :04/02/03 22:09 ID:7faPxv3Q
とりあえず今は64枚全部書いて一通り完成まで持ってきます(^^;) 色々調べたら、OpenGLはLinux上でも動くっぽいのでどうせVC++を持ってないならOpenGLにしようかなとも考えてます。 まだ大分先のことになりそうですけどね…
シューティングゲーム(仮)だっけ?フリーのやつ。 あれなんか、WAVの爆発音を重ねるのが重くなるからか、 「どかーん」というWAVと「どかどかーん」というWAVを用意して 複数の敵を倒したときは「どかどかーん」を鳴らしてる。 けっこう力技の方が一般的なんだよね。光源の2D化とかも。
>>229 ドット絵1枚描くよりも、プリレンダリング用のモデル1つ用意するほうがコストかかるじゃろ。
ちゃんとしたデザイナーさんがついてて今風の絵にするならともかく、
古典的な2Dゲーではグリグリ回してもあまり問題ないケースが多いと思われ。
まあ、光源の方向が決まってる絵をむやみに回すなってのは基本ではあるわよね。
あと昔のハードに必ず載ってた左右/上下反転も、今では使えないケースのほうが多い。
16色時代ならともかく256色のドット絵で要塞のような大型物体を 3D使わないで動かして、なんて発注されたら逃げたくなるが…。
>>232 レイフォースのレーザーも全部キャラクタで持ってますが…。
そんな裏事情俺らは知らん。
>>235 3Dモデル1つ用意すればあとは32方向分でも64方向分でもすぐに用意できるワケだが
モデルを起こせる環境さえ整ってればむしろこちらの方がローコストなんだよ
240 :
235 :04/02/04 05:24 ID:ijYeRi9Y
話が通じてないなー。 あたしゃ、(回転可能な)ドット絵を1枚描いてそのまま回転させるのと、 モデル1体作ってそのまま回転させるコストを比較してるんであって。
>>239 そうだね。
例え一枚でも規模によってはモデリングしたほうが楽なこともある。
ただ、手作業の擬似3Dには別の味があるので、一概に比較できないけど。
242 :
241 :04/02/04 05:27 ID:2ZZdt/7K
あら、タイミングいいなw>240氏 まあ書いたとおりだが。
243 :
235 :04/02/04 06:24 ID:abwzumam
>>241 > 例え一枚でも規模によってはモデリングしたほうが楽なこともある。
それは認める。
というかなんだ、前処理で回転パターンを生成するにせよ、ハードウェアの回転機能を使うにせよ、
手描きの一枚絵をそのまま回転させてるゲームは山ほどあるわけだ。
そりゃいまどきの市販ソフトの映像クオリティだと流行らんけどさ、
誰もがそういうの作ってるわけでなし、モデラーや鬼のドッターを用意できるわけでなし、
個々の制作者の事情を無視して、あらゆる意味でセンス無えとかってのはどうかと思うわけよ。
俺はクロノトリガーのタイトル画面好きだぜ。関係ないけど。
244 :
241 :04/02/04 07:19 ID:2ZZdt/7K
まあ確かにそうね。 適材適所と言っても常に適材が用意できるわけじゃなし。 2D3D両方のスキルを持ってないと比較は出来んわけだし。
そこでレリーフテクスチャを使ってかいt(ry ネタです。突っ込まないように
ヴィジュアルにセンス無くてもええやん、面白ければ
あくまで人的リソースが不足しているプロジェクトの苦肉の策と捉えるべき>1枚絵の回転 少なくとも手抜き目的以外で積極的にやるもんではない
>>245 バンプマッピングでそこはかとなく立体感を出すとか!
250 :
名前は開発中のものです。 :04/02/04 12:05 ID:vcRDEO44
同じ絵で光源だけ一周させた絵たちを角度ごとに呼んで、その角度で回して表示するのは?
>>250 それだと余計に手間がかかるだけじゃねーの?
光の角度一回点分の絵を全て用意した上で更にソフトで回転処理?
いっそケイブ方式の方がラクのような気がする
真上から見た絵を書くならそれでいいんだろうけど、 斜めだと使えないね。
メモリ問題 CPUコスト問題 製作コスト問題 クオリティ問題 宗教の問題なのかね?
パルスターも忘れないでねん
>>248 1枚絵をソフトで回転させて、ドット修正もなしに使うって
ことだよね? たしかにそれじゃスーファミレベルだな。
漏れが昔2Dゲー作った時は、ドッター氏がソフトで回転させたのを
手修正してくれた。久々に連絡取ったら、彼は携帯アプリやってる
らしい…。
フォントは環境によって有る無しが変わるからな。 VAIOで作ったヤツに使ったフォントはその機種にだけ入っていたフォントなので 修正に苦労したよ。
マイナーかも知れないけど 任天堂のスターフォックスタイプの3Dシューティング作ってる人居ませんかね?
スペハリのパロを製作中。 あの独特の疑似3D感をGLで出すのに苦戦してます。
261 :
名前は開発中のものです。 :04/02/05 18:54 ID:yfmjYTKa
おっ、いいねえスペハリ。 あの市松模様をやるわけね。 自分もポールポジション的コースの再現に凝ったことあるよ。
ラスタースクロールを使った擬似3Dのカーブの表現ってこtかな
う〜んと、シューティングにはタスクを使えって言われたのですが タスクってなんなんですか?
タスクを使わない場合はどうなるんでしょう? 「タスクを用いない作り方」はいかにも悪例のようですけど
266 :
名前は開発中のものです。 :04/02/06 23:15 ID:XUqqah8e
>253 メモリコスト問題 CPUコスト問題 製作コスト問題 クオリティコスト問題 コストの問題のような気もします。 MEMORY < CPU < QUALITY < PRODUCTION
このスレのみなさん、当方STG好きなのですが、 みなさんがんばってください!!力になれないけど 応援します!プログラミング出来たらおれも作り手ー
応援はいらん!作品でしめせ! 新作を見せ付けられることが、製作者の燃料だ!!
煽りとかじゃなくて真面目な話し、やはりシューティングの演出に美少女キャラは 必須っすかね? 同人作品全般、並びにシューターサイトを眺めてみると、その嗜好は 明かなので、そのあたりのクオリティが低いと認知されにくいのかなぁと。 このスレの多くはプログラマさんだと思いますが、オブジェクトや音楽以外の 要素をどのくらい重要視されてますか?
好きなものを好きに作るのが一番良いのでは? 売れると思ったら美少女でもカッコいいメカでも出せばいいでしょうし。 いらないと思ったら出さなきゃいいだけだし。 同人なんで、自由にやりましょうよ。
なんでシューティングに美少女キャラが出るんだろう 頭おかしいんちゃう?
272 :
269 :04/02/07 01:47 ID:O8A0WUto
んー、何でシューターと2D美少女は相性がいいんでしょうかね? 私も知りたい。
>>269 同人で美少女キャラを入れてる人は、自分が入れたいから入れてるんじゃないの?
ベツにそれが必須かどうかなんて考えてないと思われ。
少なくとも自分は、STGが遊びたいのであって、美少女ゲームが遊びたいわけではないので、
STGとして面白ければどっちでもいい。
昔からゲームやってる層が多いのでオタクな趣味として重なるんでしょう。 そうじゃない人もいるでしょうけど。
兄貴ばっかの某シューティングみたいなのじゃ嫌だろ? むしろ好みって人もちょっとは居そうだけど。
頭おかしいとまではいわんけど、単に物語を語る道具として
シューティングというジャンルを選んでるゲームは解せんよ
>>275 おいらはそっちの方が好きだけどな
あぁ、なんか頭が痛くなってきた・・・ なんかシューティングのソース付きで解説しているサイトとかってないものかね? なんかいまいちうまくいかないところがあるからさ
俺はケツイが…
俺もガキの頃はSTGに美少女キャラとか恥ずかしいから出すなとか思ってたなあ
>>269 他の方も書いているが、自分が必要だと思えば使いましょう。
ただ演出として美少女が有効だったSTGというと、なにかあるだろうか。
レイフォースが美少女の範囲から外れるが、有効に機能していたと思う。
他のなにかありますかね?
有効に機能してたかどうかはかなり怪しいもんがあるが、 XEXEXとフェリオスから美少女を抜いたら味気なくなるな。 気恥ずかしいがw チチビンタリカは美少女の範疇だろうか?
アーケードに限って言えば、美少女を前面にだしてるほうがマレじゃない? フリーのシューティングにもそんなに多くないような気がする。
実は俺はテングお面がw
フリーのシューティングはプログラマが無理に描いたのを見かけるけど? 逆にキャラクターがあって、シューティングが付いたみたいのも結構あるな ブレスタとか。(結果的には内容も○だったと思うが) ストライカーズは皮肉になってるのかな。 でも、キャラがうければイラストやCGなど2次創作での話題持続が期待できるね。
>>286 同人でそこまで(二次創作)狙って成功してるのなら、むしろ天晴というべき。
むろん、STG部分が面白いという大前提あっての話だが。
でも、なんだかんだで美少女っていうかビジュアルがいいと受けるよねぇ。 昔はほとんど気にしなかったけど俺はゲームでなくてもユーティリティソフトでも 見た目を重視して作るようにしてるよ。(多少性能を犠牲にしてもねw)
遊びやすさとか使い勝手が悪いのだけは勘弁
>>283 フェリオスはまだいいとしてXEXEXはどうか。
「私自らが出る!」の人はいないと寂しいが…w
ほとんどのケイブ作品の美少女はゲームと関係なく機能してるな まぁ、それを期待してる人もいるのもまた事実。
斑鳩のカガリたんは美少女扱い?
>>291 エスプのガラ婦人を忘れちゃいけません。
ケイブの割り切り方はいいな キャラクター要素がまったくウザくない プログラマさん(IKDさん?)は、シューティング部分にしか興味ないっぽいし、わかってるわ
ケイブと言えば、ほとんどの人はエレメンタルドール=パイロットだと 思ってるんだろうな。 エンディングとかも意味不明だろうし。 尤もエンディング見るような人は設定を知ってるだろうけど。
ケイブシューはIKDからの挑戦状なんです
プロギアのキャラクター要素は結構うざいけど... カプコンが入れ知恵したのか?
声無しのモードがあれば文句無かった。エスプガルーダも。 まぁ現状でもじゅうぶん許容範囲だが
怒首領蜂に声ありモードが欲しかった 死ぬがよい
つか、ケイブは実にせこいな。 関係無いならスッパリ切り捨てるこだわりが無いものか...大人の事情ってやつ?
流れに割り込むけど SCORE SOLDIER -WINTER FESTIVAL 2004-のソースがいつの間にか上がってたから 見てみたが、すごいな。まさに富豪的プログラミング。 まあちゃんとプレイ出来て面白ければ、中で何してようが関係ないんだけど。
メンテとステージづくりが楽ならどんなプログラミングスタイルだろうがマンセーしちゃうかも
1ステージにどのくらい時間かかる?
>>301 ぅぉ!データの定義にマクロアセンブラを利用するとは
そんな手があったのか
この書き方は、元々コンシューマの人なのかな?
あまり富豪的に見えなかったのは、俺がPCどっぷりだからか?
しかし、この見事なデータ駆動っぷりは見習わねばならん
プログラミング言語のマクロ機能は字句解析器としてけっこういけるね 使い慣れてる点も強み 実は俺もシューティングじゃないけど同じ方法使ったことが
俺はパーサーまで自力で書いちゃってるけど、 かなり無駄な労力だなあと思うことはあるなあ テキストファイルから読み込めるようになれば 調整段階までいけばコンパイルしなくていいから便利
308 :
名前は開発中のものです。 :04/02/08 15:05 ID:+Z9WcfXN
現在ゲーム製作のための擬似(マルチ)タスクシステム(クラス)を作っています。 そこで質問なのですが、 1.キャラクタを動かす場合、基本的に 各キャラクタのタスクを生成→キャラクタ移動タスク(座標の移動)→ →当たり判定タスク→描画タスク という流れになると思うのですが、 当たり判定タスク・描画タスクで、 各キャラクタの座標をどのように取得すればよいか悩んでいます。 座標は各タスクのワークエリアにもっています。 今、思いつくのは、 1)当たり判定クラス・描画クラスを別に作って、 各キャラクタの座標を登録する形式にして、当たり判定タスク・描画タスクが、 自動的に処理するようにする。 2)各タスクのリストを順にたどっていき、タスクの属性(敵・味方等)を元に、 各タスクのワークエリアから座標を取得する。 です。 なにかよい方法はないでしょうか?
309 :
名前は開発中のものです。 :04/02/08 15:06 ID:+Z9WcfXN
2.タスクシステムは、双方向リストで動的にメモリを確保・開放しています。 動的確保のため、タスクの生成・削除が多いとメモリが虫食い状態になってしまいます。 静的配列を使った方がよいのでしょうか? ただし、静的に確保するためには各タスクのデータ構造は構造体で定義しなくてはいけないため、 (クラスだとポインタを使うのと代わりないため) 外部から操作される可能性がでてきてしまいます。 それを考えると、 やはりクラスを使って動的に確保したほうがよいでしょうか? 3.現在、各タスクの登録時には実行する関数を登録しています。 関数ではなく、基本となるタスククラスを継承した各クラスを登録したほうが、 コンストラクタ・デストラクタを自然に使えるので実装も簡単なのですが、 ただし、そうすると、タスク内でタスクをチェンジした場合に、 タスクの情報(座標等)を引き継ぐことができません。 そのへんがクリアできれば、クラスの利点を生かしたタスクシステムが作れそうなのですが。 長くなってしまいましたが、ぜひ、アドバイスをよろしくお願いします。
310 :
名前は開発中のものです。 :04/02/08 15:07 ID:+Z9WcfXN
2.タスクシステムは、双方向リストで動的にメモリを確保・開放しています。 動的確保のため、タスクの生成・削除が多いとメモリが虫食い状態になってしまいます。 静的配列を使った方がよいのでしょうか? ただし、静的に確保するためには各タスクのデータ構造は構造体で定義しなくてはいけないため、 (クラスだとポインタを使うのと代わりないため) 外部から操作される可能性がでてきてしまいます。 それを考えると、 やはりクラスを使って動的に確保したほうがよいでしょうか? 3.現在、各タスクの登録時には実行する関数を登録しています。 関数ではなく、基本となるタスククラスを継承した各クラスを登録したほうが、 コンストラクタ・デストラクタを自然に使えるので実装も簡単なのですが、 ただし、そうすると、タスク内でタスクをチェンジした場合に、 タスクの情報(座標等)を引き継ぐことができません。 そのへんがクリアできれば、クラスの利点を生かしたタスクシステムが作れそうなのですが。 長くなってしまいましたが、ぜひ、アドバイスをよろしくお願いします。
私の独断と偏見による意見ですが… 1.に関して。そーいう実装方法は止めたほうがいいかなぁー? 無理に複雑な実装方法を選んでプログラムを複雑にしてるという印象です。 もっとオブジェクト指向的に考えてみては如何でしょうかね。 2,3に関して。最近のPCは性能が良いので動的メモリ確保しても問題ないけども、 気になるようなら、オブジェクトの基底クラスを作って、 operator new/deleteのオーバーライドを考えてみては。
そうそう、タスクループに拘りすぎると、ろくな目にあいません。(w ゲームを実装するためにタスクループの考え方があるのです。 タスクループ上でゲームを実装するにはどうすれば?とは本末転倒。
>>308 俺も昔同じようなところで悩んだな。
結局、良い方法思いつかなかったけど。
1の当たり判定は、全てのキャラ移動→一括して当たり判定
ってのをしていた。そうしないと変な判定するんで。
2は、結局動的で押し通した。その際になるべく、
虫食いにならないようにタスクの生成順番と
削除のタイミングを注意した。
デバッグ用途も含めて、new/deleteはオーバーライドしてたけど、
タスクごとのオーバーライドはしなかった。
やってもいいと思う。
3は、そもそもタスクの切り分け方を従来の方法と
変えてしまったんで、普通に継承して問題なかった。
実装の仕方が違うと思うのでなんとも。
314 :
名前は開発中のものです。 :04/02/08 16:18 ID:+Z9WcfXN
アドバイスありがとうございます!! やはり、汎用的なタスクシステムを作るより、 ゲームにあわせてクラスを構成したほうがいいですかね。 ただ、クラスのみを使ってつくるとした場合、 基底キャラクタクラス(敵1クラス)から派生した各キャラクタクラス(敵1−1、敵1−2等)を作るとして、 結局は、グローバルな変数(またはクラス)等で、各派生クラスを管理しなくてはならないですよね? グローバルな配列の各要素に、各派生クラスを結びつけて、 その配列を元に各派生クラスのメンバにアクセスする等でよいのでしょうか?
そんなとこかと。 俺ならclass World(=ゲーム世界全体を表すシングルトンクラス)を作って、 そいつにキャラクタを保持させる、という感じですかね。 class World { list<Character*> m_characters[NUM_CHARA_TYPES]; }; 特化させてクラス別リストを用意するとか、色々と方法はあるかと。
>>314 俺は管理タスク(クラス)を用意した。
管理タスクからすべてのキャラクタタスクにアクセスする形。
アクセスは、キャラクタタスクの先頭へのポインタだけを持っていて、
あとは、リスト構造(リングバッファ)で辿る形。
317 :
名前は開発中のものです。 :04/02/08 18:00 ID:EK///DT8
みんなアニメーションのデータ構造は どんな感じにしてる?
アニメーションと一言で言っても 2Dと3Dの違いもあれば、拡大縮小回転や口パクアニメなんかもあるわけで なんと答えていいか分からんのだが
319 :
317 :04/02/08 18:26 ID:EK///DT8
2Dのアニメーションです
とりあえずグラディウスの時代からある敵弾アニメを例にとってみようか 敵弾オブジェクトごとに、アニメ用カウンタが用意されてる 表示関数で、そのカウンタを使ってアニメ ここまでは基本だよな あとは使う言語によるかな。
2Dでアニメーションというと普通のキャラクタアニメーションでそ? 悩むところではないと思うんだけど。 RPGツクールみたいに32*32限定でいいならソーステクスチャを32*32で区切って左上から番号振る。 アニメ順序にあわせてIDを配列で並べて、ついでにアニメ速度とかを定義とかすればいいし。 汎用性持たせるならソース上の矩形ごと並べてしまうとかでもいいし。
テクスチャ1枚に複数絵を用意してUVで切り替え
グラフィックデータ(テクスチャなりサーフェイスなり)は どこに配置させてどうやって参照させるのが賢いのだろうか… いつも悩んでます。
324 :
名前は開発中のものです。 :04/02/08 20:35 ID:+Z9WcfXN
>>316 自分もタスククラスとタスクマネージャークラスを作っています。
たしかに、先頭のタスクのアドレスを取得すれば、
リストをたどっていけますが、
どうもいまひとつの気がしてやってませんでした。
ようは、
1.先頭タスクのアドレスを取得して、
2.次のリストへのポインタを取得する、を繰り返す
ってことですよね?
結局、外部からタスクの内部を参照するわけであって…。
総当りの上に、書き換えられる可能性もあるわけですよね。
そう考えるとやっぱりクラスを使ったほうがいいのかぁ。
325 :
名前は開発中のものです。 :04/02/08 20:37 ID:+Z9WcfXN
以上をふまえた上で質問です! もしクラス版のタスクシステムを作ったとしても、 (クラスを登録して、タスクを生成・削除・チェンジするタスクシステム) 座標計算と当たり判定・描画処理を独立してやることを考えると、 (座標計算と判定・描画を同関数内でやると、すりぬけ、が発生するため) 関数版のタスクシステムと同じく 1.座標情報等のデータをグローバルで持つか、 2.各クラスのアドレスをグローバルで持って参照するか しないといけないわけで、 タスクシステムでつくる意味がほとんどないわけですよね? そう考えると、タスク自身のワークエリアをなくして、 データ類はグローバルな配列で別個で管理するほうがいいんですかね? 単なる関数ポインタを使ったテーブルジャンプみたいになってしまうけど。
326 :
名前は開発中のものです。 :04/02/08 20:50 ID:+Z9WcfXN
ttp://www.interq.or.jp/black/minami-m/ ↑にクラスを使った基本的なタスクシステムがありますが、
これって、当たり判定・描画処理を各タスクごとに行ってるんで、
すりぬけや、思わぬ動作を引き起こす可能性がありますよね。
そう考えると、一番いいのは、
各クラスを割り当てた管理配列等を、forループ等で処理したりでしょうか??
なんかわけわからなくなってきました(T_T)
>>324 書き換えられる可能性ってのはないと思うけど、
そもそも書き換えられて困るから、一括処理な訳で。
リスト構造にしてる意味は、動的生成な訳で、
それをやめるなら、配列でいいかと。
グローバルにする意味はあんま感じないな。
Singletonって意味ならそうだけど。
>>326 それ読んでないけど、処理が終わったタスクとのみ
当たり判定を行っていけば、タスクごとの当たり安定でもできると思う。
>>324-326 迷っておりますなw
まず一つ言うが、
>>326 のタスクシステムはCのタスクシステムよりうんこだから無視せい。w
真にCのタスクをC++に移植するならば、
ワーカークラスのインスタンスポインタとメソッドポインタのペアをリスト化しなきゃならん。
個人的には初心に戻ってオブジェクト指向的に考えることを勧めるよん。
キャラクタはどんな情報をもち、何をするのか?→位置情報を持ち、移動や描画を行う
class Character {
Vector2 m_pos;
public:
Vector2 getPosition() { return m_pos; }
virtual void move() = 0;
virtual void render() = 0;
};
キャラクタのリストは誰が保持するのか?→ゲームの世界が保持して管理する
ゲームの世界はどんな機能がある?→世界の時間を一定量進めるとか、世界全体を描画するとか
class World {
list<Character*> m_characters;
public:
updateOneFrame() { for(...); it->move(); }
renderScene() { for(...); it->render(); }
};
こんなんでよいではないか、と思うけどネェ。
って当たり安定ってなんだよ orz... あ、あと、当たり判定に関して言えば、 ソートとかして高速化は必須な気がしてきた。 それ考えると、配列のがいいかもしれないな。 俺はそこまでせずに作るの辞めてしまったけど。
331 :
名前は開発中のものです。 :04/02/08 21:32 ID:+Z9WcfXN
>>327 管理タスクからタスクにアクセスする処理はどのようにしていますか?
参考にさせてください。
先頭タスクのから、順にたどっていくんですよね?
各キャラの移動タスクは独自のワークエリアに座標を書き込むとして、
当たり判定タスク等で、
Temp = 先頭タスクのアドレス;
while(Temp <> null);
{
Work = (EnemyRecord)Temp->WorkArea; //敵パラメータ構造体にキャスト
(各種処理)
Temp = タスク->次のタスクへのポインタ;
}
みたいな感じでワークエリアを順に取得して処理してるのでしょうか?
332 :
名前は開発中のものです。 :04/02/08 21:44 ID:+Z9WcfXN
>>328 ですが、各タスクはタスク内で別の関数にチェンジすることを考えると、
タスク内での判定処理等はあまりよくない方法のような気が…。
実行優先度を自ら把握して管理することができれば問題ないでしょうけど。
>>329 用語がいまひとつわかないです(>_<)
実は、Delphiなんです ;>_<;
ゲームのためのシステムの構築となると、
参考資料が少なすぎて…(泣
やっぱりCですかね…。
CはDOSのTurbo C++でとまってます(--;
>>331 管理タスクがタスクにする状況って例えばどんな時ですか?
334 :
名前は開発中のものです。 :04/02/08 22:01 ID:+Z9WcfXN
>>333 316に対するレスだったんですが、
つまり、キャラの移動・当たり判定・描画を例にとると、
タスク処理の流れは、
1.移動タスク
(移動タスクはキャラクタ数分、存在し、
各タスクは自分のワークエリアに座標を書き込む)
2.あたり判定タスク
3.描画タスク
となると思うのですが、
移動タスクでは、ワークエリアに座標を書き込みます。
そして、当たり判定タスク・描画タスクでは、各キャラの座標を参照して処理するわけです。
リンクをたどるということですが、
たぶん、次のようなことですよね?
>>332 ごめん、俺はDelphi全然知らんから文法に関する記述はなんとも言えんわ。
とにかく、タスクは目的ではなく手段なんだから、それに捕らわれてはいけないよん。
336 :
名前は開発中のものです。 :04/02/08 22:07 ID:+Z9WcfXN
各タスク(TCB)のアドレスがわからないと、ワークエリアを参照できないので、 1.管理タスクが、登録されている一番最初のタスクのアドレスを返す。 2.そのアドレスをたよりに、次々とタスクをたどっていく。 316のような方法にするには、 まず、先頭タスクのアドレスがわからなければ、リストをたどれません。 タスク管理クラスが先頭タスクのアドレスを返す処理をしないといけないわけです。 えーと、つまり、 外部から各タスクのワークエリアを参照するには、リストをたどる必要があるわけで、 そのリストのたどり方の実装の仕方を聞きたかったわけです。 わかりにくい説明ですね(>_<)
337 :
delphian :04/02/08 22:15 ID:+Z9WcfXN
ややこしいので暫定的に名前つけます(--;
>>335 329のクラスの読み方は、
class Character { //キャラクタークラス
Vector2 m_pos; //位置情報を持つ型の変数
public:
Vector2 getPosition() { return m_pos; } //位置情報を返すメソッド
virtual void move() = 0; //オーバーライドして使う。移動メソッド
virtual void render() = 0; //オーバーライドして使う。描画メソッド
};
でいいでしょうか?
このクラスを継承して、各キャラクタのクラスを作るんですよね?
338 :
delphian :04/02/08 22:18 ID:+Z9WcfXN
>>335 class World {
list<Character*> m_characters; //各キャラクタクラスのリスト
public:
updateOneFrame() { for(...); it->move(); }
renderScene() { for(...); it->render(); }
ここで、for(...); it->move(); 等がわかりません。
delphiとの文法の違いによるせいだと思いますが。
各キャラクタクラスのmoveメソッドをすべて呼び出す、
ということなのでしょうか?
>>337 あと、俺なら、CharacterクラスはTaskクラスから継承させるけど、
この辺は、実装次第かな。
>>338 updateOneFrame() { for(...); it->move();
は、331と同じ意味です。
そもそも331でキャストする必要はないけど。
何か古いタスクシステムに頭が固まっているような。
>>337 は、合ってます。
>>338 は、ごめん、そこ面倒でかなり素っ飛ばしてた。
STL知ってることを前提で書いてたので…。正確にはこんな感じ。
class World
{
list<Character*> m_characters;
void moveAllCharacters() {
for( list<Character*>::iterator it = m_characters.begin(); it != m_characters.end(); it++ ) {
Character* target = *it;
target->move();
}
}
void checkCollision() { /* まあ適当に… */ }
public:
void updateOneFrame() {
moveAllCharacters();
checkCollision();
}
};
ちと具体的過ぎてアレだが、俺のプログラムは大筋でこんな感じです。
蛇足だけど、俺はCharacterクラスはTaskクラスからの派生じゃないと思ってるよ。 何故ならタスクとは「誰が何をするのか」ということで、キャラクタは仕事ではなく"誰"の部分。 だからCのタスクリストをC++のソースで移植するとしたらこうなるんじゃないかな。 class Worker { }; typedef void Worker::(*Work)(); // Workerクラスのvoid method(); の形のメソッドポインタの型=Work class Task { Worker* m_worker; Work m_work; public: void execute() { m_worker->(*m_work)(); } }; class TaskList { list<Task> m_tasklist; public: void executeAllTask() { for(...) it->execute() }; //また手抜き }; タスクリストは仕事を保持しているだけで、オブジェクトのリストは保持していない。 全ての敵キャラや敵弾を参照したいときにタスクリストを使うとおかしな話になるのは、 この辺を混同してるのが原因かなーと思ったり。
その通りなんだが、 その誰が必要ない部分をタスクとして管理するわけよ。 そのための継承。 全てをタスクでするわけではないよ。
343 :
delphian :04/02/08 23:16 ID:+Z9WcfXN
>>340 STL、、、
見かけたことはありますが、よく知りません。
イテレータってのもよくわからない…。
ちょっと調べてきます。
ようは、つまり、、、
タスクシステムを持ちいらずとも、
リストとクラスを使えば、似たようなことができるんですね!!
しかも、この方法はオブジェクト指向という感じがします。
1.キャラクタークラスを作って、それをオーバーライドして、
各キャラクターをつくる。
キャラクターごとの動作、描画登録を記述する。
2.管理クラスを作って、
そのクラスがそれぞれのキャラクターなどをまとめて管理する。
(各キャラクタの移動メソッドと描画メソッドを呼び出す)
ということですね?
自機弾タスクの優先度を0x1000〜0x1FFF、敵タスクの優先度を0x2000〜0x2FFFの範囲に生成すると決めておいて TCB* tama = 一番先頭のタスクのアドレス; while( tama->prio < 0x1000 ){ tama = tama->next; } TCB* enemy = 一番先頭のタスクのアドレス; while( enemy->prio < 0x2000 ){ enemy = enemy->next; } while( tama->prio <= 0x1FFF ){ while( enemy->prio <= 0x2FFF ){ GameObject* t = (GameObject*)(&tama->work); GameObject* e = (GameObject*)(&enemy->work); if( hitcheck(t->rect,e->rect) ){ t->hitflag = true; t->hitflag = true; } enemy = enemy->next; } tama = tama->next; } とか考えているのですがどうでしょうか?>334&>ALL
345 :
delphian :04/02/08 23:31 ID:+Z9WcfXN
>>344 やはり、そのように優先度で管理する方法が一般的ですかねぇ。
自分のタスクシステムは属性フラグを用意してあるので、
その属性フラグを使って処理することもできます。
このようなタスクシステムだと、
タスクのデータを保持したまま、
別のタスクにチェンジできるのがいいですよね。
>>340 >>341 のような方法もオブジェクト指向という感じでいいですが、
チェンジタスクができないのが、唯一の難点のような気がします。
キャラクタごとにクラスを継承して作れば対応できる気もしますが、
どうなんでしょう。
二重ループのenemy = enemy->next;辺りがおかしいですね それからこの板は古典的タスクシステム=悪みたいな風潮があるようなので 趣味だけでひっそりやっていくことにします さようなら
>>342 それは主語がない(クラスに属さない)処理が存在する、ということでいいですかね?
>>343 そういうことだと思ってます。タスクが目的ではなく手段だってのはそういうことです。
>>344 衝突判定中のenemyポインタを保存しといて各弾についてenemyを復元しないと駄目よん。
俺は古典的手法も悪くないと思うけどね。実用になればいいんで。 より直接的である、という古典的手法のメリットと富豪プログラミングの相性も良い。 古典的手法を飽きるまでやるのも入門に向くし。 飽きたら抽象度の高いものでちょっと頭をパズル向けに使って楽をすればよい。 いきなり理想論でたたみかけて初心者を煙に巻くのはオタクさんの悪い癖だ。
349 :
delphian :04/02/08 23:53 ID:+Z9WcfXN
とりあえず、古典的タスクシステムにしろ、オブジェクト指向のタスクシステムにしろ、
ようは、リストをたどって、各タスク(各クラス)を順に処理していくってことになりそうですね。
それで、当たり判定まではよいとして、描画でどうするべきか…。
描画は、同じく順にリストをたどって各キャラを描画していけばいいと思うんですが、、、
たとえば、当たり判定により自機と敵が衝突した場合、、、
古典的タスクシステムでは、自機タスクなり敵タスクなりを、
当たり判定のときに、チェンジタスクで爆発タスクに切り替えればいいですよね??
と同時にフラグを立てて、
描画タスクでは、フラグによって描くキャラを変えればいい、んですよね?(^^;
>>340 のようなシステムの場合は爆発等に移行するにはどうすれば…
>>345 >>340 のは出来ないね。オブジェクトの状態をオブジェクトの内部で保持してオブジェクトの内部でswitch。
>>341 のは古典的タスクをC++に移植しただけなのでタスクチェンジできるよ。Task::m_workにメソッドを代入。
>>348 全くどの発言内容もご尤もだと思います。俺オタクだな…
ただこの方法が一番初心者に向いてると思うから書いてるわけで。
タスクってそれ自体はわかりやすいけど実際にコード組むと混乱の種にならない?
(実際に最初の質問の種はタスクから発生してるものだと思うし)
>>349 オブジェクトに衝突したことを知らせるためには、
オブジェクトにOnConflictという関数を持たせればOKだよ。
衝突したら、例えばこんな感じで。
enemy->OnConflict( shot );
shot->OnConflict( enemy );
後は各関数内で適当に状態移行。
351 :
delphian :04/02/09 00:14 ID:tFE9u6fe
>>341 あ、これはもしかして、次のようなことですか!?
Workerクラスを継承して、各キャラクタクラスを作る。
Workは各キャラクタクラス内で使う処理メソッド。
これらを含めてタスククラスとする。
Workerクラス内で変数等を宣言、各処理メソッドを必要数分書く。
処理の変更の際には、m_workのみを書き換えれば、
変数等を保持したまま、処理のみを変更できる。
実行、処理の変更等は、TaskListクラスが管理する。
ということでしょうか!?
文法がdelphiと違うので、はっきりとはわからないのですが、
もしかしてそういうことですか!?
>>351 大体合ってる。古典的タスクを使ってるなら馴染みやすいと思うんだけど…
補足するとTaskはTaskListに登録する際にハンドルとして受け取るような感じかな。
んでTaskクラスにsetWorkMethodが付くから処理の変更はTaskクラスでやります。
TaskListクラスにsetAllTaskWorkMethodみたいのを付けてやれば一気にEndとかもできる。
あと
>>348 にも言われちゃったのでどのやり方がいいとか言うのはやめることにします…
354 :
delphian :04/02/09 00:33 ID:tFE9u6fe
>>352 なるほど!!
クラスを使ったタスクシステムはできないと思ってたのですが、
こんな方法もあるんですね!!
この方法なら、タスクが自分で自殺とかもできそうですね。
2ch.には初めて書き込んだのですが、
詳しく教えていただいて、ありがとうございます!!
Delphiでも応用できそうなので、ちょっと一から作り直してみます!
あ、
>補足するとTaskはTaskListに登録する際にハンドルとして受け取るような感じかな。
この一文がよくわからないのですが、これはどういう意味でしょうか??
ややこしいこと言ってしまった…。 list<Task>っていうのはTask構造体(=ポインタではない)のリストなので、 そのリスト上のTask構造体のポインタをハンドルとして受け取るということです。
356 :
delphian :04/02/09 00:45 ID:tFE9u6fe
>>355 なるほど…。
ちなみに、タスクが自殺やチェンジする場合、全タスク実行後に処理したいので、
(削除済みのタスクへの不正なアクセスを防止するため)
その場合、Taskクラスではフラグを立てるだけにして、
TaskListのexecute時に削除等すればよいということですよね!
そういうことになります。 うーん、ぶっちゃけてC#のDelegateですね。
358 :
delphian :04/02/09 00:58 ID:tFE9u6fe
>>357 typedef void Worker::(*Work)(); // Workerクラスのvoid method(); の形のメソッドポインタの型=Work
delphiで↑のような型の宣言ができるかどうか…、
それが一番の問題ですが、これさえできそうなら、
クラスを使ったタスクシステムができそうです!
タスクシステムを使わない、クラスでの処理の構成もわかりましたし、
なんとか、今よりはスマートになりそうです。
また、わからなくなると思いますが、
そのときはアドバイスもらえればと思います。
今日は寝ようと思います。
また、結果報告します!
ありがとうございました!!
1日でスレすすんでてびびった
うちのは
>>340 風。
case文だらけが嫌になって、stateパターンを導入するも、
溢れ返った状態を記述しきれず泥沼化。
リファクタリングしようと、共通部分を is-a、 has-aでくくりだして、
フラットな状態遷移マシーンから、複雑な階層化状態マシーンに。
把握しきれずに、頭おかしくなりそうになった。
古典的タスクも考慮して組んで見たい今日この頃です。
>>354 Delphi使いはC++も読めると、世界が広がりますよ
考えようによっては、(C++ + Delphi)分の情報が得られるわけで
>>358 すれ違いになっちゃうけど
Delphiだとこうかな?
type
TWorkerMethod = procedure of object; // クラスの procedure Method(); の形のメソッドポインタ型
TTask = class
FWorker: TWorker;
FWork: TWorkerMethod;
:
クラスのメソッドへのポインタは、"of object"をつけてね
361 :
delphian :04/02/09 07:26 ID:tFE9u6fe
>>360 ありがとうございます!
これで、できそうです!
>>350 追加で質問です。お願いします。
ちなみに、
>>341 の方法で実装したとして、
各クラスごとにタスクにあたる各メソッドを書くので、
リストへの登録・チェンジができるのは、登録したm_workerとそのクラス内のメソッドのみになるってことですよね?
あ、m_workerの登録を変えれば、他のクラスのメソッドにもチェンジできるのかな??
でも、それだと、変数が保持されないか…。
各クラスで共通で使うタスク(メソッド)があるときは、各クラスごとにメソッドをかかないといけないわけですよね?
登録クラスとは別クラスのメソッドを呼ぶ必要はありません。
クラスのメソッドは所属するクラスに密接に関わる関数だから。
もし別クラスのメソッドを呼ぶような必要がでてきたのならば、
それはそのクラスにあるべきメソッドではないということです。
それから各クラスで共通に使うメソッドがあるならば、それは基底クラスで定義します。
タスクにメソッドを登録するときは基底クラスのメソッドを登録すれば問題ありません。
余談ですが341の方法は基底クラスの仮想関数を登録すると派生クラスの仮想関数が呼ばれます。
ややこしいので↓を見て実行すると分かりやすいかも。こちらもソースコードがややこしいことになってます…
http://www.emit.jp/prog/prog_cpp0.html
363 :
Delphian :04/02/09 12:48 ID:ayzrG5Mj
ということは、
>>341 の方法では、共通のタスクは使えないということですか?
共通の関数を仮想関数として基底クラスに書いたとして、タスクリストに登録ししても、
実際、呼ばれるのは派生クラスの仮想関数ということですか?
つまり、派生クラスの仮想関数を登録するのとかわらない、ってことですか?
共通のタスクを使うにはどうすればいいんでしょうか?
質問だらけですみません(>_<)
基本中の基本だけど、基底クラスで仮想関数を定義しても 派生クラスでオーバーライドしなければ基底クラスの関数が呼ばれるよ。 というか初めから基底クラスで仮想関数として定義しなければ 派生クラスでオーバーロードしても派生クラスの関数は呼ばれないよ。
365 :
Delphian :04/02/09 13:57 ID:ayzrG5Mj
ぁ、そうですよね。 オブジェクト指向を勉強しはじめて、一ヵ月ならないもので(>_<) ちょっと混乱してしまいました。 仮想関数をオーバーロードすると派生クラスの関数が呼ばれて、 仮想関数として定義しないと、基底クラスの関数が呼ばれるんでしたよね。
どうでもいいけどオーバーロードとオーバーライドは別物だよ googleで双方の単語入れて検索してみればすぐわかる
367 :
Delphian :04/02/09 15:48 ID:ayzrG5Mj
ぁ、すみません、間違えました。 全然違いますね。 とりあえず、帰ったら今日まで覚えた知識でクラス版タスクシステムをつくってみようと思います。
どうでもいいんだけどさ、ドット絵で透明感(背景が透けて見える等)を出すことは出来るの?
>>365 Delphiなら virtualなメソッドを、派生クラスでoverrideつけないで再定義すると、
警告出るからすぐにわかるよ
>>368 半透明つかえないのが前提だよね?
VSYNC同期前提でよければ、抜き色で市松模様にして交互に表示する
もしくは、単純に表示/非表示を繰り返す
同期取らなくてもそれっぽく見えるけど、ちらついてしょうがない
表示/非表示は楽な割に高い効果があるね 場合によっては、赤 青 非表示 のように 補色と非表示を組み合わせて 輝きのある半透明感を出すのもいい。やりすぎるとドギツイだけになるので注意 市松模様もそのうちやってみてえなあ
点滅は処理落ちに弱い。 素直にアルファ使おうよ
372 :
Delphian :04/02/09 19:31 ID:8wpz1hab
type TWorker = class end; type TWork = procedure of object; //タスククラス type TTask = class protected FStat: TStat; //タスクステータス FPrio: Word; //処理優先度 FDelay: Cardinal; //待機フレーム数 FPrev: TTask; //前タスクへのポインタ FNext: TTask; //次タスクへのポインタ FKill: Boolean; //キルタスクフラグ FChng: Boolean; //チェンジコールフラグ FWorker: TWorker; FWork: TWork; FAttr: Word; //タスク属性(ユーザーが自由に使用できる) public constructor Create(Worker: TWorker; Work: TWork); destructor Destroy; override; procedure Execute; end;
373 :
Delphian :04/02/09 19:34 ID:8wpz1hab
>>341 >>372 こんな感じになったんですがどうでしょうか?
タスククラスにワーカークラスを登録する場合、
あらかじめ生成したワーカークラスを引数として渡して登録したほうがいいのか、
それとも引数にクラス型を渡して、タスククラス生成の中でワーカークラスを生成したほうがいいのか、
どうしたらよいでしょうか?
次から次にわからないことが…
374 :
Delphian :04/02/09 19:53 ID:8wpz1hab
class Task { Worker* m_worker; Work m_work; public: void execute() { m_worker->(*m_work)(); } }; の部分は class Task { Worker* m_worker; Work m_work; public: void execute() { m_worker->(*m_work)(Task); } }; にした方がいいですかね? じゃないと、処理メソッドの中で自殺等できませんよね? でも、処理メソッドの中でdelete Taskとかされたらこまりますよね…
>>374 その必要はないよ。
ちなみに俺も数年前はソレと同じやり方でやってたんだけどね
タスクを登録するときタスクリストでTaskのインスタンスを作るんだけど
そのインスタンスのポインタを登録関数の戻り値としてやって、
それを各ワーカーが保持しておけば何時でも参照できるよ
376 :
Delphian :04/02/09 20:52 ID:8wpz1hab
>>375 実装の段階になると、壁にぶちあたりまくって、
タスクはやめようかと思ってきました(>_<)
登録関数がインスタンスのポインタを返すとしても、
登録したタスク(クラス)の外部では保持できても、タスクの内部では保持できませんよね?
各ワーカーの初期化関数中からタスクリストに登録すれば問題ありませんよ。
378 :
Delphian :04/02/09 21:12 ID:8wpz1hab
>>377 つまり、ワーカークラス(を継承した各クラス)のコンストラクタでタスクリストに登録するということですか?
で、ワーカークラスを生成すると、自動的に自らをタスクリストに登録するような構造にするということですか?
なんか、そういう手間を考えると、やはりクラスとリストを使ったほうがいいのかなぁ…
汎用性はなくなりますけどね…
クラスを使ったタスクシステムや、
>>329 >>341 のような方法の載った
サイトや本がありましたら、教えてください。
C++でもかまいませんので…
大体そういうことです。回りくどいですがこれには色々と理由があるんで…。 タスクシステムを辞めた理由の中にはそういうのもあります。 具体的に実装方法が載っている本のことは知らないけど、 私はABA Gamesさんとこのゲームのソースコードがいいかなと思います。 shot.cなんか読んだら、なんだ、こんな簡単なことなのか、と思うんじゃないかな。 ゲーム自体も名作なので一押し。
ってCじゃん >181がC++でやってたみたいだが、消えてるし
俺の実装方法は、タスクを処理の基本パターンとして、 親タスクから小タスクへどんどんタスクを生成して、階層上に回す。 状態はStateパターンの亜種で実装。破壊とかね。 管理は親タスクで、その管理はその親タスクで。 こんな感じの実装だったな。 利点はタスクによる処理の一貫性が得られる点と、 どの階層からでもタスクを再構築できる点。 オブジェクト指向とは相反する。 当然最良の方法でもない。
画面にNOW LOADINGとかの画像なりを表示させつつ その間にデータを読み込むというのはどうやったらできますか? 使っている言語はC言語です よろしくおねがいします
必死で考えて考えて考えたやつ→作れる すぐ諦めて訊くやつ→無理 383、内容が薄すぎる。 自分で考えたんならもうちょっと建設的な質問ができるはずだぞ
画面にNOW LOADINGとかの画像なりを表示させつつ その間にデータを読み込めば良い
自機を動かしながら、敵を動かすのと同じやり方でいいでしょ それともマルチスッドレにしたいのかな?
マルチ的手法とか、リアルタイム的手法とかいろいろ考えられるね。 NOW LOADING処理表示中に、細切れにしたデータを逐次読み込むか、データ 読み込み中にNOW LOADING処理を逐次呼び出すとか。 後者が楽だと思うけど、俺は画面処理を軸にしたいから前者の方が好きかな。
>>383 CreateFile 非同期 で検索汁
389 :
Delphian :04/02/10 12:58 ID:X/1Dxz8Q
>>379 ぁ、ワーカークラスのコンストラクタでタスクリストに登録すると、
継承したクラスごとに優先度とか変えられないですね。
そういういろいろややこしくなることを考えると、
やっぱりゲームごとにクラス作っていこうと思います。
みなさん、ありがとうございます!
390 :
Delphian :04/02/10 17:06 ID:X/1Dxz8Q
ぁ、コンストラクタに引数もたせれば、いいんですよね(;^_^A 実際、タスク使ってつくる人より、 普通にクラスを使ってつくる人のほうが多いんですかね? C++でいいのでゲームプログラミングでおすすめの本があったら、 教えてもらえるとありがたいです。 できれば中高度くらいで… 3Dものは作る予定ありません。
ああん、コンストラクタとかタスクとかクラスとか何話してんだか全然わかんないポ
動けば問題ないよ、面白ければ問題ないよ
コンストラクタもタスクもクラスもわからなくても 古典的手法でガレッガや怒蜂は十分作れるYO 本が合う人は本でやってみるのもいいと思う。 もしそれでできなくても挫けるな。 どんな泥臭い方法でも、まずは動いて遊べるゲームを一つ完成させることだ。 一つもできないうちからウダウダやってると限りある人生ムダにすることになるぜ
まず、泥臭い方法で作る。 で、もっと良い方法ないかなと模索する。 結果、タスクなりオブジェクト指向なりに行くと。 タスクに関してアセンブラと少ないメモリで少しでも すっきりした形で作ろうした結晶のひとつ。 いきなり理解しようとするのが間違っている。 オブジェクト指向しかり。
自分で問題に直面してみないと分からないことは多いからね
Cとタスクの一本槍人生。 WS→GBAと渡り歩いたら必然的にこうなったような。 しかしC++を覚えにくくなるという諸刃の剣。 結城浩尊師が御本を執筆なさる日を待っているとかいないとか。
int x[MAX]; int y[MAX]; int kind[MAX]; for (int i = 0; i < MAX; i++) { ... } こういうBASIC時代の身も蓋もない実装を、アセンブラやCで正常進化させていけば、 勝手に古典的タスクに行き着きますな。 俺も含めて、すべてのオヤジゲームプログラマが辿った道でしょう。 んでもってC++覚えたらゲームオブジェクトやらエンティティやらシーングラフやら OO的アプローチで取り組んでみると。 歴史をそのまま辿ってるので、今どきのわきゃーモンにとって効率のいい道かは…… まあ、若いんだし、回り道してみてもいいんじゃない?と思うけどね(w
399 :
Delphian :04/02/11 16:05 ID:3Fwk/VlR
>>398 とりあえず、ここでアドバイスをいただいて、
オブジェクト指向でのゲームプログラミングについて、
わかってきました。
同じキャラクタが簡単に複製できるのでよいですね!
もう一歩レベルアップしたいのですが、
それは、あたり判定、、、(?)です。
シューティングというか、アクション要素の強いものにするつもりなんですが、
どういう方法をとればいいのかわかりません。
400 :
Delphian :04/02/11 16:06 ID:3Fwk/VlR
画面は斜め上からの見下ろしタイプ(?)で、 移動とか描画のイメージとしてはボンバーマンをイメージしてもらえると、 わかりやすいかと思います。 たとえば、1キャラ32×32のサイズだとして、 1キャラ単位の移動の場合には、 (右に移動するときは、8ドットずつ描画。 1キャラサイズ分移動するまでは操作できない) キャラの座標を元に、スプライトを優先度順に描画して、 当たり判定も座標位置から処理することができますよね? (この場合、当たり判定というより、座標からのチェックですね。) これをドット単位の移動にしたい場合、 どうすればよいのでしょうか?
401 :
Delphian :04/02/11 16:14 ID:3Fwk/VlR
ドット単位の移動の場合には、 通常でいう当たり判定を実装すればいいのでしょうか? たとえば、32×32サイズのキャラの場合、 足元(キャラの下半分=32×16)にのみ当たり判定をもたせて、 敵・障害物にも当たり判定を持たせて、 その当たり判定によって移動の制限・敵との接触を判断するような形でよいですか?
ある程度やり方が想像ついているのなら、聞く前にまず組んで見ろ。 それで、何か問題があれば聞きに来るようにしてみては。
403 :
Delphian :04/02/11 18:54 ID:3Fwk/VlR
>>402 すみません(>_<)
すでにやってみてわからなかったので、質問しました。
>>401 の方法でたしかに移動はうまくいくんです。
しかし、描画がうまくいかないんです。
たとえば、障害物があって、
その下に自キャラがいる場合は、
障害物にかぶって自キャラが手前に描画されます。
しかし、障害物の後ろにいる場合でも、
障害物にかぶって自キャラが描画されてしまいます。
この場合、どのように描画していけばいいのかわからないんです。
障害物を2つのスプライトに分ける、以外に何か方法はありますか?
それとも、障害物を優先度の違う2つのスプライトにわけるしかないんでしょうか?
それによってはだいぶかき直しがでてきてしまうので、
なにかよい方法があればと思って聞きました(>_<)
具体的にどう組んでるか判らないが、一番単純な方法は 自分も含めて奥から順番に並べていく。
405 :
Delphian :04/02/11 19:13 ID:3Fwk/VlR
>>404 できました!!
ありがとうございます!!
原因は、自キャラの描画優先度が常に最優先の順位になっていたためでした。
うーむ…。 何故タスクを使っているのかということを知らずに、タスクを使っていたのではどうしようもないよ。 タスクを使うなら使うなりにその利点とかをちゃんと理解して使わないと。
>>397 あーわたしも同じような感じだ。
いい加減Winに移行しようと思っているけど
どこから手を付けたものか。
そういや全員がパソコン用シュー組んでるわけじゃないんだな
>>407 今俺はLUNAってライブラリ(DX9版)使ってどうにかこうにかスプライトドライバらしきものは作ったってとこ。
楽することしか考えてないし。
1つのテクスチャからしか画像引っ張って来れないクソだけど。
ま、先達の足跡をなぞらせてもらうってのがいいんじゃないかと。
D3DXSpriteを使おうと思っているのだけど、半透明や加算合成はサポートされていますか? 理想としては、DirectDrawみたいにサーフェスから矩形転送で半透明や加算合成がハードウェアで サポートされている機能があればいいんだけど。 そんなやつ知りませんか?
↑のは、DirectDrawみたいに手軽な矩形転送(BLT命令)の方法で半透明や加算合成がハードウェアでサポート されている便利な機能は無いのかなってことです。
DrawPrimitive使ってスプライト描画ライブラリ作ればいいじゃん。 ゲーム作るよりは簡単だと思うが。
D3DXSpriteの話題なら、スレ1_53あたりから出てるようだね あとはdxスレが参考になるのかな 俺は直接directx触ったことないので間違ってるかも知れないが
あんまOOに拘らん方がいいと思うが
まぁ、目的はそれぞれ。 完成することが目的じゃなく、オブジェクト指向を楽しむためのシューティングプログラムであっても結構。
質問した本人の迷いが晴れて少しでも進歩してくれるなら、それでよい が…迷わせてるだけの回答もあるようだ まあ2ちゃんねるだから回答の質など低くてあたりまえなんだけどな
>>709 Lunaは導入を検討中…まあ楽にというのは同意。
別にシステムを作りたいってわけじゃないからね。
418 :
delphian :04/02/12 21:16 ID:CeQLH9bx
>>401 だめでした!!
せっかく書き直したのに…(;_;)
この方法には問題点がありました…。
障害物、自キャラ共に足元(下半分程度)だけにあたり判定を設けています。
これで自キャラが障害物の手前にいるときは、障害物に少しかぶる程度になります。
障害物の後ろにいるときは、後ろに少し隠れるようになりました。
しかし、、、マップをつくった時に判明しました…
障害物が縦に二つ並んだときはだめでした!!
画面上では障害物がつながって並んでるのに、
自キャラがすりぬけてしまいました…。
横から障害物にぶつかると、あたり判定の隙間をすりぬけてしまうんです…
障害物のあたり判定が小さいとかですかね?
それともやり方自体が間違ってるとかでしょうか…
せっかくうまくいったと思ったのに、かなり悩んでいます…
斜め見下ろしタイプにするんじゃなかった(;_;)
表示だけ斜め見下ろしにすれば良いのでは。 判定自体は平面で十分かと。 てかシューティングゲームなのか?w
420 :
名前は開発中のものです。 :04/02/12 22:37 ID:cAtxPdMd
自キャラと地形の当たり判定が問題ですよね。 自キャラの当たり判定を見た目より大きくして 壁のキャラ同士の隙間を通れないくらいにしたら。 自キャラと敵などの当たり判定は普通の大きさでするとして。
あたり判定を地形用と敵キャラ用で2種類作ればいいんじゃないだろうか。
422 :
delphian :04/02/12 22:43 ID:CeQLH9bx
>>419 表示と判定ってきりはなすいい方法ってありますか?
障害物の前に表示させたり、後ろに表示させたりするのに、
平面にしちゃうと障害物の後ろに隠れるように表示できない気がするのですが…
ちなみに移動はアクションっぽい感じで、
敵の出現とか攻撃方法がシューティングっぽい感じです。
アクションシューティング!?みたいな感じを予定してます。
423 :
delphian :04/02/12 22:48 ID:CeQLH9bx
>>420 >>421 2種類ですか、なるほど。
でも、判定が2種類だと重たくなりそうな気がしますが平気でしょうか?
2種のあたり判定は、確かに処理は重くなるけど かなりの数比較しないと目に見えて重くならないハズ。 作画順序が問題なら、作画前にソートしてはどうか。
425 :
delphian :04/02/12 23:35 ID:CeQLH9bx
>>424 ありがとうございます!
とりあえずやってみます!
つまり、
自キャラ→敵キャラ
自弾→敵キャラ
敵弾→自キャラ
自キャラ→地形
と4回当たり判定すればいいんですよね!?
うーん、重くなんないかなぁ…。
とりあえずやってみます(>_<)
>>422 これは一般的に広く使われている方法だと思うけど、当り
判定用の仮想マップを作る。
プロック単位なら1ブロック1バイトとかで十分。
ブロックのサイズで割り算すれば仮想マップでの位置は
簡単に求められるよね。
表示に関して言えば見る方向が限られているわけだから
位置で優先順位が決まるはずだよ。
427 :
delphian :04/02/13 00:10 ID:L2MM37WS
>>426 ただ、自キャラの移動がドット単位なので…
ずれて障害物にぶつかったときは、判定がおかしくなっちゃいますよね?
>>427 ドット単位でも殆んどの場合仮想マップで十分だよ。
1点だけで当り判定しなければいいだけの話。
移動前に移動するはずの位置(オフセットさせて)での当り
判定を取ればめり込むことも無い。
例えば上に移動したいなら上の辺の2点でどちらかが当る
かどうかを調べてどう移動するかを決めると。
429 :
delphian :04/02/13 00:39 ID:L2MM37WS
>>428 障害物や自キャラすべてのキャラが32×32のサイズだとすると、
自キャラの位置÷32が仮想マップでの位置
とかそういう感じですか?
へえ、こんなところがあったんだね。 もっと何て言うか、プログラム的なテクニック以外の話題かと思ってたんだけど タスクとかオブジェクトとか、みんないっぱい勉強してるんだなぁ。 そういう専門用語なんて全然わかんないよ。 CとかDelphiとかも、全然わかんないよ。 でもちゃんとシューティング作れたよ。 こういう人間もいるから、みんなくじけず頑張れ。
>>430 貴重な人材ようこそ
実際にシューティング作れた人の経験談ってのは、何より大事だよ
>>429 そうそう。
で、自キャラの当り判定用に4つの点が移動すると
考えてみればわかるかな?
433 :
430 :04/02/13 01:34 ID:XbqqmpNF
>>431 どうも、話の腰を折っちゃったみたいで申し訳ない。
今Windowsの2作目をやってるけど、大バグ出しちゃって大変だよ。
敵を動かすメインの部分を再設計するはめになったよ。
技術的なことより、モチベーションの維持が大変かもしれない。
2ちゃん見てる暇あったらさっさと直せって言われそうだけど・・・
ユーザー様販売店様ごめんなさい。
1日8時間エンジン全開にできれば制作サクサク進むだろうになあ。
やる気を高揚させるためにゲーセンに逝く。
むしろシューティングが殆ど無くてショボーンとする罠
>>434 俺もそこみてて共感した
自分含めて周りにもいるので。。。
>>434 なるほど、目から鱗が落ちるとは正にこの事。
だから今日も頑張るよ。
ついでに新しい敵動作も追加するよ。
学校の卒業研究で3Dシューティングを作ってるのですが、ここって製作物の晒しOKですか?
おkでう
卒業研究でシューティングって何気に凄いな 物理屋?
446 :
441 :04/02/14 00:11 ID:c3gggQ2G
ただの専門学校です(´Д`;
今確認してみたらメモリリークしてた個所があったので
晒すのはもう少しかかります・・・
>>443 すみません。
448 :
441 :04/02/14 02:14 ID:c3gggQ2G
おそらくまだ問題を色々内包してたり、
システムやグラフィックにまだ未完成な部分も多いですが、いったん晒し。
ttp://gamdev.org/up/img/237.zip Zキーでショット、Xキーでボム、カーソルキーで移動して、ESCで終了です。
タイトル画面ではZキーを押してスタートしてください。
>>447 すみません。今はスパゲティ状態になっているので、
どれだけ先になるかわかりませんがソースを整理できたら晒させて頂きます。
キタ━━━━━━(゚∀゚)━━━━━━!!!!
せ、先生!! ゲームが物凄いスピードで進みます!! なんか処理をCPUとか描画依存とかにしちゃってるのかな? P4 2.4GC RADEON9800Pro VRAM128M RAM1G3100 WinXPPro
451 :
441 :04/02/14 02:33 ID:c3gggQ2G
あ、しちゃってます。 というよりもFPSを一定に保つ処理入れ忘れてました。 フルスクリーン状態ならなんとかなりませんか?
うちもウィンドウモードだとマッハで動くな。 AthlonXP2200+ RADEON9500pro PC2100/1GByte WinXPpro
GetTickCountでウエイト入れればいいだけっしょ。
454 :
441 :04/02/14 03:26 ID:c3gggQ2G
必要なところがしっかり押さえてあっていい感じだね。この調子でガンガレ
殺伐としたスレに救世主が! ヽ)∵)ノ ( ( くねくねマン ) )
>>454 OK.
問題ナス。
441氏はトリップつけたら?
特にシステム上とかで突っ込むポイントは無いけど、難しい(´Д⊂) あと武器LVの上がるシステムの仕組みが良く分からないです ボタン押しっぱなしだとLV2の状態でもLV1が出るとか?
459 :
441 :04/02/14 22:19 ID:c3gggQ2G
>>455 ありがとうございます。
>>457 ええと、今はつけません。
卒業までの期間の関係上、リザルトとオールクリア画面を作って、効果音をつけたら
卒業制作としては完成としてしまうので、今のやつの新しいバージョンは晒さないと思うので。
ええと、一応今このスレで書き込みをしてる私を含めて3人で作ってたのですが、
システム面を作ってたのが私なので、春以降になったらその部分をいくらか流用、改変して、
完全な個人製作として違うゲームを作る予定で、そのときにそれをこのスレで晒したいと思ってますので、
そのときにはつけるかもしれません。
>>458 敵弾にかするか、アイテムのPって感じのものを取れば内部的にかすりゲージが貯まっていってパワーアップします。
パワーアップアイテム1個はかすり8回分ですが、かすりをすると点数も加算されるので、
状況に応じてかすっていくか倒していくかで得点もかわってきます。
武器レベルが下がるのはショットを撃つごとにかすりゲージを減少させているためです。
強いLVほど減少幅を大きくしています。
まあ、変なシステムで調整が滅茶苦茶なので、バランスは偏りまくっていると思われます。
460 :
441 :04/02/14 22:31 ID:c3gggQ2G
すみません、もう一つだけ。 不正な処理などで落ちるなど、不具合が出てる方とかいませんか?
うん、不具合は無いよね その点は上手い、いやマジで個人的神認定
専門学校ではライブラリを先生が作って聞いたことがあるけど本当?
>>463 そういうところもあるらしいな。
自分で作った樹にさせてくれるんだろう。
まぁ、それで自信はつくかも知れんがね。
465 :
441 :04/02/15 00:34 ID:DbqjGaLn
報告ありがとうございます。とりあえず不具合が無いようでなによりです。
>>463 ゲーム系ではないので、DirectXまわりを含め、コーディングは全て自分たちでしました。
DirectXまわりもGraphicとInputだけで、難しい事をしないならあまりたいした手間でもないですし。
ですけど、既存のライブラリ使えたならもう少しシステムも凝れたかなあと思います・・・。
>>459 >卒業制作としては完成としてしまうので
一番時間がかかるのは、見た目だよ。
キャラやエフェクトや一枚絵を気に入ったものにするのに、コーディングの倍掛かる。
467 :
441 :04/02/15 01:12 ID:DbqjGaLn
グラフィックはテキトーでも単位は認められそうなので、 それは私の春以降の課題ということに・・・ ところで、ゲームを始めて、ESCでタイトル画面に戻って、もう一度始めようとすると落ちる しょうもない不具合があったので、いったんファイル消します。
468 :
:04/02/15 10:52 ID:1m2QR9W7
>441 未プレイなんで再upきぼん
目標もなく、だらだらと製作しててもいつまで経っても完成しないので、 最終的にはコミケに参加したいと思っています。 皆さんも、コミケにサークルとして参加することが目標の人いますか?
参加してるよ。 コミケは何気にSTG結構多い。 まあノベル、ADV、18禁の方が圧倒的に多いが。
俺もサークル参加してる。
472 :
441 :04/02/15 14:27 ID:DbqjGaLn
>>472 操作方法や、アイテムの説明、製作環境、
動作環境などをかいたドキュメントをつけれ。
Readめとかさ。
是がないのは少し痛い。
作ってないならすぐに作った方がいい。
システム開発分野については習ってないのか?
readmeとシステム開発分野が関係あるのか、なる程
システム開発は知らんが人に見せる物には普通Readme付けるよな
476 :
441 :04/02/15 18:50 ID:DbqjGaLn
Readme入れました。ファイルは>472と同じです。 今まで入れてなかったのは私が不精だからです(汗
気にする事は無いさ
皆が一から製作しているのに、 Lunaライブラリを使って、ゲームを製作して コミケ参加を目指すことはダメかな?
全然あり。 でもLunaライブラリってどんなこと出来るんだろう? なんか前に見た感じはただのラッパーって感じがしたんだけど
自分の好きな方法でできるからこそ同人。 漏れはLunaSoundとLunaInputだけ拝借してます(・ω・)
>>474 そういう意味じゃない。
普通はドキュメントをつけるもんだって言ってるの。
ソフトウェア工学の入門書でも嫁、莫迦
BAKAと来たか
ドキュメントを付けることとソフトウェア工学の入門書が関係あるのか、なる程
そりゃ関係なくないが・・・つっこむとこちゃうやろ!
誰とは言わないが、もう少しネタをネタとして解釈できたほうが実生活でも損せずに済むと思うよ…
本人が「無精でした」って言って終わってるのに いつまでやってんのかいな
DfDjLHa9はノイローゼ そっとしておいてやれ
明日に ああ繋がる今日くらい
殺伐としたスレに救世主が! ヽ)∵)ノ ( ( くねくねマン ) )
ラスタスクロールか。
ソレダ!
かつてラスタ割り込み使って行ってたエフェクトが、 いまやフレームバッファ直描き。 マシンパワーとは恐ろしいもんだ
それどころか ラスタースクロールっぽいことやろうとすると 逆に面倒だったり重くなったりする罠。
>>495 それが直描きでやれて感慨深いものがあるなぁというのが
>>494 の書き込み
じゃないか。1つ前のレスちゃんと読んでやれよw
497 :
名前は開発中のものです。 :04/02/16 09:19 ID:bZG73jUk
>497 ふむふむなるほど
くねくねマン、マジで救世主だなw
500 :
名前は開発中のものです。 :04/02/16 12:00 ID:2ueEZCar
s
ID:DfDjLHa9 IDにDFDとあるが、DFDなんてぜんぜん解ってないんだろーな
DfDjLHa9のカキコと彼がDFDを解ってないことが関係あるのか、なる程
狼藉者
割り込みに頼れないからラインごとの処理速度を一定に保つ工夫が必要とは。 CPUの命令クロック数える世界だな。
>>501 ちょっと面白かった。
ビックバイパーのオプションをちょーーーー進化させたものか。
あとで実験してみよう・・・。
BulletMLで弾幕を作りたいんですが、どうしたら良いかイマイチわかりません。 bulletnote0_11.zipは落としました。Eclipseがどうとかで詰まってます。 誰かご教授キボンヌ〜。
PARSEC47のBulletMLファイルを一旦全部削除して 1つだけ自作BulletMLファイルを置けば、 自分だけの弾幕でPARSEC47が遊べる かも知れない。 ツール一発でやれると説明の手間が省ける ダイアログでいくつかの質問に答えるだけで それに応じた見栄えのする弾幕を出力するようなソフトってあったっけ? installの手間が無い奴で
513 :
509 :04/02/16 22:20 ID:xIAoxYhF
>>510 工エエェェ(´д`)ェェエエ工工
>>511 あきらめようか・・・なんかJava上手く動かへんねんや。
白い〜は持ってるが、そのあとの詳細キボン。
>>512 Noizsa2がそれ出来るってどっかで見た。
47でもできるんだ。後半、そんなソフト漏れもキボン
ところで(仮)の.scbデータをメモ帳で開くとなんか結構簡単な作りっぽいんだが、VBでシューティング作んのってムズい?
今のマシンならVBでも速度に問題なければ大丈夫なんじゃない?
すまん、関係ないんだが(仮)ってなに?
>>513 白い〜 を実行して「グループ」を選んで、
一番下の「ユーザー定義」を選ぶ。
ずらずら〜っと出てきてわかりづらいので、一旦終了して、
userフォルダの中身を全部消す。
PARSEC47からテキトウに弾幕XMLファイルをuserフォルダにコピーしてみる。
buildとかmoveとかは弾幕じゃないんでダメね。
もう一度白い〜 を実行して「グループ」「ユーザー定義」を選ぶと
さっき持ってきた弾幕XMLが「ユーザ定義1」など表示されると思う。
あとは、持ってきた弾幕をちょこちょこっといじってみるといいかも。
このあたりは実際にハマった人の体験談のほうがためになるかもな。
>>515 SHOOTING GAME (仮) かな。
・PARSEC47の弾幕XMLを拡張子BMLにしてダブルクリックすると 白い〜 が実行されるけど、手元では100%エラー発生して動かなかった。 普通に白い〜 のGUIから選ぶぶんにはエラーが出ない。 ・記述を少しミスするとエラーが出るが、文法チェッカが無いのでわかりづらい。 あたりはよくわかんない。
519 :
名前は開発中のものです。 :04/02/16 23:53 ID:HLiV/lrI
おいどうやったら背景画面が動くようになるんだ? 飛んで進んでるように見せたい 教えろ!
絵の表示はできてるか?
>>519 1.丈夫なトコからぶら下げたロープで頭より少し高めの位置で輪を作る。
2.踏み台に乗り,輪に頭を通す。
3.踏み台から足を離す。
で,何か見えるかも。
弾幕なんてアイデアだろ。 ていうかいきなり完成度の高いものつくらずに、 一通り完成させてからそれを改造していったほうがいいと思う。 ソースはスパゲッティになっちゃうかもしれんが、初めて作るんならそれがいいんじゃない?
見栄えのする弾幕と長く遊べる弾幕とを両立できればベストだが、 入門には見栄え弾幕をやってみると良いと思うYO それどまりなのはマズいけど、発表すればプレイヤーが厳しくツッコミ入れてくれるだろう
見栄えのする弾幕 = 自機の現在位置に関係なく全方向囲に放射ってことかな?
>>527 たしかに、それは見栄えがするな。最初のオススメかも。
そこに他の敵からの自機狙いを混ぜるのが定番。
お手本の例は怒蜂2面後半の巨大戦車とザコの複合攻撃。
>>526 見栄え重視といえば東方〜やね。
あの弾幕は打上げ花火みたいで好き。
ここまで細かく書かれてると、あっさり特定されそうだな。 とりあえず明らかに俺のゲームではない。
常識的なことが並べられてるだけな気がする。 ってか、そんなことすら出来てないのもあるのねぇ
これだから個人日記は嫌いなんだ… 読んでて不快
ウチのサークルのゲームでもないな
きちんと「こうするべきだ」ってのが提示されてるし これで不快だって人は他人の言うこと一切聞かないタイプなんだろうな まぁ、イチイチ日記に書くなんてリスク背負い込むのもアホだけど
>>536 きめつけはよくないぞ…
オレが嫌いなのは日記でこういう意見を言うまえに作者にいえよ、
不特定多数相手に愚痴いうなよ〜、って点なのね。
書いてあることはほんと同意。
あら、ID変わってるな、533だ
>>537 すまん。
でも実際
>>530 みたいに勉強になったって奴もいるやん?必要悪みたいなもんかと
作者に伝えようという気はそもそも無いんだろうね
でも斜め移動を1/√2にするのが常識ってのはどうかと思うな あれタルいから嫌い。
最初東方かと思った。
縦STGで前後と左右が1:1じゃないゲームもあるのにね。
縦STGなら斜めが早いゲームは結構あると思う。 おそらく戦略として残しているんだと思う。 横STGで斜めが早いのはあまり見ないね。
少なくともセイブシューはそうだよ。斜めも考慮してない。
つーか、DOOMとか普通にサイドステップしながら前へ進むのがテクになってなかった?
550 :
549 :04/02/17 15:38 ID:LhO7cBxJ
旧バージョンも1:1じゃない気がしてきた。 確認できず。
551 :
509 :04/02/17 16:07 ID:MHwqFiiQ
「作るのはムズイ?」ってのはどういうこと? どの言語で作ろうとあまり変わらない気がするけど・・・
ダブルバッファリングは必須ですか?
Direct3Dの描画の話? だとしたら最早必須な気がする。
DirectDrawでも事実上必須な気もするが
昔は必死になって差分描画とかやってたもんだよw
・・・といってもちらつき抑えるためには ダブルバッファリングしないと駄目だったなあ 結局必須ってことで
ダブルバッファリングしない場合は、操作が遅延しないほうを優先した、と言い訳しよう それでいて処理順序を間違えて遅延が出てたりするとボロクソに叩かれるわけだが
559 :
509 :04/02/17 22:00 ID:HsWBabT/
あーそうなんだ。どもです。 とりあえず弾幕いじってみるわ。
どちらかといえば ちらつき抑止のほうが重要だわな。目立つから。 操作遅延は一部の人間しか意識できん。
COPY_VSYNCとかだと大丈夫じゃなかった? 知らんけど
俺はVBからVC移行組だけど、しょうじきVCで作ったやつ全部VBで作れる。(速度も含めて) ていうか、VBの実行速度に不満があるならそれを力技を駆使してなんとかするのが面白いと思うのだが。 その傑作が(仮)だと思うし。俺がVBで初シュー作ったのが(仮)が出た頃とダブルから そう感じるのかもしれないけど。そのころVBはDirectX使えなかったしな。 まぁ今のすんごいPCならVBとVCの違いって気分でしかないよ。
VBだとキャラクタの管理とか厳しくないですか? キャラクタを基礎クラスから継承しまくってるスタイルに慣れきってるためか、 JAVAですら面倒に感じるときがあります。 もう駄目だ_| ̄|○
JAVAの方が継承とからくだとおもうんだが? シューティングなんて雑魚キャラとか継承しまくりなのが普通だからな JAVAもフルスクリーンや解像度変更、VSYNCフリップとか VRAM直書きとかふつうにあるから 2Dゲームにはまず何の問題もない 200MHzクラスじゃ厳しいが400MHzあればそこそこ問題なしで 600MHzあればだいたい大丈夫
JAVAだとクラスの多重継承できないですし。 まあインタフェイスクラス使えばいいんですが、 一貫性のある記述のできるC++のほうがどうしても楽に感じてしまうという事で・・・。
クラスや継承を知ってたほうが楽だが、 まあ知らなくても作れるしな
そんなこといってると、みんな俺みたいにC言語で開発できなくなるぞ
組み込み系やりたくなくなるから注意しろ!
>>561 ウインドウモードでは無理
と結論した
>>561 D3DPRESENT_INTERVAL_ONE
C++に毒されたのでもうC言語ではつくれないな。。。 遊ぶ側にとってはVBとVCの違いって気分でしかないかもしれないが、 つくる側にとってはぜんぜん違う。
遊ぶ側にとっては何も違いは無いだろう
>>571 同意。
その作品が「ゲーム」と名乗る以上、価値基準は「面白いか否か」だからなあ。
使われてる言語がどうこうってのは、語りたい人同士で語ればいいだけのウンチク話になる。
ゲームのように見えるが実は自分のプログラムテクニックを披露したいだけの
環境ソフトなんです、って言うんなら話は別だが。
ここ製作技術スレですよ。ウンチクを語る場でもあるわけで。
いや、中には「VBで作ってるくせにシェアウェアにするなんて生意気だ!」 なんて言い出すグルメもいるわけで(w
>>574 そういうこと言う奴は作ってる側の人間だろうな。
大体遊ぶ専門の人は、ほとんどがVBとかVCの区別なんてつかないだろ
つかんだろうね。 そもそも俺も何で書かれてるかなんて興味ない。
作ってる側のコメントとしては、HSPやVBで作ってても VC++製品を遥かに凌駕する面白さの作品が存在してるね、というくらいしかないな いまやどんなスタイルでゲーム作っても 60FPS+DirectX を満たせるし
HSPやVBのすごいシューティングって見たことがないんだけど。 2Dシュー程度ならできることに大差はないとはいえ、 C++プログラマとの技量の差が、そのままゲームの出来にも反映してるように思えてならん。 因果関係ではなく相関関係だけどな。 つーことで、俺の偏見を覆すスゲーシューがあったら教えてたもれ。
VBでも面白ければシェアウェアで良いと思うけど・・・
「VBのくせに生意気」は精神的にガキなんだろ。
プロでそんながヤツ居たらアホ。
でも俺も
>>580 と同じく
>>580 月姫の城。面白いかはおいといて、
これをHSPでつくったというのだからすごい。
C++、Delphi等でつくっていたならすごいとは思わなかっただろう。
まあ、VB、HSPは中規模以上のゲーム製作は苦労しそう。
シーンが増えてきたときの管理方法はどうやるの。
全部if、selectでわけるのは面倒では。
あと、VB、HSPでつくっている人って敵の動きからステージデータまで
全部ソースに直書きしている気がする。そのつくり方だといづれ限界が見えてくるよ。
スクリプトデータに分離しようにも、VB、HSPでは字句解析、構文解析を行えないのでは。
遊んでて楽しく、長く遊べるのは飛翔鮎、ガンデモニウム、D-Force、D-Force2、 STARSHIP FIGHT、HSPじゃないけどやる気無シューあたりかな。 凝った演出ならサイヴァリアみたいな奴があったな。名前忘れたけど。 相関関係については同意。 因果関係が無いと言いたかっただけだしな。必要条件でも十分条件でもない。
>>582 テキストファイルから文字型配列変数に読み込んでnotepad命令群とかを使えば
できないことはない。
大きくなるほど管理が大変になるのは直書きと一緒だけど。
>>582 HSPでスクリプト動かすように書くと
HSP自体がスクリプト言語だから
スクリプトでスクリプトを動かすという妙なことにならないか?w
妙でも何でも無いし、必要で有ればそういう手段をとるってだけの話じゃ?
HSPエンジンがオープンソースでなおかつX11ライセンスのような 配布形態ならば妙な話ではないな。
メモリノートパッドって、データでかいと無視できないくらい遅くなるから あまりお勧めできない。
>>580 単純にユーザー数の違いだと思うけど。
C++を使っている人が多いから自然と良いゲームも増えるんじゃないかな。
俺の検索が足らないのかもしれないが、Delphiで作られた凄いシューティングって
聞いたことが無い。
知ってたら誰か教えてくれ。
>>589 CreatureJungleはDel。
凄いかどうかは知らん。
初期クドリャフカもDelphiだったはず。CJともども、遊んで面白いゲームだ。
同人のブルーセイバーズと続編のOOHはLGP製だったな。 とりあえず完成度が高いといえる作品だと思う。 LGP自体マイナーでこの板では評判云々以前みたいだけど。
OOH、LGPだったのか。あそこまでの作品が作れるなら十分実用言語だな。 BASIC風でなくC言語風だったら今すぐ試してたかも。そのうち試してみるかな…。
Delphiはネイティブコンパイラだし、C++とポテンシャルは同じ。 単にC++を使っている人が多いだけ。 DelphiはコンパイルがC++とは比較にならないくらい高速だし悪い部分は特にない。 遜色があるのってtempleteがないくらいでは。
DelphiやBCBはわるくないんだが DirectXまわりで多少苦労する それだけできついと思うか問題ないレベルと感じるか どっちにしろ言語なんてよほどへぼくないかぎり問題じゃねー
>>592-593 LGPは機能面、パフォーマンスもかなりいいと思うんだけど
コンパイラの安定性に不安面が多い
一時期導入しようと試してたんだけど
コンパイル段階で例外処理出ることが多くて断念した。
その辺りを回避できれば、かなりいいと思うよ
>>589 既出のとおりDelphiはDirectXとは相性が悪い。
Delphi使えるようなプログラマならたいていC++も使えるから、当然C++を選ぶさ。
プログラムから絵まで一人で作っている人にお尋ねします。 ゲームで使用する『絵』は作業行程の中でいつ描いていますか? 例えば敵を1体作るとき、ゲームで使う絵をしっかりと描いてからプログラムを組んでいますか? それとも、とりあえず▲○など適当に絵を用意してプログラムを組んでいます? ▲○などの仮絵を使ってプログラムを組んでいた人は、いつゲームで使用する絵を描き始めますか? 敵を1体作ってから?それともゲームをしてある程度できてからですか? 返信お願いします。
× ゲームをしてある程度 ○ ゲームとしてある程度 訂正です。
最初は適当な立方体メッシュで作ってました。 グラフィック作り始めるときは気分。プログラムに疲れたらとか。 どうせ使いまわしするのでそんなに量は要りませんでした。
自機と敵弾はかなり早い段階で用意しておいたほうがやる気が湧くなぁ。 あとは逐次敵移動パターンを考えた後でデザイン、又は敵をデザインした後、 その形から連想させる移動パターンをインプリメント。
602 :
598 :04/02/22 12:52 ID:OsecqzJh
うほ。返信ありがとう。 そうか、自機だけでも用意しておこうかな。 だけど、絵を描き始めると、描いては消しての繰り返しで全然進まない。 絵が描けない人は、下手でも割り切った方がいいのかな。
私は絵は先に用意します。 絵に時間がかかるので、先にやらないとプログラムに触らない期間が長くなって 忘れてしまいそうなので…w。
適当にやってる。 モデリングする気分だったらモデリングして、 プログラムする気分だったらプログラムという感じに。
>>602 絵は事前に用意できる限り用意しといたほうがいいと思うなぁ。イメージを固めやすい。
ただ、いずれにせよ後から手を加えることになるのは確実なので
なるべく後付けできるようにしておく準備は必要。
下手でも割り切ったほうがいいというか、割り切らないと完成はしないと思う。
絵が上手いとか下手とか関係なく割り切りは必要だと思う
おもろけりゃABAさんとこみたいなのや、爆烈矩形弾みたいなのでも可。
時間によって変化する敵の動作ルーチンを上手く書けないよ… 動きパターン分全て関数書くのマンドクセ
ハードコーディングで敵キャラ書く場合、 int mode; int time; switch キーワードはこの3つ。 これだけ分かってて上手く書けないと言っているなら、 そうなるとスクリプトでも実装するくらいしかないかな。 2Dシューティング製作で一番時間食うのは敵キャラの行動の実装だと思う
敵キャラ行動はツール使っちゃってるからそんなにはかからないなー。 やっぱ絵に時間かかる。
動きパターンが増えたり、キャラの種類が増えたりすると、なかなか大変だよな。 このスレで紹介されているページのいくつかに、 ハードコーディングによる敵動作ルーチンがあったはず。 見やすく、それでいてマンドクサくならない記述の参考になるかも知れない。
612 :
名前は開発中のものです。 :04/02/23 16:30 ID:NkVvf1OH
現在画像の回転のアルゴリズムでつまっています。 正攻法でやると回転後の画像に穴があくので、 逆の、ここの画素は、あそこからのものだ。 という方法で考えています。 ですが、この逆に導けばいいと分かったまではいいのですが、 どうやって導けばいいのか、式、法則が分かりません。 アドバイスいただけないでしょうか?
その回転行列の逆行列を使えば元の画像の位置が分かります。 画像の位置を割り出したら、最近傍点か、近傍4点の線形補完から色を取得しましょう。 D3DFILTER_POINTとかLINEARとかと同じことです。 つまりその考え方って3Dなんかでポリゴン描画するときと一緒なんですね。
>>614 途中の式が知りたいのです。
なぜ、この式になったのかどうかです。
わがままですいません。
行列は習ってないのです・・・
行列習ってないってことなら方程式で説明ね。 ソースからディスティネーションを求める式は知ってるようですが dest_x = cos(a)*src_x + sin(b)*src_y dest_y = -sin(a)*src_x + cos(b)*src_y この連立方程式をsrc_xとsrc_yについて解けばよいのです。 そうすればdest_xとdest_yからsrc_xとsrc_yが求まります。 逆行列を求めるってのはそれと同じ話です。 式の見た目が変わっても所詮行列なんて同じことやってますので。
数学の基礎からやり直します。 ありがとうございました。
ここは勉強になるインターネットですね。
今まで調べ方がヘタでわかんなかったんだけど、
>>613-618 でわかった気がします。
転送元→角度a回転→転送先,が分かるなら。 転送先→角度-a回転→転送元,で分かるハズ。
ゲームプログラミング練習長を買いました。 この本でのキャラクタの描き方は、for文で透過部分以外の色を (背景をコピーしたバックバッファの)アドレスに書き写すというやり方なのですが、これって普通ですか? バックバッファをDCで持ってBitBltのANDとXOR(だっけ)でやるのが一般的&簡単だと思ってたのですが。
623 :
612 :04/02/24 18:29 ID:NPJ634Xn
おかげさまで無事回転させることに成功しました。 今ではなんでも回ってます。 今の僕に回せないものはありません。 どうもありがとうございました。
624 :
612 :04/02/24 18:56 ID:NPJ634Xn
>>622 >バックバッファをDCで持って
というのが何を意味するかわかりませんが、
ゲームには画面の書き換えが必要です。
画面の書き換えには時間が必要です。
この書き換えの時間が長いと、描いている途中の画像がユーザーに見えてしまって、
気持ちよくありません。
ホラーゲームなどで、「わっ」とおどろかせるところで、途中の書き換えている
シーンが見えてしまってはだいなしです。
なので、たいていのゲームでは、いったん裏の画面に次の画面を
すべて描き込んでから、あたかも切り替えているかのように、
表の画面に一気にコピーします。
まとめていっかつコピーの方が処理が早いので、このやり方が
よく使われています。
また、別の理由でもこのいったん別に裏の画像をつくって
ここで、絵の具を混ぜるかのように、コネコネして・・・という利用方法もあります。
まだ、納得できないのであれば、ご自身のやり方でやっていけば
よいかと思います。
普通かどうかは知りません。基準がありません。
>バックバッファをDCで持って CreateCompatibleDCと、 CreateCompatibleBitmapの事じゃね? つーか普通の画面だから何してもいいと思うぞ、俺は。 まぁ、初心者にとっては未開の領域だがな。
>今の僕に回せないものはありません。 >どうもありがとうございました。 良い奴だなw
>>623 ワロタ
>>622 (;´Д`)そりゃ大分古いやり方だねぇ…>XOR&AND
確かに高速っちゃ高速なんですが今はαブレンディングの時代です。
そこでDirectX Graphics使おうぜとなるわけですよ。
いつもより多く廻しております。
では一休、そこな屏風に描かれた虎をば回してみせよ
まずは虎を追い出してください、その脳内から
すごい男がいたもんだ。
ワラタ
634 :
ぴろきし :04/02/26 17:08 ID:0qzzCbkV
おい、いまトラでてるぞ!はやくまわせ!
ひっぱりすぎだってw
スレが止まった?
637 :
名前は開発中のものです。 :04/02/29 14:58 ID:qWPtuZdT
ネタが無ければどうしようもないからな あげてみるか
638 :
名前は開発中のものです。 :04/03/01 00:18 ID:AscDXZhd
___ __/ / /\ / _/\ ___ / ̄ ̄ ̄\/| /| ̄ .\/| / /\ | | |/\__.|/ /| ̄ ̄ ̄\/| / ̄ ̄~|/| \/_/ | |____|/ ./| ̄ ̄ ̄.| |.  ̄/__ |/ / | | | | /フ ̄/\ | ̄| ̄ ̄ ̄ |/\ .| | /| ̄ ̄ ̄\/| |/\ \/ ̄ ̄~|/| |/\ ___|/ \ \ __  ̄ ̄ ̄~|/ \/ ̄ ̄/ \/ ̄ ̄ /  ̄ ̄ ̄  ̄ ̄ ̄ (⊃) (⊃) ∧_∧ / / ∧_∧ / / ( ´_ゝ`)./ / ( ´_>`)./ / ./ / / / / / ̄ ̄ ̄ ̄/ / __(__ニつ/ age. /____|__ \/____/
で、結局ここにいるほとんどの香具師は、大往生目指してるのかね?
いえ、全然。まあ夏コミを見てろって。
大往生は好きだけど 目指してはいない
>>641 計算された、美しくも凶悪な数多の弾幕。
このさきには 暴力的で 鬼のような コーディングが あなたを待っています。 そ れ で も 作りますか?
>>643 クリアにリアリティを感じないw
無駄にやる気がうせるw
要素しかないと思うのですがどうでしょうか。
1周目はそうでもないし、俺は1周しか出来ないが面白いよ。
大往生のキャッチーでない点を改良したいと思うことはあるな
これの面白さがわかるくらいの腕前にプレイヤーの意識の底上げをはかるような
シューティングは目標の一つだが、難しいね
で、実は
>>1 を読むとわかるが、スレ違い。
>>639 は死ぬがよい
648 :
名前は開発中のものです。 :04/03/01 19:10 ID:c5LZvNHg
別にスレ違いじゃないが。 元々プログラミング技術ネタだけのスレではない
単に機転利かせて死にかけてたスレにネタ投入したのでは。 ちなみに、うちのは敵味方16人のキャラが過去の
このスレの住人、結構現在進行中のプロジェクト持ってんだな
永遠に進行中のプロジェクトばかりです
653 :
名前は開発中のものです。 :04/03/03 20:17 ID:80+x+sMk
製作者様、携帯アプリ版にて活躍してください
>>653 相手にされないからって関係ないスレまで来んなと。
このスレ死んだのか?
656 :
名前は開発中のものです。 :04/03/08 23:48 ID:jyC2X44L
ネタが無いだけでしょage
円と線分の当たり判定ってどうやってとってる?
四角の当たり判定を複数置いてごまかしてる
円の中心を線分に垂直に落とせばいいんじゃないの
円の中心点と線の最短距離を求めて、円の半径と比較すればOKだな 俺も面倒だから当たり判定複数置いちゃうけど。
・円Cが点Aと点Bを含む→交差しない ・円Cが点A、又はBのどちらか片方のみを含む→交差する ・円Cが点Aと点Bを含まない→垂線の足を求めて垂線の足が線分上にあるかどうかチェック これをチェック。最後の奴だけど、 垂線の足をh、パラメータtとすると、h = a + t*(b-a) (b-a)・(h-c) = (b-a)・(a + t*(b-a) - c) = 0 tについて解くと t = (b-a)・(c-a) / |b-a|^2 ここで0<t<1なら垂線の足が線分AB上にあることになる。 |b-a|^2を不等式に持ってくれば割り算が1個減るかな。 こんなもんかな? 間違ってたら修正よろしく…眠くてもうだめ(´・ω・`)
ごめん追記(´・ω・`) 垂線の足が線分上にあるかチェックして、 更に直線との距離が半径r以内でないといけませんね(´・ω・`)
縦シュー作っている人に質問! 自分は画面の大きさは352×416で タイトルも、ゲーム中も同じ大きさです。 皆さんは画面の大きさはどのくらいですか? 東方のようにタイトルは画面一杯に使って、 ゲーム中だけ、縦長にしてますか?
今作ってるんだけど、個人的にはアーケードをPCに移植した感じに したいので縦長画面の中ですべてやりたいなあ。
縦長にしようかなとも思ったけど結局全画面。 まだ完成には遠いけどね
タイトルは640×480の全画面 ゲーム中は320×480のゲーム画面をセンタリング 両脇に各種ステータスでやってます
ウチは縦横比4:3(3:4)にこだわりたいから640×480の画面内に360×480を表示領域として使ってるよ。
縦長にすると意外と見にくいんだよな 480*480など1:1に一票 これなら縦画面でも横画面でも(ry
私も667氏と一緒ですね。
うちは320×240+横スクロール スタソルの影響が大きいな...
640x480で400x480で両脇に各種ステータス。 ABA Gamesさんところ、ちょっと縦長すぎるかなあ、なんて思ったりしてね。 結局やる気なシューとサイズ同じってことで。
672 :
663 :04/03/16 00:18 ID:9G1lxB1c
皆さんありがとうございます。参考になりました。
673 :
663 :04/03/16 00:20 ID:9G1lxB1c
もう一つ質問いいですか? 自機の絵サイズはどれくらいですか? 自分は32×32です。画面サイズ352×416で、自機が32×32だと やっぱり小さいでしょうか?
数値だけ言われても判断しづらいなあ。。。
弾速とかそーいうのにも依るからそこまではなんとも言えんな。
676 :
名前は開発中のものです。 :04/03/16 07:42 ID:gL0QadPJ
うおおおおおお! やっとスクロールできるようになった。 苦闘8時間。。。 やった!おれは勝った!
>>663 自分が好きなゲームや世間で評判の良いゲームを構造解析したら良いんでない?
画面の端から端まで移動するのに何秒とか,画面全体と自機の大きさの比率とか。
別に実行ファイルをクラックしろってんじゃ無くて,スナップショット撮ったり,ストップウォッチ片手にカチカチやったり。
そういうのはパクリでもなんでもないと思うけど。
>>663 基本的に360×480だけど、
解像度可変かつ90度回転なんかも可能なように作っておこうかなあと思ってたり。
679 :
名前は開発中のものです。 :04/03/16 16:37 ID:7stYpxMs
Win32で弾のうごかしかたをおしえてください!!
内部座標を動かすのは別にwin32関係ない
682 :
ぁきまさ :04/03/16 22:00 ID:slDWxodP
現在STGをつくってるわけですが、 おもしろいステージを作るのに、 何か、コツとか定説とかそういったものはありますか? どうも「おもしろい」という感覚が漠然としすぎていて、 どんな風にステージ設計したらおもしろいかなぁと思っています。 一応自分のSTGのコンセプトは ・展示用 ・へぼな俺の練習用 ・正しい道筋を考えよう です。 ご教授キボンヌ。
基本は左右に振らせる敵の配置かなぁ 道中で低速の弾幕やると萎えるから気をつけろとか とくにこれは同人で多いんだけどボス戦メインで 道中が適当になってるのが多い ま、自分がやっておもしろかったSTGを研究してみては?
>>682 実際にシューティングに触れてみたことはある?
トランスを作曲するために様々なジャンルの曲を聴いたりするのと同様な話。
実際の作成段階になったら、独り善がりの弾幕を作らないように、
自機の動きを最優先にして敵や弾幕を作っていくことかな。
686 :
ぁきまさ :04/03/17 00:37 ID:Wg8a2bZ6
687 :
ぁきまさ :04/03/17 01:38 ID:Wg8a2bZ6
>>687 サイト見させてもらいました。
とりあえずSTG初心者の方と判断しました(違っていたら失礼。その場合下記のこともたぶん的外れなんで読み飛ばしてください)
解法とかあってると思います。
ただ、つまらないと思った瞬間のうち、「道がふさがった瞬間」ってのはちょい否定です
大抵のSTGの弾幕はよく考えられていて、弾の打たせる位置をある程度誘導させることによって
回避しやすい弾幕になったりします。
#めちゃくちゃな難易度の怒首領蜂大往生ですら全国トップランクはノーミスノーボムで2周クリアしてしまうそうです
#自分には無理ですが
そういうのを見つけることはSTGの醍醐味の一つです
(面白いと思った瞬間のうち、「楽に勧める道を見つけた瞬間」に当てはまります)
弾の誘導の仕方等を完全に覚えて(これをパターン化といいます)効率よく敵を倒す手段を見つけるような
シューティングゲームも楽しいものですよ
なお、弾幕の考え方としてここらへんのページとかいいかも
http://www.h5.dion.ne.jp/~tamainu/danmaku.htm 弾幕美に関する話
http://www2.ttcn.ne.jp/~inu/kiso/kaisetu.html 弾幕の回避基礎
http://hossy.info/game/toho/g_theory1.php こちらも弾幕回避の話(東方妖々夢の内容も出ていますがそれは飛ばしてください)
波足が弾幕シューに偏りました、ごめんなさい
ノつ
ノつ / / ∧_∧
/ / ∧_∧く ( ´_>`) このAA謝ってるように見えないって。
| く ( ´_ゝ`)  ̄ \ そもそもAA使うなよ兄者
\  ̄ \`7 と.二 )
7 と./ ̄ ̄ ̄ ̄/ |
/ _ / FMV /__|__
 ̄ ̄\/____/
波足ってなんだよ・・・話ですorz
>#めちゃくちゃな難易度の怒首領蜂大往生ですら全国トップランクはノーミスノーボムで2周クリアしてしまうそうです 念のためこれだけは言わせてくれ、それは流石に居ない(w ノーミスノーボムで2-5ボスに突入した例はPS2版の付属DVDがソレだな。
>>687 流行に乗るなら弾幕系かもしれんが
あれはSTG本来のおもしろさじゃない気がする
スターソルジャーやスターフォースあたりやってごらん
考えなきゃおもしろくないってことはないはずだ
>>692 禿同
STG=弾幕というステロタイプは捨てたほうがいいよな。
国内のゲームより、むしろ、ゼビウスやギャラクシアンを模した海外のミニゲームなどの方がよほどSTGの味がする。
そもそも弾幕といってもケイブのと東方のではだいぶ違うだろう。
696 :
ぁきまさ :04/03/17 12:13 ID:Wg8a2bZ6
>>688 ええ。超初心者です。
道が塞がる。ってのと解法ってのは相反する要素だなぁとか思いながら書いていました。
きっと、自分が正しい解法が見つかってない証拠だと思います。
>ノーミスノーボムで2-5ボスに突入した例はPS2版の付属DVDがソレだな。
…。
これくらいうまく作れたらいいですね。(これくらいうまくプレイできたらなぁ
>>692-693 >スターソルジャーやスターフォースあたりやってごらん
>国内のゲームより、むしろ、ゼビウスやギャラクシアンを模した海外のミニゲームなどの方がよほどSTGの味がする。
これがなかなか、難しいかな。と思っています。
一応コンセプトが
・展示用(やっぱり見栄えがしないと…
・練習用(なんだかんだで、世の中の流れは未だ弾幕シュー
いや、僕は弾幕とそれらの作品の間くらいのが好きなんですけどね。
超連射とか、そんな感じです。
けっこうバランスが難しいかなぁと。
>>694 うほっ。良いサイト。
それとなくわからせる…ってのが難しいですね。きっと…。
>>696 僕はケイブ系?がいいなぁと思っています。
東方は、ストレスがたまったので。(なんかずっとちまちまよけているのが、なんだかなぁと言う感じで
無視されるかと思いましたが、
春厨に反応していただき感謝です。
自分の作りたいSTGの形が見えてきた…かもです。
遊ぶ側やSTGの歴史研究家なら「ケイブ系」「東方系」「ミニゲーム系」って分け方に意味があるんだろうけど, 作る側として考えるなら,「客にどういう快感(やストレス)を提供するか」ってのが先に来るべきなんじゃない? 作りたいのか遊んでもらいたいのかでもズイブン違うとは思うけど。 技術論じゃなくてすまん。
ケイブシューの面白さはスターソルジャーの面白さとは違うと思うが、
だからといってSTG本来の面白さではないと否定することはできんな。
両方STGなんだから。昔のSTG=本来のSTGという固定概念こそが変だな。
って書いてたら
>>697 に先を越されてしまったようです。w
>>696 見に来る層にもよるけど、展示用なら最低限それがゲームであることを認識できるような
内容である必要があるかも。
ヘタするとリプレイが単に花火のスクリーンセーバーと勘違いされるとおもわれ。
学校とかでデモるのだったら19シリーズとかソニックシリーズのようなパッと見で内容が
分かるようなのがいい
700 :
ぁきまさ :04/03/18 00:47 ID:3ZO+Iins
う…ソースコードが…。 がんばろう。
>スターソルジャーやスターフォースあたりやってごらん スターフォースはいいよなー。 俺はシューティングの教科書だと思ってるYO!
すいません。 スクランブル、ゼビウスから始まって昨今はボーダーダウン、斑鳩が好きなアホなんですが winに出来のいいシューティングツクールみたいなソフトありませんか? シューティングツクールより自由度が高くて、細かい設定が可能なもの。 そんな細かく作りたいんならプログラム書けってことになるんでしょうか? アホでもわかるように教えてください。 すいません。
残念ながらそこまでいくと自分でプログラム書くしかなさそう
HSPあたりを使ったほうが良いんじゃないの
>>703 シューティングツクールで無理なら言語しかなかろう
プログラムそのものは比較的やさしい部類(プログラムよりもバランスとりの比重が圧倒的にでかい)だから、
プログラム入門にもちょうどよいと思うけど
サンプルソースや創り方そのものを公開しているサイトを見て、 少しづつ理解していくのがいいと思う。 自分でプログラム組んで完成したときの達成感は シューティングツクールの比ではないはず。 がんがれ。
708 :
名前は開発中のものです。 :04/03/20 15:28 ID:peTCBX1V
>>703 さんがゲームデザインをしたいのかゲームプログラミングをしたいのか
よくわからない状況でプログラミングしろというのは気が早いような。
709 :
ぁきまさ :04/03/20 20:28 ID:oxKPH9LC
ゲームデザインをする人も、趣味でやる限りは多少でもプログラミングはできないとだめだと思うのですが…。 フリーで(GPLとか)公開されているSTGを改造するってのはどうでしょうか?
おお!みなさまお答えありがとう。 デザインもプログラムも全部やりたいです。 効果音や音楽も。 やはり、何か見本となるゲームのソースをいじって遊ぶあたりから はじめるのが手っ取り早いのかなあ?と思います。 でも昨今はゲームに限らずソースを公開してるプログラムって いざ探すとなかなかありませんね・・・ 勉強用のおすすめソースはありますか? あとHSPってよさげですね・・・これから解説読んでみます
711 :
ぁきまさ :04/03/21 02:20 ID:JaF31gly
自分のでよければ、 多少形になり次第公開するつもりでいます。(C++ & SDLです) かなり富豪的プログラミングしてますが。
712 :
ぁきまさ :04/03/21 14:37 ID:JaF31gly
えー、ここでなるたけ多くの要望をかなえられるSTGツクールの構成について議論するという方向性は? とかいいつつ、アイデア無しです。ごめんなさい。
>>713 VC + STL + DirectX or VC単品。
715 :
ぁきまさ :04/03/21 19:42 ID:JaF31gly
Cygwin(g++) + STL + SDL 色々いじろう思ったら、 結局はソースコードをいじらなきゃだめじゃないでしょうか。 と、プログラミングを一押し。
boostも追加してくれ。
BCC+DirectX 特殊なことを実装しようとするとツクールなんぞとたんに役にたたんので自分で作るのが一番 STL?イラネ
で、データ駆動的に作ってくとだんだんツクールっぽくなってくる罠? ゲームシステムをスクリプトで作りこめるようにしとけばいいんかな? とか、適当妄想。
>>719 データ自体は大体の人がスクリプト(orそれに類するもの)で組んでると思う
(違う、って人もいるだろうしスクリプト組まないほうが楽なシステムもあるだろうから一概には言えないけど)
だから、無理をすれば公開できないこともないです
けど、ツクールみたいな形で公開するにはドキュメント整備とかも必要になってくるため
面倒でやりたくありません、というのが俺の理由
特殊なシステムをスクリプトで作りこめるようにするってのはやりたくないし正直向かないと思う
プログラマの想定範囲外のシステムは作れないためそれ以上のことは結局自分で作れ、となります
結局何を言いたいかというと、「面倒なことはやりたくない」。以上
こんなの考えてみた 「2画面でプレイヤー1と2が別れているゲーム」 たぶん既出だと思うが・・・・・・
ティンクルスタースプライツ
あ、そういう意味なの?
1画面でプレイヤー1と2が別れているゲーム
クォース
クォースは斬新だったな. と言うわけで,敵をショットで撃つ以外のシューティングはどうだろ. 例えば… 敵を掴んで投げる とか? ありきたりだなぁ.
プリゾナービームか…
3人同時プレイとかやればたぶん斬新だぞ! ・・・超兄貴のアレはオプションだけなのでなしの方向で
ツインビーのどれかに3人PLAYのがなかったっけ。 三体で手を繋ぐと凄いビームが出るやつ。
ガントレットは全方向スクロール4人プレイシューティング?
1画面3人同時プレイシューといったらターボフォースと戦場の狼2くらいしか浮かばないな
しまった、無知さらけ出した! ・・・ガントレットはシューティングに含まれるのか・・・
ターボフォースって3人同時できたんか
無敵の追尾弾が自機を襲ってくるが、敵にも当たり判定があるので うまく誘導してやると敵を倒せるとかいうのは? ・・・ちょっとうっとぉしそうだな
紫炎龍エクスプロージョンの何面かのボスで出来たなそれ。 一発ネタとしては笑えるが。
>>737 ゲーメストの読者募集ゲーム欄で(「はねたまご」だったっけ?)で
そういうのがあったような気がする。追尾弾じゃなくてムカデ風多関節
キャラが追ってくるんだけど。
セガの四人同時横シューってのがあったな。ガントレット筐体っぽいの使ったやつ。 多分アメリカ向けに開発されたんだろうけど、コインを入れれば入れるほど強くなっていくというキャッチが胡散臭かった。 いい加減スレ違いか。スマソ
カルテットかな
あんま関係ないんだけどさ,Playerをカタカナで書くときって,プレーヤー?それとも,プレイヤー? 個人的にはプレイヤーなんだけど。
lapislazuli欲しいのですがどこかに落ちてるのでしょうか?みつかんねぇ・・・('・ω・`)
>743 googleに聞いたら 全言語のページから+プレイヤーを検索しました。 約1,270,000件 全言語のページから+プレーヤーを検索しました。 約1,380,000件 ・・・わりかし互角。 個人的には「プレイヤー」だな。
JIS的にはプレーヤかな?
俺はゲームのPlayerは「プレイヤー」 再生機のPlayerは「プレーヤ」と言ってる・・・・
以前どっかのゲームでは「プレーアー」って書いてあったのを思い出して爆笑した。
749 :
743 :04/03/24 17:04 ID:Gdeh1Zkj
Config画面の表記を考えていたのですが,一般的にはどっちも流通してる感じですね。 手元にあるゲームのマニュアル読み漁ってみます。 っていうか,最初から読めば良かったですね。 >745-747 勢いで書いた失礼な質問に丁寧に答えていただいて,ありがとうございました。 >748 ワロタ 「プレーアー」にだけはならないように気をつけますヨ。
おい、斑鳩高校が負けてしまったではないか。
予想通り斑鳩スレ見てきたら選抜の話題だった。
2日分くらい消えた?
復活してる!?
752 名前:名前は開発中のものです。[] 投稿日:04/03/25 14:50 ID:mDlUdfpu
縦スクロール3Dシューティングのスクロール処理について、
1. 一般的な3Dゲームのように地面は動かさずにカメラを動かす。
2. カメラは固定で地面を動かす。
3. キャラクターはカメラの影響を受けないようにして地面は固定でカメラを動かす。
他にもあると思いますが普通どんな感じなんでしょうか?
753 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 15:08 ID:uxZXQBMG
レイストームはどうやってると思う?
754 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 15:12 ID:I9lHEMTg
>>752 3の方法は始めて聞いた
画面外に出た玉とかの処理を考えると1は無意味にダルイヨ(´д`)
755 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 15:19 ID:S5YyhTyg
>>752 強制スクロールだったら2の方が画面固定シューと同じで、常に同じ座標で計算できていいような気がする。
任意スクロールやアクションだったら1の方式でないとキャラ配置が面倒じゃないかな。
756 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 17:33 ID:+inoUp+H
スターフォックス・スターフォックス64のような3Dシューティングは2の方法なんだろかな
757 名前:名前は開発中のものです。[sage] 投稿日:04/03/25 19:12 ID:lrvsDftl
>>752 弾幕系だと、3が正解かと。
D3Dは3Dトランスフォームがメチャクチャ重いことを実感させられた。
2Dクソ速ええぇぇ!!
そーいや、SSのシルバーガンは
実際のゲームではレンダリング済みの2D絵(ボス以外)を、
3Dのデモ画面では3Dオブジェクトを
使ってやってたな。アレはマジ凄いよ…
758 名前:752[sage] 投稿日:04/03/25 20:53 ID:mDlUdfpu
1はFPSやMMORPG系って感じがしますね。確かにキャラクタ管理が面倒臭そうです。
2は背景が完全に強制スクロールで淡々とスクロールするタイプなら一番楽かな?
3は高度を上げ下げしたりビルの隙間に吸い込まれるような凝った演出が出来そう。
3にしようかと思ってるんですが自機の左右の位置によって画面が左右に少しスクロールするタイプの
シューティングってありますよね。あんな感じをやりたい場合自前でキャラの座標を修正しないといけなくなる?
カメラの姿勢を殺しておいて自前でパンするってなんだか複雑な気持ち。
推測するにレイストームやグラディウスVは2なのかな?
背景にこだわらなければ2なんだろうけど。
759 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 02:33 ID:A90WqE+p
座標系を2系統持っておいて
描画時に合成するとかすれば?
760 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 02:54 ID:+CeMOBN2
世には出さなかったけど759に近い形で作ったことがあるよ。
ゲーム空間からワールド空間へ変換する行列を作ればいいだけの話なので。
761 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 03:25 ID:lYL1ZdP1
原点からの相対位置か,カメラ座標からの相対位置か,の違いしか感じないんだけどなぁ・・・。
762 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 08:37 ID:hV+ngtVh
>>758 >>752 の3って斑鳩みたいな感じですよね?
763 名前:752[] 投稿日:04/03/26 14:11 ID:wuS+wbFI
>>759-761 要するにカメラを2つ持って使い分ければいいんですかね。
片方はスクロール用で常にカメラは地面をまめる様に動かして、
もう片方は常にワールド空間の原点を見下ろすかたちで。
キャラクターは後者のカメラで座標変換(と言うかほぼ無変換)。
必要に応じて両方のカメラを同時に動かせば左右のパンニングも表現できますね。
>>762 実は斑鳩ってやった事ないんですよね。
DC版買ってみるかなぁ。
764 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 14:13 ID:AL8Oj5h9
FPSのシューティング作ろうかと思うんだけど、
任意の目標に対する追尾カメラってどうするん?
適当な感覚の点をベジェ曲線とかで補間するのがよいのかしら?
まぁ肝心の敵の挙動もさっぱりですがね。
鯖が逝ってたのか・・・
俺が書いたレスが消えとる… カメラ1つにしてゲーム座標に配置して ゲーム座標からワールド座標への変換行列を用意してやれば 手間も掛からず簡単に実装できるという趣旨の内容を書いたのだが
759 :
752 :04/03/31 10:14 ID:rjSKXijA
復活おめ。
>>758 脳内には残ってますよ(藁)
world * view * proj と game * world * view * proj っての。
厳密に言うとこう?
world * (game * view) * proj (括弧は便宜上つけてみた)
world は各モデルの変換行列ですよね?
なんだか混乱気味でsorry.
>>759 ああっ、ごめん。思いっきり勘違いしてた。
順序はworld * game * view * projですね。厳密に言うとどうだろう(笑)
括弧の順序の付け替え次第で結果は同じでも意味の捉え方はかわるからね。
worldは各モデルをゲーム空間へ変換する行列で、
ゲーム空間からワールド空間への変換行列がgameという感じかなー
761 :
752 :04/03/31 18:59 ID:rjSKXijA
>>768 なんとなく理解しました。
通常の model -> view 変換の前に model -> game を行ってから game -> view ですね。
実際の処理では gameView = game * view を SetTransform(..._VIEW, gameView); とすれば
各モデルに対してゲーム空間に変換する作業ははしょれますね。
ゲーム空間に変換しない背景とかはそのまま SetTransform(..._VIEW, view); してレンダ。
これなら基準となるカメラは1つだし。
762 :
名前は開発中のものです。 :04/04/04 21:08 ID:tyCvmNft
今シューティングゲームをdirectx9使って作ってんだけど なんか全体の動きがカクカク でもメディアプレーヤーと同時起動させるとなぜかサクサク動く なんで?普通逆じゃない? 情報が少なくて申し訳ないが、これだけでピンとくるシトいる?
>>762 タイマーの精度を明示的に変更しろ。
timeBeginPeriodだったかな。
メディアプレイヤーを起動するとタイマーの精度が変更されるためそういう状況になる。
その時点で一番精度が高い値が使用されることになるので。
メディアプレイヤーを起動すると2chブラウザの動作が速くなるなんてのもあった。
どんなブラウザだよw
766 :
名前は開発中のものです。 :04/04/05 00:10 ID:wbaZXZRt
>>763 おぉサンキュ
まだ試してないが、なんとなくそれっぽいね
みんな音楽はどうやって調達してるんだ? 自分で作れればイメージ通り作れるから一番良いのだろうけど・・・
自分で作ります。
外注
音楽ってmp3?mod?オリジナルドライバ? 漏れはオリジナルドライバなんだけど、 最近の人ってMML理解できないらしいから どうしていいのやら・・・。
なぜにMML? オーディオデータを流すほうが扱いやすいじゃんか。
何時の時代の人間だって感じだな
どのマシン環境でも統一した音がでてサイズを抑えるというのなら そっち方面はひとつの解だとは思うけど そこまでやれるならサウンドフォント自前でもってソフトウェアMIDIでも 作った方がいいような気がする そしてうまくいけばそれなりに(ライブラリだけでも)メジャーになれる SCCやFM、PSGのような音が欲しい場合はMMLベースでもいいと思うよ PCM全盛になって昔は音楽だめな人もMMLで手軽に曲作っていた人を発掘できるかも 俺も鍵盤はわからんかったけどCDEFGABだけはなんつーか体が覚えてた mp3などの圧縮形にせよ動作環境がwinならSTGでも負荷的に問題はあるまい
呆れて反論する気も無くなる
音ゲーならまだしもそんな部分に時間かけてどうするんだろう?
趣味だろ。ふぁみべのよっしんも数年かけて色々模索してたな。 Z-MUSICとかMDXとかTSSとかMODとか... ところでCAVEシューティングのBGMがADPCMの垂れ流しからMODに変わったのは どういう意図があったんだろう。ROMの節約だろうか?
Z-MUSICなんて聞いたの何年ぶりだろう。
あの基盤の制約じゃなかったかなあ 基盤性能なんか怒首領蜂より大往生のほうが悪かったりするから酷いもんだよ
PC歴の長いプログラマが陥る罠かな。 PC界隈で使われてきたMMLやMODに入れ込んでしまうの。 そもそも古今MMLがまともな音楽シーンで使われた試しはありません。 こいつは昔の廉価音源チップを載せたPC・ゲーム機でのみ有用な打ち込み手段。 使用音数が増えたり、曲が緻密になるに従って、打ち込み効率が底なしに落ちていくから。 ゲーム音楽でも、アマチュアを含めて、もうMML使ってる人間なんかいない。 普通にストリーム再生したほうが、広い範囲からより腕のいい作曲家を募れるでしょう。 今のコンピュータ音楽は音符を打ち込むだけの世界じゃないしね。 ま、Oggあたり使って、ループ開始点を指定できるようにしておけば十分かと。 これもプログラマはよく忘れるんだけど>ループ開始点 (イントロとか弱起とか入れられまへんがな)
ループに関してmidiやpcmだけやってきた人間は忘れてるというか無頓着というか mml時代からやってきた連中はそここだわるけどね fmやpsg、sccの音色ダイスキーな人間で、PCM垂れ流し以外の 世の中のゲームの音楽ってあまりいいものじゃないのばかりって感じる種族なので mmlでがんばる人は応援したくもなる pcm全盛になってからゲームの曲イマイチなものばかりぽ
確かに楽器は音楽の中で重要な位置を占めて居るけれど かといって楽器に制限されて視野が狭くなるのは悲しいことだと俺は思う。
782 :
770 :04/04/11 01:30 ID:F6uVTG3Z
いやぁ、GBAで遊んでるんだけど、 結局簡単に作ろうとするとオリジナルドライバ+MMLになっちゃったんだけどね。
FMでもPSGでもオーディオ化したものをストリーム再生すりゃいいんじゃ? プログラムのことは判らんけど、MMLからじゃなくてSMFからじゃだめなの?
>>782 あー、GBAの音源ならMMLはアリかも。
>>783 自前でソフトウェア音源実装するにしても、
標準MIDIファイルで駆動できたほうが大多数の音屋には嬉しいでしょうな。
PCM波形部分はDLSに対応して。
(もっとも、DirectXならDirectMusicが既に標準で対応してるけど)
785 :
783 :04/04/11 10:04 ID:4JV3b2r6
音屋探してもMMLでやってくれっていったら嫌がられそうだw。 俺自身はPC-88のCMD PLAY時代からMML好きなんだけど、 こんな奴はあまりいないw。
GBAだと、PCMオンリーでいい曲なのって少なくねえ? てーか、全体的にノイジーすぎ。 海外のMOD自体からやってます、みたいなのはいいけどな。 日本のは、たまにPSG+PCMを使いこなしてるのがいいね。 まー、PCはさすがにPCMオンリーだな そういや、大往生はサントラ買って、 いいアンプやスピーカー聞いてもさっぱりダメポ 作曲者がよくても元の環境があれじゃあな
> MOD自体 MOD時代
所詮MMLなんぞ楽譜の文法で演奏の方法ではないんだがなあ。
MMLで演奏した奴をOGGで保存して何が悪い。w
まあ冗談だから突っ込まんでくれ。サイズが激しく非効率だからなw
でもね、このご時世、大容量・高速転送なのだから。
サイズに関してはあまり深く考えなくていいと思うな…。
>>786 大往生の凄みは曲自体のパワーってよりマップとの同期が一番かな。
ゲームミュージックってのはゲームと一体になって完結するものだと俺は思う、
ゲームと音楽のどちらかが一人歩きしては駄目なんだな。
具体的に言えば5面道中なんかはBGMのお陰で本当に物語のようだ
>>779 ああ、だからゲームミュージックが普通の音楽になったんだな…
と納得。
>>781 制約の中から生まれる音楽というものもありますが。
同意。 でもまあ曲作る人間が制限すれば機能上の制限はいらないけどね。
それって制限する意味がないと思う…
そお? たとえばOPN再現のためにFM3声PSG3声に制限して作れば同じじゃ?
今MMLを使うのって、プログラマの都合でしかないよな。 (例外もあるけど)普通は1トラック1和音になるから逐次処理がしやすい。 余計な分岐が減る分軽くなるという話もあるが。 おいらもGBAで遊んでるけど、最終的にはやっぱりMMLコンパイルっす^^; SMF2MMLコンバータ作ったのでコンポーザにはSMFで書いてもらってるけど。
>>789 今のゲーム音楽に普通の音楽が多いのは、普通の音屋が作ってるからだよ。
音源とか入力方式とかは関係ないと思われ。
昔ながらのゲーム系音屋のほとんどは、低スペック音源で精一杯で、
音源の制限(というか防壁?)がなくなるとフェードアウトしてしまった。
もちろんそうでない人もいてがんがってる。
でも、ゲームは普通の曲が流れるより、 ピコピコ音の方が合ってると思うのはジジイだから? で、音屋さんがGBAで組みやすいようにしてあげるにはなにがいいんでしょ? MDI?
同意だ。 ピコピコ音っていうか、メロディーラインのはっきりしてる音のほうがゲームには合うと思うんだがなあ。
同意。 全盛期の東亜節...燃えるZe!
最近のRPGとかだと、キャラの台詞が被ったりするから、 メロディが弱く、あまり主張しない映画音楽みたいなのを要求されるのよ。 だからゲーム音楽をやりたがる若い人はこういう曲を作る傾向が強いね。
ゲーム音楽あってのゲームだと思ってたのに、今はそうなんだ。 古代祐三氏のインタビューの記憶が未だに忘れられないわ。 ファルコム厨ですみません。
そこらへんにしときましょうや。
シューティングのBGMならメロ強くても平気だけどね。
MMLはすっごく苦手だけど、内蔵音源系の音は大好きだから シーケンサ(ピアノロール式)で音符並べた後に、それ見ながら MMLに直してる。まんどくさいけどこうしないと曲作れない。
>>803 VSTiでよければOPM使えるやつとかPSG使えるやつとかあるぞ。
Windowsしかないけど。
あーすまんシューティング関係ねえや。
シューティングとサウンドは切っても切れない関係。 グラディウスの逆火山の曲をゲーセンで聴いた時はびっくらこいた。 グラディウスのダブルってなんで弾が出ないかと思ったら 前方向にに2連射してたのが、斜め上と前方向に1こずつになったからなんだね。 同じバッファかよ(´・ω・`)
いまさら何をいっとるのかね?w
グラの基本中の基本だなw
グラはちゃんと発射元(オプションor自機)を管理してるから、2発になるんだろうな。ここを手抜くと、 オプションが地形にめりこんでいたりするとき自機が普段より多く連射する現象が起きそう。
と思ったけど、オプション、自機それぞれ別のショット領域を与えておけばいいのか。 最近は画面端まで連射できるのが当たり前なので錯覚してた。
画面上に一発しか撃てなかった時代が懐かしいな。
やっぱギャラクシアンかなぁ>一発 狙い撃つ緊張感が好きだ。
>>805 AC版だと2発分空になってないと次が撃てないけど、
FC版は上下別にチェックしてるから、片方が画面に残ってても
もう片方は撃てるんだよね。なのでちょっとだけ強い。
>>810 弾どころか、弾の爆発も同じバッファのゲームがあるから
撃ち逃して画面上方で爆発すると次が全然撃てなかったり。
やっぱりインベーダじゃない 1回だけやるなら、複数のオブジェクトを動かす方法と、方位を得る方法くらいかなぁ?
・2発両方が空になっていないと撃てない ・空のほうはもう片方に関わり無く撃てる この2つのシステムは最近のSTGでも共存していて、たとえばプロギアの嵐なんかは ゲーム中の細かい条件でこれが切り替わったりもしている。
え?ごめん聞いてなかった。もう一回説明して。
なにが?
818 :
名前は開発中のものです。 :04/04/22 22:06 ID:g9gmvMTD
まだプログラム歴は浅いのですが対人戦闘の格ゲーっぽいシューティングを
つくろうと考えています。
そこで質問なのですが、一人のキャラの攻撃に複数種類がある場合、
(近距離攻撃、遠距離攻撃、必殺技のようなもの..etc)
それぞれのクラス(AttackクラスやShotクラスなど)でつくってからActionクラスというのを作ってその中に
入れてもいいのでしょうか?
やはりActionクラスな中にそれぞれ関数として(Attack()やShot()など)
ひとつにまとめたほうがいいのでしょうか?
ただ、後者のほうはいまいちやり方がわかりません。
(特に画像などを読み込む初期化)
ちなみに、アスピライトというページのスケルトンプログラムを使って作ろう
としています。
ttp://www.plustarnet.com/aspil/
>>818 そこのページでやってることをざっと見てみたが、
「弾や敵が一種類しかいない」ことを前提にしてる気が。
漏れなら、
Action、Drawといったインターフェイスを持つEnemyクラスを作っておいて、
その派生クラスとしてZakoクラスやBossクラスを作る。
画像は面倒なので、特に量が無ければグローバルにして、
起動時に読み込む。
>>818 漏れも丁度、似たような所やってる。開発状況報告スレに書き込んだ。
それなりにコード追加の柔軟性重視で構築してるんだけど、
(逆に、CPU負荷をあまり考えない作りに、、virtual()、文字列比較、dynnamic_castが多々)
みっともない部分が多く、見せれない状態だが。(規模もそれなりだし)
サイキック・フォースみたいのを作りたいのかな?
漏れも今後やりたいと思ってたし、作り的にもシンプルかと思う。(1対1という点で)
因みに、漏れの場合、アクションクラスXXを、キャラクラスXXが、任意の数保持して切り替え。
といった感じ。
821 :
名前は開発中のものです。 :04/04/23 19:54 ID:69UU5Qh3
スペハリの地面ってどうやって作ってるの?
フラクタル
>>826 、828
なんか同じ元ネタな予感。俺も含めてナ
#826にいたってはゲームシステムまでかぶってる予感
俺の場合、ゲームシステム部に弾クラスをあらかじめ多数用意し、
キャラクタークラスが弾を撃った段階でそれを割り当てる、という方法をとってる。
>>828 virtual関数呼び出しとかに掛かるコストなんぞほとんど誤差程度
昔の「遅い」ってイメージに毒されすぎ
1000万回くらいループまわして計測してみろ
おやおや。
825 :
820 :04/04/24 04:34 ID:wMAF1O76
>>823 >1000万回くらいループまわして計測してみろ
まあ、気にしてないので、採用してる訳で、、。
ただ、文字列比較等、最適化出来る所は「いずれ」やろうかと。
(ただ、最近のCPUは高性能なので、そのまま放置する可能性あり)
クラスのプール化も、いずれやろうかと。
今は2Dだからか、全然負荷は気にならないけど。(400キャラぐらい管理)
カテゴリー別にキャラ管理するだろうから、必要だろうけど。
今後、データドリブン化する場合、クラスは汎用的なものにする必要あるかも。
プール化も効果的に出来るし、、どうしようかなー。
826 :
818 :04/04/24 08:54 ID:n6OgNP2N
>>819 >そこのページでやってることをざっと見てみたが、
>「弾や敵が一種類しかいない」ことを前提にしてる気が。
これはここのスケルトンプログラムでは難しいということでしょうか?
このページに書かれている以上のことはできないので、
これを改良すればできるかなぁ、などと考えていたのですが^^;
>>820 はい。サイキックフォースのような感じです。
ちなみに今試そうとしているのは
player1.Shot(); と書いたら キャラ名.Shot();
となってくれるようなものです。
ただ、そのShot()の中に何を書けばいいのかいまいちわかってないのですが^^;
アドバイスありがとうございます
ふと思ったんで聞いてみる。 親子関係の実装の時、どちら主体で書く? 子供をエージェントにして自律行動させるか、 それとも親の一元管理で子供を完全に制御するか。 みなさんどちらがお好きでしょうかね
触手の場合、両方違う動きになるから楽しい
基本的には子は自律じゃないかな そうじゃないと親子にする意味あんまりないし。
背景(2D)の管理をどうしようか悩んでます。 キャラは、(triList*2)を1スプライトとして、テクスチャごとに グループ化して管理しています。HW頂点が使える環境では非常に高速かな? メッシュを作って、チップ指定から、UV値を設定というのは考えてるけど。 オーサリングツール作るのが面倒。
>>827 どういう親子関係を構築するかによるんじゃない
一応子供が親の状態を見て、行動するようにさせているけど
親も子供も互いのアドレスを保持して参照できるようにしている
誰かトランスミュージックのエピック・トランスとシンクロして ひたすら脳内に訴えかけてくる気持ちのいいシューティングを創ってくれYO!
833 :
プログラムも初心者です :04/05/01 14:53 ID:YzGOV9op
シューティングを作り始めてわからない事がたくさんあり質問させてもらいに来ました。 まず、敵の出現の仕方と敵の弾の当たり判定などです。 自分は struct tagEN{ int x,y;//敵の最初の表示位置 int flag;//画面内にでてるか int type;//どの種類か int time;//始まってから出現するまでの時間 }; EN en[100]; とやり全ての敵に出現するまでの時間を入れてやっています。 その場合に弾の判定の方は全ての敵の当たり食らい判定をし、if文でflagがたってない敵をはじくようにしています。 しかしこの場合、出現する敵の数が増えてしまうとif文の使用率が増えてしまい動作が重くなったりしまわないでしょうか? 何かもっと良い方法などがあれば教えてください。
それだと 10フレームごとに弾がどんどん出現する。弾は画面内には10発までしかでないが 画面外に弾が消えれば次の弾が出せるので 100発でも10000発でも弾は出続ける。 という状態を作れないんじゃない? 弾でなくても、敵でも同じ。
835 :
プログラムも初心者です :04/05/01 15:48 ID:o19KIfKS
つまり、一度使われたところが終わってflagが0になったところに次のを入れるといった感じにすればよいのでしょうか? もし、自分の言っている事が教えてくださった事と同じならば本当に感謝です。 こんな事もまったく思いつきませんでした。
最初にステージに出る敵すべてを起動して、時間で動き出すんですよね。 マリオみたいに縦横に行ったり来たりスクロールするゲームでは そういうやり方かも知れないけど、シューティングの場合、背景をスクロールするごとに カウンタをアップしていって、ある値の時にあるタスクを、空きのワークエリアに 設定というやり方でいいのではないでしょうか。 画面内のタスクはflag=1で、画面外に出たらflag=0で、スクロールポインタが ある値に来たときの起動は、ワークエリアすべてを検索してflag=0のワークエリアを 探して、そこへタスクのデータを設定するのです。 >一度使われたところが終わってflagが0になったところに >次のを入れるといった感じにすればよいのでしょうか? その通りです。
837 :
プログラムも初心者です :04/05/01 19:48 ID:o19KIfKS
>>836 ええ、タイムにどのカウンターで出てくるかというようにやるつもりです。
この場合、毎カウンターごとに全ての敵の出てくるべきカウンターとの確かめをするのでしょうか?
>>837 >毎カウンターごとに全ての敵の出てくるべきカウンターとの確かめをするのでしょうか?
いいんじゃないかな?それで。
ただ、全ての敵じゃなくて待機中の敵だけでいい筈。
その他、最適化したいなら、敵出現のバッファを幾つかに分割し、
カウンタでソートしておいて、現在のカウンタから先だけをチェックすればいい。
なので、敵structに、出現カウンター、出現位置をつける必要はないかと。
最近の環境で開発してるなら、if文の回数とか、あまり気にしなくてもいいと思うよ。
CPU速いんで。
アルゴリズム系の本は読んでおいた方が良い。
初めてゲーム(STG)を作りました。
動作確認中です。
動作スペックを満たしていながらも、画面がおかしい、音が出ない、60fpsでない、ジョイスティックで操作できない等がでたら教えてください。
それと、クリアできる人を探しています。
一応クリアはできます。
今のところ、クリアできたのはメインデバッカの一人だけです。
次回作の難易度調整の参考にしたいので・・・。
意見、アドバイス等があれば言ってくれればとてもありがたいです。
宜しくお願いします。
http://www5f.biglobe.ne.jp/~yakimorokosi/
>>839 やってみたよ
・時々落ちる(タイトルでボタン押すと落ちたりする)
・ジョイスティックのアナログ軸にデッドゾーンの設定してくれ
・終了後ウインドウ位置が元に戻らん
こんなとこですかね
DPPパラレルだと操作できない。JoytoKeyも無効。 なので、うちではジョイパッドが使えず、キーボードでしか操作できなかった。 バイクバンディッツのように、入力にDirectInputを使わないモードがあるといいんじゃないかな。
>>839 やってみた
Joystickオンだと解像度変更しに行った直後に終了しちゃって起動せず
使用パッドはUSBの、どっかの安モン
オフにしたら遊べたよ
私は1面もクリアできんかった
もともとSTGは得意じゃないんだけど
すっげー難しい! と思ったよ
参考までに
>>839 ためしにやってみた。
うちにあるPSパッドのUSB変換器つかってまともにパッドは使えるっぽい。
ただし、
>>840 と同様に「やきもろこし」っていうロゴが出てるときにボタン4(だったと思う)押したら落ちた
難易度高過ぎ。STGは大往生5面いける程度の実力だが、2面途中までしかいけなかった
(初プレイでの感想ってのもまぁあるが)
1面でいきなり左右両方から弾幕貼るってのはどうかと思う
あと、あれだと誘導弾使う気になれない
大量に撃破できないため、誘導弾を使ったら死が待っているとしか思えん
>>839 設定後OKボタンを押しても起動せず
Joystickオフでも同様
>839 試しにやってみた バグとかは特に見つからなかったけど 難しすぎヘタレシューターには1面もクリアできなかったよ 1面ボスであの弾幕はやりすぎ大往生より難しいと思う あとBGMがちょっと変かも 短い曲をループさせてるんだろうけど繋がってないから曲の切り替わりが気になってしょうがない(これは個人的な感想なんで気にしないでくれ)
>839 >842に同じく、USBパッド有効だと直後に終了しました。 あと、6FPSしかでないっぽい。ので、難易度とかは全くわかりませんです。
847 :
プログラムも初心者です :04/05/03 01:03 ID:yvAzXtSL
敵出現のまでのtimeと位置を入れる時にはすべての敵に手打ちで入れるべきでしょうか? 簡単な質問ですみません。
849 :
プログラムも初心者です :04/05/03 04:33 ID:yvAzXtSL
なるほど、ありがとうございます。 というより、たまたま今来たら↑の方の書き込み時間が近い事に驚きです。
>>839 家のしょぼいビデオカードだと自機が消えたり表示が
変。難易度は高いけど作りこめば名作になる雰囲気はある。以上
>>847 背景とシンクロさせない雑魚敵だったら、見えないジェネレータが
一定時間画面端からランダム、又は決まった点から編隊状に敵吐き出すようにすれば、
手間が大分軽減されるんでない?
...ってもうやってるんでしょうけど。(w
>847 1面だけじゃなかったり後で調整をするようなら 俺は簡易エディタを作るだろう。
>>851 この方法なら苦労せずに100匹でも10000匹でも敵を出せるから、最初はこれがオススメ。
2面くらいあるシューティングが作れるくらいまで慣れたら、
簡易エディタ作ってちゃんと敵の配置をしてみるといい。
プログラム、ゲーム作り、ゲーム用ツール作り、それぞれに慣れてれば、
最初からステージエディタを作るのも良いかも知れない。
>>839 やってみた。数回やったが真琴まででEND。
とりあえず…
しょっぱなから中型機が多くて、最初のパワーアップ取るまでかなり押される。
弾幕が辛いのもあるけど画面全体をボスがぐるぐる回るのが辛い。蜂というよりタイトー系?。
ホーミング使わせたいのは判るけど、個人的にはボス戦はストレス溜まる。
パワーアップしちゃえば、2面までやった限りでは道中は簡単。ボスはかなり厄介といったとこ。
ボス戦がイヤンなのでクリアまでやる気になれなかったスマソ。
難易度に突っ込み入れるけどポテンシャルを 評価しないのはここの住人が雑魚で悔しいから なんでつね。(わらわら
能書きたれる前に藻前が評価してあげたらどうだ。 もっと素直になったほうがいいよ。
俺は面白いと思うよ。同人STGなんてバランス 滅茶苦茶だからあんなもんだろ。
CPU CLOCK -1896MHz って合ってんの?
ポテンシャル?
パフォーマンス?
>>839 氏はポテンシャルなんて言っていないと思うけど。
>>855 が言ってもらいたいポテンシャルの評価ってこんなところか?
・痛みに耐えてよくぞこれだけのプロジェクトを完遂した。感動した!
・すごい弾の量ですね、ボクの技術じゃ到底できませんよ。
・キャラクターに萌えました! エロ画像キボンヌ
...って、全部評価になってない 駄レスやん(w
Cと古典的タスクらしきものでやってきたけど ここでC++とSTLの勉強でもということでごそごそ資料あさりしてる。 ……タスク真理教から脱会するのって難しいなぁ。
855はなんか煽り入れようとして失敗した模様
>>839 青い方でプレイ、2ボスまでだがとりあえず
・道中はパワーアップを取るまでキツイが後は簡単、もう少し難しくしてもいい。
・1面ボスからはっちゃけすぎ、いきなり回転したときはビビった。
道中とボスで難度に差がありすぎな気がする。
・自機が丸弾を撃ってると敵弾が見難い。
自機の弾をうすく敵弾を濃く表示するか、自機の弾と敵弾の色を別系統にして欲しい。
上二つはあくまで感想、別にこのままでもかまわない。
敵弾が見難いのはやっててストレスがたまる、これだけは何とかして欲しい。
>>862 864 本人もゲームの感想を聞いていた訳では
ないから別に良いのですね。失敬。
技術的な意見を求めていたのか
純粋にプログラム面だけなら、やりたいことは出来てるみたいだから パっと見では大してツッコミいれるとこもないだろう。 中でなにしてるかなんて2DSTGじゃ大差ないだろうし。 ポテンシャルに関しては、悪いがこのぐらいなら今や普通だからなぁ。 ツッコミいれるなら、弾の撒き方とか配置とかゲーム構成の話になっちまうが。
まとめとくか。
> 動作スペックを満たしていながらも、画面がおかしい、音が出ない、60fpsでない、ジョイスティックで操作できない等がでたら教えてください。
>>840 >>841 >>842 >>843 >>844 >>846 >>850 (もう少し環境を晒せば、そのカードでは無理なのかそうでないかがわかる)
>>858 > それと、クリアできる人を探しています。
該当者なし
> 意見、アドバイス等があれば言ってくれればとてもありがたいです。
省略
ポテンシャルって何のことについて言ってんのかいまだにわかんないんだが。
>>870 たぶん
「内に秘めたエネルギー」⇒「将来化ける見込み」「将来の発展性」
とかだろ。知らんけどw
あんま執着しても実りはねーぜと。
ポテンシャル=スゴイ度 じゃないか?
完成度という意味で受け取ったが。
まぁ、シューターは横文字に弱いということがお互い確認できたわけだ。
お互いかよ!w
ポテンシャル>潜在能力 イマイチ、ピンと来ないが、、。 動いてるもの見ただけでは、わからん事多いし。 プログラム的には開発環境や内部動作とか教えてくれんと何とも言えない。 言ってもらおうと思ってるようにも見えないし。
潜在能力、ねぇ。 ソース見たいなぁ。
ポテンシャルを評価するということに意味がない。
>>855 はポテンシャルの意味も分からずに、したり顔で使用した。
ということじゃのう。
自分の場合、ポテンシャルの評価もお願い。と言っとくか。 ちょっと先になりそうだが、、。
ゲームの評価でポテンシャルという単語を使うとマズい、というのを
>>871 と
>>878 が丁寧に解説してくれている。
なにか他の言葉を使おう。
・841氏参考に、Joystickを修正してみました。 ONの時はDirectInput使用。 OFFの時はDirectInputは使用してません。OFFの時のみ、JoyToKeyが使えると思います。 DirectInput使用の時のJoystickも書き換えてあるので、動かなかった方はうごくようになってるかも・・・です。 こういった、パッドによる動作の不具合を調べる為いくつかのパッドを持っておくべきなのでしょうか?それこそ、ビデオカードによる画面の不具合のためにいくつか持っておくべきなのでしょうか? ・画面について 青弾と敵の弾の色が、かぶったのはどうかと思いましたがスルーしましたw青がしっくりきたので、そうしたのですが・・・。 画面で使われる色についてですが、ピンク弾は画面が安っぽくなるとかなんとか、ケイブ関係者さんがそんなこと言ってたような。 このゲムはもともと絵(画面)が安っぽいのと汚い弾幕?のため、青だけだと本当に弾がわけわからんという理由で 途中からピンク弾が存在します。画面の色使いで、なにかありますか? ・BGMと効果音について プロギアの嵐がそうだったような気がするのですが、効果音の音(ジュエル回収)が大きすぎてBGMが聞こえなかったりしませんか? 私はBGM重視派なので、そういったことが無いようにしてみましたがどうでしょうか? ・内容について 敵の配置、弾幕等は私の決定的な知識不足です。結果的にあんな難易度になってしまいました。 ソースは見せられません・・・ええ見せられたものではありません。 実際、2Dゲームのプログラムでやることなんてほとんど無いと思うのですが。ほとんどDirectXがサポートしてくれていますし、パソコンの性能も高くなってるので、処理もはやいですし・・・。 もう2Dゲームは、きれいな絵や面白いシステム、付加価値等をつけるくらいじゃないのでしょうか? まぁそのすべてがないゲームをつくる人間が言うのもなんですが・・・。
>>881 いろいろ指摘が出せるくらいの水準には達してるとも言える。
調整によってはかなり遊べるゲームになるかと。
>>881 >BGMと効果音
バランスの好みは人それぞれなので
コンフィグで音量バランスをいじれるようにすれば良いのでは。
技術的にやっかいなことでもないでしょ。
>配置、弾幕
プレイヤーキャラがどういう風に動くか
ある程度想定しながら配置していくといいと思うよ。
特にボス戦はどう避けさせたいのか見えない攻撃が多かった。
884 :
841 :04/05/05 16:59 ID:7BCRqSjN
Joystickの設定OFFでJoyToKeyが使えるようになったので、パッドでプレイができた。 あとはDirectInputを使わずWinAPIのjoyGet〜あたりで パッド入力を見るモードがあれば良いと思う。 DirectInputの罠に対するFAQページがありそうなものだが…見つけていない。
DiretInputにかぎらず、創る上ではまった!ってのにはどんなのがある? 漏れはテクスチャサイズに2のn乗でないのつかってて 表示できない環境があったことかな・・・あまりに初歩でスマソ
ハマりポイントは結構あると思うんだが、いざ思い出そうとすると出てこないなあ。
>>839 SMARTJOYPAD3で動作確認です。
でも再起動するとボタン設定が初期化されるのはいかがな物かと…
あゆで3面開幕まで。 ・1面道中はまあ、しょうがないとしておこうか。大往生白2面ランクぐらいだし。 ・1面ボス、第2形態からなんかやけくそ感がしてきましたよ。弾封じ+回って回避でもかなりしんどい。 ・発狂に移行したときの難易度は大往生白2面ボス以上? ・2面道中、ラスト以外は非常に楽しそう。○使って稼ぐか晒すかの世界。 ・ただし、ラストであれが2体同時で出てくるのは反則ぎりぎりだろうと。とにかく硬すぎる。 ・2面ボス、私の腕では第1形態確実に決めボム1ですが。あんな弾幕抜けて前まで進めねーよ! ・第2形態、炸裂弾地獄。ケツイ4ボス程度?かなり激しすぎる。というか、弾道が読めませんが。 ・発狂したほうがまだマシかもと言ってみるかも。 ・3面、中型雑魚が画面右下から出てきたところと衝突して死亡。えげつねえ。
PCゲーム板のスレみたいな感想ですな。
いい感じにスレが伸びてるな 950くらいで次スレのテンプレのためにリンク追ったりしておいたほうがいいかもね
ところで…なんか道中に違和感あると感じたんだけど、 地上物が画面下方に行ったり、自機に接近したりしても、弾を吐きつづけてるとこが気になる。 そういう場面でしっかりと弾封じさせると「気持ちよく」プレイできると思う。 ケツイとかやりこんでると、その気持ちよさが分かると思うんだけど。
このタイプのゲームなら小型地上敵は弾封じできるのが一般的だね ケツイの場合弾封じできない中型地上敵も意外に多い
あー、ケツイの4面のカニみたいなやつか。
あのさ、初歩的なことかもしれないけど 「DirectInputの落とし穴」 ってヤツについて詳しく教えてくれないかな?
さあ、具体的に何のことを言ってるかは分からないけれど。 どうもカノン蜂やってると、十字キー離しても、その方向に移動しつづけるということがあるな。 何かバグを持ってるんではないだろうか?
898 :
895 :04/05/09 14:19 ID:XdlBilRP
>>896 あ、ごめん、曖昧な書き方しちまった
質問の元は
>>884 、「DirectInputの罠」だったね
DirectInputを使う上で注意しなきゃならんことがあるのかなと思って
要は、今回話題になってる互換性のことかな?
DirectInputに対応してない入力機器も多くあるということ?
そういえば、どんなソフトにもだいたいオプションで
「DirectInputを使う/使わない」ってのがあるよね
DirectInput自体には罠と呼べるようなものは殆んど無い気がする。 大抵デバイス自体や使い方の問題かと。
PC版のSTGスレで聞いたらこっちの方が作者がいていいのではということで こちらで質問があります。 Win98+DirectX9の環境なんですが、観音蜂がエラーで起動しないです。 同様の環境で似た現象が起きてる方はいませんか? エラーメッセージ見るとkernel32.dllで落ちてるんでメモリとかの問題かな という気もするんですが・・・ GeForce2MXで、ドライバは最新です。
ってもともと動作環境ME/2000/XPだったのね・・・
>839の観音蜂は封印が起こってしまうと、 ○弾のターゲットを自分で設定しようとしたときにたいてい封印状態になってしまって、 プロギアで言う連爆ができなくなってしまうので、これはこれでありだと思う。 やっぱり自機が下方向からの攻撃に弱すぎ。天使2匹が下から来ると終わってる。 3面なんて上から来る敵と下から出てくる敵が同じぐらいの比率なのにこれはしんどすぎ。 それでも一応4ボスまでは行ったけど…結構処理オチしているので参考にはならないかも でも処理オチ無しで3道中後半とか3ボス発狂とか処理できるの?? 一応書いておくと自分は白大往生2-4・プロギア2-4ぐらい
>839 クリアした。名雪で1面300万・2面4200万・3面8200万、3道中を奇跡の1ミス突破でラスボス突入残5、ALL時残1 2ボス第二安置使用、1ボス回転・2ボス発狂・3ボス4ボスの全部はボム使いまくりのごり押し 2面は画面の端の方に位置どってチビザコで中型機の弾をひたすら錬金 3面は中型機にある程度打ち込み&チビザコを錬金しながらついでに破壊 を中心にパターン作って20プレイぐらいでクリア。錬金中結構処理オチ有り 3面、中型機が下から出てくると否応無しに丸弾使わされてカウンタがなくなるのが嫌だった。 それでカウンタがなくなると錬爆範囲が狭くなってなおさらキツイし
観音蜂クリアしたけど…もう一回やれって言われたら無理だろうなって思う
観音蜂の起動画面で、Screen→Windowにチェックできないのだけど これは仕様?
○が画面外の敵を追っていくがその場合ダメージ与えられないのはマズー ロックし直そうとしてボタン離すと0%になるし こうなったらロックが外れる所まで離れないと駄目なのか…? でも一応4ボスまでは行った、結局2ボスまでで何機あるかですな あとゲームオーバー時にスコア表示して欲しいです リプレイ実装とまでは言わないから
6月にソフトバンクから、シューティングゲームのアルゴリズムを 解説した本が出るらしい。 Cマガの6月号にその本の前振りとして、狙い撃ちや誘導段の アルゴリズムの記事が載っている。
ピンポンパンポーン ライターの方このスレにいませんか〜
あー、オレCマガの関係者といえば関係者だけど、>907の記事や本のライター じゃないんで。
やっぱ発行後、好感触を得てないと著者としては出にくいと思われ 名無しで執筆の裏話でもいいけど(w
ホーミングレーザーの奇跡を綺麗に表示する方法とか載ってたら 買うかも。 1冊まるごとシューティングのアルゴリズムって凄いな・・・
>ホーミングレーザーの軌跡 普通にポリラインで良いと思うのだが
ポリラインストリップのことを言うつもりだった。ごめんな。 その本はかなりいい本だからお勧めだね。
>912 914 あ,こちらの読解力が足りなかったね。正直スマンかった。 とはいえ,さっきの本は本当にお勧め。ゲーム1本買うより楽しめると思う。 ソフトバンクのアルゴリズム本ってのは2D系なのかねぇ? 「2Dアルゴリズムぶっこ抜き!」とかじゃないように祈るよ。
そういや同人的には2Dの需要は高いけど、若い世代からの要望が多そう なのはFPS系だろうから、主に面の接触とか、3次元ホーミングのやりかた等の 3Dベクトル計算だったりして。
3Dのアルゴリズムは2Dにも応用利くじゃん。 今はどのみち3D使ったほうがいいから、3Dの計算覚えても損はないよ。
弾幕のバリエーションとか期待してる 蜂の〜ボス型...とか 無理ぽ
それはCマガとしては範囲外じゃないか? 逆に言えば、そういうのから本を書いたらビジネスになるかもね、とか言ってみたり(笑)
FPS系ってそんな需要あるかなあ…? あの手のゲームってプログラム以外の部分を余程丁寧に作らないと、 遊べない気がするんだけど。
やっぱワイヤフレームじゃない? GLUTとか使えばすぐにグラフィック描けるし
著者名からだと分からないけど、どこかで見たようなふいんき(ry この道では有名人な人っすか?
MAKKEN氏じゃないっすか。 TOWNSでSky Duelというボクセルの3Dゲームを発表して Oh!FM-TOWNSにゲーム(達人王や雷電伝説など)の攻略記事や プログラミングの連載を書いていた人です。 TOWNSユーザにはそこそこ有名な人かと。
弾幕とかだけでなく、多関節とかの事も扱っているとよいな。 久しく多関節使っているゲームみていないし。
>926 >誘導レーザーや触手といったカッコいい仕掛けの実現方法が知りたい方 多間接も入ってるんじゃない?
Cマガの上澄み液のような感じだったから、あんまり期待できないような…
http://gamdev.org/up/img/622.jpg の左側の画像でジ・オが撃ってるようなホーミングするレーザーはどのようにして描画するのが一般的でしょうか。
バズーカ砲の軌跡を描画するときは、右側の画像で、点線で囲っているような、
丸い煙の画像を半透明で直線状に重ねて描画するのが普通ですよね。
レーザーの場合どうなんでしょう。
こうすれば綺麗に出来る、とか、コツとか有ったら教えていただけないでしょうか。
>>929 これってホーミングしてるの?
とりあえず,
1.小さいな円(楕円)の画像を加算半透明で連続して描く。(煙と同じ手法)
2.事前にレーザーを描画したポリゴンを用意して進行方向に伸縮させる。
3.弾の座標を元に帯状のポリゴンモデルを作る。
パッと思いつくのはこれくらいかなぁ・・・。
1は実装がラクだけど点で線を表現するからその辺でムリが出る。
2はホーミングビームに対応できない。
3は演算処理の負荷が1番高い。(
>>930 が言うポリゴンストライプはコレだと思う)
個人的には3がオススメ,ビーム以外にもソウルキャリバーみたいな剣の残像とかに応用できる。
実装方法決めたらまた書き込んでください。
>>930 ×stripe
○strip
932 :
931 :04/05/28 13:43 ID:/+fpAYWQ
小さいな,って何だ・・・。_| ̄|○
それよりカンマが気になるな,
「、。」か「,.」のどちらかならわかるんだが。 なんか半端だな。
935 :
929 :
04/05/29 06:18 ID:v7iEpcua