2 :
名前は開発中のものです。 :2006/03/12(日) 02:19:17 ID:v/iGtfpN
4 :
名前は開発中のものです。 :2006/03/14(火) 03:28:30 ID:783LSBxm
乙
5 :
名前は開発中のものです。 :2006/03/15(水) 18:23:04 ID:JGB57pS0
DIBについてなんですが、 biSizeに32を指定してDIBを作成した場合、 最上位バイトはアルファとして使っちゃってもいいんでしょうか? もちろん描画は自前でアルファの解釈を行い転送先に描画します。 一応うちの環境では問題なく表示されてます。 やっぱりビデカードによっては0で埋めてないとうまく表示されないとかあるんだろうかね。 表示されないというのは例えば、アルファを含んだDIBをBitBltで描画させた場合などです。 何か情報をお持ちでしたら助言お願いします。
>>5 ATIの3DRageとSのSavage3DはWindowsのバージョンによっては問題があったと思う。
>>6 情報ありがとうございます。
古めのカードでは問題が出るみたいですね。
という事は、
バックバッファは普通に24bitDIBで、その他のバッファは
・24bitDIBでアルファは別に持つ
・GDI非対応の独自の32bitARGBフォーマットと24bitDIBの混合
のどちらかかな。
まぁ、3Dデバイス使えば楽に解決なんだが、
未だにDIBやDirectDrawで開発してる人っています?
沢山いるよ
9 :
参加者募集中! :2006/03/15(水) 23:15:01 ID:GV124JhR
10 :
名前は開発中のものです。 :2006/03/16(木) 02:29:09 ID:5KpP6eH5
スレ違いかもしれませんが、ちょっと質問です。 OS:WindowsXP CPU:Pentium4 2.53GHz RAM:768MB ビデオカード:GeForce FX 5600 この環境は一般的でしょうか? これで3DゲームのFPSが30ぐらい出れば、普通のPCでも快適に動きますか?
OS:WindowsXP CPU:Athlon64 4000+ 2.4GHz RAM: DDR SDRAM 2GB ビデオカード:GeForce 6600GT 宝の持ち腐れって本当にあるんだな
>>10 日常的にゲームするような人にとっては「一般的」なんじゃない?
・・・というか釣りか?
>>10 3Dゲーマーなら平均かちょっと下ぐらいかな。その環境じゃ最新のはけっこうきついと思う。
で、普通のPCがどんな構成をさしているのかが不明。普通というとビデオチップがオンボード
のを連想するけど、一部のマザーボードを除けば3Dはてんでダメでしょ。
これだけだとゲ制作技術板らしくないから、平均的な3DゲーマーのPC構成を考えてみよう。
OS : Windows2000 or XP
CPU : 2GHz相当
RAM : 512MB
ビデオカード : DirectX9世代(Vertex Shader2.0、Pixel Shader2.0)
…あー、でもBF2でTi4x00ユーザーの悲鳴が上がったのを見ると、DirectX8世代なのかも
しれず。
それでも
>>10 みたいな心配の仕方は間違ってる希ガス。
C++でアクションゲーム組んでるんだけどいろいろ困る キャラとかマップとか当たり判定とかの各オブジェクトを独立性の高い物にしたいんだけど タスクシステムだと継承その他の関係で実行関数の引数が制限される 仕方なく今はexternだらけのヘッダファイルを全オブジェクトにインクルードさせてるんだけど なんだかオブジェクト指向なのに ごめんもういいや書き込むの疲れた
キタ―――――ヽ(´ー`)ノ―――――!!! オブジェクト指向のためのゲームプログラミング
タスクシステムってどっかの専門学校の講師がさも意味ありげに使ってたのを見て厨房が便利なものだと思い込んだのか? と想像しました。
僕も最近C++でゲーム作ろうとしてるんですが・・・・・ 当たり判定をするときどうしてもオブジェクトの変数を公開しないといけないですよね? でもそのたびにGetX()とかすると凄く遅くなりませんか? 作ったことないから分かりませんがインライン関数ならどのくらい早くなるんでしょうか?
タスクシステムって何?
>>19 当り判定用のクラス作ってそれを利用したら。
>>18 タスクシステムの信奉者が一人で何回も書いてるか、
どう書いていいか分からない奴らが某所もしくはここで紹介されてるのみて
飛びついたのか。どちらにせよ嘆かわしい話だ
>>24 インラインが気になるレベルだったらかえって遅くなるだろ
26 :
19 :2006/03/18(土) 14:20:38 ID:lfL6rJAM
自機のオブジェクトと敵弾のオブジェクトがあったとして、 当たり判定用のクラスを作ったら両方のオブジェクトのメンバを 関数から取得しないといけなくなりませんか? というかメンバ変数をpublicに入れるのはだめなんでしょうか? インラインが気になるレベルってのはどういうことですか? 結局当たり判定のとり方はどうすればいいんですか?
メンバ変数を外部に公開するのは× GetXのようにアクセッサ使え
一人でコーディングするんだから、 素っ頓狂な事しないかぎりは、 直接領域参照でおk。 それにしても言ってる事がまだまだ青いな。 ・○○化プログラミング ・○○指向 ・○○システム ・○○ツリー なんてのは脳味噌が硬化したお年寄りが、 書籍の印税で食いつないだりとか、 講演料で暮らしたいとか企んで思いついた実態のない言葉だ。 サルベージすべき知識はあったとしても、 言ってる内容をそのまま実装する必要は全く無い。 スルーでおk。
今日の無駄に思えるコーディングは 明日スパゲッティにならないためのコーディング
うむ!
あの、いつまでもスパゲティー生産し続けてるんですが・・
うm
じゃあ料理人目指せばよくね?
始まるというより、LogiciansLoadの転載だと思われ
ごめ ×LogiciansLoad ○LogicianLoad
>26 クラス作って当り判定の実装となると、自機と敵機、自機と敵弾、敵機と自弾と 色々な組み合わせに対応しないといけない。それぞれの組み合わせ毎に (同じ計算してるだけの)別々のクラスを作るのは莫迦らしい。 これに対しては例えば、ダブルディスパッチ(二つの引数を持つ仮想関数) という手法があって、さまざまなクラス間の衝突判定を行う例がScott Meyersの 「More Effective C++」に載っとる。 で、結論は、C++には言語機能として多重ディスパッチが無いのでなんとも嫌な感じという事ぽ
39 :
19 :2006/03/18(土) 21:06:39 ID:lfL6rJAM
当り判定クラス1つと当り判定管理クラスを1つ作って用途別に処理を行えばよい。 直接参照がどうのといってるが、フレンドクラスというのがなぜ存在するのかを考えれば 必要に応じてアクセスできるクラスも出てくるというのが判ると思う。 キャラクタークラスの座標を当り判定クラスが取得するのではなくて、 各クラスが判定クラスに座標やらサイズやらを渡すようにしる!
最近の流れを見て思ったんだが、なんか作る前、 それも最初の作品から完璧な設計で全く滞りなく書こうとしてる奴いないか? 極端な話どんな風に作っても最初のうちは上手くいくもんで、 設計の問題が表れるのは開発を始めてだいぶ経った後なのよ。 そっから作り直すなり修正するなり、 次の作品からはその反省点を踏まえるなりすればいいじゃないかと。
あるある 作ってみたゲームのオブジェクト同士の絡みがあまりにも酷かったんで オブジェクト本とかプログラミング作法を毎日読んでる俺
経験を積むとコーディングしてる途中で「ああ、こうやったらハマるな。後で大変な目にあうな。日数置いたらメンテナンス不可になるな。」というのがわかってくる。 おかげで1年たってもすぐ開発が続けられるコードを書くことに成功した。 要するに、馬鹿でもわかる超単純な仕組みを考えろってことだろう。
あるますね。一度失敗しないとなかなか分からないものです。 あと、過去の自分を否定するちょっとした勇気も必要です。
ゲームプログラミングに限らない話だが、お前らは関数を最大でどのくらいの行数にしている? switchで切り分けた300行のコードがあるんだが、これってやっぱ分割すべきか?
分割した方がいいね。と最大673行の漏れが言ってみる。
それ、分岐がいくつあるんだろう 分岐先で処理が何十行もあるなら関数にした方がよさげ
機能毎に分割して分けれるようなら分ける
>関数を最大でどのくらいの行数にしている バカか!?とだけいっておく。
>馬鹿でもわかる超単純な仕組みを考えろ まあこれに尽きるな。 関数は、どうしてもループ部分で行数長くなるときもインライン指定した関数に分けましょう。 というわけで、せいぜい3画面くらいにしてください。 switchでたくさん記述がある部分はだらだら長くなりがちだがね。
52 :
46 :2006/03/19(日) 22:20:10 ID:oHiXfjrY
お前らサンクス、長かろう悪かろうは分かってはいるんだが難しい…特に、分岐先の処理が少なくて分岐数が多い場合とか(;´Д`) そして>50よ、見直したら確かに変な日本語だったが見逃してくれ('A`)
俺は1画面ぐらいを目安にしてるよ。理想を言えば20〜30行ぐらいがいいと思うけど。
30行までがほとんどですね。10行に満たないのも多々あります。 意識はしてないのですが機能別で区切ってるとあまり長くなりません。 ウィンドウメッセージをもらう所は長くなりがちですが。
>>52 そういう問題じゃなくて、行数を気にしてるのが馬鹿だといってるんだよ。
行数を縮めることだけを目的に関数つくっちゃいかん。
関数の存在は、それ自体がそこが複数の場所から呼ばれる可能性があることを示唆しちゃう。
後から見たときに、あーここは行数が1画面をあふれるんで作られただけの
ただ単に区切りを入れるだけのための関数だね♪とは簡単には判別つかないんだよ。
関数の行数がどうこうって教条はまたタスクと同じだな。
誰が広めたのか知らないけど本当にアホらしい。
手順の区切りが見つけにくいだけなら盛大にコメントで罫線を入れてあげ
//////////////////////////////////////////
// 僕にその手を汚せというのか
とか適切なタイトルをつけてあげればいい。
switch文が長いのはもーちょっと設計がうまくできるようになるまで仕方がない
とにかくコメントつかって見やすいようにしてほっとけ。
どの程度まで行数増えたら設計を再検討するかという話であって、 行数ごとに関数を分割するなんてアホな話じゃないと思うんだけど。 俺も>49と似たような感じだなあ。 行数が増えたら設計を疑え、ってのはあくまで一般論であって、 場合によってはそのままのほうがいいこともそこそこあると思う。 分割したせいで余計にいろいろと悪化する場合もあるから、 しないほうがいい状況だと思うときは、そんなに気にしなくていいんじゃ ないかな。
分けた方がいいっての。あと1つのソースになんでも埋め込むなよ〜。 static関数とか便利なものがあるのでもう少し勉強しましょう。
エライ誰かさんの作った枠にはめることに慣れてしまって、そうしないと落ち着かないんだろう。
慣れてるやり方の方が問題は出にくいがね。
>53-54みたいにやたら少ない行数を目安とした設計って本当は守れてないだろ。 本当にやったらgoto乱舞みたいな箇所がいくつも出てくる。
でてこねぇよw
設計がしっかりしてれば自然に行数が少なくなる気がする
>>60 長い処理をさせてる関数を無理に短くしようするとgotoを使いまくるしかない
そんなことしたら、見にくくなるだけだ。見やすければ長くてもいい。
ほら、紹介されたページでも許容 される限界は100行まではOKと言っている。
自爆乙。
といいたいのだと理解したが、おk?
・・・そりゃ全部30行以内に収めるのは無理だがなにか?
それでも漏れは8割がたの関数は収まるけど。
>>本当にやったらgoto乱舞みたいな箇所がいくつも出てくる。
それにしても、goto乱舞で短くなるとはどんなプログラムか見てみたい。
goto使うと長くなるんじゃね?
さて盛り上がってまいりました
>>65 上記のページも良い例としての自分のプログラムの関数の行数を
「特別に意識したわけではない」って言ってるだろ。
俺のプログラムだって機能ごとに分割した結果一番長い関数でも100行ちょいだけど
これはあくまで結果。長すぎる関数を分割するときに行数を意識しすぎたら
不自然な分割になって読みにくくなる。だから関数の分割に対する指針を
行数で示すのはおかしい。ていうか>49でFA
>それにしても、goto乱舞で短くなるとはどんなプログラムか見てみたい。
関数を増やしすぎる→goto乱舞みたいに視点の移動が増えて見づらくなる≠goto乱舞を使うと短くなる
C++で関数のサブ関数みたいなのが欲しいな。 class A { int func(); int func::subFuncA(); int func::subFuncB(); }; subFuncAとsubFuncBは、funcからしか呼べなく、 funcのローカル変数を参照できる。
pascalちっく
privateとpublicの使い分けからはじめるんだ。
関数の名前をきっちり考えて、1つの仕事しかさせないようにして 関数内の処理の粒度を保つように心掛ければそうそう長くならないでしょ。
>>68 大体把握した。
同じような意見だということはわかった。
ただ、決定的に違うのは、後から関数を分割することがありえないってことだな。
長すぎる関数が現れたなら設計が悪いから。
結果的に長くなったのならかまわない、という姿勢には疑問を感じる。
他人が作ったプログラムに手を入れるときは違うが。
あと、goto乱舞の意味も把握したが、関数乱舞になっても漏れはそれでいいと思ってる。
上から下に文章を読む感覚で関数を追えるから。
gotoはとんだ先を読まないと解らないが関数、クラスの場合は
意味がある名前にしておけば中身を知る必要もほとんど無いし。
まぁ、スタイルの違いだ。悪く思うな。
関数を呼ぶときに、 引数の値をスタックに積むオーバーヘッドも馬鹿にならない。
そうかぁ? 今まで、オーバーヘッドで問題になったことはないなぁ。 インライン展開するし。 よっぽどシビアな環境なんだろうな。
よほど深いループの奥底でなければ気にしないなぁ
>>75 つか、それどういう条件下の話をしてるのよ
486DX4向けに3Dアプリ開発してるんだろう。
486 なら余裕だべ
携帯かもしれん
極限まで高速化しなきゃならないターゲット以外は、不必要に部分でソース汚さない方がいいよ。 特にブートで1回しか呼ばれないとか、1フレームに1回しか呼ばれないところを手動で展開とかアホかと。 おまえは68000の16MhzなCPUの基板でシューティングでも作っているのかと。
手動で展開は誰も言ってないと思うがw
関数を肥大化させない側からみると、最初から展開して書いてるやつは手動で展開してるのと同じことよ。
カーニハンのプログラミング作法マジお勧め
もう一人いるでしょっ!
ほっすほっす
なんだか最近とても過疎なのでお前らのコードを見せていただきたい
スレ違い
case OP_ADDENEMY: { CCustomActor* enemy; CREATEFUNC func; //中略 func = (CREATEFUNC)GetProcAddress(g_hInst,m_StageData[m_dwStageSeek].pName); enemy = func(vSpawn,DirUpToQ(m_pPlayer->GetPosition()-m_StageData[m_dwStageSeek].vPos,D3DXVECTOR3(0.0f,1.0f,0.0f)),2); m_pActorList->AddActor(enemy); //後略 } //g_hInstはLoadModuleで得られたものじゃなくてWinMainで渡された自分のHINSTANCE
なにこの糞コード 喧嘩売ってんの?
∧,,∧ (;`・ω・) 。・゚・⌒) カニチャーハン作るよ!! / o━ヽニニフ)) しー-J
∧,,∧ (;`・ω・) 。・゚・⌒) スパゲティコード作るよ!! / o━ヽニニフ)) しー-J
キャラクタのステータス等を、 class chara_status { public: int HP; } こう直接コード上で変数として宣言しないで class chara_status { chara_status(){} vector<CVariant*> parameters; bool GetAttribute(string param_name,int& i);//parametersから検索して対応するCVariantをintに変換して返す bool GetAttribute(string param_name,float& f); virtual void RegistParam(){AddParam("HP",kInt);AddParam("MP",kInt);}//パラメータを登録する }; void func() { int i; chara->GetAttribute("HP",i); } こんな風にソフト的?に定義する方法どっちがいいでしょう。 前者は高速ですが、後者は処理に一貫性を持たせることができるし色々応用がききそうなので、どちらにするか迷います。
素人ながらも叩かれるのを覚悟で 場合によるんじゃない?と答えにならぬ答えを。 何かしらのバージョンアップでステータスを増やす場合を考慮すると後者が良いし、 完全に仕様が決まっているのなら前者が良いと思う。 まあ、何にしても後者でも実用的にならない位重くなる筈が無いので、 迷って時間を無駄にするくらいなら前者にすれば良いかな? ↓ツッコミよろしく
………自作自演でツッコミを、六行目の前者は後者ですよええ
>>91 でもこれで関数名の文字列へのポインタと関数オブジェクトの対応表を
作らなくて済むんだよ!デメリットのほうが多いけどな
>>94 普通こういう場合のためにアクセッサを使うんじゃね?
アクセッサ? 初耳です。C++にそんな機能ありましたか? それともデザインパターンの1種ですか?
private: int x,y; public: int GetXPos(){return x}; GetXPos関数みたいなメンバ変数を返す関数のこと
>100 その説明だと片手落ちな気が void SetXPos(int X){ x = X; }; みたいな、代入の関数も必要になる。 publicなメンバ変数よりもめんどいと思うかもしれないが、 メリットとしては変数へのアクセス時を把握する事が可能になるし、処理に一貫性が持たせられる。
ていうか、OOPでは基本だろ。生のメンバ変数扱うのは池沼。
c++で構造体って使う機会ある?
私は主に引数用に使う。
ビットマップでゴチョゴチョやるときくらい。
シューティングゲームアルゴリズムマニアックス買ってきたお まずは憂鬱なプログラマのためのオブジェクト指向開発講座を読むお そのあと珠玉のプログラミング読むお あとプログラミング作法も読むお あーあと終わったら3DRPGプログラミングを読むお それと ・・・こんなに読めねーよ、ボケ
ゲームプログラミング本2冊読むくらいなら C++の本とDirectXの本1冊ずつ読んだほうが絶対いいと思うんだが
やさしいC++とDirectXゲームグラフィックスプログラミングver2がある
やさしいC++は易しすぎてあんまり為にならんかったな… CすっとばしてC++覚えたい人向け
>>108 DirectXゲームグラフィックスプログラミングってどうなんですか?
なんかamazonだとえらい評価がいいけど、別の場所では
コードが汚くてめちゃくちゃ読みづらいとか言われてるし・・・
何を信じていいのやら
>>110 DirectX本の中ではマシな部類だし、
コードが読みづらいのも確かだから
どっちも間違っちゃいない
コードの方はかなりヘタ DirectXの機能を使うレンダラークラス、色々な物体のデータを持たせてシーンを構築するシーンクラスの二つから成り立ってて、 シーンクラスへのポインタをレンダラークラス内のメソッドに渡して描画する。 問題なのがゲームを作るときにどうやってシーンクラス内の複数あるオブジェクトにアクセスするのかと。その辺を全然考えてない。 ただ解説の方は図解入りで結構分かりやすい。 DirectXの使い方だけ真似てコードは絶対に真似しないこと
シューティングゲームとかアクションゲームの敵出現条件ってどうやって指定してる? ソースコードに埋め込むと変更しづらいし、マップファイルに埋め込もうとしてもいい方法が思い浮かばない
自分の場合トリガー(成立条件&アクション)をファイルに記述しています。 @自機や敵味方機を記述したファイルに、どのトリガーを参照するか指定。 Aゲーム開始前にファイルを読み込み関連付けく。 Bトリガーが成立したら関連付けを参照して、自機や敵味方機のアクション(例えば出現)を実行。
116 :
名前は開発中のものです。 :2006/04/09(日) 12:40:21 ID:5/3PTLij
Javaに飽きてきたので なんかC++ でゲームを作ってみたいんだが DirectXって必要なの?
WinAPIのGDIやOpenGLでもできるけど機能や速さではDirectXが一番いいかな DirectXを髄の髄まで極めたいとかそういうのじゃなければ DirectX用のDXライブラリってのがあるから、それ使ういい
118 :
名前は開発中のものです。 :2006/04/09(日) 12:59:18 ID:5/3PTLij
119 :
名前は開発中のものです。 :2006/04/10(月) 02:17:38 ID:bqShph++
質問です。 少し技術とは離れた話になってしまって恐縮なんですが・・・。 今私はとある大学の情報工学科で勉強している3年生です。 そろそろ就職を考えないといけない時期なのですが、ゲームプログラマも1つの選択肢に入れています。 それで、今の私の状況を説明しますと・・・ プログラミング自体はBASICですが小学生の頃から始めていまして 中学3年の時には、Cで2Dゲームくらいなら作る事が出来る能力が付いていました。 しかし、DirectXやglutを使ってOpenGLを基本的な処理に限定すると使うことが出来ますが・・・ この歳になるまで、実は3Dゲームのようなものを作った事がなかったのです。 おまけに、プログラミング関連は学科で一応満点の成績を取れるほどなんですが、数学が終わっています・・・。 微積がまともに使えない(当然行列の単純な掛け算くらいなら出来ますが・・・)のが凄く怖いのです。 基本的にゲーム開発で道具としての微積が使えれば十分とは聞いていますが・・・。 チーム開発の経験も無く、開発手法もわからず、3Dゲームを作った経験もないのです。 今から何とかしたいのですが、今の私に必要な知識は何でしょうか? また、何からはじめれば良いでしょうか?
googleの使い方。
>>119 水を差すようで悪いが、ぶっちゃけここは趣味プログラマしか居ない。
下手をすれば、技術面においては君の方が知識があるかもしれない。
こんな所で人生相談するくらいなら、どこかのゲーム会社にアルバイトとして潜り込むなり
インターンシップに参加するなりで、実際に現場を見てきた方が良いよ。
ここで聞いてもロクな答えが返ってこない。
やっぱり医学だろ。 ゲームのキャラクタの健康状態を医学的にシミュレートする時代が来るはず。 HPが0になったら死ぬなんて古いぜ。
ゲームプログラマになりたいとか正気か
マ板の関連スレをよく読んでくるんだ
>>122 プレイヤーが必死にカーソルキーとAボタン押して人工呼吸
これなかなか斬新で素晴らし・・それはねーよwww
>>119 とりあえず、ゲームプログラマに必要な事
1.コミュニケーション能力
2.経験
3.技術以外の知識、冗談みたいだが
>>122 みたいなレスは的を付いてる。アイデアは没だがw
4.若さ
これだけで十分。技術力に関しては後から付いてくるものだよ。
要素さえ整えばね。
1に関しては、全ての基本。まぁヒッキーでも無い限り問題ないだろう。
2に関しては新卒だから真っ白だが、
>>121 で言った方法で何とかカバーしろ。
3に関しては、専門学生じゃなくて大学生って事だから、恐らく問題ないと思われる。一般教養とかもやってるはずだよな?
4に関しては、普通に留年とかしてなければOK。間違っても高望みで院なんて行くなよ。
25歳過ぎたら就職不可能になると思え。
それと、このスレは板案内を兼ねた相談スレなんだから 回答者は人生語る前にローカルルールを把握したほうがいい。
人生相談や就職の事っつーより もっと具体的な技術的なアドバイスを求めてたんじゃね? 例えば、DirectXやGLよりCg覚えておけとか コメントは書くなとか sprintf()を使うんじゃねぇとか /NODEFAULTLIBしても、コード組めるようになっておけとか 一時変数名にtmpとか使うんじゃねぇとか プロジェクトファイルレベルじゃなくて、#pragma commentでライブラリをインポートしろとか ああ、入社1週間目の俺が今日言われた事なんだけどよw
128 :
名前は開発中のものです。 :2006/04/10(月) 08:04:28 ID:/G14AVHV
コメントは書くな?!
>>127 そんなもん会社の方針やルールによって変わるんだから、意味ねーだろ
微積を感覚的に使えないセンスなら、ゲームPGの器ではない。
sprintf()はどうして使っちゃいけないんだ? お偉いさんが理解できないのか?
132 :
名前は開発中のものです。 :2006/04/10(月) 12:06:29 ID:Cu2l+sg7
その程度なの??ゲーム業界って・・・・・・・。あらあら
sprintfの件は、ごく普通に考えればバッファ オーバーフロー防止の話なんだろうけど 「コメント使うな」は分からんな‥。 このルールだと、プログラミング作法とかも 確実に梵書対象。
コメント書かなくても解るような見やすいプログラム書けってことじゃね?
sprintfがだめだといっている奴は、
事前にサイズをとる関数があることを知らない無知なんだろう。
>>127 に教えている奴は、正しい使い方を教えることが出来ず、
間違った知識を広める典型的な害虫タイプ。
sprintf()の件はプログラム板のどっかのスレでスレ違いな論争してたなー
コメントが駄目なら constでコンスタント領域に埋めこんでしまえばいいんだ。 そうして出来たのがスーパーモンキー大冒険(かどうかは知らない・・・)
>>127 >例えば、(以下略)
なんか環境依存の話が混ざってんなぁ。それじゃチラシの裏でしょ。
それらの背景にあるごく普遍的なメッセージを汲み取ってやろうや。
つまり、もっと一般化して書けるはず。
何で大学まで出て、ゲームプログラマーになるかなぁ。
大学の数学はほとんど必要ないが大学行ける頭は欲しい
糞つまらんゲームが2chで絶賛されてて欝だ ONPa-RadeとかONPa-RadeとかONPa-Radeとか
私怨
PCのスペックの統計を取ったサイトってないですか? OSとかCPUとかメモリ容量とか。
低スペック厨にビビるくらいならプログラミングしないで済む方法考えた方がよくね
統計ってか各社製品スペックページ見ろよ。 自分でまとめろ
>>144 もちろん、あまりにも低いスペックのPCは見捨てるしかないですが
見捨てるスペックが下から全体の4割とか5割になれば、
「重い」と叩かれるのが関の山でしょう。
>>145 言葉足らずでしたでしょうか?
今、主に使われているPCのスペックが知りたいのであって
今、主に売られているPCのスペックを知りたいわけじゃありません。
後者の方が当然高いスペックでしょう。
それにどの程度の割合かも把握できません。
>>143 スレタイ嫁
>ゲームプログラミング相談室
>ゲームプログラミング相談室
>ゲームプログラミング相談室
>ゲームプログラミング相談室
すみません。
>>14 にありました。
お騒がせしました。
── =≡(;; ´ω`) ≡ ガッ ∧_∧
─ =≡○_ ⊂)_=_ \ 从/-=≡ r( )
>>148 ── =≡ > __ ノ ))< > -= 〉# つ
─ =≡ ( / ≡ /VV\-=≡⊂ 、>>
── .=≡( ノ =≡ -= し'
つかハイスペック要求するゲーム作れる技術あるような奴が そんな考え方のずれた質問すると思えません。
>>14 のLanguageの項目見てみ。
英語圏向けのゲーム作るならストライクな統計だな。
153 :
名前は開発中のものです。 :2006/04/11(火) 23:14:57 ID:BnKYWEUa
>>143 PC関連の雑誌がたまに統計出して記事にしてるな。(週アスとか)
>>146 あのな、Celeron(800MHz)+GeForce4MXな俺の最新PCで
Quake3Arenaがサクサク動くんだよね。もうそういう時代。
今時、低スペックPCを気にする個人製作者は稀。
いるとすれば
@ヲタプログラマ(サディスト)
- 最新のCPUとビデオカードに高負荷与えてヒーヒー言わせるよ。
Aヲタプログラマ(マゾヒスト)
- MMX Pentium(200MHz)+Trio64+DOS4GWで60[fps]は当然でしょ。
B自称プログラマ
- 脳内でしかゲーム作ったことないよ。(見積もりできないよ)
- FFやリネ2を超えるMMORPG製作中。メンバー募集中!
で、君は多分Bだよ。
(;・∀・)アイヤー・・・誤爆したよ
コピペしといてやったぞw
156 :
153 :2006/04/12(水) 00:06:47 ID:OBgcTjap
(;・∀・)スマン
なんて優しいやつ・・・
158 :
名前は開発中のものです。 :2006/04/12(水) 22:56:38 ID:iggRq/PC
質問して良いですか?携帯アプリの事なんですけど・・・
いいお
160 :
名前は開発中のものです。 :2006/04/12(水) 23:32:33 ID:iggRq/PC
アプリのサイトでスーファミのゲームができるとかFF7ができるとか書いてあるんですけどできるんですかOo(っд・`。)? 他の板で聞いたら叩かれまくって答えてもらえなかった・・・しかも釣りと間違えられた↓文章力無いのかな。・ω・。)
FFとかドラクエがスーダミに値してるかと、FF7はビフォアクライシスかそんな感じだったような・・・
163 :
名前は開発中のものです。 :2006/04/13(木) 00:21:25 ID:ixSbTsCM
>>161 さんありがとうございます!!あと
>>162 さんもありがとうございます!ボクが大幅に間違ってましたOo(っд・`。)気を付けます↓↓
test
OpenGLのglutを使用し、C言語で勉強をかねて基本的なお絵かきソフトを作ろうとしたのですが、マウスを早く動かすと絵が細切れになってしまいます。 解決策を教えて頂けないでしょうか。よろしくお願いします。
>165 それだけだと曖昧だから分からんが、適当に推測してレスしてみる 検知の頻度を上げればいんじゃね?
>>166 回答ありがとうございます
glutMainLoop()という関数を使用し、内部でループ処理を行っているので検知速度を上げられません。
他に方法はないでしょうか?
検出した点を線で繋ぐ
>>168 回答ありがとうございます。
まずはそのやり方を試してみようと思います。
ただ、公開されているソフトを見ると
他に方法があるような気がするのですが何かないでしょうか?
>他に方法があるような気がする 板違いだから他あたれ。
そこまで言わせておいてたらい回し
それがゲーム開発板クオリティ
>>170 一般的に点を線で繋いで補完する以外に無いよ。
>>172 回答ありがとうございます。
わかりました。
色々とご協力ありがとうございました。
板違いにかまいたいまでかまって飽きたら追放とか最悪だな
直線で結ぶ以外にも方法があるんだが、もう終わったようなのでまあいっか。
それで慌てて戻ってみたりすると 「曲線で結ぶ」 だったり、 「ベクタデータの直線で持たず、直線を近似したドットで結ぶ」 だったりするオチが待っている。
構ったヤツと、追放したヤツは全くの別人なんだが、それを混同して、 あたかもスレッド自身に意思あがあるかのような認識するあたり、 相当重症だ。早速明日医者に行け。土日になったら病院やってないぞ。 ェ? ここはマジレスするとこじゃ無くって?
>>175 >>176 ありがとうございます。
なるほど。よりユーザーの意思を表現できるようにするってことですね。
点を直線で補完できるようにしたら、次のステップに考えてみたいと思います。
>>177 マジレスするけど、お前は「ここの住人は〜だな」って発言にいつもそんなレスつけてんの?
180 :
名前は開発中のものです。 :2006/04/14(金) 05:39:39 ID:+eg5l/cv
>>175 直線とは誰も言っていない件について・・・
もう終わったようなのでまあいっか。
181 :
名前は開発中のものです。 :2006/04/14(金) 22:37:59 ID:Cmz4lZbT
別スレにも書いたんですが、任天堂のプログラマー目指してる高2です。 最近、CでようやくWindowsプログラミングが少し出来るようになりました。 今はどのような勉強(特にCについて)をしていけばよいのでしょうか?
物理勉強しとけ、あとベクトルな。 Cは出来て当然、C++に移行しとけ。
184 :
名前は開発中のものです。 :2006/04/14(金) 23:08:51 ID:PQdtzs3K
今はとにかく勉強しろ。一流大に入れ。
186 :
名前は開発中のものです。 :2006/04/15(土) 00:11:56 ID:LErTahdx
ありがとうございます。
>>182 数学だけでなく物理もやるべきだというのは初耳です。アルゴリズムを考えるうえで必要になるんでしょうか?
それから、Windowsプログラムを一通り終わらせたら、DirectXの勉強より先にC++やった方がいいのですか?
>>183-184 たくさんゲームを作ってAO入試でアピールしたいと考えてるので、プログラムの勉強を優先しようと思ってます。
(その前に、明後日の基本情報が大事ですが)
>>185 今度買ってみたいと思います!
AO入試で知識が偏った状態で大学に入ったとしても、単位がとれずに中退することになるぞ。 結局苦労を先延ばしにするだけ。 今は横着をせずに普通に勉強した方がいい。 と言ってみたものの、他人の意見を聞くふりをして自分の考えを変えないタイプなのは見てとれるから無駄だろうけどね。
>186 物理は数学を用いて記述されるのさ
バカを相手にすると急に口が達者になるお前らには失望した
>>186 覚えた言語で何か作ってみれば?
10〜30時間で作れそうな超ミニゲームとかツールとか。
物理法則なしにマリオがジャンプして着地する動作さえ実現できない。
>>186 SFC AOスカラシップ (総/環)
AO入試による優秀な合格者に対して、入学手続時に授業料相当額を大学が負担する制度です。
学業成績が優れているというだけではなく、総合政策学部・環境情報学部の両学部にふさわしく、
将来のSFCでの活躍が期待されることが審査の基準となります
なるほど。高校の勉強も疎かにするなよ。
C++(特にオブジェクト指向機能)からDirectXのほうがイイとは思う。
だが、ゲームプログラムが頭の固い面接官に評価されるかは分からん。
スタックやヒープソート等のデータ構造やアルゴリズムを駆使したほうがポイントは高いかもしれんぞ。
C言語の標準ライブラリだけを用いた、電卓(構文解析やアスキーコード等の知識やテクニック含む)
を提出したほうが評価されるかもね。(意外に結構難しい)
物理というか力学。
波動は?
カプコンに就職するんでなければ波動は無用。
へー
>>181 とりあえず京大に入るのが一番近道だろ。
>>191 足し算と引き算わかれば ジャンプ→着地 ぐらいはできるんじゃw
>>197 じゃあ、マリオは一定の速度で上昇し、突然下降しはじめるのだなw
京大に入ってゲームプログラマってアホだろ 研究者になって好きなプログラム組んだほうがよっぽどいい
そのアホな志望者が山ほどいるから、専門の入る余地がないのですよ…。
力学に基づき、 足し算と引き算でジャンプさせるのが、 微分だ。 だから、み〜んな仲良く仲良く友達友達♪
プログラミング技術だけで一流企業に入れると思うなよ
任天堂は子供向けのゲームばかり作るので、子供の気持ちを知ることが大切だ。 大学で、人形劇等子供と触れ合うサークルに入ってみるのも無駄ではないかもしれない。 ただし、ロリコンにならないように気を付けろよ。
初期上昇速度を引き算してそれを足せば、 加減算だけでそれなりのジャンプの動きは作れる。 そもそもあの系統の2Dゲームの動きは、物理なんか知らなくても、 グラフが書ける程度の脳味噌があれば作れる。
>>191 > 物理法則なしにマリオがジャンプして着地する動作さえ実現できない。
ないないそれはない。
小学2年の俺が勘で書いてコードが、普通に自由落下運動の数値積分になってましたが何か?
> C言語の標準ライブラリだけを用いた、電卓(構文解析やアスキーコード等の知識やテクニック含む)
> を提出したほうが評価されるかもね。(意外に結構難しい)
そんなアホな話があるか。
完成品のゲームのほうが遥かにポイント高いに決まってるだろうが。帰れこのワナビー。
大体、電卓なぞまともな大学の理系学部なら1、2年で作るようなものだろうが。
コード路線で来るならせめてコンパイラくらい作ってこいや。
>>198 お前、一度マリオのジャンプを実装してみろ。
ちゃんとボタンを押す長さで高さが変わるようにするんだぞ。落下時の空気感とかも出せよ。
>>181 日本語、英語、数学、物理(力学)、コミュニケーション能力
どれも同じくらいに最高クオリティで必要。
任天堂なんて超勝ち組のプログラマを目指すなら、完璧超人になっておかないとダメ。
大学はもちろん関西の一流大だろうな。京大あたりでいいんじゃね?
んじゃ頑張ってね。
俺も自由落下は中学生で自然に書けたな。 自由落下が始まったらn回目にはnドット落ち、落下速度に上限あり、これだけ。 空気感?を出したかったら落下速度の上限を低くすればいいんだよ。 こんなのは書かなくても想像できる。 確かに普通の電卓を書いて持っていったら笑い者だねぇ。 せめてカッコつきの演算ができるレベルじゃないと、 正規の教育でコンパイラ作ってきたような奴の足元にさえ届かない。 ただ微分は役に立ちと思うぞ。 ゲームプログラミングはその構造上、 表現したいゲーム全体の時間微分を記す作業でもある。 それを理解しなくても書けるが、意識しているか意識していないかで随分違う。
スレの流れを読まずに質問、超基本的な事で聞くのも恥ずかしいのだが………orz あちこち探し回っても、的確な答えが見つからないので C++の話だが、 SaveDigit(FILE* stream, int nData); LoadDigit(FILE* stream, int* nData); 名前の通り、int型のファイル入出力を行う関数があるのだが、 COLORREFやDWORDやunsigned intをこの関数で保存したい場合、 当たり前だがキャストが必要になる。 このキャストの時、データは破壊されないのだろうか? それとも、各型毎の関数を作るかテンプレート関数を作るべき?
スレ違い
プログラミング相談室なのに?(´Д`) ちなみに、同じバイト長の変数に限った話。int型よりも長い型が破壊されるのはわかってるから。
その、COLORREFやらDWORDやら、っていうのが どんなクラスなのか、構造体なのかはわからんが、 サイズ指定さえ間違っていなければ、 そのポインタの参照先のデータメンバすべて保存できるだろ。 ただ、そのデータメンバの中に、ほかのアドレスにあるデータのアドレスを含んでる場合は、 単にそのときのアドレスを保存することになって、本来のデータは保存されないことになる。 わかりまちゅか?
>212 サンクス、ム板で聞いてくるよ >213 COLORREFやDWORDは、CやC++でWindowsプログラミングしてる人には馴染みの型。 ポインタじゃなくてユーザー定義型であり、保存でなくキャストに関する質問だけれど…。 とりあえず、ム板に逝ってきますノシ
> COLORREFやDWORDは、CやC++でWindowsプログラミングしてる人には馴染みの型。 > ポインタじゃなくてユーザー定義型であり、保存でなくキャストに関する質問だけれど…。 言語仕様上intのサイズは不定だからなぁ。 コンパイル時にintとユーザー定義型のサイズを比較して、 コンパイル失敗するようにしておいた方がいいな。 ゲーム固有の話じゃないから板違いというのは同意。
ゲーム製作とは切っても切れない関係のプログラムの質問を 何でそんなに邪険に扱うんだ?特に213とか そんな声を揃えて板違いと言うほど ゲーム製作から外れた質問にも見えないんだけど
大いに外れた質問だね。 指定サイズでセーブ・ロードの質問かと思いきや 本人がキャストの質問て言ってんだから。 セーブデータなどの扱いに関することならまだしも わけのわからないキャストの話だろ? そもそも、なぜ諸悪の権化のキャストをいちいちしなきゃならん 関数をつくっとるのか。使用意図もわからん質問はあちらに回すに限る。 こうこう、こういう処理をしたいんだけど、他に方法ある?とかの質問なら納得するが。
下位キャストすればデータは破壊されるんじゃね?
・・・と、言っておきながらヒント int限定で処理するから悪い。サイズを付加すれば問題ない。 SaveDigit(FILE* stream, void* nData, int size); LoadDigit(FILE* stream, void* nData, int size); 俺だったら素直にテンプレート使いけど。
・・・と思ったがやっぱり質問意図がわからん。
222 :
213 :2006/04/15(土) 16:39:49 ID:HLCHM0Al
丁寧に書いたつもりなんだけどなー 邪険とはなんだおい。ずいぶんな被害妄想やさんですなw つーかキャストなんて普通だろ。特にファイル保存するときとかは普通に使う。 高尚なんておっしゃってる輩は、一生ゲームつくれないよ。
ぶっちゃけ、エンディアンを考慮しないなら、 int型を経由しないでアドレスとサイズを渡せばいい。
224 :
213 :2006/04/15(土) 16:45:41 ID:HLCHM0Al
>>220 であってると思うよ。
そもそも
>ポインタじゃなくてユーザー定義型であり、保存でなくキャストに関する質問だけれど…。
なんていってるあたりからして、彼は問題の本質がわかっていない。
答えたくない質問なら、黙っておけばいいのに。 わざわざ叩きに来る心理的状況が理解できない。 俺が相手しなきゃ!!という妙な使命感は、たいていカラ回りに終わる。
自分のコードで閉じている間は、出来る限りキャストは回避するね。 でも、他人の仕様に乗っかるときはしょうがない。 CreateThreadで生成するスレッドのエントリー関数なんて、 LPVOID(たぶん中身は void* )で引数取るから 怖くても目をつぶってえいっとcastせざるを得ない。 例のコードは、intの長さは環境依存なので、(だいたいは4byteだけど) 何が破壊されるか不定のお勧めできない典型例ではある。 俺もテンプレート使う派だけど。
CreateThreadは普通にデータのアドレスを渡せばいいだけ。 怖い所などどこにもない。 それからintは環境依存ではなく処理系依存。
228 :
209 :2006/04/15(土) 20:39:24 ID:1KnDtSbZ
覗いてみたら荒れ模様…何か荒しみたいで申し訳無いです(´Д`) >217&219 的確な回答を有難う御座います、その手を見落としてましたorz >218 下位キャストでの破壊は理解出来るのですが、同位キャスト(同バイト長)での破壊が発生するのかが………。 以降、名無しに戻りますノシ
>>225 ほっとくとマジレスが出る→勘違いして居つく
まぁあんまり見ないパターンだけどな。
なんにせよスレ違いかそうでないかで言えばスレ違いだろ。
ゲーム作ってる時に問題が発生したから必ずここに来るってのはおかしい。
「ゲームプログラミングしてる人のための相談室」じゃないんですよ
>>208 当然、構文解析=かっこつき演算可
のつもり。大学受験のAOなんだから、大学二回生レベルのプログラミングが
出来たら十分出来すぎってことだよ。AOで入る奴を買いかぶり過ぎてないか?
難関私大のAOぐらい、半年勉強すれば受かるようなレベルなのさ。
>>206 無知過ぎて哀れだな。
そこらへんのサンプルコードパクって出来るようなゲーム作ってると思われてるのがオチだな。
完成品ゲームで評価を狙うなら、量ではなく質。オブジェクト指向使ってれば評価されるとか、
そういう問題なんだよ。大学入試にコンパイラwwwそんなスゲー奴いねぇよwww
ヤル気のある奴は入学後に力つく。問題は素質。
まさかコンパイラが出てくるとは……技術にこだわる専門厨らしい思考。嫌いじゃないが。
つまりこういう事か!!!! 作品のうpが下火 ↓ 厨房増殖 ↓ 学歴釣り横行 ←今ココ ↓ しばらく荒れる ↓ 過疎化 ↓ 神キターで一時的に活性化 ↓ 最初に戻る。
作品のうpなぞこのスレにはねえよ。 例のスレから作れもしないクズ野郎が漏れ出したか?
>>229 >>1 に
>ゲームプログラミング全般の質問スレッド。
>扱う話題のダイナミックレンジはやや広め。包容力高め。
って書いてあるぞ? 別にいいんじゃないか?
「ゲームプログラミングしてる人のための相談室」と「ゲームプログラミング相談室」の
違いがよくわからないけど。
「包容力高め」でおながいしますよ。
その包容力ってのは、ゲームに関するだろ。 スレ違いの前に板違いなんだから。
もうPart7まで来てるのに、板違いってww ローカルルールの一番最初の単語、「プログラム」だよ? 先程のもゲーム製作中に出てきた質問だったんだし。 誰もが一度は経験するところでしょう。カキコ問題ないと思うけどなー あなたの厳密レベルで言うなら、板違いのスレにあなたが書き込んでることが既にだめなんじゃないの?
>>236 君以外はスレ違い、板違いって分かってるから。
キャストなんて、ゲームプログラミングと直接関係ないし。
ゲーム作る為なら、純粋な言語の質問をすべて受け入れるのか?
238 :
名前は開発中のものです。 :2006/04/16(日) 07:59:56 ID:UmX9EDHp
そーいえば前スレでキャストが話題になるとふぁびょってる奴がいたが それ関連?これは別にキャスト関係ないと思うけどな キャストキャストキャストキャストまほキャスト キャスト最高おれキャスト使いますキャスト
ゲーム制作固有の質問かどうか、質問する側には判断できかねるケースも無いわけではなかろうが 書き込んだ後に注意されたらさ、グダグダ言わずに空気読もうぜ
240 :
181 :2006/04/16(日) 08:22:23 ID:zinh7sEo
スレの空気を読んでないうえに、スレ違いで申し訳ないんですが、ここで質問させてもらいます。
>>230 もし電卓作るなら、逆ポーランド記法で計算できるようにしたいのですが、それじゃ不足でしょうか?
スレタイと板名音読してどっか飛んでけばいいと思うよ
プログラム一般の話がダメってそこまで潔癖にやる理由が分からん。 誰かがゲーム作ってる途中でぶつかった疑問なら、 他の誰かだってゲーム作っている途中でぶつかる可能性がある疑問じゃないか。 ム板とかぶるっつうならム板を見なきゃいいじゃん。 無節操にやれとは言わんが、そこまで潔癖にやることに何の意味が?
電卓とかお絵かきツールはゲームと呼ばないんじゃ。。。
もともと、ム版から分かれたんだよ。ゲ板は。 ゲームの作り方はよそでやれってな。 ゲーム作っていてぶつかる質問がゲーム固有ならこの板だろうけど そうじゃなくてプログラムに関しての質問なら専門スレのほうが的確だろ?
マップやキャラオブジェクト同士の関連とか 当たり判定の種類やその実装の仕方とか タスクシステムとか 任天堂のプログラマー目指してる高2なんだけどさ〜 とかここは人生相談スレですかと
そりゃプログラミングパラダイムの哲学議論始められたら鬱陶しいが、 潔癖にやってまた例のsonetのような荒らしを生んだら俺は嫌だぞ。 それにゲーム固有かどうかなんてどうやって判断するんだ? お絵かきソフトだと思ったらお絵かき王国もどきだったらどうするよ? 電卓…、は俺もちょっと弁護できない気もするが。
相談する当の本人がお絵かきツールと言ってたら、 お絵かきツール扱いでいいんじゃね?
潔癖にはやってないと思う。スレ違いは基本的に誘導するし 妙な質問はなんだかんだ叩きつツンデレ風味に質問に答えるし まぁ、いままで通りでいいと思うけど。
>それにゲーム固有かどうかなんてどうやって判断するんだ? ゲーム固有の質問だと思ったら答えればいいし そうでないと思ったなら、一般的なプログラミングの質問はム板でするんだと説明すればいいし 質問の内容が理解できない、質問の仕方が下手等で判断がつかなければ無視しておけばいい
板違いの質問に門外漢がカンで答えても意味ない。 タマタマ的確な回答できる住人がいたとしても、 質問者が複数の意見を総合的に判断スルのは難しい。 かといって質問者が勝手に別の板に行けばマルチ乙。 だから適切な板があったら誘導するのが良い。
>かといって質問者が勝手に別の板に行けばマルチ乙。 いや、そこは一言書き残していけば問題ないよ
こんなに争うようなことなんかい
みんなぬくもりが欲しいのさ・・
板違いを事なかれ主義で対処するより、 板違いな点を指摘して他所に行ってもらうほうが、 質問側にも親切なんじゃないか? それでカチンときてファビョる池沼に、 イチイチビクビクするいわれはないしな。 回答側がイロイロ調べ回って、必要なら検証して、 板違い質問に答えるほうがより親切なんだろうが、 とてもそこまでやってられないし、 調べた内容の正確性に疑問が残る。
>>256 君素晴らしい! その通りだね!
>質問者が複数の意見を総合的に判断スルのは難しい。
>調べた内容の正確性に疑問が残る。
至れり尽くせりだね。もうメーカーのサポート並み。・・いやそれ以上!?
ただ、安易に回答書くと君に厳しく指摘されてしまう恐れがあるので、
相当内容に自信ないと書けないよ。もう誰も書く人いなかったりして。
完璧主義はいろいろ問題起こすから、バランスを大切にね。
あと、君の言葉ももう少し親切だといいと思うよ。
数学の証明問題の記述ならいいのだろうけど、対人間にはちょとトゲを感じるな。
2ちゃんだからね。「範囲外だから来るな!」じゃくて、
ネタの一つでもかまして差し上げればいいんじゃなぬか?
たまにならいいけど、しょっちゅう来られてもなぁw
第一、「範囲外だから来るな!」
じゃなくて
>>256 も言ってるように「こういう分野はこっち」
と進むべき道を示してるから、それもサポートの範囲と思ってるけど。
そして誘導先のスレには同じような顔ぶれが待機してる場合が多いのだがなw
冷静さに惚れました 同性結婚してください
>>260 誤爆デスカ。。。
長文ダラダラ書くくらいなら、はっきりアンカー貼って欲しいものだが、
向うみると俺宛らしいな。
俺としては言うべき意見は全て言ったから、特に付け加える事は無いのだが…
それとも相手が自分の意見に沿って改心しないと気がすまない人?
ID:3syrqN9Eが言うに事欠いて知能障害を起こしたぞ。 みんな逃げろ!
おいおい・・お前を置いて逃げられるわけないだろ?
>>262 ほかのタイミングならともかく、
これだけ荒れた後で、その最後の一文やめようよ。
その煽りがそもそもの原因。
事のなんたるかは重要じゃない。 自分の意見を通すことが重要なんだ。
>>260 この板の方向性についての話題だからここでいいと思うがね。
まぁ、答えたかったら好きに答えればいいさとしか言えんな。
俺は板違いなら板違いと答えるけど。
ただ、それを他人に強要するのはいただけん。
たとえば質問が適切なら多くの人に受け入れられるだろうさ。
妙な質問だったらやっぱり叩くやつは出てくるわけで。
かと思えばあんたみたいに親切に答えてやろうというやつも居るわけで。
そういうバランスで成り立ってるなら、流れに任せたほうがいいと思うが。
結果的に今回も誰も答えてないわけではないし。
まぁ、普段寂れてるんで活性化のためにネタ投下してくれてるのかもしれんが
見たところ誰もウザイからやめろとも言ってないようだし
これも流れかと。
結局は板違いかどうかは場の雰囲気できまるという話でした。
>この板の方向性についての 板じゃなくてスレ?
スマン素でまちがえた
泥沼w もうやめよーぜ、その話。 相談できねーだろw
最近過疎で寂しいぞ
274 :
名前は開発中のものです。 :2006/04/21(金) 00:09:01 ID:gUMysWG3
自治厨さらしage
シューティングゲームのシステムがわからんです タスクシステム?ステップ型?
1.(敵機動かす、自機弾との当り判定する、敵弾発射 )×敵数 2.(敵弾動かす、自機との当り判定する) ×弾数 3.自機動かす、(敵機との当り判定する) ×敵数 4.1に戻る 基本はこれ。あとは好きにつくればよろし。
277 :
名前は開発中のものです。 :2006/04/21(金) 16:27:54 ID:vfO/zYtD
タスクか、最近のようでなつかしい響き 今更だが何のメリットがあったのかわからん。
シューティングなら
>>276 の弾やら敵やらの要素をvectorとかに突っ込んで
ぶん回せばいいんじゃないかなーと思ってるんだけど間違ってる?
279 :
名前は開発中のものです。 :2006/04/21(金) 17:22:15 ID:FnNSeKnE
>>275 知識が〜吸収で〜きな〜い♪
消化不良で〜下痢になる〜♪
ものぐさだから〜実践しな〜い♪
実践しないから〜失敗しな〜い♪
失敗しないから〜問題が分からな〜い♪
行動力無し〜脳みそも無し〜♪
ノーミソ(・∀・)スーカスカー♪
>>275 決まったシステムなど無い。
作りたいように作ればよい。
シンプルイズベスト タスクなんて複雑なのは使う必要梨
タスクシステムのようなテクニックは勝負ぱんつのようなもの。 別に見せて回るもんじゃないし、本質は何も変わらん。 じゃあ、何が変わるかっていうとな、本人の気合だ。 こういうところのテクニック談義は、女の子同士で勝負ぱんつを 見せっこしてきゃあきゃあ騒いでいるようなものなので、 興味がなければ横を向いているが吉。
同意
でもリストで管理しないと大変じゃないか?
(°д ゚)ハァ?
それならvectorに突っ込めばいいし オブジェクトの生成破棄が発生しないからいいんじゃね?
( ° д ゚)バァカ?
どーでもいいよ。 最初から個数分作ってvectorにつっこもうが、リストにしようが、 都度生成しよーが、リニアでデータを持とうが。l
タスクが複雑だなんて馬鹿ばっかだな、タスクなんて簡単だろ vectorに関数ポインタでも詰め込んで、逐次実行するのだって原初的なタスクじゃん
馬鹿が馬鹿にレスしてる・・・
久々にタスクオブジェクトを弄って自己流リスト使ってたのをstd::listにしたら滅茶苦茶になった これは困る
それは使い方が間違ってるんじゃなかろうか
タスクをstd::listにした? アホの所業だな
煽るだけならアフォでも出来る。
これは ひどい
285 名前:名前は開発中のものです。[sage] 投稿日:2006/04/22(土) 13:10:13 ID:nN1BIFvO (°д ゚)ハァ? 290 名前:名前は開発中のものです。[sage] 投稿日:2006/04/22(土) 16:44:09 ID:nN1BIFvO 馬鹿が馬鹿にレスしてる・・・ 294 名前:名前は開発中のものです。[sage] 投稿日:2006/04/22(土) 23:12:27 ID:nN1BIFvO 煽るだけならアフォでも出来る。 294 名前:名前は開発中のものです。[sage] 投稿日:2006/04/22(土) 23:12:27 ID:nN1BIFvO 煽るだけならアフォでも出来る。 294 名前:名前は開発中のものです。[sage] 投稿日:2006/04/22(土) 23:12:27 ID:nN1BIFvO 煽るだけならアフォでも出来る。 294 名前:名前は開発中のものです。[sage] 投稿日:2006/04/22(土) 23:12:27 ID:nN1BIFvO 煽るだけならアフォでも出来る。
ワラタ
このスレにはアフォしか居ないことが判明した。
つーか、説明読んだだけではそれ以外に利点がわかんね 前時代の遺物じゃねーの?
>>298 そんなに自分を卑下しなくてもいいと思います!
おー、いつに無く、なげやりだなや
303 :
名前は開発中のものです。 :2006/04/24(月) 03:47:07 ID:9TpRengd
プログラム〜ってわけじゃないんですけど SFCとかの画像(チップ)だけって取り込む方法ってありますか?
あるけど、教えない
マリオのジャンプの話があったけど、 今ちょっとスーパーマリオブラザーズをやってみたけど、 そんな複雑なことはやってないと思った。 パラメータは、 ジャンプの勢いと、重力があって、 ジャンプの勢いを、5、重力を1とすると、 ジャンプ開始時に、vy=-ジャンプの勢い フレーム毎に、vy+重力 vyで考えると、簡単にいって、 -5、-4、-3、-2、-1、0、1、2、3、4、5 -5、-4、-3(ボタン離す)、0、3、4、5 これでそれっぽくなるだろ。これだとジャンプの頂点付近の動きが不自然になるから ちょっと調整してるだけで。 実際ファミコンのゲームなんてこの程度の簡略化されたモデルで、 大層な物理法則云々をもちだすほどでもない。
放物運転なんか大層でもなんでもない 余計な計算しなくて済むように適当に係数を設定して 普通に計算した方が簡単、調整いらず。
マリオの場合はジャンプする前に放物線が確定できないから難しい まずジャンプし始めてから押している時間によって 不自然にならないようにジャンプの高さをかえないといけない。
押している間重力加速度を低めにしてるだけじゃないのか?
>>305 なんてそんな単純なもんじゃない
-5 -4 -3 0 3 4 5なんてめちゃくちゃ不自然だろ
物理法則をマスターしないとマリオは不可能
310 :
名前は開発中のものです。 :2006/04/24(月) 21:16:46 ID:p2Pren1O
現実のジャンプは、踏み切った瞬間に飛び出す力が確定して、 あとは重力の問題だけど、 マリオの場合は、踏み切った後に、粘ったり調節することが出来るんだよ。 この時点で現実の物理法則を完全にシミュレートしたとしても マリオにならないことははっきりしてるだろ。 それをどう再現するかという問題なわけだ。 俺は考えてもよくわからなかった。奥が深い。
マリオマリオいってるから久々にプレイしてみたが、かなりテキトーだったぞ
>>305 の見解と大きく違うが気にスンナ
ボタン押してる間等速上昇、離すor一定時間上昇で頂点放物線処理、等速降下
処理の軌跡を図にするとこんな感じ
∩
↑ ↓ 矢印は等速運動
押している間 離すor一定距離上昇後
結論:ゲームなんてもんはそれっぽく見えればいいんだよ
等速上昇下降はないだろ。
>物理法則をマスターしないとマリオは不可能 物理法則に従ったらマリオは不可能なのに、 なんでこういう勘違いが平気で出来るんだろう?
だいたいファミコンでそんなことやってるわけねーだろw 操作していて気持ちがいいようにテーブルをカリカリに調整してるだけじゃねーの? ジャンプだって上昇の仕方は2種類ぐらいしかなかった気がするぞ。
>>312 背景の直線で出来た山をそれに沿って飛んでるから等速に見えたわけで
物理法則をマスターとか相対性理論も必要なんですか
ニュートン力学でいいんじゃないか?
自分の身長以上跳んでる時点で物理法則に従ってないだろう
ノミなら身長以上跳んで問題無い。マリオも実は…
重力が十分に小さければ身長以上のジャンプも容易だ。 だが、ジャンプ中の制御やファイヤーマリオになれることなどから、 体内にたまったガスを利用していると見るのが妥当ではなかろうか。
無限増殖してる時の状態の物理的解説キボンヌ。
マリオは何かテーブルに調整しながらデータ入れてったって何かでみたけど。 そんなことより、スクリプトで関数と関連付ける時はどうすればいいのでしょうか? 良く見るのはマップ使ってる奴何ですけど。 一番良い方法ってなんですか。 ヒントだけでもください。
>>318 ジャンプ力が異常にあろうが、体重が体の大きさに対して異常に軽かろうが、
物理法則自体に従うことはできる。
パラメータが現実離れしているからといって、物理法則に従うかどうかには関係ない。
物理法則に筋力とその質量、生命維持に関わるような臓器も考慮しなくて良いのか。
便利な物理法則だ。
きっと
>>324 の脳には血液すら流れていないんだろう。
なんでマリオで物理法則とか言い出す奴は、とことん馬鹿なんだろう?
物理法則とか抜きで、
>>325 が馬鹿だと言うことは分かる。
何だかよく分からんがプログラマ特有の方向へ脱線していってることは分かった
>>325 ノミは自分の身長の150倍ジャンプするんだぜ
>>323 Luaってオ-プンのオンラインゲームとかでもよく使われてますよね。
参考にしてみます。
ありがとうございました。
弱い人間ほど自分が努力して習得したものを神聖化したがる
さらに弱い人間ほど、他人が努力して習得したものを無根拠に否定したがる。 やぱりアクションゲーは、物理法則を知っててちょっと使うだけでも リアル感が全然違うよ。 特に球の動きを使うもの(テニスやピンボールやビリヤードとか)は物理法則を知らずに シミュレートするのと、知ってて適用するのとで、ものすごい差がある。 確かに独学で身に着けるのはちょい大変かもしれないけれども。 アクションゲーのゲームプログラマには、やぱり数学・物理は欲しいところだな。 「ゼロから数学・物理を学ぶスレ」とかあるといいかもね。
〜などとテニスも野球もやったことない人間が申しております
物理法則なんてどうでもいい 問題はマリオの髭だ
ドット絵で左右の向いてる方向を識別できるようについたそうな
所詮、知らないもの、分からないものが怖いだけさ。 韓国人や中国人を無意味に中傷したがるのと同じ。 もっと近くにいれば分かり合えるというのに。 物理法則?知らずに語るな。こちとら理解してて当たり前。 その上で有用性を語っていただきたいものだな。
・・・無意味?おまー、いっぺん中国人と働いてみれ? 一人ならまだしも3人ぐらい集まると声はでかいわ、いうこときかんわ 会社の備品は勝手に持ち帰るわ、胃が痛くなるぞ。韓国人は知らんが、似たようなもんだろ。
ageだし、釣りだし、何故
>>336 がレスするのか判らん。
うむ
ほう、中国人にもいろんなのいるんだな。俺らと一緒だw 留学生やら、教授やらな中国人がいるが、有能で頭が下がるばかりだよ。 日本語は上手いし。どうやったら二年でペラペラに…。 中国人労働者と一緒に働く機会があるような身分ではございませんので、残念ですワカラネー。 てか、中傷香具師らの中に、実際に中国人知ってる奴って、どんだけいるんだ???クソ謎。
日本語でおk
韓国なんて、知れば知るほど嫌いになるよ。 知らない奴ほど「隣国なんだから仲良くしなきゃ」なんて言う。
お前らって奴は('A`) さすがにしっぽマリオの飛び方は無理だと思うんだな
>>341 同意。
韓国に作った系列会社に仕事出すと、
作業人数詐称するは、日程延ばすは、品質悪いは。
でも巧みに金額増して要求してくるという
もう最悪でしたよ。
うちの上司達も、もうあそこには頼めんて言ってる。
実際作業してる人達はいい人ばかりなんだけど、
会社の上層部が悪意のある感じだったよ。
・・それにしてもこの板、最近荒らし多くない?
つまらんですなー
相談スレだから、池沼が湧きやすいのはアタリマエ。
中国人の人と仕事したことあるけど 向こうのエリートがこっち来るんじゃね? 中国人は有能と馬鹿の差が激しいっていうし。
マリオを題材に物理云々を語ろうとする奴は間違いなく馬鹿。
そもそも、選択すりゃ物理なんて高校でやるのに、 努力なのなんだの…ってどんなレベルの低さだ(嘆) 落ちこぼれの中の落ちこぼれの中の……。普通でイイだろ。普通に生きてりゃ。
うちの高校には物理ないよ いやあったかな……まあどっちでもいいや
物理など普通に生活していれば法則は一目瞭然である
>>349 藻まいの言葉、含蓄深いな。
漏れは高校大学と物理系を学んできたわけだが、
ニュートンやアインシュタイン含めて
多くの学者が長い年月をかけて積み上げてきた
英知を目の当たりにすると
日常の経験からは想像できない物理現象の真実に
目からウロコなことばかりだったわけだが。
漏れが特に学んでない、人文系に対して抱いている感じが
そうだよ。そうなんだよな。
勉強しなくてもだいたいわかるとか思ってた。
んーちがうな。漏れ勉強しようと思ったよ、人文系を。まじで。
ありがとう。感謝するわな。
経済学板に常駐してますがたまにそういう人が荒らしてますねぇw
経済学の理論は自明で学問ですらない、と。
そういう人に少子化が経済に与える影響とか
日銀の量的緩和などについて尋ねるとだんまりしてしまう。
リンゴの落下だって見ただけでは等加速度運動とは思えません。
加速度が時間に比例して増していくと思ったもんです。
先人たちの知恵(と
>>349 )には頭が下がる思いですね。
昔からジャンプゲームはあったし、一定速度で動くもののほうがめずらしいような 別に物理がどうのこうのなんてだれもおもってなかったはず 小学生のガキだったなら物理以前に数学という言葉も知らんはずだしな
だいたい物理法則を知らん奴がゲーム作ってるわけない。
計算してるかテーブル処理してるか外部のクソが分析したところで何になる?
その時点で処理が簡単で早い方法を選べばいい。
問題提起した厨房はクソだ。
>>305 テーブル使っておきながらまた調整だと?センスなさすぎ
>354は>305を実装するのにテーブルを持ち出すそうです。
テーブルはないだろ・・・
単発IDが多いな
てめぇもだろw
まるで同人ノウハウ板のデッサン談議だな 物理法則→デッサン ゲームへの実装→漫画絵
362 :
名前は開発中のものです。 :2006/04/26(水) 17:43:30 ID:b82YC4HD
宇宙ものの3Dシューティングや昔ながらのSF映画、疑似3Dゲームなどで多用されている 星が中心から放射線状に迫ってくるあれはどういう式を書けばよいのかズバリ教えてください。 ちなみに三角関数などは知らない馬鹿です。 ついでにCGなど無かった、あるいはコストが掛かりすぎた時代の映画などの 件の映像はどのようにして作られていたのでしょうか?
位置をX,Y,Zで持つとして x = (X - 中心) / Z + 中心 y = (Y - 中心) / Z + 中心 だ。ガンガレ。
古い特撮はフィルムに手書き
,;r''"~ ̄^'ヽ, ./ ;ヽ l _,,,,,,,,_,;;;;i <いいぞ ベイべー! l l''|~___;;、_y__ lミ;l 物理法則を重視するのがPGだ!! ゙l;| | `'",;_,i`'"|;i | 物理法則を軽視するのはよく訓練されたPGだ!! ,r''i ヽ, '~rーj`c=/ ,/ ヽ ヽ`ー"/:: `ヽ / ゙ヽ  ̄、::::: ゙l, ホント ゲーム製作は地獄だぜ! フゥハハハーハァー |;/"⌒ヽ, \ ヽ: _l_ ri ri l l ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| | / | ゙l゙l, l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l | ヽ ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ /"ヽ 'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`" / ヽ ー──''''''""(;;) `゙,j" | | | _,,,,,,,,,ヽ、 ,,,,,r-'''''ーー'''| | | | ''" ヽ,,___,,,r‐''''''二__ |__| | | \'''" / ノ | |
>>363 ありがとうございます〜・゚・(つД`)・゚・
でもよくわかりません(;´Д`)
Zは奥行きになるのでしょうか?
100×100ドットの画面で50,50が中心として
星が常時100個飛んでるとして・・・
わかりません(>_<)
Zは奥行きだ。一番手前が1な。 わからんなら、スクリーン座標じゃなくて標準座標で考えるとわかりやすい。 Zが1のとき(50,50)に表示するとして Zが2のとき(25,25)になるわけだ。 Zが4のとき(12.5,12.5)だ。単にZに応じて縮小してるだけだ。似非だからな。 100個飛ばしたいなら乱数で適当にX,Yを作成して、 Zを初期値50にしてフレームごとに1になるまで減らしていってみろ。
368 :
名前は開発中のものです。 :2006/04/26(水) 22:10:11 ID:pA7FYnYA
>>305 確か加速度をテーブルでもってるんじゃなかったけ?
マリオは関連スレがあったと思うが・・・
>>367 横から補足
Zも1〜50のランダムの方がいいね。
でZ=0になったらまたZ=50にしてX、Yをランダムにすればいい。
なんだ?いきなり流れが止まったな
馬鹿が消えると流れが止まるあたりがこのスレの本質を表している
マリオで物理云々言っていた勘違い馬鹿は、現実を知って結局消えたのか。
うむ
2Dゲームなら、それっぽく動けばいいっしょ
結局ゲームによるでしょう。物理法則にどれほど従うべきかは。 程度の差でしかないです。 あと物理を知ってた方が楽に組める、くらいです。 ところでジャンプするときに等加速度運動する以外に どういうシミュレート方法がありますかね?私は専らそれですが。 以前、三角関数を使うとそれなりの動きが 表現できるとかあったような気がしますが。
衝突判定周りのいい管理構造はないでしょうか。 今は、敵のマネージャで、自機との判定や弾との判定をしています なんかしっくりこない。 敵のマネージャでいいのか?とか思ってしまう。 判定用のマネージャを作るべきなのかな?
378 :
名前は開発中のものです。 :2006/04/30(日) 00:57:03 ID:0vajDYlO
どこかでCollisionDetectionの構造を解説したページか、書き込みがあったきがするんだけどもわすれてしもうた_・・・
このスレとか質問スレとかでも、定期的にそのタイプの質問があったと思うから 現スレ、過去ログ問わず適当に検索してみるといいよ。
>>376 >ジャンプするときに等加速度運動する以外に
>どういうシミュレート方法がありますかね?
↑こういう初歩的な質問をするような人間が
↓こういう台詞を言い放つのは夜郎自大と言えなくもない。
>結局ゲームによるでしょう。物理法則にどれほど従うべきかは。
>程度の差でしかないです。
みんなわかってる。スルーしる。
382 :
376 :2006/04/30(日) 13:17:32 ID:jku9dNZy
>>380 ?いや、質問というかそれっぽく見えればそれで良い
という主張をされている方はどんな方法を取ってるのか気になって
聞いてみただけなんですが。何かおかしいですか?
なぜ叩かれるネタにされてるのかよく分からんです。
誰も叩いていない。
> 等加速度運動する以外にどういうシミュレート方法がありますかね? > 私は専らそれですが。 等加速度運動じゃマリオ作れないじゃんwwwww
【デ】…デザイナー 【プ】…糞プログラマ 【デ】ジャンプモーションの移動情報が実機上で反映されない。何故? 【プ】モーションデータの並進成分は無視してます。 【デ】ジャンプの高さや幅はどこで調整するの? 【プ】技データのほうで初速を与えてください。 【デ】…初速? 【プ】はい、初速です。
【デ】空中軌道をもっと自由に作り込みたい。高さと幅と滞空時間を自由に調整したい。 【プ】それは物理法則を無視しています。 【デ】…は? 【プ】人間のジャンプ中の並進運動は水平方向を等速度、垂直方向を等加速度運動です。 【デ】…。 【プ】他にどういうシミュレート方法がありますかね?私は専らこれですが(ニヤリ
いい加減このどうでもいい話題はやめれ。
y = a * t^2 でいいじゃん。
独りならそれでいいよ。誰にも迷惑かけないから。
後ろにもつけるのかw
ウジ虫どもにはサーと言わさなきゃな
なんでいちいち荒れるんだろ?
単純な議論すらできないのは、人と面と向かって接した経験がないから。 意見が徹らないと後は暴れるだけなんて、精神的成長が未だに幼児段階。
自己診断乙
もう糞議論は終わったんだから当事者はROMでいいよ。
>>394 推定約一名無駄に攻撃的なのがいるから。
無視スキルがない人は辛いのう。
今時そんなプログラマは滅多にいないよ。 1人〜2人で開発できる単純な携帯電話ゲーならアリかも試練が コンシューマ畑では太古の珍獣or浦島太郎扱いされる希ガス。
うむ
>>400 そうなんだ…。
今時はどんな返事をするのがトレンドですかね?
よろしければ、一つサンプルを提示してもらえると嬉しいかも。
おまいさん、サンプルとか変な奴だな。 あんまりぷろぐらむばっかしてると、人間性が置いてけぼり食らうぞ。
また変なのが北
405 :
400 :2006/05/04(木) 01:33:31 ID:rQig4lXF
>>402 宿題。
> 【デ】ジャンプの高さや幅はどこで調整するの?
> 【プ】技データのほうで初速を与えてください。
↑この仕様で
市販のアクションゲームや格闘ゲーム並みの
「多彩なジャンプ系アクション」を実現せよ。
結局返事によるでしょう。返事にどれほど従うべきかは。 程度の差でしかないです。 あと返事を知ってた方が楽に返答できる、くらいです。 ところで今時はさっきの返事以外に どういう返事の仕方がありますかね?私は専らそれですが。 以前、サンプルを使うとそれなりの返事が 表現できるとかあったような気がしますが。
なんだGWってヤツか?
そんな事はどうでもいいから俺の疑問に答えてください フラグ管理がめんどくさくてどうにかしたいのだがいい案おもいつかね 無敵フラグとか操作不能フラグとかいろいろと10個を越えたあたりからわけわからない
フラグ一つに纏めて番号管理なりビット管理なりしたら?
10個て、たかだか1バイトに収まる範囲で面倒だと言われてもw フラグ管理ツールでも作ってみたら?
収まんないけどね
収まんねぇなww まぁいい。
フラグなんて考え方は捨てて、ステートマシンにしたら?
フラグを要求してる物と一緒にクラスに纏める
415 :
408 :2006/05/05(金) 15:03:59 ID:69T104TO
まとめてわかりやすくしたり フラグの数を減少させる努力するぽ?(´・ω・`)
何で疑問形なんだよw
オブジェクト指向とデザパタくらい勉強しようや
正直、あまり関係ない。
十分関係あるだろ
はたから見てると誤差の範囲です。仲良くしてください。
全く関係無い⇔あまり関係無い⇔十分関係ある⇔関係ある。
↑ ↑
>>418 >>419
>>415 処理の局所化は情報処理の要
それをやらずして何をやるのか
>>405 言わんとしてることがわからない…
自分は格ゲー作ったことがない・ジャンプ中の各種調整はプログラマーがやってしまう、
という場面しか体験してないもんで…
「格ゲーは技データなんてものを用意してデザイナーが弄って調整するのか。へえ…」
などと思いながら眺めてたもので、その提示された文にさほど疑問を感じなかったんですが…
もしかすると、「そもそもありえない制作状況・作業分担である」と言いたいのでしょうか?
そういう話でもない…?
それとも…
ジャンプ中の軌道なり滞空時間なりをデザイナー側で自由に調整できるようにするためには、
モーションデータ中に含まれる情報を何かしらの形で利用したほうがいいんだろうけど…
プログラム側で基準となる座標を管理して各種衝突処理をするより
モーションデータから処理に必要な基準座標を取得してそれを元に処理したほうがいい…
…という感じの話なのか…?
やっぱり何を言わんとしてるのかわからないな…
つーかさ。ふと思ったけどさ。
>>405 はチームの中でコミュニケーション取れてる?
「宿題」とか言っとけば、相手に自分の言わんとしてることが伝わると思ってんの?
聞いた側が、「この人何を言わんとしてるのだろう」と首をかしげるような、
そんなやりとりばかりしちゃってない? 大丈夫か?
>>386-387 に登場する糞プログラマと、
実はやってること変わらないんじゃないか…?
>>405
3Dの場合、ジャンプモーションはCGソフト側であらかじめ定義しておいて、 プログラム側はブレンドなり多少は加工を加えるけど、結局は再生するだけ。 リアルタイムな物理演算どころかIKの計算すらやらない場合がほとんど。
>>422 書いたのは俺じゃないがあえて言わせてもらおう。
…皮肉ってしってるか?
>>423 モーションだけな。
ジャンプ途中で他のアクション入ったり高さの違うところに移ったりするからプログラム側で処理する。
そうしないとジャンプ途中からいきなり地べたに瞬間移動するじゃん。
他アクションに変わった瞬間高さ調整するんならハナからやってたほうが自然。
実際モーションをそのまま使って、不自然なままになっているゲームはそこら中に溢れている。 それどころか普通に歩いているだけで、歩幅すら合っていないゲームが公然と売られている。
大手メーカー製のゲームでも、勾配の緩やかな階段なんかを歩かせると 歩数が全然合ってないのがよく判る・・・ いや、ジャンプの話だったな
はっきりいって、ゲームが面白ければそんなのどうでも良い所だしな。
>>428 そう! まさにそれこそが真理。
ユーザは製作者の苦悩を知らないし、知る必要も無い。
ただ、この場がアカデミックな議論が可能な場所であることもまた事実。
わざわざ用意されている場所を使わない手は無いわな。
何が言いたいかというと、喧嘩しない程度にやれってこった。
ウザ
431 :
名前は開発中のものです。 :2006/05/07(日) 09:06:15 ID:MUl40nrj
アカデミック(笑
他の仕事してるやつはプログラムに対して理解が無さ過ぎる。 もっとお互いの仕事を理解しあうべきだ。
つーかプログラミング相談スレに クソデザイナーのクソ話なんかクソ持ち込むなよ ・・・いや、最初はクソマリオを持ち込んでクソ狭い世界(ry
プログラマは他の連中の奴隷じゃねーべ プログラマが他の連中を上手くシステムに誘導してやるのがベストなんだろうな もちろんそのためのお膳立ては必要だけど
436 :
400 :2006/05/07(日) 15:20:18 ID:d/ux/fZN
禿同
>>423 納得しました。そういう話だったのね…d
以下チラシの裏。
>>386-387 は2つの問題を内包してる。
一つは「企画にあった適切な実装を選んでるか」。
もう一つは「チーム員と適切なコミュニケーションをとれてるか」。
…例えば、
>>400 は「実装」を指摘してるし、
>>403 は「コミュニケーション」を指摘してる。
>>386-387 のやりとりは、個人的には肯定できない…。
要望が上がってきたときに
「ゲーム性にどんな影響を及ぼすか」「ユーザがどんな印象を受けるか」
を最優先で考え、そのうえで「作業負荷」「処理速度」「容量」「その他」を検討して
実現性の有無を判断するのがゲームPGに求められる能力…だと思うのだけど、
そういった、「一応検討してみる」という姿勢が感じられない。
そのうえ、他職種と問題点を共有しようという姿勢にも欠けている。
>>432 の言うような「PGの作業内容への無理解」は、
PG自身による他職種とのコミュニケーションのとり方に
起因してる部分が多いのではないか。
「判ってない人」に、概略だけでも判ってもらえるよう説明する努力を、
PGは怠っていないか。
それと同時に、PGは他職種の作業内容をどれだけ理解しようとしているか、
その点についても疑問を感じる。実はお互い様じゃないのか。
PGは皮肉を口にするのがカッコイイと勘違いしてる人種、まで書いた
お互いの分業が出来ているといっても共同作業に変わりは無い
>>386-387 のようなPGに投げっ放しとけばどうにかなるというのは間違いだ
後からの仕様変更は大変なんだから先に言っとけと思うが
>>437 が「PGはカッコいい」というコンプレックスを持っているのは判った。
>>423 >>納得しました。そういう話だったのね…d
ありえねー、そこに納得する思考がわからねー
プログラムはここまでやった、あとはおたくらで調整してねさようならって言ってんだぞ?
情報交換が大事って言ってるのに変に情報を小出しにして、 誤解を生んだり荒れたりするからなぁ、この板。 ひどいのになると無駄に煽ったり。 そうなったら情報交換どころじゃないですよ。 全員が全員と言わないですが。何とかならないですか?
>>473 がまったくわかって無いのに解った気になっていることだけは解りました。
アンカー間違え。未来の人、後はよろしく。
ぶっちゃけ
>>386-387 のやり取りは
デザイナのコミュニケーションにも問題があると思うけどな
「適当にああしてこうして」じゃ物は作れない
まあ
>>437 はPGとコミュニケーションをとるこった
てめえらまたくだらない話してんじゃねえ。 このスレは”ゲームプログラミング相談室”だ。
くだらない話かどうかは別として、 このスレは”ゲームプログラミング相談室”だ。
PGをドラえもんと勘違いしてる池沼を追い出せば、元通りになるよ。
PGの体型がドラえもんだったりすると、勘違いも止む無しだよね。
(#・∀・)プッチーン
>>441 >何とかならないですか?
自然の摂理と思う。
@分かりません!答えを教えて!
↓
Aヒントもらう
↓
B分からないから癇癪起こして八つ当たり
↓
Cハイエナがワナビーの香りを嗅ぎ付ける
↓
D宴が始まる
地球・ふしぎ大自然!いきもの地球紀行!
>>444 それより企画はどこ行ったんだろう
こういうのを、予めまとめるのが企画の仕事じゃないのか?
とプロとは程遠い俺が言ってみる。
結局、どう効率良く回すかだろ
企画は企画スレにいけばいるんじゃないか? つか、PGサイドから企画厨ネタやっても、 一方的な展開 vs それを嗅ぎ付けた企画厨が大暴れ 一応、相談室なんで、いいかげん他所でやって欲しいもんだ。
今日始めて構造体の意味が分かった俺がいる。
455 :
名前は開発中のものです。 :2006/05/10(水) 00:19:43 ID:6GsKVxFc
おめでとう
おめでとう!
俺からもおめでとぅ 明日からの君は輝いていることだろう
構造体しってからどれだけ楽になれたか…(懐 おめ
>>454 はどういう意味なんだろう。
仮にもここは相談室だ。日記帳じゃない………。
はぅあっ!
これは日記に偽装した点呼ではなかろうか!!!
つまりこのスレの住人は
>>454-458 の5人。
相談レッド。
目的のためなら幾らでも天然のフリをできる。チームの要。
相談ブルー。
何気に晒しage。淡白なリアクションで必要に応じて叩く余地を残す策士。
相談イエロー。
好物はカレーライスだっ!
相談グリーン。
暖かいように見えて、テキトーに表面を繕うムードメーカー。
相談ブラック。
よくいる苦労人。
おまえら相談戦隊ストラクチャージャー。
プログラミングの危機とあれば何処へでも飛んでいくぜ!!
ささ、お次の相談どうぞぉ。
460 :
名前は開発中のものです。 :2006/05/10(水) 01:32:39 ID:6GsKVxFc
(-_ - )
>>459 分かってないね(´・ω・`)
エヴァの真似をしただけだよ。
キモ
すみません、教えて下さい。 映像ファイル(*.avi)を再生するにあたり、その再生速度を連続して(40〜60回/sec)変化させるプログラムを組んでいるのですが、よい方法をご存知ではないでしょうか。 Directshowでどうにかなるかな、と思っていたのですが、これの内部処理は"再生停止->再生速度設定->再生開始"となっているようで、実際に走らせて見るとカックンカックンになってしまいます・・・。 再生速度の可変範囲が0〜20倍(ホントは100倍くらいまでの方が都合が良い)なので、MCIを使うことができません(<-勘違い?)。 或いは、フレームをひとつずつ読み込んでは、fpsを可変にしてVRAMに投げた方が良いのでしょうか。 開発言語はCで、開発環境はVisualStudio.NETです。 よろしくお願いいたします。
459はまだ解るが エヴァの真似?をユーモアとは取れないなあ
元ネタが分からないだけだろ
>>495 おまい、つまんねー事ばっか書いてんじゃねーぞ!
氏ね。
ogreを日本語で紹介してるサイトありますか?少しでもいんですヒントを
472 :
463 :2006/05/10(水) 22:53:31 ID:Tu8vkCj3
>>470 ありがとうございます
聞いてみますです
>>454 お前に必要なのは、構造体じゃなくHSPだ
474 :
名前は開発中のものです。 :2006/05/11(木) 02:42:17 ID:TF9HlDw5
クォータニオン関係はどこいったらいいんだろう? 高速な補間とかスキンやボーンの話とか
>>473 お前に必要なのは、2ちゃんねるじゃなく社交性だ
476 :
名前は開発中のものです。 :2006/05/11(木) 20:21:33 ID:RvOn68s9
うむ
>>475 お前に必要なのは社交性じゃなく、HSPだ
以下半永久的ループ
まさかHSP工作員www
480 :
名前は開発中のものです。 :2006/05/11(木) 23:16:31 ID:RvOn68s9
HSPはHoPeの略・・・・・・にしたかったところへ性欲が邪魔してHSPになってしまったんだよ 知っていたかね?
忘れられたSは自殺しました。
Ho性欲Pe?
483 :
名前は開発中のものです。 :2006/05/12(金) 19:36:46 ID:EZjES2WR
SEX!!!
うっひひひひひ
HSPとLGPとActiveBasicと豆乳の速度比較ってどっかにない?
無い。 が、LGPは機械語吐くので圧倒的に早い。 他はインタプリタなので似たり寄ったり。
今のActiveBasicはネイティブ吐くよ
アクションゲームの敵管理ってどうやってやるのがいいんでしょうか? シューティングだとタイムテーブルで編隊を出現させるのが一般的な様ですが。
アクションゲームってどんなのを想定してんのか知らんが 自由スクロールでマップに合わせた敵配置って勝手に解釈 タイムテーブルの時間をスクロールカウントにするだけでいんじゃね?
レスどうも。 ドラキュラとか龍剣伝とかロックマンとか オールドタイプのオーソドックスな2Dアクションを想定してます。
491 :
名前は開発中のものです。 :2006/05/18(木) 00:24:23 ID:XAqbTy3k
>>490 前にやってのでは、
マップに敵オブジェクトを配置して、画面内に入ったら、
出現みたいのでやってた。
初期スーパーマリオなら、STG風もありだけど、今時なら、全部動かしちゃっても良いかもよ。 つまり画面外のも。もちろん画面外のまで「真面目に」動かす必要はないけど。
>>490 成る程。復活とかも工夫次第でできそうですね。
>>491 真面目につうか画面外で動かすと出会う前に転落死してるとかありそうですね。
間合いが詰まるまでは動かさないと。
ありがとうございます。参考にしてみます。
494 :
名前は開発中のものです。 :2006/05/19(金) 01:24:27 ID:4jnQO6Q0
>>492 のは、画面外のは出現させておいても、画面何入るまで動かさないってことかな?
基本的にそうなんだけど、「プレイヤーキャラが居るときだけ敵が動いてる」みたいな 印象を与えない様にしたい昨今と言いますか。少なくともマージンは取るみたいな。 マシンパワーのおかげだけど、管理自体もその方が楽だしね。 確かに良く読めば、491氏と同じ様な事言ってるな。
まあ、CPUがあまりさくってる昨今、楽な方でやりゃいいな。
私はRPGのNPCも画面外だろうが何だろうが常時移動させてます。座標だけ。 グラフィックを描写するのは画面に映ってるときだけですが。
描画処理と、内部処理を分離するんだな。 基本的なことだけど、重要なんだなぁ。
俺は見た目中心のツールでゲーム作りに入ったから そこで微妙に苦労したよ
MVCモデルってゲームに適用できるのかな
個人的見解だが、ゲームだとそれぞれの境目が曖昧になるきらいがあると思う。
業務系でも曖昧になりやすいからおなじだとおもわれ
ゲームのソースってないかな 色々な組み方を知りたいんだけどどこ探してもいいものがない WinMainでゲームクラスを起動するやり方ってどんなもの?
( ゚ρ゚)ポカーン
レス早いな
「いいもの」ってなんだ
>>508 みんなの心の中にある小さなぬくもりさ。
おれのぬくもり ∧_∧ ∩ 'A` ∩ ( 丿 (____ ノ (_(_)
>>505 int WINAPI WinMain(HINSTANCE hinst,HINSTANCE hprev,LPSTR lpcmd,int)
{
CGame game;
return game.Run(hinst,hprev,lpcmd);
}
512 :
名前は開発中のものです。 :2006/05/27(土) 21:30:23 ID:BqX0zjr1
>511 int CGame::Run(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine) { if(Init(hInstance,hPrevInstance,lpCmdLine)) { Loop(); } return Uninit(); }
>512 int CGame::Loop() { exit(0); return; }
コンパイルしています... cgame.cpp cgame.cpp(13) : error C2561: 'Loop' : 関数が値を戻すように宣言されていますが、関数定義に 'return' ステートメントがありません。 cgame.cpp(11) : 'Loop' の宣言を確認してください。 game- エラー 1、警告 0 ---------------------- 終了 ---------------------- ビルド : 1 正常終了、1 失敗、0 スキップ
void CGame::Loop() { exit(0); return; }
>>516 コンパイルしています...
cgame.cpp
cgame.cpp(4) : error C2451: 条件式の型 'void' が間違っています。
void 型の式は他の型へ変換できません。
game- エラー 1、警告 0
---------------------- 終了 ----------------------
ビルド : 1 正常終了、1 失敗、0 スキップ
>517 一体、俺のどこがいけないのだ! きっとそのコンピラが糞なんですよ
520 :
コンピラ :2006/05/27(土) 22:54:37 ID:fIK1frgG
バレテシマッタ
アクションゲームの敵配置の話が気になるな… 例えば、スクロールカウントで敵が発生 → 敵が画面に出てくる → プレイヤーが回れ右して来た道を戻る → 敵が画面外に → でもきっと、敵はまだワーク上に存在してて、画面外だけどその場をウロウロしているんだ → プレイヤーが回れ右してまたやってくる → 敵の発生はどうなるんだろう… 他にも、スクロールカウントで敵が発生 → 敵が画面に出てくる→ プレイヤーが敵を攻撃 → 敵が死亡 → プレイヤーが来た道を戻っていく→ また回れ右して殺害現場にやってくる → 敵の発生は…? ACTなら、「何度発生してかまへん」敵と、「一度ヤッタらもう出てきなさんな」って敵が居ると思うんだけど そのへんどうやって管理すればええのん。広いステージやったらどうするのん。 「何度発生」系はスクロールカウンタでええとしても、「一度ヤッタら」系はどうするん。 「一度ヤッタら」系の敵をステージ開始時に全員発生させるっちゅーのもあるけど 敵を一匹やるたびに処理が軽くなっていく → ステージ開始直後は妙に処理が重いことになるから おそらくは「この敵は今生きとる」とか「もうタマとったで」の管理が別途必要になると思うんだけど そのへんどういうアプローチがあるのかね 敵発生のデータに直接上書きしてフラグを書き換えるのは無しの方向で というよりできるだけRAM領域は少なくなりそうな方法でと考えると結構悩む 豊潤なRAM領域は画像処理に使いたいのでワーク管理等のメモリ使用量はできるだけ節約したいとか 最終的にROMに焼くから(玩具とかで)、RAMはあまり使えんとか
ゲームに合わせて好きなようにすればいい。 別に統一する必要はないし、決まりがある訳でもない。
RAM使わないんなら無理なんじゃない?
発生したor死んだフラグ作るだけでいいんじゃねーの?
>>522 基本は、
・一度死んだら出ない
じゃないのかな。
あとは、
・時間たったら復活
とか?
あと、前やったのでは、
・この領域内にいるときに画面はしから敵を出す
みたいなの
526 :
名前は開発中のものです。 :2006/06/05(月) 21:59:53 ID:9PvakliH
マップチップの描画に関しての質問です 00100 11211 43334 このようなマップがあったとして switch(map[y][x]) { case 1: 1のチップを描画 case 2: 2のチップを描画 case 3: 3のチップを描画 : : こんな感じに延々と判別の部分が続いてしまうのですが どうやって実装するべきでしょうか?
あらかじめ配列にマップチップのデータを格納し、map[y][x]で参照して描画。
例えばだが、マップ画像を 01234 のように連結する。 で、描画矩形の始点を(マップ番号*サイズ,0)みたいにすれば switch文は要らなくなるんじゃね?
529 :
526 :2006/06/06(火) 00:31:06 ID:4iEf5tew
興奮するほどの事なのかw
ワロスw
目から鱗が落ちりゃ興奮することだってあるだろう 俺はタスクシステムを知ったときに若干興奮したが それで作り始めて半年後には落胆してたな あれから10年経った今はOOPマンセーですよ
いや結構マップチップ処理はわからないとわからんもんなのよ
俺ファミリーベーシックから入ったから、 すべての画像チップがindexで管理されるのは当然だと思ってた PC88で変数に画像を割り当てることができるほうがむしろ興奮した
初歩的な質問ですみません。 C++でWindowsのシューティングゲームを作っているのですが、 弾を発射する処理時の数値管理をうまくやる方法が思いつきません。 1つや2つの弾ならいいのですが、多数の弾を画面上に表示させるときに 弾の座標や速度などはどのように管理し、計算するのがいいんですか?
構造体かクラスに詰め込むんだ!
>>536 ・弾の座標や速度を持ったクラスを作る
・そのクラスをリストに追加していく
539 :
536 :2006/06/07(水) 22:09:46 ID:Oar08TuE
>>537-538 レスありがとうございます。
構造体はやってみたんですが、どうも上手くいかなくて・・・。
自分が指定した弾数を表示するのは可能なんですが、
弾を敵から次から次へと発射させていき、そして画面外の弾は消してってのが難しいです。
クラスを使ってみてもう少し悩んでみます。
敵の弾をvectorにpush ↓ vectorを走査して処理 ↓ いらない弾をpop ↓ 戻る
vectorだと最後尾以外のpopにオーバーヘッドが発生するんでlistのがいいとおも。
敵の弾が順番に出て、消えてくならvectorでよいんだけどね
大昔(フラグメントとか馬鹿にならなかった頃)のくせで、listは一瞬、躊躇ってしまう俺
544 :
536 :2006/06/08(木) 20:15:50 ID:3urdKICX
無事作ることができました。 感動です!ありがとうございました。
>>543 > 大昔(フラグメントとか馬鹿にならなかった頃)
それどういう条件下での話だ?
大昔も小昔も現在も何も、メモリプールなアロケータを使った
弾リストがメモリ断片化で問題になるなんて聞いたことねー。
>>545 > メモリプールなアロケータ
そんな前提が加わったら何も言えんw
フラグメント気にする前に当然考慮すべき解決法じゃないのか。。。 ただ、俺だったら最初に配列で確保する。リスト不要。 弾が消えたら、配列の末尾の弾データで上書きする。 でその上書きしたところから弾(が消えるかかどうか)の処理。 弾程度のデータ量なら上書きなんて大した負荷じゃないし、 配列上のどの位置にあったも問題無い。 全部机上で考えた。実際上手く動かなくても反省しない。
>>543 は古参っぽく振舞ってみたかったんだよ、きっと。
俺なんか内部が動的配列のリストを自作して使ってる。 ArrayListですかそうですか
そういや、Win9x系を使ってた頃に 弾1個に1mallocな富豪的プログラミング実験したら ばっちり不具合起こした憶えがあるんだが NT系主流の現在はどうなのかは知らん。
>>550 そりゃ、お前のバグだろw
newじゃなくて、mallocってるところが怪しいw
>551 Cの何が悪い。 いや俺自身はC++にどっぷり浸かってもう戻る気無いですけど。 あと「お前のバグだろ」には同意。
553 :
543 :2006/06/09(金) 00:30:27 ID:1NV1OMlG
>>547-548 まてまて、そうじゃなくて、どうみてもSTLのlistの話だったよな?
STLならまず、そんな実装はしないっしょ
で、俺が「STLのlist」を使うのを一瞬、躊躇う話(でも今時そりゃないよな!)だったのに、
なぜか「メモリ管理した自作list」なんてのが出てきたじゃない。なんだそりゃと思うわ。
WindowsMeでnew/delete使って毎フレーム6万発を生成したり 破棄したりするプログラムを作ったことあるが、これ実行して放置しておくと そのうち動きがカクカクになったよ。 同じ条件で自前配列からメモリを割り当てると何も問題なかった。
>>553 まてまて。
STL使うときに自前のアロケータを用意するのは
珍しくも何とも無いと思うんですけど。
>>555 だから流れ見てくれ。一般的なvectorとlistの違いの話をしてたんじゃないのか
自前で用意するなら、vectorでもlistでも良いわな。オーバーヘッドも似たようなもんだ。
558 :
名前は開発中のものです。 :2006/06/09(金) 00:52:35 ID:Xy8w0flM
必死で何が悪い
>>558 頭が悪い
性格が悪い
状況が悪い
言葉が悪い
考え方が悪い
環境に悪い
DirectXとかにVRAMへの配置任せてると 長時間ゲームを起動した時にVRAMが断片化したりしないすかね
>>556 あのー、自前でアロケータ用意したって、例えばvectorの
insertやeraseを使えば相変わらずO(n)なんですがー。
listとvector、それぞれの得意不得意は変わらないですよ。
>>561 逆逆、listで自前アロケータ用意して、vectorより有利になれるか答えてみせてくれ
>>554 本当かよ。
Win95のころからゲーム作ってるが、毎フレーム生成、破棄で何の問題もなかったが
ま、昔話はどうでもいいが。
>>563 > 理由は自分で考えてみろ。
知らないんなら黙ってろ
ここは俺様のメモ帳だ。おまえ等のチャットじゃない。 だから俺様のような第三者にもわかるように、 ちゃんと判りやすく説明しろ。 それが駄目なら配列についてのみ語れ。
コッペパンとかどうかな
GBKごめん
>>562 あのー、末尾以外の要素をinsert/eraseするとき
vectorはO(N)、listはO(1)なのですが。
アロケータを用意するとこの差が埋まると?
すんげー都市伝説だね。
うぜぇ >DirectXとかにVRAMへの配置任せてると >長時間ゲームを起動した時にVRAMが断片化したりしないすかね DirectXとかにVRAMの配置を「任せているからこそ」断片化しない。 Q.じゃあ、C/C++のmallocやnewはなんで断片化するんですか?任せてるのに。 A.C/C++はポインタの所為で確保された領域を移動させることが出来ないから。 C#なんかではコンパクションもしてくれる。 Q.VRAMを勝手に移動させて大丈夫なんですか? A.直接テクスチャ等にアクセスするとき、ワザワザ浮動させないようにlockしているでしょう。
>>570 …おまいだけはまともだと思っていたのだが
おまいの主張だと、listで「断片化が起きないように」、自前アロケータを用意するんだろ?
その時のオーバーヘッドは、vectorより有利になるのかよ。どう実装してるんだ。
・メモリの断片化 ・要素の検索
> listで「断片化が起きないように」 んなこと言ってねー! 自前アロケータを用意したってメモリプール内で断片化するじゃねーか。
自前でも大きく確保して固定長で切り出すなら断片化起きないよ。 それはともかく、IDが変わったんで誰がどういう主張してるかわからないんですけどw
>>574 …いや、ありえないだろ。なんでそこが抜ける。
>>555 のレスはなんだったんだ。
実は少し期待してたんだが、マジで寝ておけばよかった
つかなんだ、メモリプール内でも断片化って言うのか。プール内ならしたっていいよ。全然いいよ。
で、どうだろ、まだ行ける?
まてまて、一応言っておくが、STLの範囲で頼む 自前listなんてなんでもありだからな
>メモリプール内でも断片化って言うのか。 言わんと思う。 アロケータ内部では廃棄ノードのリストと使用中のノードのリストがある状態。
廃棄ノードのリストだけ。
580 :
541 :2006/06/09(金) 02:01:35 ID:gBtFM5Is
どうも、メモリの管理と弾の管理が混乱してるみたいだけど そもそもが弾をlistで管理するか、vectorで管理するかと言う話だよね? vectorはpopのオーバーヘッドで最後尾じゃなかったらメモリを詰める 動作が入るはずだから、listがいいと思うと言ったわけで・・・
>>578 俺は最初から煽る気は全くないからな
で、いやそれは…今度はその廃棄ノードのリストの断片化は…っつう話に
決め打ちとなるとやっぱり、オーバーヘッド変わらないしなぁ
それなら、どこかのタスク説明サイトで、上手い実装があったな
std::vectorで弾管理ってことは 弾が画面外に出たらそれをeraseするみたいな使い方でしょ? 末尾以外のeraseは内部で一個後ろから末尾をコピーするでしょ。 これはアロケータを自作しようが標準のアロケータを使おうが 変わらないんだけど。
584 :
名前は開発中のものです。 :2006/06/09(金) 02:12:18 ID:Vph+Dr0v
×一個後ろから末尾をコピーするでしょ。 ○一個後ろから末尾までの要素をコピーするでしょ。
ちなみに俺は弾管理には
>>547 と同じ方法使ってる。
消去する要素に末尾の要素をコピーする。
断片化考えてた頃を思うと、STLのlist使うのって一瞬、躊躇うのよね。でも今時断片化なんて気にしないよな ↓ 断片化させないlist使えば、断片化なんて問題になるわけないじゃんw ↓ いやSTLのlistの話だから。一般的なSTLの話してたんだぜ? ↓ STLのlistでも、自前でアロケータ使えば断片化無しにできるじゃん ↓ マジで?アロケータだけで、断片化が無くなるような実装できるの? 結局オーバーヘッドがvectorと同じ様な処理になるか、一般的なSTLの範囲超えね? なんで話逸れていくんだろうな。寝るわ。
>>570 勘違いして、ここ書き間違えてる。
vectorはO(1)、listはO(N)だよね。
>>582 で
>>583 のとうり、vectorはアクセスはO(1)だけど、コピー動作が入るので
実質listよりオーバーヘッドが出る。
なるほどねぇ。
>>547 のような方法があったのか。
たしかにポインタ繋ぎ変えと比べてもそれほどでもないね。
いつか使ってみよう。
俺も寝る。
>>588 >>586 で流れ分かったと思うし、本当に出来るなら明日でも良いから書いてくれよ
何度も言うが最初から煽る気はない
ついでにLyPqDceo = 1NV1OMlGvな
>586 >マジで?アロケータだけで、断片化が無くなるような実装できるの? できる。 >587 >vectorはO(1)、listはO(N)だよね。 違う。 vectorはそれ以後の要素(平均してN/2個)を移動しなければならないからO(N)。 listは前後のポインタの繋ぎ換えだけなのでO(1)。
>>590 ああ、そうか、移動はそうだね。スマソ
アクセスと勘違いしてた。
だめだ
>>582 のサイト見つからないわ
>>590 いや誓っても良いが、たぶんどこかで断片化は起こるって。それなら何故普通に使わないんだと。
違うならさわりだけでも書いてくれ。何故皆、出来る出来るばかりで、内容を書かないんだ。
「断片化」の意味が確定してないんじゃね?
1.メモリ上に隙間ができる。(メモリ参照の局所性が低下してパフォーマンスに影響)
2.連続空き領域が小さくなってしまう。(大きなメモリ要求がエラーになる)
list のアロケータを差し替えることで2は回避できるが、1は回避できない。
1を回避するのは
>>547 のような方法だが、これは list ではできない。
それなら、listのアロケータも変更したとしたら 1.も解決済みと思うけど。固定長なら。
>>594 list 内の三個の要素 A, B, C がメモリ上で ABC と連続しているとき、
B が破棄されたら A_C となって隙間ができるよね?
これもアロケータで解決できるの?
そこまで考えると確かに無理だけど、問題はOSが管理するメモリでしょ?
>>574 >>576 断片化じゃなくてパフォーマンスの問題になるね。
ただ、パフォーマンスもポインタを参照する程度だから ぜんぜんおっけーだと思う。
なんでSTLコンテナの比較の話に 断片化の話を混ぜてるやつがいるんだ?
>>595 Bはまたすぐに使われるだろ
「固定長なら」という条件ならな
>593 確かに1でメモリプール全体がキャッシュに入りきらない場合、リストを先頭からなめるだけでも、 あっちこっちにアクセスしてキャッシュミス連発する可能性があるから、地味に効いてくるかもしれない。 ID:1NV1OMlGの断片化の定義待ち
そんなに、わからないならSTL使わなきゃいいじゃん
飲み過ぎて頭が痛いぜ。いや待ってくれ、
俺は元々「STLのlist使うなら、普通は断片化なんか気にしないだろうよ」っつう立場なわけよ。
俺がコーディングしてた頃は、断片化を考えたときに、STLのlistを改良して使うっつう考えは無かったしな
(そもそもそんな選択すら出来なかったが)。キャラ数なんざ決め打ち頭打ちだ。
なので、俺が勝手に定義しても良いが、それより
>>545 に聞いた方がいいんじゃね
ここまでのまとめ:配列で済ますのが超COOL
604 :
545 :2006/06/09(金) 23:37:27 ID:Vph+Dr0v
>>551 : 「そりゃ、お前のバグだろw 」
>>552 : 「お前のバグだろ」には同意。」
r ⌒ヽ
(´ ⌒`) ポッポー !
l l
カタカタ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(・∀・#)< くっそーもうあったまきた!
_| ̄ ̄||_)_\___________
/旦|――||// /|
| ̄ ̄ ̄ ̄ ̄| ̄| . |
|_____|三|/
おまえだったのかよw なんだこのカイザー・ソゼ以来の意外性
ちょwwww
607 :
545 :2006/06/09(金) 23:56:12 ID:Vph+Dr0v
一晩寝て頭を冷やして学校行って頭シャッキリして帰ってきた。 スレ読み直したんだが、やっぱりまた頭に来た!くっそー!! 昨晩色々書いたけど > 大昔(フラグメントとか馬鹿にならなかった頃) これ。ここ。これがどういう条件下の話なのかやっぱり理解できん。
ちなみに、俺が知ってる大昔てのはWindowsMe以降の世界。 あと、GBSDKは触ったことあるのでそういう環境下の苦労は ほんの少し理解してるつもり。
s/GBSDK/GBDK/
「くっそー、こうなったらみんな敵だ!」という厨房の発作です。
612 :
545 :2006/06/10(土) 00:09:06 ID:WJoYJdwq
私です。
613 :
541 :2006/06/10(土) 00:11:03 ID:VvPaAfBS
>>611 ことの発端はあんたのvectorでしょうーがっ!www
って、
>>545 なら言いだしっぺ違うわな。
ID変更は鬼門だ・・・
うん、551は俺じゃないね
>>607 学生さんか、てっきり同世代かと。いや昔のコンシューマ機の話よ。Meとかですら無かったりで。
STLどころかC++が笑い話で、恐ろしく少ないメモリをやりくりしてたような。もう守秘義務もないかね。
しかし煽る気はなかったんだが、随分気分を害したらしいな。
ここはひとつ、上手いlistのアロケータを書いて締めるってのはどうよ。俺が知りたいだけだが
で、俺は
>>585 で書いたとおり、やり方に落ち着いちゃってるんだけど
それ以前は弾を双方向リストで管理してたんだ。
そんときの自前アロケータは内部に2048発分の配列。
それと破棄リスト(要素番号256単位でバケツ分け)。
弾を破棄するときはその要素番号が帰るべきバケツにポイ。
弾を発行するときは、バケツを若い順に調べる。
(バケツは自分に弾が何個入ってるかの情報を持ってる)
中身の入ってるバケツを発見したらこいつから弾を取り出して使う。
このやり方でメモリプール内の使用状況を可視化したら
弾発行数の増減が激しいと
後部に虫食い(フラグメンテーション?)が発生するけど
配列全体に虫食いが発生することは防げた。
で、次にこれがオナニー実装かどうかを知りたくなった。
配列全体にわざと虫食いを起こすアロケータを作って比較した。
パフォーマンスはほとんど変わらなかった。
この過程で、弾ごときに双方向リスト使ってガンバっても
くだんねーな。必死なのって流行じゃないよね。もてないじゃん。
リストノード用に余分なメンバ変数増えるのももったいねーし。
もう配列でいいや。という心境になり、
>>547 の言ってるような実装に
発見的に行き着いた。
これを思いついたときは
「すんげー俺って天才?ギャハーカッケーwwwww」
と思って我が世の春を謳歌しようかなと考えた。
でもWEB上でこんなの↓発見して
http://www.aya.or.jp/~sanami/peace/#CODE44 あーやっぱ既知のテクなんだ。と知った。
素人がメモリアロケータ作っても無駄。それどころか、状況が悪化するだけ。
ゴキブリを殺すのにショットガンは要らない。
・メモリの断片化は、自前アロケータである程度防げる。 ・listとvectorの検索のオーバーヘッドはどうやっても防げない。
>615 STLのアロケータとしての要件を満たしてないけど、boostのpoolなんかはどう? もっと単純なのがありそうだけど探すのがめんどくさい。
>>615 俺の気分は気にしなくていいです。
守秘義務を盾にはぐらかされるのはちょっと納得いかないけどね!
(相当する公知のハードウェア環境で説明できるはずだしね)
>>620 例だと?
お前がもしメモリアロケータを作っていたら、それが例だ。
あのさー、固定長のメモリプールなら超単純実装だから 誰が組んでも大した差はでねーよ。
じゃあアップしてみろ。 どれだけ悪い例か指摘してやるよ。
627 :
名前は開発中のものです。 :2006/06/10(土) 02:24:40 ID:QFMfd0HB
アップされないのは目に見えてるときしか強気になれないなんてぷぷぷー
はぁ? >超単純実装だから とか言ってる奴がアップもできないなんてアホ話があるか。
629 :
名前は開発中のものです。 :2006/06/10(土) 02:30:48 ID:QFMfd0HB
すまん
WJoYJdwqの明日のレスを大胆予想。
>>626 : どれだけ悪い例か指摘してやるよ。
>>629 : すまん
r ⌒ヽ
(´ ⌒`) ポッポー !
l l
カタカタ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(・∀・#)< くっそーもうあったまきた!
_| ̄ ̄||_)_\___________
/旦|――||// /|
| ̄ ̄ ̄ ̄ ̄| ̄| . |
|_____|三|/
>>624 なるほどな。わかった。俺の実装が悪いわけだな。
で、おまえはどうしてるんだ?
まず、自前のアロケータを使っているのか、いないのか明確に答えて貰おう。
話はそれからだな。
今の時代にアロケータを自作するのはただのバカ。
そうか。バカ、と言える理由は?理由が無いなら話にならん。
だから、お前のメモリアロケータが理由だって。本当に頭悪ー。
636 :
名前は開発中のものです。 :2006/06/10(土) 02:51:20 ID:QFMfd0HB
VvPaAfBSが馬鹿なんやない VvPaAfBSを見るlosLwqMAの心が馬鹿なんや
>>635 アホ解釈来たな。まぁ1弾に一回newしても問題ないが。
それよりお前はさっさとアップしろよ。
>>634 それは理由になってない。
メモリリークが発生しやすくなるとか、速度が遅いとか
そういう理由じゃないと納得できない。
>>637 ところで、newを使わないなら、STL使ってないわけだな?
弾の管理はやっぱ順序なしリストなわけ?
今、即席で弾1個に1newタイプの実験プログラム作って 自作メモリプールと比較した。俺のメモリプール勝った。寝る。
今、即席で日本代表チームを作って ワールドカップに出場した。日本が優勝した。寝る。
うpしたところで「車輪の再発明はするな」パターンだなw こんな池沼は構わないほうがいい。
642 :
名前は開発中のものです。 :2006/06/10(土) 06:08:38 ID:Hc9SQ0CR
メモリープールなんて言葉を勝手に作るな。世の中には、 ガーベージコレクションという概念が既に存在している。 メモリー管理を考えるなら、誰もが一度は通る道だ。あと、 メモリーの断片化に関しては、フラグメンテーションで調べてみ?
643 :
名前は開発中のものです。 :2006/06/10(土) 06:20:13 ID:Hc9SQ0CR
Windowsの場合は、GlobalAlloc()でGMEM_MOVEABLEを使えば済む問題やね
>>638 >ところで、newを使わないなら、STL使ってないわけだな?
はぁ?バカかコイツ。newを使わないとかダレが言ってんだ死ねよ。
>>639 はいはい、作ったけどアップは出来ないと。
ドアホ。やってもねーのにやったふりすんなボケ!
>>642 >メモリープールなんて言葉を勝手に作るな。世の中には、
>ガーベージコレクションという概念が既に存在している。
メモリプールという言葉も世の中に既に存在しているけど。
お前の世界は一体なんなんだ?
>メモリー管理を考えるなら、誰もが一度は通る道だ。あと、
前の文章とまったく繋がっていない。なんの道も提示されていないし。
>メモリーの断片化に関しては、フラグメンテーションで調べてみ?
なんだコレ。過去最高のアホ発言を見てしまった。
フラグメンテーションに関しては、メモリーの断片化で調べてみたら宜しいかね?
>Windowsの場合は、GlobalAlloc()でGMEM_MOVEABLEを使えば済む問題やね
弾一個にそんな糞重いの使ってられるか。死ね。
クールにいこうぜ
ここまでのまとめ:配列で済ますのが超COOOOOOOOOL!! 苦労していろいろ知識を獲得したんだろうし、 それに対するこだわりがあるのは認めるが、 あんま最適解でもない手法でgdgdするのはどうかと。
可能な限りシンプルな方法を取るべきだ
>>644 >アホ解釈来たな。まぁ1弾に一回newしても問題ないが。
ということは、お前の場合は弾にnewを使わないと暗に言ってるだろ。
>はぁ?バカかコイツ。newを使わないとかダレが言ってんだ死ねよ。
結局どっちなんだよwww
おまえがどの方法を取っているか解らないから
弾の管理をどうしているか聞いているんだよ。
>>647 俺も配列がいいと思うが、もしかしたらID:losLwqMAが画期的な方法を使っているかもしれないだろう?
ID:WJoYJdwq ID:losLwqMA ID:VvPaAfBS この中でさっさと寝た(振りしてる)ID:WJoYJdwqが一番マトモに見えるメルヘン。 お前等煽るのに夢中になって議論に向いてないからROMマジおすすめ。
なんかもうム板でやってもいいような内容になってる気がする。
一体どの辺が発端か、ざっと戻ってみたけど >>536-
>>542 あたりか?
「(とりあえず最初は)配列とforループで何とかすればおk」って回答すれば十分なレベルの質問に見えるけど・・・
"末尾で穴埋め式vector" vs "list" については、 vectorの、末尾の値を移動することで処理順序が変化する問題と listの、各ノード情報(prevとかnextとか)を持つ手間を秤にかけるとして、 他のノードとの相関のない、ただの弾なら前者でいいんじゃないの? 断片化うんぬんはどうにでもなりそうね。
一夜明けたら部外者に
>>623 いやいや、はぐらかす気は無いんだけど、こっちの話になると折角の流れが変になるぜ。
締めといった以上、616への突っ込みは避ける。乙。
で、615に書いた通りなのよ。メモリが恐ろしく少なかったから。難しい話じゃない。
適当にやってると、すぐメモリ取れなくなって止まるのよ。Win機の話じゃないぜ。
たぶん今のコンシューマ機でも、全くメモリ断片化は気にしない!なんて所はまず無いんじゃないかね。
654 :
名前は開発中のものです。 :2006/06/10(土) 13:18:04 ID:0+3APnZd
コンソールプログラムをC++言語でやっているのですが… C++言語でどうやったらゲームを作れるんでしょうか? ライブラリを利用するしかないんでしょうか?
ライブラリ利用してそれで絵が出るならおk
S サッと T Throughして L 楽になろう
>>652 流れを補足しておくね。
"vector" vs "list"
ここではvectorの最後尾以外のpop&pushが問題点となる
↓
"vector" vs "自前アロケータ list"
ここではlistのノード作成時の断片化が問題点となる
↓
"末尾で穴埋め式vector" vs "自前アロケータ list"
おそらく一番COOLと思われる。キャッシュ部分でもlistより有利。
流れぶった切って
>>618 >>632 ID:losLwqMAは弾の処理以外の話も含めて言っているらしい?
いまここ。
メモリ管理に関して割と有益な話が聞けそうなんで、自分としてはスルーしたくないw
ここでID:losLwqMAがスルーすれば無問題。
659 :
654 :2006/06/10(土) 14:23:46 ID:0+3APnZd
ライブラリを利用すれば絵は出るし、音楽も流せます。 C++だけの場合どういう手順でゲームが作れるのかが解らないのです。 プログラミング全てを自分で何とかしたいという事です。
ライブラリ利用しているなら、それのソース見てみたら?
>>659 C++だけってのは無理だと思われ
そんなことやってる人は見たことないし。
ただWin32プログラミングからやれば、ウィンドウから作るとこからできるかにゃ。
DIBとwebOut系の関数はまだいじってないんだよね。
webOut → waveOut でしたorz
イマイチ
@ライブラリを使えばいいのはわかってるが、C++部をどうすればいいか判らない。
AC++だけでゲームを作りたい。
どっちかが判らないな。
>プログラミング全てを自分で何とかしたいという事です。
まさか
B標準ライブラリやOSも使いたくない
というわけじゃあるまいなw
(WindowsならDirectXまでは普通に使って問題無いと思うのだが。
よくわからないのでAの可能性に備えて誘導しておきますね。
ttp://pc8.2ch.net/test/read.cgi/gamedev/1081267627/
665 :
659 :2006/06/10(土) 15:05:50 ID:0+3APnZd
>>660 未だソースを解読出来るレベルではないのです。
>>662 つまり、C++&APIを学べば可能という事でしょうか?
完璧に覚えるにはどの位の時間が掛かるのでしょうか?
ちなみにHSPなら3DダンジョンRPG(プレイ時間約5分)を独学2週間程で完成出来ました。
666 :
665 :2006/06/10(土) 15:08:57 ID:0+3APnZd
Direct]
>>642 >メモリープールなんて言葉を勝手に作るな。世の中には、
>ガーベージコレクションという概念が既に存在している。
ワハハ。こいつアホだ(笑)。
668 :
665 :2006/06/10(土) 15:16:31 ID:0+3APnZd
>>664 @です
Direct]は利用し始めたばっかりです(ついさっき)
C++は始めたばかりなのです
要するにC++がどの局面で使うのかが解りません
ちょっと前にDXライブラリというのを利用していましたが
大体の事が出来てしまうのでツクールを利用している様で止めました
Direct]←これかっこいいな Cが不便に感じる頃にC++のありがたみがわかると思われ
>>665 >>668 HSPで3DダンジョンRPGを独学二週間で完成てありえないスピードですね。
私が聞いた中では最速っぽい。
RPGって作業量多いのに。
3Dてのは3Dポリゴンを用いて作ったものかな。
HSPやる前には、他のプログラム言語を触ってた人なんでしょか?
別にDXライブラリで普通に作ればいいと思うのですが、
納得いかないならしょうがないですね。
C++もWin32APIも物凄く深いと思うので、時間とかは気にしないでいいかと。
しかし全てくまなくやったところで、ゲームに役立つかは不明。
絵出すだけなら、あなたならすぐ出ると思うのですが ^^
おれなんか独学初めてから一年たってるのに完成したのは 10分くらいの2Dシューティングだけだ・・・鬱
まあゲーム作るのって、プログラム技術以上に企画とか素材準備とかが大きいからなあ。
>未だソースを解読出来るレベルではないのです。 >要するにC++がどの局面で使うのかが解りません 深く考えすぎ。ここで一作目の俺ロードを披露。 @サンプルを見る。 A解読できないので手でコピー。変数名くらいは自分好みで。 Bなんとなく動くようになってから1つ1つの処理の意味を確認。 C自分なりの処理形態に合うように処理を切り分ける。 Dなんとなく自分で書いた処理っぽくなる。 はじめから言語とライブイラリの特性を考えて設計するなんて、 遠回りどころか一歩も踏み出せない。そういうのは二作目以降から。 最初は行き当たりばったり上等でいい。
3Dダンジョンは3Dなんじゃなくて、単に正面パースを色んなパーツ組み合わせて表現してるだけでは? だからやってることは2Dだし、表現凝っても凝らなくても大差ないし、普通に作るより楽だよ。Wiz系は。
っていうか。そんな人ならこんなところで聞くまでもないだろw それ系の本立ち読みでもすれば一発だと思う。ひきこもってるなら別だけど。
677 :
簡単副業!!フリーソフトで詐欺師になろう☆ :2006/06/10(土) 20:01:13 ID:MjoH3DJs
副業で、主業の職失ったら、ば課なんだが・・・・
>>657 > "末尾で穴埋め式vector" vs "自前アロケータ list"
> おそらく一番COOLと思われる。キャッシュ部分でもlistより有利。
末尾で穴埋め式vectorのメリット・デメリット
・常にリニアにアクセスできるため、キャッシュ効率がいい
・next, prevなどの余分な領域が必要ない
・オブジェクトの最大要素数を事前に決定する必要がある
・最初に確保した要素数以上のオブジェクトは確保できない
自前アロケータ listのメリット・デメリット
・キャッシュ効率が悪い。この傾向は時間と共にどんどん悪化する
・リストを作るため、next, prevなどの余分な領域が必要になる
・オブジェクトの要素最大数を事前に決定する必要がない
・オブジェクトの要素最大数はメモリの限界と一致する(=ほぼ無制限)
つまり、キャッシュ効率とメモリ効率をとるか、
プログラミングのしやすさをとるかといった問題。
↑の続き ただ近年のオブジェクト指向プログラミングでは、 弾は構造体でなくクラス(&ポリモーフィズム)を使うのが一般的だろうから 実際には Tama *tama_array[TAMA_MAX]; という感じになる。 こうなると弾クラスの実体はまた別のところに確保されるわけで、 アドレスしか持たないvectorやらlistやらのキャッシュ効率がどれ程変化するのかは 検討の余地があると思う。 (個人的にはほとんど変わらないと思うけど・・・) また、listノードの余計なメモリ(prevやnext)についても 32bitアーキテクチャのPCなら1オブジェクトに対して8byte、 prevを使用しないslistを使えば1オブジェクトに対してわずか4byteしか使わない。 これは単純な弾クラス(xy座標値, xyの速度を持つ) に対しては20%のオーバーヘッドになる。 (実際のゲームでは5〜10%程度まで減ると思う) これが大きいか少ないかの評価は様々だと思うけど、個人的にはそんなに対したことは無いと思う。 結論 効率とプログラミングのし易さをトレードオフにかけた結果、自分はSTLportのslistを使うことにしている。
↑間違い ×アドレスしか持たないvectorやらlistやらのキャッシュ効率がどれ程変化するのかは ○アドレスしか持たないvectorやらlistやらのキャッシュ効率にどれ程意味があるのかは
slist? リンクが一方行なら、eraseやinsertにO(N)かかるだろ? 今ググッたら、erase_afterとか使わないとダメじゃねーか。 こんなの使わないとダメなのにプログラミングし易いとか冗談だろう。 >末尾で穴埋め式vectorのメリット・デメリット >・オブジェクトの最大要素数を事前に決定する必要がある >・最初に確保した要素数以上のオブジェクトは確保できない は?なんで?
↑×3 あと、オブジェクトの順序の問題もある。 書くの忘れてたw
684 :
名前は開発中のものです。 :2006/06/10(土) 21:58:36 ID:dd8DyVfB
( _, ,_) もういい加減・・・ _(__つ/ ̄ ̄ ̄/_ \/ / /\ ../ ./| ∴\/./ _, ,_゚∵ |/ (ノ゚Д゚)ノ うぜーんだよてめーらーー!! / /
>>684 よーくかんがえよー♪
PC壊れるよー♪
壊れたら買えばいいじゃない
まあ俺壊したことあるけどね、1回。 持ち上げて手が滑って地面に落としてハードディスク飛んだ。 ノートPCの命って儚い。
>>684 華麗にスルーが、超COOLよ。
リストに、サイズの違ういろんな派生クラスのインスタンスをつなぎたい場合、
リストの値はインスタンス自体じゃなくて、ポインタにする必要があるわよね。
それの場合、断片化を防ごうと思ったら、インスタンス自体は
リングバッファか何かで生成するとして、
std::listを使う場合、リストのノード確保にもアロケータが別個要るんじゃないかしら。
その辺のまんどくささがあるから、代わりに例えば、クラスにリストノードを
継承で持たせて、自前でイテレートするみたいな自前リストが
使われるのかしら…、と妄想しとくわね。
この方キモイですわね
どうして二人とも女口調なのかしら?
>>682 > リンクが一方行なら、eraseやinsertにO(N)かかるだろ?
eraseは確かにそうだね。
insertは常に先頭に要素を追加するならO(1)ですむ。
> こんなの使わないとダメなのにプログラミングし易いとか冗談だろう。
"末尾で穴埋め式vector"なるものを考えるよりは
ずっと楽だと思うんだけど・・・
>> 末尾で穴埋め式vectorのメリット・デメリット
>> ・オブジェクトの最大要素数を事前に決定する必要がある
>> ・最初に確保した要素数以上のオブジェクトは確保できない
> は?なんで?
確かにできなくは無いね。
ただ、最大要素数を超えたときにメモリの再確保をやっちゃうと、
全コピーが発生するという問題もあるけど、
"末尾で穴埋め式vector"の「メモリの断片化が防げる」というメリットがなくなっちゃうよ。
そういった理由で、これを使う場合はメモリの再確保はしないもんだとばかり思ってた。
>>691 >insertは常に先頭に要素を追加するならO(1)ですむ。
は?vectorは常に先頭に要素を追加するならO(1)で済むけど。それが何?
お前は先頭にしか追加、削除しないの?
お前、slist使ってる意味本当にあるの?
>"末尾で穴埋め式vector"なるものを考えるよりは
>ずっと楽だと思うんだけど・・・
つーかお前、erase_afterとか使ってるのか?
>"末尾で穴埋め式vector"の「メモリの断片化が防げる」というメリットがなくなっちゃうよ。
無くならないよ。
>>692 >>insertは常に先頭に要素を追加するならO(1)ですむ。
>は?vectorは常に先頭に要素を追加するならO(1)で済むけど。それが何?
>お前は先頭にしか追加、削除しないの?
vectorがO(1)なのは先頭じゃなくて末尾追加時。
あと弾オブジェクトリストの場合は、順序を気にする必要がないので
追加は先頭のみにすることもできるよ。
>お前、slist使ってる意味本当にあるの?
布教するつもりは無いし
list か slist かの議論はつまらないので
意味が無いと思ったらlistでもvectorでもどうぞご自由に。
>>"末尾で穴埋め式vector"の「メモリの断片化が防げる」というメリットがなくなっちゃうよ。
>無くならないよ。
なんで?
>>693 >vectorがO(1)なのは先頭じゃなくて末尾追加時。
書き間違えた
>あと弾オブジェクトリストの場合は、順序を気にする必要がないので
>追加は先頭のみにすることもできるよ。
ならvectorでいいだろアホ
>なんで?
10が0になることを「無くなる」という。子供でもわかることだが、お前には分かるか?
てかなんでコレに答えないの? >つーかお前、erase_afterとか使ってるのか? まさか、使ってないの?
まだやってたのねw
なんかstd::vectorの実装を勘違いしているみたいだけど、 vectorは最初から溢れることを考慮して、size != capacityになっている。 初期サイズを1にしてcapacityを確認しながらデータを追加していけば分かるが、 sizeをオーバーしても再確保が極力起こらないようになっている。 実際のサイズが増えるほど、予約サイズも増えるから、 初期化に時間のかかる相当変なデータを扱わない限りは、実質的に気になるような挙動は起こらない。
もうこうなったら、どっちもいいところも悪いところもあるでよくね?
>>694 >ならvectorでいいだろアホ
まあ、そんなに短絡的に考えずに。
>>695 その質問に何の意味があるのか、どうかご説明を。
>>696 まだだ。まだ終わらんよ。
>>697 確かに程度問題ではあるんだよね。
オブジェクトのインスタンスメモリを別に確保するって前提なら、
list(もちろん独自アロケータ)とvectorの違いは、
イテレーション時の効率差と、挿入削除の効率差ぐらいか。
"末尾で穴埋め式vector"ではvectorに比べて挿入削除の時間は減るけど、
順序が一定にならない問題がある。
まとめると、
1) 順序が一定で無くてもよい → 末尾で穴埋め式vector
2) 順序が一定である場合
A) 挿入削除回数が比較的多い → list
B) 挿入削除回数が比較的少ない → vector
って感じになるのかな?
そんなにメモリスラッシングが気になるなら JavaやD言語使えばいいじゃない 特にD言語はオススメ、永遠の17歳よろしくずっとβだけど
ねぇねぇ vectorってintみたいな型なの? 教えちょくれ、暇な方。
まぁ、slist使うのはバカだってことで。
(´・ω・`) ・・・
どうせおまいらの作ったゲームは1時間程度も遊ばれないんだから気にするな! デフォルトのアロケータで大丈夫!
>>703 第二のID:w4YfB0E0が出てくるとめんどくさいんで、
>>700 からslistはわざと外したけど
実際には有効な選択肢の一つだよ。
配列の順番が壊れるのが嫌なら、 弾の移動時に、移動後の値を設定する際に、 消す弾を上書きして、詰めていけばいい。余計な負荷もない。 全部机上で考えた。実際上手く動かなくても反省しない。 あ、あとSTLとかvectorとかlistとか??? 一切不要だからwww
>>707 はぁ?一要素にポインタ一つ分メモリ領域減るだけだろ。
実際には全然有効じゃない選択肢の一つだよ。
1000個弾を出したとして、4KBしか変わらんのに。
その代償に追加削除にO(N)かかるわ、reverse_iterator取得できないだとか、
プログラミングに支障はでるわ、これで有効とか言うバカは死んでいいと思うよ。
ただいま。おまいら、やってますねw
>>679 > 自前アロケータ listのメリット・デメリット
> ・キャッシュ効率が悪い。この傾向は時間と共にどんどん悪化する
あのさー、それどういう実装してんの?
特に固定長メモリプールなら「時間と共にどんどん悪化」なんて
わざとでもない限り無理。悪化しねーって普通は。
boostのpool関連のソース嫁って。検証しろって。
しかし結構人いたんだな
>>680 > ただ近年のオブジェクト指向プログラミングでは、
> 弾は構造体でなくクラス(&ポリモーフィズム)を使うのが一般的だろうから
> 実際には
> Tama *tama_array[TAMA_MAX];
> という感じになる。
あのさー、共通のインタフェースをもつ色んな弾クラスなんざ
サイズの違いなんてたかが知れてるわけだよねー。
派生クラスの中でsizeofが一番デカイ奴が納まるような
キリの良いサイズでメモリブロック定義して、それを
固定長メモリプールから受け取ってplacement newとか
するアロケータ作ったりする方法は考え付かないわけ?
派生クラスはみんなひとつの配列に収まるじゃん。
収める必要があるかどうかは別として。
>>709 slistの挿入・削除の時間複雑性はO(1)にできる。
具体的にはポインタのポインタを使うことでそれを実現できる。
たしかにreverse_iteratorは使えないけど、それ使う必要あるの?
>>711 ああこれは、配列の場合は常にリニアアクセスできるからキャッシュヒットしやすいけど、
リストの場合はそうはいかねぇって話。
配列で確保されたプール中のノードすべてがキャッシュに乗ればいいんだろうけど、
そうも行かない場合は、配列に比べてかなり不利になる。
(一般的には時間がたつと、プール中のいろんなところからメモリを参照しないといけなくなるため)
>>713 どうしてそんなにメモリを無駄にしたいの?
そんなことをして何の意味があるの?
キャッシュヒットを気にすんのか・・・ 何に使う予定なんだろ
717 :
668 :2006/06/11(日) 00:23:06 ID:apdEcRDe
>>671 >>674 叩き上げで何とかしてみます、ありがとうございました。
>>675 その通りです、作った3Dダンジョンはウィザードリィの様なモノで
アルゴリズムさえ理解出来て考え出せれば簡単です(HSPなら尚更)
>>676 この板にはプロが居ると聞いたので参考になると思ったのです。
プログラミング講座のホームページがあるので本を買う必要がなかったのです。
必要なら買いますが…
こんにちは。質問させてください。 HSPで3DMMOもどきのゲームをつくろうとしてサーバとクライアントを作って テストしてみたんですが、サーバ、クラ1、クラ2を同じPCで立ち上げ、クラ双方の 位置データを移動の都度TCPにて送信しているんですが、クラ1で移動すると クラ2ではスローモーションのように遅く移動していくのが見えます。 これはTCPを使っているためなんでしょうか? UDPにすればもっと速くなるのでしょうが、同じPC内のTCPがこれだけ遅いのなら 他に理由があるのかもと思いまして・・・ 通信モジュールはPCBNET2を使っています。
hsp専用のスレに行ったほうがいい。
>688 断片化とかはどうでもいいけど、まさに自前の侵入的リストコンテナを作ったりしてた。
追加、実際ためせばいいじゃないか。 TCP実装したならUDPも実装できるはず、理論上で色々話すより試すのが一番早い
>>714 あー、使用中の要素を真っ正直に鎖に繋がれた順に走査するのか。
それで時間とともにランダムアクセスって状況の話をしてるのね。了解。
弾の話だったから、鎖につながれた順番に意味が無い場合を想定してた。
俺の感覚では、普通は使用中の要素がプールの中で極力かたまるよう工夫してる。
つまり、使用中の要素が広大なプール全体に散らばる最悪の状況は避けている。
今回の弾のように走査時にソートされてる必要が無い場合。
つまり鎖に繋がれた順番が意味を持たない場合は
vectorと同様にリニアアクセスで走査するよ。
>>715 > どうしてそんなにメモリを無駄にしたいの?
『あのさー、共通のインタフェースをもつ色んな弾クラスなんざ
サイズの違いなんてたかが知れてるわけだよねー。 』
vecto リニアアクセス list std::vector んどなど俺にはさっぱりなことばっかりだな。 初心者はやっぱ配列が一番。
ウチの隣のコンビニに買い物に行きたいんだ。 ガレージにフェラーリとポルシェがあるんだけど、 どうやってコンビニに行けばいい?
やくざ?
いや、ここは汎用性を重視してジェット機で ジェット機にしとけばどこでも行けるしね
>>728 おk把握した。
とりあえず最寄の国内空港は羽田だから…ハイヤー呼べばいいな。
>>722 > 俺の感覚では、普通は使用中の要素がプールの中で極力かたまるよう工夫してる。
> つまり、使用中の要素が広大なプール全体に散らばる最悪の状況は避けている。
これはどういうことなんだろ。
挿入時にノードポインタを比較して、若い方から並べるってこと?
std::listだと普通、ノードのポインタは得られないから、
リストっていうのは自前リストのこと?
これをやると順序が乱れるし、挿入操作もO(N)が必要になるので、
あんまりおすすめしないよ。
少なくとも一般的ではないと思う。
>>723 そんなことをして何の意味があるの?
>>730 自前。
> そんなことをして何の意味があるの?
『収める必要があるかどうかは別として。』
つかさー、君は弾の派生クラスが20種類あったら
20種類分の配列(プール)を用意するのか?
で、それぞれが必要十分な要素数を確保?
無駄じゃん
>>731 当然そうなるね。
ただBoost.Poolを使えば実装は簡単だし、サイズが同じものに関しては同じ配列として処理される(はず・・・)
どうしてもプール配列を一本化したいなら、
弾クラスのサイズをすべて同じにしてしまえばいい。
例えば、フィールドは基底クラスにのみ持たせるとかして。
ただ、弾クラス中に一つでも大きなサイズのものがあれば、
このやり方はうまくいかないよ。
わざわざハックしてまでサイズを一致させることに意味があるとはおもえないんだけど・・・
733 :
名前は開発中のものです。 :2006/06/11(日) 03:11:24 ID:s4cp2+ON
ツクール系を使わずに自力でRPGを作ろうと思い立ったのですが どんなソフトが必要ですか?
結局自前アロケータがなぜいけないのか 指摘できずにID:w4YfB0E0は去ったか。 期待してたのに。
>>734 >結局自前アロケータがなぜいけないのか
お前如きに効率的なアロケータは作れないから
あらら、原点に戻っちゃったね。 これが馬鹿の一つ覚えか。
それが真理だ。 そんなこともわかってないお前がバカなんですよ
カーネルレベルの最適化とか幾らやっても殆ど効果ないから もっと別のところに工数割り当てたら?
739 :
名前は開発中のものです。 :2006/06/11(日) 10:26:55 ID:6+CpVENb
なんか自前のアロケータがデフォルトアロケータ以上の何をするのか 全然いわないのがほんと気になるがまーどうでもいい んでも、listはat()できないし、イテレータをまわすのがvectorの8倍時間がかかる という報告も見つけた ものすごい勢いでgame objectが発生したり消失したりしないゲームなので 今のとこlistでまにあってるけど今度からは穴埋め型vectorにするのも良いのではないかと思う。 (とradium software的に〆てみて様子をみる)
おはよう。
>>735 それはこの前も聞いたから。
で、既存のやつでおまいは何を使ってるのよ?
お前ら素人は、アロケータはデフォルトのまま使うのが正解 デフォルトのメモリ確保は遅い、と信じてるアホが多いが 曲がりなりにも専門家が作ってるわけで、お前の実装より早い。 まぁ、マルチスレッドを考慮しないお粗末な実装になるだろうから、ぱっとみのベンチで勝てることはあるだろうが。 断片化が気になる、そんなことを気にする環境で作ってるのお前? ・・・まぁ、作ってるとしよう。 断片化して一番困るのは、大きいメモリブロックが確保できなくなることだが、 大きいメモリブロックが必要になるケースはただ一つ、大きいリソースファイルを読むことだけ。 つまりその大きいリソースファイル用にメモリを用意すればいい。 自作するってのは思わぬコストがつく。 作る時もそうだが、大きな問題は、デバッグやドキュメントが不十分になってしまうことだ。 こっそりメモリを壊してたりしてみ、死ぬぞ。
iteratorを回す時間を気にするのなら、参照用の配列を作っておくという手もある。 問題点を考えていくのも必用だし、プログラムなんてその時に比較的マシな解決方法を地道に使っていくしかない。 しかし最近のマシンは適当でいいやという気にさせてくれる性能がある。
>>741 俺みたいな素人がデフォルトてのはわかったから。
玄人のおまいはどうしてるのよ?いっつもはぐらかされてるんだが。
マルチスレッドに対応して無いからダメといってるのか?
必要としないなら考慮しないぞ普通は。
断片化は俺はそんなにシビアに考えてはいないが、できることなら避けたい。
それから、大きいデータを自前のアロケータで読むようなことはまず無い。
>自作するってのは思わぬコストがつく
これは同意する。
だが、シンプルな機能しか必要なく汎用性も必要ない時は
作る価値があると思っている。シンプルならバグの入る余地を抑えられる。
小回りが利くし、デバッグするときにも使えるしね。
俺も全てのデフォルトアロケータを自前に置き換えるとか無茶なことは思ってもいない。
ただ、バカ正直にすべてデフォルトのままで使おうとも思わない。
基本的にデフォルト使ってるけど。 一昔前にdoug leaのアロケータ使ったりしてたが、 標準のmallocがソレを使ってるようなのでやめた。 >だが、シンプルな機能しか必要なく汎用性も必要ない時は >作る価値があると思っている。シンプルならバグの入る余地を抑えられる。 じゃあそれを晒してみなって。どれだけアホか指摘してやるから。 お前の要求に従って答えてやったんだから、こんどはお前が応えろよ。 はぐらかすなよ。
745 :
名前は開発中のものです。 :2006/06/11(日) 12:08:40 ID:6+CpVENb
実際ちょっと計ってみた100000の要素最初から最後までを10000回
list 26274
vector 4115
穴埋めvector 8941
追加されたtestとjneが時間を2倍以上にしちゃうくらいのスケールでってわけだけど
6ちょい倍だった
>>742 単に今回のこのテストを速くするだけの対処にしかなってないと思うけどどうなんでしょうね…
>>744 アロケータって言うと大層だけど、ゲーム用の動的オブジェクトなら、
ただのリングバッファでいいんじゃないかしら。
クラスごとにリングバッファを割り当ててもいいし、
同じぐらいのサイズのクラスなら共有してもいいし。
シューティングの敵キャラなら、小型機用(ノード64、サイズ小),中型機用(ノード16,サイズ中),
大型機(ノード4,サイズ大)みたいに複数用意して、各クラスは最適なのを適用するとかね。
そんなことしなくても、標準のアロケータ使えばいいんじゃないかしら。
ちょっとまってろ
やっとか。出てくるんで、帰ってくるまでにアップしとけよ。
750 :
541 :2006/06/11(日) 12:59:21 ID:4CNIK6lI
#include <stack> template<typename T> class alloc { public : std::stack<T*> pool; alloc(int s) { for (int i = 0; i < s; i++) pool.push(new T); } T* malloc() { T *r = pool.top(); pool.pop(); return r; } void free(T* p) { pool.push(p); } }; 大体はこんな感じ。 最初に断っとくが俺はソース出せとおまえに言われたやつじゃないぞ。
最後は壮大にリークするソースだぞw
listはvectorの数倍かかるかもしれんぇdp コストがほぼ0に近いものを何倍したってなあ
盛大にミスタイプした・・・
んぇ萌え
>>750 これ、アロケータじゃないよね?何の実装なの?
listのノードとして使うならそのままでは使えないね。 継承してこれを組み込まないと。 でもアロケータだよ。 new/deleteの代わりに使う。
>>756 この文脈で「アロケータ」って言ったらコンテナの
アロケータ引数になると思ったんだが、違ったみたいだね。
list のアロケータとして使うんなら、別物を作ったほうがマシ。
継承して組み込むとか意味不明。
あぁ POD 限定ならそれっぽく動きそうだね。
よくわからんがいつもは虐げられてる土方部隊が ここぞとばかりにプライドを回復させるべく 他人様を叩いてるみたいな空気が流れているな ゲーム業界なんて行くべきじゃないと回避したあの頃の俺に感謝
ろくにゲームを完成させた事の無いPGが、 ゲームPGを気取って、 コンビニにジェット機で乗りつけるスレはココですか? ワナビーUZZZZZEEEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>749 = ID:/BXC8UEE かな?
俺はやるとしたらallocator継承して作るけど、
しなくてもいいんじゃない。
それに限定じゃなくて、オブジェクトでも使えるけど。
>>760 俺は 750 以降の通りすがりだよ。
継承して組み込むの意味は把握した。
限定じゃないというが、あれじゃコンストラクタとデストラクタの
整合性が取れないんじゃない?
アロケータ置き換えたいときに内部でデフォルトアロケータの stack とかも
なんかおかしいだろ?
通りすがりさんか、了解。 整合性って何じゃ? コンストラクタとデストラクタがペアじゃないってこと? stackは置き換える必要ないと思う。 なんかおかしいって、詳しく指摘してくれんと素人だからわかんね。
なんでoperator new/deleteオーバーライドしないのか聞いてみるか
>>762 アロケータから返したメモリ領域に対して list などのコンテナ内で
コンストラクタが実行される。でも
>>750 の malloc() から返した領域には
すでにコンストラクタが実行されてるから2重に実行されることになる。
デフォルトのアロケータが気に入らないときにアロケータ置き換えるんだから、
中でデフォルトアロケータ使うのはおかしいだろって話。
メモリの確保解放処理自体は変わるから、置き換える必要はないけどね。
メモリの断片化が気になるなら先に必要量メモリ確保しておけばいいじゃん 永続リソースと、レベルリソースと2つブロック用意して、他は普通にアロケート 高尚に走る利点ってあるのかな?悩む時間が勿体無い
ほいほい。了解したよ。 あれが基本であって、それぞれにカスタマイズするんだよ。 大量にメモリ確保してスタックに溜め込み切り出すことができればなんでもいいよ。 new/deleteを置き換えるなら、スタックの部分をサイズ分だけ確保するだけにしとけばいいよ。
>>765 同意。コンシューマ機ならまだしも
PCで断片化とかどうとか気にするだけ時間の無駄のような。
どんだけメモリの食うゲーム作ってんでしょ。
手段が目的化しちゃってるような気がしますです。
ゲーム製作もプログラミングの技術論も趣味なら
手段も目的もごっちゃでいいんだけど
技術論ならそもそも板違いになりそうな感じです。
template<class _Ty,_Ax = allocator<_Ty> > class vector; なデフォルトで指定されてるallocatorクラスはうちのVC++2005では特になんもやってないな ということはnewとdeleteが鍵をにぎってるってことだけどこいつらもべつに poolのような真似はしてないな普通にmalloc呼んでやがる
ところで初心者に優しい相談スレってどこ?
今は雰囲気がアレだけどここでいいんじゃない
このスレ前の最後の方でもおんなじような炎上の仕方をしてなかったかい? 恒例行事ってことでたまにはいいじゃん辟易とかは別にしないよ
と、池沼PGが申しております。
一部だけじゃなくてみんなのスレなんで^^;
結論は、デフォルトアロケータ使えということで。
おまえら、Delphi使っとけって。 デフォルトでメモリプールされてるから。 メモリ確保(クラスの生成など)も高速。
C++でも高速ですよ
>>775 ソース出したんだから、指摘してよ。
そこを改善すると良くなるんだから。
>>779 いや、それはわかったからw
デフォルトアロケータ使うよ。
でも、指摘してくれるのは話は別だろ?
デフォルトアロケータ厨を擁護するわけではないが、 きちんとアロケータとしての要件を満たしているものを提示しないと、 アロケータとして評価できないだろ。
#include <stack> class Talloc { public : std::stack<void*> pool; Talloc(int s, int c) { for (int i = 0; i < c; i++) pool.push( malloc( s ) ); } void* alloc() { void *r = pool.top(); pool.pop(); return r; } void free(void *p) { pool.push(p); } }; Talloc pool(32, 128); class test { public : int i, j, k; void* operator new(size_t) { return pool.alloc(); } void operator delete(void *p) { return pool.free(p); } }; じゃあ、改めてこれについての教えを乞うことにしよう。
リークしたメモリがアロケートされた場所を教えてくれる機能に何度か助けてもらったことがあるんで 確保したメモリをプールして勝手に使いまわすとかするつもりはないぜ個人的には
>>782 デフォルトの new/delete 使え。
デフォルトでは満たせない速度の要求と、
実測に基づいてカスタマイズの有用性を示す根拠が無い限り、
そんなコードの是非は語れないよ。
アロケータの要件や、エラー処理について突っ込みどころはいっぱいあるが、
そんなことが聞きたいのか?
あー速度じゃなくて断片化が問題だったね。同じことだけど。
>>782 糞使えねぇな
class Test : public test{
public: int v[10];
};
Test* p = new Test(); //アボーン
つかmallocとか使ってんなよ。どこがアロケータだアホ。
STLのアロケータにも出来ないし。糞で終り。
>>782 どんなことでも。どれだけアホか指摘してくれればいいよ。
為になるし、感謝こそすれ恨んだりしないから。
>>624 >>744 >>749 はぐらかさないで約束どうり晒してんだけど、もしかして違う人かな?
ちなみに
>>743 が俺の意見ね。
>>786 ワロタ。用途がわかってないおまいには、これは使えないね。
mallocとか使ってんなよってnewはどうなのよw malloc使ってるけど。
それから俺はアロケータと自分では思ってたけど、
>>786 が言うようにアロケータじゃないなら
デフォルトアロケータと意味的に競合しないので問題なく使っていいことになるけど?
命名:STL厨
>782 正直使う価値ゼロにしか思えんなぁ。 普通にやるよりメモリは余分に使うわ。>786が示してるように継承したら危険だわ。 メモリ最後に解放してないし。 32個以上newされたら死ぬし。 つうかこんなのお前も使ってないだろ。 こんなもん出して指摘してもらおうなんて片腹いたい。 馬鹿でしょって感じ。 ちゃんと使ってる奴だせよ。
あとデバッグの時も最悪だな。 ま、こんな出来そこないでも、個人で使ってる分には確かに問題は無いかw 好きにしていいよw
>>790 ちょっと確認したいんだけど、
>>790 =
>>749 ?
指摘してくれた欠点がデフォルトを使えっていう理由だとしたら、いや
まだ決定的な何かあるはず。
それと、使ってる。普通に。弾で。
>>788 これがSTLに見えるおまえって・・・w
>>782 まずは、これ使うと何のメリットがあるのか説明する必要がある。
それが無いなら、ただ危険なだけの余計なコードだ。
それだけでデフォルト使えっていう根拠になる。
環境限定、使い方限定だろうから、説明にはそこらへん
欠かさないように気をつけて。
793 :
名前は開発中のものです。 :2006/06/13(火) 02:45:13 ID:7Go5fRrR
質問です。 マウスを使ってクリック中心で進んでいく2Dゲームを作りたいと思っています。 クリックしたときの座標と単純な形(四角や円)のモノとの当たり判定(?)は分かるのですが、 複雑な形をしたもの(漫画風に描かれた人間や動物など)に対してはどのようにしたらいいのでしょうか?
>>793 2D描画用データ内の任意座標に対して透過判定ができれば、
それを使うと気持ちよく反応してくれそう。
他には、単純な形の組み合わせで近似するのが、よくやる手段かな。
795 :
793 :2006/06/13(火) 03:18:51 ID:7Go5fRrR
>透過判定 やはりそういうことができるのでしょうか。 製作で使おうとしているものはC++とDirectXなのですが、 透過判定をする手段はあるのでしょうか? 単純な形で近似することは知ってはいたのですが、 キャラクターの形ぴったりに判定しているゲーム(エロゲー)があったので、 どのようにしているのか気になりました。
脊髄反射で、質問し返すのな・・・
>>795 透過判定をする手段がまったく無ければ、描画も透過させることができないから
なにかしら手段があるのはあたりまえ。
自分の作るゲームでもぴったり判定させたいなら、そっちの方向でやってみるといい。
ただしコーディングの労力や、実行時のパフォーマンスが
要求に合うかどうかまでは保証しないよ。
>>795 画像の読み込みからDirectXにまかせっきりになってるなら、
確保したテクスチャ(サーフィス?)の特定の座標の透明度を
取得できるような関数を作る。
自力で画像を読み込んでるのなら普通に参照できるはず。
キャラクタの外形線が連続した座標で持てるなら、WindowsAPIの
CreatePolygonRgn と PtInRect が役に立つよ。
>>795 どんなゲームかにもよりますね。
シューティングなら甘めの当たり判定の方がいい、
つまり正確さは必要ないですし。
>>792 ごめん、
>>743 で勘違いさせたね。
限定するとフェアじゃないし、反論することになるから避けたいので
指摘する分はそのままでいいよ。
まとめると
・標準デバッガでプール内のメモリリークを検出できない
・エラー処理が無い
・そのまま使うと28バイト以上のメモリを確保した時点でアボン
・メモリを余分に使う
・メモリを最後に開放していない
・128個以上newすると死ぬ
・new[]/delete[]に対応していない
・スレッドに対応していない
・STLのアロケータの用件を満たしていない
・STLの実装ですでにプールしているものもある
こんなもんかな?ありがとう。
自分としては満足な答えを聞けたんでそろそろSTGスレに帰るよ。
あ、まだ欠陥があるなら教えてもらえるとありがたい。
SGIから拾ってきたプールやってるデフォルトアロケータを なんもやってないwindowsのアロケータとして移植したら これは「デフォルトアロケータ使え」なる要件を満たすことになるのでしょうか? ご教授くださいwwwwww
コードの技術云々から離れますが、軟体の衝突や流体の処理などのアルゴリズム(で、いいのか?)を 説明してるサイトないしお勧めの本、どなたかご存知の方教えて頂けませんか? 自分は今、独学でC++の勉強二ヶ月目です、その辺考慮した上でお勧めのものありましたら是非
ここはNscripterのことも質問OKですか?
NS専用スレがあったような。・・・
>>806 ありがとうございます、辞書片手に理解に勤めてみます
流体の計算なら数値計算処理の本を漁るとかかなあ。 学術的な話になると思うけれど。 つーかナヴィエストークスってゲームに使えるほど高速に解けるのか?w
ナヴィエストークスかあ。 昔、シミュレータ作ろうとして(ゲーム作れないかと思って)、挫折したよ。 図書館とか行けば、数式とか一杯のってんだけど、それをプログラムに落とすのがワケワカメ。 どこかで解
>>809 どうしたぁあああああああ。
大丈夫か?
>>811 クソワロタw
ゲームになってねえけど、面白げ
813 :
名前は開発中のものです。 :2006/06/30(金) 17:11:05 ID:NsefDdZH
vc++とborland c++ではコンパイラの違いはあるのしょうか? vc++では変数の型の再定義がスコープ内で出来ないのですが borland c++では変数の型の再定義が可能でした。 他にも微妙にコンパイルのずれがあるのですが…
全角と半角と半角と全角と全角と半角がゴッチャマゼになってイテ 読みに区員んだよハゲ
815 :
813 :2006/06/30(金) 23:51:36 ID:NsefDdZH
>>814 悪かったな
だが、てめぇも漢字乱用で滅茶苦茶な文、おまけにカタカナ乱用
…日本語習ったのか?
それともただの馬鹿なのか?
喧嘩売ってんのか?潰すぞ?
ネットだからって好き勝手書き込んでんじゃねぇぞ、小心者
住所教えろよ、てめぇをそこで住めなくしてやるからよ、小心者
小心者だから無理だろうがな
なにこの豹変ぶり
わらた
818 :
813 :2006/07/01(土) 00:08:46 ID:k/YjgUMr
すいません。815は偽者です。 実際のところでどうなんでしょう…
ID知らんのかな。
稀に見る逸材だな・・・
なんというか全て分かっててやっているようにしか見えない
>>819 CATVで同じアパートの住人とか
家の弟が勝手に書き込んだとか
そんなんだよね?
823 :
815 :2006/07/01(土) 00:55:54 ID:IELnHQVf
>>814 もし、てめぇが山田に感染したらてめぇの個人情報がばれ易くなる
把握出来たら関東圏が勝手に乗り込みに向かうからな
814以外の皆さん気分を害してしまって申し訳ありませんが、
「VC++」と「Borland C++」のコンパイラは違いがあるのでしょうか?
「VC++」ではスコープ内の変数の型の再定義が出来ないのです
教えて下されば幸いです
(笑)
をを、マジデ逸材出現ですな
826 :
823 :2006/07/01(土) 01:41:10 ID:IELnHQVf
何か話しが可笑しくなってしまっている様ですね 「VC++」と「Borland C++」のコンパイラは違いがあるのでしょうか? 「VC++」ではスコープ内の変数の型の再定義が出来ないのです 教えて下されば幸いです
827 :
826 :2006/07/01(土) 02:18:25 ID:IELnHQVf
このスレは相談にも何にもならない様ですね レスして来る方々を比喩すれば豚の集まりの様ですね ピザでも食べていて下さい 貴方達なら本物の豚になれます、飛べない豚になれます 悲しい時は映画のベイブを思い出して下さい 悲しい時はドラゴン・ボールに登場するウーロンを思い出して下さい 時間を無駄にしました、別のサイトで調べます
無理にネタ臭出さなくてもいいんだよ。 次↓
829 :
827 :2006/07/01(土) 02:39:43 ID:IELnHQVf
はい、済みません。 訂正させて下さい。 マジスレでコンパイラは様々にありますが 同じ言語でもエラーを起こす場合と起こさない場合がある気がするのです 私の気の勘違いでしょうか? 言語を習得してもエラーを起こす様では困ります これはプログラマーの方々から観てどうでしょうか?
マジレスすれば「ゲーム」プログラミングに関係ないからスレ(板?)違い
831 :
829 :2006/07/01(土) 03:07:13 ID:IELnHQVf
コンパイル出来なければゲームプログラミングは当然出来ないじゃないですか エラーが起こればゲームプログラミングの実行ファイルも作成できないのです ちなみにC++でゲーム創っています
コンパイラによってはエラー出たり出なかったり色々と仕様があるのは仕方ない そのために#ifdefとか使いまくってどのコンパイラでも正常にコンパイルできるようにしたりとかな でも普通は自分の普段使ってる環境のコンパイラに対応すりゃいい
833 :
830 :2006/07/01(土) 03:28:25 ID:IELnHQVf
マジレス有難うございます 私はVC++を使っているのですが、Borland++コンパイラをプロジェクトに追加する事は可能でしょうか? 問題は書籍にあるんですよ、VC++を使う書籍よりフリーのコンパイラを使用する書籍の方が多いのです ある程度は作れるのですが、未だプログラミングのレベルが低いので勉強中です
834 :
831 :2006/07/01(土) 03:30:33 ID:IELnHQVf
訂正、833は831です
835 :
834 :2006/07/01(土) 03:39:04 ID:IELnHQVf
こんな夜中になるまでマジレスして下さった方々有難うございました そろそろ寝ます
Ci触る前にHSPだろうがBASICだろうが、コンピュータ言語になれるのが先ではないか? そんな感じに見える
なんかネウロに出てきそうなキャラだったな。
ネウロの犯人だなw
839 :
名前は開発中のものです。 :2006/07/01(土) 17:35:56 ID:PF2H4zAI
テトリス作ってるんですけど ブロックとかは配列で記憶するほうがいいのか、一つずつ座標で記憶するほうがいいのか どちらがモアベターですか?
int field[20][10]; でいいだろw
841 :
名前は開発中のものです。 :2006/07/01(土) 17:40:03 ID:PF2H4zAI
やっぱりそうですよね ありがとうございます
842 :
名前は開発中のものです。 :2006/07/01(土) 22:13:00 ID:M+tvdKh+
カードゲームで、ネットワーク対戦できるゲームを作ろうと思っているのですが、 言語はなにがいいでしょうか?
>>842 日本語がいいんじゃね?
世界を狙うなら英語?
844 :
842 :2006/07/01(土) 22:25:40 ID:M+tvdKh+
プログラム言語です
>>844 日本語は日本語ベーシックを指してるんだよ、英語は
846 :
842 :2006/07/01(土) 22:52:52 ID:M+tvdKh+
J#,VB,C#,C++のうちだと、どれですか?
>>846 好きなのをどうぞ。慣れてるのが無難だとは思う。
848 :
842 :2006/07/01(土) 23:00:16 ID:M+tvdKh+
どれでもネットワーク対戦できますかね?
やろうと思えばどれでも。
850 :
842 :2006/07/01(土) 23:07:33 ID:M+tvdKh+
そうですか、ありがとうございます。
851 :
名前は開発中のものです。 :2006/07/02(日) 18:06:48 ID:REeWpCnj
ゲームというよりCの初歩的な質問で申し訳ないですが 例えば8ビットCPUとかで配列の要素数の上限が127だったばあい、 int field[128]; とできないので、これを int field[16][8]; とせずに int *p; p = &field[0][0]; *(p + pos) = value; としてポインタで扱ってもだいじょぶですか?
一体どこの環境でプログラムしてるんだろう
853 :
851 :2006/07/02(日) 18:30:15 ID:REeWpCnj
ゲームボーイです あと表現に間違いが↓ × これを int field[16][8]; とせずに ○ これを int field[16][8]; と宣言だけしておいて もちろんposの値は0〜128までの範囲内ということで まだポインタに自信がない素人なものでして・・・
>>851 質問が良く分からん。
もう少し判らない点を自分の中で整理してから質問した方が良い。
>int field[16][8]; とせずに
>p = &field[0][0];
意味不明。
邪推すると、2次元配列として宣言して、
1次元の添え字(pos)でアクセスしたいって意味ならそれでok
>>853 すれ違いだったか。
やりたいこと自体に問題は無いけど
posに128指定するとほげるよ。
856 :
851 :2006/07/02(日) 18:39:10 ID:REeWpCnj
>>855 さん、まことにかたじけない おかげで助かりました
posは127までということですね
ゲームボーイはやったことないから何とも言えねけど 一次元配列だろうと二次元配列だろうとポインタだろうと 本質的には皆一緒だから、どれか一つで駄目なら他のも駄目だよな
コメントしようもない。
859 :
名前は開発中のものです。 :2006/07/02(日) 20:19:13 ID:NaGfjeHC
うむ!
ウォーシミュレーションゲームでの駒移動のアルゴリズムを誰か教えてくれませんかね
863 :
名前は開発中のものです。 :2006/07/08(土) 23:29:39 ID:rAyZnp2u
なんかアフィ厨の話題の流れの中で見たサイトかもしれない。
宣伝乙
>>863
>>864 やっぱ宣伝って思われるよな…
読んでみたいが、なんかまんまと金儲けに利用されたみたいで。
nyとかで流れてないもんか…
>>863 管理人の名前でぐぐってみw
裏の顔は、不労所得の会の管理人でもあるw
e-bookを売って生活できるようになったから、ゲーム会社やめたらしい。
(他のサイトでもいろいろ売ってる)
まあ、それで喰ってけるなら、むしろ、みならいたいんだが。
MIDIをBGMに使用する場合、どの方法がベストでしょうか? WinXP、VC++.NET2003、Win32API使用です。
マルチ?
〜 ∧_∧____ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ___ (´∀` ,) //| < [問題] MIDIをBGMに使用する場合、どの方法がベスト? <──<\⊂ へ ∩)//||| \__________________ \. \,>'(_)i'''i~~,,,,/ ──┐  ̄|| ̄(_) ̄~||~ ̄ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ━━< 問題: MIDIをBGMに使用する場合、どの方法がベストでしょうか? >━━ \___________________________________/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ━━< A: WinXP × B: VC++.NET2003 >━━ \________________/ \________________/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ━━< C: Win32API × D: その他 >━━ \________________/ \________________/ ___ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∧ ∧ />──> | ドロップアウト!! >( ゚Д゚) </ / \___________/ ( )  ̄|| ̄ ┏━━━━━━━━┓ ┃┏━━━━━━┓┃ ┃┃ 挑戦者 ┃┃ ┃┗━━━━━━┛┃
けど文だけ見たら間違いでもない
でもまさにミリオネアの選択肢みたいだwwww
どの方法?ってのは方法を複数書き出して使う言葉だろ。 どのが余計なんだろうな、ゾノは必須だが。
俺なら ・DirectMusicを使う ・どこかに落ちてるmidi再生ライブラリを使う かな 今はmidi使わないので正直何が一番いいのかわからん
878 :
名前は開発中のものです。 :2006/07/10(月) 07:55:15 ID:yc2ViaZn
クロスワードパズルを自動生成するソフトを作りたいんですが、 どっかにすでにそんなソフトとかあったりするでしょうか? 単語のリストを渡すと自動的にクロスワードパズルにしてくれる ようなソフトです。 ベクターは一応見てみたんですが、完全な自動生成化のソフト はないみたいでした。
>>878 探してなかったみたいで且つ作りたいなら
作ればいいじゃないかw
面白そう。ちゃんと問題になる言葉の組み合わせになってないと 完全自動化は難しいだろうから、クロスワード作成ツールみたいな感じになるのかな?
882 :
名前は開発中のものです。 :2006/07/23(日) 08:48:18 ID:EEmzYIV8
ネットワークゲームのサーバを作るとき、クライアントとの通信はどうしてますか? ソケット?それともCORBAとかHTTPやXML? ユーザのインタフェースはブラウザではなくGUIアプリを想定しています。 いまどきの実装はみなさんどうしてますか? 普通ソケットで独自のメッセージを使うかなと思っていたけど違うのかな。
>>882 Socket利用した独自プロトコルで良いんじゃない?
ツール使わずにノベルゲーム作ろうと思ってVC++2005とDirectXで作り始めました。 LPD3DXFONTを用いての文字描写はだいたいわかったんですが、 背景だけを残して全文字を消去→次の文章を背景の上に一文字ずつ描写 というのは、どのようにしたら実現できるでしょうか。 どなたかご教授お願いします。
背景を文字に上書きすればいい
>>885 あ、なるほど。
それでいってみようと思います。ありがとうございました。
文字表示はLPD3DXFONTのDrawText()を使ってるのですが、
一文字ずつ描写するには他の方法がいいのでしょうか。
まず作ってみてから改良、って手段を選んだほうがいいよ。 先に進むことで得られる物は多いからさー
>>887 そうですね。わかりました。
いろいろと親切にご教授ありがとうございました
そして心は温かくなりました
> そして心は温かくなりました
僕の心も温かくなりました
あなたの心も温かくなりましたか?
冷やし中華はじめました。
そして冷やし中華も温かくなりました
ぬるっ
p
ガッ
待て、「o」が足りないぞ
うむ
とりあえず何人いるか挙手ノシ
---------------------------------------- ここまでテンプレ
馴れ合いはこの辺にしておいて 次の質問どうぞ↓
僕の彼女はどこですか?
はぁ?何か用?
ググレカス×902
403 Forbidden って出たんですが、どういう意味ですか?
Q.「403 Forbidden」というエラーが表示される。 A.「403 Forbidden」は、「アクセスが禁止されています」というエラーです。 以下の対処法に従ってダウンロードを試して下さい。 考えられる原因 1.アクセス権が与えられていない。 サーバー側の設定で、目的のファイルもしくはディレクトリ全体で外部からの アクセスを禁止している。 2.サーバーへのアクセスが混み合っている。 アクセスが混み合っていると、このエラーが表示される場合があります。
対処法 1.何回かアクセスを試す。 サーバーへのアクセスが混み合っている可能性があるため、ファイルのダウ ンロードを何回か試して下さい。2、3回試してもエラーが表示される場合は 、次の項目をご覧下さい。 3.以上の対処法でも解決できない場合。 以上の対処法を試してもエラーが表示されるのであれば、アクセス権が与え られていないと考えた方が良いでしょう。これ以上は、サーバーの管理者か ホームページの管理者でないと対処のしようがないため、管理者に直接問 い合わせて下さい。 無料ホームページサービスのサーバー(例えばGeocitiesやTripodなど)で、 403エラーが表示される場合は、サーバーの管理者が外部からのアクセスを 禁止する設定を行っています。 無料サーバー以外の場合は、単にホームページの管理者が設定を間違えて いる可能性が考えられます。
18歳以上じゃなきゃダメっていうステータスだよ
アクセス過多なんだよきっと
うわきしまくりってことかよ
バッチリファイルのようなウィンドウをHSP2.61で作成するにはどうしたらよいのですか? ウィンドウのタイトルバーが太いやつのことをいってるんです。
"バッチリファイル"でぐぐったらかなりヒットして驚いた
HSPでないと「バッチリファイルのようなウィンドウ」は、見れませんか? …知ったかぶりはやめます それはどんなウィンドウですか
一通りC/C++とWinAPI、DirectXをこなした俺にわからないことがあるなんて・・
::CreateBacchiriWindowEx(LPSTR class_name, DWORD x, DWORD y, DWORD w, DWORD h, DWORD style);
>>913 スクリーンショットぐら出してみたらどうだ
誰もバッチリファイルなんてものは見たことないみたいだぞ
>>881 遅レスだが、ルーチン自体はそのままでいいんじゃね?
奥から手前にスクロールしてるように「見せる」のはあくまで絵の書き換え(アニメーション)だから。
アウトランがどのようにして実装してたかはしらんが、
全書き換えか、パレットアニメーション等で実装するのが普通かと。
ちなみに、スクロールスピード=アニメーションの書き換え速度 ですな。
バッチリファイルってなんやねん ガッカリイリュージョンみたいなものか?
ドッキリテクスチャとかも仲間だよね。
コレジャナイロボとかそういう系統か?w
テンプラプレートも忘れて貰っては困ります!><
925 :
名前は開発中のものです。 :2006/08/09(水) 19:14:20 ID:el+wt3Q4
パチンコを作っています。 パチンコ玉の衝突判定を円でやっているのですが、玉と玉が衝突したとき衝突していない位置まで戻すにはどうすればいいのでしょうか。
移動方向を保持しておいて戻せばいいんじゃね? それかバッチリファイルを使えばいいと思います^^
ガッカリイリュージョン なんだこらwwwポケモンくそわろたwww
僕はだいたいIF文だけでゲームプログラムをしていますが、 クラスとかポインタとかダイレクトXとか分からないんですが、 ライブラリ的な言語で作ってる限りでは特に支障がないと 思うんですが、大丈夫でしょうか? こういうスレを見てると、専門用語が飛び交っていて、チンプン カンプンで、自分は大丈夫だろうか心配になるんですが、 ライブラリ的なものを利用して作るのは面白いゲームを作るのに マイナスになるでしょうか?
イタリア語でおk
N88BASICですか?
せめてgotoとかjumpみたいなものがないと。 ifだけでは無理。 ?
gotoとかjumpなんて使うやついないと思うんだが・・
HSPの影響です。
gotoはあればあったでそれなりに便利じゃない? 無論乱用するのは地獄に落ちていいが
gotoは劇薬と同じで、用法を守らないと、著しく害を及ぼす。
最悪の場合コードが死に至る
そのプログラマーが逃亡し、 尻拭いをまかされたプログラマーが死亡。
gotoとgosub、returnをごちゃ混ぜ。
グローバリー変数の方がよっぽどあくどい。 gotoの方が、スコープが関数内なだけまし。
先物屋かよ。 >グローバリー変数
>>942 と、HSP厨が申しておりますが
いかが致しましょう?
構わん、現状維持だ
947 :
名前は開発中のものです。 :2006/08/19(土) 20:36:14 ID:jWMoG/BJ
DirectX使うならコンパイラは何がいいでしょうか? 以前VC2003EEで開発したら、古いPCや一部のXPでは動かなかったので、 できるだけ多くのPCで動くようにしたいのですが…。
Express2005なら無料
ああ、VC2005ExpressEditionの間違いです。 無料で手に入れて作ってみたら、上記のとおりだったのですが、 プログラミングスキルが足りなかっただけでしょうか? それなら再挑戦しようかと。
出来るだけ多くのマシンで動かすならGDIの方がいいんじゃないか? そもそもDirectX(特に9)使う時点で動かせる環境が限られてくるし。 っつかコンパイラ殆ど関係ない。
>>947 動かなかったのは VS2005EE のせいじゃないと思われ。
つか何故動かないかの原因も調べてない悪寒。
>>950-952 普通そうですよね。ありがとうございます。
自分のPCでは動くのでどうも原因がつかめなくて…。
リンクするライブラリがDLLになってるんじゃないのかね
…もはやDirectXが使えない環境は切り捨てるべきじゃないのか。 たとえノベルやAVGであっても。
Win98のノートでもDirectX9が動くぞ RPGツクール2000でもカクカクだがなw
957 :
953 :2006/08/20(日) 00:57:07 ID:j2TSf9MG
>>954 今となっては、VC環境も無いので、何ともいえません…orz
VC2005EEをもう1度インストールしてみて、
1から再挑戦しようと思います。
スクリプトエディタ等色々試してみましたが、
やっぱりC以上に自由で使いやすい言語は無いですねぇ。
>>957 > やっぱりC以上に自由で使いやすい言語は無いですねぇ。
さっぱり同意できん。
出来るだけ多くのPCという条件ならVCとDirectXを捨てるという選択肢を忘れるな GCC SDL OpenGLの組み合わせならPCどころかMacも見込めよう
>>957 以前使ったときは
構成プロパティ - C/C++ - コード生成 - ランタイム ライブラリ
の項目をMDからMTに変更することで解決してたよ。
理由は
>>954 さんの言うとおりだと思う。
つか、むしろ慣れ。
制限があることによって使いやすくなると思っている。。。
>>957 俺、VC++2005EEでゲーム作って、100人くらいに(ネットで公開してるので正確な数字はわからないが)
やってもらったが、動かないって報告はごく少数だよ。
それも、3Dカードが容量足りないとかだったので、ビデオメモリじゃなくてシステムメモリに
データを置くようにしたらWin98とかでも普通に動いた。
俺もみんなが言ってるように、
>>957 は使い方がわかってないだけだと思う。
× C以上に便利で使いやすい言語はない ○ C以外の言語を使いこなす力がない
なでしこが最強だとまだわからんのか
なでなでしこしこは最強だよ^^
否定はしない
ちょっと、御願いがあるのですが、全スレpart6のdat持っている方、うpおねがいできませんか? googleでちょっと調べ事してたらpart6のレスが掛かったのですが、キャッシュしか見れなくて・・・ 過去ログ倉庫も見たのですが、見当たりませんでした。 よろしく御願いしますm(_ _)m
972 :
970 :2006/08/31(木) 01:48:57 ID:p7DQv3N1
>>971 神様!ありがとうございますm(_ _)m
973 :
名前は開発中のものです。 :2006/09/01(金) 11:33:33 ID:hTeERqu9
最近ゲーム作りが目的でプログラミングを勉強しようと思ってるんですが C++とJavaのどっちを選べばよいですか? 本見たら細かい違いが書いてあったのですが, それがゲームプログラミングにどうきいてくるか全く分かりません
>>973 一般的なプログラミングの勉強用には Java のほうがいいだろう。
でも処理速度の要るゲームに特化するなら C++ のほうがいいだろう。
ゲームプログラミングに関する情報は大部分が C++ というのも決め手になるかもしれない。
975 :
973 :2006/09/01(金) 12:15:05 ID:hTeERqu9
>ゲームプログラミングに関する情報は大部分が C++ というのも決め手になるかもしれない。 これが決め手になりましたw おとなしく,図書館で借りたJavaの本ぜんぶ返して,C++の本を借りてきます
(´・∀・`)そうだね
979 :
973 :2006/09/01(金) 12:32:37 ID:hTeERqu9
>>976 今のところ特になにも考えてないですw
ってか,まだ言語もほとんど分からないので,
ちょっとづつ触っていくのが目標です とりあえず
本一冊読んでなにも書けないならだめだろう。 まず書く。
ゲームのためにJavaでなくC++を選ぶのは正解だとは思うが、 あんまり初めからゲームにどう役立つかということばかり考えていると 勉強に支障が出る。特にC++は学ぶべきことが多いからそんなんじゃ挫折するかもな。
挫折するやつはするし、挫折しないやつはどうやってもしない。 やる前から決められているが、やってみないとわからない。 と考えるがどうよ。
はっきり言って、JavaもC++もC#も勉強すべき。 絶対損にはならない。
984 :
973 :2006/09/01(金) 16:16:10 ID:hTeERqu9
>>980 >>981 >>982 実は,C言語は昔にちょっとやりました(学校の授業で)
だから初歩の初歩は,思い出すだけで大丈夫だろうと思ってます
当時は興味なかったけど,最近プログラミングに興味がでてきてやり直す
ってことだから,一度挫折したことになると思いますw
>>983 2つの言語の同時進行って,きついですか?
文法間違いそうですがw
C++でゲームやるならDirectXとかAPIとか実質4言語くらいなるんじゃね?
それ言語か?
実質って漢字読めなかった?
日本語で本を書くなら敬語とか文法とか実質4言語くらいなるんじゃね?
STLとDXライブラリで2言語追加な。
随分細かく区切るくせに 「API」だけ守備範囲が御仏の心のように広いのはなぜなんだぜ
>>986 きっとアセンブリとかHLSLを含んで言ってると思うんだぜ。
993 :
983 :2006/09/01(金) 17:56:07 ID:2xdT6S5t
>>984 同時進行でもいいし、そうでなくてもいい。C++やって飽きたり挫折したときにでも。根は似た言語だから。
C++に拘り過ぎるのは良くない。開発ツールならC#やRubyを使ったり、OSに依存しないツールやサーバーサイドプログラミングならJavaを使ったりする。文献も必ずしもC++ではないし。
出だしはC++を勧める。
入門書を読み終えたら、携帯アプリ(au除く)やブラウザ上のゲーム、早くゲームを作りたいならJava、そうでないならSTL、Win32API、DirectXなどをすれば良い。が、Javaに比べてはるかに難しい。
今学生なら数学と物理も。二次関数や三角関数、行列、運動方程式などは良く使う。
最近のJavaはゲーム支援の機能がすごいのかな?聞いたこと無いが。 C/C++は、ウィンドウやグラフィックス、音周りはSDLで超簡単。 3Dが使いたければすぐにOpenGLで。 Java3Dも実質OpenGLだから、 (慣習も含めた)言語習得のコストを考えればC/C++の方が断然楽。
2ゲット
ワロタ
1000だったら
アナリスク
ファック
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。