トップページgamedev
981コメント424KB

ゲームプログラミング相談室【Part6】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/03/06 01:25ID:d2e/eEyg
ゲームプログラミング全般の質問スレッド。
扱う話題のダイナミックレンジはやや広め。包容力高め。
他の初心者質問スレとの棲み分けを探りつつ
これからもマターリと活用しておくれ。
 
■過去スレ
【Part2】http://pc.2ch.net/tech/kako/985/985540361.html
【Part3】http://pc.2ch.net/tech/kako/1002/10028/1002894129.html
【Part4】http://game.2ch.net/gamedev/kako/1005/10050/1005040025.html
【Part5】http://pc2.2ch.net/test/read.cgi/gamedev/1036410116/
■関連スレなど
>>2-5
0542名前は開発中のものです。05/02/18 08:38:07ID:I2CSa8I2
普通は衝突判定用の簡易オブジェクトを作るもんだと思うが…
0543名前は開発中のものです。05/02/18 09:00:28ID:NdgimZZ6
・でもそれだとメッシュによって精度が落ちちゃうんですよ。
・勉強という事で何かいい方法がないか知りたいんですよ。(;´・ω・`)
0544名前は開発中のものです。05/02/18 09:11:40ID:5R+gyy4l
簡易オブジェクトでぶつかってるやつだけ詳細にチェック
0545名前は開発中のものです。05/02/18 15:37:57ID:JUukIzID
Lockせずにnewしてそこに置いとけばいいんじゃない?
0546名前は開発中のものです。05/02/18 20:15:52ID:SyUoLxbM
>>544
それも思いつきました。
でもたくさんのメッシュが一度にぶつかるとやっぱりきついかな?って思いまして。

>>545
むむ!?(;`・ω・´)もっと詳しく説明やここよめアホってなサイトお願いします!
0547名前は開発中のものです。05/02/19 06:29:08ID:UXB8Jg0C
>>546
たくさんのメッシュを一度にぶつけないでください(マジレス)
衝突判定に銀の弾丸はないのです
0548名前は開発中のものです。05/02/19 06:41:03ID:O2/kCUDX
>>546
当たってるかどうかだけなら重くはならん。
ほかに何か求めたいのか?角度とか。
0549名前は開発中のものです。05/02/19 07:07:27ID:j8BXkcXy
>>548
角度や摩擦など求める予定ですが、その前にLockして判定する以外
の方法を教えてくれたらと思っています。

簡易オブジェでぶつかっているやつだけLockしてフルチェックさせる方法でも
たくさんのオブジェクトが密集してしまうと結局は簡易オブジェクトなしでフルチェックする
場合とあんまり変わらず処理に影響してしまうので。
0550名前は開発中のものです。05/02/19 07:08:58ID:T6zgD8Th
4つぐらい重なったら核爆発が起きるようにしてはどうか。
0551名前は開発中のものです。05/02/20 10:22:20ID:Mw8d2O0L
>>550
えぇ!そんなぁ・・・。(´Д`;)
0552名前は開発中のものです。05/02/21 18:17:21ID:b2LRiS8s
>>549
ゲームが作りたいなら全メッシュ衝突判定なんて考えない。簡易オブジェクトを使う。
それでも超重くなるとしたら設計が悪い。たくさんのオブジェクトが密集しまくる設計にしないでください。
0553名前は開発中のものです。05/02/23 00:55:24ID:4mRmpQC+
D3DXVec3TransformCoordをヘルプで読んだのですがいまいち分かりません。
これはグローバルな座標変数をローカルな座標変数に変換するのですか?
あと似たような名前の
D3DXVec3Transformとの違いもD3DXVec3TransformCoord が理解できないため分かりません。
どなたか教えてください。お願いします。
0554名前は開発中のものです。05/02/23 05:48:21ID:lVuNeIQF
以下の関数はDirectXヘルプを読んで、私がコーディングしたものです。
これらを見ても関数の意味が分からないようでしたら、ベクトルと行列の基礎をしっかり勉強してから再挑戦することをお勧めします。

VECTOR4F* D3DXVec3Transform
( VECTOR4F *pOut, const VECTOR3F *pV, const MATRIX44F *pM )
{
pOut->x = pV->x * pM->_11 + pV->y * pM->_21 + pV->z * pM->_31 + pM->_41;
pOut->y = pV->x * pM->_12 + pV->y * pM->_22 + pV->z * pM->_32 + pM->_42;
pOut->z = pV->x * pM->_13 + pV->y * pM->_23 + pV->z * pM->_33 + pM->_43;
pOut->w = pV->x * pM->_14 + pV->y * pM->_24 + pV->z * pM->_34 + pM->_44;
return pOut;
}
0555名前は開発中のものです。05/02/23 05:49:38ID:lVuNeIQF
VECTOR3F* D3DXVec3TransformCoord
( VECTOR3F *pOut, const VECTOR3F *pV, const MATRIX44F *pM )
{
VECTOR3F ret;
float w;
w = pV->x * pM->_14 + pV->y * pM->_24 + pV->z * pM->_34 + pM->_44;
if(w) w = 1.f / w;
ret.x = (pV->x * pM->_11 + pV->y * pM->_21 + pV->z * pM->_31 + pM->_41) * w;
ret.y = (pV->x * pM->_12 + pV->y * pM->_22 + pV->z * pM->_32 + pM->_42) * w;
ret.z = (pV->x * pM->_13 + pV->y * pM->_23 + pV->z * pM->_33 + pM->_43) * w;
*pOut = ret;
return pOut;
}
VECTOR3F* D3DXVec3TransformNormal
( VECTOR3F *pOut, const VECTOR3F *pV, const MATRIX44F *pM )
{
VECTOR3F ret;
ret.x = (pV->x * pM->_11 + pV->y * pM->_21 + pV->z * pM->_31);
ret.y = (pV->x * pM->_12 + pV->y * pM->_22 + pV->z * pM->_32);
ret.z = (pV->x * pM->_13 + pV->y * pM->_23 + pV->z * pM->_33);
*pOut = ret;
return pOut;
}
0556名前は開発中のものです。05/02/23 05:53:24ID:lVuNeIQF
すいません型を以下のように直しておいてください。

VECTOR4F → D3DXVECTOR4
VECTOR3F → D3DXVECTOR3
MATRIX44F → D3DXMATRIX
0557名前は開発中のものです。05/02/23 07:07:45ID:5jBEcMCA
なんと独りよがりな
0558名前は開発中のものです。05/02/23 14:56:55ID:9pm4uh9q
D3DXVec3TransformとD3DXVec3TransformCoordの違いが多分分かりました。
055955405/02/24 17:48:31ID:9BALKx7J
>557
少しでも質問者の疑問に答えられれば良いなと思って書いたレスを、「なんと独りよがりな」という言葉で一蹴ですか。
お前みたいなやつがいると正直やる気を無くすよ。
0560名前は開発中のものです。05/02/25 03:35:38ID:8xpRQllj
なんでそこでキレるかなぁ〜
0561名前は開発中のものです。05/03/06 20:52:45ID:+8c0xIHX
機嫌悪かったんだろ
0562名前は開発中のものです。05/03/15 00:30:34ID:2caYpl3H
あの日だったんだろ
0563名前は開発中のものです。05/03/15 17:25:12ID:l/6TEvIC
(*ノノ)
0564名前は開発中のものです。05/03/19 22:25:07ID:zqD1MdPq
大手ゲームメーカーでプログラマやってます。
このスレ、レベルひくっ(ぷっ)笑えてきた。

プログラムなんかやめちゃえ!
0565名前は開発中のものです。05/03/19 22:53:19ID:OqPAYq45
最初からレベルが高い人など居ませんよ。
くだらないことを書き込まないように。
0566名前は開発中のものです。05/03/20 05:27:02ID:oSFOPQ/k
>>564
喪前は
人間やめちゃえ!!
0567名前は開発中のものです。05/03/20 05:28:52ID:oSFOPQ/k
>>564
無能な上司の下で
デスマーチ頑張ってねwww
0568名前は開発中のものです。2005/03/29(火) 09:19:19ID:NLg6bdst
>>564
大手ゲームメーカーって言ってるところが笑えるな
腕に自信が無いんだろうな
0569名前は開発中のものです。2005/03/29(火) 19:21:00ID:UxPYIf8b
「大手でプログラマ」ねぇ…。
ま、下請けでも強弁すれば「大手でプログラマ」と言い張れないこともないし、
内部事情を知らない厨房の嘘だと決め付けるのもアレかねぇ。
0570名前は開発中のものです。皇紀2665/04/01(金) 11:07:39ID:2DNa+8SZ
大手町にある会社の社員だな。
0571名前は開発中のものです。2005/05/10(火) 22:31:50ID:qbemgZao
Ruby/SDLでアクションRPG作ってるんですが、
敵の動きを一つずつRubyのマルチスレッド機能で処理するのは良くないですか?
羽虫みたいのが画面一杯に湧いてくるのを蹴散らす場面があるので、弾幕STG並の負荷になると思われます
動作環境はWindowsXPが動いてるメーカー製PCなら例外なく動くようにしたいです
0572名前は開発中のものです。2005/05/10(火) 23:03:32ID:xTojRoxk
>>571
ゲームに限っては、の話ですが。
マルチスレッドよる処理は、そうする必然性がない限り、お勧めしません。

特にあなたが提案するケースの場合、環境によっては
「自機の処理が行われないまま一つの弾丸にばかり処理権が連続して行く」
事態が、最悪、想定されます。
すると、DIOの世界(ザ・ワールド)に攻撃されたかのような
理不尽な死が体験できることになります。
やめたほうが無難ですよ。

また、世界(ザ・ワールド)現象を回避するために
各キャラの処理一回につき他のスレッドと同期を取った場合、効率は最悪です。
普通にシングルスレッドで処理した方がよっぽど効率的です。

テクに走りたい気持ちはとっても理解する。
そう思っていた時期が俺にもありました。
でも、シンプルかつ愚直に作るのが最善の道であることも多いのですよ。
0573名前は開発中のものです。2005/05/11(水) 08:43:01ID:6LEYouSH
なるほど
ありがとうございます
シングルタスクでやるっていうと
タスクコントロールブロックとかいうやつですよね
初心者向けに解説してある本とかサイトとかがあれば教えてもらえませんか
やね氏の本で扱ってるっていうのを聞いて(プロフェッショナルの続編だったかな)立ち読みしてみましたが
あれだとよくわからんかったです
0574名前は開発中のものです。2005/05/11(水) 12:26:25ID:KXICTm7E
>>573
別にそんなたいそうなものじゃなくても
考え方の基本を1フレームずつの処理に変えればいいだけ。
0575名前は開発中のものです。2005/05/12(木) 20:29:44ID:aQoHjmWQ
SWFファイルの仕様について
日本語で詳しく説明している書籍かサイトはありませんか
0576名前は開発中のものです。2005/05/24(火) 16:19:08ID:v7WpxIBq
液晶を使っていてもティアリングみたいなのが出るんだけど、
これを回避するにはどういうコードを書けばいいんですか?
0577名前は開発中のものです。2005/05/24(火) 17:14:36ID:NGCTpyCN
VSYNCを待て。
D3DSWAPEFFECT_COPY_VSYNC?
それともここらへんが参考になるか?
ttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=28142
0578名前は開発中のものです。2005/08/12(金) 14:16:54ID:CaToi4lw
オブジェクト指向勉強中なんですが、インスタンス生成とかカプセル化とかだるい・・・
ゲーム製作には構造化の方が向いている気がするんですが。どう思います?
0579名前は開発中のものです。2005/08/12(金) 16:50:57ID:+xjZsnhE
オブジェクトは構造化の発展です
0580名前は開発中のものです。2005/08/24(水) 09:49:40ID:NGiAd0T2
カプセル化なんか遥か昔からあった概念だもんな。
0581名前は開発中のものです。2005/08/26(金) 19:17:31ID:vVPZkYc6
ゲームプログラミングに興味を持ったのですが全くの素人でやるべきことが多すぎて何から手を出していいかよくわかりません。
数学や物理の勉強から始めた方がいいのでしょうか?
0582名前は開発中のものです。2005/08/26(金) 19:29:34ID:6D6lM3q9
英語やっとけ
物理なんて当面は高校卒業程度の知識で十分だ
0583名前は開発中のものです。2005/08/26(金) 19:33:27ID:vVPZkYc6
>>582
高校の頃は文系だったので科学はやってましたが物理は全くやってないんです
0584名前は開発中のものです。2005/08/26(金) 21:35:57ID:hMfPlAPs
物理なんていらぬ。
算数やっとこう。それさえできれば後は勘。
0585名前は開発中のものです。2005/08/26(金) 21:46:40ID:D8UBXRK8
まずはプログラミングを楽しむことから始めるんだ!!m9('∀`)
0586名前は開発中のものです。2005/08/26(金) 21:57:23ID:q0ihkIeI
まー最初はプログラミング自体がパズルみたいなもんだしな。
0587名前は開発中のものです。2005/08/27(土) 00:57:00ID:4R6gqBFc
楽しむってそんなので大丈夫なんですか?
俺ド素人だし、しかも仕事にしようと思ったらそんな生半可な気持ちじゃ・・・・
0588名前は開発中のものです。2005/08/27(土) 01:15:27ID:ZquWVtNI
特に目的がねーんならプログラミングそのものを目的にするしかねーってこった
ゲームプログラミングなんて漠然とし過ぎだって
0589名前は開発中のものです。2005/08/27(土) 01:18:02ID:4R6gqBFc
やっぱやりたいジャンルって最初に絞った方がいいんですかね
アクションとかRPGとか
0590名前は開発中のものです。2005/08/27(土) 03:15:29ID:+qa4qoic
ジャンルはあんま関係ねーな。
つか、仕事にするんじゃこんなとこで聞くなよ
それっぽい定番の本買って、そこから参考文献のリンクやら必要な資料を辿って必要なことから身につけろ。
0591名前は開発中のものです。2005/08/27(土) 03:20:16ID:4R6gqBFc
すみません、ありがとうございました
0592名無しさん@そうだ選挙に行こう2005/09/11(日) 01:44:55ID:VkAkPVlE
DirectXのSDK落とそうとしたら
ver9しかないみたいなんだけど、
ひょっとしてもう8は
CD付きの古本とか探すしかないですか?

98SEだと9のSDKが使えないらしいんで…
(入門サイトに2000以上って書いてた)
0593名無しさん@そうだ選挙に行こう2005/09/11(日) 11:35:06ID:2BgVInhk
>>592

つMicrosoft download
0594名無しさん@そうだ選挙に行こう2005/09/11(日) 14:27:23ID:3zrye/oe
>>593
ここですよね…
ttp://www.microsoft.com/downloads/results.aspx?NextOrPrevClause=6%7c%2b6562&
productID=9C954C37-1ED1-4846-8A7D-85FC422D1388&CategoryID=&freetext=&
DisplayLang=en&DisplayEnglishAlso=&sortCriteria=popularity&startDate=&period=0&
type=&sortOrder=ascending&nr=20

何遍見ても8本体が見つからない_M○
ランタイムやupデータはあるのに…
探し方悪いのかな
0595名前は開発中のものです。2005/09/19(月) 23:40:13ID:92cy+6KO
9のインストールも出来ないのかな?
8は9の中にあるんだけどな。
0596名前は開発中のものです。2005/11/30(水) 18:14:19ID:NRCIXxVf
今大学でC言語やってるんだが、C++との互換性はどんなもんなんだ?
CをマスターしていればC++のマスターにどれくらい労力がかかるとか。
0597名前は開発中のものです。2005/11/30(水) 20:18:12ID:/kKwaLK2
互換性は無い。
しかし構文などは似ている部分が多いので、
C++を扱ってた人ならすぐ修得できるよ。
05985962005/11/30(水) 20:46:37ID:NRCIXxVf
>>597

なるほど。ありがとう
ついでに聞いておきたいんだが、そこから派生してWindowsプログラミングってのはやっぱり難しいんだろうか?
今はCでのいわゆるコンソールアプリってのを学んでいる訳なんだが……。
0599名前は開発中のものです。2005/11/30(水) 22:15:01ID:3MglgmXZ
>>596
いやいや、互換性はあるから。
基本的に、C++ は C に仕様を追加したものだから。
そりゃ、細かいところではルールが違うとかはあるけどさ。

C++ のソースコード内に C のコードを書くことはできるよ。
だから…

 - 最初は C で書いて、後々 C++ に書き直す
 - C++ で書いていって、どうしても分からない場所を C で書く

っていう勉強方法が使えるよ。
0600名前は開発中のものです。2005/11/30(水) 22:18:26ID:3MglgmXZ
連投スマンです…

> そこから派生してWindowsプログラミングってのはやっぱり難しいんだろうか?

Windows の API は C ベース。
なので、最低限 C のコードを書ける程度の力は必要です。

ともあれ、「猫でも分かるプログラミング」を見て勉強してみることをお勧めします。
06015962005/11/30(水) 22:32:57ID:NRCIXxVf
>>596-600
詳しくトンクス。
「猫でも分かる〜」は一応見てみた。つーか今日の課題やってるときもお世話に(ry
0602名前は開発中のものです。2005/12/25(日) 18:32:09ID:QPxHAtwC
最近 Game Programming Gems を読みはじめたのですが、
HandleクラスやHandleMgrクラス内に出てくるマジックナンバーとは、一体どのような役割をする為のものなのでしょうか?
本を読んでもソースを読んでも、全く何のために存在するものなのか理解できません。
初歩的な質問かもしれませんが、マジックナンバーとは何なのか、解る方教えて下さい。お願いいたします。
0603名前は開発中のものです。2005/12/25(日) 21:16:44ID:10j12RX3
>>602
Handle のマジックナンバーは、
ハンドルが指すオブジェクトを区別するためのID(識別値)。

詳しく説明すると、
HandleMgr はメモリを節約するためにデータ配列の同じ位置を何度も再利用する。
そのため、ハンドルを参照したとき、それが指す位置のオブジェクトが入れ替わっている可能性がある。
これを判断するのに必要なのがマジックナンバー(=ID)。

例えば、下の様なデータ配列があるとする(数字はID)。
データ { 1, 2, 3 }

このとき 0 番目のハンドルを取得する。
ハンドルA { index=0, ID=1 }

次にIDが 1 のオブジェクトをデータから削除すると、その位置は空になる。
データ { 0, 2, 3 }  // 0 番目に 0 が入った

次にオブジェクトをデータに追加すると新しい ID が割り振られ、空の位置に入る。
データ { 5, 2, 3 }  //  0 番目に 5 が入った

このとき、さっき作ったハンドルAを参照してみる。
データの ハンドルA.index 位置の ID は 5。
ハンドルA.ID は 1。
ID が一致しないので、ハンドルは無効になった(オブジェクトは削除された)と分かる。
逆に ID が一致した場合は、ハンドルが指す位置のオブジェクトは存在していると分かる。
06046032005/12/25(日) 21:17:35ID:10j12RX3
>>602
とまあこんな感じに、マジックナンバーは、ハンドルの指す位置のオブジェクトが、
ハンドル取得時と同じオブジェクトであるかどうかの判定に使われている。

これで分かんなかったら、
上の例と同じケースをマジックナンバーを使わずにやった場合を考えてみると良いよ。
06056022005/12/26(月) 03:37:22ID:XvOO4Glh
>>603
返信ありがとうございます。
非常に丁寧に解凍して頂いてありがたいです。
マジックナンバーが識別子であると言うことを理解し、順を追って考えたら理解することが出来ました。
0606名前は開発中のものです。2005/12/30(金) 22:08:40ID:0oupnfaC

スーパーマリオワールドのマップが自分で作れるエディタ
http://www.pankura.org/archives/005368.php

これみたいに、アニメのプレビューができるマップエディタを作りたいです。
アニメ部分のプレビューの実装でつまづいてます。
どんな実装にすればよいか情報いただけるとありがたいです。

0607名前は開発中のものです。2005/12/30(金) 23:30:17ID:aGBuMIZJ
仕様を固める前に実装を聞くなよ。

struct _anime_chr {
 int number;
 int max;
 int **anime;
} anime_chr[MAP_PATTERN_MAX];

int map[MAP_Y_MAX][MAP_X_MAX];

int main(void) {
 int i, x, y;
 while (1) {
  for (i = 0; i < MAP_PATTERN_MAX; i++) {
   _anime_chr *anime = anime_chr[i];
   if (++anime->number > anime->max) {
    anime->number = 0;
   }
   /* マップチップをタイルに転送する */
   TransferChipToTile(i, anime->anime, anime->number);
  }
  for (y = 0; y < MAP_Y_MAX; y++) {
   for (x = 0; x < MAP_X_MAX; x++) {
    /* マップ番号を元に、タイルをVRAMに転送する */
    TransferTileToVram(x, y, map[y][x]);
   }
  }
 }
}

こんな感じでどうだ。中身は自分で考えて!
0608名前は開発中のものです。2006/01/14(土) 12:30:32ID:pizx291y
スクリプトの実装方法のサンプルをください
言語は問いません
0609名前は開発中のものです。2006/01/14(土) 12:36:40ID:p1M3DQqd
ほらよ。
http://jp2.php.net/get/php-5.1.2.tar.bz2/from/jp.php.net/mirror
0610名前は開発中のものです。2006/01/14(土) 12:40:01ID:ldillV2z
JavaScript or PHP についてなら、多少教えれると思います。

スクリプトを実装して何をしたいかを、教えてもらえれば
サンプルを載せま〜す。
0611名前は開発中のものです。2006/01/14(土) 14:12:50ID:ENjm6BLu
PHP風のスクリプトってないのかな。
<?= ?>があれば楽にノベルが作れそう。
0612名前は開発中のものです。2006/01/14(土) 14:21:04ID:p1M3DQqd
http://jp2.php.net/get/php-5.1.2.tar.bz2/from/jp.php.net/mirror
だからこれを使えよ。
自分のプログラムに取り込むことも出来るし、拡張も出来る。
何が不満なんだ?
0613名前は開発中のものです。2006/01/14(土) 15:00:41ID:ENjm6BLu
外部プログラムからは使いにくいんじゃないの?
0614名前は開発中のものです。2006/01/14(土) 15:20:52ID:p1M3DQqd
使いもしないうちから使いにくいって、あまりに愚かすぎて話にならない。
0615名前は開発中のものです。2006/01/14(土) 15:43:22ID:FTUE3moY
で、phpはDLL化などして相手にPHPをインストールさせずにC言語から呼べるのか?
0616名前は開発中のものです。2006/01/14(土) 15:52:59ID:IKOpDFff
Luaは? 組み込み用途に特化してるからライブラリ感覚で使えるよ。
コア部だけなら100k切るし。
0617名前は開発中のものです。2006/01/14(土) 16:24:39ID:9Bbt7+hj
何を与えても、なんだかんだ言い訳して使わないに決まってる。
0618名前は開発中のものです。2006/01/14(土) 18:07:00ID:p1M3DQqd
>>615
DLL化すらする必用もなくプログラムに組み込める。
ソースのリンクまで張ってあるのに、なんでその程度のことすら確認しないんだろう。
0619名前は開発中のものです。2006/01/14(土) 19:32:16ID:XGcvBkdj
ECMAScriptやLuaを組み込みスクリプトにするってのはよく聞くけど
PHPを使うってのは聞いたことないな
0620名前は開発中のものです。2006/01/14(土) 19:43:15ID:j0Ue+PIM
猫でもわかるゲームプログラミングってどうよ?
サウンドは、MIDINのストリーム再生とかやってるわけ?
0621名前は開発中のものです。2006/01/14(土) 20:40:32ID:ENjm6BLu
>>618
えー、本当に?
PHP側のソース変更なしで出来るなら、もっと使われてると思うけどなぁ。
0622名前は開発中のものです。2006/01/14(土) 21:57:58ID:zrpnKi1a
php_embed_shutdown(ぬるぽ);..._〆(゜▽゜*)
0623名前は開発中のものです。2006/01/17(火) 17:27:10ID:5EkVe52d
ttp://www.cbook24.com/bm_detail.asp?sku=4797332956

この本ってどうかな。
というかまだ出てないんだけど。
買うか激しく迷ってる。
0624名前は開発中のものです。2006/01/17(火) 18:34:07ID:OAcYDX6e
それは是非おまいが買ってレポよろしく。
頼んだぞ!
0625名前は開発中のものです。2006/01/17(火) 21:01:42ID:MfScR0E6
なんだか普通にCG系の書籍や雑誌を参考にしたほうが良さそうな本に思えるが……。
0626名前は開発中のものです。2006/01/17(火) 21:43:04ID:YlbHfDfM
10年位前のメダルゲームであったような競馬ゲームを作ろうと
考えてるんだけど、馬の速さのバランスを考えるのが難しい・・。
ちょっと速い馬を作ろうと考えたらえらく速くなったり、逆をすると
えらく遅くなったり・・。

なんかコツって無いかな?
競馬ゲーム作った事ある人いない?
0627名前は開発中のものです。2006/01/17(火) 21:51:41ID:a7PR7pCq
スタミナを設定して、前半で速く走りすぎたら後半で速度を落とし、
前半でスタミナを温存した馬は、ラストスパートでダッシュできるようにすればいい。
0628名前は開発中のものです。2006/01/17(火) 21:54:11ID:PElCyB9t
>>626
個々の馬を勝手に走らせるんじゃなくて、全体を見る視点を入れてみたらどう?
たとえば、混戦を演出したいんだったら、重みをつけてみるとか。

馬群の平均位置より後ろにいる馬には、根性補正をかけて足を早くする。
逆に平均位置よりも前にいる馬には、油断補正をかけて足を遅くする。
06296262006/01/17(火) 22:13:17ID:YlbHfDfM
ありがとう!
>>627,628

ちなみに一応
力、
スタミナ、
スピード
調子
のパラメタを持たせてる。
あと追いか逃げで二つのタイプを作ってる。

そんで、力が強い方が馬同士がぶつかった時に相手からスタミナを奪え
るようにして、調子がいい方が持ってる最高スピードで走れるようにしてる。
スタミナが無くなると遅くして、あまってたらラストスパートができるように
してる。

まぁ結局いろいろパラメタを作ったんでそれらを上手く調整できなくなっ
ちゃってるのよね・・。

でも628が出してくれた案はなるほどーって感じ。
ちょっと実装してみます!
0630名前は開発中のものです。2006/01/19(木) 12:30:42ID:abptcwuQ
4月からパソの専門学校のソフト科に入学するのですが、プログラミング技術向上の為に3D格闘ゲームを作りたいと思っています。
そこでこんな書籍が参考になる等アドバイスを頂けたらありがたいのですが
よろしくご教授のほどお願いします
0631名前は開発中のものです。2006/01/19(木) 12:37:44ID:FNLWz9b/
まずそれを自分で調べることが技術向上の近道。
0632名前は開発中のものです。2006/01/19(木) 12:43:06ID:abptcwuQ
>>631
わかりました自分で調べます
0633名前は開発中のものです。2006/01/20(金) 03:49:36ID:AJrpxY2i
>>630
3Dゲームを作るには、OpenGLやDirectXといったAPIの知識の他に、
数学 (3次元の幾何) も必要になる。
お前さんの数学レベルにもよるが、得意でないならこの本は読んでおくといい。
(中学レベルから高校レベルまで、必要な部分だけを効率的に書いてある)

ttp://www.amazon.co.jp/exec/obidos/ASIN/4797329076/249-0216458-7341971

読み終えたら、同じシリーズのこれかな。

ttp://www.amazon.co.jp/exec/obidos/ASIN/4797331976/ref=pd_bxgy_text_2/249-0216458-7341971

このシリーズは初心者が挫折しかねない内容をあえて省き、
逆に初心者は知らない怖れがある内容は簡単なことでも解説する、
というスタンスで書かれていると思った。

いきなり網羅的な本を読むと途中で挫折する怖れがあるから、
この2冊を読んで動くものを作ってみて、
物足りなくなってきたらもっと詳しい本を読めばいいと思う。
0634名前は開発中のものです。2006/01/20(金) 04:01:10ID:AJrpxY2i
>>631
確かに技術は向上するが、近道ではないと思う。
探す時間を読むのに割り当てたほうが効率的。
(自分で解決しないのが癖になったら問題だが)
0635名前は開発中のものです。2006/01/20(金) 05:04:24ID:cuy72tDd
 こんばんわ。初心者の疑問にどなたかお答え頂けないでしょうか?

 DirectPlayでピアツーピアアプリを開発しようとしていたのですが、WEBで検索していて、
以下のように変化してきています。

1.ピアツーピアは NAT 越えできないから、費用かかってもクラサバでやるべきだろう。
2.DirectPlay は推奨されていない(MS自身を含めて)から Socket でやるべきだろう。

 で、今はサーバーを NAT の外に置き、クライアントはどこでも可、通信は Socket で行う。
という環境を想定しています。

 そこで以下の疑問が発生して悩んでいます。

1.部分的に UDP を使いたいのですが、UDP もやはり NAT 越え出来ないのでしょうか?
  今回の環境でいうと クライアントからの送信は UDP で行えるが、サーバーからクライアント
  への送信に UDP は使えないのでしょうか?
2.速さを要求する部分には UDP を使うべきでしょうか?TCP-IP と UDP ではかなり差があるもの
  なのでしょうか?

どうかよろしくご教授下さい。
0636名前は開発中のものです。2006/01/20(金) 05:54:22ID:ts2pcmWN
>>630
本代を惜しむな。
0637名前は開発中のものです。2006/01/20(金) 08:22:06ID:2iTzpS+y
>>635
まずNATとIPマスカレードを混同するのをやめること。
それからIPマスカレードでUDPが使えなかったら、ドメインを引くことすら出来なくなるぞ。
0638名前は開発中のものです。2006/01/20(金) 08:28:59ID:xWSHaoVX
>>633>>636ありがとうございまし
0639名前は開発中のものです。2006/01/20(金) 10:45:30ID:cuy72tDd
>637 ありがとうございます。ネットワークの基礎ができてないようです...orz


>>IPマスカレードでUDPが使えなかったら、ドメインを引くことすら出来なくなるぞ。

えーと、DNSサーバーへの問い合わせにはUDPが使われているのでしたよね?


>>NATとIPマスカレードを混同するのをやめること。

ちょっと勉強し直してきます。
0640名前は開発中のものです。2006/01/20(金) 13:09:31ID:cuy72tDd
>>637 ちょっと勉強してきました。

 板違いなような気がする初歩的な疑問がわいてきたのですが、どうかお教え下さい。

 NATと静的IPマスカレードは以前ルーターに設定した事があり、外側からアクセスできる事
も確認していました。でも普通のIPマスカレードに関しては特に設定した事がなく、きっと設定
が難しいのだろうと関わらないようにしていました。

 ところが今勉強してきた内容によると、特にルータへの設定はいらないと思ったのですが、こ
れは正しいのでしょうか?
 最近のルーターは特に設定しない限り(グローバルIP設定等の設定以外)IPマスカレードが
基本なのでしょうか?


0641名前は開発中のものです。2006/01/20(金) 13:40:27ID:cuy72tDd
>>637 度々すみません。 >>637様に指摘して頂いた内容がちょっとだけ分かってきたような気がします。

>まずNATとIPマスカレードを混同するのをやめること。

 外側からアクセスできないのはIPマスカレード(動的)の場合のみという事で正しいでしょうか? 

>それからIPマスカレードでUDPが使えなかったら、ドメインを引くことすら出来なくなるぞ。

 UDP も IP も扱いは同じと言う事でしょうか?
 となるとやはり、IPマスカレードの場合、ゲートウェイ内部から外側へのアクセスはできるが、外側から
内側へのアクセスはできないという事になるのですか?UDP、IPに関わらず。

 あ、またちょっと勉強してきます。
0642名前は開発中のものです。2006/01/20(金) 16:06:33ID:f4A/Q0C3
DirectXを使用しているのですが、メッセージの来てない時に描画処理を行うというゲームループだと動作が重くゲームになりません。
WM_PAINTが呼ばれたときのみ描画するという方法以外に何かないでしょうか。
ありましたらご教授願います。
■ このスレッドは過去ログ倉庫に格納されています