ゲームプログラミング相談室
■ このスレッドは過去ログ倉庫に格納されています
0001プチ9627m
01/11/06 18:47ID:G6Fk/ND/駄スレ立てる前にココで聞きましょう。
■旧スレ(プログラミング技術板より)
○パート1
http://piza.2ch.net/tech/kako/969/969984472.html
○パート2
http://pc.2ch.net/test/read.cgi/tech/985540361
○パート3
http://pc.2ch.net/test/read.cgi/tech/1002894129/
0281名前は開発中のものです。
02/01/31 20:03ID:???どの部分のアルゴリズムかはっきりしてください
0282名前は開発中のものです。
02/01/31 20:09ID:???古典的な4方向しか向けない奴なら、今のスペックなら素直に奥から重ね書きしてっても
十分速度出るから、適当にやれば良いんじゃない?
昔は…って、そういう話じゃないか。
0283名前は開発中のものです。
02/01/31 20:32ID:???はいはい、たのちかったでちゅかぁ〜
そろそろおうちにかえりまちょ〜ね〜
0284名前は開発中のものです。
02/01/31 20:50ID:FKv9pcui0285名前は開発中のものです。
02/01/31 21:11ID:???0286名前は開発中のものです。
02/01/31 21:45ID:???0287名前は開発中のものです。
02/01/31 22:00ID:???>>258
環境とは?
ゲープロ以前の問題。ここで質問する資格なし。
0288209 ◆2sDz/Rq6
02/01/31 22:03ID:???そりゃ、一言いいたくなる気も分かるけどさ・・・。
オレモナー
0289名前は開発中のものです。
02/01/31 22:20ID:???0290名前は開発中のものです。
02/01/31 23:06ID:???0291280
02/02/01 00:21ID:SWmTp9d0以前こういった質問をプログラマーの方にさせて頂いたんですが
どの部分のアルゴリズムかって同じこと聞かれました。
どの部分のっていう以前に、まずどういう風に作ればいいのかがわかりません(汗
0292名前は開発中のものです。
02/02/01 00:26ID:6mOXvhF8芸術の基本は模倣にあり
0293名前は開発中のものです。
02/02/01 00:48ID:???>まずどういう風に作ればいいのかがわかりません
多分それは違う。
君の現状はおそらく、作り方のアイデアは頭の中にあるが
それが最適解であるかどうかを気にするあまり、実際に手を動かして
作り始めようとしていないだけ。何もしないうちに悩み停滞し助言を
求めている。
「実際に作ってみたが○○の結果に満足しない。どうすればいいか。」
という段階になるまでネットの回線を切ることを薦める。
0294名前は開発中のものです。
02/02/01 00:53ID:???単純なものから少しづつ作り始めてはどうか。
ttp://www.cmagazine.jp/books/recipe/
0296280
02/02/01 01:33ID:SWmTp9d0あああ…それを言われるとかなり辛いものが・・・(汗
HSPで簡単なRPGやアクション作れるぐらいです。
C言語をこれから触ろうという段階です。
なんか、板汚しちゃってすみません。
293さんが言うように、まだ僕は自分でやるべきことがたくさんあったようです。
皆様、ご親切にありがとうございました
0297名前は開発中のものです。
02/02/01 01:50ID:XFopPkPD0298名前は開発中のものです。
02/02/01 04:53ID:???0299名前は開発中のものです。
02/02/01 09:05ID:???・各頂点が互いの矩形内にあるか?
・辺同士が交差しているか?
どれか一つが真なら重なってる。
って風に普通の2Dポリゴン同士のあたり判定で良いんじゃない?
0300名前は開発中のものです。
02/02/01 10:23ID:???それだけできれば、すぐ作れそうだね。
とりあえず、ここに思いついたアルゴリズムを書いてみるってのは?
どこが駄目そうと思ったかも書き添えて。
0301209 ◆jUZhK5lw
02/02/01 11:23ID:???貴方頭大丈夫ですか。かわいそーに。知的後退が見られるようですが。みんなが見ている掲示板に
赤ちゃん言葉?プログラムしか勉強してこないとこうなるんですか?(憐
もしいいひとがいるなら、参考になるHPを教えてください。
0302名前は開発中のものです。
02/02/01 11:28ID:???0304名前は開発中のものです。
02/02/01 11:33ID:???そっとしておきなよ…
0305名前は開発中のものです。
02/02/01 13:45ID:???プログラマが高尚な仕事だと勘違いしてるタイプだな。
>132 :名前は開発中のものです。 :02/01/30 19:17 ID:???
>>>127
>>俺らが引けば納まるんでしょ? 多分。
>はいそうです頼むから逝っちゃって下さいあんたの勝ちだよ、ヨカータね。
>あ〜ウゼェ・・・スレタイトル見えないのかよ・・・
0306名前は開発中のものです。
02/02/01 13:56ID:???0307名前は開発中のものです。
02/02/01 14:11ID:6mOXvhF8( ´ー`)y─┛~~~
はい、次の方どぉぞ
0308名前は開発中のものです。
02/02/01 15:34ID:3FgmOISv検索したら車のギミックとプラモのギミックぐらいしかでてきませんでした。
0309名前は開発中のものです。
02/02/01 15:43ID:???(1)からくり。仕掛け。
(2)〔音〕 奇をてらった演奏。また,普通では出せないような音を用いた演奏。
( ´ー`)y─┛~~~
はい、次の方どぉぞ
0310名前は開発中のものです。
02/02/01 15:44ID:???ポリゴンキャラが拾ったアイテムを画面の奥から出てくるような感じで
画面端のアイテム欄に並べて行きたいんですけどスムーズに移動できません。
2D座標で計算すると、ポリゴンとの位置関係がおかしくなるし、
3Dにすると、最前面に表示していてもポリゴンが刺さって前面に来てしまいます。
0311名前は開発中のものです。
02/02/01 15:46ID:3FgmOISvゲームのギミックを処理してキャラを裸にしたいのですが可能なソフトはありますか?
服のデータだけ消して全身肌色にしたいのです。
0312名前は開発中のものです。
02/02/01 15:48ID:???( ´ー`)y─┛~~~
はい、次の方どぉぞ
0313名前は開発中のものです。
02/02/01 15:49ID:???0314名前は開発中のものです。
02/02/01 16:35ID:???>ゲームのギミックを処理してキャラを裸にしたい
多分それは違う。
君の現状はおそらく、キャラの服のデータだけ消すことで
君自身の股間のギミックを処理することができるということに過ぎない。
0315名前は開発中のものです。
02/02/01 16:39ID:???はい、次の方どぉぞ
0316名前は開発中のものです。
02/02/01 16:42ID:ilrgY29+0317名前は開発中のものです。
02/02/01 16:45ID:3FgmOISv>君自身の股間のギミックを処理することができるということに過ぎない。
最初は「はぁ?」と思いましたが考えたら激しく笑いました。
服のデータはどうやって消すのでしょうか?なにかソフトが必要なんですか?
0318名前は開発中のものです。
02/02/01 17:14ID:???0319名前は開発中のものです。
02/02/01 19:50ID:???ここは「ゲームプログラミング相談室」なのよ。
頼むからもう他所に行ってくれ。返答もしないでくれ。な。
0320名前は開発中のものです。
02/02/01 23:05ID:yaKNvp5tこうゆう関数が作りたいんです。
Vector TurnVector(Vector source, Vector target, float percent);
sourceベクトルをtargetベクトルにpercentの割合だけ近づけた(回転させた)
ベクトルを返す関数です。なるべく高速なアルゴリズムにしたいのですが、
どうすればいいのでしょうか?
0321名前は開発中のものです。
02/02/01 23:11ID:???0<=percent<=1
[return vector] = (1 - percent) * [source] + percent * [target]
をSSEとか使って高速化したいって話か?
0322320
02/02/01 23:21ID:yaKNvp5t説明不足だったので補足します。
sourceとtargetは長さ1の単位ベクトルで、戻り値も単位ベクトルに
したいんです。つまりsourceからtargetへ回転させる必要があり、
percentでその角度の割合を調整する感じです。
(Vectorはx、y、zのfloatの構造体です。)
0323名前は開発中のものです。
02/02/01 23:34ID:???普通に外積+内積+4元数使った方法は分かってて、それよりも
高速にしたいって事かな?
0324名前は開発中のものです。
02/02/01 23:40ID:???GameProgrammingGemsに載ってたやつだと駄目なの?
0325320
02/02/01 23:45ID:yaKNvp5t自分で考えられる方法は、それぞれのベクトルのyawとpitchを求めて、
角度を計算してベクトルを割り出す、って感じです。
これより速い方法なら大歓迎です。
>>324
どんな内容でした?
0328323
02/02/02 00:25ID:???(4元数)を作って回すってやつ。素のままやると誤差が結構大変な
ので324の言ってる記事みたいな方法が重要になってくる。
4元数についてここで全部説明するのは大変なので、
ttp://www.cc.rim.or.jp/~devilman/3dCoding/3dCoding.html
でもどうぞ。
あと、
ttp://www.satori.org/gamegems/files.htm
の Chapter 2: Mathematics の中の 10Melax フォルダに 324 の
言ってる記事のソースがある。
0330名前は開発中のものです。
02/02/02 00:57ID:i49zbV6rはい、次の方どぉぞ
0331名前は開発中のものです。
02/02/02 00:59ID:???素直にGameProgrammingGems買っとけ。
0332名前は開発中のものです。
02/02/02 01:10ID:???0333名前は開発中のものです。
02/02/02 01:19ID:???12000円ぐらい学生でも何ヶ月か節約すれば十分たまるだろ。
それでも高いと思うなら半額の原書買っとけ。
英語が読めないならプログラマなんてやめとけ。
0334332=323
02/02/02 01:31ID:???もし彼が中・高学生とかだったら、他にも使いたいこといっぱいあるし
そこまで要求するのは可愛そうってもんだよ。
#といいつつ俺は高校生の癖にGem2まで買っちまったがw
0335名前は開発中のものです。
02/02/02 02:01ID:???じゃあ本屋で、該当部分だけ立ち読みしとけ。
0336名前は開発中のものです。
02/02/02 02:12ID:???>#といいつつ俺は高校生の癖にGem2まで買っちまったがw
俺なんか高校生の癖に
「Game Programming Gems 1,2」
「Real-Time Rendering」
「Advanced Animation and Rendering Techniques」
「3D Game Engine Degine」
「Computer Graphics Principles and Practice」
とか買い漁ってます。(藁
洋書には素晴らしい本が多くて幸せです。
0337アフォクサ..
02/02/02 02:31ID:???はい、次の方どぉぞ
0338名前は開発中のものです。
02/02/02 03:25ID:???敵の攻撃、移動パターンで悩んでいます。
特に移動パターンで悩んでいて、自分の思ったように動いてくれません・・・。
基本的な Z といったパターンはどのように動かしたらいいですか?
0339名前は開発中のものです。
02/02/02 04:11ID:???敵の動き用のツールを作って、そこで移動パターンを作るのはどうですか?
0340名前は開発中のものです。
02/02/02 04:23ID:???スクリプトを作る時間が無かったので埋め込み型にしようとしたのですが・・・。
あとFlipのタイミングが合わず、敵の残像が残ってしまう・・・鬱だ逝こう
0341質問はもう少し煮詰めてからお願いします
02/02/02 04:28ID:???はい、次の方どぉぞ
0342名前は開発中のものです。
02/02/02 05:26ID:???今現在、
どういう実装にしていて、
その結果、どう思ったように動いていないのか
具体的に書いてみ。(ソース出せるなら、それでも良いけど)
0343名前は開発中のものです。
02/02/02 05:31ID:???03448945
02/02/02 05:44ID:4W2oJZ3gこれなんかいいと思うのだが……‥‥・・
「いっせー」
/■\ /■\
( ・∀・) ( ´∀`)
⊂ つ⊂ つ
.人 Y 人 Y
し'(_) し'(_)
「のー」
/■\ /■\
(・∀・ ) (´∀` )
⊂、 つ⊂、 つ
Y 人 Y 人
(_)'J (_)'J
「で」
/■\ /■\
( ・∀・ ) ( ´∀` )
( つ⊂ ) ( つ⊂ )
ヽ ( ノ ヽ ( ノ
(_)し' (_)し'
「あげ!!」
/■\ /■\
∩ ・∀・)∩∩ ´∀`)∩
〉 _ノ 〉 _ノ
ノ ノ ノ ノ ノ ノ
し´(_) し´(_)
0345338
02/02/02 15:31ID:uCuDAOXO今現在の状況は・・・。
まず、弾の出し方ですが弾構造体をTAMA_MAX(17)個つくり、その中に
x、y、bmpdata、Activeを作って、それをポインタ参照でActiveじゃない
方からActiveにしています。Activeがfalseになる時は
640+弾サイズになる時です。
そこまではよかったのですが、敵の動かし方で詰まってしましました。
敵キャラデータを構造体(x,y,bmp)にまとめてx,yを変化させていけば
いいと思ったのですが、、、うまく動かなくて・・・。
普通にfor文でまわしたらFlipのタイミングが合わなくて残像が残る。
といった状況です(汗
0346≠342
02/02/02 16:53ID:???>Flipのタイミングが合わなくて残像が残る
よくわからん。 描画と敵の動きが別のスレッドなの?
適当にリンク
www.hh.iij4u.or.jp/~peto/Games/games_top.html
見当違いだったらすまん。
0347名前は開発中のものです。
02/02/02 17:14ID:???>>345
Zに移動だったら、まず変数を1個増やす(例:Stat)
右に移動(Stat==0)→適当なところでStat++
→左下に移動(Stat==1)→適当なところでStat++
→右に移動(Stat==2)→適当なところで殺す
以上、バータリー的に行け
0349名前は開発中のものです。
02/02/03 02:06ID:???0350名前は開発中のものです。
02/02/03 03:45ID:WfOFv5LQ英語サイトのどっかでゲーム用デザインパターンをまとめてあった
サイトがあったと思うのですがどこかわかる方いませんでしょうか?
ブックマークがなくなったので…。
0351名前は開発中のものです。
02/02/03 06:22ID:???0352名前は開発中のものです。
02/02/03 09:52ID:???0353名前は開発中のものです。
02/02/03 11:14ID:???ここ?
0354妄想野郎
02/02/03 21:48ID:???0355209 ◆jUZhK5lw
02/02/05 14:01ID:???敵を動かすのはどうしたらよいのでしょうか?
簡単な2DSTGでお願い致します。
0356名前は開発中のものです。
02/02/05 14:19ID:???>>256 のリンク先のソースは読んだか?
0357209 ◆jUZhK5lw
02/02/05 15:02ID:???タスクとかスプライトとか。
0358名前は開発中のものです。
02/02/05 15:49ID:???スプライト云々は DirectX Graphics のヘルプ読め、タスクなんかは tsk.cpp, h/tsk.h
に実装があるだろ。
0359名前は開発中のものです。
02/02/05 19:25ID:???つーかマルチポストしてんじゃねぇよカスが
0360209 ◆2sDz/Rq6
02/02/06 00:46ID:???0361名前は開発中のものです。
02/02/07 15:26ID:???を参考にしてC++でタスクを使っています。新しいタスクを作るときに
Cならば
TCB* t = task_make(pri,func)のようにすれば、
task_makeの実装によってあらかじめmallocしておいたヒープを渡せますが、
C++では
TCB_HOGE* t = new TCB_HOGE(パラメータ);
task->add(t)//TCB_HOGEは基本クラスTCB_BASEを継承しているので代入できる
のようになって毎回new を呼ぶことになってしまいます。
これを解決するにはどうすればいいでしょうか?
それとも気にするほどのことではないのでしょうか
0362名前は開発中のものです。
02/02/07 19:39ID:???あなたに指図される筋合いはありません。
何の権限があってそのような事を言うのですか?
0363名前は開発中のものです。
02/02/07 20:36ID:???1. placement new を使う
2. operator new を定義して、自前でメモリ管理をする
あと STL 使っている場合テンプレートパラメタで渡す allocator にも手を入れないと、
完全にはメモリを管理下にはおけない。ただ、そこまでやる意味があるかというと、
俺は無いと思う。
(仕事でメモリの制限が厳しいハードを対象にプログラミングしてる場合を除く)
0364名前は開発中のものです。
02/02/07 22:46ID:???そもそも C++ なら、タスク用の構造体を用意せずに
struct Task {
virtual void Update(unsgned tick) = 0;
};
とでもインターフェースを用意してやって、Task を継承したクラスを、自機/弾/敵機
など必要なだけ用意。あとはメインループの中で
using namespace boost;
using namespace std;
list<shared_ptr<Task> > taskList;
for_each(taskList.begin(), taskList.end(), bind(&Task::Update, _1, tick);
とループをまわせば終わりって気がする。
実際には
taskList への新規タスクの登録/削除のタイミングに関しては気をつける必要が
あるけど(特に for_each 使う場合には、ループの最中に削除すると iterator が不
正な値を指すことになる)
taskList への挿入削除時に動的なメモリ確保/開放処理が発生するので、メモ
リ不足が発生しては困る環境では allocator を自作するか、list の変わりになる
コンテナを自前で実装する。
タスクの新規作成/削除時に動的なメモリ確保/開放処理が入るので、ヒープの
断片化が気になる場合には Task::new, Task::delete を自前で用意する。
とか細かい注意点があるけど、そんなものでしょ。
0365名前は開発中のものです。
02/02/08 10:27ID:???0366361
02/02/08 13:50ID:???>>363
operator new はクラスごとに書かなくちゃいけないのかな?
とりあえず何回もnewされるクラスに使ってみて、パフォーマンス
を比べてから、効果が大きいようであれば他のクラスにも使ってみます。
>>364
うう、関数オブジェクトだとかそこら辺は勉強してないのであまりわからないです
もうしわけない。想像していた以上にSTL周りのことは重要になってきそうですね。
Effective STLでも読んでみることにします。
0367209 ◆jUZhK5lw
02/02/08 15:11ID:???0368名前は開発中のものです。
02/02/10 11:26ID:tpvVEAK8みんなアルゴリズムってどうやって勉強してるんでしょうか?
0369名前は開発中のものです。
02/02/10 12:05ID:???何か理由があるのでしょうか?
0370名前は開発中のものです。
02/02/10 13:39ID:???マルチタスクOSでの行儀がなってないとだめということだよね。
無限ループみたいな組み方すると
バックグラウンドのプロセスになかなか処理がいかなくなる。
そうするといろんな弊害が起きることが考えられる。
0371名前は開発中のものです。
02/02/10 14:24ID:???最初から他のアプリケーションと並行して動かすことを前提としないゲームなら、
それでも構わないと思うけどね。フルスクリーン表示なら全然問題ないでしょ。
ただ、ゲームをウィンドウモードで表示しながら Web で検索しようとか思うと、ちょっ
と嫌かも。
0372369
02/02/10 20:12ID:???ありがとうございます。
0373名前は開発中のものです。
02/02/10 23:16ID:???ソフトバンクの「遊びのレシピ」って本は
各種ゲームのアルゴリズムとデータ構造を解説してる。
基礎的で単純なものばかりだけど,行き詰まってる人にはいいかも。
勉強法だけど,私は他のゲームを見てアルゴリズムを想像してるだけ。
0374名前は開発中のものです。
02/02/11 10:28ID:???これがくせになってもう病気。。
GT3見ても何見てもだんだんフローチャートに頭の中になっていく…
0375名前は開発中のものです。
02/02/16 14:06ID:???ワシも同じページ見ながらC++でタスク作ったことがある。
そんときは363と全く同じやり方に行き着いたよ。
メモリ管理は手を抜いて固定サイズメモリ領域の配列に
したけど。
いちいち各クラスのoperatow newを用意する必要はなくて、
タスク基底クラスのoperator newだけ自前で用意して、継承
させてやればOKOK。
関数ポインタの扱いがC++だと厄介なので、TCBの内部では
statusだけ保持して、別途用意した関数ポインタテーブルを
引くようにした方が楽だと思う。
ttp://www.emit.jp/prog/prog_cpp0.html
この辺参照。
0376名前は開発中のものです。
02/02/17 10:19ID:???0377名前は開発中のものです。
02/02/17 20:54ID:???> 関数ポインタの扱いがC++だと厄介
直接メンバ関数へのポインタを使わずに、多態を使えば良い。細かいことは
コンパイラが面倒見てくれるぞ。
0378名前は開発中のものです。
02/02/18 02:33ID:???固定から切り出しのソースコードが乗っているホームページ有りましたらキボンヌ。
0379名前は開発中のものです。
02/02/18 03:50ID:???operator new() の使い方が分からんの、それとも static なブロックからデータを
切り出す方法がわからない?
C++ chunk operator new あたりで検索かけて見つけたページ
http://www.relisoft.com/book/tech/9new.html
0380名前は開発中のものです。
02/02/18 10:32ID:???■ このスレッドは過去ログ倉庫に格納されています