トップページgamedev
392コメント151KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/11/04 20:41ID:a1Mhmm8N
ゲームプログラミング全般の質問スレッド。
扱う話題のダイナミックレンジはやや広め。包容力高め。
他の初心者質問スレとの棲み分けを探りつつ
これからもマターリと活用しておくれ。
 
■前スレ
【Part4】http://game.2ch.net/test/read.cgi/gamedev/1005040025/
■旧スレ(プログラム技術板)
【Part1】http://piza.2ch.net/tech/kako/969/969984472.html
【Part2】http://pc.2ch.net/tech/kako/985/985540361.html
【Part3】http://pc.2ch.net/tech/kako/1002/10028/1002894129.html
■関連スレなど
>>2-5
0002名前は開発中のものです。02/11/04 20:42ID:???
■関連スレ
○【初心者歓迎】スレを立てる前にココで質問を【その3】
http://game.2ch.net/test/read.cgi/gamedev/1032814540/
○物凄い勢いで誰かが質問に答えるスレ@ゲ製板 4つめ
(※第3スレ後半〜第4スレ前半は一時的な紛争地域)
http://game.2ch.net/test/read.cgi/gamedev/1035601681/
○鬱だ氏のう DirectX  (DirectXに関する話題)
http://game.2ch.net/test/read.cgi/gamedev/1033920036/
0003名前は開発中のものです。02/11/04 20:49ID:???
age
0004あぼーんNGNG
あぼーん
0005名前は開発中のものです。02/11/04 22:41ID:???
乙彼〜
0006名前は開発中のものです。02/11/06 00:04ID:???
0007名前は開発中のものです。02/11/06 00:20ID:Hy1yMbKx
age
0008名前は開発中のものです。02/11/06 20:50ID:mrrgYg+p
某 MIPS 系のマシンで STL コンテナを使おうとすると、リンク時に "relocation
truncated"と怒られる。どうも template がらみでできる weak object の配置に
失敗してるみたいだけど、解決策知ってる人います?

(確かに MIPS だとグローバルポインタ相対でアクセスするから、配置する箇所に
よってはグローバル変数といえどアクセスできなくなるよな。ld に喰わせるスクリ
プトファイル書けばいいのか?)
0009名前は開発中のものです。02/11/07 01:44ID:???
>>8
ふつう -G0

ってコンパイラ何使ってるかくらい書けヨ!
0010エックサー02/11/07 19:03ID:O6dqrNtE
DirectX8使ってるんですけど、メッシュの頂点の、ディスプレイ上での座標を知るにはどうしたらいいんですか?
0011802/11/07 21:47ID:???
>>9
Thanks

> ってコンパイラ何使ってるかくらい書けヨ!
確かに。想像の通り gcc です。
0012名前は開発中のものです。02/11/08 13:56ID:mLnGgDjl
わたしも 3D座標をスクリーン座標に変換する方法が知りたいです。

 座標xyzをwで割るらしいのですが、xyzwの求め方がわかりません。
 xyzはただの3D座標なのでしょうか? それとも何かの行列を
 掛けたりしているのでしょうか?
 wはどこからでてくるのでしょうか?

 すみませんが 教えていただけませんか?
 
0013名前は開発中のものです。02/11/08 14:34ID:???
ビューと射影行列を掛けるだけ
DirectD3なりのレンダリングエンジンを使うにしても
描画前に行列をセットしていると思うが何が分からないのか分からん
0014802/11/08 21:31ID:???
STL の件だけど、要するに __malloc_alloc_oom_handler などの static 変数
が .sdata セクションに配置されるのが問題なんだね。

教えてもらった -G0 を使って「全部 .data セクションに置く」方法に加えて、
問題になってる変数に個別に __attribute__((section(".data"))) 指定する
方法でも動きました。

しかし、何で __malloc_alloc_oom_handler などのクラステンプレート中で
定義された static 変数に限って .sdata に配置できないのかは謎です。
.sdata や.sbss 使い切るほど static 変数定義してないんだけど。
0015名前は開発中のものです。02/11/08 21:41ID:???
>>12
オブジェクトのローカル座標に、ローカル・ワールド変換行列、ワールド・ビュー
変換行列、ビュー・スクリーン変換行列(a.k.a 射影行列) と順にかけて、出てき
た座標を w で割れば良い。

行列だけど、DirectX 使ってるなら SetTransform() に

D3DTS_WORLD
D3DTS_VIEW
D3DTS_PROJECTION

という第一引数を指定して渡してるヤツ。

>>13
まぁ、サンプルコードを深く理解せずに copy & paste してるんでしょう。趣味
でプログラミングしてるなら、そういう態度もアリだとは思うよ。
0016名前は開発中のものです。02/11/09 00:02ID:???
>>14
gccって、vtblを.dataに吐いてたりしない?
0017名前は開発中のものです。02/11/09 01:09ID:0QThSDoj
>>15
そーゆー奴ってさワールドからローカルへの変換ができねぇってことだろ?
動いてる物体にのれないのはもちろんのこと
スキニングも理解してできてねぇだろ?

逆行列はしっかり理解してから次のステップへいってもらいたいね。
俺も会社入るまえそうだっただけに応援したいね。
ローカルに直せるってだけでかなりできることが増えるね。
なにいってるかわかんなくなったね。
じゃあね
0018802/11/09 01:16ID:???
>>16
vtbl が配置されるセクションと、クラステンプレートの static 変数が配置される
セクションが違うと、何か問題がある? あと、今回の件に関しては STL のコン
テナが利用する allocator の話なんで、仮想関数は出てこないはず。

そもそも .sdata, .sbss に関しては、こういうことだと理解してるんだが、勘違い
があったら指摘して下さいな。

1. EE-core (っつーか MIPS) は 32bit 固定長命令を採用しており、アドレス
 空間も 32bit ある。
2. したがって 1 命令で 32bit の任意のアドレスにアクセスすることはできない。
 どうしてもアクセスしたければ
 a) まず 16bit をレジスタの上位アドレスに読み込み
 b) 次にオフセット付きメモリ参照命令を使って、メモリにアクセス
 と 2 命令使う。
3. それだと効率が悪いので、汎用レジスタの一つ ($gp) をグローバルポインタ
 として固定した値を入れて利用。static なデータは $gp から 16bit 相対で
 アクセスできる範囲に入れておく。(これが .sdata と .sbss)

当然 16bit 相対でアクセスできる範囲は限られるから、そこから溢れたデータ
は効率悪くても 2 の方法でアクセスする必要がある。gcc は標準では 8byte
以下のデータは .sdata, .sbss セクションに、それ以上のデータは .data, .bss
セクションに格納する。この閾値は、必要に応じて -G オプションで変更できる。
0019802/11/09 01:19ID:???
>>18 の続き

そういうわけで gp がらみで問題になるのは

1. .sdata, .sbss が溢れるほど大量に static データを定義した場合
2. 翻訳単位によって、閾値が異なる場合。たとえば同一のグローバル変数を
 参照するプログラムの片方を -G0 でコンパイル、他方を -G8 でコンパイル
 とか。
3. $gp を書き換える場合。特に位置独立なコードを使うシェアードライブラリの
 関数を呼ぶ場合。(ふつー Global Offset Table 用意して、$gp 書き換えた上
 で関数を呼ぶスタブを作る)

といった場合。クラステンプレートの static 変数が関わるとは思えんのよ。
PS2 Linux だとなんの問題もなく動いたような気がするし。
00201202/11/09 01:55ID:s6gdDMqC
>>15
ビュー行列 と 射影行列を掛けたものと、 3D座標を 掛けたの
ですが、でた xyzwで 
x/w
y/w
z/w
をやってみたのですよ。 
しかし、 値が1.0を超えているにもかかわらずスクリーンの端
にまで、 ラインが(この時二つの座標を線で結んでいました。)
届いてませんでした。

なので、 やり方が違うのかなとおもいまして・・・・
0021名前は開発中のものです。02/11/09 01:58ID:???
>>20
なんか微妙に日本語が変な気が。ありがちなのは行列をかける順番を
間違えてるとかだが。

> しかし、 値が1.0を超えているにもかかわらずスクリーンの端
> にまで、 ラインが(この時二つの座標を線で結んでいました。)
意味が良く分からん。
00221202/11/09 02:14ID:s6gdDMqC
>>21
すばやいレスありがとうございます。

2点をラインで描画しました。

ビュー行列 matView
射影行列  matProj
調べたい座標 Vec
計算後の値 v4
mat = matView * matProj 

D3DXVec3Transform(&v4,Vec,mat);

Vecとmatを計算して求められた 値をwで割る
v4.x/v4.w
v4.y/v4.w
v4.z/v4.w
ここで スクリーン座標が求められるはずです。
スクリーン座標の値は xyに関しては -1〜1 zは 0〜1に なるはず
だけれど、 その値を超えたにもかかわらず そのラインは
画面の端まで届きませんでした。

mat = matProj* matView
でやってみても 値は変わりますが、 ラインが端まで届きません。
なので、計算の仕方が間違ってるのか、それか根本が間違っている
かどちらかだとおもうのです。 


0023名前は開発中のものです。02/11/09 03:22ID:gww9xFnI
ビューポートは考慮したーのーかーなーあーあーあーあ?
00241202/11/09 03:44ID:s6gdDMqC
>>23
すみません。 たしかに、 640,480のウインドウを値(1.0,1.0)に
する必要がありますが、 このビューポートを実際どのように
使えばいいのか。
00251202/11/09 05:27ID:s6gdDMqC
>>23
 もとめられた値に windowのサイズの半分を掛けて
 あげればよいのでしょうか?

640,480のウインドウなら320,240をそれぞれ掛けてあげる
 x = x*320;
y = y*240;
 それですと 一応それらしき値はでます。


0026名前は開発中のものです。02/11/09 09:43ID:iuRz/9+A
ちゅーしんをあーわーせーろー。
0027名前は開発中のものです。02/11/09 14:55ID:9m0Zluol
意外にみんな親切なのな。
0028名前は開発中のものです。02/11/09 14:59ID:???
誠意が見られるなら付き合うよ。
質問の仕方とか…ね。
0029名前は開発中のものです。02/11/09 15:20ID:m4HooRjJ
http://alink3.uic.to/user/ranran2.html
00301202/11/09 17:41ID:s6gdDMqC
>>26
>>ちゅーしんをあーわーせーろー。
 中心ですか
 どうやってあわせるのだろう・・・・・
 視点と注視点から 角度を求めて それを 頂点に掛けて
 あげるのでしょうか・・・
 うーんでも、ビュー行列を掛けたときにすでに入っているような気も
 しないでもないですね。
 
0031名前は開発中のものです。02/11/09 21:43ID:???
そういうのは3Dグラフィックの基礎知識だから、そっち方面の
参考書でも読んで勉強したほうがいいと思うぞ。
0032名前は開発中のものです。02/11/09 22:11ID:???
そだね。DirectX がどうこうの前に、基礎的な知識を習得したほうが近道だよ
試しに自力でライブラリ無しでポリゴン出してみなよ
ワイヤーフレームでいいからさ。いろいろ分かると思うよ
0033名前は開発中のものです。02/11/10 00:18ID:laxcwGaC
おーれーはーそーのーすーたーんーすーがきらーいだー。
目的地をみさーだーめーていっちーょくせんでりろーんはそーれーかーら
かーんーがえーるーのがーすーきーだ。
ちーなーみーにーちゅうーしーんをもとーめるーとゆーんは、
たーすーだーけーだーよ?あ?
で、あーとーはーじぶーんでなーんとかしれー
0034名前は開発中のものです。02/11/10 00:32ID:???
>>8
誰なのかわかりますた ヽ(´ー` )ノ

初期化してないstatic class memberが
.bssに入らないで.dataセクションに
入っちゃうみたいだけど、それじゃない?
それが正しいのか間違ってるのかしらないけど。

http://chapuni.com/topics/psx/

でも、やっぱ -G0
00351202/11/10 03:52ID:CLex+uUH
>>33

 私も とりあえず、足せば良いのかなと思いやってみたのですが
 うまくいきませんでした。

>あーとーはーじぶーんでなーんとかしれー
 いろいろご指導ありがとうございました。
 
 いろいろ試して見たいと思います。
 
0036名前は開発中のものです。02/11/10 07:26ID:???
オブジェクトのワールド座標ににプロジェクション行列の逆行列をかけて
求まったxとyを使えば良いんじゃねーの?
その時、原点は画面中央、640×480の場合、xが0なら
画面中央320って事じゃないの?
…漏れの環境だとね。
zはカリングで使うじゃない?マイナスだとカメラの後ろに来てるって事。
0037名前は開発中のものです。02/11/10 11:38ID:???
>>34
static class menber でも、問題が出るものと出ないものがあります。

 普通のクラスの static member object -> 問題なし
 テンプレートクラスの static member object -> relocation truncated ... でリンク時エラー

普通のクラスとテンプレートクラスで異なる点は、nm で見た限りだとシンボルが
weak か否かという点。テンプレートクラスの static member は複数の翻訳単位
でインスタンス化される可能性があるけど、リンク後には実体を 1 つにせにゃな
らんので weak object になってる。

それで weak object + .sdata セクションという組み合わせが悪いのかと思ったの
だけど、違うのかなぁ。(これ以上は binutils のソース読まんと解決しないような
気がしてきた)

> でも、やっぱ -G0
らじゃ。
0038名前は開発中のものです。02/11/10 17:12ID:X0lDMmpo
>>36
  >オブジェクトのワールド座標ににプロジェクション行列の逆行列をかけて
>求まったxとyを使えば良いんじゃねーの?
これですと 値が変動するときは プロジェクション行列が変わった時だけ
  なのでうまくいかないと思います。

  
00393602/11/10 19:10ID:???
ああ、すまんね。
こっちの環境だと、独自クラスのカメラてのがあって
毎フレーム、視錐台の変更って感じでやっているから出切るんだわ。
0040前編02/11/10 20:19ID:JSg4/5lD
はいではやりかたを整理しましょう。
まず変換したいワールド座標にカメラの逆行列をかけます。
これはDIRECTXではGetTransなんとかでとれるあたいそのままです。
つぎにプロジェクションマトリクスをかけます。
これは大抵の環境で同じです。
それからビューポートの変換です。
これは640X480の場合は
0041後編02/11/10 20:29ID:JSg4/5lD
X=(X/W)*320+320
Y=(Y/W)*-240+240
で終了です。
これはDIRECTXのヘルプにものっています。
ヘルプでビューポートで検索をかけるとみつかります。
これでできなかったら少し実際にものをだして動かしてみてはどうでしょうか?
00423702/11/11 20:55ID:???
解決しました。結論としては linker に読ませてるスクリプト指定が腐ってる、
.gnu.linkonce.s セクションのデータを $gp 相対でアクセスできそうなところに
配置しろ、ってことで。

(結局 gcc のソースを読む羽目になったよ……)
0043名前は開発中のものです。02/11/12 00:59ID:???
>>42
そんなんでgccのソース読む羽目になったの?
マップファイル見たらすぐわかりそうなのに。
0044名前は開発中のものです。02/11/12 01:18ID:???
>>43
それは「.gnu.linkonce.s セクションって何、どういう条件で作られるの?」っつー
のが、分からなかったから。推測はついたけど、裏をとらないと困るっしょ。
0045名前は開発中のものです。02/11/12 01:35ID:???
>>44
そこまで見たあんたに尋ねるが、ソノ環境で、vtblは何処に出てる?
.gnu.linkonce.d.vt とか、そんなんだと思う。

なんか、gccのデフォルトで、.dataの一部として吐かれるみたいなんだけど、
書き込み可能なセクションに吐く理由がわからなくて気になってるんだ・・・。
0046名前は開発中のものです。02/11/12 21:24ID:???
>>45
確かに .gnu.linkonce.d.__vt_なんちゃら セクションに書かれてる。

gcc/cp/class.c を読むと

#ifndef WRITABLE_VTABLE
  TREE_READONLY (decl) = 1;
#endif

みたいな記述があるから .gnu.linkcode.r に配置されそうなもんだが。謎。
0047名前は開発中のものです。02/11/13 00:43ID:???
>>46
おお、そのマクロでしらべてみたら、なんかでてきたよ。
ありがとん。

で、デフォルトでそんなマクロは定義されないらしいのだが・・・。やはり謎。
0048あぼーんNGNG
あぼーん
0049名前は開発中のものです。02/11/16 22:06ID:???
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 |  ここでおしまい  |
 |________|
    ∧∧ ||
    ( ゚д゚) ||
    / づΦ
0050名前は開発中のものです。02/11/16 23:26ID:VL8Oafej
>>49
はやまるなー
0051名前は開発中のものです。02/11/21 03:03ID:277H+gCD
終了厨がおおいですなぁ
0052名前は開発中のものです。02/12/06 07:52ID:c2Ro9O0h
ここでも、保守。
0053あぼーんNGNG
あぼーん
0054名前は開発中のものです。02/12/09 22:53ID:gy0Rwv2m
やる気のないゲームプログラマです。
丁度プロジェクトのハザマで暇なので
ツール作成でもしてみなさい、と上司に言われました。
イチから作成する根性もやる気もないのでとりあえず
VRAMを眺めるツールでも改造してみようかと思うんですが
どう改造したら勉強になるのか見当がつきません。
どうせ改造するならためになるほうがいいんだけど・・
ハードはGBAです、どなたかお知恵を。。
0055あぼーんNGNG
あぼーん
0056名前は開発中のものです。02/12/10 09:19ID:JzMo+9Nz
>>54
アイタタ
0057あぼーんNGNG
あぼーん
0058名前は開発中のものです。02/12/23 20:03ID:CHDaAJj8
誰も相談したい人いないのか?
0059名前は開発中のものです。02/12/23 22:42ID:frBmN/bA
ゲームのあたり判定ってどうやってるの?
精妙なあたり判定を作りたいときは大小の四角を何個か組み合わせればいいのかな?
0060名前は開発中のものです。02/12/23 22:45ID:mYrEUkS2
当たり判定用のデータを他に持つと簡単。
具体的なビットマップだったり、矩形だったりするが
それはゲーム依存。

当たりを判定して、何に使うかというのもポイントだったりするので
そのへんもデザインしよう。
0061名前は開発中のものです。02/12/23 22:57ID:frBmN/bA
なーるほど、サンクス!
0062名前は開発中のものです。02/12/23 23:53ID:OrL+tItn
12月、1月は一時閉鎖します。
0063あぼーんNGNG
あぼーん
0064名前は開発中のものです。02/12/25 01:36ID:06ow8SQ/
mx・・・自機X座標、my・・・自機Y座標、mxa・・・自機X幅、mya・・・自機Y幅
ex・・・敵機X座標、ey・・・敵機Y座標、exa・・・敵機幅、eya・・・敵機Y幅

if ( (mx<ex+exa)&&(mx+mxa>ex)&&(my<ey+eya)&&(my+mya>ey) ) ...

シューティングのオーソドックス?な当たり判定はこんな感じのやり方しか
知らないんだけど他にはどんな方法がありますか?
ゲームやハードに依存しててもいいからいろんな判定の仕方が知りたいYO!
0065名前は開発中のものです。02/12/25 02:21ID:fYJY+WkT
説明めんどいのでこれで理解して。最近流行の弾幕系専用当り判定。

cEnemy…敵管理クラス。

cEnemy* hitRect[40][30];
cEnemy* pHitList = hitRect[mx/16][my/16];

while(pHitList != NULL){
if( pHitList->IsHit(mx,my) ) printf("どっかーん");
pHitList = pHitList->GetNext();
}
0066名前は開発中のものです。02/12/25 02:33ID:BLeCLBHq
リスト内の各enemyに対して判定するってのは分かるけど、16って何?
0067名前は開発中のものです。02/12/25 02:44ID:e+neG+8z
16ドットって意味かな?
どちらにしろ定数にしておくべきだと思うが…。
0068名前は開発中のものです。02/12/25 03:27ID:BLeCLBHq
あぁ、640x480の画面を16x16に区切って、自機の近くのやつだけ判定したいってことか
0069あぼーんNGNG
あぼーん
0070名前は開発中のものです。02/12/25 07:56ID:dIcCINXP
>>65
マジックナンバー使わんでくらはい(´д`;)

大きな判定の場合はどうするの?
複数のエリアに登録する?

0071名前は開発中のものです。02/12/25 10:40ID:vBfJXHZb
>>65
高速弾だとすり抜けが多発しそうだが、その辺は考慮に入れてあるのか?これ。
0072名前は開発中のものです。02/12/25 10:48ID:Bqxu+V45
ていうか、8ビットや16ビット時代ならともかく、最近のPCなら
たとえ弾幕系でも2Dシューティング程度の判定量で
んな小細工する必要皆無だと思うけど。
0073名前は開発中のものです。02/12/25 11:18ID:ufF3sG4T
一つの弾の判定に30クロックかかったとして(もっと少ないと思うけど)
1000個の弾との判定にかかるのは3万クロックだな。
60fpsで判定すると180万クロック。
1GHzのCPUなら0.2%で、2ミリ秒/秒だな。

安直にできそうなところはさっさとスルーしたほうがいいと思った。
0074あぼーんNGNG
あぼーん
00756402/12/25 14:47ID:aHas5saF
>>65
ゴメン、C++はまだ勉強してないからわからない
スプライトを使った当たり判定をやりたいのだけれど・・・
0076名前は開発中のものです。02/12/25 16:58ID:dIcCINXP
Gems2の再帰的次元クラスタリング(Recursive Demiensinal Clustering: RDC)はどうよ?
計算量を、O(n^2)からO(nlog2n)までもっていけるらしい。
0077名前は開発中のものです。02/12/25 19:40ID:RXUO2PKH
C言語で時代に逆行した2Dアクションゲームを作ろうと思います。
まず何から作り始めると良いでしょうか?
0078名前は開発中のものです。02/12/25 19:40ID:/cDNIeOU
SRPGの移動に関するサンプルみたいなのありませんか?
0079あぼーんNGNG
あぼーん
0080名前は開発中のものです。02/12/25 21:16ID:ocB35uV6
>>77
まずあなたがどこまでできてるのかがわからないことには・・・。

>>78
http://www.campus.ne.jp/~ishigami/CREATION/
ここの下のほうに解説ページがあるよ。
00817702/12/25 21:26ID:RXUO2PKH
>>80
うむ、確かにな。
プログラミングは教科書に載ってるようなやつなら簡単に理解できるくらい。
ゲーム系はまるっきりってとこでつ。
0082名前は開発中のものです。02/12/25 21:37ID:Kq2zu9Np
>>77
まずマップチップ(背景データの素材)を用意して
それを配置したマップデータを用意して
マップデータから1画面分のデータを読み込んでマップチップを貼り付けて
それをスクロールさせる(読み込み位置を変化)ところから。
グラフィック関係はBitblt関数でやってもいいしDirectX使ってもいいし。
素材が無いと気合入らない事もあるし・・・

2Dアクションって・・・シューティング以外の格闘系だったりする?・・・
0083名前は開発中のものです。02/12/25 21:43ID:ocB35uV6
とりあえず>>82をやったあとは、
マップ上にキャラクターの絵を置いて、キーボード操作によって
キャラの位置を動かすのをやってみるといいかも。
習作としてはシューティングが最適だったりするんだよね。
重力の概念とか考えなくていいし。
0084名前は開発中のものです。02/12/25 21:45ID:C+V8gp8b
>>81
どんな教科書だ?
00858102/12/25 21:59ID:RXUO2PKH
なるほど、シューティングか。
サラマンダみたいなやつの背景をうごかせるようになればいいのか。
CとDirectX、どっちが関数使いやすいですかねぇ。

>>84
C言語の本で確か「初めてのC」って名前でした。
0086あぼーんNGNG
あぼーん
0087名前は開発中のものです。02/12/25 22:06ID:Kq2zu9Np
>85
CでDirectXを操作するのだよ。DirectXは言語じゃない。
0088名前は開発中のものです。02/12/25 22:09ID:qyObx7qF
>87
うむ。

っつか素の ANSI C だとグラフィック関係を制御するライブラリ関数ないし。
0089名前は開発中のものです。02/12/25 22:13ID:Kq2zu9Np
言葉足らずだった。DirectXは慣れないと画面がパー、要再起動だから
C言語の関数でやってみてからDirectXに移行した方がいい。
グラフィックを扱う部分は大した量じゃないから後ですぐ移行出来る。
00908502/12/25 22:15ID:RXUO2PKH
なるほふぉ。
勘違いしてました。

今手元にあるヴィジュアルCはグラフィック関係を制御できますか?
0091名前は開発中のものです。02/12/25 22:26ID:Kq2zu9Np
http://www.sun-inet.or.jp/%7Eyaneurao/
VC持ってるんならここのスクリプトを使えばいい。
ここの講座もためになる。
0092名前は開発中のものです。02/12/25 22:40ID:qyObx7qF
>>89
> C言語の関数でやってみてからDirectXに移行した方がいい。
要らぬ誤解を招かぬように「まずは Win32 API (GDI)」とでも言っておいた方が
良いと思われ。

標準 C ライブラリ関数には GUI 関係は全く既定ないから。(それどころか CUI
のスクリーン制御さえ既定ないわけだが)

> 今手元にあるヴィジュアルCはグラフィック関係を制御できますか?
もちろん。

Win32 API でプログラム組みたいなら、「プログラミング Windows」って本がバイ
ブル。分厚い本だが、懇切丁寧に書いてあるから読むのは難しくない。
0093名前は開発中のものです。02/12/26 03:31ID:sowo2pdC
>>92 APIについて
Windows95 APIバイブル1も一冊あるとかなり便利。
ただ、ヘルプを読んでれば十分という話も。
0094あぼーんNGNG
あぼーん
0095名前は開発中のものです。02/12/26 11:15ID:9T0jKzma
VC++をC++とは違う言語と思ってる人もたまに見かけるよね。
VC++ == MFC みたいな
0096名前は開発中のものです。02/12/26 12:11ID:FD9iJ3tp
VC++は製品名
C++は言語
0097名前は開発中のものです。02/12/26 12:12ID:LkNUpvkb
言語仕様的には標準のC++とVCのC++はかなり異なる
0098名前は開発中のものです。02/12/26 13:16ID:u+QTkfIN
g++も標準C++からかけ離れすぎ
0099あぼーんNGNG
あぼーん
01009002/12/26 19:37ID:kDKABYvS
くじけそうです。
VC++の使い方が分かりません。
0101名前は開発中のものです。02/12/26 21:26ID:KKaDaCig
なにがやりたくてなにがやれないのか説明しる
0102名前は開発中のものです。02/12/26 21:29ID:bqU4KP+U
>98
拡張機能多いからな。インラインアセンブラ, typeof, 可変引数を使える #define と
か便利。

話が変わるが、頂点ブレンディング。剛体変換を行う複数の行列 M1, M2, ... と、
頂点毎に重み w1, w2, ... を用意して

 M = Σwi * Mi (ただし Σwi = 1)

で出した M を使うってのは分かるんだが、当然この M って剛体変換じゃない
よね。

頂点変換は良いとして、法線ベクトルの計算をどうしたものかと思ってるんだが、

o 法線ベクトルの算出も M を使う。
o ただし法線と M の積を求めた後で、出てきたベクトルをノルムが 1 になるよう
 に正規化する。

で良いのかね。
010310002/12/26 22:09ID:kDKABYvS
ソースをC++で打っていいのか分からなくて困ってます。

まずはVC++の使い方から調べます。
0104名前は開発中のものです。02/12/26 23:04ID:hDb5j8vT
ソースはテキストエディタで討ってくダサい
010510302/12/26 23:14ID:kDKABYvS
あ、ちょっと説明が悪かったです。
VC++を立ち上げて新規作成を選んでファイルのところに
C++ソースファイル
HTMLページ
SQLスクリプトファイル
とか色々あるのでどうすれば良いのか分からなくなってます。
0106名前は開発中のものです。02/12/26 23:31ID:u+QTkfIN
>>105
ヘルプに「チュートリアル」があるので、
まずはそれを一通りやってください。
0107名前は開発中のものです。02/12/26 23:50ID:5pSEx7R5
本を買ってきてください。
VCの本を買えばプロジェクトの作り方から実行方法までは迷うことはないです。
その金も惜しむなら、検索エンジンで
猫でもわかるプログラミング
で検索をかけてください。
0108名前は開発中のものです。02/12/27 03:00ID:8wDhiAR8
>>105
君はここじゃなくてプログラム板の初心者質問スレッドで
聞いたほうがいいよ。
0109あぼーんNGNG
あぼーん
011010502/12/27 10:18ID:CvRh/hw0
ありがとうございます。
がんばります。
0111名前は開発中のものです。02/12/27 10:19ID:3lURIe+n
RPGを作っているのですが、
「素人は数値や文章を打ち込む事をプログラムだと勘違いしている」
「数値や文章なんて、プログラムと切り離してエクセル等でササーっと打ち込めば済む事」
といった類の事を耳にしました。
テキストエディタのマクロを使う事くらいしか思いつかず、
どういやって切り離すのかまったくイメージ出来ません。教えてください。

あと、「そんな事はスクリプトを組んでスクリプトにやらせるべきで、逐一書くのなんて作業効率悪すぎ」
なんて事もどこかで読みましたが、ここで言うスクリプトって言うのは関数の事で合っていますか?
0112名前は開発中のものです。02/12/27 10:27ID:USn1psUA
> スクリプトって言うのは関数の事で合っていますか?
いいえ。
0113名前は開発中のものです。02/12/27 12:00ID:njWlRsrn
>>64
遅レスだけど、
>if ( (mx<ex+exa)&&(mx+mxa>ex)&&(my<ey+eya)&&(my+mya>ey) )
こーやったほうが処理が稼げると思ふ。。。
if( mx > ex+exa ) goto HIT_CHECK_END;
if( mx+mxa < ex ) goto HIT_CHECK_END;
if( my > ey+eya ) goto HIT_CHECK_END;
if( my+mya < ey ) goto HIT_CHECK_END;
// 当たったヨ
アボーン;
HIT_CHECK_END:
// 当たらなかったヨ
ヤレヤレ;
0114名前は開発中のものです。02/12/27 12:38ID:lBLepIDx
>> 113
コンパイルかけたら同じ出力になると思う。
0115あぼーんNGNG
あぼーん
0116名前は開発中のものです。02/12/27 14:55ID:V5zq1+E8
>>112
即レスありがとうございます。用語辞典読んでも実感が沸かない。

スクリプト==サクラエディタで言う所のマクロだと理解していいんですか?(秀丸マクロとか)

「そんな事はスクリプトを組んでスクリプトにやらせるべきで、逐一書くのなんて作業効率悪すぎ」って言うのは、

せんし・300/150/150/50
ぶとうか・200/160/70/150
ゆうしゃ・2500/140/140/140
と打ち込んだテキストをスクリプトにかけてCの書式にする方が、
逐一ステータスをCで記述して行くよりも圧倒的に速い。って事ですか?
0117あぼーんNGNG
あぼーん
0118名前は開発中のものです。02/12/27 19:33ID:USn1psUA
>116
そんな感じ。

ただし実際には素の C まで落とさずに、中間言語に落として、プログラム側では
中間言語を解釈するインタプリタを用意することが多い。こうすると、パラメタやら
イベント処理を変えても再コンパイル不要になるからプログラマの手間・データを
変更してから実際に動かして試すまでのタイムラグが減る。
0119名前は開発中のものです。02/12/27 23:28ID:1/oKDJhP
あんたらが 何話してんのか さっぱりだ
 オレが悲しい 年末2ちゃん
当方C++歴5年、DirectX歴1年、4月から新人プログラマ
がっくり。
0120名前は開発中のものです。02/12/28 01:08ID:w/8XZg/Y
うんうん。イベントコントロール関係はスクリプトコンパイラ(独自)で
バイナリを吐いて、それを解釈しつつ実行というのが多いと思う。
UCSD PASCALみたいな感じか。
0121あぼーんNGNG
あぼーん
0122名前は開発中のものです。02/12/28 16:40ID:XAkUMvyT
質問させていただきます。
私は最近Cをはじめた者です。一つ疑問があります。
アプリケーションなどを開発するのと
ゲームを開発するのは、まったく同じものと考えてよろしいのでしょうか?
使用する言語が同じだとしましても、アプリとゲームを開発するのでは、
何か違いがあるのでしょうか?最近非常に悩んでおります。
専門学校などでも、アプリ開発の学科もあれば、「ゲームプログラム学科」
というのもありますし、何か違いがあるのかと思いまして質問させて
頂きました。よろしくお願いいたします。
0123名前は開発中のものです。02/12/28 16:55ID:6+UzED5V
>>122
違いは無い。
012412202/12/28 16:58ID:XAkUMvyT
>>123さん
ありがとうございます!
コレで悩みが全て飛びました。
気がねなく勉強できます。ありがとうございました!!
0125名無しは開発中02/12/28 17:36ID:6v0StEIP
中間言語というのはバイナリなのですよ。つまり
0102aabb...とかいう16進数なのです
プログラム中では定数をあてはめます。

#define command_1 0x01
#define command_2 0x02
.....

command_kaiseki(int no){
switch(no){
case command_1:
1の処理
     break;
case command_2:
2の処理
......
  }
}





0126名前は開発中のものです。02/12/28 17:45ID:9/qiHtyl
スクリプト言語作るにあたって、
yaccやlexを使えるようにしておくと楽でいいかもね。

あと、参考スレ
http://game.2ch.net/test/read.cgi/gamedev/1005114698/
0127名前は開発中のものです。02/12/28 21:35ID:a5KU/+oB
野球拳を作りたいのですが何を使えばいいと思いますか?
0128名前は開発中のものです。02/12/28 21:43ID:LbjIcZ3v
登場人物には女の子を使えばいいと思うよ
0129名前は開発中のものです。02/12/28 22:26ID:Q6tgt9eh
>>128
男の子もキボーン (笑)
0130名前は開発中のものです。02/12/28 23:56ID:/o2fnhX+
野球拳ってどんな拳法ですか?
0131あぼーんNGNG
あぼーん
0132名前は開発中のものです。02/12/30 13:32ID:KFhb8kwQ
>>123
大きく人生を狂わせるような発言では?
0133名前は開発中のものです。02/12/30 13:48ID:c0Wr5svx
プログラムを学校で習おうとする時点で人生が狂っている
0134名前は開発中のものです。02/12/30 23:20ID:9kumBzua
プログラミングの知識がある方、興味を持たれた方、
ロックマン知らなくてもどんな人でもいいので少しでも手助けを

脳内ロックマンを作るスレ
http://choco.2ch.net/test/read.cgi/nanmin/1033731222
0135あぼーんNGNG
あぼーん
0136名前は開発中のものです。03/01/04 14:14ID:Oaz/Glfr
あのさ、今シューティング作ってるんだけどさ。
敵の出現場所を定義するのがすごい面倒なんですよ。

ファイルに、敵が現れる時間、場所、種類などを書いて、それを読み込ませて
るんだけど、ちょっと間に敵を追加したいと思ったら、それ以降の敵の時間を
全部ずらさなければいけなくなります。

みなさんはどんなフォーマット使っていますか?
0137名前は開発中のものです。03/01/04 14:18ID:RYWMO7ZD
XMLみたいなmachine/human readableなフォーマットにして、
適切なツールを作るのが賢明じゃないかなあ。
0138名前は開発中のものです。03/01/04 14:19ID:Pe6gSFnI
>>136
直前の敵との相対時間
0139名前は開発中のものです。03/01/04 14:36ID:Oaz/Glfr
う〜ん。
相対時間ならそれはそれで、面倒になることはないかな…
一応やってみますか。
0140あぼーんNGNG
あぼーん
0141名前は開発中のものです。03/01/04 14:41ID:Siq0Vq2w
2人で戦えるゲームを作ろうと思うのですが、二人が同時にボタンを押したら同時に処理しないといけないのでしょうか?
これだとペンティアム4のハイパースレッド機能という奴を使わないといけないのでしょうか?
最近PCをX68000からWindowsXPに変えたばかりなのでよろしくお願いします。
0142あぼーんNGNG
あぼーん
0143名前は開発中のものです。03/01/04 14:59ID:RYWMO7ZD
>>141
mainloop()
{
 一人目のキー処理();
 二人目のキー処理();
 時間を進める();
 描画();
}

>PCをX68000からWindowsXPに変えたばかり

ナントカ山口に騙されてたクチか?
0144名前は開発中のものです。03/01/04 15:02ID:HHCJx2gu
>>141
まぁマルチスレッドで処理するという手もあるが、見たところゲーム製作は
初心者(失礼)っぽいので、擬似タスクから勉強したほうが良いと思うよ。

参考URL
http://www.hh.iij4u.or.jp/~peto/Games/games_top.html
0145あぼーんNGNG
あぼーん
0146名前は開発中のものです。03/01/04 19:09ID:b7FiLgbb
>>144
キー入力の処理とそれとは、まったく関係ないが…
0147名前は開発中のものです。03/01/04 19:19ID:b7FiLgbb
>>136
手を抜きたければ配列ってのもあり。

static unsigned int enemys[] = {
1, 0, 0, 0, 0, 0, 1, // 0 frame目
0, 0, 0, 1, 0, 0, 2, // 60 frame目
0, 0, 0, 0, 0, 0, 2, // 120 frame目
..
};

1 行 60 frame 単位で処理して、出現座標の x 座標に対応したところに
敵出現情報を埋めておく。0 で敵なし, 1, 2, 3, .. が敵の種類とかさ。

少し凝った処理が必要(たとえば 30frame で出したい)とかになったら、
上位 24bit をパラメタとして敵出現関数に渡して、そっちで細かい処理
をさせる。
0148名前は開発中のものです。03/01/04 19:25ID:Sa70MEqM
>>146
キー入力とは関係ないが、
> これだとペンティアム4のハイパースレッド機能という奴を使わないといけないのでしょうか?
こんなことを言ってる様だと、擬似タスクの勉強からはじめろって言いたくなる
気持ちもわかるだろ。
それじゃあーハイパースレッド機能のないX68000では二人用のゲームは
作れないのか?と問いたくなるけど(w

>>141 はキー入力のことは一旦置いといて、ゲーム制作の基本中の基本を
解説しているサイトを検索して読み漁った方がいいかと思うけどね。
0149あぼーんNGNG
あぼーん
0150名前は開発中のものです。03/01/04 20:57ID:iAU/RP0w
そこで疑似タスクなんてチンケな物出してくる君の実力もそこまで。
ゲームのメインループとキー入力の関係を教えた方が百倍為になる。
0151名前は開発中のものです。03/01/04 21:19ID:tSU5Xw8/
入出力は、本気で考えると意外と深いぞ。

昔のようなハードウェアを 1 つのプログラムで占有できる環境なら
ポーリングさせれば良いんだが、今時の環境についてマジに理解しよ
うとすると、割り込みと OS 側の処理に関する知識が必須になる。

とりあえず「DirectInput では現在のキー入力状態を取得する API
が提供されてるから、それを使えば良い」ぐらいの理解で済ませてお
いて、細かい話は必要になるまで忘れといた方が幸せじゃないかね。

>>141 にちょい追加だが
mainloop()
{
 キーボード入力状態のスナップショットを取得(); // 細かいことは Win32 にお任せ
 一人目のキー処理();
 二人目のキー処理();
 時間を進める();
 描画();
}
0152名前は開発中のものです。03/01/04 21:31ID:mQYZkk6z
俺は151みたいなのが嫌いです。
015314803/01/04 21:41ID:Sa70MEqM
>>150
> ゲームのメインループとキー入力の関係を教えた方が百倍為になる。
ハァ?何それ?・・・って感じですがなにか?

>>151
141のレベルを推測するとそこまで考える必要は全然ないと思われ。
そんなのは逆に知識ひけらかせてるだけにしか見えないが。

そもそも質問にマジレスするとなると、まずほとんどの二人用ゲームで
「同時に処理する必要はないし、厳密にはできない」だな。もちろんこれだけで
141がきちんと理解できるのか疑問だけど、それ以上のことは141自身が
言ってないので答えようがないな。
0154名前は開発中のものです。03/01/04 21:59ID:tSU5Xw8/
> 「同時に処理する必要はないし、厳密にはできない」
そもそも「同時」ってのが何を指してるのか考えないといかんよな。

>>141
現実世界だと時間は連続して流れてるわけだが、ゲームではふつー 1/60 秒なり
何なりの適当な間隔でゲームを進行させる。だから、入力を処理するのも「押し
たらすぐ」ではなくて、押したらそれを覚えておいて、次のゲーム進行のタイミ
ングで処理すれば良い。

…ってのがすべての基本かね。
0155名前は開発中のものです。03/01/04 23:09ID:UD5seDi4
俺みたいなヘタレ高校生がゲーム製作で食っていけるように
なるにはどうしたらいいんだ!?
人生の先輩達よどうか教えておくれ・・・
0156名前は開発中のものです。03/01/04 23:20ID:9YV/5Oa6
>>155
マジレスすると、ゲーム以外のことを沢山勉強すべし。
0157名前は開発中のものです。03/01/05 01:16ID:BX37WwrG
プログラマになりたいなら、プログラミングはやっといた方が良いけど。
あと数学と物理と英語。
0158名前は開発中のものです。03/01/05 02:04ID:Y2P5Wwxz
>>155
ゲーム制作をさせてくれる会社に入りましょう
015914103/01/05 03:22ID:GM2t1dvX
んま!こんなに馬鹿が釣れましたわ!
0160あぼーんNGNG
あぼーん
0161名前は開発中のものです。03/01/05 07:23ID:cPL0Ma17
>>155
プログラマになりたいなら、大学までプログラムは放って置いて
高校までに英語をネエティブ並みに話せる、書ける、読めるようになっておきたい。

俺が。
0162名前は開発中のものです。03/01/05 20:39ID:XJftI3rc
>>161
俺漏れも
0163名前は開発中のものです。03/01/05 21:51ID:+ZilYbBV
英語はプラスアルファに過ぎんから、本業のプログラミングできんと話に
ならんぞ。まぁ、英語も読むぐらいはできないと困るが。
0164名前は開発中のものです。03/01/17 11:54ID:zxXu494p
     ∧_∧
    ( ´∀`)< 糸冬 !!
    /,   つ
  ( ((_(_, )) )
     しし'
0165名前は開発中のものです。03/01/23 12:30ID:B/UbhrUo
age
0166si03/01/29 11:03ID:03M+lMkZ
簡単なゲームのプログラミングぅpしてください。
C言語で希望です。
0167名前は開発中のものです。03/01/29 13:57ID:2TLqok57
ローグ・クローン2 日本語版 ソース
http://www.vector.co.jp/soft/dos/game/se000996.html
0168あぼーんNGNG
あぼーん
0169名前は開発中のものです。03/01/29 21:03ID:SdJpN0Xo
http://www.hh.iij4u.or.jp/~peto/ みながら勉強してるんですが、
ちょっと疑問に思ったので質問させてください

たとえば、飛行機を表すタスクがあって、飛行機が移動しますね。
で、3Dのゲームだとカメラから描画の順番とか決めたりする処理がきて、で、そのあとに描画本体が来ますね。
とうぜん、飛行機の描画処理は飛行機タスク自体がおこなっていると思うのですが、ここで疑問が生じました。

飛行機タスクは、1フレームの中で優先順位が変わるたびにリストの中を移動しているのでしょうか?
それだとリスト中の位置を特定するのにいちいちサーチをしているのでしょうか?

それとも、「飛行機」を表す複数のそれぞれ優先順位の違うタスクで一つの「飛行機」を構成している?
それだとデータをどのように共有しているのでしょうか?

おしえてください。
0170名前は開発中のものです。03/01/29 21:18ID:fBpSUHac
>>169
>飛行機の描画処理は飛行機タスク自体がおこなっていると思うのですが
ダウト
0171名前は開発中のものです。03/01/29 21:26ID:SdJpN0Xo
はぅ。

そいでは、どうやって描画してるのでしょう?
飛行機描画関数に飛行機を渡しているのかな?
0172名前は開発中のものです。03/01/29 21:36ID:SdJpN0Xo
っていうか、聞きたいことずれました。

要するに、

1.タスクはリストの中を移動することがあるのですか?
Yes -> 2 / No -> 3

2.リストの中をどうやって移動するのですか?

3.そしたら(描画をするのが飛行機タスクじゃないにしても)どうやってタスク間で情報を共有していますか?
0173名前は開発中のものです。03/01/29 23:11ID:KEqojg40
タスクは前タスクと後タスクのアドレス情報を持ってるから
移動するとか考える必要ないんじゃない?
あと、タスク間での情報の共有って? 各タスクから共通の関数呼べば済むのでは?
0174名前は開発中のものです。03/01/30 00:37ID:L8+k5MAr
>>171
描画をタスク自身が行うとは考えにくい。
タスクというレベルにまで到達しているなら、
「描画専門タスクに描画を依頼する」
という方式になっていると思う。

描画されるものとしての飛行機と、
アプリ内でのオブジェクトとしての飛行機を、
区別することが肝要だと思う。
0175名前は開発中のものです。03/01/30 02:17ID:BqRtFvdb
>>173
2方向リスト処理ですよね。この場合、私の質問は、STLで書いちゃうと
std::list<task *> tasklist;
tasklist.remove(this);
tasklist.insert(newpoint, this);
の newpoint の位置をどうやってチェックしてるんですか?っていう意味だったのです。
listの先頭から全部なめていくのかなー・・・、それとも別の頭いいやり方があるのかな〜と。

情報の共有というのは、もし飛行機が
struct 飛行機 {
 actor * a1, * a2;
}
で構成されるものだとして、a2 はどうやって a1 の中の変更した情報をチェックするのだろーとか考えてました。
いちいち new 飛行機 とかすると、(速度的な面で)疑似タスク使ってる意味がありませんよね?

>>174
なるほどです。
描画されるものとしての飛行機っていうのは、単純に飛行機のスプライトとか3Dモデルとかでいいですか?
0176名前は開発中のものです。03/01/30 02:20ID:ZJQj5onM
>>171
そのページの概念は処理順が安定している内部処理に絞られた物なので、
描画には向かないです。つーか勝手に用語用法決められても(汗

描画系で言ったら、

フレーム毎に「TCBアドレス+カメラ距離のセット」のリストを作成し、
距離基準にソーティングした後、リストを順になめて描画をする

様な処理が必要です。(実際にはマルチパスレンダやらなにやらで、優先度
の基準は色々追加されていく)
0177名前は開発中のものです。03/01/30 02:26ID:BqRtFvdb
あ、情報共有のところ、修正って言うか追加です。

「飛行機作るときに、a1 に a2 へのポインタかませば良いんじゃないの?」
っていうのは、飛行機を構成する疑似タスクがたくさんになってくると、メモリ領域の中身が
ポインタだけで埋まっちゃう・・・とか思ったので、使わないんじゃないかなとおもいました。
017817103/01/30 03:30ID:BqRtFvdb
>>176 なるほどです。めもめも。

#これで書けたら、うれしなっとプチ
0179デフォルトの名無しさん03/01/30 03:38ID:dIfJNfqd
私は new 飛行機 でやってる人なので、参考になるかわからんけど…

newpointの位置
「ここから先は敵タスク」みたいな目印用のタスクを何個か加えて、
それのポインタをグローバルで持たせてる。
それ使って大雑把にサーチした後に細かく見てる感じでやってるけど… 他に良い方法あるのかな

情報の共有
基本的に、子が親のポインタを持つのみ。
親から子に何かさせたい時は、親が自分のフラグを変えて、子がそれを見に行く。
子同士で何かさせたい時は、子が親のフラグを変えて、他の子がそれを見に行く。

補足
タスクの移動は、タスクを管理している側で操作したほうがいいと思う。
自分で移動するとnextが変わっちゃうので、他タスクがスキップされたり2回処理されてしまう。
情報の共有は、親は自分が参照されているかどうか、調べる必要があるかも。
子が持っているポインタが開放されたタスクを指していることがないように。
0180>>16903/01/30 03:47ID:Lo8nF9w1
3Dの場合、半透明部分は後で描画しないといけないとか、細かい処理があるので、
「3D描画エンジン(仮名)」というような割合高機能なクラス(もしくは関数群)を作って、
それに描画を依頼する形で考えると良いのでは。

1.各物体オブジェクト(タスク)は、「3D描画エンジン」に指定位置での指定3Dモデルの
  描画を依頼する。
2.「3D描画エンジン」は、それらの情報(位置、方向+モデル)を総合してソートなどして
  描画順などを決め、一気に描画する。

つまり、描画順は各物体オブジェクト(タスク)にとっては知ったこっちゃねぇと。
描画エンジンが面倒みてくれるよと。こゆわけです。
だから描画順によってリストを移動などしなくて良いのです。
0181名前は開発中のものです。03/01/30 07:34ID:xfHNFz6r
WM_PAINTで一気に描画するWindowsの基本と一緒だね。
タスクは結局ステートを変更するだけに過ぎない。
018217103/01/30 13:02ID:BqRtFvdb
>>179
>情報の共有
子同士で何かするときのイメージなんだけど、親を掲示板に見なして、
A「なんかすっぜ」
B「おー」

B「おれはやったぜ」

A「そかりょかーい」
B「うぃ」

みたいな感じでいいのかな?

タスクの移動に関して「nextが変わっちゃう」問題は、タスクを取ってきたときに
nextを保存しておくのはダメですか?

>>180
なるほどです。
0183名前は開発中のものです。03/01/30 14:45ID:U9i8fY1r
>情報の共有
俺は、ポインタに1クッションおく「ハンドル」を使ってる。
Windowsのウインドウハンドル(HWND)なんかと概念は同じ。
ポインタを直接持たずに、ハンドルからポインタを得る。

安全だけど、面倒くさい。

参考URL
http://www2.tky.3web.ne.jp/~yosshin/memo/000213.html
0184あぼーんNGNG
あぼーん
0185名前は開発中のものです。03/01/30 21:45ID:L8+k5MAr
>>183
破滅的な状態を回避するには有効だと思う。
0186名前は開発中のものです。03/01/31 10:15ID:6VWpyBYm
要するにMVCモデルとかDocument-Viewモデルというやつだな。
0187名前は開発中のものです。03/01/31 11:35ID:4bR+Vd+q
すみません質問です。
CGIはサーバ&クライアントの関係を用いて
データのやり取りとりを行いデータの読み出しや書き込みをしていますよね?

ではGAMEではどのようにしてセーブをおこなったりしているのですか?
ゲームボーイやファミコンの本体にサーバとクライアントの機能が
備わっているとは思えないのですが…。
どのような仕組みで保存(セーブ)をしているのでしょか?


0188名前は開発中のものです。03/01/31 11:37ID:6ynLwhZo
いやすべてがクライアント/サーバ型じゃないから。
GAMEって例えば?
0189名前は開発中のものです。03/01/31 11:40ID:4bR+Vd+q
どんなゲームでもいいんですが
ドラクエでもなんでもデータセーブ機能がついているゲーム。

サーバ&クライアントの関係を使わないとしたら
どのようにして保存をするのですか?

どのような言語で書かれたプログラムを使うのかとかおしえてください。
あとできればその理論が知りたいです。
0190名前は開発中のものです。03/01/31 11:40ID:H1fkys7O
>>187
マルチうぜぇ
消えろ
0191名前は開発中のものです。03/01/31 11:41ID:NYWMKE8k
マルチポストじゃなければ答えてあげたのにね……残念。
0192名前は開発中のものです。03/01/31 11:45ID:4bR+Vd+q
すみません。
この時間では書込みが少ないと思いマルチにしてしまいました。

おしえてください。。。
0193名前は開発中のものです。03/01/31 11:50ID:Oks/Mlfb
答えてあげたいけど、マルチポストは大嫌い。
そのような abuse 行為は善意に支えられたネットワークにとって
最大の敵であることを知りなさい。

恥知らず。
0194名前は開発中のものです。03/01/31 11:57ID:yMAewiuo
あのさ、マルチポストってだけならば別にわるいことって、ネチケットのFAQで読んだことがあるよ。
それも一度や二度ではなく。URLなんか覚えてないけどね。

ただし、質問者がマルチポストした先の答えをまとめて、
全ての回答者にこれこれこーなりました、ありがとーと言って回るならばっておまけ付き。
0195名前は開発中のものです。03/01/31 12:07ID:Q0GDcsqu
メモリカードとかに記録してるんだろ?
なんでサーバ・クライアントの話が出てくるのか分からないんだけども
0196名前は開発中のものです。03/01/31 12:46ID:yMAewiuo
>どんなゲームでもいいんですがドラクエでもなんでもデータセーブ機能がついているゲーム。

んっとさー、おーざっぱに答えるから嘘ついてるかもだよ。

コンピューターっていうのは CPU と メモリ とそれらをつなぐバスっていうのが最低限の要素なんだよね。

ファミコンっていうのは、メモリをつけてないコンピュータを売りつけて、
遊ぶためにはメモリ(ROMカセット)を買ってくださいって仕組みだったんだよ。

で、ROMカセットの中に RAM も入れて、電池で連続起動しておけばセーブシステムのいっちょあがり。
0197名前は開発中のものです。03/01/31 13:30ID:nYsHWhwS
連投規制で書き込めないと見た。
0198あぼーんNGNG
あぼーん
0199名前は開発中のものです。03/01/31 19:18ID:qsXaXa9v
Cを中心に簡単なゲームを作りたいと考えているのですが、
Game Programming Gems以外に何か参考になる図書はありませんでしょうか?
よろしくお願いします。
0200416 ◆quHoSW/FCI 03/01/31 19:49ID:2OuKlzSK
>>187
 認識がヘン。

 CGIやネットゲームのようなサーバ&クライアントの関係がある環境でも、
それは単に、サーバ側にデータを保存させているか、クライアント側に保存させて
いるかの設定の違いに過ぎない(CGIやとクラ側保存は・・・クッキーがあるか)。

 データ保存が可能な環境と、保存命令があれば可能。サーバ&クライアントの
関係はぜんぜん関係無い。
0201名前は開発中のものです。03/01/31 21:13ID:2op7A3hN
というか要するに187は、CGI…というかPerl辺りを
限定的な環境でちょこっとかじっただけなんでしょ。
一生懸命説明しても無駄だと思う。
0202名前は開発中のものです。03/01/31 22:13ID:2ZzIvrax
最初は実体を例示しないとわからないのは仕方ないけど
ずっとその例示を引きずるのは頭悪いな
0203名前は開発中のものです。03/01/31 23:02ID:vCqXldk6
>>199 簡単な、どんなゲームを作りたいの?
0204名前は開発中のものです。03/01/31 23:36ID:qsXaXa9v
>>203
インベーダーゲームみたいな2Dの簡単なソフトです。主にシューティングを中心に作りたいです。
0205名前は開発中のものです。03/01/31 23:51ID:B3NC8eT4
>>199
ゲームプログラミング遊びのレシピ―アルゴリズムとデータ構造
http://www.cmagazine.jp/books/recipe/
http://www.amazon.co.jp/exec/obidos/ASIN/4797316535/ref=pd_bxgy_text_1/t/249-7245941-5470719
は、どーでしょうか。

本屋さんでよく見かけるので、立ち読みしやすいと思う。
C++Builder&Delphiなのでそのままでは使いにくいけど、
日本語での解説部分はアルゴリズムの参考にはなるかと。
0206名前は開発中のものです。03/02/01 00:33ID:JG1cEAZ6
>>205
ありがとうございます。参考になりました。
0207あぼーんNGNG
あぼーん
0208名前は開発中のものです。03/02/02 16:57ID:6i0/vwvm
2Dで、人間の関節などを動かせるようにしたいのですが、
まずどのようなものを勉強すればいいのでしょうか。

キーワードとかってあります?
0209名前は開発中のものです。03/02/02 17:02ID:9DYxK8lo
2Dで?
どうもイメージ沸かない・・・
0210名前は開発中のものです。03/02/02 17:05ID:fhT0wplm
>>208
階層構造,ローカル座標系
IK,FK
ここまでは3Dでもいっしょ
2Dなら画像の回転も必要かな
0211名前は開発中のものです。03/02/02 17:11ID:zcwy9VYW
2Dで関節っていうと、幼稚園児向けの番組で動かしてる人形を思い出す……。
手足にそれぞれ黒い棒がついてて、関節がおかしな方向に平気で曲がる紙人形。
0212名前は開発中のものです。03/02/02 17:12ID:zcwy9VYW
あとはこれか
「多関節キャラによる格闘ゲームを作るスレ」その2
http://pc2.2ch.net/test/read.cgi/gamedev/1015771528/l50
0213名前は開発中のものです。03/02/02 19:02ID:DGXzuX3G
IK,FK を検索エンジンで調べるためのキーワードをおしえれ。
0214名前は開発中のものです。03/02/02 19:32ID:t6/9t4TG
インバースキネマティクス
0215名前は開発中のものです。03/02/02 19:59ID:DGXzuX3G
ありがとぅょ
0216名前は開発中のものです。03/02/02 23:29ID:ngVInDbv
>>215
FK(フォワードキネマティクス)の方が簡単だから
IKよりFKをやってみては?
0217名前は開発中のものです。03/02/03 07:46ID:JqqWIodK
えーと、PALスレとか、リフレッシュレートスレでいわれてる、不定間隔なフレーム処理の補間ってどうやるんですか?

B宗(v += a)な私には、フレーム処理を 5ms 毎に実行して、それを V-Sync で描画するぐらいしか想像がつかないんだけどー。
0218名前は開発中のものです。03/02/03 08:53ID:0/huq5OJ
>>217
リフレッシュレートに関する論争
http://matsuzak.pobox.ne.jp/directx/faq/refresh-rate.html
0219あぼーんNGNG
あぼーん
0220名前は開発中のものです。03/02/06 00:54ID:2WnqR6mA
2Dゲームを作るときに、アニメーション画像って、どうやって管理しますか?
RPGの主人公がマップ上を歩くときに、手足が動いたりするのですが、
タイマーをかけて、stateを1,2,3,4,1,2,...って変えていって、
stateの値ごとに描画を変えるのがいいですか?

それだと、アニメーションが複雑になると、プログラムも汚くなるのですが、
もっと見やすくていい方法ってないですか?
0221名前は開発中のものです。03/02/06 01:11ID:yacnI+6d
>>220
アニメーションデータを表すデータ構造を作れ。
そしてそれを解釈して描画するプログラムを作れ。

これなら、アニメーションが複雑になってもプログラムに影響は無いぞ。
さらに、アニメーションデータを編集するツールを作るともっといい。
0222あぼーんNGNG
あぼーん
0223名前は開発中のものです。03/02/07 00:53ID:WYEzYilN
>>220
>もっと見やすくていい方法ってないですか?
きちっとした設計できれいにコーディングをする
いやマジです
関数とか構造体とかクラスってわかります?
0224名前は開発中のものです。03/02/08 23:35ID:B2NmrZjg
>>220
状態遷移のクラスを作って、定期的にそいつから
アニメーションパターンの数字を取得するようにする。
描画するときは、その数値に対応した絵を表示させるだけ。
0225名前は開発中のものです。03/02/08 23:49ID:He/KRUT1
>>224
すいません。想像しづらいのですが、
クラスのインターフェースを書いてもらえますか?
0226名前は開発中のものです。03/02/09 00:43ID:EKddfl4f
>>225
甘えるなゴルァ

「有限状態オートマトン」で検索するか、
"Game Programming Gems 1" の 「3.1 有限状態マシンクラス」を読んでくれ。
(全然難しい内容ではないが、まあ、一応)
0227名前は開発中のものです。03/02/09 00:45ID:yUWb7xod
何回か作り直してればそのうちマトモな形になるよ
0228名前は開発中のものです。03/02/09 01:09ID:gYbNlh+m
>>225
ttp://210.143.102.80/upload/source/d/0685.txt
0229あぼーんNGNG
あぼーん
0230名前は開発中のものです。03/02/10 16:24ID:FAmepXpS
処理落ち率の計算の仕方を教えてください。
フレームを飛ばさないのに、処理落ちするって、どういうことですか?
処理は落ちてないんじゃないですか?
0231ぽぷり03/02/10 16:27ID:6VC5i/Lt
最初からココで聞いたらよかったかな。
あと2箇所に書き込んだマルチだが良かったら質問よろしく頼みます

いまFF4のパクリ作ってるんだけど戦闘の曲を.wmaで作った。

で、これをループでエンドレスで流すわけだが
そのまま初めのフレーズ(ダダダダ、ダダダダ・・・・)に戻ってしまう。

この曲は1分54秒まであるんだが
俺としては0:00から1:54まで流した後
ループは0:00からではなく00:53あたりからにしたい。

どうしたらいいかな?誰か賢い奴教えてくれ。

流れとしては・・・・

戦闘開始(音楽スタート)
0:00→1:54→0:53→1:54→0:53→・・・・・戦闘終了(音楽終了)

っていう感じにしたいです


0232デフォルトの名無しさん03/02/10 16:28ID:sFeXOrcI
ゲームで時間のかかる処理をしていると画面の
キャラクターの移動などがズルッズルッと遅くなる。
これが処理落ちしているという状態。
時間内に処理が終わらないのを「落ち」といっているのでしょう。
この場合処理はとばしていません。

パソコンでよく見られるのが、処理が重いときに処理をスキップする
やつです。画面の更新がなめらかでなくなってカクカクして見えます。
0233あぼーんNGNG
あぼーん
0234あぼーんNGNG
あぼーん
0235名前は開発中のものです。03/02/10 17:15ID:xlyrLNIL
>>231
DirectShowでも、DirectSoundでも、MCFでも、プログラム上で制御は可能だが…。
0236名前は開発中のものです。03/02/10 17:25ID:VY6anJSf
>>231
マルチウゼー

http://pc2.2ch.net/test/read.cgi/gamedev/1028183728/60
http://pc2.2ch.net/test/read.cgi/gamedev/1035601681/922
0237ぽぷり03/02/10 20:03ID:6VC5i/Lt
>>235
HSPでは無理かな?
プログラム上の制御って、どんな項目で検索したらいいでしょうか?
0238名前は開発中のものです。03/02/10 21:04ID:pyEAMejp
>>230
処理落ちとコマ落ちについても >>218 のリンク先に
書いてるから読んでみ。
0239名前は開発中のものです。03/02/10 22:04ID:n899aQqE
>>237
>>235が十分なくらいキーワードだしてるよ。
MCI(MCFは間違いだよな?)、DirectSound、DirectShow
HSPはよく知らないが、
MCIはWindowsAPI、DirectSound、DirectShowはCOMが扱えれば大丈夫。
HSPがそれらを扱うのが難しい言語ならば、
他の人が作ったライブラリを使う手もある。
# HSPといえどもDLLぐらい使えるだろ?
0240名前は開発中のものです。03/02/10 22:09ID:n899aQqE
>>237
こんな方法もあるようだ。
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=HSP+DirectShow+%83%8B%81%5B%83v%95%94%8D%C4%90%B6&lr=
0241名前は開発中のものです。03/02/10 23:15ID:+EgLsXBk
>>237
マジで氏んでくれ。
024223503/02/11 00:32ID:OEwInXkJ
MCFは間違い。
何やってんだ、俺。
0243名前は開発中のものです。03/03/02 11:58ID:1UsFLoT7
保守sage
0244名前は開発中のものです。03/03/04 22:15ID:QU9Qm2YP
敵の弾で曲がるレーザー系のを作って見たいのですが、
雰囲気としては一度敵機の近くでゆっくり動き、目標に向かって
早い曲線を描こうと思っています。おそらくゆっくり部分と狙撃部分の
2つのルーチンを使用するかとおもいますが、問題が2つほどありまして、
1)曲線が目標位置によってイビツになる。
2)レーザー表現を座標引き渡しで20個ほど丸オブジェクトを使用
  したので、処理が遅い。
何か良い方法はないのでしょうか?
0245名前は開発中のものです。03/03/08 01:35ID:AeESF41/
見た目だけクォータビューで、内部的にはトップビューなゲームを制作中なのですが、
座標を四十五度回転させてから上下半分に潰して表示している為に、見た目上上下の移動が遅く、左右の移動が早く見えてしまいます。
こういう場合、みなさんどうしていますか?
0246デフォルトの名無しさん03/03/08 01:52ID:omw6bur7
>>244
遅レスだけど。

1)
float f = atan2(目標とのyの差, 目標とのxの差) - (現在の進行方向);
while (f<-3.14) f += 3.14*2;
while (f>3.14) f -= 3.14*2;
(新たな進行方向) = (現在の進行方向) + f*(曲がり具合0.0〜1.0);
とかやってみる。符号とか間違ってるかも。
よく状況がわからないけど、変化量が急に変わらないようにすればいいんじゃないかな。
2)
直線で繋ぐとか。
0247名前は開発中のものです。03/03/08 01:58ID:Qzt+JfAG
>>245
画像にかけた、縮尺を移動量にもかける。
上下が左右の50%なんだろ?
じゃあ、移動量も50%でいいじゃん。

つーか、それ
クォータービュー風表示で、内部がトップビューって言うか?
一瞬意味が分らなかった。
0248あぼーんNGNG
あぼーん
024924503/03/08 03:30ID:AeESF41/
>>247
お返事有り難う御座います。
内部でのベクトルも表示時には四十五度回転しているため、
それではうまくいかないのです……。
(内部的に下にすすめが表示上は左下に、右に進めば右下に進んでいるように見えます)
内部のマスは正方形ですが、表示時は菱形なので移動量がおかしくみえるということなのですが……。
0250名前は開発中のものです。03/03/08 04:03ID:Qzt+JfAG
>>249
その処理だと、クォータービューって言わないじゃん。
つまり、クォータービューって斜め見下ろし型でしょ?
君の言ってる移動処理は、トップビューでただ45度回転してるだけだよ。
それでは、描画と移動処理が噛合う訳が無いよ。

普通は、トップビューと同じ処理で、横長の菱形MAPchipやなんかを
用意してキャラをMAPchipより手前にずらして立たせて
完全2D処理で、擬似クォータービュー見たくするもんだが…

ベクトルとか言ってるなら、それは3D処理が必要。
つまり、菱形を潰して描画してるだけなのだろうが
それって普通に見た場合(3D視点)、奥行きがあって
斜めに見下ろしてるから左右は広く、手前と奥で縮まる訳だ。

君の言ってる事を解析すると、移動処理は2次元ベクトルを平面で45度回転しただけ。
MAPchip描画は上下に潰しただけ。しかし、そのMAPchipは見た目には奥行きがあって斜めに見た様に見える。
その噛み合わせが不自然って訳だ。当然かな。

解決策として、大道は移動ベクトルと描画用MAPchipに同じ3D処理をする。
もう一つは、その処理を止めて違う処理に変える。
そんな感じじゃない?
0251あぼーんNGNG
あぼーん
0252名前は開発中のものです。03/03/08 04:10ID:tiy6mV84
すべての方向に対して、同じ時間で移動できる場所に点を打ってその点を補完して線にする。
すると、君のプログラムでは、正方形が出来上がるわけだ。
ところが現実には円になることが期待される。

君のプログラムは、内部的には「円を正方形で近似している」んですよ。
そのまま表示すれば、移動方向によって速度に変化が生じるのは当たり前。
対策は、内部のプログラムを書き直して円を円として扱うようにするか、
あるいは円を八角形で近似するように書き直すか、
グラフィックを表示するときに縮尺を変えて正方形を円に近くなるようにごまかすか、
そんなものしか考えようがないでしょう。
025325203/03/08 04:12ID:tiy6mV84
ごめん勘違い。
無視してください。
0254名前は開発中のものです。03/03/08 04:32ID:Qzt+JfAG
ん?やっぱさ247で言ってる通りでいいじゃんか。
君の描画処理って45度回転して上下に潰すっていてるよね?
その言ってる正方形ってのがMAPなんだろうが、
移動ベクトルにも同じ処理してないじゃん。
上下に潰すって事は、Y軸方向にスケールをかけてる訳だ。
そのY軸方向のスケールを、移動ベクトルにもかけてるか?
つまり、移動ベクトルはX成分はそのままで
Y成分が縮まる(上下に潰れる)ってやれば整合性が取れるじゃん。

…そうじゃ無いってなら言ってる意味がもう分らないよ…
0255名前は開発中のものです。03/03/08 06:00ID:MKbGXKwx
画像が欲しいとこではある
025624503/03/08 09:51ID:AeESF41/
>>250-255
真面目にレスいただき、ありがとうございます。
意味がわからない面も多々あり、申し訳ありません。
画像は用意したいと思うのですが、よかったらどうかお待ちください。
マップ自体は見た目上だけクォータービューで、
(画像は潰しておらず、べた表示です)
キャラクタの表示する座標だけを描画時にマップの端を軸に45度回転させて、
上下に半分潰すことでクォータービュー風(移動)にみせています。
要するに内部的に上に進めば
表示座標上は(45度/2の傾斜がついた)左上に進んでいることになるわけで、

内部のY軸方向のスケールと、
描画時のY軸方向のスケールは45度/2ずれているわけです。
なので内部的にY軸だけに補正をかけると、
描画時にはX成分にも影響を与える訳です。

勿論、内部的には円を近似した移動値で書かれているのですが、
その、円の移動値(−X-Y)〜(+X+Y)のスケールだけが
描画時には半分に潰されてしまっているわけなのです。

よって、内部的には正円ではなく、楕円に進む必要があるのか、と考えています。
すこし妙な感じがするのですが。







025724503/03/08 10:29ID:AeESF41/
ちなみにイメージ図は
http://www.geocities.co.jp/SiliconValley-PaloAlto/7551/topview.jpg
な感じです。
マップの描画などは全く視野に入れません。
0258名前は開発中のものです。03/03/08 11:16ID:tiy6mV84
>>257
そりゃああた、パースを考慮に入れてないからっす。

普通の二次元画像を斜めにして単純に潰すと、絵としておかしくなる。
だから、その絵としておかしいMAPの上で正しくキャラを動かしても絵としてはおかしくなる。
この世には遠近法というものがあって、遠くのものは小さく、近くのものは大きく見えるのが世界の常識です。
実際には遠近法を考慮しなくてもそれなりに綺麗に見えるものなのですが、
奥行きが深い場合はちょっと不自然に見えます。
0259名前は開発中のものです。03/03/08 11:18ID:Qzt+JfAG
>>257
やっぱり247と254で言ってる通りじゃんよ。

で、君の言ってる事が意味が通って無い。
まず、最後に潰そうが何しても、移動量ベクトルの”大きさ”は
四方向で”同じ”だ。差なんて無いじゃん。

つまりベクトルで言うと
上(0, 1)
右(1, 0)
下(0, -1)
左(-1, 0)
が、45度回転して(-PI/4)
上(-0.7071, 0.7071)
右(0.7071, 0.7071)
下(0.7071, -0.7071)
左(-0.7071, -0.7071)
で最後にYにスケール(Y:1/2)をかけるても
上(-0.7071, 0.3535)
右(0.7071, 0.3535)
下(0.7071, -0.3535)
左(-0.7071, -0.3535)
って四方向は、”方向”が違うだけで”大きさ”は同じだが?

…ベクトルって言い出したのは、君の方なので
ベクトル自体は扱えるよな?
0260名前は開発中のものです。03/03/08 11:24ID:HkNGp/2b
斜め上から正射影で見た状態やね

>>245
>見た目上上下の移動が遅く、左右の移動が早く見えてしまいます

上下と左右の見た目スケールが違うんだから、
そう見えてしかるべきなんでは?

見た目で同じスピードにすると、
実マップ上での移動速度がヘンになる(軸により偏りがでる)けど
それでいいのかな。
0261デフォルトの名無しさん03/03/08 11:38ID:omw6bur7
表示の座標から見て、「上下」と「左右」の移動に差が出るってことは、
内部の座標から見て、「上下左右」と「斜め」の移動に差がある。
…あってるのかわからんけど。

それなら、内部座標から見た「斜め」方向への移動を減らせばいい。
なんか、気持ち悪いけど。

リロードしたら>>260と同じだった…
さらに読み返すと、楕円に進む と同じようなこと言ってる気もする。
026224503/03/08 11:54ID:9W7WzJNL
皆様レス有り難うございます。
>>255
パースは一応理解しているのですが、
2Dとして不自然でないように取り入れるにはどうしたらいいのかと思いまして。

>>256
そうですね、内部的なベクトルの大きさは同じです。
でも、見た目上の(プレイしている側からしてみれば)違っているように見えてしまいますよね。
これを正したいと思ったのです。

>>260>>261
そうですね、中身が移動量が異なると気持ち悪いと思います。
そして、見た目上も正しいと思うのですが
クォータビューなゲームで
上下と左右の移動量が違う(ように見える)と何だか変な感じを受けたりしませんか?

これをうまく解決したい、と思ったのですが……。
うまく言えなくてもうしわけないです。
0263名前は開発中のものです。03/03/08 13:03ID:HkNGp/2b
うーん、画面がしっかり傾いているように見えれば、
ヘンには感じないと思う。そう印象付けるような画面構成にするといい。

車の後ろから見るレースゲームで、等間隔にオブジェクトを配置したり
等間隔に地面に模様をつけるのは、走ってるという感覚を引き出すための
基本テクニックだったりする。のっぺりしてると速度感が沸かないのよ。

クオータービューについてもそういう工夫があっていいんじゃないかなあ。
0264あぼーんNGNG
あぼーん
0265416 ◆quHoSW/FCI 03/03/08 16:20ID:s3TXU6Pq
>>262
 もしかして、トップビューで言うところの斜め移動をさせてない? トップの
上下左右はクォーターでは斜め45度だが、トップでの斜めはクォーターでは
真横とかになるよね。
 移動がマス方式のクォータービューでは斜め移動はそう見える。A列車3、4で
列車が真横に移動するのと、斜めではえらく差があるように。
0266あぼーんNGNG
あぼーん
0267あぼーんNGNG
あぼーん
0268名前は開発中のものです。03/03/13 14:53ID:x1k2yze2
春休みとDirectX8を利用して、Ys3っぽいべたなアクションゲームを作ってます。
描画周りは一通り出来たのですが、ここで疑問が・・・

キャラが動いたときの描画なのですが、
既に配置済みの背景の中を、ビュー行列を変えて移動させるのと
ビュー行列据え置きで、キャラ周りの背景を移動するたびに配置換えする

一般にどちらが良いのでしょうか?
前者の方が簡単そうにみえ、今はそちらなのですが、
MatrixのFLOATで補えないくらい広いマップとかは、どうなるのかなどと考え出したら・・・。

お馬鹿な質問ですが、よろしければマジレスいただけると嬉しいです。
0269あぼーんNGNG
あぼーん
0270名前は開発中のものです。03/03/13 22:12ID:M64nHos+
>>268
Ys3って横から見たような画面構成だっけ?

PC88やPC98はマップチップを組み合わせて画面を構成してたと思うけど、
(つまり後者)それほど難しくないよ。
0271名前は開発中のものです。03/03/14 00:05ID:1VLZD/pC
>>270
レスありがとうございます。やはり後者でしたか_| ̄|○

PC88やPC98ではと言うことですが、今はあまりこういう手法は用いないのでしょうか?
しかし、やはり効率的な描画方法っていうのは、今も昔も変わらなそうですね。

画面は仰るとおり、横から見たようなのです。
私はこれとリンクの冒険が大好きで・・・。どっちも一般にはアレですが・・・。
0272名前は開発中のものです。03/03/14 00:06ID:1VLZD/pC
すいません、あげてしまった・・・。
スクリプト荒らし来ちゃうかな・・・。
0273名前は開発中のものです。03/03/14 01:24ID:41+v9X+W
>>271
GBとかのBG面があるゲーム機は今でもそんな感じ。
背景がモデルならば仕様次第な気もするけど、似たような事をやらなくも無い。
0274あぼーんNGNG
あぼーん
0275名前は開発中のものです。03/03/14 03:08ID:MgAhF4Kv
ttp://www.asahi.com/english/svn/K2003030600209.html
によると、PS3はプロセッサ72個を使用するらしい。

PS2のcoreとVU0,VU1の三つでも、効率の良い並列プログラムは
難しいのに、72個ものプロセッサを使いこなせるプログラマは
果たして存在するのか?
0276名無し募集中。。。03/03/14 05:14ID:fXoEalJM
1個だけでゲームの処理を担当。
もう一つで効果音などのサウンドを担当。
残りはすべてポリゴンの座標計算
0277あぼーんNGNG
あぼーん
0278あぼーんNGNG
あぼーん
0279名前は開発中のものです。03/03/15 03:20ID:i28WpAET
1タスクに1個のプロセッサでいいんじゃないの?

0280名前は開発中のものです。03/03/15 11:30ID:dtuvcX+v
3角形のポリゴンと、直線の交差判定をするC++の関数を誰か作ってください。
bool func( Vector p1, Vector p2, Vector p3, Vector l1, Vector l2);
こんなかたちで、p1,p2,p3がポリゴンの頂点、l1,l2が直線の両端座標です。
Vectorは構造体かクラスで、x,y,zの座標を持っています。
交差してたらtrue、してなかったらfalseを返すというものです。

お願いします。
0281名前は開発中のものです。03/03/15 12:13ID:CBUe4G93
>>279
プロセッサ間の同期処理だけでほとんどのCPU時間が消費されそうな予感
並行処理できるならハナっからそういう単位で仕事をする
高速なプロセッサに分けてくれたほうがマシと思う

>>280
アルゴリズムを書いてくれたら、関数を書くよ。
できるだけ詳しく頼む。
0282名前は開発中のものです。03/03/15 12:39ID:FEgToVwJ
3Dの座標をスクリーンの座標(0-639,0-479)に対応させたいんですが
どうすればいいですか?
カメラを移動させて試行錯誤しておおまかには合ってきたのですが
どうしても左上が(0,0)、右下が(639,479)にビシっとあってくれません
0283ひよこ名無しさん03/03/15 12:41ID:5k0LvKxN

(,,゚Д゚)http://www.geocities.co.jp/HeartLand-Yurinoki/3749/dustbox.html
0284名前は開発中のものです。03/03/15 13:17ID:dtuvcX+v
>>282
はじめから2dスプライト使えばいいのでは・・・
DirectXでテクスチャ貼って使うなら
柔軟な頂点定義でトランスフォーム済み頂点を持つの定義して
ポリゴン2つ作って貼ればいいのでは?
0285名前は開発中のものです。03/03/15 14:42ID:P8D5lOXq
>>282
昔Cマガでそれを実現する記事があった。
http://www.cmagazine.jp/contents/200110.html
俺はこれを参考にしたよ。
0286名前は開発中のものです。03/03/15 18:02ID:FEgToVwJ
>>284
>>285
ありがとうございますっ!!
2Dスプライトを3Dオブジェクトに置き換えたかったんです
説明不足スマソ
Cマガジン持ってたので解決できそうです
やりたいことがほぼそのまま載ってました
ありがとうございました
0287名前は開発中のものです。03/03/15 18:02ID:G8v9XCRO
                                 ∧ ∧   ∧ ∧
   /⌒~~~⌒\                       (   ,,)   (,,・Д・)
 / ( ゚>t≡ )y─┛~~                〜(___ノ  〜(___ノ ,γ_
(_ ノγ U  ∩_∩)   THANK YOU 2ch     ┌───────┐   \
  α___J _J         and          (| ●        ● |      ヽ
  / ̄ ̄ ̄ ̄\  GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| ))
 /     ●  ●、                   ( ┤ .|        | .|□━□ )
 |Y  Y       \ またどこかで会おうね  \.  .└△△△△┘ .|  J  |)
 |.|   |       .▼ |                 | \あ\      | ∀ ノ
 | \/        _人|∧∧∩゛冫、 .∧_∧      |    \り.\     . |  - ′
 |       _/)/)/( ゚Д゚)/ `  . (´∀` )..ヽ(´ー`)ノ  \が\ .   |  )
 \    / 〔/\〕 U  / ∩∩ (    ) (___)    \と.\ .|/
  | | | c(*・_・)  |  |ヽ(´ー`)ノ_|  |  | |   |〜 /\.\う\| (-_-)
  (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
0288名前は開発中のものです。03/03/15 18:37ID:dtuvcX+v
>>287は2ch初心者?こんな古いAAどっから持ち出したんだ
0289あぼーんNGNG
あぼーん
0290名前は開発中のものです。03/03/16 08:39ID:fbjaAIcC
>>288はゲ製作技術初心者?こんなAAにいまどき反応しだして
0291名前は開発中のものです。03/03/16 09:24ID:zCeAM5Bb
>>290
オレも全く同じ事思ったが、
スクリプト荒らしを擁護してるように思えたから、書き込みは控えてたよ( ´∀`)
0292名前は開発中のものです。03/03/16 10:04ID:SkJQDRqn
クドリャみたいなブレードとショットを使うSTGつくってるんですが
ブレードの衝突判定がうまくできません。

普通に判定すると連続ヒットになるので
当たったキャラに無敵時間をつくったらショットがすり抜けてしまいました。
ブレード判定外へ敵をヒットバックさせれば解消できるんですが
それだとブレードコンボ(連続技)が表現できない…
仕方ないので最初に戻ってブレード攻撃力を低く設定し直したら
当たり方によってダメージがばらつく。
そして無限ループ…


漏れ…アフォでつか(´・ω・`)
0293名前は開発中のものです。03/03/16 10:21ID:rJlwcwid
> 無敵時間を

これをブレード?への判定無効フラグにすればいいんじゃなかろうか。
0294名前は開発中のものです。03/03/16 12:05ID:SUE/S+f7
http://www.kmkz.jp/key/
のNonameSTGを参考に
0295名前は開発中のものです。03/03/16 16:18ID:FATlrtEb
       /| /| __
     /DelphiヽADA\【ANUBIS格ゲーはいだラッシュ!】を作りませんか?
     l:;:;:;:ハノヽ).ノリ));:;! 家ゲ板ANUBISスレでは優秀なドッター、プログラマーを
     iヘ;:| ゚ -゚ノ/. ゚ -゚ノ;:;! 募集しています。ANUBISが好きで暇をもてあそんでる方、
      ( つ旦Olつ旦O;| 是非、http://game4.2ch.net/test/read.cgi/famicom/1047656046/
   =o〜と_)_)レ'__)_)レ' までお越しください。お待ちしております。
0296名前は開発中のものです。03/03/16 16:52ID:KY0wD066
>>282
方法1)
D3DXSPRITEを使う。

方法2)
TLVertexを使う。D3DFVF_XYZRHWが含まれてる奴ね。
ヘルプに詳しく書いてあるから読んでみれ。
029729203/03/16 18:15ID:uI5iL2i7
>293
即レスありがとうゴザイマス(´Д`;)ヾ

STGしかつくった事がなかったので
 ブレード→自機を追従するレーザー、多段&複数ヒット
 ショット→当たると消える、多段ヒットしない
としか認識してませんですた。

つーか…漏れアフォケテーイ(;´Д`)


>294
ブレードゲーって意外に多いんでつね。
ともかくソース公開に感謝!
ゲームの方はナゼかパッドが使えなかったです…
リプレイのやり方も知りたかったので解読してみまつ。

0298あぼーんNGNG
あぼーん
0299名前は開発中のものです。03/03/17 06:06ID:my0aeB3m
>>292
ブレードとショットで別々の無敵タイマーを持てば良いんじゃないの?
で、それぞれで無敵タイマーが無敵無効の状態の時のみ当たる事にして、
当たったら無敵タイマーセット。
0300名前は開発中のものです。03/03/19 18:36ID:GS4b6rrW
                    (^\     /^)
                ─╂\_)     (__/╂─   ┏━━━━━━┓
                  ┃    illlli    ┃     ┃ _THE END. _ ┃
                  ┃   (・∀・ )/  †       ┃⊆三三三三⊇┃
              ─╂╂ 」⌒l ''' つ」⌒l ‡==     ┃|l※※※※※l|┃
              ┌╂/ ̄ ̄ヽ / ̄ ̄ヽ †]|    ┃|l※※※※※l|┃
              │┃|(・∀・) |l| (・∀・)|┃     ┃|l※※※※※l|┃
  、ヾ`゛""'ソ'   。ノ'> ┣╋ヽ__/''ヽ__/┻┓   ┃|l※※※※※l|┃
  ミ  ,__/    ゚ノ>。゚                    ヾ`゛゛""' ━━━━┛
  =,(#・∀・) //                    ヽ__ 彡 _。。。。。。
  '(\__ /フ/∈,)      、ヾ`゛"'ソ'            (・∀・#)ミ ) _/`'’
    \_)</        ミ ,_/             (\∪",、/ミ)
  /(  ,__ン\       =,(#・∀・)○┳       `◆-' </
 (_)ヽ_ノ (_)      ノ'(9 __ ヘつ┃      /((,,,) ,つ\
                  〉~ yヘ∩┃     (_)ヽ、ノ (_)
 / ̄ ̄ ̄/ヽ         /ヘ ̄ ̄ ̄ヽ        /ヘ ̄ ̄ ̄ヽ
 |____|_/     _/|_\_|____|        \_|____|
   /\/\/\/    \/\/\/\/\/\/\/\
 シュウリョウー!! オワッタラカエレ!!!カコイイ!! コノスレハブジニシュウリョウシマシター!!!!ジ・エンド!!!!
   \/\/\/\/\/\/\/\/\/\/\/\/
0301名前は開発中のものです。03/03/24 12:16ID:mmzhvCyj
攻撃中は複数の敵に当たるが、同じ敵には1度しかあたらない、
なんて仕様が来たことがあったな(なぎはらうっぽい動作で)
その時は、当たった敵をリストに追加して判定してたけど。
0302名前は開発中のものです。03/03/25 01:44ID:geV3sJ5n
あるゲームで見たホーミングレーザーが非常に綺麗だったので
目標につくっているのですが
どうも自分のはあまり綺麗になりません。
どんな風にやってるのでしょう?
これです。
ttp://forgamedev.zombie.jp/uploader/up5/img/135.lzh
0303追記03/03/25 01:53ID:geV3sJ5n
ホーミングレーザーの誘導の仕方とかではなく
アンチエイリアスがかったようにラインがとても綺麗な
ところをいってます。
0304名前は開発中のものです。03/03/25 02:42ID:aCstEDxO
トライアングルストリップはそのためにある。
0305あぼーんNGNG
あぼーん
0306名前は開発中のものです。03/03/25 06:35ID:w7OmxNqv
ええっ!やだ、そんなエッチなこと・・・
0307名前は開発中のものです。03/03/25 12:21ID:to5h5iKv
一応いっとくとあるゲームってのは、
「らじおぞんで」というwindowsで動くフリーの2Dシューティングです。
0308名前は開発中のものです。03/03/25 12:58ID:to5h5iKv
通った位置を記憶したあとの、考えられる過程がしりたいです。
0309 03/03/25 13:21ID:gZec8/NN
格闘ゲーム作ってみようかと思っているんですが、VRAMが640*480が一枚の場合、
AプレイヤーとBプレイヤーと背景で3等分しているんでしょうか?
それとも背景は若干小さくしているとか?
たとえば、SNKの格闘ゲームはどのような配分なんでしょうか?(ちょっと前の画廊とかサムスピとか)
僕が考えているのは320*320が2枚でAとBプレイヤーのキャラパターンを格納し、
残りの160*640に背景を置くという感じなんですが、キャラパターン用のスペースは出来るだけ多くとりたいし、
背景用はそれほどでもないので、。
0310あぼーんNGNG
あぼーん
0311名前は開発中のものです。03/03/25 13:33ID:c6oq96BT
>>311
本気でいってるの?
0312名前は開発中のものです。03/03/25 13:35ID:/TrSZt8o
          ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|____
0313あぼーんNGNG
あぼーん
0314名前は開発中のものです。03/03/25 17:18ID:LewSLoG3
>>311に激しく笑った。
0315名前は開発中のものです。03/03/25 19:00ID:gw39IESj
>>314
俺もワロタ
0316あぼーんNGNG
あぼーん
0317名前は開発中のものです。03/03/25 22:14ID:OH59+Xxk
格ゲーを作ろうとしています。
今、ユーザーが入力したキー情報を分析して、コマンド技のコマンドとして解釈させる
部分を考えているのですが、やって見るとコマンドの解析というのは結構奥が深い事
が分かってきました。
あれこれ考えてるうちにこんがらがってきたので、この辺のことをまとめてあるページ
とか無いでしょうか。コマンド入力なんて昔からありますし、何か定石があるんじゃない
かと思っているのですが・・・
0318名前は開発中のものです。03/03/25 22:27ID:z0a9/rP0
>>317
http://pc2.2ch.net/test/read.cgi/gamedev/1035601681/439
0319名前は開発中のものです。03/03/25 22:45ID:OH59+Xxk
>>318
レスどうもです。
もうちょっと詳しく書いてある奴無いでしょうか。これくらいなら思いつくんですけど、
例えば
↓\→(PK)
みたいに、コマンド中に同時押しが有った場合とか、同時押し判定とコマンド判定を上手くやる
必要がありますよね・・

実は今、全部の技をコマンド技として扱うようにしようとしています。小パンチは、Pだけで出る
コマンド技、しゃがみキックは下レバー入れながらKで出るコマンド技、という扱いにしてしまお
うかと。
そうすると、単に連続して押されたデータを解釈するだけじゃなくて、「レバー入れながら」とか
を考える必要が出てきますよね

あと、Pで小パンチ、Kで小キック、PK同時押しで強攻撃だとします。
小パンチは出が早い技なので、Pを押した瞬間にパンチモーションに入ります。
ですが、同時押し判定許容時間内にKが押されたら、パンチモーションをキャンセルして
強攻撃に移る必要があったりしますよね。

こういう事を色々考えてるとウワーッワカンネエエってなってきてしまいます・・・
「マンド入力総まとめ」みたいな都合のいいページがあれば嬉しいのです!
0320あぼーんNGNG
あぼーん
0321名前は開発中のものです。03/03/25 22:55ID:NWBR/7Ke
うーん、統一された手法とか、定石というのはまだ確立されていないんじゃないかな?
個々のプログラマが実現したい現象を元に自分なりにプログラムを書いている状態。

私だったら、コマンドのデータ列をあらかじめ配列か何かの形で作って、
コマンドの進み具合を示すポインタをコマンドの種類ごとに一つ定め、
ポインタの次の動作に該当したらポインタを進めて、該当しなければポインタを初期位置に戻す、
という方法で実装するなぁ。
318が提案するような比較に比べると判定が少し早そうなんだよね。
0322名前は開発中のものです。03/03/25 23:32ID:AfPryGzZ
単位時間ごとにキー入力を更新。更新古いものから削除。
で、配列二次元とかで二つつくって
単位時間
123456789十・・・
キー配列
↑→→→→→↓\→→・・・
ボタン配列
無無P無無無無無P無・・・

ってやったらどうでしょ
んで、技チェックはボタンが押された瞬間から。
なんとなくボタンとキー同時押しができそうな気がするんですが。
032332203/03/25 23:34ID:AfPryGzZ
すんません。
P以外にも各ボタン用の配列が必要でした。
032432203/03/25 23:45ID:AfPryGzZ
そんで各配列を16ビット(アンサイン型)の各要素に割り当てて
例・単位時間7秒のデータ
上位8ビット …↓ = 0100000 (ビット対応キー最上位が↑、以下↓←→\・・・)
次8ビット で…無 = 1000000 (ビット対応キー最上位(9ビット目が無、以下PK・・)
(ボタンの場合、同時押しになると01100000 とかで判断。無が立って無い&P&K&立ってない・・・)
こういう変換をすると

16ビットデータ配列
[0]10000000 10000000 もちろん出力は10進で可能。
[1]00010000 10000000
[2]00010000 01000000
[3]・・・・・ みたいなのが出来あがって・・・
・・・・・
各キャラの技表データもバイナリで定義しておけば。
同時押しもできる気がさらにします。
0325あぼーんNGNG
あぼーん
0326名前は開発中のものです。03/03/26 09:03ID:NtlD3GhA
>>321
レスどうもです!
>うーん、統一された手法とか、定石というのはまだ確立されていないんじゃないかな?
そうなんですか。。ストリートファイターの時代からある物ですから、何か一般的なやり方
があるのかと思ってたんですけど、そうでも無いんですね。
提示いただいた方法も、参考にさせていただきます、ありがとうございます。

>>322
なるほど、それぞれのキー動作を別々にキューイングするやり方ですか・・・なんか新しい
考え方ですね。
>>324
ははあ、なるほど、これなら確かに同時押しが定義できますね・・・
しかも少ないメモリで安上がり。いいですねえ、、、参考にさせていただきます。
0327名前は開発中のものです。03/03/26 09:04ID:NtlD3GhA
今思いついたんですが、あらかじめ作っておくコマンドテーブル(↓\→(PK)みたいなの)
に、連続ボタン入力間の許容時間もセットで持っておくというのはどうでしょうか。つまり、
同時押しは、「非常に短い時間で入力する必要のある連続ボタン入力」と扱うわけです。
こんな風にテーブルを持っておきます
↓(10フレ)\(10フレ)→(10フレ)P(3フレ)K(10フレ)
PとKが逆に入力されるかもしれませんから、入れ替えたテーブルも持っておくのです
↓(10フレ)\(10フレ)→(10フレ)K(3フレ)P(10フレ)

また、通常のしゃがみパンチは許容時間を非常に長く設定しておいて
↓(0x7FFFFFFFフレ)P(10フレ)
こうすれば「下押しながらPでしゃがみパンチ」がコマンド技として定義できるんじゃない
ですかね!?
0328あぼーんNGNG
あぼーん
0329名前は開発中のものです03/03/26 13:47ID:nm8sE5JY
やっぱ自分でプログラム組むのメンドイ。
http://pc2.2ch.net/test/read.cgi/gamedev/1018670878/l50をみると
つらくなったデス。
0330名前は開発中のものです。03/03/26 13:52ID:2PAV6tNS
この板のおかげで嵐に不感症になりました。
0331あぼーんNGNG
あぼーん
0332名前は開発中のものです。03/03/27 23:07ID:ZxdJ8rEG
321見たいにコマンド別にインデックスを進める方法で同時押しできてるよ。
0333名前は開発中のものです。03/03/27 23:09ID:ZxdJ8rEG
非同時押しと似た入力のコマンドがあるなら、コマンドの優先順位を決めるだけかと。

まあどっちにしろ、318ので十分できるわけだが。
# なにがわからないのだろう
0334名前は開発中のものです。03/03/27 23:09ID:ZxdJ8rEG
>非同時押しと似た入力のコマンド
同時押しと似た入力のコマンド
0335名前は開発中のものです。03/03/28 00:42ID:MVSWTKVq
オートマトン?
0336名前は開発中のものです。03/03/28 02:58ID:q0sPFLKX
>非同時押しと似た入力のコマンドがあるなら、コマンドの優先順位を決めるだけかと。

コマンドの解釈だけならそれでいけるけど、一旦確定して発動しかかってる技を
キャンセルして別の技に移行するのがプログラム的に複雑。
例としては、↓\→+P(波動拳)と、↓\→+PK(EX波動拳)など。
安直な解決法としては、同時押し入力の猶予期間中はコマンドの確定を先送りするとかか。
0337あぼーんNGNG
あぼーん
0338名前は開発中のものです。03/03/28 18:34ID:RcnMP0iX
>>336
理解した。
321の方法だとキャンセル可能だな。
0339名前は開発中のものです。03/03/28 19:59ID:eMBHUQuF
>>336
> 安直な解決法としては、同時押し入力の猶予期間中はコマンドの確定を先送りするとかか。

これやってるのがKOFシリーズだったと思う。今もそうかはしらないけど。
全ての技に同時押し判定の猶予期間を設けてあるので
小パンチであっても、ボタンを押したと同時に出るわけではない。

この方法だと微妙にレスポンス悪く感じると思う。


カプコンゲーだと、同時押し確定前の技をキャンセルする形で出る。

例えば移動を伴う技と、同時押しの技を組み合わせると、
微妙に前に進んでから同時押し技が出ることになる。

スト3サードだとこれは戦略に組み込まれるくらい重要なテクニックらしいね。
0340あぼーんNGNG
あぼーん
0341ヒヨコ戦艦 ◆15H9tTXa7s 03/03/29 02:36ID:+0LzXIM5
 みなさん、こんにちは  
宇宙戦艦ヤマトの≪世界観≫で、無料オンライン・ゲームの製作を進行中
まだ仕様を練る段階なのですが、ヒマがあったら覗いて見て下さい
http://members.goo.ne.jp/home/yamato-r   メールyamato-r@mail.goo.ne.jp
http://game3.2ch.net/test/read.cgi/netgame/1047469688/l50
【スルー対象事項】http://game3.2ch.net/test/read.cgi/netgame/1047469688/481
「Winny方式:相互サーバー化システムによるネットゲー製作に挑戦。ご意見募集中」
「プログラマへの報酬を捻出する手段(ソフト内に広告入れ等)について、ご意見募集中」
0342名前は開発中のものです。03/03/29 02:43ID:Yw8R0hhL
そういやガンダムのはどうなったんだ?
0343あぼーんNGNG
あぼーん
0344aaa03/03/31 18:37ID:XAKZeAF5
禿しくワラタ
0345あぼーんNGNG
あぼーん
0346名前は開発中のものです。03/04/02 00:31ID:CmhZDGS+
つか、オートマトンという数学的にも確立されたアルゴリズムがあるじゃないか?
まあ、上のほうにも挙がっているが・・・
0347ヒヨコ戦艦 ◆15H9tTXa7s 03/04/02 07:12ID:v8Faio8o
◆宇宙戦艦ヤマト■ヤマト・オンライン製作2■  
宇宙戦艦ヤマトの≪世界観≫で、無料オンライン・リアルタイムシミュレーションゲーム製作を進行
http://game3.2ch.net/test/read.cgi/netgame/1049216232/7-8n
まだ仕様を練る段階なのですが、ヒマがあったら覗いて見て下さい
公式サイトhttp://members.goo.ne.jp/home/yamato-r   メールyamato-r@mail.goo.ne.jp

「Winny方式:相互サーバー化システムによるネットゲー製作に挑戦。ご意見募集中」
「無料ソフト プログラマへの報酬を捻出する手段(ソフト内に広告等)を、ご意見募集中」

 パッチ(付加変更プログラム)を充てて様々な作品世界を反映させると、
商用ソフトでの販売が可能なほどの完成度を目指します。

「銀河戦国群雄伝ライ」「戦国自衛隊」「聖戦士ダンバイン」「装甲騎兵ボトムズ」「宇宙戦艦ヤマト」
「信長」「太平洋戦争」「第二次世界大戦ドイツ」「ガンダム」「スターウォーズ」「機甲創生モスピーダ」
「マクロス」「銀河英雄伝説」「戦闘メカ・ザブングル」「エルガイム」「太陽の牙ダグラム」
「ハーメルンのバイオリン弾き」「スタートレック」
これらの作品パッチも合うかも!(パッチは著作権者の許可を取り各自で自作して下さい)
0348名前は開発中のものです。03/04/03 00:56ID:xKN2yNRL
                                 ∧ ∧   ∧ ∧
   /⌒~~~⌒\                       (   ,,)   (,,・Д・)
 / ( ゚>t≡ )y─┛~~                〜(___ノ  〜(___ノ ,γ_
(_ ノγ U  ∩_∩)   THANK YOU 2ch     ┌───────┐   \
  α___J _J         and          (| ●        ● |      ヽ
  / ̄ ̄ ̄ ̄\  GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| ))
 /     ●  ●、                   ( ┤ .|        | .|□━□ )
 |Y  Y       \ またどこかで会おうね  \.  .└△△△△┘ .|  J  |)
 |.|   |       .▼ |                 | \あ\      | ∀ ノ
 | \/        _人|∧∧∩゛冫、 .∧_∧      |    \り.\     . |  - ′
 |       _/)/)/( ゚Д゚)/ `  . (´∀` )..ヽ(´ー`)ノ  \が\ .   |  )
 \    / 〔/\〕 U  / ∩∩ (    ) (___)    \と.\ .|/
  | | | c(*・_・)  |  |ヽ(´ー`)ノ_|  |  | |   |〜 /\.\う\| (-_-)
  (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
0349名前は開発中のものです。03/04/22 12:07ID:1mJOFZGP
勘違いしてるようだが、MMORPGは複合式P2Pだぞ。
0350名前は開発中のものです。03/04/22 12:23ID:GMTONYN9
   ___.                     ∩゛     ∧空∧    ((( ))) /\
  /. ――┤. -=・=-    -=・=-    | |  ∧ ∧{´ ◎ `}____( ´∀`)\ う \
 ./(.  = ,= |      ∧∧    ∧_∧  | | ( ´ー`) ):::/´∀` ;:::: \ヽ(`Д´)ノ゛\ ま\
 |||\┏┓/∫    (=゚ω゚)ノ~ ( ´Д`)//  \ < .∧|∧   /::::::::::| .¶_¶.    \い\
 V/ ∧,,∧ ∬  〜(  x)  /       /   ,一-、(´ー`)  /:::::|::::::| (ΦдΦ)/~   \棒\
  || ミ,,゚Д゚ノ,っ━~~ U U   / /|    /   / ̄ l⊂ヽ \/|:::::::::|::::::|  γ__  ∧w∧ 旦∬
 人 ミ ,,,  ~,,,ノ  .n  THANK YOU 2ch ■■-っ ┌───────┐  \ ( ゚Д゚ )∩゛
( ゚ー゚)と..ミ,,,/~),ヽ(凸)ノ~     and..     ´∀`/. | ●        ● |     ヽ    ノ
  / ̄ ̄し'J\[Y] GOOD-BYE 2ch WORLD! /| .┌▽▽▽▽┐. |____|__||_| ))
 /     ●  ●、ヽ                  (. ┤ .|        |. |□━□ ) (゚Д゚)?
 |Y  Y       \  またどこかで会おうね.. \.  └△△△△┘. |  J  |)∧_∧
 |.|   |       .▼ |∀゚)               |\あ\       | ∀ ノ " ,  、 ミ
 | \ /■\  _人 |∧∧∩゛∧_∧∩゛∧_∧  |   \り.\     | - Å′ ゝ∀ く
 |  ( ´∀`)___/( ゚Д゚.)'/ ( ´∀` )/ (・∀・ ),. |.    \が\.    |  ). \  Λ_Λ
 \ ( O   )  冫、 U  /  (     / ⊂  ⊂.)ヽ(´ー`)ノ゛ \と.. ∧_∧/(´Д`;)<丶`∀´>
  |││ │   `   |   |   ∪ |  |  ( ( (  (  へ (゚д゚)〜⌒(゚ー゚*) (-_-) (・ω・` )
  (_(__(__)(・∀・) ∪~∪  (_(__) (_(_) く ⊂⌒~⊃。Д。)⊃⊃⊃(∩∩)(∩ ∩)
0351名前は開発中のものです。03/04/22 13:16ID:AO5VRxm/
複合式P2Pって何?
というか、MMORPGはもろC/Sだと思うんだが…
0352名前は開発中のものです。03/04/22 19:57ID:1mJOFZGP
Hybrid P2Pの事。
中央集権型+分散型。
無論、旧来のC/S型もあるんだが。



0353名前は開発中のものです。03/04/22 21:49ID:AO5VRxm/
Hybrid P2Pで作られてるMMORPGの主なやつとか教えて欲しいです。

いつの間にか俺の知らない世界に突入してたのかな。
最近のMMORPGはポートあけなきゃいけないのが普通?
0354名前は開発中のものです。03/04/23 08:12ID:tjblka46
オレも>>349の自信の根拠を知りたい…
少なくとも主なヤツにはない気がするが
0355名前は開発中のものです。03/04/23 17:22ID:10QNqlCX
今のトコMMOはほぼ全てC/S型でそ。

マッチアップ機能を持ったMOの場合マッチアップ鯖とはC/S、ゲームはP2Pってことで
ハイブリッドともいえなくもない。
Diabro2(BattleNet接続)やPSOはチート防止用のアイテム管理機能みたいなのもあるから
単純なマッチアップよりは高度なことをしてますね。
もちろんDiablo2もPSOもMMOではなくてMOですが。
035635503/04/23 17:25ID:10QNqlCX
あと、オイラの作成中のMMOは
ボイスチャット(オプション)だけP2Pなので
ハイブリッドともいえなくもない...
0357名前は開発中のものです。03/04/30 13:02ID:SNLFnav7
http://www.metalmax-online.com/mmo/index2.html
プログラミングについて罵倒でもなんでも良いから意見くれ。
0358名前は開発中のものです。03/05/06 00:29ID:H/yOgU6R
ヒヨコ戦艦が「凄腕のプログラマがいて、P2Pで30人リアルタイムバトル可能だ」
みたいな事言ってたのはどうなったんだろう。
凄く興味があったんだけど、
スレはDAT落ちしてるわ公式ページはただのヤマトオタページになってるわ・・・
0359名前は開発中のものです。03/07/25 12:22ID:IYGrsOja
DLLって、ただでも作れますか?
0360さいたま03/07/29 22:33ID:JsIf0Yyf
さすがは俺だ。
いろいろなミニゲームを詰め込んだ、
たると・わーるどというゲームを完成させたぞ。
まあバグはそれなりにあるわけだが、

まずはゲームとしての形が出来上がったということで、俺的には満足。
んまあ、デバッグはしなきゃな。
せっせとバグフィックスも。

漏前らも頑張れ!
0361名前は開発中のものです。03/07/30 01:15ID:sGoZhaBl
だれ?
0362名前は開発中のものです。03/07/30 18:56ID:C9H8Oh+V
こんなに見えちゃってヤバクない???
抜いても抜いても また勃起しまくり・・・
 ↓ ↓ ↓

☆★☆★ 海外サイトだから安心無修正 ★☆★☆
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
☆★☆★ 本気汁丸出しのお○○こが! ★☆★☆
0363名前は開発中のものです。03/07/30 19:37ID:O8k7wl+c
三角関数をテーブルにして利用しようとしているんですけど
いろいろな解説ページを見て思ったんですけど
一周を256,512,1024・・・などに分割するのは分かるんですけど
そのときに SinTbl[256 + 64]などのように
+90度分するのはなぜですか?
0364名前は開発中のものです。03/07/30 20:04ID:ozJAZ4aW
Cosを求めているのでは?

符号が反転するけど、Yが上向きの数学的な座標軸から、Yが下向きの
スクリーン座標軸への変換も同時に行っているのかもしれない。
0365名前は開発中のものです。03/07/30 22:22ID:r1JwZyt0
cos(θ) = sin(θ+π/2)
0366名前は開発中のものです03/08/02 14:14ID:cQ9XMcdq
>>363
cosは、sinの90度ずれたものなのでそうしておけば、sin、cos両方で兼用できる。
これじゃ364と同じ説明だな、スマソ。
0367名前は開発中のものです。03/08/02 20:00ID:iv+RaiJ0
☆ ☆ ☆ http://www.gals-cafe.com ☆ ☆ ☆

りさちゃんですっ☆みんな元気ぃ?夏だねっ!
あたしね、今アメリカにいるんだけど、、、えへっ(*>▽<*)
アナタに逢いたくて、こんなバイト始めちゃったヨ♪
りさに逢いに来てくれたら、7日間も会費無料サービスしちゃうし、
さらにさらに10分間も無料なんだよ! Σ(@o@)!!
アナタにだけの特別大っサービス♪絶対来てね!
二人っきりでたっくさん楽しいことしようよ♪まってるよ(^.^)/
☆ ☆ ☆ http://www.gals-cafe.com ☆ ☆ ☆
0368安全地帯03/08/02 21:26ID:/+zTW8yh
http://elife.fam.cx/a009/
0369名前は開発中のものです。03/08/04 13:23ID:ocrIoYN4
他板から誘導されてきますた。そのままコピペです
3DアクションのFPSでMOなものをいつか作りたいです

鯖を選んで、ログインして、森や町の中で索敵して
狙って撃つ。て感じのです

出来ればブラウザで開くだけで、専用クラをインストをせずに
OSに関係無く気軽に始められるものがいいです

3Dがそれなりに使えて、OSに依存しないで
鯖に接続あたりが充実してるプログラム。何を覚えるべきでしょう?

分かってる範囲で。Java(アプレット
)、少し遅い。機種依存がけっこうある。
3Dは出来ないことはないけど、大変らしい。
ShockWave、3Dゲム作ってる人多いので有力候補?
プラグインが入ってれば環境依存すくなそう
C++、ふつーのプログラミングなら有利だけど、
自分の目的では、OS別にクラをリリースしないとダメ

で、何がお勧めなんでしょうか?
0370名前は開発中のものです。03/08/05 01:24ID:AVt1Ve06
>>369
色々な意味で無理ですからあきらめなさい
0371名前は開発中のものです。03/08/05 10:21ID:huJHSa+J
山に登ったことのない人間が、エベレストへの登り方を尋ねているようなものだ。
0372名前は開発中のものです。03/08/05 11:51ID:+8EsI2Mi
それは別にいいじゃねえか
0373名前は開発中のものです。03/08/05 12:41ID:clXaP2EN
登るor登れる気満々なのが問題。
0374名前は開発中のものです。03/08/05 19:28ID:JQrb+f/v
>>369
>出来ればブラウザで開くだけで、専用クラをインストをせずに
ここさえなければそれなりに現実的なので
トレードオフというやつを考えて
逆にそこを外せないなら
>3Dがそれなりに使えて(略)鯖に接続あたりが充実してる
というのが非現実的になってくる

それと3DゲームでOSに依存しないというのはほぼ無理
そもそも3D描画の手段が用意されて無いOSもあるわけで
自分でOpenGLドライバとか組めるほどの技術がなきゃ無理
更にWin/Linux互換までは簡単だが
Macintosh互換までいくとまた難しい
0375名前は開発中のものです。03/08/06 17:35ID:MxFQ2kVe
>>374
サンクスコ

おとなしくWinで作れってことですね
手近な山(丘)からゆっくり登っていきまつ
0376名前は開発中のものです。03/08/06 22:58ID:O4yO5Rri
>374

ブラウザって縛りがなければSDLでない?
win,linux,mac,beOS
3DはOpenGLに対応してる
非対応hardならsoft側で処理してくれるとか
net関係のライブラリもあるし

なによりタダ
0377名前は開発中のものです。03/08/06 23:36ID:aF4kdC5r
道具揃えたところで登れるわけじゃない罠
0378名前は開発中のものです。03/08/09 00:32ID:HrZMFzRr
本格的にMMOとか作るならSDL+Delphi+C++、
お手軽なミニゲーム作るならJavaでアプレットってとこかな?
JavaってJDK1.4になってからとんでもなく画面更新が早くなって
2Dのゲーム動かすならJAVAで十分だとおもうんだけどどう思いますか?
0379名前は開発中のものです。03/08/09 12:15ID:1QmqaJBe
実際に本職のゲームプログラマーになりたいんですが最初に学ぶ言語はどれが良いんですか?
フリーのソフトはありますが解説が少ないので…
プログラムの学習用はVB.NETとVC++.NETのどちらが良いですか?
0380名前は開発中のものです。03/08/09 12:24ID:B5VyROWZ
>>379
言語はC。理由はこれを使ってないところはまずないから。
んなわけで学習用にはVC++.NET。
0381名前は開発中のものです。03/08/09 12:47ID:1QmqaJBe
>>380
ありがとうございます、買う決心がつきました。
買って来ます。
0382_03/08/09 13:13ID:S+GKUahg
http://homepage.mac.com/hiroyuki45/jaz09.html
0383名前は開発中のものです。03/08/09 19:55ID:sSIjT8eK
質問です。

VC#.NetでIPを使った1対1の簡単なチャットのようなものを作る場合、
どのような方法を使えばいいですか?
IPでの双方向リンクの仕方が全く分からなくて参考書も探したのですが、
あるのはWebアプリの作り方ばっかりで…どなたか教えて頂けませんか
あるいはそのことが乗っている本を紹介して頂けませんか?
0384名前は開発中のものです。03/08/09 19:56ID:sSIjT8eK
ゲ製板なので板違いかも知れませんが、
IPチャットが可能であれば1対1のネットゲームも作れるかもしれないと思いまして…
すいませんです
0385名前は開発中のものです。03/08/09 20:44ID:44BF5mIM
PCゲームってのはコア層がやるもんだよ。
過去の現象見ても、事務機としての普及が第一だろうね。

はっきり言ってLinux/UNIXは汎用的な事務機としてはロクなもんじゃない。
基本的に計算機の玄人が使うようにできてるからな。
事務屋にゃ扱える代物じゃねーんだよ。

ただ、つけいる隙はあると思うね。
Linux/UNIXはUIの取り換えがきくから、専用機として作り込むのにはWindows
なんかより断然いいだろう。
そこらへんのじじばばが何気に街角で触ってる機械が実は誰も知らないけど
Linuxでしたなんて現象はこれからどんどん増えるだろうね。
事務機としてもマルチウィンドウが必要なところってのは実はあんまり無い。
その証拠にほとんどのWindowsユーザはアプリケーションを最大化して使って
るじゃない。
Xなんか使わなくてもDOS時代のUIを思い出せば充分使えるものになるだろうね。
むしろその方が混乱が無いだろう。アクティブウィンドウが切り替わっただけ
で「パソコン壊れたー!」ってパニック起こす連中を嫌と言うほど見て来た。

パソコンとしてもそれに適したUIが出て来れば使う人はいるだろうね。
そのへん頑張ってるのがKDEやGnomeだが、こっちはさほど利点が無いから難し
いな。
NECや富士通が気合い入れて自社UIを作って出しゃいいんだがな。KDEやGnome
ベースでもいいからさ。
0386名前は開発中のものです。03/08/09 22:23ID:3r+YGxL4
???
誤爆?
0387名前は開発中のものです。03/08/13 10:49ID:BCiRQ/m1
>>383
このあたり?
Microsoft.DirectX.DirectPlay
System.Net.Sockets.TcpClient
System.Net.Sockets.TcpListener
System.Net.Sockets.UdpClient
0388山崎 渉03/08/15 08:02ID:IMRBSWHe
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0389名前は開発中のものです。03/08/16 10:03ID:2rCICvIn
atan2用のテーブルの作り方がわかりません(涙
cos,sinは角度を使って作ればいいのはわかるんですが、
atanの添え字って一体何を基準に用意しているんでしょうか?

tanの逆関数なのでsin/cos(?)と思っても、
どんな範囲で値を用意すればいいのか。

ここを参考にしてるのですが、
ttp://www.sun-inet.or.jp/~yaneurao/intensive/tips2.html
肝心のテーブルが作れないのです。

0〜1までの範囲で自分の好きな少数で
<math.h>のatan()から求めて256段階に
スケーリングすればいいだけでしょうか?

頭が悪いのは重々承知しておりますので、
何卒ヒントを(;´Д`)
0390名前は開発中のものです。03/08/16 10:06ID:2rCICvIn
>0〜1までの範囲で自分の好きな少数で

すみません好きとか関係ないですね。
0〜1までの256段階の少数(float 0/255〜255/255)で、
という意味で受け取ってください。

0391名前は開発中のものです。03/08/16 13:23ID:dCYb1D0y
まず、0度〜45度の範囲に限定してテーブル化してみるべし。
この範囲ではθとtan(θ)はほぼ比例関係にあるから、単純な補間ですむ。
残りの角度についてはこのテーブルの参照方法を工夫するだけ。
0392名前は開発中のものです。03/08/17 09:28ID:jm7zYaU+
>>387
そうそれそれ!
そのネットソケットに関する、なにか参考書ないですか?
■ このスレッドは過去ログ倉庫に格納されています