トップページgamedev
986コメント314KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001プチ9627m01/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/
0008名無しさん@お腹いっぱい。01/11/06 21:01ID:Ubm7e8yT
>>6
BBXに光学迷彩のスレッドがあったぞ。
http://isweb8.infoseek.co.jp/computer/bbx/
0009名無しさん@お腹いっぱい。01/11/06 21:03ID:qXJQuXdp
いきなりな始まり方だな(泣
0010名無しさん@お腹いっぱい。01/11/06 21:17ID:Wy/vrzew
屈折・・・はちょっと違うな。
モデル抜きで描画したやつをテクスチャに使って
モデルが描画されるはずの場所を適当に散らしてやるとか。
0011名無しさん@お腹いっぱい。01/11/06 21:31ID:ffLcuzBF

      ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< IDがFFだからレスしといてやる
 UU ̄ ̄ U U  \_____________
0012名無しさん@お腹いっぱい。01/11/06 21:57ID:zeMWPbvy
>6
考えんのめんどうだから
描画しなけりゃいいじゃん。
「透明人間だワショーイ!!」
描画ON/OFF繰り返せば偽半透明になるし。
フレームレート落ちると手抜きバレバレだがな。
0013名無しさん@お腹いっぱい。01/11/06 22:01ID:Wy/vrzew
DirectX 8のwrapperライブラリで何かいいのありやす?
もうみんな素で作ってるかなあ。
0014名無しさん@お腹いっぱい。01/11/06 22:04ID:Ubm7e8yT
>>13
あれ以上ラップする必要なんてないっしょ。
DirectX8は以前に比べてかなり洗練されてる。

ラップしても結局アプリケーション依存になると思うぞ。
0015にゃ ◆G4ogTrNQ 01/11/06 22:37ID:???
ここみて、さっそく、うちのエフェクトに光学迷彩機能を
追加させていただきましたにゃ

けっこうカコイイ
0016名無しさん@お腹いっぱい。01/11/07 07:01ID:???
(・∀・)イイ!
http://homepage1.nifty.com/open-prog/java/tip04x.html
0017名無しさん@お腹いっぱい。01/11/07 11:24ID:yfpcm8il
>>16
うむ。すげーいいじゃん。age
0018名無しさん@お腹いっぱい。01/11/07 13:35ID:G+bxpTdm
>>16
かっこいいage
0019某はぐれ企画 ◆q3ckR4s2 01/11/07 15:18ID:aOMApkuV
ズラしかたを変えれば、結構色々な用途に使えそうだね。
氷とか、水晶とか、熱ブラーとか。
0020名無しさん@お腹いっぱい。01/11/07 16:48ID:hmPs+GIX
ネット上で配布する向けのゲームのBGMの収録形式は
どれがよいだろうか。
1 無圧縮WAV
2 MP3
3 MIDI
4 MOD
5 CD-DA
0021 ◆AyW.Rdbg 01/11/07 16:50ID:FDbRJ4fk
MIDI がいちばん軽くて済むから良いのではないだろうか。
0022名無しさん@お腹いっぱい。01/11/07 16:52ID:???
私もMIDIに1票!!
0023作曲家兼ゲープロ01/11/07 16:56ID:gG9EM5Mh
オンラインならやっぱMIDIかなあ。GM Level 1で。
市販や同人なら、MP3とかOgg Vorbisが嬉しそう。
無圧縮WAVのストリーム再生は、
轟音を鳴らす高速CD-ROMドライブにかかるとヤヴァイ感じ。
0024名無しさん@お腹いっぱい。01/11/07 17:03ID:kWHcbxUW
光学迷彩age
0025名無しさん@お腹いっぱい。01/11/07 17:21ID:???
オレはmodがいいと思うけどなぁ。
微妙なニュアンスをどこでも再現できるし
0026名無しさん@お腹いっぱい。01/11/07 17:21ID:???
>>20
どうやってCD-DAを配布するのか知りたいw
0027名無しさん@お腹いっぱい。01/11/07 17:24ID:???
MIDIだとプレイヤー側で違う音になる可能性があるのがなぁ。
ダウンロードする側としては50MBぐらいまでなら許容かな。
本体とあわせて200MBまでなら10数分だし。
MP3に1票。
0028名無しさん@お腹いっぱい。01/11/07 17:25ID:???
いっそのことCDイメージで配布するのはどうだろう?
ISOとかFCDとかでさ。
0029名無しさん@お腹いっぱい。01/11/07 17:33ID:???
mp3で配布して自前でwaveに書きかえさせるに一票
0030名無しさん@お腹いっぱい。01/11/07 17:39ID:???
>>27
ふざけるな。低速回線はまだそこら中にいるんだ
0031名無しさん@お腹いっぱい。01/11/07 17:40ID:???
いっそのことストリーミングに1票
あとから差し替えたり違う曲を流すことができる。
常時接続が当たり前な今だからこそ誰か試してみるツワモノいない?
0032名無しさん@お腹いっぱい。01/11/07 17:43ID:???
ネットワークアプリでもないのに、
ネットにアクセスするのは気持ち悪いなぁ
0033作曲家兼ゲープロ01/11/07 17:45ID:gG9EM5Mh
>MIDIだとプレイヤー側で違う音になる可能性があるのがなぁ。

DLS使えば音源依存はほとんど解消できると思うんだけど、
使ったことないから知らないや。調べてみよっと。

とりあえず、大抵の音源でそこそこまともに演奏されるMIDIデータを作るのも
音楽屋さんの技術力のうちではありますです。
0034名無しさん@お腹いっぱい。01/11/07 17:53ID:???
FALCOMって平気でSC88用とか逝ってるよな。
他のメーカーでもGMのほかにGSだけ特別扱いだったり
0035名無しさん@お腹いっぱい。01/11/07 18:00ID:???
>>33
DLS良いよ。DX8のDMusicならレゾナンス付きフィルタまで使える。
0036名無しさん@お腹いっぱい。01/11/07 18:03ID:???
思うんだけど、modが候補に上がるような人間なら、modを使うべきだろ。
0037名無しさん@お腹いっぱい。01/11/07 18:11ID:???
>>36
問題は作れる人がまわりにいない。(´д`;)
シクシク
0038名無しさん@お腹いっぱい。01/11/08 02:48ID:yP+KbtrC
DLSのデータ作ってる人いないの?
俺は周りで見たことないぞ。
0039名無しさん@お腹いっぱい。01/11/08 05:13ID:???
>>31
ああ、やってみたいね。
ネットゲーでもないとやる理由があるかわからんけど。
問題はどうやって安価にストリーミングサーバーを用意することか。
0040名無しさん@お腹いっぱい。01/11/08 05:20ID:???
Lambda「http://www.kurumi.sakura.ne.jp/~kdv/」と
YGS2K「http://www.sun-inet.or.jp/~yaneurao/」だったら
どっちが作り易い?っていうか使ってる人いる?
0041名無しさん@お腹いっぱい。01/11/08 05:35ID:???
>>40
ゴメン。スクリプトはつかってないわ。
このスレの人でスクリプト使ってる人ってどのくらいいるのだろう。
ム板のころから考えると、ほとんどいないように見えるが。
0042名無しさん@お腹いっぱい。01/11/08 06:27ID:???
HSP使いが多そうだけどどうよ?
0043名無しさん@お腹いっぱい。01/11/08 07:27ID:???
ところでHSPって画面サイズかえれるの?
0044名無しさん@お腹いっぱい。01/11/08 08:59ID:K/EXc4zs
ガビーン DLSっててっきりMSかどっかのローカル規格かと思ってた。
http://www.midi.org/
0045名無しさん@お腹いっぱい。01/11/08 12:02ID:???
>>40
どっちもクソ。フリーで手に入るコンパイラがあるんだからソレ使えよ。
0046名無しさん@お腹いっぱい。01/11/08 13:40ID:???
YGS2k自体は悪くないと思うんだけどなぁ。
作者がねぇ
0047名無しさん@お腹いっぱい。01/11/08 15:00ID:???
やねうらおイタイよマジで
0048名無しさん@お腹いっぱい。01/11/08 15:10ID:kkpeg6xx
Allegroってどない? 誰か使ってる人いる?
http://alleg.sourceforge.net/
英語圏では結構メジャー&
某アーケードエミュレータとかでも使われてるらしいんだけど。
0049名無しさん@お腹いっぱい。01/11/08 15:23ID:???
YGSはともかく、YaneSDKはどうよ?
参考なるかと思ってソース眺めたら、
パラメータが間違ってたりして激しく萎えた覚えがあるんだけど。
0050名無しさん@お腹いっぱい。01/11/08 15:25ID:???
ClanLib Game SDK
http://www.clanlib.org/
ついでにこんなんも見つけた。
最近英語サイト行くようになって、情報量の多さにクラクラっす〜。
探せば何でもあるし。確かに「車輪の再生産はするな」になるわこりゃ。
00515001/11/08 15:33ID:???
s/再生産/再発明/ トホホ
0052名無しさん@お腹いっぱい。01/11/08 17:27ID:???
YaneSDKはデザインがダサい
結局自分で手を加えないと使えない部分が多くて
ライブラリとしての完成度は低い
0053名無しさん@お腹いっぱい。01/11/08 19:34ID:???
じゃあどのライブラリ使えばええの?
0054名無しさん@お腹いっぱい。01/11/08 20:17ID:???
>>53
どうせやるならDirectX直で使うのがいいんじゃないのか?
0055名無しさん@お腹いっぱい。01/11/08 20:32ID:???
で、ライブラリ作成に労力を費やし、ゲームは一向に完成しないのであった。
0056名無しさん@お腹いっぱい。01/11/08 20:52ID:???
>>55
そういう人は何してもゲームが完成しないということで。
0057名無しさん@お腹いっぱい。01/11/08 21:21ID:???
>>46
激しくないけど、同感…。
いや自分も使ってるから。
0058名無しさん@お腹いっぱい。01/11/08 21:52ID:z7W2ZNyK
ライブラリを使ったときに、そのソフトを実行するのに
DirectXのどのバージョンが必要ですってのはどうしたら分かるんだろう?

例えば>>50のはWin上ではDirectXを使用するみたいだけど、
どのバージョンが必要なのか書いてある場所は見つからなかった。

ソースを読んで、この機能はバージョンいくつで…って調べるしかないの?
0059名無しさん@お腹いっぱい。01/11/08 22:42ID:???
>>56
禿同
他人のライブラリしか使えない人間はどっちにしろあまり
まともなゲームを作れない。
「お手軽に」と言いたいならば止めはしないが。
0060名無しさん@お腹いっぱい。01/11/08 22:49ID:???
って言うか自前ライブラリの整備にかかりっきりで、いつまでたっても
ゲームそのものの制作に取りかかれないってのはアイタタターだよって
話なんじゃないのか?
0061名無しさん@お腹いっぱい。01/11/08 23:02ID:???
ライブラリの作成の話じゃなくて使用の話をしているんだと
おもったんだが・・・ちがうのか?
0062名無しさん@お腹いっぱい。01/11/08 23:10ID:???
初心者はコードを書けない。
中級者はコードを書ける。
上級者はコードを書くかどうかの判断ができる。
0063名無しさん@お腹いっぱい。01/11/08 23:17ID:???
というわけで、ライブラリに頼る人種は初心者か上級者のどっちか。
0064名無しさん@お腹いっぱい。01/11/08 23:20ID:3NmFL/A2
>>62
同感だけど、
コードを書かないといって実は書けない奴のなんと多いことか。

結論から言うと、
何でも自分で一から作ってきた奴と
ライブラリを使いまくって、ゲームにしたてた奴とでは、
前者の方が圧倒的に使えるんだけどね。

なぜなら前者は中級者だから上級者になれるけど、
後者は永遠に初心者だからね。
0065名無しさん@お腹いっぱい。01/11/08 23:22ID:???
>>60
ライブラリから作るのではなくて、作っていくうちにライブラリらしきものができてきて、
後でそれを自分が使いやすいようにライブラリ化。

アマチュアならこれが普通だと思うが。
00666401/11/08 23:23ID:3NmFL/A2
だから時間のあるアマチュアのうちは、
何でも自作することをお勧めするよ。

ライブラリに依存することはいつでもできるから。
0067名無しさん@お腹いっぱい。01/11/08 23:26ID:???
>65
60は59に対するツッコミです。
55と56を読んでミソ
0068_01/11/08 23:31ID:ZvJlUtz1
それでもD3DXクラスのライブラリをまた自分で作るのはバカらしいぞ。
作ってくうちに、どうしてもD3DXは超えられないことを悟り途中放棄するのがオチ。
0069名無しさん@お腹いっぱい。01/11/09 00:01ID:???
>>66
ま、逆にプロになる気とかなくて、趣味でゲームを作る手段として
プログラミングやるならライブラリに頼ってもいいわけで。
0070名無しさん@お腹いっぱい。01/11/09 00:27ID:QPURCFOq
>>58
遅レスですが、私も知りたいdeath
ソースと言わず、バイナリだけから判断できたりしないもんですかねー。
ちなみにAllegroはDirectX 3以降みたい。ClanLibのほうはちょっとわかりまへん。むう。
さらに発掘。

Simple DirectMedia Layer
http://www.devolution.com/~slouken/SDL/
0071名無しさん@お腹いっぱい。01/11/09 02:33ID:???
>>70
SDLみたいに一人じゃなかなか作れないようなライブラリこそ、
なんか使う価値があるように思った。すくなくともこれのいいところは、
よくある、プログラマ一人のヲナニーライブラリじゃないってところか。
0072名無しさん@お腹いっぱい。01/11/09 05:42ID:???
>>70
SDL はマルチプラットフォームですよね。
linuxとwindowsで動作するゲームを作りたいので
これつかってみようかなって考えています。

これってソフトに含めて(実行プログラムのベースにして)
売ってもいいんですよね? Lesser GPL みたいだし…。
0073名無しさん@お腹いっぱい。01/11/09 09:25ID:???
調子に乗ってガンガン紹介(笑)
こいつはDirectXのwrapperですな。中身はあまりよく見てないです。

CDX library
http://www.cdxlib.com/
0074なまえ01/11/09 14:22ID:wBSGHdMW
プログラマで飯を食ってるんですが、今までゲームを作ったことありません。

メインループのwait処理なんですが、今まで見たいくつかのゲームのソース
では、sleepしているだけでした。1ミリ秒でも空き時間があればそれなりの処
理ができる思うのです。

メインループは次々とフレーム(実際に表示する画面)を生成してそれをQueue
にPush。別のThreadではQueueからPopして一定のタイミングで書き換えを行え
ば良いのでは?と。

実装はそれほど難しくないけど、デバッグが困難そうですが・・・。
趣味の場合はやっぱりデバッグがネックになりますかね?

・・・あ〜、ダメかな?常に古いフレームが表示されることになるか・・・。

ご意見ください。
0075名無しさん@お腹いっぱい。01/11/09 15:04ID:???
どうやって入力を予測するのか聞きたいところ。
0076なまえ01/11/09 15:19ID:???
え〜と、入力を予測するのではなくて、今現在の入力が未来の入力になってしまう。
『常に古いフレームが表示される』とはそういうことです。
0077名無しさん@お腹いっぱい。01/11/09 19:22ID:???
利点が今一つわからんのですけど。
重たい処理が来たときに、スタックしていた分を消費してごまかすってことかな。

そんなことしなくても、できあがった画像はどんどん更新していったらいいと思いますが。
多分、重たい処理なんて1フレームで終わらないことが多いと思いますし。
どんどん、更新するのが嫌ならsleepさせてタイミングを合わせれば良のでは
ないのでしょうか。

というか、聞いてみるより思いついたらやってみるのが一番ですよ。
0078なまえ01/11/09 20:08ID:???
結局俺が言いたいのは、何もせずスリープさせる時間を有効利用できないかな
ということです。1ミリ秒あればいろんな計算ができるでしょ。角度とか。
そして誰もそれをやっていなかったようなので、どうしてだろう?と。

普段ゲーム作ってるわけじゃないので、その辺興味あって。
Thread云々は単なる例です。

文章下手でスマソ。
0079名無しさん@お腹いっぱい。01/11/09 21:04ID:???
リアルタイムで動くゲームプログラムと言えど
毎秒30回とか60回とかでフレームの生成ができればそれで十分なわけで、
「やることがない」ならばCPUを明け渡すのは、
通常のイベントドリブンなGUIアプリケーションでも同じことだと思いますが。

まあ、その辺は作りによります。
sleepやマルチメディアタイマを使わずにガンガン回すタイプもあるし、
メインループが寝てる間に別スレッドで思考ルーチンを動かしたり
データ読み込んだりするのもあるし。
00807901/11/09 21:22ID:???
あちゃー、無意識のうちにWindows前提になってた。
s/マルチメディアタイマ/割り込みタイマ/
0081名無しさん@お腹いっぱい。01/11/09 23:02ID:k863gV/O
>>78
トリプルバッファにすれば解決するするよん。
0082なまえ01/11/09 23:11ID:???
>>79
>「やることがない」ならばCPUを明け渡すのは、

これは全くその通りです。

ただ「描画時間がネック」みたいな発言をよく見かける割に、sleepしているので、
例えば次のフレームの背景くらい用意しておければと。

確かに、そこまでしなくても済むのなら寝ててもかまいませんが。
ちょっと先入観があったみたいです。それこそ作ってみれば解決した問題でしたね>>77

>>81
なるほど。勉強なります。

ゲーム作りって面白そうですね。
ヒマを見つけて少しずつ作ってみたいと思います。
0083名無しさん@お腹いっぱい。01/11/09 23:18ID:???
それってパソコンは速度が違うということを忘れてないか?
0084名無しさん@お腹いっぱい。01/11/09 23:19ID:???
>>83 いろんな意味に取れるので、もうちょい具体的に書いてちょ。
0085名無しさん@お腹いっぱい。01/11/10 06:31ID:???
>>82
>ただ「描画時間がネック」みたいな発言をよく見かける割に、sleepしているので、
>例えば次のフレームの背景くらい用意しておければと。
たぶんへぼいソース見ただけだと思う。ソースさらしキボン(荒れると思ったらせんでよろし)

FPS可変なら、資源を使うだけ使いたいのでフルで回す。

FPS固定なら、あまる時間はsleepすると。
もちろん、どちらにせよ別スレッドでサウンド流したりしてるかもしれんよ。
0086名無しさん@お腹いっぱい。01/11/10 10:02ID:???
>>85
FSP固定の場合は、こんな方法がありますね。

実行スレッド以外に、タイマースレッドを用意する。
CreateEventでイベントオブジェクトを作っておく
タイマースレッドは、Sleepで一定時間眠らせつつ、SetEventを実行する。
実行スレッドは、イベントオブジェクトをWaitForSingleObjectで待つ。
0087名無しさん@お腹いっぱい。01/11/10 10:59ID:Ci4ZgWPC
ageるっちゃ。
00887701/11/10 15:14ID:Pfrth29i
>ただ「描画時間がネック」みたいな発言をよく見かける割に、

なんか混乱しているような気もしますが。
描画処理のwaitと描画処理以外のwaitがごちゃ混ぜになっていませんか?
この当たりの実装はプラットフォームやアプリケーションによって違うので
一概に、こういうコーディングが良い、という例はないと思います。
0089名無しさん@お腹いっぱい。01/11/10 17:29ID:???
http://crystal.linuxgames.com/
Crystal Space どうよ。
0090名無しさん@お腹いっぱい。01/11/11 05:37ID:???
<通常のイベントドリブンなGUIアプリケーションでも同じことだと思いますが。
そっちの畑から来た身としては、どうも使えるだけ資源消費せよ、みたいな
コードがどうしても書けない(笑)向いてないのかもしれん。
0091名無しさん@お腹いっぱい。01/11/11 08:21ID:???
いやあ煽れも使えるだけ資源消費型のGUIツール(ゲーム用のな)作っちゃうからな。
そりゃ重いっていわれるよ(w
ゲーム本体のルーチン使いまわしてるから当然なんだけど
0092名無しさん@お腹いっぱい。01/11/11 09:24ID:54DZd3xv
>>90
メモリーの動的取得が上手く出来ない
って事かな?
0093名無しさん@お腹いっぱい。01/11/11 10:25ID:???
>>92
......ageでなにかいてんだか

>>90
アクション性が無いなら、それでもイイと思うけど。
0094名無しさん@お腹いっぱい。01/11/11 11:48ID:???
日曜日らしい>>92のカキコはほっとくとして、
バッテリ動作のノートPCとかギリギリで動いてるクロックアップ機とか想定するなら
資源使い切らない選択も悪くないと思ふ。
0095名無しさん@お腹いっぱい。01/11/11 16:57ID:???
>ギリギリで動いてるクロックアップ機
↑はベンチマークのために存在しているようなマシンなのだから、めいっぱい負荷をかけてあげると喜ばれると思われ。
00969401/11/11 20:12ID:???
なるほど、そういう考え方もあるか。
0097名無しさん@お腹いっぱい。01/11/12 07:32ID:???
>>95
むしろ熱暴走させてあげるくらいがよいと思われ。
「ああ、しまったクロックあげすぎかー」と反省。
00989001/11/13 02:28ID:???
>92
開いてる時間はOSに処理返しますから。
可能な限りフレームレート上げようという思考で
作業した事ないんで
>93
うーん、そこそこアニメーションさせねばならん時でも、
必要なFTS固定でやっちゃいます。
0099名無しさん@お腹いっぱい。01/11/20 07:14ID:xfX6epq/
なんか見捨てられてるこの伝統的スレ。一応age
0100名無しさん@お腹いっぱい。01/11/20 09:51ID:LstOLEvl
超亀レスですが、クイックスの領域内外判定は
クイックスの座標から適当な方向に線を伸ばしてみる
(というか単純にピクセルを走査してみる)といいと思った。
境界ピクセルと交わる回数が奇数なら領域内、偶数なら領域外。
あとはクイックスがいない側をペイント。これで6502でも安心。

ほんとに超亀レス。
0101名前は開発中のものです。01/12/10 01:54ID:vuNiN/Ut
初心者に毛が生えた程度なんで
テーブル処理についてよくわからないので教えてください。
言語はVC++です。
検索して探しましたがHTMLばっかりなんで・・
0102名前は開発中のものです。01/12/10 02:07ID:???
言語がVC++とか言ってる時点で逝ってますね。

まずは、C言語から始めましょう。
VB厨にはとっつきにくいかも…?
0103名前は開発中のものです。01/12/10 02:56ID:9KJkp3pd
>>101

「テーブル」「ルックアップ」とかで試してみたほうがいいかも。
あと、英語で検索したほうが引っかかる予感がする。

>>102

ストレス過多は胃に悪いので牛乳でも飲みなされ。
0104名前は開発中のものです。01/12/11 11:07ID:???
>>101
テーブルで何やりたい?
そこから説明してくれ。
0105 01/12/11 23:47ID:8empnFet
カコイイ稲妻とかってどうやってプログラムすれば良いの?
0106名前は開発中のものです。01/12/12 00:22ID:???
>>105
まずは試しにカコワルイ稲妻を作ってみるのがよいと思われ。
0107名前は開発中のものです。01/12/12 00:31ID:???
カコイイかカコワルイかは知らんが日高徹さんのプログラミング本に
ずばり稲妻を表示するサンプルが載ってたと思う。
VB用とDelphi用だったかな。
■ このスレッドは過去ログ倉庫に格納されています