【初心者歓迎】スレを立てる前にココで質問を【Part5】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/03/06 00:58ID:FXdKwbSnしてみましょう。あなたの長年の悩みがたった一つのレスで解決して
しまうこともあります。回答があるまでに数日間かかることもあるので
辛抱強く待ちましょう。
前スレ
ゲームに関する質問はここでしてね
http://pc2.2ch.net/test/read.cgi/gamedev/1057318143/
【初心者歓迎】スレを立てる前にココで質問を【その4】
http://pc2.2ch.net/test/read.cgi/gamedev/1044954179/
その前
【その4】http://pc2.2ch.net/test/read.cgi/gamedev/1043417025/l50
【Part3】http://game.2ch.net/test/read.cgi/gamedev/1032814540/
【Part2】http://game.2ch.net/test/read.cgi/gamedev/1013645518/
【Part1】http://game.2ch.net/test/read.cgi/gamedev/1005038203/
関連スレ・その他
>>2-3
0766ぁきまさ
04/07/19 16:01ID:j7btYjVrきっとこういうことです。
あと、質問はageていいと思うよ。
0767名前は開発中のものです。
04/07/19 16:41ID:SVeDBz/Fゲームデータにあるグラフィックデータの解析ってどうやるの?
具体的には、圧縮されたグラフィックデータファイルにグラのデータがあって、
そこから抜き出して、フォーマットを調べる。
ってことをやりたんだが。
0768名前は開発中のものです。
04/07/19 16:43ID:SVeDBz/Fそれから言葉遣いが悪かった。
やりたいんですが、よろしかったら教えてください。
ですた。
0769名前は開発中のものです。
04/07/19 16:44ID:SVeDBz/F0770名前は開発中のものです。
04/07/19 16:46ID:zNSTrUiZttp://ku-www.ss.titech.ac.jp/~yatsushi/analyze.html
とりあえずここ全部読め
直接は参考にならんだろうけど
0771名前は開発中のものです。
04/07/19 16:49ID:SVeDBz/Fd 逝ってきます
0772名前は開発中のものです。
04/07/19 16:52ID:ApxmKmGm0773名前は開発中のものです。
04/07/19 20:32ID:ZjuA9JH9それは違うだろ……
おそらくスマブラの思考ルーチンも似非AIで真性AIなんて使ってないと思う。
ていうか真性AI使ってるゲームってがんばれ森川君とガンパレ(これも怪しいが)ぐらいしか知らんぞ
似非AIっていうのはあらかじめ定められた条件分岐で意思を決め、成長しない思考パターンのことね。
イマドキの真性AIは学習機能が必須。
0774名前は開発中のものです。
04/07/19 20:33ID:NZda3o200775770
04/07/19 20:36ID:TZoI5FHRちょうどピッタリのURLを控えてたってのもあるけど
単なるクレクレだったらナシだね
(たまに立つ「PS2のムービーってどうやってパソコンで再生するの?」みたいなスレ)
0776ぁきまさ
04/07/19 21:26ID:j7btYjVr真性AIで学習させておいて、
学習機能を取り払って似非AIを実装してるんじゃないかなぁと勝手に思ったんですが、
しょっぱなから似非AIを構築するんですね。
スマブラ級になると(天下の任天堂様なだけに)えらくソースコードが複雑になりそうなんで、
しょっぱなから似非AIは無いだろうと勝手に考えてました。
0777名前は開発中のものです。
04/07/19 22:09ID:ZjuA9JH9そんな無駄なことはせんだろう……
簡単なのだったら、
・自分との距離と残HPから敵を検索、ロックオン
・攻撃開始、撃破、相手から致命傷を受ける、および長時間の格闘を要した場合は↑に戻る
のが一番単純かな。スマブラをやりこんで研究するしか手がないが、ゲームでありがちな一般的AIなんかはゲームの製作本に良く載ってるよ。
森川君の学習機能は人間の脳細胞のネットワークをマネして、周囲の環境に対応する行動との関連度合い(重み)を正誤から判断して毎回調整式で調整してるっぽいね。
ボタンがある→押した:(ユーザー「正解」)→ボタン・押す間の重みを強くする
鳥がいる→投げた:(ユーザー「不正解」)→鳥・投げるの間の重みを弱くする
ウンコがある→嗅いだ:(AI本体「不快」)→ウンコ・嗅ぐの間の重みをとても弱くする
のような感じで。
実際は属性分け(リンゴで学習した「丸い・食べる」間の強い重みを丸い爆弾でも適用して爆発させてしまう、とか)もしてるっぽいし、
もしかしたら多段階で判断させとるかもしれん。
「ニューラルネットワーク」「パーセプトロン」とかで検索するとわかるかも……生半可な知識だが。
0778ぁきまさ
04/07/19 22:55ID:j7btYjVr業界でも(概念としては)意外と単純に実装するんですね。
http://www.1101.com/morikawa/index_AI.html
なんか最近このURL張るの多いですが。一応。
0779名前は開発中のものです。
04/07/19 23:37ID:IJbVGYi4まあ、その手合いの対戦ゲーぐらいだと、本当のAIまでは普通持ってない。
ごく簡単に概念だけ説明すると
1)相手との距離、前に起こした行動やらをもとに「現在の状態」数を作る。
2)「現在の状態」の数だけ「その際取りうる可能性のある行動」テーブルを用意しておく
3)乱数を引いて、「取りうる行動」テーブルから次に取る行動を決める
この「行動」テーブルを
{ぬるい反応...厳しい反応}と並べておいて
「easy」だとなるべく左から「hard」だとなるべく右から取るようにするのが普通
0780名前は開発中のものです。
04/07/19 23:46ID:IJbVGYi42D格ゲーあたりで、「very Hard」あたりにすると、
反応自体はエグいけど、案外行動が単調になって読みやすくなったりするのは
テーブルの候補が狭まって、次の行動の候補が限られてくるためだったりする。
0781765
04/07/19 23:48ID:akKgvtvQとりあえず>>779さんの概念を参考に
まず攻略本を買ってきてキャラの動きなどや必勝パターンなど研究し
実際に再度注意しながらスマブラをやって勉強しようと思います
0782770
04/07/20 00:20ID:mfOQLZ8/学習ならパーセプトロンだろうけど、今回はオートマトンっぽい気がする
>>781
スマブラは複雑だからまずは初期の格ゲーから見ていくのがいいと思う
例えばスト2のCPUガイル戦だと
こちらがある程度間合いを取る→ガイルはしゃがむ
├┬→こちらが近づく→ガイルは足払いをする
│└→こちらが近づかない→ガイルはカウントが溜まったらソニックブームを撃つ
│ └→ガイルはソニックブームを撃った後こちらに近づく
└┬→こちらがジャンプで近づく→ガイルはサマーソルトキックで反撃する
└→こちらがジャンプで近づく→ガイルはカウントが溜まってないのでジャンプキックで反撃する
こんな風な状態遷移をするのよ
>>779の言う「行動テーブル」をガイルの場合で例に表しただけだけどね
0783名前は開発中のものです。
04/07/20 00:21ID:mfOQLZ8/0784779
04/07/20 00:41ID:jDncQmgy補足さんくすこ
研究題材の初期格ゲーだと、スト2はもちろんだが、
案外おすすめなのがスーファミで一杯出たスト2の粗悪コピー系粗製濫造格闘だ。
何とは言わないがあのへんとかこのへんとかなw
クソゲーっぽいのの方が良い、この場合。
なぜかと言うと、テーブル割りが単純なので、素人でも分析しやすいのだわw
0785名前は開発中のものです。
04/07/20 09:38ID:TIjHVPPUこれ、うまくやれば学習型にもできるな。
選択肢に用意してない行動は学習できないけど。
0786とむ ◆TOM/oiT7jE
04/07/20 15:19ID:zMYLWV5u0787名前は開発中のものです。
04/07/20 18:30ID:CjjqkQkQ0788名前は開発中のものです。
04/07/20 23:44ID:opbEx0+rどんなタイプのAI(GAでもNNでも)を持ってきたとしても
選択肢に存在しない行動は取れないよ。
形はどうあれ、最終的に「ゲーム」という極度に抽象化されたものへのアウトプットが必要だから。
多くの場合には行動に修練度(時間や精度みたいな)的なパラメータを持つ事で、行動の範囲を広げる。
0789名前は開発中のものです。
04/07/21 17:03ID:5QCYqUEJあれは確かCPUがレバーを直接入力してたよな。
VF1でアキラの膝をCPUが出すけど、どうやってるのか開発者がわからんかったとか。
0790名前は開発中のものです。
04/07/22 21:45ID:z1h/HfirUnix Linuxでゲーム製作している板はございませんか?
0791名前は開発中のものです。
04/07/22 21:48ID:dsDe4Hb2http://pc5.2ch.net/test/read.cgi/unix/1082601568/
【GBA】Linuxから目覚めるぼくらのゲームボーイ!
http://pc5.2ch.net/test/read.cgi/linux/1070983168/
SLGスレとMMORPGスレでLinux使ってる人がいた
0792790
04/07/22 22:00ID:z1h/Hfir0793名前は開発中のものです。
04/07/23 21:36ID:7gbUqWWz問題が一般的すぎるのでここに書きます。
800x600くらいの領域を、ランダムな傾きの直線で一様に埋めたいんだが、
どういう方法が密度バラつきなくできますか?
今やってる方法は、
1) MTで-10000〜9999な乱数を4つ取る
2) 1)を2点の座標とみなし、2点を通る直線を適当に800x600の矩形でクリッピング
これでも結構偏りが出てる気がする。気がするだけかもしれないけど…
なんか定番のやり方とかあったら教えてください。
0794名前は開発中のものです。
04/07/23 21:59ID:BeLzsHsh的外れなのかもしれんけど、
とりあえず乱数で取った点が(800,600)の矩形内だったら、
乱数を引きなおしては?線が短くなって無意味になる時がある気がする。
0795名前は開発中のものです。
04/07/23 22:20ID:7gbUqWWz目的は、画面フェイドIN/OUTの時に使う定義ファイルで、
スクリーントーンみたいな均一な模様にしたいのです。
アドバイスのとおり、矩形におさまるような点は無視するようにし、
さらに乱数のフィールドを8000x6000にして中央を取るようにしてみたら
大分偏らなくなりました。ありがとうございました。
0796名前は開発中のものです。
04/07/24 04:03ID:qEmxnU+2ブレーンストーミングするスレ立てたいのだけど、これはローカルルール
に違反しないかな?
↓のゲームっぽいもの作成したので、導入としてこれを使うから
単発スレのような感じになってしますから少し無理でしょうか?
http://www.geocities.co.jp/SiliconValley-Bay/4652/balls.htm
http://www.geocities.co.jp/SiliconValley-Bay/4652/cabin.htm
0797名前は開発中のものです。
04/07/24 06:20ID:fm3xWK8O↓ここはどうですか?
ゲームのための物理(力学)
http://pc5.2ch.net/test/read.cgi/gamedev/1018255106/
0798名前は開発中のものです。
04/07/24 06:23ID:sBREqJXF【Collision Detection】
http://pc5.2ch.net/test/read.cgi/gamedev/1015484028/
0799ひろさん ◆EriosvaGhM
04/07/24 06:41ID:1lN+r1r0|:::∧_∧::::::::|:::| |
⊂(@∀@)つ|:::| <>>1クズ・・・っ!ゴミ・・・っ!
//(手 塚)//::::!
|:::|/とヽ ♂ θ|:::| :::/
/ ̄ ̄旦 ̄ ̄ ̄/|
/______/ | |
| |-----------| |
_
/ /|)
| ̄|
/ /
0800796
04/07/24 07:20ID:qEmxnU+2むむ、やはり単発スレという感じになってしまいますか。
衝突の手法についてではなく、衝突を使ってどの様なゲームを作成するか
というのを気楽に話し合うスレにしたかったので、物理やコリジョンを扱うスレでは
ないかもです(コーディングについては出来るものとして進める:ちなみに私は
ペナルティ法等知りません^^;)。
すれ立てるとすればもう少し板の雰囲気等も考えてスレ立てることにしますね。
0801名前は開発中のものです。
04/07/24 12:02ID:9Bmm6sMIアイディアがあるが技術が無いので代わりに作って2
http://pc5.2ch.net/test/read.cgi/gamedev/1027414183/l50
0802名前は開発中のものです。
04/07/24 12:30ID:muzUYG7AビルドしてVCから実行するとHALで起動して普通に実行できるのですが、ビルドしたEXEファイルを
直接実行するとREFになっていますみたいなメッセージがでて強制終了します。プロパティをみると
REFになっています。何とかHALで起動して実行させたいのですがどこをいじればよいのでしょうか?
使用ソフトはVisual Stadio AcademicでビデオカードはGeforceFX5200です。
0803名前は開発中のものです。
04/07/24 13:03ID:w3BXFz/1>どこをいじればよいのでしょうか?
あんたのプログラムのどこか。
0804名前は開発中のものです。
04/07/24 17:10ID:deJPmHn6こっちで聞きなされ、と誘導してみる
DirectX総合スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/l50
0805名前は開発中のものです。
04/07/25 22:42ID:wTIwkwfC普通はローカル変数に入れとくもんですか?それともグローバル変数ですか?
0806名前は開発中のものです。
04/07/26 01:53ID:xL5qDpJfバッファ
0807名前は開発中のものです。
04/07/26 02:37ID:+vmEbW+Cわたしはstaticな感じのクラスが管理してる。
でもって戻り値にIDを返す。そのIDを指定して描画とかする。
てことで物自体はグローバルな感じ、それにアクセスするためのIDはローカルな感じ。
、、でも私の頭ではその程度しか思い付かないというだけで、普通はもっとかっこいい方法で管理してるのかも。
0808名前は開発中のものです。
04/07/26 04:05ID:IvYgsk6astaticな感じのクラスってのがよくわからないけど、
とりあえず、全体で同一の実体にアクセスしたいんであれば、
http://www002.upp.so-net.ne.jp/ys_oota/mdp/Singleton/
Singleton パターンを使うのが普通じゃないかな。
グローバルだと実体の所在が把握しづらくなることがあるから止めといた方がいいね。
0809名前は開発中のものです。
04/07/26 10:52ID:KAV4hfSh0810名前は開発中のものです。
04/07/26 21:43ID:DTawJWmS0811名前は開発中のものです。
04/07/26 22:42ID:boyt2ViDパケットモニター等を使用して、
クライアント上からコマンド(キャラクタ移動等も立派なコマンドだ)を送ってみて、
その際にどのようなパケットが発行され、
サーバからどのようなパケットが帰ってくるかを調査する。
多くの場合暗号化されているだろうから、その暗号解析も必要。
2)
前ステップで得られたパケット情報から、クライアントサーバー間の
プロトコルとネットワーク仕様を推測し、仕様を固める。
3)
前ステップで推測したプロトコル仕様を実現するサーバプログラムを記述する
ここから先は自前でネットゲーを作るときと一緒なので省略。
大まかにはこんなもんだ、
ステップ1とステップ2が終われば80%できたと言ってしまっていいかもしれん。
(ネットゲーサーバ作りで一番大変な「プロトコルとネットコード設計」が終わってるんだから)
0812名前は開発中のものです。
04/07/26 22:48ID:MCmYCtp8わお、勉強になり舛田。
staticな感じってのは
class hoo
{
static int load(char* fn);
static void draw(int num);
}
て感じのアクセサでhooが実体を一元管理。でもって
int bar = hoo::load("orebaka");
hoo::draw(bar);
て使うものでスタ。漏れ脂肪。。。
0813名前は開発中のものです。
04/07/26 23:01ID:B/ZqUo2mアホ丸出しな質問かもですが、なぜみんな
ClassHoo* hoo = new ClassHoo();
て書くんでしょうか、、ほとんどの場合
ClassHoo hoo;
でいいと思うんですけど。delete忘れたら悲しいし。
javaではclass変数が実質的にポインタだし、GCもあるのでいいと思うんですが、C++においては違和感が、、
0814名前は開発中のものです。
04/07/26 23:13ID:lLBPWVrI質問の意図がいまいちわからんのだが
> ClassHoo* hoo = new ClassHoo();
> て書くんでしょうか、、ほとんどの場合
> ClassHoo hoo;
> でいいと思うんですけど。delete忘れたら悲しいし。
これは、C++についての意見なのかな?
0815名前は開発中のものです。
04/07/26 23:15ID:/sNbjoGs0816名前は開発中のものです。
04/07/26 23:41ID:lLBPWVrI> ClassHoo* hoo = new ClassHoo();
しています。
> ClassHoo hoo;
こう宣言できちゃうと、どこでも宣言できちゃうので、
実体が1つであることが保証できなくなります。
なので、コンストラクタとデストラクタを
private にして、そのクラスのメンバ関数からしか
呼べなくしています。
メンバ関数の中で
> ClassHoo hoo;
と宣言しても、それはローカル変数にしかならないので
> ClassHoo* hoo = new ClassHoo();
と宣言してポインターを保持しておきます。
これでいいかな?
説明下手で申し訳ないけど
0817名前は開発中のものです。
04/07/26 23:48ID:DTawJWmS分かりやすい!ども、ありがとうございます。
0818名前は開発中のものです。
04/07/28 00:43ID:9Fh+7n1B813は多分、クラスの中で、
> static ClassHoo hoo;
とするのはマズイの?と聞きたかったのでは!?
多分、これをやると、main関数が実行される前に、
staticなClassHooが作られるからマズイのかな?と思ってみたり。
0819名前は開発中のものです。
04/07/30 21:21ID:DrPY9mrp0820名前は開発中のものです。
04/07/31 11:11ID:uFPG2A3V0821名前は開発中のものです。
04/07/31 14:24ID:wQlcxQ++禁止エリアの変更を行う毎に以下の処理を行う。
1.新たに禁止エリアとなったエリアを「禁止エリアの候補」から外す。
(禁止エリアを通常のエリアに復帰させる場合、まず復帰させるエリアは全て復帰させ、禁止エリア以外のエリア全てを「禁止エリアの候補」にしてから2へ)
2.「禁止エリアの候補」を順番に調べていく。調べる対象と隣接するエリア(東西南北の4方向移動なら、対象の縦横ナナメ周囲8マス)に
“禁止エリア”が2つ(“マップ外縁”があれば1つ)以上見つかった時点で3へ。(無ければ次のエリアを調べる)
3.“チェック用の仮想マップ”を現状に加え“対象エリア”が禁止になった状態にする。
4.“対象エリア”以外の「禁止エリアの候補」をひとつ選んで基準点とし、仮想マップ上で移動経路探索を行う。基準点から移動可能な場所全てをチェック。
5.“対象エリア”および基準点以外の「禁止エリアの候補」全てについて順番に調べる。仮想マップ上で「移動可能範囲になっていない」(分断された)エリアが
見つかった時点で、“対象エリア”を「禁止エリアの候補から外す予定のエリア」とする。
6.「禁止エリア候補」の全てをチェックし終わったら、「禁止エリアの候補から外す予定のエリア」を「禁止エリアの候補」から外す。
0822名前は開発中のものです。
04/07/31 15:17ID:aIOUs0Nkありがとうございます!
0823名前は開発中のものです。
04/07/31 18:50ID:rDiQSa23どのような言語やソフトを使って作られているんですか?
0824名前は開発中のものです。
04/07/31 19:55ID:PXK/3MpLUOはクライアントはVC++のはず。
サーバーはSolarisのはずだからccだろうなぁ。
その時代のWin32ゲームなら言語はまずC/C++(C++でない可能性も高い)、
だろうと思われる。
0825名前は開発中のものです。
04/07/31 20:32ID:rDiQSa23最近のゲームの場合はどうでしょうか?
0826名前は開発中のものです。
04/07/31 20:37ID:1SHYiP+f大半がc/c++でしょ。
msがpreview code(dx、win、sdk、ddk)出すのが、必ずc/c++が最初だから。
delphiで作ってたところあるが、今はc/c++だし。
0827名前は開発中のものです。
04/07/31 22:28ID:PXK/3MpL処理系でいうと、洋ゲーに関して言うなら、
多数派がVC++、少数派でmingw/gccってとこじゃないか?
delphiは欧州で強いという話はあるが、
あくまでもゲーム以外の一般アプリ(という言い方も変だが)の話だし。
国産エロゲとかそのへんに関してはシラネ。
0828名前は開発中のものです。
04/08/01 00:15ID:9/8mpdqF販売してもいいんですか?
(ライセンス料とか払う必要がありますか?)
0829名前は開発中のものです。
04/08/01 00:25ID:rKSFvTvE0830名前は開発中のものです。
04/08/01 00:50ID:huOwEYhthttp://game8.2ch.net/test/read.cgi/game/1091288352/
鎧を着た騎士が剣や斧やメイスや弓で敵を倒していくゲームです。
グラフィックはかなり綺麗です。
公式 http://www.knightsofthetemple.com
体験版 http://www.gamershell.com/download_6588.shtml
0831名前は開発中のものです。
04/08/01 01:55ID:+s4oYwTh出場者リスト作成
リスト一番上から、ランダムに対戦相手を決める
その二人を抜く
リスト作成に戻る
どうすればよいですか?
0832名前は開発中のものです。
04/08/01 02:41ID:aZwyLY/F「ランダムに対戦カードの順番を並び替える」にすればよろし。
0833名前は開発中のものです。
04/08/01 09:17ID:8L+/zjInありがとうございます。
0834名前は開発中のものです。
04/08/02 11:15ID:o7BCJFlk描画命令はGDI+のDrawImageを使っています。
0835名前は開発中のものです。
04/08/02 11:23ID:t6J1geIS0836名前は開発中のものです。
04/08/02 12:17ID:jDxAxQMU0837834
04/08/02 13:31ID:o7BCJFlkGDI+のDrawImageを使ってキャラクター等を描画しているのですが、
FPSが少なくてキャラクターがスムーズに動きません。
GDI+でスムーズに描画させるにはどうしたら良いでしょうか?
それと、GDI+は以前のGDIより遅いと言う噂があったのですが
これ本当ですか?
0838名前は開発中のものです。
04/08/02 13:39ID:z1MrJQ8zFPSが100を越えたとしても、ちらつくものはちらつく。
0839名前は開発中のものです。
04/08/02 13:46ID:z1MrJQ8zそちらで描画を行ってから、描画領域の内容を表示して味噌。
そうすればちらつきはなくなるから。
0840名前は開発中のものです。
04/08/02 13:51ID:z1MrJQ8z一つ忘れてた。WM_PAINTで表示する場合は、
背景を描画しない設定で窓を作らないと、
何をやってもちらつくぞ。
0841名前は開発中のものです。
04/08/02 19:34ID:icJl35AhMIDI音源を使用したMIDI音楽を録音して
有償配布する場合。MIDI音源の製作者に
許可、もしくはライセンス料を払わなくてはならないのでしょうか?
0842名前は開発中のものです。
04/08/02 20:15ID:xSwisWHX曲がオリジナルであるなら問題ない。
ギターで曲を演奏し、それを録音し有償配布したとして、
ギターの作成者にライセンスを払う必要がないのと同じ。
0843名前は開発中のものです。
04/08/02 20:41ID:icJl35Ahご教授ありがとうございます
0844名前は開発中のものです。
04/08/04 00:44ID:4mXvMeO/内部640x480x16bit(R5G5B5)で持っているバッファを高速でウィンドウに表示する方法がわかりません。
ディスプレイの色数が32または16bitの場合、あらかじめピクセルフォーマットを調べて変換テーブルを作っておき
for(x=0; x<m_width; x++,p1++,p2++)*p1 = table[*p2];
というようにしていますが SetDIBitsToDevice で転送したほうが倍早いです。
インラインアセンブラで書いてみてもまったく変わりませんでした。
lodsw mov ax,[ebx][eax*2] stosw loop
何か良い手法はありますでしょうか。
0845名前は開発中のものです。
04/08/04 00:59ID:SrAClrkI0846名前は開発中のものです。
04/08/04 01:01ID:+8D44Quy方法その二、DirectX
0847844
04/08/04 01:24ID:4mXvMeO/Timer関係も悩みの種ですが、今回はtimeGetTimeで次の描画予定時刻まで待ち、描画処理後DoEventsもどきを呼び出すようにしています。メインループぶん回しといわれる手法です。
>方法その一、CreateDIBSection
単にnew WORD[w*h]で確保したバッファをSetDIBitsToDeviceで出力するのも、CreateDIBSectionで作成してBitBltで出力するのも、特に差はないようです。推測ですが内部では同じように動いているでしょうし。
>方法その二、DirectX
VRAMのアドレスを取得してCPUに転送させようってのが>>844の手法です。
DirectXを有効に使うには全ての画像バッファをディスプレイアダプタのピクセルフォーマットにあわせて確保することになり、自分のコードでソフトウェアレンダリングすることが難しくなってしまいます(そのために内部バッファを固定長で持っている)。
なんとか「全部D3Dで描画しろ」という方向に持っていかない方法な無いものでしょうか。
0848名前は開発中のものです。
04/08/04 02:42ID:+8D44Quy一番大事なのは何?
0849名前は開発中のものです。
04/08/04 02:46ID:+8D44Quy16bitと32bitのソフトウェアレンタリングを、別々に書いた。
0850名前は開発中のものです。
04/08/04 02:58ID:EN4PhULqR5G5B5とR5G5B5の二種類ある点にも注意すべし。
0851844
04/08/04 03:32ID:4mXvMeO/それ以外の要素は可変で、描画関係のコードは全部書き直すつもりです。
作りたいゲームはありますが画像素材は用意していないので、いっそ320x240x8bitで作ってしまおうかとも考えています。
>R5G5B5とR5G5B5の二種類ある点にも注意すべし。
同じに見えるw
今目の前にあるノートPCはR5G6B5です。
DirextXの資料を見ると他の組み合わせが存在する可能性もあるみたいだけど、実在するのかな?
あとCreateDIBSectionで作成した16bitのビットマップは必ずR5G5B5になるのでしょうか…不安です。
0852名前は開発中のものです。
04/08/04 09:13ID:SrAClrkICreateDIBSectionの16bitは、R5G6B5の環境でも、
R5G5B5だから、その辺は気にしなくても良いよ。
0853名前は開発中のものです。
04/08/04 09:29ID:gMd3G0A5古いPC使ってる人は、自分の環境が遅いことを自覚してるだろうし。
あんまり下の方ばっかり見すぎるのも良くない。
0854名前は開発中のものです。
04/08/04 10:48ID:+8D44Quy我ながら物好きだとは思うが。というか、
特に最新技術が必要ってわけでもないしな。
どの機能がどのG/Bで使えるかがわからんから気に入らない、
というのも事実だ。
0855名前は開発中のものです。
04/08/04 11:27ID:QOeXo7xwポリゴン描いてブレンド使うのは最新でもなんでもなくね?
ぶっちゃけ糞みたいなビデオカードでも刺さってればソフトレンダよりはまし。
TNTクラスでも500MHz程度のCPUで処理するより速いし高品位でしょうに。
機能のサポートもCAPSから拾える。
自己満足が目的でやってるだけなら全然問題ない。
広く遊んでもらいたいなら微妙。
と、むかーしソフトレンダでやってたおっさんは思うわけですよ。
0856844
04/08/05 01:48ID:jfbCbwyyありがとうございました。
0857名前は開発中のものです。
04/08/05 16:15ID:24Y5QKS9最新で最安のG/Bを入れるのが当たり前の時代なら、
文句なしにD3Dなんだけどなぁ・・・・・・
PS2が廃れて、PS3がコケて、PCゲーがシェアを拡大する
ような事にならない限り、無理っぽいが。
G/BよりはCPUやメモリーを買うのが当たり前、もしくは
PC本体を買い替えるのが当たり前だからなぁ・・・・・・
0858名前は開発中のものです。
04/08/05 20:20ID:tYA4rtQg今じゃんけんゲーム作ってます。
(使うかわかりませんが)ハイスコアを配列 highscore[3] で処理して
それを表示させたいんですが、
for (i = 0; i <= 2; i++)
printf("1位 = %d\n", highscore[i]);
とやるのと、単純に
printf("1位 = 〜略
printf("2位 = 〜略
printf("3位 = 〜略
とやるのではどちらがいいでしょうか。
配列ってどうも for文とか使いたくなるんですけど、前者だと演算処理が多くて
処理速度が遅くなってしまうんじゃないかなぁ、って思うんです。どうでしょうか?
まぁ別に、処理速度を気にしなくちゃいけないほどの、容量のでかいゲームを
作ろうとしてるわけではないんですけどね。今は。
0859名前は開発中のものです。
04/08/05 20:23ID:tYA4rtQgfor文のところが printf("%d位 = %d\n", i+1, highscore[i] );
0860名前は開発中のものです。
04/08/05 20:26ID:tYA4rtQg0861名前は開発中のものです。
04/08/05 20:28ID:tYA4rtQg0862名前は開発中のものです。
04/08/05 21:15ID:dBuZpBmsガンガン来い!
とりあえず答えておくと、どちらでも問題は無い。
このケースに限らず、ループとループの展開は一長一短の場合がほとんど。
ループはコードを小さくできるが、若干処理を取られるか、
展開はコードが大きくなるが、処理が若干早くなるか、
のどちらか。
最近はキャッシュ云々もあるし一概には言えない。
このケースなら、まぁ、ホントにどっちでも構わない。
やりやすい、見やすいと思う方でいいんじゃねーのかと。
0863名前は開発中のものです。
04/08/05 21:51ID:tYA4rtQgご丁寧にどうもありがとうございました。
0864名前は開発中のものです。
04/08/05 23:39ID:ws71rpUr先の例の場合>862の言うとおりどっちもどっちなんだが、
その部分を最適な選択を行うことにより得られるメリットより、
実はクソ重いprintfを自前文字出力に変えた方がはるかに効果があったりする。
(とはいえ、今時のCPUなら問題にもならんけど)
処理効率を考えるとき、
「いったいどの部分が一番効率が悪いのか」
を見極めるのが、処理の効率化を考えるとき一番重要だぞ。
0865名前は開発中のものです。
04/08/06 00:15ID:pj4rIK+schar str[20];
strcpy(str,"1位 = ");
strcpy(&str[11],"\n");
for(int i = 0;i<2;i++)
[
str[10] = '0' + highscore[i];
puts(str);
]
え?三桁!?
■ このスレッドは過去ログ倉庫に格納されています