シューティングゲーム製作技術総合 17機目at GAMEDEV
シューティングゲーム製作技術総合 17機目 - 暇つぶし2ch600:名前は開発中のものです。
09/03/09 13:35:45 M8Y9J7eH
>>753
なるほどね、大体把握(したと思うw)
>動作の部分だけ別に作る
これってどんな感じ?

俺のイメージ的には

bullet{
bulletがもってるステータス(位置とか)
moveA(){ /* 動作A */};
moveB(){ /* 動作B */};
}

こんな感じなんだけど
それとももっと手続き的?な感じなのかな

601:名前は開発中のものです。
09/03/09 13:46:24 4gpR4arb
関数ポインタ持たせてもいいけど、動きはスクリプトにして実行時に読ませることもあるしなあ

602:名前は開発中のものです。
09/03/09 13:52:06 nD/Sv/Tx
>>763
弾に直接はもたせない。デリゲートする。

603:名前は開発中のものです。
09/03/09 13:54:05 9YN/v32z
スクリプトはもう別の話だろう
設計自体が大きく変わる

604:名前は開発中のものです。
09/03/09 13:58:24 L17yPJfy
>>765
言語にもよるだろうけどdelegate作るとnewと同様コストかかんない?

605:名前は開発中のものです。
09/03/09 14:02:36 nD/Sv/Tx
>>767
デリゲートっていうと大げさか。所詮ポインタ演算だし。関数ポインタとどっこい。
気に食わなきゃ>>762でもしてろってこった。でも「いちいちnew」は絶対にやだね。

606:名前は開発中のものです。
09/03/09 14:41:27 DKKqMNCl
1フレーム内で100も200もnewしなければいいだけの話で、
new/deleteをそこまで毛嫌いすることも無いと思うお。
ちなみに俺はnewしたものはdeleteせずにプールして使いまわしてる。
クラスごとにプールが出来てテラカオスw

607:名前は開発中のものです。
09/03/09 14:46:04 M8Y9J7eH
>>766
そういう設計の話もしていいんじゃない?
というか参考にしたいから色々話をしててくれると助かる

>>768
うん、とりあえず「デリゲート」ってのを初めて知ったよw
簡単にググって調べただけだから全然理解できてないけど
オブジェクト指向版の関数ポインタみたいな感じかな?
>>763の例でいくとbullet以外にmoveobjがあって
その中にメソッドmoveA、moveBがあるみたいな感じでおk?

思ったんだけど「STG」でまとめてるけど弾幕系なのか否かで最適な設計も変わってくるよな

608:名前は開発中のものです。
09/03/09 14:47:13 nD/Sv/Tx
俺はID:c/sep/SWに突っ込まれたから答えてただけ

609:名前は開発中のものです。
09/03/09 14:55:43 nD/Sv/Tx
>>770
まぁそんな感じ。汚いから多分もっとちゃんとした実装考えるけど。

610:名前は開発中のものです。
09/03/09 14:56:41 9YN/v32z
>>770
スクリプトの解析は実行時にやるしか方法はないのか?

611:名前は開発中のものです。
09/03/09 15:15:38 M8Y9J7eH
>>772
サンクス
いや勉強になったわ

>>773
ん、俺へのレス?

612:名前は開発中のものです。
09/03/09 19:45:24 yVcj05z4
いつも思うんだけど、このスレでは一度newとdeleteを自分で定義する方法を
教えた方がいい希ガス。
newが重いなんてのは、newをオーバーライドできることを知らない奴の戯言だろう。

613:名前は開発中のものです。
09/03/09 20:01:59 c/sep/SW
アブストラクト尺取りパターンっていうあれだな!
……すまん、それってjavaでもできるの?>newのオーバーライド

614:名前は開発中のものです。
09/03/09 20:08:44 Q0zoLpbu
お前それただjava言いたいだけちゃうんかと

615:名前は開発中のものです。
09/03/09 20:10:05 VLwDy1Z0
>>776
Javaはそもそも演算子オーバーライドをサポートしてないな。(文字列の+除く)
C#もnewはサポートしてないと思う。

616:名前は開発中のものです。
09/03/09 20:21:37 c/sep/SW
ともかく。
いちいち弾丸を作成させる際にnewを使わないのは、ゲームにおける総使用メモリ量をむやみやたらと増やさないためだろ?
だとすれば、bulletクラスの中に総ての弾丸の動作なりパラメータを突っ込むのも、ましてや弾丸ひとつひとつがスクリプト動作なんてのも、
決して奨められるべき軽量化の仕組みじゃないんじゃねえか。
まあ、弾丸の最大出現数くらいは制限をかけてしかるべきだと思うけども。

617:名前は開発中のものです。
09/03/09 20:33:00 vlsfOe2n
ID:c/sep/SWは>>757からちっとも成長がないな…

618:名前は開発中のものです。
09/03/09 20:37:29 iQeP+3UH
>>779
逆でございます。

619:名前は開発中のものです。
09/03/09 20:41:09 9TcJmEGm
ひとつのパターンに凝り固まって他の可能性とその技術を考えられないんだな、
ある意味、全くの無知よりたちが悪い。

620:名前は開発中のものです。
09/03/09 20:54:50 hDtxD0U6
人それをバカの壁という

621:名前は開発中のものです。
09/03/09 20:58:05 xoToA8tC
何でもかんでも出来る1000byteくらいの弾クラスを10000発用意しておいてもメモリは10MBだろ。
PCで作ってる分には何ら問題ないじゃん。
newをゲーム中にしたくないのはコストがでかくてボトルネックになるからだ。
とマジレス。
 
自信ないけどマジレスになってるよね?

622:名前は開発中のものです。
09/03/09 21:04:45 DKKqMNCl
>>784
「1フレームあたりX回以上newすれば処理落ちが発生する」とかいう目安というか、カンみたいなものがあるなら良いんじゃね。
実際にnew/deleteがどれだけ重いのか評価する手法でもあればいいんだが。

623:名前は開発中のものです。
09/03/09 21:11:35 c/sep/SW
newの実質的なコストって生成時にmallocを発行してる部分くらいじゃないの。
ま、デストラクタがあれば、そこも処理に影響するんだろうけど。

624:名前は開発中のものです。
09/03/09 21:34:19 vlsfOe2n
>>785
>実際にnew/deleteがどれだけ重いのか評価する手法
メモリ断片化とか色々あって、線形的には求まらない予感

エンドの環境依存も大きいし
俺が賭け事で弱いので、カンとかあんまり頼れない

625:名前は開発中のものです。
09/03/09 22:56:30 86T0U1dK
実際にゲームを作ってみて重いと感じたら別の方法を模索すればいいだけの話だと思うんだがな。

626:名前は開発中のものです。
09/03/09 23:26:04 YtHLVg0L
やっぱ new にはコストかかるのか
俺はそうだと思っていったんある程度の量を最初に確保してから使い回そうと考えたこともあったな
結局面倒になって適宜 new にして使ってるけど
まあ俺は激しい弾幕使ってないから大して困らないのだろうけど
いったんある程度の量を最初に確保してから使い回す方法を取ってる本もあったな

627:名前は開発中のものです。
09/03/09 23:34:30 frstm+EJ
メモリの断片化か・・・根深い問題だな。自由度を増やせば増やすほどに異常が増えていく。
ある程度複雑になると、突然例外大発生だもんな。どうにかならないものか。

628:名前は開発中のものです。
09/03/09 23:44:57 JKHKOtra
性的確保&構造体リスト最強説

256本もリスト作ったから変なソートいらないZE☆

629:名前は開発中のものです。
09/03/09 23:49:48 hDtxD0U6
>>791
なんだかエロいな

630:名前は開発中のものです。
09/03/10 02:09:56 is2LuZ0W
関数WinMainの中にすべてを詰め込んで、
「シングルトンって言うのかな、等身大の自分に合った小悪魔的デザインパターン☆」
とか言ってるやつってなんなの

631:名前は開発中のものです。
09/03/10 08:19:34 YODFEaFk
名前聞けばいいだろ

632:名前は開発中のものです。
09/03/10 08:20:22 XEibpF8L
タスクマネージャ使うと分かると思うけど、東方は普通に50MBとか食ってるぞ
たぶん起動時にものすごい量の弾を確保してるんだと思う

それにしても、あの化け物じみた描画速度はなんなんだ・・・・

633:名前は開発中のものです。
09/03/10 09:46:51 z6f1lzf6
構造体リストと普通のジェネリックなLinkedListってなんか違うのか?
むしろ、リスト構造そのもののパフォーマンスでいえばArrayListの方が高い訳だし、構造体リストにこだわる必要は無いような。

634:名前は開発中のものです。
09/03/10 10:37:13 xhsEfov4
newのコストもだけど、GCがある言語(C#,D言語等)ではGCが動くコストも馬鹿に出来ない。これはnewする瞬間じゃなくてゲーム中常にかかる恐れがあるから性質が悪い。

635:名前は開発中のものです。
09/03/10 11:57:08 zS8jCfA2
構造体リストに限定した話なんて誰もしていない件

636:名前は開発中のものです。
09/03/10 12:24:14 iLQTzUsY
>>795
まあ片手間とはいえ本職ゲームプログラマの作品だし・・・・・
ただ、いくら弾幕でも弾はせいぜい同時1000発ほど
容量を食ってるのはテクスチャとか音声だろう

637:名前は開発中のものです。
09/03/10 12:38:17 BXbMSorN
DirectX本スレでも東方ネタで酷いコンニャク問答があったな

さすがにこのスレにはPix for Windowsと東方(体験版含む)の
両方がそろえられないパソコン初心者は居ないだろうな?

638:名前は開発中のものです。
09/03/10 13:04:35 zS8jCfA2
何の話だ

639:名前は開発中のものです。
09/03/10 13:11:23 BXbMSorN
>>795 起動時にものすごい量の弾を確保
>>799 せいぜい同時1000発から
が激しく可笑しかったという話

640:名前は開発中のものです。
09/03/10 13:40:55 WjmOfCMU
>>800
Pixなんちゃらも初めて知ったし東方は要るの?
東方をやろうとも思わないわけなんだけど

641:名前は開発中のものです。
09/03/10 13:57:07 qoncgAvF
PIXはDirectXのSDKいれてりゃあるだろ。
オレも東方は動画でちょっと見ただけだな。

642:名前は開発中のものです。
09/03/10 14:12:22 BXbMSorN
>>803

東方が特別とは思ってない
たまたま、dat落ちしていたDirectX本スレのネタを思い出したぐらいの関連

643:名前は開発中のものです。
09/03/10 14:24:10 FYjcJP4e
そのたまたま思い出したネタが
あたかもこのスレの人間全員に通じるように
いきなり語りだした心理状態が理解できない。

644:名前は開発中のものです。
09/03/10 14:27:20 WjmOfCMU
>>804
ほんとだ、入ってるわ。知らんかった

>>805
東方のことはわかった
でもPIXの方は使えてないとダメって意味じゃないの?

ここにくるからには「ゲームを作りたい」と思ってるのは確かだけど
DirectXの扱い(というか製作工程?)に熟練してるのを前提にしてるのはおかしくない?
そりゃ例えばC言語の基礎がわからないとかなら話は別だけど・・・

645:名前は開発中のものです。
09/03/10 14:31:43 NZS10vbU
そもそもプログラマしか居ないわけじゃないし…

646:名前は開発中のものです。
09/03/10 15:20:21 BXbMSorN
自治厨みたいに取られたとしたら、誤解だ
滑稽な笑い話だと思ったので、キツメの冗談をいれただけ
       /_      |
       /. \ ̄ ̄ ̄ ̄|
     /  /  ― ― |
     |  /    -  - |
     ||| (6      > |
    | | |     ┏━┓|    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   | | | |     ┃─┃|  < 正直、すまんかった。
   || | | |  \ ┃  ┃/    \________
   | || | |    ̄  ̄|


自分の環境でもC++は現役じゃない、読めても書けない
だが、このスレは役立ってる もっとやれ

647:名前は開発中のものです。
09/03/10 15:32:06 is2LuZ0W
今日のキチガイはID:BXbMSorNか

648:名前は開発中のものです。
09/03/10 15:45:52 xIah3Ja8
はいはい、自虐風自慢自虐風自慢

649:名前は開発中のものです。
09/03/10 17:18:21 z6f1lzf6
よくわからんが、DXの重さとプログラム自体の重さがごっちゃになってないか?って話だろ多分。
だって、テクスチャとかってDXならVRAMのほうにキャッシュされるじゃん、とかそういう感じ?
そもそも東方で使ってるテクスチャとかイメージとか全部足してもそんな大きいものにならんよな。

650:名前は開発中のものです。
09/03/10 18:55:33 w5LZNudx
>>795
東方はスタート時に最大2000の弾の構造体用意して弾作るときに空きフラグ探してるだけのような雰囲気だけどね
弾幕眺めていると弾作成順序と描画順序が合ってないときがあるし

651:名前は開発中のものです。
09/03/10 20:00:35 EAZXIwPU
まったく話が先に進まんね

652:名前は開発中のものです。
09/03/10 20:34:40 WjmOfCMU
>>795の真意がわからないけどその前までの話は動的確保か静的確保かって話でしょ?
俺は詳しく分からないけどnew、deleteが原因で重くなるってのはどれぐらいからなの?

あと話変わるけどみんなどんな開発環境でやってる?
今どんな感じで進めようか考えてるところなんだけど色々参考にしたい
c++でDirectX使って自分でライブラリ作って進めるのとかってかなり根気いるよな?
やっぱDXライブラリとかseleneとかでやってる人の方が多いのかな

653:名前は開発中のものです。
09/03/10 21:10:45 7gM7pWnB
>>815
対象OS: Windows/Linux

エディタ: vi
使用言語: C++, Perl
コンパイラ: gcc

ライブラリ(GUI): SDL
ライブラリ(画像処理): SDL_image, SDL_ttf
ライブラリ(音声処理): SDL_mixer

Windows専用: MinGW(Windows版gcc), MSYS(Autoconf実行環境)
その他ツール: Autoconf, Automake(Makefile自動生成), make, Subversion(バージョン管理システム), Trac(バグトラッキングシステム)
画像関連ツール: GIMP(ペイント系のお絵かきソフト?), 発色弾(爆発画像生成)
音声関連ツール: Rosegarden(MIDIシーケンサ), Audacity(DAWソフト), OggEnc(OGG Vorbisエンコーダ)

654:名前は開発中のものです。
09/03/10 21:39:11 r1vtyYFk
>>815
私は勉強のためにC++とDirectXでやってますね。大規模なライブラリを使うのにはやや抵抗が。。
初心者脱却すればそういうこともなくなるんでしょうかね。

655:名前は開発中のものです。
09/03/10 23:44:39 TZYyXrii
URLリンク(www.freem.ne.jp)
コピペ? 本人降臨でもさほど驚かないな


>>815
SlimDX
ソースが公開されていないことには話にならない

656:815
09/03/11 02:06:14 p1QxzQFQ
おお、結構色々あるんだな
ゲームを早く作るってことなら既成のライブラリ使った方が速いだろうけど
DirectXの勉強もしときたいんだよな
なかなか悩ましいところだ

657:名前は開発中のものです。
09/03/11 03:45:10 VaF0H100
解像度ってどうしてる?
640x480もいいけど320x240の荒さも美しい。

658:名前は開発中のものです。
09/03/11 07:27:36 w8fCzJC6
縦長だろ常考

659:名前は開発中のものです。
09/03/11 08:05:24 4/xdNvp5
8*16最高

660:名前は開発中のものです。
09/03/11 08:33:34 Tp27eIn2
>>820 Mode Xか。
Mode 13hも便利だったけど。Mode Xもいいよね。

661:名前は開発中のものです。
09/03/12 19:20:39 1+6JKHL2
バカのバカによるバカのための井戸端会議
時々天才現る煽りもあるよ
でいいですか?

662:名前は開発中のものです。
09/03/12 19:29:26 1+6JKHL2
ジャンル: シューティング
対象OS: Windows/Linux
使用言語: C++, Perl
コンパイラ: gcc

この時点ですでに終わ(ry
それに気づかずにレスする奴も終わ(ry

日時: 2008/09/04 13:45
てか半年前ですか

663:名前は開発中のものです。
09/03/12 19:50:28 1+6JKHL2
#include <stdio.h>

class Object;
class Object{ public: virtual void Insert( Object* object ) = 0; };

class Penis : public Object{ public: virtual void Insert( Object* object ); };
class Vagina : public Object{ public: virtual void Insert( Object* object ); };

void Penis::Insert( Object *object ) {
if( object == Penis ) // 型判定
printf( "OMG!!\n" );
}

void Vagina::Insert( Object *object ){
if( object == Penis ) // 型判定
printf( "YES!!\n" );
}

型判定の方法忘れた


664:名前は開発中のものです。
09/03/12 20:13:16 9E1Rxsqt
typeofか.classだろ

665:名前は開発中のものです。
09/03/12 20:16:47 oJVouOUF
>『様々な質問に対する万能レス』
>
>Q. 制作が進まない。スレがうまく機能しない。盛り上がらない。人がいない。
>  やる気がでない。思い通りにいかない。雰囲気が悪い。なんとなくムカつく。
>  気に入らない奴がいる。作業しない奴がいる。他企画を潰したい。
>
>A. まずは自演しろ、話はそれからだ。
を実演してくれてるだよ 生暖かく見守ってやれよ

666:名前は開発中のものです。
09/03/13 19:00:14 FmG/VDzc
例えば何かを失うとしても
守っていかなきゃ
ひとつだけは

667:名前は開発中のものです。
09/03/15 15:51:11 5K3GjlrZ
らめぇ

668:名前は開発中のものです。
09/03/16 11:17:49 eNBXNzM0
「悔しいのに・・・感じちゃうっ(ビクンビクン」

669:名前は開発中のものです。
09/03/17 01:22:02 e6BdzSZL



public class Loli extends Applet
{
いやぁ、らめぇ……そんな、こすっ、たらぁ……
なんか、んっ、で……ちゃう……
おしっこ、おしっこでちゃうよぉ……
あン、いやっ、やらぁ……!
ん、んんっ、は、はぁ、あ、あぁぁ!
だ、めぇ……きちゃ……んはぁ!!
あ、ああぁぁぁらめぇぇええぇぇ!!!!
あっ、くっ、んぁ、ひ、あああぁっ!!!!
}



670:名前は開発中のものです。
09/03/17 14:16:32 cJ6We/Al
(´・ω・`)ハァハァ

671:名前は開発中のものです。
09/03/17 16:18:35 VdQyhofw
(´・ω・`)やんのかてめー

672:名前は開発中のものです。
09/03/17 16:25:50 e6BdzSZL
しゃぶれよ

673:名前は開発中のものです。
09/03/17 20:20:22 BzIoAHhs
この一連のレスに新しいSTGのアイデアが隠されているかもしれない。

674:名前は開発中のものです。
09/03/17 20:36:51 120cRAoh
自機が精子で卵子を目指すSTG作れ

675:名前は開発中のものです。
09/03/17 20:41:23 H84ZNjLE
そのへんはフィロソマやR-TYPE⊿でやってないか?

・・・自機じゃないか

676:826
09/03/17 21:02:04 2sMEY88Z
続き
void main() {
Object *penis = new Penis;
Object *oninnin = new Penis;
penis->Insert( oninnin );
}


677:名前は開発中のものです。
09/03/17 22:42:14 cJ6We/Al
>>839
コンパイルエラー「移植性のない挿入行為」

678:名前は開発中のものです。
09/03/17 22:45:38 kQgGzQTB
おいおい、ウィンドウズプロフェッショナルゲームプログラミング読んだやつ居ないのかよ。

一般流通している専門書で
CCSakura->InsertStick(); //サクラたんに肉棒をハァハァ
みたいなのを載せた名著なんだが。 そろそろちょっと古いか。 多分2002年辺りの本。

679:名前は開発中のものです。
09/03/17 23:52:35 cJ6We/Al

CCSakura->InsertStick(); //サクラたんに肉棒をハァハァ に一致する情報は見つかりませんでした。

検索のヒント:

・キーワードに誤字・脱字がないか確認します。
・別のキーワードを試してみます。
・もっと一般的なキーワードに変えてみます。
・キーワードの数を減らしてみます。

680:名前は開発中のものです。
09/03/18 08:09:09 S/V1EoOn
その1行だけで誰が書いた本かわかるから困る

681:名前は開発中のものです。
09/03/18 11:37:40 zud1sGUj
コードとコメントが一致してないが

682:名前は開発中のものです。
09/03/18 12:32:55 yzxa8Eak
そうだよな。
stick->tukiage()とか
stick->grind()とかを実行した後にorgsumイベントが飛んできて、その時stick->shotzamen()が呼ばれてstickがdisElectになって、
それでstickを格納してるotakuクラスのgetMode()がkenjyaModeを返すようになって初めて
//さくらたんハァハァ
だよな。

683:名前は開発中のものです。
09/03/18 12:47:44 RAb/8Q9d
CCSakura->InsertStick();
だと、
//サクラたんがスティックを挿入
と書くのが自然。
引数が無いし文脈もよく分からんが、少なくとも「挿入される」とは読みにくい。

684:名前は開発中のものです。
09/03/18 22:47:34 qMfWPeJK
こっちでどうだ?
Oresama->Insert( CCSakura );

685:名前は開発中のものです。
09/03/18 23:14:54 uTQJ+Za+
やねうらおさんの本か!なら仕方ないw

686:名前は開発中のものです。
09/03/18 23:18:25 RAb/8Q9d
>>847
もはや>>841とは別の話になるけどな

687:名前は開発中のものです。
09/03/19 00:19:40 lp2wnfCw
私は、いのりがだぁぁぁい好きです。とくに、プリキュアになった時が、1ばーんすきかなぁ…
皆さん。どうかぁぁぁぁぁぁぁ私のいのりを応援してぇぇぇ。
そして、私のいのりをよろしくぅぅぅぅぅ。…っあ、でもぉぉぉぉ
もちろん いのり はぁぁぁぁぁ
私の私の私のぉぉ いのり だからね。

キュアピーチちゃんからのメッセージ

もかですみすみなぎさちゃん九条ひかりちゃん雪白ほのかちゃん日向さきちゃん夢原のぞみちゃん夏木りんちゃんみみのくるみちゃん水無月かれんちゃん
秋元こまちやん春日野うららちゃん桃園らぶちゃん蒼野みきちゃん山吹いのりちゃん忘年会やつて楽しい食事会やりたい津端あみちゃんとお話おしましたキュアピーチより

688:名前は開発中のものです。
09/03/19 00:55:26 Z816WPjh
マジキチ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch