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

このエントリーをはてなブックマークに追加
1プチ9627m
ゲームプログラミング全般についての質問スレッド。
駄スレ立てる前にココで聞きましょう。

■旧スレ(プログラミング技術板より)
○パート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/
2名無しさん@お腹いっぱい。:01/11/06 19:36 ID:???
そんなことよりちょっと聞いてくれ>>2
昨日、近所の吉野家行ったんです。吉野家。
そしたらなんか人がめちゃくちゃいっぱいで座れないんです。
で、よく見たらなんか垂れ幕下がってて、150円引き、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、150円引き如きで普段来てない吉野家に来てんじゃねーよ、ボケが。
150円だよ、150円。
なんか親子連れとかもいるし。一家4人で吉野家か。おめでてーな。
よーしパパ特盛頼んじゃうぞー、とか言ってるの。もう見てらんない。
お前らな、150円やるからその席空けろと。
吉野家ってのはな、もっと殺伐としてるべきなんだよ。
Uの字テーブルの向かいに座った奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと座れたかと思ったら、隣の奴が、大盛つゆだくで、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、つゆだくなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、つゆだくで、だ。
お前は本当につゆだくを食いたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、つゆだくって言いたいだけちゃうんかと。
吉野家通の俺から言わせてもらえば今、吉野家通の間での最新流行はやっぱり、
ねぎだく、これだね。
大盛りねぎだくギョク。これが通の頼み方。
ねぎだくってのはねぎが多めに入ってる。そん代わり肉が少なめ。これ。
で、それに大盛りギョク(玉子)。これ最強。
しかしこれを頼むと次から店員にマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、牛鮭定食でも食ってなさいってこった。


3名無しさん@お腹いっぱい。:01/11/06 20:06 ID:???
============終了=============
4名無しさん@お腹いっぱい。:01/11/06 20:32 ID:tdDZ8XPO
DirectX話は別にスレ立てるの?
5名無しさん@お腹いっぱい。:01/11/06 20:52 ID:???
別がいいね
6名無しさん@お腹いっぱい。:01/11/06 20:53 ID:g4nNhikQ
メタルギアの主人公が透明になる処理ってどうやってるんでしょうか?
あれ、やってみたいんすけど、アルゴリズムが思いつかん。
バカですみませんが、こういう風にやってるって言うの教えてくださいな。
7名無しさん@お腹いっぱい。:01/11/06 20:59 ID:2L5/MEoG
>6
アルファブレンド
8名無しさん@お腹いっぱい。:01/11/06 21:01 ID:Ubm7e8yT
>>6
BBXに光学迷彩のスレッドがあったぞ。
http://isweb8.infoseek.co.jp/computer/bbx/
9名無しさん@お腹いっぱい。:01/11/06 21:03 ID:qXJQuXdp
いきなりな始まり方だな(泣
10名無しさん@お腹いっぱい。:01/11/06 21:17 ID:Wy/vrzew
屈折・・・はちょっと違うな。
モデル抜きで描画したやつをテクスチャに使って
モデルが描画されるはずの場所を適当に散らしてやるとか。
11名無しさん@お腹いっぱい。:01/11/06 21:31 ID:ffLcuzBF

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>102

ストレス過多は胃に悪いので牛乳でも飲みなされ。
104名前は開発中のものです。:01/12/11 11:07 ID:???
>>101
テーブルで何やりたい?
そこから説明してくれ。
105 :01/12/11 23:47 ID:8empnFet
カコイイ稲妻とかってどうやってプログラムすれば良いの?
106名前は開発中のものです。:01/12/12 00:22 ID:???
>>105
まずは試しにカコワルイ稲妻を作ってみるのがよいと思われ。
107名前は開発中のものです。:01/12/12 00:31 ID:???
カコイイかカコワルイかは知らんが日高徹さんのプログラミング本に
ずばり稲妻を表示するサンプルが載ってたと思う。
VB用とDelphi用だったかな。
108名前は開発中のものです。:01/12/12 01:11 ID:T2PuoAFH
>>105
http://www.art-science.org/pdf/2000/lightning.pdf
この論文は参考にならんかね。
109名前は開発中のものです。:01/12/12 02:30 ID:d7VfLUCO
        ∧_∧
       ( ´Д`) <これのことか?
      /    \       
   _  | |    | |_..∬     
  |\ ̄ ̄ ̄ ̄ ̄ ̄ 旦.\
 ./..\\            \
/   \|=================|
\    ノ    こたつ     \
110一人暮し。:01/12/12 06:51 ID:???
>>109
それ欲しい。
111名前は開発中のものです。:01/12/12 09:46 ID:???
カコイイ暴風雨ってどうやってプログラムすれば良いの?
河川の氾濫も含めて教えてください。
112名前は開発中のものです。:01/12/12 11:31 ID:???
>>101
テーブルをどんな場面で使うのかが解からんのか?
それとも、配列の概念がわからないのか?どっちだ?

>>108 おお!こんな論文があるとわ。
参考になるッす。サンキュー!!
113名前は開発中のものです。:01/12/14 03:59 ID:???
いいね
114名前は開発中のものです。:01/12/14 06:41 ID:???
いろんな機能をクラス化すると遅いYO!
なんとかなりませんか?
115114:01/12/14 06:43 ID:e7GMQ3b8
あ、すいません。
あと参照使うのとポインタでは速度に違いありますか?
116名前は開発中のものです。:01/12/14 08:04 ID:???
参照は小粒でピリリと辛い
117名前は開発中のものです。:01/12/14 08:09 ID:???
>>116
?ちょっと重いってことですか?ありがとうです。
118名前は開発中のものです。:01/12/14 09:51 ID:???
62 :無責任な名無しさん :01/11/18 00:49 ID:doqdaWjA
掲示板の運営者のすることは管理することなんだから、全部に
目を通せないなら運営すべきじゃない。また削除依頼を公開する
必要もないしなかなか削除しない理由もない。
つまり確信犯で不法行為に荷担しようとしてるとしか思えない。
金儲けはする気はないといっていたが、だったらやっぱり
彼は子供というか、人が困るのが好きなのかもしれない。

63 :無責任な名無しさん :01/11/18 07:00 ID:VZdC2q47
>人が困るのが好きなのかもしれない

俺にもそういう人間にしか見えないよ
違法性の程度は違うが
放火犯のような愉快犯と同じような
気味悪さを感じる

64 :無責任な名無しさん :01/11/18 12:59 ID:OxVkCF27
>>62,63
同意。
知人の警官もひろゆきを気味悪い程の女性気質と評していた。
ガキの頃のひろゆきを想うと、面と向かって喧嘩は出来ないが、上履きを隠したり
して喜んでたタイプだと思う。
どうでもいいけど、ひろゆきの笑った黒目がちな焦点のない目が守大介と似てるの
が妙に気になる。
119名前は開発中のものです。:01/12/14 23:07 ID:???
116の半分は勝利感でできています(バファリン風に)。

残り半分は気まずさであると信じたい。
120名前は開発中のものです。:01/12/15 06:23 ID:???
117タン・・・ハァハァ
121名前は開発中のものです。:01/12/15 17:02 ID:9eQ/pH5V
>>115
クラスのインターフェースとかなら、
生成されるコードに基本的に違いはないんじゃない?
ただ、安全面から、使えるならできるだけ参照を使うべき。
この辺がCプログラマとC++プログラマの差でもある。ニヤーリ
122名前は開発中のものです。:01/12/15 17:06 ID:???
>>121
デスマーチ真っ只中でもそういうコード書いてくださる先輩が
いる。まったく持って激しく尊敬。おれも精進せねば。
123名前は開発中のものです。:01/12/15 18:41 ID:???
>>121
でも参照って配列渡せないでしょ。違ったっけ?
ポインタも使いようだと。メンドイけど。
124名前は開発中のものです。:01/12/15 18:42 ID:???
おれポインタ渡しなんて極力使わないようにしてるよ。できるかぎり参照ですませてる。
125116:01/12/15 23:19 ID:???
>>119
>残り半分は気まずさであると信じたい。

9割くらい気まずいです(笑
ただのダジャレだったのに。
126名前は開発中のものです。:01/12/15 23:43 ID:zSSwxmsK
>>121
別に参照もポインタも安全性はかわらんよ。
NULLポインタの可能性がないとしても、NULL参照の可能性はある。

int& GetRef()
{
int* n = NULL;
return *n;
}

こっちの方が余計厄介
127名前は開発中のものです。:01/12/15 23:54 ID:???
どっちがよりありえる状況か?
って問題でしょ。
128名前は開発中のものです。:01/12/16 01:25 ID:???
よくあるのとたまにあるのはどっちが問題かは難しい。
個人的にはたまにあるほうがはまると思う。
129名前は開発中のものです。:01/12/16 01:29 ID:???
>>123
>でも参照って配列渡せないでしょ。

じゃあ参照で何を渡すことができるのか小一時間問い詰めたい
130名前は開発中のものです。:01/12/16 01:41 ID:???
関数の引数にしか参照使わないなぁ・・・。
しかも、
関数側がパラメータを書き換える場合はポインタ、
関数側がパラメータを書き換えない場合は const 参照、
みたいな、教科書的使い方しかしてない。
131あぼーん:あぼーん
あぼーん
132_:01/12/16 02:36 ID:Ar8VngeJ
まあ、山椒言うぐらいだから、山椒に使ってれば、いいんじゃ?
だから、constで。
俺は、ネストがうざくないなら、ポインタで済ますけどね。
133名前は開発中のものです。:01/12/16 03:58 ID:???
>>126
そのコードは結局ポインタの問題であると思うがいかがであろう。
プログラム板向けな話題だが……。
134名前は開発中のものです。:01/12/16 07:07 ID:???
>131
なんて書いてあったか気になる・・・
135名前は開発中のものです。:01/12/16 07:33 ID:+KES3Ub0
windowsの画面の設定で大きいフォントにしていると
表示が破綻するのですが、なにか回避作はないのでしょうか。
136名前は開発中のものです。:01/12/16 11:55 ID:???
山椒は結局ポインタでしょ。
137名前は開発中のものです。:01/12/16 12:45 ID:???
>>135
フォントの大きさを固定する。
138 :01/12/16 16:46 ID:???
FDDドライブにフロッピーが入ってなかったfalseを返すように
するにはどうしたらいいですかヽ(;´Д`)ノ?
139名前は開発中のものです。:01/12/16 17:25 ID:???
>>138
nazo
140名前は開発中のものです。:01/12/16 17:42 ID:aHuW4LrA
んー、FDDに特定のファイルがなかったら。でもいいのですが・・・
141 :01/12/16 18:19 ID:???
>>140

割とFAQなんだがな。検索したか?
142名前は開発中のものです。:01/12/16 21:18 ID:daAjOz/U
>>138
SetErrorMode(SEM_FAILCRITICALERRORS)して
GetVolumeInformation()すれば?
FD入ってなければエラーが返るよ。
143名前は開発中のものです。:01/12/24 16:40 ID:TT6cQF5s
あがります。ドキドキ
144名前は開発中のものです。:01/12/24 23:02 ID:q2IMbhtW
射影行列から視点って求められますかねぇ?
145名前は開発中のものです。:01/12/25 06:00 ID:???
それは、コーヒーにミルクと砂糖を混ぜたあとで
砂糖だけ取り出すようなものではありますまいか。
146名前は開発中のものです。:01/12/25 21:55 ID:???
>>145
つまり、かな〜り難しいということですね。
どうもありがとう。
視点は別でとっておきます。
147名前は開発中のものです。:01/12/26 11:46 ID:???
行列の逆変換を行うんだっけ?
はっきり覚えていない
148-:02/01/08 23:20 ID:yU2HT0bl
好き好きはあると思いますがゲームを作るのに最も適している言語って何だとおもいます?
149名前は開発中のものです。:02/01/08 23:28 ID:???
>>148
英語
150名前は開発中のものです。:02/01/08 23:36 ID:???
>>149
日本語使おうぜ。日本人なら。
151名前は開発中のものです。:02/01/09 00:10 ID:???
10 カケ "コンニチハ"
152名前は開発中のものです。:02/01/09 00:28 ID:???
>>148
C++使っておけば馬鹿にされない。
153名前は開発中のものです。:02/01/09 00:44 ID:???
>>148
pygameは?
誰も使ったことなさそうだ。
154名前は開発中のものです。:02/01/09 08:37 ID:???
>>153
それをもっとも適した言語というのはどうかと(w

まあ、くやしいがC/C++じゃないかな
155-:02/01/09 22:11 ID:???
やっぱりC/C++ってことになるのかぁ
156名前は開発中のものです。:02/01/09 23:51 ID:???
あと、アセンブラもたまに必要。
フルアセンブラでなくても、インラインアセンブラぐらい書けたら
たまーに重宝する事があるんだが…。
157名前は開発中のものです。:02/01/10 02:04 ID:???
sinとcosの値が同時に欲しい時とか。
158名前は開発中のものです。:02/01/10 14:53 ID:4z5AnKwA
BGMを作るのに使える簡単な作曲ソフト教えてくれませんか?
159名前は開発中のものです。:02/01/10 15:23 ID:???
「簡単な」ものがあれば漏れも知りたい。
160名前は開発中のものです。:02/01/10 21:58 ID:s/3jCGLI
>>158
http://hello.to/dtm/
自動作曲ツール
161名前は開発中のものです。:02/01/11 14:37 ID:JxPmum3m
ブロックくずしの跳ね返る方向って
どうやって決まるんだろう。
止まっている時の跳ね返りはなんとなく
分かるんだけど…
162名前は開発中のものです。:02/01/11 15:08 ID:???
>>148
C でしょ。ゲームによるけど C++ はあまりお薦めしないなぁ。アセンブラは
使い方が分かる程度に勉強しておくと役に立つかも。
163名前は開発中のものです。:02/01/12 00:44 ID:qF5Awb+F
>>161
大雑把に処理するなら、停止時の弾の跳ね返り速度に、
ブロックの移動速度を足す。

つーか、摩擦やら跳ね返り係数やらを考慮しても良いのだが、
労力に見合うとは思えん。ま、ヒマならやってみ。
164名前は開発中のものです。:02/01/12 00:48 ID:???
>>158
最近のシーケンスソフトについてくるオートバッキング機能は結構
便利だよ。漏れはYAMAHA派なのでXGWorksなんだが、てけとーなフ
レーズを打ち込んどいてオートアレンジャーで伴奏つけてから、元
のフレーズを消して、あらためてひらめいた音を入れる、というア
フォな手法を使ってます。
165名前は開発中のものです。:02/01/12 11:50 ID:WQq5T0Hz
>>163
よく考えたら、摩擦は関係ないような・・・
166名前は開発中のものです。:02/01/12 12:58 ID:2GJZajHz
>>165
パドルの動きに対してどんだけボールが粘着するかの係数
167名前は開発中のものです。:02/01/13 00:33 ID:ssMqoitn
>>166
あと、慣性モーメントだな
168名前は開発中のものです。:02/01/13 02:14 ID:LBqywreg
>>158
cherryも使える。検索しよう!
169名前は開発中のものです。:02/01/13 03:31 ID:???
>>161
多少ランダムな要素も含まれている気がする。

>>166
キャラクタの材質の設定もあるわけでちゅかい?
170名前は開発中のものです。:02/01/13 03:54 ID:???
>>169
元々163が振ったネタだよ。
171名前は開発中のものです。:02/01/13 03:56 ID:???
そうでした
172名前は開発中のものです。:02/01/13 03:59 ID:???
この手の joke がワカラン奴の「ゲーム屋」としての適正を少々
疑ってしまう俺。言い過ぎか?
173名前は開発中のものです。:02/01/13 04:10 ID:08Lp1+qJ
http://mpulip.hoops.ne.jp/gametips/gametips.htm
flip使っちゃいけませんか
174名前は開発中のものです。:02/01/13 04:12 ID:???
おれもジョークまじりなつもりだったのだがつまらなかったな
175名前は開発中のものです。:02/01/13 04:25 ID:???
>640x480フルカラーのゲームを作るとする。60FPSのゲームを作る場合、1秒に転送するデータ量はどのくらいだろうか。
>52.7MB/sである。

にはついワロタ。世の中っていろんな人がいるんだなぁ。。。
ていうか読めば読むほど素晴らしい洞察に長けた文章が漫才なん
だが(笑
筆者は相当なネタ師とお見受けする。
176名前は開発中のものです。:02/01/13 04:34 ID:???
>>161-170でどれがjokeか分からない自分は逝ってよし?
>>165-167あたり?
177名前は開発中のものです。:02/01/13 10:34 ID:???
>175
DIB作って毎回転送してやればそのぐらいになるんでは?
DirectDrawを解像度の切り替えぐらいしか使ってないけど

まぁ、そんな事しているとは到底思えないんだが…
178名前は開発中のものです。:02/01/13 12:02 ID:???
>>177
それなら55Mくらいじゃないかな?
179名前は開発中のものです。:02/01/13 14:34 ID:???
>>175
何が笑えるのかよくわからんのは俺だけかね?
# いやまあ、データ隠蔽のあたりは笑えなくはないが
暇だったら説明きぼんぬ。
180名前は開発中のものです。:02/01/13 14:37 ID:???
俺も何が笑えるのか分からん。
>>175に400字詰め原稿用紙10枚ほどで説明してもらいたい。
181名前は開発中のものです。:02/01/13 18:47 ID:Hyzb8Prh
161です。
レスありがとうございます。
何かヒントがつかめたような気がします。
しかし今時ブロック崩しもないよなぁ・・・
182名前は開発中のものです。:02/01/13 19:07 ID:???
>>175じゃないけど、「今時リフレッシュレート60ってあまりいないぞ」には疑問かも。
183名前は開発中のものです。:02/01/13 19:38 ID:???
>>182
今時も何もFPS固定派には多いというか、それしかないような。
184名前は開発中のものです。:02/01/13 21:12 ID:???
とりあえず 52.7MB/s ってどこから出たんだ?
3バイトとしても微妙に違わね?
185名前は開発中のものです。:02/01/13 21:22 ID:???
>184
640(pix)*480(pix)*24(bpp)*60(fps)/1024(K)/1024(M)=421.875(Mbps)
8で割って52.734375MBytes/s。
なんか変か?
186名前は開発中のものです。:02/01/13 21:23 ID:???
>>179-180
ひょっとして書いた本人か?w
187名前は開発中のものです。:02/01/13 21:25 ID:???
とりあえず、ごく最近この道に入った奴には、あの内容では笑う
しかないのでは? ヴィデオメモリとメインメモリの違いも理解
してなさそうだし。
188名前は開発中のものです。:02/01/13 22:54 ID:???
なんつーか、滅茶苦茶というか…強いて言うなら苦笑いか?
とりあえず、メモリの違いとか全部転送するのかとかはおいておくとしても、
自分で60fpsで固定するなとか抜かしてるのに、計算式は60固定かよ、みたいな。
いくらでもつっこめそうですな。
189名前は開発中のものです。:02/01/14 02:19 ID:???
>>187
8年位前のPCでDOSエクステンダが云々、VESA BIOSが云々、といってた時代なら正しいんだけどね。
実際にPCIの帯域がこれこれだから、理論値は…という話題も合ったし。
190名前は開発中のものです。:02/01/14 02:40 ID:???
>186
ちげーよ。
>189
ああ、そういう意味か。まあ確かにAGPなら
55MB/s程度の風速は屁でもないわな。
191haruka:02/01/18 02:42 ID:???
>>161
アルカノイドだと、バウス(自機)にボールがあたったときの跳ね返り方向は、
バウスのどの部分に当たったかで決まってますが、
ブロック崩しってなんか特別なのがあるんでしょうか?

>>175が書いてるやつってさ、
普通オフスクリーン間の転送の方がずっと大きいので
オフスクリーンからプライマリに転送するところだけ計算することに
何の意味があるのかよくわからないです。
192名前は開発中のものです。:02/01/18 13:15 ID:???
>>191 それはアルカノイドが特殊なだけ、それに準ずるかどうかは設計者次第
193名前は開発中のものです。:02/01/19 11:20 ID:l0apz3Qd
要するにゲームデザインの問題と。
個人的には、律儀に正しく反射するだけのブロック崩しは
なかなか最後の数ブロックに玉が当たらなかったりして
クソゲー化してるのをよく見かける気がする。ついでにage
194名前は開発中のものです。:02/01/19 15:39 ID:???
>>191
昔は画面への転送が遅かったからあながち>175のは意味が無かったわけじゃない。
195名前は開発中のものです。:02/01/19 16:42 ID:???
>>185 175の人は
「1秒の転送量(MB) < ビデオカード(MB)じゃなきゃ駄目」
のようなこと質問者が考えてるか想像してワラタのかも。
196名前は開発中のものです。:02/01/20 10:33 ID:???
全くのプログラム初心者でいきなりJavaとか不可能?
197名前は開発中のものです。:02/01/20 11:27 ID:???
>>196 本人の努力次第
198名前は開発中のものです。:02/01/20 12:11 ID:???
>>196
アメリカの情報系学部ではJavaからプログラムを始めさせるらしい。
199超怒級素人:02/01/20 14:30 ID:???
Cでゲームを作る、って、どうやって?
Windowsで出来る?
200名前は開発中のものです。:02/01/20 14:34 ID:???
作っていますが、何か?
201名前は開発中のものです。:02/01/20 14:49 ID:???
>>199
Cでもできます。
じゃんけんゲームとかなんでもできます。

グラフィカルな市販されているゲームをつくりたいのであればWin32APIを利用して作るのですよ。
202超怒級素人:02/01/20 15:00 ID:???
Win32APIって、Cでも使えるんですか?
使うとしたら、どの処理系で?
たとえば、マインスイーパー程度のゲームであれば、
Cだけで作れます?
203超怒級素人:02/01/20 15:00 ID:???
処理系っていうのは、開発環境のことです。
204名前は開発中のものです。:02/01/20 15:24 ID:???
>>202
>Win32APIって、Cでも使えるんですか?
使えます
>使うとしたら、どの処理系で?
VC++, Borland C++ (Builder), IntelC, cygwin, mingw32, digitalmars, watcom, lcc-win32 など
>たとえば、マインスイーパー程度のゲームであれば、
>Cだけで作れます?
作れます
205名前は開発中のものです。:02/01/20 22:59 ID:???
>>202
Cだけで作れます? というが、むしろ
複数の言語を使ってゲームを組む方が難しくないか?
206haruka:02/01/21 08:29 ID:???
>>198
日本でも最初Javaっていうところは多いと思うよ。

>>204
簡単なゲームならCだけでいいけど、
がんばってC++で作った方がいいような気がするんだけど、
そんなことないですか?

207名前は開発中のものです。:02/01/21 10:57 ID:???
>>204
まずCからやってみそ。いきなりC++やっても死ぬだけだ
208名前は開発中のものです。:02/01/21 10:57 ID:???
>>206
209名前は開発中のものです。:02/01/25 18:01 ID:TpNdaRO3
シューティングで敵を出すプログラミングはどんなのがあるんですか?
210名前は開発中のものです。:02/01/25 18:11 ID:???
こんなの

bool Teki = true;

プロの間じゃもう常識。
211名前は開発中のものです。:02/01/25 18:44 ID:TpNdaRO3
それだけ。
じゃ、一定の期間で敵を出すプログラムはどんなのがありますか?
212名前は開発中のものです。:02/01/25 19:00 ID:JabPi9JG
enum TekiStatus tekiIkimasu = GOGOGO;
unsigned tekiNhun_gamubare = 3;

これ常識。

213名前は開発中のものです。:02/01/26 00:05 ID:???
sleep(1000);
printf("(●`ー´●)");
214名前は開発中のものです。:02/01/26 13:00 ID:???
while(1){
  MessageBox(0,"敵","敵",0);
  Sleep(3000);
}
一定間隔で敵がでます。
215名前は開発中のものです。:02/01/26 20:15 ID:???
よかったネ
216名前は開発中のものです。:02/01/26 20:46 ID:BXZOAbm3
>>209,>>211

簡単なもので良ければ、うpしようか?
217209:02/01/26 22:16 ID:???
>>216
いや、遠慮する。
218名前は開発中のものです。:02/01/27 16:02 ID:nDy60XnE
m×nマスが定義されていてキャラAがb個のマスを移動する
というアルゴリズムだれか作って!ちなみにVB。
b=3のとき、こんな感じ
□=空きマス ◆=キャラA ■=移動可能マス ◇=障害物

□□□□■■■□□□
□□□■■■■■□□
□□□◇■◆■■■□
□□□■■■■■□□
□□□□■■■□□□
□□□□□■□□□□
219名前は開発中のものです。:02/01/27 16:11 ID:???
>>218
っていうか全検索しる!
220名前は開発中のものです。:02/01/27 16:39 ID:???
>>218
初歩的すぎるが、暇なので擬似コード書いてみた。

すべてのマスに対応する移動可能残量ワークを用意。ゼロ初期化。
でスタート

関数(位置, 移動可能残量)
{
 位置が障害物なら何もしないでリターン
 移動可能残量でその位置に入れないのならリターン

 移動可能残量 -= このマスに入るのに必要な消費量

 その位置のワークにすでに移動可能残量以上の値が入っていたらリターン

 その位置のワークに移動可能残量を記入

 if ( 移動可能残量がまだある ) {
  関数(上, 移動可能残量)
  関数(下, 移動可能残量)
  関数(左, 移動可能残量)
  関数(右, 移動可能残量)
 }
}

これで
関数(Aの位置, B)した結果のワークが0でないところが移動可能範囲として描画できる。

たどるべき最短ルートは、任意のポイントのワークの数字を読んで
その隣の数字が大きくなる方向をたどっていけばAまで到達できる。
221名前は開発中のものです。 :02/01/27 16:40 ID:???
>>218
http://www.basicmagazine.net/

はい、次の人。
222名前は開発中のものです。:02/01/27 17:02 ID:???
足裏が臭くなってきたな、このスレも。
223218:02/01/27 17:24 ID:nDy60XnE
>>220
すべてのマスに対応する移動可能残量ワークってどういう意味ですか・・?
すいません、初心者で。
224218:02/01/27 17:43 ID:nDy60XnE
>>220
あ、できました。こんな簡単なコードでできるんですね。
ありがとうございました!いやー2chってすごいなー
225名前は開発中のものです。:02/01/27 21:51 ID:???
>>222
それはつまり、足を洗えということか?(w
226名前は開発中のものです。:02/01/27 23:45 ID:???
>>225
いや、足掻いてるってことかもよ(w
227名前は開発中のものです。:02/01/28 09:49 ID:/P/BMSWv
>>216
いやお願いいたします。
228770:02/01/28 11:56 ID:/P/BMSWv
>>217
は偽者です。
229名前は開発中のものです。:02/01/28 16:20 ID:???
>>209,>>211

今でも区別が付かないのでトリップとか使ってちゃうだい。
名前欄に半角シャープに続けてパスワードを入れるやつ。
こんなん↓

209#パスワード
230209 ◆jUZhK5lw :02/01/28 17:28 ID:/P/BMSWv
これでいいんですか?
231名前は開発中のものです。:02/01/28 17:45 ID:???
DirectXSDKのサンプル“PointSprites”を見てみるのはどうよ。
とか茶々を入れてみたり(スマヌ >>229
232209 ◆2sDz/Rq6 :02/01/28 20:09 ID:???
?
233229:02/01/28 20:12 ID:???
念のため書くけど、俺は216じゃないyo
234209 ◆jUZhK5lw :02/01/29 13:54 ID:YY1S1IhK
235名前は開発中のものです。:02/01/29 16:59 ID:???
敵を出す方法が分からない以前に、自機と自弾は出せるのか?(w
236名前は開発中のものです。:02/01/29 18:24 ID:???
最初にシューティング作ったときに配列しらなかったから、
敵や弾が複数出せなかったりして困ってたが、そのレベルの質問か?(ワラ
237209 ◆jUZhK5lw :02/01/29 18:53 ID:YY1S1IhK
>>235
ハイそれはなんとか。
自機と弾は、構造体を使って出しました。
238209 ◆2sDz/Rq6 :02/01/29 21:59 ID:???
(じゃあ、敵もだせよ・・・)
239名前は開発中のものです。:02/01/30 00:21 ID:???
>238
warata.
240209 ◆jUZhK5lw :02/01/30 10:08 ID:yLP42Smi
>>238
最初の1匹は出るんですが。一定の間隔での出し方が
ちょっとわかんないんです
241一定間隔:02/01/30 10:13 ID:???
int count = 0;
/* gameloop */
while (1) {
  :
  if ((count%100)==0) {
    createNewEnemy();
  }
  :
  count++;
}
242名前は開発中のものです。:02/01/30 13:18 ID:???
>>240
メインループ()

 カウンター変数を+1

 if(カウンター変数が10以上になったら)
 {
  敵発生処理()
  カウンター変数=0
 }

 発生している敵の描画処理等()



いっぺんこうしてみ。メインループの中に織り交ぜれ。
243209 ◆jUZhK5lw :02/01/30 15:34 ID:yLP42Smi
>>241
複数の場合は?あとcreateNewEnemy()だけで敵が出るんですか?
244アマチュアの81:02/01/30 16:26 ID:kJDn/Pfx
http://www.cmagazine.jp/books/recipe/
こんなの買ってみてはいかが?>209

俺は立ち読みでしか読んでないけど、確かスプライトやスクリプト
の説明まで載ってたと思う。
245名前は開発中のものです。:02/01/30 17:00 ID:???
>>209による一連の書き込みは、巧妙に仕組まれたワナということにみんな早く気付け!。
246アマチュアの81:02/01/30 17:09 ID:???
ほんまっすかw

堂々巡りを見かねて餌を投げたのですが。
247209 ◆jUZhK5lw :02/01/30 18:07 ID:yLP42Smi
>>245
罠のわけないでしょ
>>246
堂々巡りってなに?
248名前は開発中のものです。:02/01/30 19:08 ID:???
ただのウザイスレになったな。(ぁ
249名前は開発中のものです。:02/01/30 19:20 ID:???
>>247
>複数の場合は?あとcreateNewEnemy()だけで敵が出るんですか?
出るわけねーだろ?
そんなこと聞くから罠だって言われるんだよ!。
250名前は開発中のものです。:02/01/30 20:46 ID:???
 あきまさが次スレたてるときに合流させるか(w
251名前は開発中のものです。:02/01/30 21:07 ID:???
本気なら、HP立ち上げるなりで証拠を見せるのも手だね。
あきまさのように。
252あきまさ後援会:02/01/30 21:09 ID:???
ご遠慮願います
253名前は開発中のものです。:02/01/30 21:43 ID:???
痛い初心者を見てきたからプログラム板の住人
の対応が冷たくなるのかなぁ。
昨日の回答者はよく我慢したと思う。
254名前は開発中のものです。:02/01/30 22:07 ID:???
心に余裕がないのよ。
255名前は開発中のものです。:02/01/31 08:37 ID:???
>>243
とりあえず、プログラム自身をもっと勉強しない?
256名前は開発中のものです。:02/01/31 08:39 ID:???
>>209
http://giggle.cside6.com/hotate/
これのシューティングのところのソースを落としてじっくり読め。
ちょっとつくりが古いけれど参考にはなる。
それでわからないところを質問しに来い。
257209 ◆jUZhK5lw :02/01/31 09:54 ID:3Vff08H8
>>251
あきまさって誰ですか
あと、文字をオブジェクトにしているんですけど
258ncurses?:02/01/31 10:45 ID:???
罠論が有力って気が…w

環境を詳しく書いてみると信用を取り戻せるかもしれません>209
259209 ◆jUZhK5lw :02/01/31 10:54 ID:3Vff08H8
>>258
環境とは?
260名前は開発中のものです。:02/01/31 11:05 ID:???
261209 ◆jUZhK5lw :02/01/31 11:09 ID:3Vff08H8
>>260
めんどくせーから。アドレス貼ってください。
262名前は開発中のものです。:02/01/31 11:28 ID:???
まじめに相手されてた方々ご愁傷様です。
260はまさに彼のような人にピッタリ。


しかし、、、直リン回避に文句入れたやつ始めてみたよ。
#コピペ一発をめんどくさがるなんて、TVでネットしてる方かな。
263209 ◆jUZhK5lw :02/01/31 11:40 ID:3Vff08H8
>>262
そうなんですか。PC初心者で申し訳ありません。
264名前は開発中のものです。:02/01/31 11:54 ID:???
>>209
なら、まずPCを勉強してくだされ。

それだけじゃ可哀想なので、下記の本をすすめておく。
ttp://store.nikkeibp.co.jp/item/main/148222810190.html
265209 ◆jUZhK5lw :02/01/31 12:20 ID:3Vff08H8
>>260
エラーが発生して見れませんよ
>>264
ありがとうございます
266名前は開発中のものです。:02/01/31 12:34 ID:???
>>265
おい。下げろヴォケ。
267名前は開発中のものです。:02/01/31 12:55 ID:???
>>209は、まずsageを覚えろ。
罠だと言われたくなかったら、書いたソースのひとつでも提示すれ。
捨てアカ取ってジオのHP晒すことくらいできるだろ?。
268名前は開発中のものです。:02/01/31 13:21 ID:???
ていうか、罠でしょ?
269名前は開発中のものです。:02/01/31 13:48 ID:???
>>265
君はそのまんまコピーすることしか考え付かないほど知恵遅れなのかね?
確かに罠としか思えんな。
270209 ◆jUZhK5lw :02/01/31 13:55 ID:3Vff08H8
>>269
その他に何がルンデスカ?
271209 ◆jUZhK5lw :02/01/31 13:56 ID:3Vff08H8
sageってなによ
272名前は開発中のものです。:02/01/31 14:11 ID:???
説明書(2ちゃんねるガイド)くらい読めよカス。
そんなことじゃあゲーサクなんて5万年たっても無理だぞ。
273209 ◆jUZhK5lw :02/01/31 14:19 ID:3Vff08H8
5万年いきられませんよー
せいぜいあと7,80年だ
274209 ◆jUZhK5lw :02/01/31 14:22 ID:???
275名前は開発中のものです。:02/01/31 14:50 ID:???
ワナだと知っていながらハマるワナ。
276名前は開発中のものです。:02/01/31 16:09 ID:???
初心者を装い構ってもらおうとした>>209は結局放置されるのでした…チーン
277名前は開発中のものです。:02/01/31 17:00 ID:???
278名前は開発中のものです。:02/01/31 17:03 ID:???
 
>>274 の 209 ◆jUZhK5lw は煽りです。徹底放置の方向で。
279209 ◆jUZhK5lw :02/01/31 17:57 ID:???
>>278
どっちが煽ってんだヴぁかが。こっちはマジレスしてんだぞ。
てめ―見て―な心のせまいアフォーがレスすんな。
ここはゲープロ相談室じゃなかったのか?なぜ罠なんかやらなきゃいけないの
あんたらに何のメリットがあるというんだ。

280名前は開発中のものです。:02/01/31 20:01 ID:UuSbrdr9
ウィザードリィやダンジョンマスターみたいな
ダンジョンRPGのアルゴリズム教えてください。
281名前は開発中のものです。:02/01/31 20:03 ID:???
>>280
どの部分のアルゴリズムかはっきりしてください
282名前は開発中のものです。:02/01/31 20:09 ID:???
>>280
古典的な4方向しか向けない奴なら、今のスペックなら素直に奥から重ね書きしてっても
十分速度出るから、適当にやれば良いんじゃない?
昔は…って、そういう話じゃないか。
283名前は開発中のものです。:02/01/31 20:32 ID:???
>>279
はいはい、たのちかったでちゅかぁ〜
そろそろおうちにかえりまちょ〜ね〜
284名前は開発中のものです。:02/01/31 20:50 ID:FKv9pcui
喧嘩すんなage
285名前は開発中のものです。:02/01/31 21:11 ID:???
皆様、透明あぼーんは完了しましたか?
286名前は開発中のものです。:02/01/31 21:45 ID:???
はい艦長!完了いたしましたっ!
287名前は開発中のものです。:02/01/31 22:00 ID:???
259 :209 ◆jUZhK5lw :02/01/31 10:54 ID:3Vff08H8
>>258
環境とは?

ゲープロ以前の問題。ここで質問する資格なし。
288209 ◆2sDz/Rq6 :02/01/31 22:03 ID:???
だから、こういうのは放置するに限るって・・・。
そりゃ、一言いいたくなる気も分かるけどさ・・・。

オレモナー
289名前は開発中のものです。:02/01/31 22:20 ID:???
>>280の話題に切り替えようよ…
290名前は開発中のものです。:02/01/31 23:06 ID:???
先生!この板の煽り耐性のなさが明らかになりました!
291280:02/02/01 00:21 ID:SWmTp9d0
すみません、280です。
以前こういった質問をプログラマーの方にさせて頂いたんですが
どの部分のアルゴリズムかって同じこと聞かれました。
どの部分のっていう以前に、まずどういう風に作ればいいのかがわかりません(汗
292名前は開発中のものです。:02/02/01 00:26 ID:6mOXvhF8
>280
芸術の基本は模倣にあり
293名前は開発中のものです。:02/02/01 00:48 ID:???
>>291
>まずどういう風に作ればいいのかがわかりません

多分それは違う。
君の現状はおそらく、作り方のアイデアは頭の中にあるが
それが最適解であるかどうかを気にするあまり、実際に手を動かして
作り始めようとしていないだけ。何もしないうちに悩み停滞し助言を
求めている。

「実際に作ってみたが○○の結果に満足しない。どうすればいいか。」
という段階になるまでネットの回線を切ることを薦める。
294名前は開発中のものです。:02/02/01 00:53 ID:???
あと、とりあえずこの辺の易しい本を買ってみて
単純なものから少しづつ作り始めてはどうか。

ttp://www.cmagazine.jp/books/recipe/
295281:02/02/01 01:27 ID:???
>>291
どの程度プログラムができるかによって返答が異なりますので
280が何がどの程度できるか簡単に自己紹介してください。
296280:02/02/01 01:33 ID:SWmTp9d0
>>281さん
あああ…それを言われるとかなり辛いものが・・・(汗
HSPで簡単なRPGやアクション作れるぐらいです。
C言語をこれから触ろうという段階です。
なんか、板汚しちゃってすみません。
293さんが言うように、まだ僕は自分でやるべきことがたくさんあったようです。

皆様、ご親切にありがとうございました
297名前は開発中のものです。:02/02/01 01:50 ID:XFopPkPD
回転した矩形同士の当たり判定は、どう計算しますか?
298名前は開発中のものです。:02/02/01 04:53 ID:???
>>293は名言だな。
299名前は開発中のものです。:02/02/01 09:05 ID:???
>>297
・各頂点が互いの矩形内にあるか?
・辺同士が交差しているか?
どれか一つが真なら重なってる。
って風に普通の2Dポリゴン同士のあたり判定で良いんじゃない?
300名前は開発中のものです。:02/02/01 10:23 ID:???
>>296
それだけできれば、すぐ作れそうだね。
とりあえず、ここに思いついたアルゴリズムを書いてみるってのは?
どこが駄目そうと思ったかも書き添えて。
301209 ◆jUZhK5lw :02/02/01 11:23 ID:???
>>283
貴方頭大丈夫ですか。かわいそーに。知的後退が見られるようですが。みんなが見ている掲示板に
赤ちゃん言葉?プログラムしか勉強してこないとこうなるんですか?(憐
もしいいひとがいるなら、参考になるHPを教えてください。
302名前は開発中のものです。:02/02/01 11:28 ID:???
>>301なんか哀れだな…
303209 ◆jUZhK5lw :02/02/01 11:33 ID:???
>>302
はい。いじめられてます。
初心者だからっていじめるな
304名前は開発中のものです。:02/02/01 11:33 ID:???
>>302
そっとしておきなよ…
305名前は開発中のものです。:02/02/01 13:45 ID:???
209も間抜けだけど、283のような連中もハッキリいってウザイ。
プログラマが高尚な仕事だと勘違いしてるタイプだな。

>132 :名前は開発中のものです。 :02/01/30 19:17 ID:???
>>127
>>俺らが引けば納まるんでしょ? 多分。
>はいそうです頼むから逝っちゃって下さいあんたの勝ちだよ、ヨカータね。
>あ〜ウゼェ・・・スレタイトル見えないのかよ・・・
306名前は開発中のものです。:02/02/01 13:56 ID:???
そろそろ相談室に戻って欲しい。
307名前は開発中のものです。:02/02/01 14:11 ID:6mOXvhF8
じゃあ、某スレのマネで、、

( ´ー`)y─┛~~~
はい、次の方どぉぞ
308名前は開発中のものです。:02/02/01 15:34 ID:3FgmOISv
ギミックについて教えてください。
検索したら車のギミックとプラモのギミックぐらいしかでてきませんでした。
309名前は開発中のものです。:02/02/01 15:43 ID:???
ギミック [1] _gimmick_
(1)からくり。仕掛け。
(2)〔音〕 奇をてらった演奏。また,普通では出せないような音を用いた演奏。

( ´ー`)y─┛~~~
はい、次の方どぉぞ
310名前は開発中のものです。:02/02/01 15:44 ID:???
スプライト表示について教えてください。

ポリゴンキャラが拾ったアイテムを画面の奥から出てくるような感じで
画面端のアイテム欄に並べて行きたいんですけどスムーズに移動できません。
2D座標で計算すると、ポリゴンとの位置関係がおかしくなるし、
3Dにすると、最前面に表示していてもポリゴンが刺さって前面に来てしまいます。


311名前は開発中のものです。:02/02/01 15:46 ID:3FgmOISv
>>309
ゲームのギミックを処理してキャラを裸にしたいのですが可能なソフトはありますか?
服のデータだけ消して全身肌色にしたいのです。
312名前は開発中のものです。:02/02/01 15:48 ID:???
Ztestをオフにしなされ。

( ´ー`)y─┛~~~
はい、次の方どぉぞ
313名前は開発中のものです。:02/02/01 15:49 ID:???
312 は >>310 だず。もうじわげねえ。
314名前は開発中のものです。:02/02/01 16:35 ID:???
>>311
>ゲームのギミックを処理してキャラを裸にしたい

多分それは違う。
君の現状はおそらく、キャラの服のデータだけ消すことで
君自身の股間のギミックを処理することができるということに過ぎない。
315名前は開発中のものです。:02/02/01 16:39 ID:???
( ´ー`)y─┛~~~
はい、次の方どぉぞ
316名前は開発中のものです。:02/02/01 16:42 ID:ilrgY29+
タスクに代わるもっとカコイイ方法ってありますか?
317名前は開発中のものです。:02/02/01 16:45 ID:3FgmOISv
>>314
>君自身の股間のギミックを処理することができるということに過ぎない。

最初は「はぁ?」と思いましたが考えたら激しく笑いました。
服のデータはどうやって消すのでしょうか?なにかソフトが必要なんですか?
318名前は開発中のものです。:02/02/01 17:14 ID:???
209のパターンファイルは作りやすいなw
319名前は開発中のものです。:02/02/01 19:50 ID:???
>>317
ここは「ゲームプログラミング相談室」なのよ。
頼むからもう他所に行ってくれ。返答もしないでくれ。な。
320名前は開発中のものです。:02/02/01 23:05 ID:yaKNvp5t
質問:
こうゆう関数が作りたいんです。
Vector TurnVector(Vector source, Vector target, float percent);

sourceベクトルをtargetベクトルにpercentの割合だけ近づけた(回転させた)
ベクトルを返す関数です。なるべく高速なアルゴリズムにしたいのですが、
どうすればいいのでしょうか?
321名前は開発中のものです。:02/02/01 23:11 ID:???
>>320
0<=percent<=1

[return vector] = (1 - percent) * [source] + percent * [target]

をSSEとか使って高速化したいって話か?
322320:02/02/01 23:21 ID:yaKNvp5t
>>321
説明不足だったので補足します。
sourceとtargetは長さ1の単位ベクトルで、戻り値も単位ベクトルに
したいんです。つまりsourceからtargetへ回転させる必要があり、
percentでその角度の割合を調整する感じです。
(Vectorはx、y、zのfloatの構造体です。)
323名前は開発中のものです。:02/02/01 23:34 ID:???
>>322
普通に外積+内積+4元数使った方法は分かってて、それよりも
高速にしたいって事かな?
324名前は開発中のものです。:02/02/01 23:40 ID:???
>>320
GameProgrammingGemsに載ってたやつだと駄目なの?
325320:02/02/01 23:45 ID:yaKNvp5t
>>323
自分で考えられる方法は、それぞれのベクトルのyawとpitchを求めて、
角度を計算してベクトルを割り出す、って感じです。
これより速い方法なら大歓迎です。

>>324
どんな内容でした?
326324:02/02/01 23:57 ID:???
>>325
普通に外積+内積+4元数使った方法
327320:02/02/02 00:09 ID:???
>>326
その方法を知らないので具体的に教えてください。
328323:02/02/02 00:25 ID:???
2ベクトルの外積で回転軸を得て、内積でcosθを得てクォータニオン
(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 の
言ってる記事のソースがある。
329320:02/02/02 00:49 ID:???
>>328
情報どうもです。
4元数読んでみましたが、えらい深みにハマってしまいそうです…
330名前は開発中のものです。:02/02/02 00:57 ID:i49zbV6r
( ´ー`)y─┛~~~
はい、次の方どぉぞ
331名前は開発中のものです。:02/02/02 00:59 ID:???
>>329
素直にGameProgrammingGems買っとけ。
332名前は開発中のものです。:02/02/02 01:10 ID:???
タケェだろ…
333名前は開発中のものです。:02/02/02 01:19 ID:???
>>332
12000円ぐらい学生でも何ヶ月か節約すれば十分たまるだろ。
それでも高いと思うなら半額の原書買っとけ。
英語が読めないならプログラマなんてやめとけ。
334332=323:02/02/02 01:31 ID:???
>>333
もし彼が中・高学生とかだったら、他にも使いたいこといっぱいあるし
そこまで要求するのは可愛そうってもんだよ。
#といいつつ俺は高校生の癖にGem2まで買っちまったがw
335名前は開発中のものです。:02/02/02 02:01 ID:???
>>332
じゃあ本屋で、該当部分だけ立ち読みしとけ。
336名前は開発中のものです。:02/02/02 02:12 ID:???
>>334
>#といいつつ俺は高校生の癖にGem2まで買っちまったがw
俺なんか高校生の癖に
「Game Programming Gems 1,2」
「Real-Time Rendering」
「Advanced Animation and Rendering Techniques」
「3D Game Engine Degine」
「Computer Graphics Principles and Practice」
とか買い漁ってます。(藁

洋書には素晴らしい本が多くて幸せです。
337アフォクサ..:02/02/02 02:31 ID:???
( ´ー`)y─┛~~~
はい、次の方どぉぞ
338名前は開発中のものです。:02/02/02 03:25 ID:???
シューティングゲームを作ってるのですが、敵の出現タイミングと
敵の攻撃、移動パターンで悩んでいます。
特に移動パターンで悩んでいて、自分の思ったように動いてくれません・・・。
基本的な Z といったパターンはどのように動かしたらいいですか?
339名前は開発中のものです。:02/02/02 04:11 ID:???
>>338
敵の動き用のツールを作って、そこで移動パターンを作るのはどうですか?
340名前は開発中のものです。:02/02/02 04:23 ID:???
最初はスクリプトを作って動かそうと思ったのですが、
スクリプトを作る時間が無かったので埋め込み型にしようとしたのですが・・・。
あとFlipのタイミングが合わず、敵の残像が残ってしまう・・・鬱だ逝こう
( ´ー`)y─┛~~~
はい、次の方どぉぞ
342名前は開発中のものです。:02/02/02 05:26 ID:???
>>338
今現在、

 どういう実装にしていて、
 その結果、どう思ったように動いていないのか

具体的に書いてみ。(ソース出せるなら、それでも良いけど)
343名前は開発中のものです。:02/02/02 05:31 ID:???
醤油なら出せるけどね。
3448945:02/02/02 05:44 ID:4W2oJZ3g
http://www.puchiwara.com/hacking/
これなんかいいと思うのだが……‥‥・・
  「いっせー」
   /■\  /■\
  ( ・∀・) ( ´∀`)
 ⊂    つ⊂    つ
  .人  Y   人  Y
  し'(_)   し'(_)
  「のー」
   /■\  /■\
  (・∀・ ) (´∀` )
 ⊂、   つ⊂、   つ
    Y 人    Y 人
   (_)'J   (_)'J
  「で」
  /■\  /■\
 ( ・∀・ ) ( ´∀` )
 ( つ⊂ ) ( つ⊂ )
  ヽ ( ノ  ヽ ( ノ
 (_)し'  (_)し'
   「あげ!!」
  /■\   /■\
 ∩ ・∀・)∩∩ ´∀`)∩
  〉     _ノ 〉     _ノ
 ノ ノ  ノ  ノ ノ  ノ
 し´(_)   し´(_)
345338:02/02/02 15:31 ID:uCuDAOXO
>>342
今現在の状況は・・・。
まず、弾の出し方ですが弾構造体をTAMA_MAX(17)個つくり、その中に
x、y、bmpdata、Activeを作って、それをポインタ参照でActiveじゃない
方からActiveにしています。Activeがfalseになる時は
640+弾サイズになる時です。
そこまではよかったのですが、敵の動かし方で詰まってしましました。
敵キャラデータを構造体(x,y,bmp)にまとめてx,yを変化させていけば
いいと思ったのですが、、、うまく動かなくて・・・。
普通にfor文でまわしたらFlipのタイミングが合わなくて残像が残る。
といった状況です(汗
346≠342:02/02/02 16:53 ID:???
>>338
>Flipのタイミングが合わなくて残像が残る
よくわからん。 描画と敵の動きが別のスレッドなの?

適当にリンク
www.hh.iij4u.or.jp/~peto/Games/games_top.html

見当違いだったらすまん。
347名前は開発中のものです。:02/02/02 17:14 ID:???
>>345
>>345
Zに移動だったら、まず変数を1個増やす(例:Stat)

右に移動(Stat==0)→適当なところでStat++
→左下に移動(Stat==1)→適当なところでStat++
→右に移動(Stat==2)→適当なところで殺す

以上、バータリー的に行け
348338:02/02/03 02:00 ID:???
>>346,347
アドバイスありがとうございました。
Flipの方は解決しました。
349名前は開発中のものです。:02/02/03 02:06 ID:???
スクリプト指向
350名前は開発中のものです。:02/02/03 03:45 ID:WfOFv5LQ
すみません。
英語サイトのどっかでゲーム用デザインパターンをまとめてあった
サイトがあったと思うのですがどこかわかる方いませんでしょうか?
ブックマークがなくなったので…。
351名前は開発中のものです。:02/02/03 06:22 ID:???
けど、結局、通せんぼしてたよね、彼。
352名前は開発中のものです。:02/02/03 09:52 ID:???
( ◔ฺ_◔ฺ)/ 彼女が回り道したから、結局、無意味な通せんぼだったよ。
353名前は開発中のものです。:02/02/03 11:14 ID:???
354妄想野郎:02/02/03 21:48 ID:???
モナーRPGつくれよおまえら
355209 ◆jUZhK5lw :02/02/05 14:01 ID:???
ふっかーつ
敵を動かすのはどうしたらよいのでしょうか?
簡単な2DSTGでお願い致します。
356名前は開発中のものです。:02/02/05 14:19 ID:???
>>355
>>256 のリンク先のソースは読んだか?
357209 ◆jUZhK5lw :02/02/05 15:02 ID:???
読みましたけど、見たことがない関数が多少ありました(゜д゜)?
タスクとかスプライトとか。

358名前は開発中のものです。:02/02/05 15:49 ID:???
>>357
スプライト云々は DirectX Graphics のヘルプ読め、タスクなんかは tsk.cpp, h/tsk.h
に実装があるだろ。
359名前は開発中のものです。:02/02/05 19:25 ID:???
>355=jUZhK5lw
つーかマルチポストしてんじゃねぇよカスが
360209 ◆2sDz/Rq6 :02/02/06 00:46 ID:???
だから、209 ◆jUZhK5lw はもう放置しようよ・・・。
361名前は開発中のものです。:02/02/07 15:26 ID:???
http://www.hh.iij4u.or.jp/~peto/Games/games_top.html
を参考にして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 を呼ぶことになってしまいます。
これを解決するにはどうすればいいでしょうか?
それとも気にするほどのことではないのでしょうか
362名前は開発中のものです。:02/02/07 19:39 ID:???
>>360
あなたに指図される筋合いはありません。
何の権限があってそのような事を言うのですか?

363名前は開発中のものです。:02/02/07 20:36 ID:???
>>361
1. placement new を使う
2. operator new を定義して、自前でメモリ管理をする

あと STL 使っている場合テンプレートパラメタで渡す allocator にも手を入れないと、
完全にはメモリを管理下にはおけない。ただ、そこまでやる意味があるかというと、
俺は無いと思う。

(仕事でメモリの制限が厳しいハードを対象にプログラミングしてる場合を除く)
364名前は開発中のものです。:02/02/07 22:46 ID:???
>>361
そもそも 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 を自前で用意する。

とか細かい注意点があるけど、そんなものでしょ。
365名前は開発中のものです。:02/02/08 10:27 ID:???
うわーん
366361:02/02/08 13:50 ID:???
お答えしてくれてありがとうございました。
>>363
operator new はクラスごとに書かなくちゃいけないのかな?
とりあえず何回もnewされるクラスに使ってみて、パフォーマンス
を比べてから、効果が大きいようであれば他のクラスにも使ってみます。
>>364
うう、関数オブジェクトだとかそこら辺は勉強してないのであまりわからないです
もうしわけない。想像していた以上にSTL周りのことは重要になってきそうですね。
Effective STLでも読んでみることにします。
367209 ◆jUZhK5lw :02/02/08 15:11 ID:???
うおーん

368名前は開発中のものです。:02/02/10 11:26 ID:tpvVEAK8
ゲームのアルゴリズムを学ぶのに良い本知りませんか?
みんなアルゴリズムってどうやって勉強してるんでしょうか?
369名前は開発中のものです。:02/02/10 12:05 ID:???
とあるページでCPUの占有率が常に100%なゲーム(アプリ)はダメみたいな事を書かれていましたけど、
何か理由があるのでしょうか?
370名前は開発中のものです。:02/02/10 13:39 ID:???
100%がダメというより
マルチタスクOSでの行儀がなってないとだめということだよね。
無限ループみたいな組み方すると
バックグラウンドのプロセスになかなか処理がいかなくなる。
そうするといろんな弊害が起きることが考えられる。
371名前は開発中のものです。:02/02/10 14:24 ID:???
>>370
最初から他のアプリケーションと並行して動かすことを前提としないゲームなら、
それでも構わないと思うけどね。フルスクリーン表示なら全然問題ないでしょ。

ただ、ゲームをウィンドウモードで表示しながら Web で検索しようとか思うと、ちょっ
と嫌かも。
372369:02/02/10 20:12 ID:???
なるほど。理解できました。
ありがとうございます。
373名前は開発中のものです。:02/02/10 23:16 ID:???
>368
ソフトバンクの「遊びのレシピ」って本は
各種ゲームのアルゴリズムとデータ構造を解説してる。
基礎的で単純なものばかりだけど,行き詰まってる人にはいいかも。

勉強法だけど,私は他のゲームを見てアルゴリズムを想像してるだけ。
374名前は開発中のものです。:02/02/11 10:28 ID:???
おお。。あんたもそうか。
これがくせになってもう病気。。
GT3見ても何見てもだんだんフローチャートに頭の中になっていく…
375名前は開発中のものです。:02/02/16 14:06 ID:???
>>361,366
ワシも同じページ見ながらC++でタスク作ったことがある。
そんときは363と全く同じやり方に行き着いたよ。
メモリ管理は手を抜いて固定サイズメモリ領域の配列に
したけど。

いちいち各クラスのoperatow newを用意する必要はなくて、
タスク基底クラスのoperator newだけ自前で用意して、継承
させてやればOKOK。

関数ポインタの扱いがC++だと厄介なので、TCBの内部では
statusだけ保持して、別途用意した関数ポインタテーブルを
引くようにした方が楽だと思う。

ttp://www.emit.jp/prog/prog_cpp0.html
この辺参照。
376名前は開発中のものです。:02/02/17 10:19 ID:???
普通は固定から切り出しじゃないのか??
377名前は開発中のものです。:02/02/17 20:54 ID:???
>>375
> 関数ポインタの扱いがC++だと厄介
直接メンバ関数へのポインタを使わずに、多態を使えば良い。細かいことは
コンパイラが面倒見てくれるぞ。
378名前は開発中のものです。:02/02/18 02:33 ID:???
図々しくてすみませんけど。
固定から切り出しのソースコードが乗っているホームページ有りましたらキボンヌ。

379名前は開発中のものです。:02/02/18 03:50 ID:???
>>378
operator new() の使い方が分からんの、それとも static なブロックからデータを
切り出す方法がわからない?

C++ chunk operator new あたりで検索かけて見つけたページ
http://www.relisoft.com/book/tech/9new.html
380名前は開発中のものです。:02/02/18 10:32 ID:???
(>_<)ワーショイ
381名前は開発中のものです。:02/02/19 01:23 ID:???
>>378
placement new (operator new())に関しては、
More Effective C++ を読むのが良いかと。

固定から切り出しについては、確保した固定メモリ領域内の
アドレスを引っ張ってきてキャストするだけでいいんだが・・・
(もちろん管理は自前でやる必要があるけど)

で、任意サイズのメモリを切り出せるようにするとフラグメン
テーションやらガベコレやらめんどくさくなるんで、手を抜くな
ら切り出すメモリのサイズを固定にしちゃう、と。
その場合、オブジェクトのサイズが切り出し単位のサイズを
超えないようにすることだけ注意するべし。
382名前は開発中のものです。:02/02/19 01:44 ID:???
>>377
基底クラスのexec()は仮想関数にしといて、各クラスの関数
ポインタはstaticに定義したメンバ関数ポインタテーブルから
引く、と。
383名前は開発中のものです。:02/02/19 03:22 ID:???
>>382
イメージがつかめんので、も少し詳しい解説を希望。

俺は

struct Task {
  // 引数はともかく
  virtual void exec() = 0;

  // 固定長ブロックから切り出す
  static void* operator new(size_t);
  static void operator delete(void *);
};

を基底クラスに持ってきて、派生クラスを

class TaskBackground : public Task
{
 // メンバ変数いろいろ
public:
  virtual void exec();
};
みたいに書くのが良いかと思ってたんだが、382 のアイデアは違ってるよね。

タスク連結用のデータは Task に突っ込んでも良いし、別にタスク管理クラスを

class TaskManager {
  typedef std::list<boost::shared_ptr<ITask*> > TTasks;
  typedef std::vector<TTaskList> TTasksList;
  TTasksList m_TasksList;
public:
  TaskHandle add(boost::shared_ptr<ITask*> spTask, unsigned uPrio);
  void remove(const TaskHandle& hTask);
  void exec() {
    for (TTasksList::iterator i = m_TasksList.begin(); i != m_TaskList.end(); ++i)
      for (TTasks::iterator j = i->begin(); j != i->end(); ++j)
        j->exec();
  }
};

って感じで作るのも良いかと考えてた。
384382:02/02/19 23:29 ID:???
>>383
class Task {
public:
Task();
~Task();

  virtual void exec() = 0;

  static void* operator new(size_t);
  static void operator delete(void *);

private:
int m_Status;
};

とやって、

class TaskBackground : public Task
{
public:
enum {
STAT_INIT,
STAT_APPEAR,
STAT_STAY,
STAT_DISAPPEAR,
};
  virtual void exec(void) { (this->*apfnTable[m_Status])(void); }
private:
static void (TaskBackground::*apfnTable[])(void);
};

と言う感じ。STLの無い環境だったのでSTLは使ってませんでしたが、基本的には
同じ方式です(よね?)

385384:02/02/19 23:33 ID:???
インデントが・・・。
鬱。
すまそ。
386名前は開発中のものです。:02/02/19 23:51 ID:???
>>384
なるほど。各タスクの「中」で状態遷移させるのに、メンバ関数ポインタを使おうと
いう話ですね。理解しました。
387名前は開発中のものです。:02/02/20 11:45 ID:???
みなさんは、どうやってプログラムの勉強したんですか?
388名前は開発中のものです。:02/02/20 18:02 ID:???
>>387
1. 本を読む
2. コードを読む
3. プログラミングする

いじょ。
389名前は開発中のものです。:02/02/20 18:50 ID:???
>>387
作りたいものを作る
いじょ
390209 ◆jUZhK5lw :02/02/20 19:16 ID:???
>>388 389
んなこと、だれでもしってるつーの
391名前は開発中のものです。:02/02/20 21:03 ID:???
>>390
じゃ、知らないことを書いてみれば?
392名前は開発中のものです。:02/02/20 21:57 ID:???
>>390
プログラミングに王道はないんだよ…
393名前は開発中のものです。:02/02/20 22:06 ID:???
>392

この言葉かっこいいな・・・
394名前は開発中のものです。:02/02/20 22:14 ID:???
別に387がそうだという訳じゃないけど、
プログラミングを「覚えよう」という発想が間違い。
プログラミングは「理解」するもんだよ。

まぁ、日本の学校教育が「覚える」主体で「理解」を
求めてないから、どうしようもないんだけどねぇ。
395名前は開発中のものです。:02/02/21 01:07 ID:???
プログラミングに邪道はあるのだよ‥‥
396名前は開発中のものです。:02/02/21 02:02 ID:???
>>387
まずはプログラムを書く。作りたいものならなお良し。作らなければならないもの
なら更に良し。

んで、わからないことにぶち当たったら、自分で悩んで調べて何とかする。
それでもどうにもならなかったら、予め質問内容をきちんと調べて、自分がどこまで
わかっていてどこがわかっていないかを明確にした上で先達に聞く。

そして、書きながら、もしくは書いた後で、より良いコードにするためにはどうすれ
ばいいのかを悩んで調べて改善していく。その積み重ねしかないよ。

「どうすればいいですか?」という、聞かれた方がYesかNoで答えられないような
質問をした時点で負け。
397名前は開発中のものです。:02/03/05 04:05 ID:???
定期ageしとく
398名前は開発中のものです。:02/03/05 10:37 ID:???
>>388
4.自分のコードを直す

つーか、糞コードを糞なままにしてると、上達せん。
399名前は開発中のものです。:02/03/05 20:05 ID:???
>>398
でも、ゲームをつくることを最優先にしないと、
コードばっかいじって永遠に完成しなかったりする罠。

つくっては壊し、つくっては壊し...
400名前は開発中のものです。:02/03/06 01:47 ID:???
>>399
で、そのうちに

1 行き当たりばったりで作るのではなく、事前に設計する

ことを覚える、と。ちなみに、その先は

2 設計ができるようになると、楽しくてはまり、過剰設計の罠に陥る。
3 リファクタリングを身に付ける。

と続く。
401名前は開発中のものです。:02/03/06 17:03 ID:???
ゲームなら期限を決めて作る。
ちなみに俺は無期限だと完成できないタイプ。
402名前は開発中のものです。:02/03/07 09:55 ID:???
>>399-400
この段階に入ってからが本番。学ぶべき事が格段に増える。

・モジュールやデータ構造といった、設計関連の知識
・ソートやサーチなどの、アルゴリズムに関する知識
・パーティクルや画像合成など、エフェクトに関わる知識
・UIやツール作りなどの、人間工学に関わる知識
403名前は開発中のものです。:02/03/10 15:29 ID:???
>>394 に共感を覚えた。
プログラムに限らず数学とか頑張って手順を説明してるのに
「とりあえず答えは何?」と聞かれるとすげー腹立つ…。
(しかもそういう説明する奴は嫌われる、と(ワラ))

>>402
俺は特にプログラム初心者のゲームに欠けてるのはモジュールだと思うんだよね。
アルゴリズムとかエフェクトに関する知識がいくらあっても、
ソースが膨大化して何がなんだかわからなくなってはいお疲れみたいな。
404名前は開発中のものです。:02/03/10 17:25 ID:???
結果がすべてだからな。
405con tofu ◆iOTveYXw :02/03/10 21:40 ID:???
>>387-404
この辺り、すごく参考になりました。特に >>402 辺り。
皆さん、ありがd

ほかには
・プロセス/スレッドやメモリ等、OS寄りのことについて
もやっておくと、頭スッキリして楽になるように感じます。
406名前は開発中のものです。:02/03/12 11:15 ID:3GjIfP2m
一応ageとこ。
407名前は開発中のものです。:02/03/12 11:20 ID:???
==2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数:95432人 発行日:2002/02/12
どもども、ひろゆきですー。
こないだお伝えしました「佐々木さん」の件ですが、実を言いますと佐々木さんだけが悪いってわけじゃないんですー。佐々木さんはなにもいきなりドアを蹴って騒いだりしたわけじゃないんですー。
佐々木さんは最初は極めて紳士的に接してきたんですけど、おいらがドア越しに生意気な態度をしちゃったもんだから佐々木さんはキレちゃったんですー。。。

ご承知のとおり、おいらってばメルマガでは自分の都合のいいことを、都合のいいようにしか報告しませんが、本当はおいらにもたくさん非があるんですよー、、、えぇえぇ。。。
INSIや谷澤動物病院が裁判に持ち込んだのも、実はおいらの態度に問題があったんですよねー。。

おいらはこれまで2Ch被害者の襲撃から逃れるために、キックボクシングをやっていたなんて嘘を吐いてきましたが、本当はキックボクシングどころか卓球すらやったことないんですー。
おまけに両親とお姉ちゃんにはさんざん甘やかされて育ってきたので、いまいち礼儀というものを学べなかったようなんですー。うぅ、、、
もしなにかスポーツにでも打ち込んで、ちゃんとした両親に育てられてれば、こんな陰湿な人間にはならなかったと思うし、こんなに歯糞もたまらなかっただろうと思う今日この頃ですー。。。

ところでおいらって平安貴族みたいな顔してますかねー?
こないだ埼京線で女子高生の集団に「麻呂だー」「超キモイー」って言われちゃったんですけど。。。

んじゃ!
408名前は開発中のものです。:02/03/14 19:41 ID:???
age
409名前は開発中のものです。:02/03/29 13:45 ID:???
さみしすぎるんですが・・・
410名前は開発中のものです。:02/04/13 11:43 ID:???
あげてみる
411名前は開発中のものです。:02/04/13 11:56 ID:???
>>402
なんか、俺がいまそんな感じだ。。
興味が多方面に分散して、自分が手に負えなくなってきたよ。
これはこれで楽しいんだが(w


                     ミンナ、ソウナンダネ…
412名前は開発中のものです。:02/05/07 23:19 ID:R1rOQJWc
初心者用質問スレはageとかんとな。
413名前は開発中のものです。:02/05/08 14:35 ID:???
これから Visual Studio 6.0 と DirectX8.1 SDK を初めてインストールするんですが、
どっちを先にインストールした方が良いとかってありますか?
OS は Win2K です。
414名前は開発中のものです。:02/05/08 15:38 ID:???
VS6→WinG
DXは入れる必要ない
415413:02/05/08 17:26 ID:???
>>414
WinGってなんか懐かしい
416RE::02/05/08 23:58 ID:y5yWHAGQ
コナミの音楽ゲームに
良く似た
DanceDancerevolutionもどき
作りたいんですが
作る前に
どんな知識と技術が必要ですか?
417名前は開発中のものです。:02/05/09 00:07 ID:???
>>416
法律の知識と裁判で戦う技術。
418RE::02/05/09 00:48 ID:???
>>417
法律の知識と裁判で戦う技術。
裁判で戦う技術は無いですが
知識だけなら
419名前は開発中のものです。:02/05/09 00:55 ID:???
>>416
まず作り始めろ。
そのうちにどんなことが必要かわかってくるはずだ。
420RE::02/05/09 01:14 ID:???
>>419
分りました〜
メモ帳でがんばって見ます
421名前は開発中のものです。:02/05/09 07:50 ID:???
>>417-418
ちょっと笑った。
422ゲー作初挑戦@ ◆ByBD3yHE:02/05/09 21:49 ID:9rTAdl0c
初めてゲームを作る決意をしますた。
同人ゲーですが。

かと言って絵描きの自分では、プログラマーを集うしかなく、
絵描きのページで募集したところで集まらず。

落ち物ゲーム+(間のストーリー流れを)ADVで作りたいのですが、
何か良いスクリプトないでしょうか?
ある程度までは勉強する覚悟はもちろん有りです。(C言語など一切触ったことありませんが)
また、技術者を募る良い場所があれば指南していただきたいのですが…。
もちろん報酬はお礼程度ですが有りです。
423名前は開発中のものです。:02/05/09 21:53 ID:???
>>422
メンボスレ
424ゲー作初挑戦@ ◆ByBD3yHE:02/05/09 22:15 ID:PutN4UaM
メンボスレ?
425名前は開発中のものです。:02/05/09 22:36 ID:???
>>424
おそらくこれだろ

☆メンボスレ☆(メンバーボシュースレッド)
http://game.2ch.net/test/read.cgi/gamedev/1005323011/

良いひとそうだし(スレ違いの質問してるが)、暇なら手伝いたいがのぉ。
とにかく同人作りは、相方選びが一番重要なりよ。…いやマジで(´・ω・`)
426ゲー作初挑戦@ ◆ByBD3yHE:02/05/09 22:42 ID:???
スマソ、ありがとうございます。
思いっきりスレ違いですたな。

頑張ってオモロイ技術者をゲットして楽しく作ってきまつ。
427名前は開発中のものです。:02/05/10 22:12 ID:lw3De0y2
 
428名前は開発中のものです。:02/05/11 01:00 ID:???
あ、もう逝っちゃった?
http://natto.2ch.net/test/read.cgi/2chbook/1020693668/
429名前は開発中のものです。:02/05/11 13:22 ID:???
すみません、DirectXが上手く動かないんですが…
VBから使ってるんですが、
プライマリサーフェイスとバックサーフェイスの
フリップが上手くいきません。
っていうか、概念がいまいち分かりません。
バックサーフェイスに画像転送

フリップ

ループ
させているんですが、バックサーフェイスに画像を書き込めていない見たいなんです。
どなたか分かる方いませんか?
430名前は開発中のものです。:02/05/11 17:31 ID:npO7xgR2
もう少し情報出してもらえないとわからないよー。

Windowモードでフリップしてないよね?
431名前は開発中のものです。:02/05/11 20:40 ID:???
>429
>バックサーフェイスに画像を書き込めていない
ならFlipとは別問題じゃない?
432名前は開発中のものです。:02/05/11 21:24 ID:???
一応解決しました。
>>431さんの言うとおり、フリップとは一応関係ありませんでした。
クリッパーの設定がおかしかったみたいです。
クリッパーを外したらちゃんと書き込めました。
で、結局クリッパーの使い方は分からず終いでした。
ついでに、320,240のフルスクリーンです。

っていうか、クリッパーの使い方教えてください(;´Д`)人
検索してみましたが、ページが一箇所しか見つからず、
しかも、そこに書いてある通りにやっても上手くいきませんでした。
433名前は開発中のものです。:02/05/11 22:04 ID:???
ヘルプにはのっとらんのか?
434名前は開発中のものです。:02/05/11 22:06 ID:???
ヘルプ!?
って?
DirectXの?
あるの?
435名前は開発中のものです。:02/05/11 23:14 ID:???
DirectXのヘルプはみんなの心の中にあります
436名前は開発中のものです。:02/05/11 23:34 ID:???
わかりました、心を磨くため、しばらく旅に出ます。
探さないでください。
437名前は開発中のものです。:02/05/12 00:21 ID:???
心配しなくても探しません。
安心してください。
438ピル・ゲイツ:02/05/12 00:24 ID:???
>>435
ナイスアシスト!!
439名前は開発中のものです。:02/05/12 01:13 ID:???
DirectXができません、同じ症状の人いませんか?

コンパイラ :Borland C++
SDK :DirextX 7,DirectX7a
症状 :プログラムを起動したら「このプログラムは不正な・・・」
       MAINのエラーです。DDRAW.DLLなどのメッセージ。
プログラム :DirectDrawのオブジェクトを作る簡単なもの、
      DirectDrawCreate,DirectDrawCreateEx共にエラー、戻り値も帰ってきてない模様
      コンパイラに付いてきたライブラリ(DirctX3)なら動きました。
SDKのサンプルは動きました。
DirextX :DirextX8.0
440名前は開発中のものです。:02/05/12 01:38 ID:4YN9DEeo
>>439
DirectXができません、って・・・(sigh

COFFとかOMFとかでgoogle検索しる!
441439:02/05/12 01:41 ID:???
わかりました、探索してみます。
442439:02/05/12 01:51 ID:???
OMFで検索したら「オメコファイヤー」とでますた
443439:02/05/12 01:59 ID:???
オブジェクトファイルの種類についてでました。
444名前は開発中のものです。:02/05/12 04:15 ID:???
>>439
implib.exeでddraw.libを作り直してください。
445名前は開発中のものです。:02/05/12 05:27 ID:rvy9Ukfg
いや、ルパンはとんでもないものを盗んでいきました。
それは貴女の心です。
446名前は開発中のものです。:02/05/12 09:53 ID:VspODHGo
最近プログラミングを勉強しはじめた厨房の質問なのですが
c++buliderとWindows付属のツール(ペイントなど)だけでゲームの製作は可能ですか?
447名前は開発中のものです。:02/05/12 09:55 ID:???
>>446
可能
448439:02/05/12 09:59 ID:???
解決しました、
必要なのはIncludeFileだけで、
SDKの中のライブラリは使わなくていいんですか?
449名前は開発中のものです。:02/05/12 09:59 ID:VspODHGo
プログラミング以外にもさまざまな知識が必要ですか?
450名前は開発中のものです。:02/05/12 12:56 ID:???
DirectX8SDKいれたらVCで「DirectX AppWizard」っていうのが追加されますよね。
それつかってゲーム作ってる人います?
451名前は開発中のものです。:02/05/12 15:13 ID:???
抽象的な質問ばっかり
452名前は開発中のものです。:02/05/12 15:25 ID:W8mXt2BA
 
453名前は開発中のものです。:02/05/12 16:56 ID:???
答えられないヤツばっかり。
454名前は開発中のものです。:02/05/12 17:40 ID:???
なかなか返答が難しい質問だからな
455名前は開発中のものです。:02/05/12 17:56 ID:???
企画屋撲滅スレに行けば優秀なプログラマが沢山いるんできっと質問に答えてくれるYO
456440:02/05/13 03:21 ID:???
>>448
どのように解決したのか、後続のためにtipsのまとめキボンヌ
457448:02/05/13 22:44 ID:???
えっと、
IMPDEF ddraw.def c:\windows\system\ddraw.dll
でモジュール定義ファイル作って、
IMPLIB ddraw.lib ddraw.def c:\windows\system\ddraw.dll
で作ったファイルをリンクしたら動いた。

けど、このファイルがDirextX7で動くか心配だ・・・
458440:02/05/14 01:21 ID:QkMxU4bA
>>457
THX!

ま、正直なところ、DirectXであれこれやるならVC++を使うことをお薦めするが・・・。
459名前は開発中のものです。:02/05/14 06:42 ID:???
>>457
それでいいと思うよ。
460名前は開発中のものです。:02/05/14 08:45 ID:???
DirectXの機能を使うと楽になる部分もあるけど、ほとんど使わないで済む程度のゲーム
だったらVC++とかDelphiのライブラリ内で作っちゃった方がいい。
461名前は開発中のものです。:02/05/14 14:24 ID:???
>>460
そりゃそうだ。
マインスイーパ作るのにDirectXはいらないな。
適材適所。
462名前は開発中のものです。:02/05/14 21:31 ID:gp9yAFEg
 
463名前は開発中のものです。:02/05/18 20:47 ID:OvBslwUs
 
464名前は開発中のものです。:02/05/19 11:39 ID:l8bBGy5I
FF XIでのヘタレッぷりには大いに笑わせてもらった。
映画で懲りたかと思えばコレか、
おまえらゲームプログラマの質なんてたかが知れてる。

次はどんな手で笑わせてくれるんだ?
サーバが重くてつながらないのにチョコボ大陸横断レースでもするのか?(藁
465名前は開発中のものです。:02/05/19 11:41 ID:???
>>464 スレ違い、板違いです。
466名前は開発中のものです。:02/05/19 14:58 ID:???
人間以外の生物は書き込みにこないで下さい。
467名前は開発中のものです。:02/05/19 15:25 ID:???
プログラミングあるいはソフトウェア構築の話なら歓迎だぞう
468名前は開発中のものです。:02/05/19 16:38 ID:5QVs0KEU
構造設計スレに書いたんだけど、あっという間に閉鎖スレになっちゃったのでこっちで再送


すいません、STGを作るの初めてなんで疑似タスクで質問させてください。
疑似タスクの仕組みとしては LogicianLoad を参考にさせてもらっています。

----------------
Q: 1フレームの中でタスクの優先順位を何回も変更する場合ってありますか?

優先順位を変更するならば、タスクをリストに登録する際どうやってその位置を見つけますか?
リストの先頭からざーっとなめてるんですか?
----------------

とりあえず、私としては以下のようにしてるんですが、よくないところとかあったら教えてください。

----------------
固定長ワークの配列を作る。要素数 256個とか。

タスクは、ワークへのポインタを持つ。
いくつものタスクがおなじワークへの参照をすることがあるので、ワークには参照カウンタを持たせる。

タスクのリストへの登録は map<優先度, list<タスク *> > な優先度マップを用意して、

優先度マップ[優先度].push_back(&タスク);

としてリストに登録。タスクの優先度変化とか、チェンジタスクとかは同じワークを参照するタスクを
つくって対応。状況に応じて自殺。
----------------
469名前は開発中のものです。:02/05/19 18:12 ID:???
>>468
適切なソートアルゴリズムを選択すれば良い。
この場合、バケットソートが丁度良いかもしれない。
バケットソートについてはgoogleで検索して下さい。
470hosoku :02/05/19 18:16 ID:???
優先順位別のバケット(リスト)を用意しているのだから
要素を追加する位置をサーチする場合、そのコストはゼロ。
471hosoku:02/05/19 18:18 ID:???
リストは一つでも良い。
各優先順位の先頭(or最後尾)ノードへの参照テーブルを用意する。
472hosoku:02/05/19 18:25 ID:???
「タスク」という言葉は最近は通じない場合が増えている。
外人相手には100%通じないので、その辺も気を付けて。
473468:02/05/19 20:33 ID:???
>各優先順位の〜

なるほどです。やってみます。
474名前は開発中のものです。:02/05/20 03:37 ID:???
優先順位ってどうして必要なんですか?

1 移動
2 衝突判定
3 オブジェクトの生存チェック
4 描画

こういう風に順番を分ければ、処理順が重要になる事って
あまりない気がするんですが・・・
475名前は開発中のものです。:02/05/20 06:46 ID:???
>>472
外人相手だと何と言えばいい?
476名前は開発中のものです。:02/05/21 01:09 ID:0jVRIemA
>>474
その1〜4の順番分けをすることが、まさに処理の優先順位をつけることだと思うのだが・・・。

もちろん、メインループ内でそれぞれの処理を行う関数を順に呼ぶようにしても作ることは
できるんだけど、その辺をフレキシブルに変更できるようにするための仕掛けがタスクな
わけじゃん。
477名前は開発中のものです。:02/05/21 01:15 ID:???
>>476
優先順位と言えば優先順位みたいなモノだけど、
474で書いたように呼ばれる順番を保証しないと、
(好き勝手な優先順位で好き勝手に死んだり生まれたり)
安全と最適化を両立しづらくないですか?
478名前は開発中のものです。:02/05/21 01:43 ID:???
だから、優先度は 決められたヘッダーとかで識別子を宣言するように
チーム内で決めるのがふつうなんじゃないの?
479名前は開発中のものです。:02/05/21 14:08 ID:lOTv7vN.
DirectX8で、3Dモデルを使い、ようやく簡単なアニメーションが
できる様になったのですが、ここではたと詰まってしまいました。

あるアニメーションセットから、別のアニメーションセットに移る時
一般にどのような補間がなされているのでしょうか?

とりあえず自分でも色々試したのですが、一瞬で移行すると場合によっては
不自然だし、現在の位置から移行先の最初のフレーム位置まで
適当に補間をかけてみたら、なんとも奇妙な動きになってしまう始末で(- -;
……まさか、同じ座るという動作でも、移行前のものにあわせて
何パターンもアニメーションを作るのでしょうか((((; ゚Д゚)))

なんとも手詰まりで…アドバイスいただければ幸いであります。
480名前は開発中のものです。:02/05/21 15:05 ID:???
ケースバイケースで、つなぎのモーションをかませるとか、
つなぎの姿勢をかませるとか、
そこら辺はノウハウの問題なんじゃないかと思うんですけど
状態遷移図みたいなのを書いて検討してみるしか。
481480:02/05/21 15:06 ID:???
訂正。
しか。→とか。
482名前は開発中のものです。:02/05/21 15:58 ID:???
D3DXVec4LerpでQuarternionに線形補完を掛けるとか
483名前は開発中のものです。:02/05/21 16:02 ID:???
モーションA start<------+------>end
モーションB      start<------+------------------->end
                 ^0.0   ^1.0
この0.0〜1.0の区間を補完すればいいんでない?
484名前は開発中のものです。:02/05/21 16:04 ID:???
Σ0<= t <= 1.0 A * t + B * (1 - t)
485479:02/05/21 17:14 ID:???
レスありがとうございます。返事が遅くてすいません。
…勘違いして、ずっと別のスレを監視してました(;´Д`)

>>480
なるほど!後のパターンを増やすのではなく、つなぎを噛ませるのですか。
うー、しかし同じアニメーションからの遷移でも、どのコマから移るかによって
いろいろ考えなきゃなのかな…。しかし完璧を求めるなら、これをやるべきですよね。
>>482
線形補間でやると、組み合わせによっては突拍子もないのがでちゃうんです。。
たぶん私のモーションの作り方が悪いんですが…でもこれが手軽で良いですよね。
>>483-484
ややや、つまり移行時間を決め、その間のAとBを合成しつつ、
だんだんとAの影響を弱め、Bの方を顕在化させるわけですね!
むはー、プログラム的にも解決できるなんて(*´Д`)

皆様のレスに基づき、それぞれのアニメーションにあった方法をあてて
いきたいと思います。一人じゃ絶対思いつかない事ばかりで…本当に大感謝です〜。
486名前は開発中のものです。:02/05/22 01:58 ID:emKWkvCg
姿勢は QuaternionSlerp 位置は エルミート曲線で補間。
その他、キーワードは Catmull-Rom スプラインかな。
あとは自分で調べてくれ。
487名前は開発中のものです。:02/05/22 16:22 ID:wmr.hUOI
ネット対戦ゲームつくりたいのですが
いいホームページ知りませんか?
ちなみにVISUALBASICで作ろうとおもいます
48899:02/05/22 16:35 ID:???
-------風俗の総合商社・MTTどこでも-------

〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
489名前は開発中のものです。:02/05/22 17:15 ID:DJLFFQIk
つーかモーションとモーションをブレンドしてるゲームって少ないと思うけど。
普通キャンセルだろ。
490名前は開発中のものです。:02/05/22 17:46 ID:???
>>489
DOA3
491名前は開発中のものです。:02/05/22 19:15 ID:???
>>489
今時キャンセルなんてやってるのは時代遅れのメーカーぐらい。
492名前は開発中のものです。:02/05/22 23:37 ID:???
GCマリオはキャンセルだったかな
493名前は開発中のものです。:02/05/23 14:44 ID:???
ブレンドすると現実的にはありえない動きをしてしまう罠
494名前は開発中のものです。:02/05/23 16:55 ID:???
ブレンドしなくても現実的にはあり得ない動きをしてしまう罠。
495名前は開発中のものです。:02/05/23 18:38 ID:???
キャンセルした方が良いケースと補間した方が良いケースがある。
mouchottoatamatukaouze
496名前は開発中のものです。:02/05/23 20:02 ID:???
基本的にすべての動作は補完で繋ぐべき
不自然になっちゃうなら補完式を考え直すべき
497sage:02/05/23 22:57 ID:FUqKSSOQ
現実と照らし合わせれば。
補間もキャンセルとごまかすための手法の一種にすぎないのだが。
だから、どちらが優れているなどないと思われ。
case by case。
一つのことに凝り固まるのは、頭悪いぜ。
498名前は開発中のものです。:02/05/23 22:58 ID:???
名前をsageちまった。
俺が頭悪かったようです。
逝ってきます。
499名前は開発中のものです。:02/05/23 23:06 ID:???
>>497 FUCK aSS
500名前は開発中のものです。:02/05/24 00:29 ID:???
>>497
あんまり、本当の事を言うと話が止まるので
わかっていてもしらんぷりしとけよ(ワラ
501名前は開発中のものです。:02/05/24 01:21 ID:???
トルネコみたいなダンジョンではなく、女神転生シリーズに近い
通路ばかりのダンジョンをランダムで生成したいのですが、
唯一見つかったアルゴリズムでは綺麗なダンジョンが作れませんでした。
トンネルを掘るようにしてダンジョンを作るアルゴリズムを使うと
綺麗なダンジョンが作れる、と読んだのですが、参考になる
情報などがありましたら教えていただけないでしょうか?
よろしくお願いします。
502名前は開発中のものです。:02/05/24 01:54 ID:???
http://members.tripod.co.jp/karai/
このページ見た?なんか凄そうだけど。
色々なパターンが紹介されているみたいだし。
503416(HSP) ◆HoSW/FCI:02/05/24 03:53 ID:btbuBamk
>>501
 0が通路で1が壁だとすると、まず、n×mの広さを1で全部埋めます。一番外側だけ0にすると範囲チェックしなくて済むから楽かも。
 で、親座標と子座標を用意して、親は左上から右下まで2ステップずつ捜査させます。子は親からランダムに4方向を選んで移動するわけですが、これも2ステップずつ移動させます。子の移動先が壁だったら掘って、またランダムに移動。
 移動予定先が全部通路で選択肢が無い場合は、子の移動は終了して、親を1つ進めます。
そしてまたその親座標から子を移動させて動けなくなるまで掘っていく。これを最後まで繰り返すと解が1つだけの迷路ができます。

 同様の方法で2つの接しない壁を作っていくという方法もありますが、上記のほうがシンプルかも。
504416(HSP) ◆HoSW/FCI:02/05/24 04:06 ID:???
 上記の方法を発展させ、矩形を用いて自由な角度に掘り進んでいく方法も。
 すでに掘った場所には移動しない、という判定自体は同じです。この場合の分岐方法は、掘り進んでいく過程で分岐点を複数置いていく(記憶していく)ことになります。
 記憶しないで矩形の範囲単位で掘れるだけ掘るという方法もありますが、洞窟っぽくはならないでしょう。また、掘っていく過程で矩形の大きさを変えれば、より自然の洞窟に近い迷路ができます。
505名前は開発中のものです。:02/05/24 06:13 ID:???
>>502
アルゴリズムを作れそうにはないけど
パズル的に楽しませていただきました。

>>503
そのアルゴリズムをベースに作ってみようかと思います。
ありがとうございました。
506名前は開発中のものです。:02/05/24 06:23 ID:???
完全ランダムで無くて良いのなら n x n のサイズの小さい迷路を
いくつか作っておいて、つながるように並べるのもあり
507やさしい:02/05/27 01:43 ID:???
板で協力してゲームを作ろうと思ったので
プログラマを募集してます
われこそはと思うつわものは覗いてください

http://ex.2ch.net/test/read.cgi/shar/1022428219/
508名前は開発中のものです。:02/05/27 22:56 ID:???
 
509名前は開発中のものです。:02/06/25 01:31 ID:???
sage
510オhル艦長:02/06/25 14:18 ID:J1CGzihY
緊急浮上
511名前は開発中のものです。:02/07/24 12:32 ID:???
VBで敵を誘導させて全滅させればクリア、というゲームを作っています。
敵の番になったら、自分のいるマスにむかって1歩(1マス)近づく、
という感じにしたいのですが、ちょっとなやんでいます。

敵のキャラと自分のキャラの座標を比較して、
敵のx座標が自分のx座標より大きければ1マス分増やす、
y座標が自分のy座標より小さければ1マス分減らす、というかんじです。

ifやSelect Case の入れ子でやってみたんですが、
行がながーくなってしまって、
どうもこれでは上手いやり方ではないような気がします。

もっと効率の良い考え方がありましたら教えていただければと思います。
説明がへたですみません。。
512511:02/07/24 12:49 ID:Ml.IF7uc
あげてみたり。。。。
513名前は開発中のものです。:02/07/24 12:54 ID:???
>>511
どうして長くなったのかわかんないけど、行がなが〜くなったらそれぞれの処理を分割するしかないのでは?
ifの条件文が長い場合はあらかじめ比較するモノを変数に入れておくとか。
if〜endifはつかってるよね?

手法としては、移動する処理自体を1つの関数にしておいて後から高速化するのが望ましいかも。
とりあえず遅くてもゲーム自体はできるから。
514名前は開発中のものです。:02/07/24 12:56 ID:???
>>511
>敵のx座標が自分のx座標より大きければ1マス分増やす、
>y座標が自分のy座標より小さければ1マス分減らす、というかんじです。

敵のx座標が自分のx座標より小さい場合や
y座標が自分のy座標より大きい場合は考えなくていいのか

俺ならとりあえず移動処理をブラックボックスにしてほっとく
あとからいくらでも高速化できる(かもしれない)からな。
515名前は開発中のものです。:02/07/24 13:08 ID:???
516511:02/07/24 13:22 ID:Ml.IF7uc
レスありがとうございます。
>ifの条件文が長い場合はあらかじめ比較するモノを変数に入れておくとか。
んと、とりあえずこんな感じにしてみたんです。
select case Npc.x(敵のx座標)
case is > Player.x(自分のx座標)
  if Npc.Y < player.Y then
Npc.X = Npc.X - 32(32はひとますぶんです)
Npc.Y = Npc.Y + 32
endif
...こんなかんじで、敵のいる位置のパターンが8こ(斜め4個に上下左右)
もあるんで、どんどん入れ子じょうたいになってしまって。。。

>移動する処理自体を1つの関数にしておいて後から高速化するのが望ましいかも。
ふむふむ。上記の移動の処理をMoveNpc というPublic Subにしているんですが、
そのなかに自作の関数をいれるということでしょうか?

>敵のx座標が自分のx座標より小さい場合や
y座標が自分のy座標より大きい場合は考えなくていいのか

そうなんです!パターンのぶんだけif −endif 文がふえてしまって
ながくなっちゃってるんですよね。これをもっとどうにかして
みじかくならないかなあと。。。

>俺ならとりあえず移動処理をブラックボックスにしてほっとく
ふむふむ、さきにほかのところを完成させちゃえー、ということですね。
たしかに、、、ほかにも考えなきゃいけないとこがいっぱいあるんで
そっちもがんばりたいとおもいます。
517511:02/07/24 14:00 ID:Ml.IF7uc
ここに書かせてもらってレスを拝見したおかげで、
ぱにくってた頭が少しすっきりしたみたいです。
移動処理のとこの致命的なミスを発見し、うまくなおせました!
(行の長さは相変わらずながくなっちゃいましたが)
今は敵が死んだときの処理をがんばってます。
518名前は開発中のものです。:02/07/24 17:42 ID:???
>>516
> そうなんです!パターンのぶんだけif −endif 文がふえてしまって

if 敵のx座標 < 自分のx座標 then 敵のx座標を増やす
if 敵のx座標 > 自分のx座標 then 敵のx座標を減らす
if 敵のy座標 < 自分のy座標 then 敵のy座標を増やす
if 敵のy座標 > 自分のy座標 then 敵のy座標を減らす

コレだけで済むと思うんだが。

ちなみに、
> Npc.X = Npc.X - 32(32はひとますぶんです)
今の状態では右へ1キャラ分移動するのに32を加えていると思うけど、
これはそういう風にするんじゃなくて、将棋の「マス」みたいに管理すべき。
そしてグラフィックを表示するときにx座標とy座標を32倍すればいい。
519511:02/07/24 19:40 ID:Ml.IF7uc
レスありがとうございます、書きこみ遅くなってすみません。
>>518
>今の状態では右へ1キャラ分移動するのに32を加えていると思うけど、
>これはそういう風にするんじゃなくて、将棋の「マス」みたいに管理すべき。
>そしてグラフィックを表示するときにx座標とy座標を32倍すればいい。

おお!ということは、移動処理のほうでNpc.X = Npc.X+1にして、線画処理で
BitBlt FrmMain.PicMain.hDC, Npc.X * 32, Npc.Y * 32, 32, 32, FrmMain.PicChara.hDC, 0, 32, vbSrcPaint
てなかんじでいいのでしょうか?
この方がのちのち管理もしやすそうですね。

今までは1個1個のマス目の番号を割り出すときに
intBlockNo = (8 * (Chara.Y / 32)) + (Chara.X / 32)
ってやってたんですが、この方法ならいちいち32で割らずにすむので
かなりすっきりできますね!!!
これからさっそくかきなおします。
520名前は開発中のものです。:02/07/25 01:52 ID:???
>>516
absとsgn関数をうまく使え

if abs(敵のx座標-自分のx座標) < 1 then 敵のx座標にsgn(敵のx座標-自分のx座標)を加える
Y座標についても同じ
521511:02/07/25 02:23 ID:VlAcWhO2
レスありがとうございます。
>>520
>absとsgn関数をうまく使え

今 abs関数とsgn 関数調べてきました!
絶対値、、、中学のときに習ったような、、自分の不勉強さに身がちぢこまります。
理解できてないままソースにコピペではあまりにも恥ずかしいので
いまから紙にかいて考えてみます。

あれれ?と思うようなとこはたくさん有りますが
ゲームのおおまかなソースが書きあがったので、
明日は他の部分ももっと効率的な書きかたができないか考えてみます。
522名前は開発中のものです。:02/07/25 12:19 ID:???
>>521
お前は効率的な書き方をマスターしたいのかゲームを完成させたいのかどちらだ?と
小一時間(以下略

慣れないうちはきっちり動くものを作り上げてから速度&効率のチューニングをやれYO!
とマジレスもしてみるテスト
523チューニングなんて後から:02/07/25 12:51 ID:???
とりあえず作りかける

ちょっと効率のいいアルゴリズム発見

それにあわせて書き直す

さらに効率のいいアルゴリズム発見

それにあわせて書き直す

さらに効率のいいアルゴリズム発見


524511:02/07/25 21:22 ID:???
レスありがとうございます。激しく反省中の511です。
>>522
>お前は効率的な書き方をマスターしたいのかゲームを完成させたいのかどちらだ?
ゲーム完成させたいです!

>慣れないうちはきっちり動くものを作り上げてから速度&効率のチューニングをやれYO!
そうですね、まだ直さなきゃ行けないとこがいぱーいあるのに
綺麗なソースをかきたいなんて100年早かったです。。反省。。。

>>523
うう、完成しないままループしてしまいますね。。。。。
きっちりさいごまで仕上げることに専念します。

今日は移動用の選択カーソルの不具合をなおします。
525名前は開発中のものです。:02/07/25 22:06 ID:???
>>524
報告ならここにしろ
■自主製作ゲーム:開発状況報告スレ■
http://game.2ch.net/test/read.cgi/gamedev/1005143186/l50
526西村トオル、ナイスですね〜:02/07/26 20:35 ID:???
今、DirectX8で3Dのゲーム作っています。
カメラアングルは、女優(対象)を後ろから捉えています。
そこで質問なんですが、
イベント中とかにゲームの動きを止めて
カメラだけを動かして女優(対象)を舐め回すように撮影したいんですが、
(取り合えず、女優を中心に球を想定して、常に女優の方を捉えつつ
その球面上をカメラが移動って方向で)
何か良いカメラの動きのアルゴリズムとか知りませんか?
やはり、監督自身(自分で)動く軌跡(座標)を切ってやらないといけませんかね?
527名前は開発中のものです。:02/07/26 22:27 ID:???
>>526
ベジェ曲線みたいにすりゃいいんじゃない?
528名前は開発中のものです。:02/07/28 03:47 ID:???
>>511
検証もせずに、他人のコード採用してたら、それこそあぼーんだよ。
解決案が必要なのに、エゴに凝り固まって、他人のソース見ることも出来ないのは、もっと重傷だけどね。
まあ、ゲームに関して言えば、コーディング技術云々より、ゲーム全体としてのデザインの方が重要だから、
そんな小さなことにこだわるな、というのが正解かもね。
529名前は開発中のものです。:02/08/15 17:23 ID:???
>>528
んなこたーない
530名前は開発中のものです。:02/09/15 11:53 ID:???
おまいらは、リソースの管理はどうしてますか?
基底クラスを書いて、音や絵やその他のデータなんかも
まとめて管理してるんでしょうか?
531名前は開発中のものです。:02/09/15 19:09 ID:???
>>530
PCの話で良い?

データのI/Oはインタフェースに肉付けしてく形で作ってる。
具象クラス側で生ファイル、圧縮ファイル、ネットワーク、リソース、
各I/O方法にあわせる事が出来るし、プロトタイプ作ってる途中は
生ファイルI/Oだけあればよいし。
532530:02/09/17 02:30 ID:???
>>531
私も同じようなもんですが、ネットワークは別にしてました。
参考になりました。
533名前は開発中のものです。:02/09/19 05:00 ID:N2qPvY6Q
スプライトを管理するクラスが作れません。C++ です。

今は、各々のキャラクタのクラスがサーフェスやアニメーションの情報も持っていて、
なんとなく不細工な感じがするので、見た目の情報を切り分ける事にしたんですが、
それを一元管理するクラスの設計が出来ません。

今動いてる物をいじるんだから、それなりに便利にしようと思い、
確保したサーフェスやアニメーションの情報や、今表示中のスプライトの情報を、
管理クラスの寿命と共に廃棄できるようにしようとしたり、
サーフェスやアニメーションの情報を削除しても、それをまだ使用してるスプライトがあったら、
そのスプライトが削除される時までは、保持されるような物を作ろうとしました。

けれど、実装してもうまくいかないし、
整理しようと紙に書いていても、頭が混乱してきました。

みなさんは、こんな場合にはどう設計されていましたか?
534533:02/09/19 05:03 ID:???
sage 忘れてました。
すみません。
535名前は開発中のものです。:02/09/19 05:10 ID:???
普通にリファレンスカウンタ使う
536名前は開発中のものです。:02/09/19 05:14 ID:???
俺の場合

◆オブジェクトクラス
スプライトへのポインタ(場合によってはテーブル)
各種パラメータ
_______

◆スプライトクラス
対象サーフェスへのポインタ
サーフェス上のRECT
現在位置
アニメーションありの場合RECTのテーブル
_______

◆サーフェースクラス
サーフェス実体
スプライトからの参照カウント

という風に階層分けをしてうまく作った。
537536:02/09/19 05:18 ID:???
場合によっては、

スプライトクラスを

◆スプライトクラス
現在位置
スプライト定義クラスへのポインタ
表示しているRECTのindex

◆スプライト定義クラス
対象サーフェスへのポインタ
RECTのテーブル

と分ける。
538名前は開発中のものです。:02/09/19 05:18 ID:???
キャラをオブジェクトと見立ててそれぞれで画像を管理するとめちゃくちゃにならない?
私がやったときは、各キャラのデータを保持するクラスを作って
それとは別に「キャラのデータを元に画面を組み立てる」関数を作った。

ハードコーディングでキャラの外見を決める場当たり的な方法だけど、
小規模なら混乱を最小限に防げてプラクティカルだよ。
539名前は開発中のものです。:02/09/19 05:35 ID:???
スプライトをリファレンスカウンタで管理するってどうよ。
シーン構築時に必要な物をすべて読み込んで、
終了時にまとめて削除する方が速いしスマートじゃね?
540533:02/09/19 05:42 ID:???
>>535-536
早朝からありがとうございます。

リファレンスカウンタは、調べていてる時に見つけて
>>536 さんのような感じにしていたんですが、
管理するクラスと、それに管理されるクラスとの関係を
上手くまとめられませんでした。

ゲーム開始前の時点で、管理クラスにサーフェスやアニメーションなんかの
描画に関係する物を登録して、終わった時には、使っていたほうは意識せずに、
管理クラスが、自動的に廃棄してくれるようにしようとしたんですが、
>>533 で書いたように、混乱して終わりました。

ここらへんの管理クラス回りの設計を質問したかったんですが、
文章が長い上に要点がボケてました。すみません。
541533:02/09/19 06:08 ID:???
>>540 を書き込む前に、その間の書き込みを確認してませんでした。

>>537
そうやって定義を分けておくと、同じ種類のキャラクタのスプライトで使いまわせますね。
参考になりました。

>>538
>「キャラのデータを元に画面を組み立てる」関数
が私が最初にとっていた方法だと思います。
その場合のキャラのデータとは、見た目やゲーム内での状態を一つにまとめて
表してる物の事ですよね?
違ってたら、すみません。

>>539
> シーン構築時に必要な物をすべて読み込んで、
> 終了時にまとめて削除する方が速いしスマートじゃね?
そうしたかったんですが、このへんが、よくわからなかったところなんです。
必要な物を管理するクラスの設計を、触りだけでも解説していただけませんか?
542名前は開発中のものです。:02/09/19 12:33 ID:???
>>539
読み込み失敗時のエラー処理が繁雑になるから、ゲーム開始時点で
まとめて読んでしまった方が良いかも。データ量にも依るけど。
543名前は開発中のものです。:02/09/19 15:44 ID:0CTGoUX3
vertex-shaderってなんですか?
544名前は開発中のものです。:02/09/19 15:57 ID:???
vertex-shader(頂点シェーダ)ってのは、
トランスフォームやライティングやテクスチャやブレンディングなどの頂点処理機能のこと。

プログラマブル頂点シェーダは、いままで処理系(Direct3Dなど)の
固定機能のみであったのに対して、これらの機能をプログラムできるってやつ。
545名前は開発中のものです。:02/09/19 16:04 ID:39QNxA7D
546543:02/09/19 16:38 ID:???
>>544
サンクス。
禿しくわかりました。
オレイデス(・∀・)つ旦~
547名前は開発中のものです。:02/09/20 02:00 ID:???
>>545
イイ!
548名前は開発中のものです。:02/09/20 04:38 ID:???
ここはひどいインターネットでしたね
549名前は開発中のものです。:02/09/22 18:44 ID:lBYio+jt
画角を、視点からの距離に応じて自然に変化させる事はできますか?
普通の人間に近い画角を設定すると、至近距離での物の見え方が
おかしいように感じます。
550名前は開発中のものです。:02/09/22 19:54 ID:???
その問題は随分昔から色々言われてきて、
今のところ現実的な解決方法が見つかってないと思う。
至近距離のものは、目には歪んで見えているのに真っ直ぐのものを
真っ直ぐと認識できる。これは脳みそが補正しているからです。

至近のものをなんとかして正しくゆがめて表示すると、
それはそれで不自然に感じるはず。
なぜなら、脳が補正しないから。
551名前は開発中のものです。:02/09/22 19:57 ID:???
もー少し書くと、
最大の問題は、目からディスプレイまでの距離が離れているから、
自然な映像は目からディスプレイよりも近い映像を表示し得ない
のです。

ヘッドマウント式のディスプレイであれば、
正しくゆがめるとちゃんと認識できると思う。
552名前は開発中のものです。:02/09/22 22:18 ID:???
>>551
HMDは焦点距離を1mくらいに設定してるので、
結局うまく認識できないと思う。
553名前は開発中のものです。:02/09/22 22:28 ID:???
それは16Bitでの単色のグラデーションが汚いことより重大な問題なのか?
554名前は開発中のものです。:02/09/22 22:52 ID:???
Virtual Realityとしては結構な問題。
グラデーションはbit数を上げれば解決するけど。
555名前は開発中のものです。:02/09/23 00:45 ID:ThYVC2el
dxfフォーマットの詳しい解説ページ教えて下さい
本は絶版みたいだし、お願いします
556名前は開発中のものです。:02/09/23 01:03 ID:v6pFfVCj
>>555
やめとけ。検索すればすぐでると思うが、情報がいい加減でひどい
フォーマットってうわさだ。何に使うん?
557名前は開発中のものです。:02/09/23 01:11 ID:???
ちょっと調べたが酷いもんだったなあ
3D拡張もあるらしいが
558名前は開発中のものです。:02/09/23 01:13 ID:v6pFfVCj
559名前は開発中のものです。:02/09/23 01:53 ID:???
>>556>>557>>558
ありがとうございます。
3Dを扱う一般的なフォーマットは知っておかんといかんかな、と思いまして
560549:02/09/23 03:58 ID:???
>>550-554
単純な問題じゃないと言うわけですね。
自分の知識でまだまだ足りない部分があった事がわかりました。
ありがとうございました。
561名前は開発中のものです。:02/09/23 06:14 ID:FUH7SiPA
ゲーム作成用のC++クラスフレームワークいいのありませんか?
DirectX8はWizardもついてだいぶよくなったみたいだけど
構造体がいっぱい残ってるのがうっとしいです。
やれることが限定されても、そのへんクラスで結構隠してくれてるのが
あればいいんですが。
562名前は開発中のものです。:02/09/23 07:28 ID:???
Wizardで作られたものを整理して、テンプレートとしてとって置く
563名前は開発中のものです。:02/09/23 07:39 ID:???
564名前は開発中のものです。:02/09/23 07:57 ID:???
>>536
オイオイ
> いいの
ダヨ
565名前は開発中のものです。:02/09/23 08:13 ID:???
elはごった煮だけど良い物だよ。
洗練されているという良い物ではないけど。
566名前は開発中のものです。:02/09/23 08:14 ID:FUH7SiPA
>>562-563

ありがとうございます。
ELLibちょっとヘッダ眺めてみました(眺めただけ)。
ほかにもあれば、情報収集しときたいのでお願いします。
567名前は開発中のものです。:02/09/23 08:34 ID:???
>>566
やねうらおの奴使っておけ。
まー、完璧ではないかも知れないが普通に使う分には問題ない。
NxDrawが生きてたらそれが良いと思うんだけどね。
あとはゆきいるかの所かなぁ

リンクは面倒なのでぐぐってくれ。

ゲーム用のフレームワークが本格的なゲームエンジンを指す場合、
高い金払ってUTのエンジン使えるように契約したりしてくれ。
568名前は開発中のものです。:02/09/23 08:49 ID:FUH7SiPA
>>567
ふんふん、なかなか本格的ですね。
これはどうもありがとうございます。YTLには笑った。

趣味で使うつもりなので。
UTって何でしょう。
569名前は開発中のものです。:02/09/23 09:41 ID:???
たぶんUnreal Tournamentのことだろう。
この辺を嫁ばいい。
http://udn.epicgames.com/
570名前は開発中のものです。:02/09/23 10:35 ID:???
>>569

ありがとうございます。
ちょっと見ただけでは良く分かりませんでしたが
今度暇なときに見てみます。
571名前は開発中のものです。:02/09/23 14:39 ID:???
>>567
あれじゃあ、片手落ちじゃない?
572名前は開発中のものです。:02/09/23 15:12 ID:???
>>571
その前に君は日本語を使いなさい。
「あれ」は何の指示代名詞なんだい。
573571:02/09/23 15:22 ID:???
>>572
ポリポリ
574名前は開発中のものです。:02/09/23 15:29 ID:???
>>572


  571
<#`Д´>パ、パカニスルナ
575名前は開発中のものです。:02/09/23 16:30 ID:???
「片手落ち」ってのは使わないほうがいいよ
厨に変なツッコミいれられるから
576名前は開発中のものです。:02/09/23 16:52 ID:???
>厨に変なツッコミいれられるから
575=厨
577名前は開発中のものです。:02/09/23 16:58 ID:???
なんかよく分からんのだが
とりあえず誰か>>571の解説を頼む。
 
正直、俺には読解不能。
578名前は開発中のものです。:02/09/24 23:47 ID:???
>>577
やねうライブラリでは、2D しか対応してないって事では?
579名前は開発中のものです。:02/09/25 00:30 ID:???
3Dやりたいなんて書いてないじゃん
580578:02/09/25 02:18 ID:???
>>579
今時の PC でゲーム作るって言ったら、
3D に対応してるライブラリのほうが、作るのが簡単で良いんじゃない?
無理に 2D に落として仕様を考えるよりも、素直にアイデアを出せるし、
三世代くらい前のカードでも、充分速かったと思うよ。
581名前は開発中のものです。:02/09/25 02:31 ID:???
>>580
ん?
3Dの世界を構築するエンジンじゃなくて、
3Dハードを使うって事か?
582名前は開発中のものです。:02/09/25 08:22 ID:???
3Dだと初心者で権威を失うから駄目なんだよ。
583名前は開発中のものです。:02/09/25 08:52 ID:???
意味がわからない
584名前は開発中のものです。:02/09/25 17:49 ID:???
3Dだと初心者で←教える人は2Dは得意だけど3Dは苦手
権威を失うから駄目なんだよ。←2Dなら深い質問も大丈夫です、かかってきなさい

という意味と思われ
585名前は開発中のものです。:02/09/25 20:08 ID:???
一つのファイルにバイナリとテキストを混在させるのは可能でしょうか?
また可能ならどういった方法がありますか?
テキストとバイナリを交互に書き込んでみたのですがテキストが化けました
Delphi、Windowsです
586名前は開発中のものです。:02/09/25 20:14 ID:???
>>585
テキストをバイナリとして扱えばいいんでねーの?
587名前は開発中のものです。:02/09/25 20:39 ID:???
>>586
なるほど、その手がありましたか!!
ありがとうございました
588名前は開発中のものです。:02/09/25 21:07 ID:???
アフォが増えたな・・・
589名前は開発中のものです。:02/09/25 21:23 ID:???
やっぱりファイルヘッダはテキストのほうがかっこいいので
>>585を再度質問させていただきます
よろしこ
590名前は開発中のものです。:02/09/25 21:37 ID:???
>>584
漢文を訳すより難解なり
591名前は開発中のものです。:02/09/25 21:40 ID:???
>>589
ヘッダだけテキストにしてそれ以降をバイナリ
もしくは全部テキストにしたければバイナリをbase64にでも変換すれば?
592名前は開発中のものです。:02/09/25 21:54 ID:???
>>591
>ヘッダだけテキストにしてそれ以降をバイナリ
Delphiでどうすればできるのか教えて欲しいです
Cではできますた
593名前は開発中のものです。:02/09/25 22:14 ID:???
>>592
同じようにしる!!

その手の作業に関しては、
DelphiでできてCでできないのはわかる(VCL使っているとか)が、
CでできてDelphiでできないというのはよくわからない。
594名前は開発中のものです。:02/09/25 22:16 ID:???
とりあえず、Cではどういやってたか言ってくれれば、
こたえられるかもしれんよ。
595名前は開発中のものです。:02/09/25 23:00 ID:???
そういえば漏れはDelphiでパケット越しに
テキストバイナリ混成データ送ろうとして
四苦八苦した思い出があるなぁ

けど、もうどうやったのか忘れた(藁
596名前は開発中のものです。:02/09/25 23:38 ID:???
Delphiを捨てればいいと思うんだけど、、、ダメ?
597名前は開発中のものです。:02/09/25 23:41 ID:???
Delphiパカニスルナ!!
Personalでやったから苦労したんだよ!

ちなみにパケット越しじゃなくて
パケットに詰めて、だな
598名前は開発中のものです。:02/09/25 23:57 ID:???
パケットって言っても
シリアライズとデシリアライズのコードを対になるように書けばそれで
終わりっしょ?DelphiもCも関係ないと思うんだが・・・
599名前は開発中のものです。:02/09/26 01:34 ID:???
>598
アホですか?
そのシリアライズがうまくいかないって話なんだけど?

てか思い出したけど
サーバC++/クライアントDelphiでやってて
コネクションまで確認できたのに結局データのやりとりはうまくいかなくて
クライアントもC++で組み直したんだった
もちろんDirectPlay使ってたとかいうオチじゃなくてWinSockでやってた
600名前は開発中のものです。:02/09/26 01:36 ID:???
>Personalでやったから苦労したんだよ!
非PersonalだとコンパイラやIDEが勝手にプログラマの無知を補間してくれるんですか?
601名前は開発中のものです。:02/09/26 06:31 ID:???
Personalに欠けてるコンポーネントが
ゲームアプリ開発に及ぼすってことなのかね。
あまり考えられないよな。
 
 
・・・・DB関連のことなのか。
602名前は開発中のものです。:02/09/26 06:32 ID:???
× に及ぼす
○ 影響を及ぼす
603名前は開発中のものです。:02/09/26 06:57 ID:???
Indyがフリーで落とせることを知らなかったとか
604名前は開発中のものです。:02/09/26 12:44 ID:???
Indyの日本語ヘルプが手に入るインターネットはどこですか?
605名前は開発中のものです。:02/09/26 15:00 ID:???
(´-`).。oO(日本語ヘルプがDelphiPro以降に付属することをわかってて聞いているんだろうな)
606名前は開発中のものです。:02/09/26 15:20 ID:???
IndyよりもActionManagerがほしい
607名前は開発中のものです。:02/09/26 22:13 ID:???
>>599
> そのシリアライズがうまくいかないって話なんだけど?

自分がアホであることを晒してどうするよ?
608名前は開発中のものです。:02/09/26 22:33 ID:???
599にはデータを扱うプログラムは早すぎるってことで。
ソケットもファイルも書き込んだ/送出したデータをありのままの姿で返すだけだし、
をれが言語によって変わることも*ありえない*と言うことが理解できてないようだから。
化けたとしたらそれは書き込んだデータと書き込んだつもりのデータが違うだけ
609名前は開発中のものです。:02/09/26 22:40 ID:???
ファイルに対してシリアライズして内容をチェックするのが先だあな
素人は何でも一度にやりたがるからダメだ
610名前は開発中のものです。:02/09/27 08:45 ID:???
駄スレ防止age
611名前は開発中のものです。:02/09/27 11:30 ID:u5LECmtB
C++でシューティングを作ろうと思っています。
敵キャラの抽象クラスを作って、キャラごとに派生クラスをつくりました。

そこで、出てくる敵キャラすべてを格納しておくキューを作りたいのですが、
Javaみたいな、すべてのクラスを格納できるキューが作れなくて困っています。

何か案はありませんか?
612名前は開発中のものです。:02/09/27 12:38 ID:???
>>611
その抽象クラスのポインタを、コンテナに入れれば?
613 :02/09/27 15:01 ID:uiQG1iKW
Indyって何?(w
614名前は開発中のものです。:02/09/27 15:39 ID:???
>>611
… C++ の基本から勉強し直した方が良いような。

struct Base {
  virtual ~Base() {}
  ...
};

class Deriv : public Base {...};

using boost::shared_ptr;
using std::queue;

queue<shared_ptr<Base> > q;
q.push(shared_ptr<Base>(new Deriv);
615名前は開発中のものです。:02/09/27 18:07 ID:???
>>613
Internet Direct。
主要なインターネットプロトコルに対応したオープンソース形式のライブラリ。
BSDライセンスとMPLのデュアルライセンスで都合のよい方を選ぶことができる。
Delphi, C++Builder, Kylix用。

http://www.nevrona.com/Indy/
# なぜか今つながらない。
616名前は開発中のものです。:02/09/27 21:17 ID:???
>>614
C++をあまり知らないヤシに説明するのに
当然のごとくboostを使ってるお前がウザイと思うのは俺だけか
617名前は開発中のものです。:02/09/27 22:33 ID:???
>>616
きみだけ。
618名前は開発中のものです。:02/09/28 03:01 ID:???
>>616
boost なんて、もう標準も同然じゃん。
619名前は開発中のものです。:02/09/28 03:02 ID:???
>>616
ていうか、boost 無しでは生きていけません。
620名前は開発中のものです。:02/09/28 03:07 ID:???
boostが標準ってお前らの中だけでの話だろ。
入門書ではまずboostを扱わないし、
ウチの会社も導入を許可してくれない。

初心者に説明するときは、極力非標準は排除して話すべきだと思うんだが。
621名前は開発中のものです。:02/09/28 03:13 ID:???
boostなしで生きていけないなんて軟弱ぅ
622名前は開発中のものです。:02/09/28 04:27 ID:???
>>620
かと言って、生ポインタでもかわいそうな気が……
623622:02/09/28 04:29 ID:???
既に話題がスレ違いな気がしてきたのね。
624名前は開発中のものです。:02/09/28 04:31 ID:???
まぁ、なんつーか今はLokiすらも標準同然とか言い出す
頭に何か沸いてる人間も出ているわけで、
boostくらい見逃すのがいいのかもしれないな
625名前は開発中のものです。:02/09/28 09:03 ID:???
概念の理解なしにboost等を使うのはまずいっしょ
626名前は開発中のものです。:02/09/28 16:00 ID:???
>>611がこの機にboost::shared_ptrを調べる程度の心がけがあれば
問題ない。
627名前は開発中のものです。:02/09/28 18:02 ID:???
>>620
> ウチの会社も導入を許可してくれない。
lambda あたりはともかくとして、shared_ptr さえ使えないような会社なら
転職を考えた方が…。
628名前は開発中のものです。:02/09/28 18:13 ID:???
そんなことぐらいで転職するもんなのか・・
629名前は開発中のものです。:02/09/28 19:40 ID:???
java あがりの初心者には、ポインタを忘れさせてやれ。
630名前は開発中のものです。:02/09/28 20:19 ID:???
>>627
導入したければ、自分のプライベートを裂いてコード検証をして、
各クラス毎の関連と、使用可不可のチェックリストを作らないと許可が下りない。
大体、まともなところならshared_ptrに変わる物はすでに作られてる筈だから
対して問題にならないと思うが。
631名前は開発中のものです。:02/09/28 20:30 ID:ThgTmq4W
オブジェクトの座標って、みんなどんな型を使ってる?

俺は不安なのでfloatとか使ってるんだけど、実はintでもいい?
632名前は開発中のものです。:02/09/28 20:33 ID:???
ポインタって何の役にたつの?
633名前は開発中のものです。:02/09/28 20:52 ID:???
>>631
なんかIDがカコイイから特別に教えてやる。

表現したい座標の性質により変える。
634名前は開発中のものです。:02/09/28 21:01 ID:???
>>630
仕事に使う道具を検証するのに「プライベート」な時間を要求するのか。
終わっとるな。
635名前は開発中のものです。:02/09/28 21:02 ID:???
>>631
意味不明。
「不安」、「いい?」とは具体的に何。

>>632
必要なければそれでいい。
気にすることはない。
636名前は開発中のものです。:02/09/28 21:04 ID:???
すでに方法があって、それでうまくいってるなら
検証する時間を与えられるかどうか微妙だなあ。

検証する時間をクレとリーダーに交渉する時間は
仕事中であってもいいと思うが、そこでダメといわれたら
プライベートでやるしかないな
637631:02/09/28 21:08 ID:???
>>635
スクリーンの左上を(0, 0)、右下を(800, 600)などとして
オブジェクトを配置していくわけです。

移動してくオブジェクトの座標には、今までfloat型を使って表現
していたのですが、これって意味のないことですか?
638名前は開発中のものです。:02/09/28 21:16 ID:???
ぽいんた出来ないと仕事になりません
639名前は開発中のものです。:02/09/28 21:19 ID:???
>>637
スクリーンに表示だけならint型だけでもいいんでないの。
ただし、その値を計算する時に、float型程度の精度が無いと
計算出来ないんじゃない?
計算様の別型の値を持って、それで計算、intにキャストして表示って馬鹿らしい。
だから、漏れは初めからfloat型でいっていますが。
640名前は開発中のものです。:02/09/28 21:25 ID:???
>>637
オブジェクトが小数点以下の数値をとる可能性があるなら無駄じゃないよ。
641名前は開発中のものです。:02/09/28 21:35 ID:???
>>637
アプリの内部変数の型の話をしてるなら
意味がないかどうかはアプリによるだろう。ちゃんと設計しる。

一方、一般的な3DAPIに渡される座標値の型指定がfloat値であることの
意味を問うているなら、それはちゃんと意味があるという答えになる。
試しに320x240程度の画面モードにすれば肉眼で確認できるだろう。
642641:02/09/28 21:40 ID:???
3Dなら
「ゲームの中のシーン座標」と「スクリーン座標」はそれぞれ別物として
定義するのが普通だぞ。2Dの場合は、依存関係を持たせないと苦しいケースも
ある。
643初心者:02/09/29 00:07 ID:???
初めてパソゲーで曲を作るんですが、、
どうやったらいいんでしょうか?
実際にギターなどでは作ったことがあるんですが、、、
シンセサイザーに挑戦します。
友達とチームを組んで活動します。
シンセサイザーのことはまるで分からないので、アドバイスください。


644名前は開発中のものです。:02/09/29 00:19 ID:???
>>643
MIDIデータを作ることから始めてみてはどうか
まったく知らなければDTM板でも覗いてみるとか
645名前は開発中のものです。:02/09/29 15:07 ID:RRwSPMiU
>>631
8ビットCPUのフルアセンブラでしか経験ないけど、16bit整数+8bit小数の24bit
で、管理してました。
0.5ドットの移動とかやりますし。

646名前は開発中のものです。:02/09/29 19:19 ID:???
音楽ツクールかってみたら?
647名前は開発中のものです。:02/09/30 01:38 ID:???
3D使わないなら、精度の変化が無い固定小数で扱う。
648名前は開発中のものです。:02/10/01 20:56 ID:???
今、固定小数点を C++ で実装するなら、テンプレートかね?
649名前は開発中のものです。:02/10/02 12:32 ID:???
ぶっちゃけ、RagnarokOnline の武器攻撃計算Javaスクリプトを作ってるのですが、Web制作版で聞くことでもないし、ゲームタイトル非依存の一般的な問題とおもうのでここで聞くことにしました。

あのゲームの場合、装備品にカードが刺せて、装備品やカードによっていろいろとパラメーターが変わります。あるカードを刺せば攻撃力 += 10; とか、あるカードをさすと敵の属性によって追加ダメージ15%等‥‥

で、私の頭ではいちいち、いちいち武器やカードの効果を攻撃力計算関数内に全部書き込む方法しかおもいつきません。
こんなの↓

func 攻撃力()
{
  全装備品のカードスロットを走査、カード枚数[カードID] の配列を作成

  基本能力値読み込み

  if (カード枚数[100] > 0) { .. }.  // 修正能力値の計算
  if (カード枚数[200] > 0) { ... }

  修正能力値による基本攻撃力の計算

  if (カード枚数[150] > 0) { .. }.
  if (カード枚数[250] > 0) { ... }

  ほげほげほげほげ

  if (カード枚数[50] > 0) { ... }

  以下繰り返し

  return 最終攻撃力
}

でも、この方法は私としてはすごい汚いとおもうんですね。ミスを誘いやすいし、メンテもしにくい‥‥
というわけで、こういうのを効率よく処理する方法について教えてください。
650名前は開発中のものです。:02/10/02 13:27 ID:???
>649
オブジェクト「思考」せよ
なんのためにJava使ってるんだ(藁
651名前は開発中のものです。:02/10/02 13:33 ID:???
とりあえず>>650に具体的に説明してみて欲しい。
他の者は解法を書くのをしばし待て。
652649:02/10/02 13:56 ID:???
>650
一応、考えてみたんですが、

function Card(〜〜〜, effect)  {
  ...
  this.effect = (effect == null || effect == undefined) ? null : function () {};
  return this;
}

function Equipe(〜〜〜, numcards, effect)  {
  ...
  this.Cards = (numcards == 0 || numcards == null || numcards == undefined) ? null : new Array (numcards);
  this.effect = (effect == null || effect == undefined) ? null : function () {};
  return this
}

function ComputeAttack()  {
  基本能力値読み込み

  for (e = 0; e < EquipSlot.length; e++) {
    E = EquipeSlot[e];
    E.effect();
    if (E.Cards == null) continue;
    for (c = 0; c < E.Cards.length; c++) {
      E.Cards[c].effect();
    }
  }
  
  繰り返し
}

というのを考えては見たのですが、(続く)
653649:02/10/02 14:02 ID:???
(652から続き)

あ、上のコードで effect っていうのは、カード効果とか装備品の効果です。

で、上のように考えては見たんですが、

ものによって
  a += 5; --- @
とか、
  a = 0; --- A
とかあるんですね。

詳しく実装が解明されているわけではないのですが、Aの効果があったら@の効果はキャンセルされるし
@A@@とか、配列にきてたらどうしよう?とか非常に困ってしまったのです。
654名前は開発中のものです。:02/10/02 14:05 ID:???
C++でごめん

class 武器 {
public:
 int 攻撃力();
 ステータス構造体 ステータス修正();
private:
 int 基本攻撃力;
 ステータス構造体 ステータス修正値;
 カード; //複数枚装着できるなら配列化
};

int 武器::攻撃力() {
 return 基本攻撃力 + カード->攻撃力修正();
}

ステータス構造体 武器::ステータス修正() {
 return (*this)->ステータス修正値 + カード->ステータス修正値;
}

入りきらないので次↓
655名前は開発中のものです。:02/10/02 14:05 ID:???
class カード {
public:
 int 攻撃力修正();
 ステータス構造体 ステータス修正();
private:
 int 攻撃力修正値;
 ステータス構造体 ステータス修正値;
};

あとは必要な武器とカードをデータベースからインスタンス化するだけだと思われ
カードを複数枚装着できるなら、各計算関数内で繰り返してやるだけ
ステータス構造体は、ゲームに出てくるステータスを静的メンバに持つクラスで実装して
+演算子や+=演算子を定義してやる
てか、攻撃力もステータス構造体に含めて問題なさそうだな

「全ての効果打ち消し」とかは配列をソートすれば良いだけでは?
656名前は開発中のものです。:02/10/05 04:23 ID:???
計ったら倍くらい遅かったのに、STL や boost を使いまくってる漏れは、イッテヨシ でつか?
エラー処理は例外に頼ってるのに、例外安全なんか知らんわボケっていうのも、イッテヨシ でつか?
もまいら、どうしてますか?
657名前は開発中のものです。:02/10/05 10:19 ID:???
>>656
> もまいら、どうしてますか?
case by case

っつかクリティカルな部分以外は速度なんか気にしないし、クリティカルな部分も
メモリアロケータに手を入れれば幸せになったりする。
658名前は開発中のものです。:02/10/07 17:51 ID:???
ガチャポン戦士を作ろうと思うんだけど
スレ立ててもかまわないですかね?
ちなみにプログラミング経験は無しです・・・
言語はHSPかDelphiのどっちかで勉強しながらやろうと思います。
659658:02/10/07 18:00 ID:???
age
660名前は開発中のものです。:02/10/07 19:06 ID:???
>>658
作ってから立てた方が叩かれないかと。
661名前は開発中のものです。:02/10/07 19:37 ID:???
>>685
まずはHSPかDelphiのスレで質問しながら作り、
最低限のモノを作ってからスレ立てれば、
叩かれる可能性はかなり減るかと。
662名前は開発中のものです。:02/10/07 22:53 ID:???
>658
この板は「カタチの無い企画スレ」は徹底して終了厨に荒らされる傾向があるので
まず一通りカタチにしてからスレ建てた方が良いでしょう
663名前は開発中のものです。:02/10/07 23:02 ID:???
(´-`)。oO(荒らしの自己基準にあわせなきゃならんのか・・・・・・)
664名前は開発中のものです。:02/10/07 23:03 ID:WME4JpPc
荒らしと一般の人の価値観が一致している部分だと思うよ。 <形のない企画スレ禁止
665名前は開発中のものです。:02/10/07 23:03 ID:???
あ、ごめん、ageちゃった。
666名前は開発中のものです。:02/10/07 23:09 ID:???
この板じゃ「勉強しながらやろうと思います」で完成したためしがないからな。
出来る香具師ですら完成しねーんだからよ。
667658:02/10/07 23:12 ID:???
>>660-665
そうですね。
とりあえず形になるものを作ってみます。
668名前は開発中のものです。:02/10/07 23:16 ID:???
>>664
「形のない企画スレ」には3Dレースゲースレも含まれるのかい?
669名前は開発中のものです。:02/10/07 23:19 ID:???
あれは【スレ独立で失敗】の典型例として
この板の歴史に名を刻んでしまったね。
670名前は開発中のものです。:02/10/07 23:23 ID:???
形があることは単に成功の必要条件に過ぎない
(成功の十分条件ではない)ということを、あのスレは教えてくれた。
671名前は開発中のものです。:02/10/07 23:31 ID:???
3Dレースゲースレ最大の敗因は作者サイドが煽りに過剰反応したとこだな
作者が名前伏せて反論してたから削除人も相手にしてくれなかった
672名前は開発中のものです。:02/10/07 23:32 ID:???
ここは雑談スレじゃないからそろそろやめなされ
673669:02/10/07 23:38 ID:???
悪かった。雑談スレに移動するよ。
674名前は開発中のものです。:02/10/08 00:11 ID:tUlUNf/S
RPGの本体とシナリオデータってどうゆう風に分離させるんですか?
どっかで「スクリプト」を使え見たいな話きいたけど。
例えば、
じいさんに話す。(シナリオ始まり)
洞窟でなにする。
じいさんに話す。(シナリオ終了)
こんな感じの場合。
675名前は開発中のものです。:02/10/08 00:25 ID:???
>>674
RPGツクールを一度触ってみ。
あんな感じで分離させればOK.
676名前は開発中のものです。:02/10/08 00:31 ID:???
>>675
禿同。
RPGツクールは作られるモノはクソだがツール自体は優れている。
677ひきプロ ◆8fhky/PGis :02/10/08 00:47 ID:???
今擬似3Dのフィールドを歩くゲーム作ってるんですが
(タクティクスオーガみたいな)
あらかじめフィールドだけを最初に1回作っておいて、
キャラクタのみをメイン画面に転送すると、フィールドと
キャラクタとの前後関係がおかしくなってしまいます。
かと言って全部を毎フレーム描画していると遅くて困っています
(GDIのBitbltで処理しています)
DirectX使ったら改善できるでしょうか。
またDirectX使わない場合はどうしたらよいでしょうか
678名前は開発中のものです。:02/10/08 00:51 ID:???
うーん、ツクール買うのはつらい。
どんな感じ?
鍛冶屋のおやじとか、通常のNPCを絡ませるのとか難しそうなんだけど。
そのまま台詞も本体に突っ込んでしまうのはやっぱり無理かな。
679ひきプロ ◆8fhky/PGis :02/10/08 00:55 ID:???
NPCの属性決めて、(店か人か)
店の場合は汎用的な店の親父のメッセージ表示、
人だったらメッセージ文字列へのポインタ持っておいて
そのポインタ参照したらメッセージ出てくる感じにしたらどうでしょ
680名前は開発中のものです。:02/10/08 00:56 ID:???
>>677
その種のヘヴィな処理にGDIを使うのは狂気の沙汰です。

描画順序については「フィールド」「キャラ」といった
モジュール化的な分割を諦めて画面生成のみをモジュール化する形をとります。

えぇえぇ、ゲームのコードなんてスパゲティ作ってナンボですから。
681名前は開発中のものです。:02/10/08 00:58 ID:???
他にも解決策はあるけどね。
ZバッファやZソートを使った陰面処理を行うとか
始めからDirect3Dで描画しそのへんの処理をハードウェアに任せる方法とか。
遅くなるけどね。
682ひきプロ ◆8fhky/PGis :02/10/08 01:00 ID:???
>>680
ご返事ありがとうございます。

やっぱGDIでは無理でしょうか…。
一応モジュール化的な事をしているんですが果たして
使いやすくなってるのかどうか藁
今んとこスパゲッティになりまくりです
683ひきプロ ◆8fhky/PGis :02/10/08 01:02 ID:???
>>681
3D空間にポリゴン一枚出す処理すらよく分かりません(;´Д`)
684ひきプロ ◆8fhky/PGis :02/10/08 01:05 ID:???
あ、読み間違えてた…
諦めて ですね藁
685名前は開発中のものです。:02/10/08 01:06 ID:???
>>683
死ね
686名前は開発中のものです。:02/10/08 01:15 ID:???
>>678
RPGツクールは体験版があるので、どんなものか見てみるだけなら
それで充分だと思うよ。
体験版のあるURLは、適当に検索してちょ。
687名前は開発中のものです。:02/10/08 01:15 ID:???
>>679
とりあえずその考えでやってみる。
688名前は開発中のものです。:02/10/08 01:16 ID:???
お、体験版もあるのか。さがしてくるよ。
689名前は開発中のものです。:02/10/08 03:06 ID:???
体験版ならエンターブレインのHPにないか?
もしみつからないようならMXかなんかで拾って
参考にしたら破棄しちまいな。
690名前は開発中のものです。:02/10/08 21:06 ID:???
>>677
素直に DirectX 使って 3D で描画しろ。CPU <-> バス <-> グラフィックカード
間を流れるデータの量、桁が違ってくる。
691名前は開発中のものです。:02/10/08 22:12 ID:???
>>690
流れるデータ量の桁って変な知ったかするのヤメレ

この場合問題はバスに流れるデータ量ではなく
Zバッファがハード的に使えるか
CPU側で自前計算しなければならないかの差
692名前は開発中のものです。:02/10/09 21:07 ID:???
>>691
前後関係無視して単純に全画面 BitBlt するだけでも、GDI だと
すぐにサチるぞ。
693名前は開発中のものです。:02/10/09 21:14 ID:???
サチるってわけのわからないオナニー用語を使うのはヤメレ
694名前は開発中のものです。:02/10/09 21:16 ID:???
律速といったほうがいい?
695名前は開発中のものです。:02/10/09 21:51 ID:???
このスレはテンプレは無いの?

それぞれの言語の長所・短所・難易度
BGMのそれぞれの記録形式の長所・短所・難易度
作りたいゲームを再現するにはどの言語がいいか

こんなテンプレがあったらいいね。
696名前は開発中のものです。:02/10/09 22:21 ID:???
>>695
無いのじゃなくて必要だと思った奴が自分で作れば良いだろ
あったらいいねじゃなくて言いだしっぺのお前が作れ
何でも人任せにするな
697:02/10/09 23:27 ID:s4kqpcbZ
初心者なので作れません。
698名前は開発中のものです。:02/10/09 23:33 ID:4GQZ2WlT
この手の話題はプログラミング板で盛ん。しかも最後は荒れる。
とりあえずJava。
実行速度が遅いんで、アクション・シューティング系は避けた方が良いかも。
ダンジョンマスターJavaは素晴らしかった。
699名前は開発中のものです。:02/10/09 23:37 ID:???
>>697
初心者とそれを理由にする怠け者は違う
自分で初心者を名乗る奴は後者
700名前は開発中のものです。:02/10/09 23:48 ID:???
>>693
ハードウェア屋さんとか物理屋さんなんかが良く使う用語だな>サチる
saturation (飽和) の略式表現
701ひきプロ ◆8fhky/PGis :02/10/09 23:55 ID:???
>>690
7のDirectDraw使うことにしますた。
3Dはムズイのでまたの機会にします
702:02/10/09 23:55 ID:???
Java 実行速度が遅く、アクション・シューティング系には向かない。
    (ダンジョンマスターJavaは素晴らしかった)

    公式サイトhttp://www.cs.pitt.edu/~alandale/dmjava/
    ダンジョンマスターをやろう!http://home8.highway.ne.jp/galzo/game/danmasu.htm
703名前は開発中のものです。:02/10/10 00:08 ID:???
>>701
確かに DirectDraw なら(ビデオメモリがある限りは)ビデオメモリ上に
サーフェイス作るから、BitBlt は速いやね。フレーム毎に全部書き直し
にしても、そこそこの fps が出せる。
704名前は開発中のものです。:02/10/10 00:10 ID:???
パーツを動的に弄らないという前提なら
705_:02/10/10 02:32 ID:???
>>702
遅いのはJavaアプレット。
Javaアプリケーションといっしょにするな!ボゲェ!!
706名前は開発中のものです。:02/10/10 07:50 ID:???
>>705
今現在Javaでゲーム作ってる漏れが言うのも何だが、
起動とGUIは非常に遅いっす。色々工夫しないと話にならんです。
707要ブックマーク:02/10/10 11:15 ID:buBBvKiZ
Computer Programing(日本語)
http://www.realdigital.co.jp/densi2/progindex.html
>C言語・C++言語・WINDOWSプログラム・DirectX Draw・DirectX 3D・ソフトウェアライブラリー
>各言語の説明と、サンプルソース。

YaneuraoGameScript & SDK本体
http://www.sun-inet.or.jp/~yaneurao/links/ygs/

yaneuraoGameScript2000
http://isweb19.infoseek.co.jp/computer/yaneurao/ygs/
>初心者向けC言語によるゲーム制作指南

C言語初心者向けリンク集
http://www3.mahoroba.ne.jp/~seibi/gad_cgi/html/16_02.html

ヒューマンアカデミー
http://www.athuman.com/a/it/course.html
>3ヶ月コースなど

初心者向けゲーム制作講座"Delphi de GAME"TopPage
http://www.din.or.jp/~koudai/Delphi/Delphi.html
708名前は開発中のものです。:02/10/10 12:07 ID:???
>701
はぁ?DirectX8にスプライト関数(ラッパークラス)あるだろ?
非常に簡単に半透明使えるし、回転拡大縮小できるし、ポリゴンみたいなこと
できるし、いいんじゃないの?エフェクトはかけられないけど・・・。
DirectDrawより簡単ではるかに便利。2Dならこれを使えや
709名前は開発中のものです。:02/10/10 12:11 ID:???
>>701はもうプログラム諦めたに1000マンセー
710名前は開発中のものです。:02/10/10 12:28 ID:???
DirectX8以降だとWin95を切り捨てる事になる。
711名前は開発中のものです。:02/10/10 13:02 ID:???
>>708はID3DXSpriteまともに使った事無いに10万ペリカ
712名前は開発中のものです。:02/10/10 13:45 ID:???
おまえら、相談室で煽りあうのは寄席。
713名前は開発中のものです。:02/10/10 16:22 ID:???
煽りあいできるクソスレは他にいくらでもあるだろう
714名前は開発中のものです。:02/10/10 16:37 ID:???
(´-`).。oO(くどい)
715708:02/10/10 16:41 ID:???
DX8のスプライト関数使うとよく叩かれるんだけど
なんか理由あるの?
drawPrimitiveUPと比較しても速度変わんないんだけど?
抜き色指定とかでDDS使わない分、楽でいいだろうに・・・。
716708:02/10/10 16:42 ID:???
アゲハチョウ
717ひきプロ ◆8fhky/PGis :02/10/10 16:49 ID:???
>>703
ためしに作ってみたら毎フレーム全部描画しても
GDIの時より軽くなりますた。
>>708
そういえばアルファブレンドができなくて悩みました
8のヘルプも読んでみようと思います
718名前は開発中のものです。:02/10/10 17:02 ID:???
>>715
ID3DXSpriteを使うと叩かれるのか。謎だな。
それはどこでの話だ。
719708:02/10/10 17:43 ID:???
>>718
2ch
720名前は開発中のものです。:02/10/10 17:51 ID:tjuH/a8v
ID3DXSpriteで、scaleで拡大率変えてたんだけど、
他の環境で動かしたらscaleが有効になってなくてしょぼんだった。
721718:02/10/10 17:54 ID:???
>>719
スレのリンクを貼るほどの価値もない話題ということか。
それなら気にしねーほうがいいんじゃねーの。
 
どうせ具体的な指摘は何も無かったんだろ?
722名前は開発中のものです。:02/10/10 18:08 ID:???
( ´,_ゝ`)プッ
723名前は開発中のものです。:02/10/10 19:04 ID:???
708=722?
724718:02/10/10 19:15 ID:???
>>723
違うだろ。さすがに。
725名前は開発中のものです。:02/10/10 20:45 ID:pMa8asNt
ID3DXSpriteだと256*256以上の大きさのテクスチャを扱えないからじゃねーの?
726名前は開発中のものです。:02/10/10 20:50 ID:???
そんな制限は無い
727名前は開発中のものです。:02/10/10 22:57 ID:???
>>726
あるぞ。

728名前は開発中のものです。:02/10/10 23:53 ID:???
>>708
> DirectDrawより簡単ではるかに便利。
DirectDraw は初期化と、ロスト時の再初期化処理だけで意外と面倒。
729名前は開発中のものです。:02/10/11 00:28 ID:???
>>727
無い
サイズの制限はハード依存であってID3DXSpriteそのものの制限とは関係ない
730名前は開発中のものです。:02/10/11 00:33 ID:???
どのみち相対的な話である。
731730:02/10/11 00:46 ID:???
730は728へのレス。
732名前は開発中のものです。:02/10/11 02:21 ID:???
>725 :名前は開発中のものです。 :02/10/10 20:45 ID:pMa8asNt
>  ID3DXSpriteだと256*256以上の大きさのテクスチャを扱えないからじゃねーの?
>726 :名前は開発中のものです。 :02/10/10 20:50 ID:???
>  そんな制限は無い
>727 :名前は開発中のものです。 :02/10/10 22:57 ID:???
>  >>726
>  あるぞ。
>729 :名前は開発中のものです。 :02/10/11 00:28 ID:???
>  >>727
>  無い
>  サイズの制限はハード依存であってID3DXSpriteそのものの制限とは関係ない
 
このやりとりは不毛だな。まず具体例書いてくれ。
 
 Windows98SE + DirectX8.1(debug runtime)
 GeForce256 (Detonatorドライバ 40.72)
 D3DCAPS8.MaxTextureWidth  = 2048
 D3DCAPS8.MaxTextureHeight = 2048
 
 Windows98SE + DirectX8.1(debug runtime)
 ATI RADEON ALL-IN-WONDER (ドライバ 4.13.01.9039 7.72-020524M-004273C)
 D3DCAPS8.MaxTextureWidth  = 2048
 D3DCAPS8.MaxTextureHeight = 2048
 
上記2つ例ではID3DXSprite固有のテクスチャサイズ制限(256x256)は確認できない。
733名前は開発中のものです。:02/10/11 02:45 ID:???
チュートリアルの5だと多少の変更で実行できるので、とりあえずコード書いて動かしてみたが、
Drawだと左上から256×256の部分が表示されるだけだな。
GeForce2MXだからVoodooのような256×256の制限はない。

確かDirectX7の時にはこの制限がなかったと思うが。


734名前は開発中のものです。:02/10/11 03:43 ID:???
Geforce3(32MB)で512*512テクスチャを試した。問題なく表示された。
ドライバは40.72 Beta
735734(補足):02/10/11 03:44 ID:???
環境はWin2k+DirectX8.1SDK
736734:02/10/11 03:50 ID:???
>>733
2MXで問題が出るってことは結構メジャーな問題ぽいね。
HALドライバ依存の問題はいつも頭痛の種になるから欝。
737名前は開発中のものです。:02/10/12 08:41 ID:???
テクスチャサイズが256x256に制限されるのは、
VooDoo系チップの場合じゃ、ホゲェェェ!!
そういうハード特有の事情を知らんやつが、
Direct3D触るとろくなことがない。
738名前は開発中のものです。:02/10/13 01:22 ID:???
>>737
だからハードウェアの制限とID3DXSpriteの制限を分けろよ(藁
739名前は開発中のものです。:02/10/13 03:02 ID:???
>>737
おまいのまなこたんは、ふしあなさんでつか?
740名前は開発中のものです。:02/10/13 03:30 ID:???
要点は256×256以上のテクスチャサイズを扱えるにも関わらず、
ID3DXSprite・Drawだと256×256以上のテクスチャは使えないだな。


741名前は開発中のものです。:02/10/18 08:11 ID:Zt+yBkdj
>>733
DirectX8.1bのランタイムと
nVidiaの最新ドライバを使ってみたか。
742名前は開発中のものです。:02/10/22 20:32 ID:cC1V2h4q
ゲームで、プログラム以外のファイルからデータを読み出したいのですが、
データを生で置きたくないのです。

他のゲームを見てみたら、結構暗号化(?)されてたりして読めないのがあるのですが、
あれはどうやっているのでしょうか。

セーブデータや環境設定。
jpeg画像。
midやwavファイル。

についてそれぞれ教えてください。
743名前は開発中のものです。:02/10/22 20:33 ID:???
すいません、環境は

VS.NET
C++
DirectX8

です。
744名前は開発中のものです。:02/10/22 20:41 ID:???
どうやるもなにも自分で好きなように変えれば良いだけ
745名前は開発中のものです。:02/10/22 20:43 ID:???
>>742
初心者スレ向けの内容だね。

「普通に読めない」というのは、暗号化(スクランブル)の場合と
圧縮の場合がありますが、それぞれについて。
スクランブルに決まったやり方はありません。
なぜなら、決まった暗号化の手続きがあるのであれば、
決まった複号の手続きで簡単に戻されてしまい、暗号化の意味が無いからです。
ですが、全部1bitローテートするだけで普通に読めなくなるので
簡単なものでも問題なしかと。

圧縮については、辞書圧縮や動的ハフマン法、ランレングス法といった
有名なアルゴリズムがありますのでそういったものを利用する場合が多いようです。
具体的なアルゴリズムは文献を調べるなりネットで調べるなりしてください。
746名前は開発中のものです。:02/10/22 22:57 ID:???
マップの書き方はどういうのがいいのやら
747名前は開発中のものです。:02/10/22 22:58 ID:???
先頭に余分なものを追加するなり1ビットずつ反転するなり好きにするよろし

拡張子だけ変えて実はgifそのもの、なんてのもあったなー。すぐばれるけど。
748名前は開発中のものです。:02/10/22 23:38 ID:???
>>746
どんなマップ?
平面なら二次元配列でいいと思うが。
749名前は開発中のものです。:02/10/23 00:55 ID:XrIoI0Co
逆汗すれば終わりだなー
名かには逆汗ブロックするものもあるけど
750名前は開発中のものです。:02/10/23 01:44 ID:???
>>749
ん? 発想が逆だと思うよ。

「リバースエンジニアリングされたら終わり」じゃなくて、
「リバースエンジニアリングされなきゃ大丈夫」。
平文で読まれなきゃ読める人は大きく限定されるわけだからね。

でも、解析されても、個人製作のソフトにそこまで情熱を傾けてくれるのなら
それはそれで嬉しい気もする。
751名前は開発中のものです。:02/10/23 21:37 ID:rAqnFbe+
ゲーム製作者に質問です。

正直、Vectorにある数多くのフリーゲームで、何割くらい(または、いくつくらい)が
遊べるゲームだと思っていますか?

人によってかなり答えが異なると思いますが、みなさんの意見を聞かせてください。
752名前は開発中のものです。:02/10/23 21:50 ID:???
プログラミングとの関係がないなら雑談スレでやろうよ・・・
753名前は開発中のものです。:02/10/23 23:47 ID:???
754名前は開発中のものです。:02/10/24 16:35 ID:???
>>751
個人的にはゼロ。
ぜんぜん遊べん。
755名前は開発中のものです。:02/10/24 17:51 ID:???
タスクあるいはジョブコンと呼ばれるリアルタイム処理なプログラミング技法上で
再帰処理が必要な思考ルーチンを組まなければならない場合、どうやってますか?
756名前は開発中のものです。:02/10/24 17:57 ID:???
製作中断
757名前は開発中のものです。:02/10/24 19:21 ID:???
>>755
ageないと質問に答えてもらいにくいよ
急いでいないならいいが
758755:02/10/24 19:37 ID:???
>>757
急ぎではないのでマターリ待ちます。
759名前は開発中のものです。:02/10/24 19:44 ID:???
>>755
・マルチスレッド
・再帰処理をタスクシステムへ載る様に組み直す

パッと思いつくのはこれぐらい。
760名前は開発中のものです。:02/10/24 20:59 ID:???
>>754
そんなことはない。少なくともゼロではない。

>>760
必死だな(w
761名前は開発中のものです。:02/10/24 21:41 ID:???
>>760
なんでそんなに必死なの
762名前は開発中のものです。:02/10/24 22:06 ID:???
warata
763名前は開発中のものです。:02/10/24 22:50 ID:???
ワロタ
764名前は開発中のものです。:02/10/25 02:42 ID:???
こんな事で笑っていてはいけません。
もっとおかしい事はたくさんありマンコ。
765755:02/10/25 10:46 ID:???
>>759
2番目の奴の詳細解説キボン。
擬似スタックを作るんだっけ?
766名前は開発中のものです。:02/10/25 11:11 ID:???
おまいらは、そんなにも擬似とつけたいのでつか?
おまいらが、いまよんでいるのは 擬 似 文 字 でつか?
767名前は開発中のものです。:02/10/25 14:59 ID:???
擬似じゃなくて仮想なら無問題?
768名前は開発中のものです。:02/10/25 15:06 ID:???
いまここにある文字は
おまいらにとっては 仮 想 文 字 なんでつね?
769名前は開発中のものです。:02/10/25 16:06 ID:???
ごめん、virtualにしといて
770755:02/10/25 16:07 ID:???
仮性ホーケーは黙ってて欲しいな >768
771759:02/10/25 17:17 ID:???
>>765
そういうことです。配列にスタックを作って自前で管理し、ローカル変数を
そのスタック上に置きます。
再帰を単純なループに開いた上、タスクシステム上でまわす事になります。
772名前は開発中のものです。:02/10/25 20:04 ID:???
DirectXフルスクリーン@C言語で、
ユーザーからの入力文字(漢字変換とかもアリ)をげっちゅーするには
やっぱりInputBoxのAPIしかないのでしょうか?
773名前は開発中のものです。:02/10/26 01:01 ID:vJSal2rR
XindowsXP HomeEditionを使っているのですが、
自分のプログラムを実行するごとに重くなっていきます。
プロセス自体はちゃんと終了しています。

windowsって、プログラム終了時にメモリの解放って行ってくれないんですか?
まぁ、自分がメモリリークをつぶさなければいけないのですが。

特に、大き目の画像を扱った後にそのような現象がおきるみたいです。
どうなんでしょう。
774名前は開発中のものです。:02/10/26 01:14 ID:???
>>773
タスクマネージャに該当プロセスがないことは確認したかい?
775名前は開発中のものです。:02/10/26 01:14 ID:???
はい、確認しました。
776名前は開発中のものです。:02/10/26 01:28 ID:???
解放は自動的に行われることになってるし、XPはNT系だからさらに安全なはず。
ただしこれはドライバが正常に動作していればの話。
ディスプレイドライバを更新するとかしてみれば?
777名前は開発中のものです。:02/10/26 01:46 ID:???
メモリ確保して開放せずに終了したら駄目じゃん。
778名前は開発中のものです。:02/10/26 02:48 ID:???
>>777
プロセス終了時のメモリ解放は
OSの管轄ですが何か?

メモリリークが問題になるのは
長時間常駐するプロセスだけ
779名前は開発中のものです。:02/10/26 02:55 ID:???
不正な処理で終了した場合も開放してくれる?
780名前は開発中のものです。:02/10/26 03:54 ID:???
>>779
まさか、しないと思ってるのか?
781名前は開発中のものです。:02/10/26 04:37 ID:???
Win95のころはひどかったな。
一応OSが開放してくれるハズだが、
それを過度に期待したプログラムを組むのは避けた方が無難。
782名前は開発中のものです。:02/10/26 04:44 ID:???
関係ないけど、windowsでプログラム書くんだったら
確保したメモリは必ず自分で解放しなくちゃダメだよ。
OSを信用する方が悪い。
783名前は開発中のものです。:02/10/26 07:46 ID:???
OSが開放してくれるとしても、それはあくまでも開放ミスに対する
救済措置と思ったほうがいい。確保したメモリは必ず開放するのが鉄則。
784名前は開発中のものです。:02/10/26 10:14 ID:???
またmalloc&freeネタか・・・飽きないねえ
785名前は開発中のものです。:02/10/26 12:43 ID:???
>>783
> OSが開放してくれるとしても、それはあくまでも開放ミスに対する
> 救済措置と思ったほうがいい
そりゃ違うだろ。

そもそも仮想記憶を使ってる OS の場合、ページテーブルやら TLB (*1) やら
は OS 以外は触れない。そこにバグがあると疑い始めたら、もはやアプリケー
ション側でとれる対策は何もないよ。

(*1)
IA-32 だと TLB はソフトウェアからいじる必要はない(ページテーブルをハード
が勝手にコピーしてくれる)けど、MIPS などは TLB ミスが起きると例外を発生
して、OS が自前で埋める必要がある。
786名前は開発中のものです。:02/10/26 14:26 ID:???
どんな環境でも開放しなかったメモリの後始末をしてくれる
という保証は無いからメモリリークするようなプログラムは
そもそも欠陥品と見ていい。だから開放しないと駄目。
それにOSが開放しなかったからといって、それはOSの
過失ではない。プログラム作った奴が悪い。
787名前は開発中のものです。:02/10/26 14:35 ID:???
786でまとまりました。

では次の話題。
788名前は開発中のものです。:02/10/26 15:24 ID:???
実験に使いたいのですがOSがリソースを開放できない終了方法を教えてください
いくらやってもけしからんことに勝手に開放されてしまいます
789名前は開発中のものです。:02/10/26 16:18 ID:???
>>788
Win98でRPCだか何だかを使うと起こりやすいそうだ
使ったことないけど
790名前は開発中のものです。:02/10/26 16:22 ID:???
>>788
DOS環境とかゲーム専用機等ならたぶん開放しないのでは。
791名前は開発中のものです。:02/10/26 22:41 ID:???
>>745
アルゴリズムが公開されている暗号もある。

>>755
タスクと再帰処理がなぜ両立できないのか分からん。

>>788
何の実験に使うのか知らんが。
ファイルや共有メモリ等、OSが勝手に解放することがないリソースは存在する。
存分に使え。
792名前は開発中のものです。:02/10/27 01:11 ID:???
>>786
そもそも「どんな環境でも」なんて言い出したら、それこそ malloc/free がない
世界とか、あっても C 言語の規格書に従ってない環境まで出てくるから、議論
にならんよ。

規格書を行間まで読めば、C 言語の hosted environment を前提とする限り
malloc したメモリは OS に解放されるはず、が結論。

だいたいヒープの仕組みとか仮想記憶の仕組みを知っていれば、そんなに
ビクビクする必要はないと思うんだが。解放されないって、実際にどんな環境
を想定してるんだ?

(スタイルとして解放する方が良いかは別問題な)
793名前は開発中のものです。:02/10/27 01:28 ID:???
つーか、解放しないと再利用できないじゃん?
こまめに解放してメモリを開けたほうがいいと思うんだが。
794名前は開発中のものです。:02/10/27 01:52 ID:xQ8SKzdu
PS2のアルファブレンド設定を
DirectXでもやりたいのですが、 そういうことはできないのでしょうか?
たしか こんな計算式
 C = (A+B)>>7+D

   A: と B:
   ソースのカラーか フレームバッファのカラー
   
   D: ソースかフレームのアルファ値


795名前は開発中のものです。:02/10/27 03:45 ID:???
>>794
IDirect3DDevice8::SetTextureStageState( )
796名前は開発中のものです。:02/10/27 05:52 ID:???
>>793
ところが大抵の処理系では
freeは解放済みフラグが立つだけで
実際に解放されるのはプロセス終了時なんだな・・・
797名前は開発中のものです。:02/10/27 06:27 ID:???
JAVAなんかはガベッジコレクションを行ってくれるけどね。
798名前は開発中のものです。:02/10/27 09:49 ID:???
>>796
それじゃfree自体存在意義ねーじゃん
799名前は開発中のものです。:02/10/27 10:25 ID:???
>>798
けど同じプロセスが再び○allocするときは
その解放済みの領域からメモリ確保するので
あながち無意味とも言えない
800名前は開発中のものです。:02/10/27 10:53 ID:???
>>798
一種のキャッシュだよ。まっとーなメモリ保護のある環境下で OS を呼び出して
メモリを割り当ててもらうのは

  ソフトウェア割り込みによる特権モード変更
  割り込みハンドラでのレジスタの待避などの定型処理
  (ここで OS のメモリ割り当て関係のコードに入って)
  各種制限のチェック(たとえばユーザあたりのメモリ割り当て越えてないか、
  とか)
  仮想記憶のページテーブル、TLB の変更
  OS の持つ仮想記憶レイヤーにおけるページエントリの変更

と、いろいろ手間がかかる。ユーザ空間で完結できれば、それに越したことはな
い。

このあたりは使ってるライブラリによっても変わってくるけど、昔の UNIX だと
一度 malloc したら二度と OS には返さないのが一般的で、最近でも条件 (*1)
が揃わない限りはまず返さない。

本当に OS からメモリを短時間・大量に借りたいなら malloc/free なんか使っ
ちゃダメです。mmap() とか VirtualAlloc() とか使いましょう。

(*1)
ヒープの端っこが free() されるとか、ページ単位で連続した空間が free される
とか。この条件を緩くして OS 側に返すチャンスを増やそうとすればするほど、
malloc/free が内部で管理・チェックするデータが増え、割り当て・解放に掛か
る時間もメモリ消費も大きくなるというトレードオフがある。

たとえば Solaris だと libc, libmalloc, libmapalloc あたりに実装が異なる
malloc/free がいくつかあるから、ソースを眺めながら処理速度を比べてみると
勉強になるよ。
801名前は開発中のものです。:02/10/27 11:02 ID:???
検索で調べてみたが、実際メモリリークは問題になって
るからメモリ開放しないプログラムを書くのは良くないと思う。
802名前は開発中のものです。:02/10/27 17:34 ID:PvYfeL9I
>>800
Win32の場合、mallocもVirtualAlloc呼び出してんじゃないの?
同様に、freeはVirtualFreeって感じで。
メモリマップはこれらとは違うだろうけど。
思い切り勘違いなら、ごめんな。
803名前は開発中のものです。:02/10/27 17:36 ID:???
>Win32の場合、mallocもVirtualAlloc呼び出してんじゃないの?
Win32じゃなくてCのランタイムライブラリの実装次第

>思い切り勘違いなら、ごめんな。
あやまるくらいなら最初からいい加減なことは書くな
804名前は開発中のものです。:02/10/27 17:49 ID:???
>>802
malloc() したら毎回 VirutalAlloc(), free() したら毎回 VirtualFree() してると
思ってる? んなこたないって。ソース読めば明白なんだが、msvcrt.dll だと

1. VirutalAlloc() 系ではなく一つ抽象度が高いHeapAlloc() 系を使っていて、
 こいつがユーザ空間でいろいろメンテナンスしていてる。
2. それに加え C Runtime Library 内部でも、小規模なメモリ割り当てに関して
 毎回 HeapAlloc(), HeapFree() を呼ばないで良いようにキャッシュしている。

と、OS 直のメモリインターフェースから 2 枚の皮をかぶせてある。
805名前は開発中のものです。:02/10/27 17:57 ID:???
あと OS が提供するメモリ割り当てのインターフェースは、基本的にページ単位
でしかメモリを割り当ててくれない。VM とか CPU アーキテクチャによるんだが、
たいてい 1 ページは 8192 バイト前後。

だから小さなメモリブロックを割り当てるときに毎回 OS を呼んでるとムダに
なるメモリも莫大になるんで、

 でっかいメモリブロックを OS からもらってきて
 そいつを小さく切り刻んだ上で malloc 呼び出してきた側に返す

っつー仕組みにしてる面もある。

(あと昔の OS だと、そもそもメモリブロックを割り当てるような API を提供
してなかったりな。brk() とか sbrk() で検索してみ)
806名前は開発中のものです。:02/10/27 18:15 ID:???
メ モ リ リ ー ク が イ ヤ な ら
 J a v a で も つ か っ て い ろ 
807名前は開発中のものです。:02/10/27 19:01 ID:???
>>804
2. はたしか廃止されたような気がする
今手元にないのでわからんが、どっかで見た
808名前は開発中のものです。:02/10/27 23:24 ID:???
802だけどよ

malloc=VirtualAlloc呼び出しで解決されてるんじゃないか、
と思ったんで、質問の意味もあって書いてみたんだが。

それをいい加減とか決め付けてる>>803氏んどくように。

あと、HeapAllocは既に廃止されてるはず(MSDN libに載ってたと思う)
今のWin32では、HeapAllocは内部でVirtualAllocを呼び出してるんじゃなかったかな。
809名前は開発中のものです。:02/10/27 23:34 ID:???
いろんなmallocの実装を紹介するスレはここですか?
810名前は開発中のものです。:02/10/27 23:47 ID:???
>>808
HeapAlloc が内部で VirtualAlloc を呼び出してるのは確かだが、単なる
ラッパじゃない。内部で色々処理をしてる。

それと廃止されたのは GlobalAlloc(), LocalAlloc() だろうが。嘘八百を
並べるなよ……。
811名前は開発中のものです。:02/10/28 01:58 ID:???
>>810
訂正さんくす。

HeapAllocが廃止されたってのは、勘違いだったよ。
廃止されたのはGlobalAlloc/Freeで、HeapAlloc/FreeはVirtualAllocで
確保したメモリをヒープ構造で管理してるってことなのね。
Win32APIで開発する時は、たいていHeapAllocと同じことを自前でしてるせいで、
よく知りませんですた。

ご指摘さんくす、と同時に、嘘八百とか書くなよ、ぼけ。
812名前は開発中のものです。:02/10/28 02:03 ID:???
それじゃ今後は同様の事態を表現するときは嘘七百五十くらいで。
813名前は開発中のものです。:02/10/28 03:11 ID:???
>>811
> HeapAlloc/FreeはVirtualAllocで
> 確保したメモリをヒープ構造で管理してるってことなのね。
全然違うぞ…。なんでそこでヒープ構造が出てくる?
814名前は開発中のものです。:02/10/28 09:40 ID:???
>>802,808,811
いいかげん。うそはっぱく。よくしらないのにしったかぶり。
晒しsage
815名前は開発中のものです。:02/10/28 11:02 ID:???
>>806
JavaやC#がメモリリークないと思ってるヤツ発見
http://www-6.ibm.com/jp/developerworks/java/010824/j_j-leaks.html
816名前は開発中のものです。:02/10/28 11:57 ID:???
うーん、微妙に話題ズレてない?
>799も言うとおり、解放済みマークのついた領域は再利用される。
(そのためのfreeだろ?)
だから、mallocにラッパーが掛かってようが掛かってまいが、
>793が原則として正しいということでいいんでないの?
817名前は開発中のものです。:02/10/28 12:05 ID:???
確保したら必ず開放しなくてはいけないと思ってたほうが無難だよ。
そのほうが余計なトラブルの心配しなくて済むじゃん。
818名前は開発中のものです。:02/10/28 20:30 ID:???
>>817
俺は

free(p);
free(p);

とかやって、メモリ領域壊したことがある。実際にはこんな簡単なコードじゃ
なくて、サイクルのある複雑なデータ構造で、遠く離れた関数で実行されて
たんだが。

結局、そのデータ構造扱う部分は「でっかくメモリを取って中で使い回し、
使い終わったら丸ごと free する」っつー方針で書き換えました。
819名前は開発中のものです。:02/10/28 20:38 ID:???
普通、

free(p);
p=NULL;

ってしない?
820名前は開発中のものです。:02/10/28 20:49 ID:???
>>819
しない。そもそも p に相当するものが関数の引数として渡ってくる場合には、
それって無理だし。

free_something(void* p)
{
  free(p);
  p = NULL;
}

func()
{
 free_something(p);
 // p は相変わらず NULL じゃない
}

これは極端な例だけど。あとサイクルがあるデータ構造だと、解体する順番
やタイミングが非常に難しい。コンパイラを書くときに良く出てくる DAG 程度
のデータ構造でも、気を付けないとすぐ二重 free しちゃうよ。
821名前は開発中のものです。:02/10/28 21:14 ID:???
ttp://isweb43.infoseek.co.jp/art/yn515/game.gif
こういった感じのゲームを作ろうと試みています。
フィールド上をクリックすると、キャラがそこへ歩いて行くような。
ですが、障害物なんかを遠回りして避けていくようにするにはどうすれば
いいのか見当もつきません。どうしても凹んでいるところでつっかかってしまいます。
皆様のお知恵をお貸しください。おながいします。
ちなみに言語はHSPです。
822名前は開発中のものです。:02/10/28 22:37 ID:???
>>821
絶対に答えが出るアルゴリズムだと A* とかかねぇ。
823821:02/10/28 22:50 ID:???
>822
検索してみましたが、適当なところが見つかりませんでした。
A*とはなんでしょうか?
824名前は開発中のものです。:02/10/28 23:11 ID:Y1mIhqb7
クォータビューのマップで当たりをとりたいんですけど
高速なやり方ってあります?
内部的にはトップビューというのではなく、
クォータビューそのままでマップとキャラの菱形の当たりをとりたいのですけど…。
動作環境はへちょいので浮動小数点とか線分の交点などを求めないような軽いのを考えているのですが。
825名前は開発中のものです。:02/10/28 23:30 ID:???
その当たり判定で何をやりたいかによると思うんだが
826名前は開発中のものです。:02/10/28 23:47 ID:???
>>821
とりあえず障害物で行き詰まったら、障害物の表面に沿って
目標に到達できそうな位置まで移動してみるというのはどうか。
827824:02/10/28 23:51 ID:Y1mIhqb7
>>825
クォータビューのマップを主人公が歩くとき、マップと当たりをとりたいのです。
高さがない似非クォータビューなので、それほど苦労しまい、と思っていたら
あまり芳しい結果になりませんでして。
マップが歩けるような当たりなので、常時判定するという方向性で軽くしたい、とそういうことなのです。
828821:02/10/28 23:55 ID:???
>>826
その障害物が岩とかだったら、どっち側に避けても目的地までいけるんですが、
___ ____■=キャラ ○=クリックした場所
  / \
■ |  |○
  \_/

この場合、上を周って行こうとすると当然ひっかかっていけませんが
下を通って避ければ目的地までいけますよね。
こういう風にケースバイケースでどっち側に避けるかどうやって
判断させればいいのかがわからないんです。
わかりにくかったらスミマセン…
829821:02/10/28 23:58 ID:???
ずれちゃった…なんとかわかってください(汗 <図
つまり、出っ張った障害物なんかをちゃんと
キャラが通れるコースを歩いてくれるようにしたいのです
830名前は開発中のものです。:02/10/29 00:00 ID:???
>>824
1)床だけの画像を描画する
2)キャラの足元付近のドットの有無で判定する
3)マップの残りとキャラを上書き描画する
831名前は開発中のものです。:02/10/29 00:05 ID:???
>>828
ひっかかったら辿りかたを反転させれば?
832824:02/10/29 00:24 ID:UKOhyL2z
>>830
ワンダーウィッチなのでそうもいかないのですよ…。すみません。
833821:02/10/29 00:28 ID:???
>>831
やはりそれしかないですかねぇ…(汗
下手したら明らかに違う方向へ歩いていって、引っかかったら
今気付いたように遠回りをする…なんかスマートじゃなくないですか(・-・;;
834名前は開発中のものです。:02/10/29 00:32 ID:???
>>833
それじゃ内部的に表示より先行して動かしておいて、未来の自分が
引き返してきたらその場で反転するようにすれば多少マシになるのでは。
835821:02/10/29 00:34 ID:???
あーなるほどぉ…それもそうですね
どうもありがとうございます。試してみます。(_ _
836名前は開発中のものです。:02/10/29 01:11 ID:???
>>824
マップの床が碁盤の目のようになっていて、床の升目が全て同じ大きさ
同じ形であるなら、床の升目と全く同じ形状のイメージデータを配列
などで用意して、升目の座標と判定点の座標からイメージ内に対応する
座標を求め、その座標の点がセット状態であれば当たりとする。
837名前は開発中のものです。:02/10/29 01:19 ID:???
>>828
一番いいのは、袋小路にならないマップを作ることですが。

そうもいかない、というなのなら、下の図みたいにマップを
大きなブロック(エリア)に分けてやるとか。
(いつかこの板で公開された進路探索方法)

A1 A2 A3
___  ____
  /  \
■ |B2 |○
B1 \_/ B3

C1 C2 C3

 B1 → C1 → C2 → C3 → B3
838837:02/10/29 01:21 ID:???
うわー、直したはずが大きくずれた。 すまん。
839名前は開発中のものです。:02/10/29 02:19 ID:???
>>821
1:現在位置から目的地までの直線を引く

2:その直線が障害物と交差していたら交差した点から
移動できる方向へ直線を引いてみる(左右どちらにも行けるならどちらも)

3:枝分かれした線分はできるかぎり目的地へ向かうように折り曲げていく

4:現在の走査位置と目的地とを結ぶ直線が
走査線の角度と同じになったら1へ戻る

N:先に目的地にたどり着いた方が正解ルート

折れ曲がった位置と角度を配列に保存しておけば
それをトレースするだけ

計算中も枝分かれする直前までの移動をしていけば
迷路にでも迷い込まない限りそれほど時間はかからない
840名前は開発中のものです。:02/10/29 02:20 ID:???
図解するとこう
____________
       /_,,. \-─●目的地
☆-─''''''''│~    │
     ↑\__/
     交差点

____________
        /_,,. \-─●目的地
☆-─'''''''|.│~    │
      iヽ\__/
      :  \    できるだけ目的地の方向へ
      :   \→

____________
        /_,,. \-─●目的地
☆-─'''''''|.│~    │  /
      iヽ\__/ /
      :  \__/
841名前は開発中のものです。:02/10/29 06:41 ID:???
>820
解放したポインタにNULL代入するのは作法でしょう。
どうしてもめんどうなら、ちょっと気持ち悪いけど
free_something (void **p) {
free(*p);
*p=NULL;
}
func() {
free_something(&p);
//p=NULL
}
でいいのでは。
というか、そういうところで面倒くさがる人はC++を使うべきでは。
842名前は開発中のものです。:02/10/29 07:51 ID:???
なんでややこしい方へ向かうかなぁ…

_______■=キャラ ○=クリックした場所
  / \
■|   |○
  \_/
    A


ひっかかりそうなところにはポインタを作っておく。
■から○へ行く時、間にポインタがあれば
まずそこへ向かうようにする。

      ■
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|  A             |
|                |
|________|
      ○

ポインタの捜索範囲はキャラ→クリック間の長方形。

以上!
843821:02/10/29 07:52 ID:???
ttp://isweb43.infoseek.co.jp/art/yn515/game2.gif
例えば、こういう場面でカーソルのあるところをクリックすると
池の周りを遠回りして歩いていきます。
ですが、このゲームのすごいところはカクカクした動きじゃなくて
ちゃんと池の形にぴったり沿って歩いていくということです。

もしよろしければ、実際にやってみていただけませんでしょうか?
見たほうが早いと思いますので…
isweb43.infoseek.co.jp/art/yn515/kyran.zip
pc9801です。
844名前は開発中のものです。:02/10/29 09:31 ID:???
障害物のまわりにガイドラインのような情報をもたせて、
それに沿って移動するようにすれば?
845名前は開発中のものです。:02/10/29 11:30 ID:???
今まで考えもしなかった方法がいろいろ出てくるんでおもろい。
846名前は開発中のものです。:02/10/29 12:45 ID:???
      ________
      |\_______\
      | │ ___________ |
      | │|タマちゃん失踪?|│
      | │| ,,,,,,,,   ,,,,,,,,,、 |│
      | │l (゚∀゚) ,jj゚ー゚jjj |│
      | │|l´ lyl`l l´ : `i |│
      | │` ̄ ̄ ̄ ̄ ̄ ̄ |
      │ | l ̄ ̄ ̄:l: ̄ ̄ ̄l |
       \| l___:l:___l |
         ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         __________
        ||\             \
        ||\\      まずかったかな・・・
        ||  \\     ────y────
               \\ ____ ∧ ∧∧__\     ゚ 。     .゚   チャプ
                \||______ (゚ ≡;゚Д)_____||    ,. -‐/⌒ヽ ─- 、  チャプ
                  ||     |  ヽ.    ||   (〜ミ(ω・`  \〜 ,)
                  ||     ヽ___)   ||   | ` ー‐-ミU -─‐'´ |
                        \      ヽ、..,,_    _,,.ノ
                                     ̄ ̄
847 :02/10/29 13:09 ID:???
>>821
ttp://www.campus.ne.jp/~ishigami/CREATION/MAKING/index.html

を読むと多少はイメージできるかも。

2次元配列でマップを管理しているのなら,再帰関数っていうのを使って
考えていくんだけど(うまく言ったときのうれしさといったら・・・),
他の方法で管理しているとなると,上で書いているような方法しかないかな。
2次元配列を用意して,障害物のある座標に1とか入れて,再帰関数を使えばいいとは思うけど。
848 :02/10/29 13:10 ID:???
>>846
まずいと思う。
こっそりかえしてきな。
849755:02/10/29 13:58 ID:???
>>771
759さん、ありがd。
これをヒントにがんばってみます。

>>791
ターゲット&要件によっては両立できない場合もあるんでつよ。(つД`)
850名前は開発中のものです。:02/10/29 20:23 ID:???
>>823
"A star algorithm" で再検索。
851名前は開発中のものです。:02/10/29 20:32 ID:???
852名前は開発中のものです。:02/10/29 20:44 ID:???
>>841
> 解放したポインタにNULL代入するのは作法でしょう。
気休めに過ぎない作法なんか、やめとけよ……。

だいたい複数のポインタが同一の領域を指している環境では、そんな手は
使えないし。

> どうしてもめんどうなら
その程度の「手間」で済むのは free_something() なんてオモチャみたいな
コードだから。現実に面倒なデータ構造を操作するコードだと、そんな単純
にはいかんよ。

特にデータ構造が複雑な場合には、そのデータを辿るのがクリティカルパス
になるケースが多い(逆にクリティカルじゃなければ、そんな頑張って面倒
なデータ構造をメンテナンスなんかしないで、単純配列を全部検索、とかで
済ませられる)。

そこで「すべての要素に pointer の pointer を持たせて、二回 dereference
しましょう」ってのはかなり厳しいよ。

> というか、そういうところで面倒くさがる人はC++を使うべきでは。
全部 boost::shared_ptr にするとか? それは性能上の問題に加えて、解放の
タイミングを計るのが難しくなる(解放したつもりが、余計なところで shared_ptr
が一つ生きてた、とか)という問題がある。

もちろん「ここで最後の筈」ってことで assert() 入れてチェックすることはでき
るんだが、assert() に引っかかったときに

 じゃあ、いったいどこで参照が残ってるんだ?

っつーのは、やっぱり探すのが大変だよ。
853名前は開発中のものです。:02/10/30 00:06 ID:???
>>852
>そこで「すべての要素に pointer の pointer を持たせて、二回 dereference
>しましょう」ってのはかなり厳しいよ。

PalmOSの開発環境では、ヒープメモリを確保するときにポインタのポインタしかくれない
(OS側でガベコレするため)のだけど、それでもなんとかなっているのは興味深い。
ポインタのポインタで生きていくための知恵が、Palm界では蓄積されてるのかもね。
854名前は開発中のものです。:02/10/30 00:13 ID:???
>>853
それはコンパクションしたいからだろう。Win16 のグローバルヒープとか、昔の
MacOS とかもお仲間。

まっとーな MMU が使えない環境でもメモリの断片化が防げる代わりに、デ
バッグと処理速度に悪影響が出る。智恵というか、血と汗が蓄積されてると
思われ。

(俺も Win16 時代には泣いた覚えが)
855名前は開発中のものです。:02/10/30 00:33 ID:???
>852
俺の場合、free後NULL代入してないだけで怒られたもんだが……。
二重ポインタっても、C言語に参照がないから代用してるだけだ。
参照で実装してもいいかもね。値渡しでfreeする関数に渡した
つもりのfree後のポインタが実は参照渡しで暗黙でNULLに
書き換わっていたとして、なんら問題あるまい?
むしろ、解放後のポインタにアクセスするという潜在的バグをつぶせる。
856名前は開発中のものです。:02/10/30 00:49 ID:???
>>855
> 参照で実装してもいいかもね
C++ の参照のことを言ってるなら、初期化のタイミングの制約がキツいから、
完全にポインタの代用にはならんよ。

ポインタの実体を一つにして、常にポインタのポインタを使え主義が破綻す
るのは、「そのポインタの実体を解放してしまったら、やっぱり不正なメモリ
アクセスが検出できない」っつートコロなんだよな。そのための細工を積み
重ねると、結局 GC 実装した方が確実って話になる。
857名前は開発中のものです。:02/10/30 01:01 ID:???
>856
いや、freeに一個ラッパーを掛けて、そこへ渡すポインタを
参照渡しにして関数内でNULLを代入しようってだけのことね。
実際はメモリをマネジメントするクラスなり関数郡なり作って
GCをそこで実装したほうがいい、っていうのにはもちろん同意。
858名前は開発中のものです。:02/10/30 01:49 ID:???
>>857
> いや、freeに一個ラッパーを掛けて、そこへ渡すポインタを
> 参照渡しにして関数内でNULLを代入しようってだけのことね。
それでは不正なメモリアクセスの問題は解決しないんだけど。実例が
想像つかない?
859名前は開発中のものです。:02/10/30 02:18 ID:???
>858
もともと不正なメモリアクセスは別問題。それは単にバグ。
>818を読む限り、単に解放済みポインタとそうでないポインタで
条件分けしたくないだけなら、NULLを代入すればいい。
NULLは解放済みを示すマークで、free(NULL)が素通りという
仕様はそのためにある。

ループのある枝分かれリストみたいのを解放するケースを
考えてるんだろうけど、そこまで来ると各ノードを直接freeで
解放しにいくのは無理でしょう。削除マーク付けといて、
後でGCで一括解放するしかない。
860名前は開発中のものです。:02/10/30 07:39 ID:???
正直、メモリ管理は人間がやるべき仕事ではないような気がしますた。
生産性低くなる原因の一端。
861名前は開発中のものです。:02/10/30 08:46 ID:???
しかし明示的に開放する機能が無いとメモリが無駄になり、下手すると
足りなくなる罠。メモリ確保の機能がある限り人間が管理するしかない。
862名前は開発中のものです。:02/10/30 09:22 ID:???
2重開放はエラー出たりしてすぐ発見できるからあまり問題にならない
ような気がする。メモリリークは表面化しにくいから厄介なバグになるが。
863846:02/10/30 12:54 ID:???
素通り・・・
864名前は開発中のものです。:02/10/30 20:43 ID:???
>>862
> 2重開放はエラー出たりしてすぐ発見できるからあまり問題にならない
そうでもない。

メモリ関係の問題はどれもそうなんだが、問題が出たときと原因が遙か彼方に
隔たってることが多い (二重 free なら一回目の free はどこで行ったんだ?)
から、原因を突き止めるのは大変だよ。特に微妙な条件でのみ発生するとか、
マルチスレッドや DMA が絡むと死ねる。

>>859
818 はそもそも「free() しなくても良いやん」つー例のような気がする。その
メモリ領域をプロセス内で再利用するなら free すべきだけど、コンパイラ
の型システムの情報なんかは、

 コンパイルが終わった時点でプロセス終了させるから、ちまちま free せずに
 投げ捨てろ

っつー情報だよな。

そこで労力をかけて free() したところで、

1. コンパイラのプロセスが終了するのを遅らせる
2. キャッシュを汚す
3. あまつさえ二重 free() なんてバグを埋め込んで SIGSEGV を食らった日には、
 ただのバカ

だろう。
865名前は開発中のものです。:02/10/31 00:04 ID:???
>864
一回目のfreeは、無効なデータを解放するつもりでやってるんだろ?
それを問題が起こらないようにとただ消してしまうのは、
無効なデータへの不正なアクセスを隠してしまうだけだと思うが。
NULLポインタで明示的エラーを出させたほうが、安全。
落ちないバグの原因探すほうがよっぽどやっかいだろう。

こまめな解放はいらないとしても、一応プロセスの最後には明示的に
解放してやるべきだと思うが。
VC++だと、メモリリークが大量に警告されてうっとおしくない?
866名前は開発中のものです。:02/10/31 00:17 ID:???
boost::shared_ptrとSTLのコンテナを使えばいいのに...
867名前は開発中のものです。:02/10/31 09:37 ID:???
C#を使え
868名前は開発中のものです。:02/10/31 16:06 ID:???
ません
869名前は開発中のものです。:02/10/31 18:22 ID:???
か?
870名前は開発中のものです。:02/10/31 19:45 ID:???
チョトマテ!

ココハ、
ゲームプログラミング相談室
デツヨ!
871名前は開発中のものです。:02/10/31 20:02 ID:???
>>865
状況によるだろう。アセンブラのラベル情報とか 864 が言ってるようなコンパイラ
の型情報とかは、free したところで直後にプロセスが終了するのが目に見えてる
ので、free せずに終わらせるのもアリだ。

そこで free しても単なる自己満足。ユーザにとっては、むしろ邪魔なだけ。
872名前は開発中のものです。:02/11/01 00:07 ID:???
>871
ちょいまち、ユーザの「邪魔」って、具体的にはなんのことだ?
ユーザには関係ない、というのなら分かるんだが。

あとでメンテナンスする人のこと考えたらメモリリークつぶすくらいは
常識だと思うがな。大量の警告メッセージに埋もれて、つぶすべき
メモリリークが見えにくくなる。
873名前は開発中のものです。:02/11/01 00:32 ID:???
>>872
> ちょいまち、ユーザの「邪魔」って、具体的にはなんのことだ?
キャッシュを汚すわ、終了に(本来不要なはずの)余計な時間を食うわ、
開発コストは上がるわ。

> あとでメンテナンスする人のこと考えたらメモリリークつぶすくらいは
> 常識だと思うがな。
プロセスの寿命とデータの寿命が一致してる場合にはメモリリークとは言わん
だろ。メモリリークというのはその名の通り「漏れ」であって、使えないメモリ領
域が増えることを指すわけで。

> 大量の警告メッセージに埋もれて
_CrtSetDbgFlag() なんかが実装してる「終了時に free してないメモリ領域の
一覧を表示する」機能のこと? あれはそれなりに便利だが、万能じゃない。

(っつか BoundsCheker 使え)
874名前は開発中のものです。:02/11/01 00:44 ID:???
>873
OSに暗黙的に解放してもらったって時間は掛かるだろ。
開発コストったって、ただメモリ確保に一枚ラッパーかませて
最悪の場合でも終了処理で明示的に解放されるように作るだけだろ。

その「万能じゃない」機能をさらに使いにくくしてどうするのだ。
俺は引き継いだソースがメモリリーク放置していたら、
ちょっとウンザリするがな。
875名前は開発中のものです。:02/11/01 00:54 ID:26Va0gRH
この流れに便乗して質問させてください。

VC++でシューティングゲームを作っているのですが、敵や弾をたくさん表示させては
消すために、メモリをnew、deleteしまくっているのです。
ところが、実行しているとすぐに重くなってしまいます。

メモリリークに関しては、デバッグモードで
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF)
を呼び出して確認したのですが、一つもありませんでした。

これって、ちゃんと解放していても、メモリの確保が原因で重くなることってあるのですか?
ちなみに、表示させたオブジェクト(newしたインスタンス)の数に比例して
重くなっていくことは確認しました。
876名前は開発中のものです。:02/11/01 01:02 ID:???
>>875
> 表示させたオブジェクト(newしたインスタンス)の数に比例して
それって、ふつうに処理量が増えてるんじゃないの?
877名前は開発中のものです。:02/11/01 01:23 ID:???
>>875
敵や弾の画面表示だけしない場合も重くなるか?
878名前は開発中のものです。:02/11/01 01:24 ID:???
> OSに暗黙的に解放してもらったって時間は掛かるだろ。

いわゆるunixあるいはwin32ならばかかりまへん
879名前は開発中のものです。:02/11/01 01:28 ID:???
>>876
いえ、そういうのではありません。
キューに、敵だの弾だの詰め込んで、敵をやっつけ(deleteし)ます。
その後しばらく敵を出さなければ、キューがちゃんと空になっていることも
確認しました。
そして、その後また同じように敵を出して…と繰り返すと、だんだん重くなっていくのです。
プログラムを終了したときなんか、数秒フリーズしたように止まります。

>>877
画面表示をしないでやってみましたが、変わりませんでした。
880名前は開発中のものです。:02/11/01 01:34 ID:???
>>875
たぶんソース見ないと原因は分からない。
881名前は開発中のものです。:02/11/01 01:39 ID:???
>873はVBかJavaでもやってろってこった(藁
882名前は開発中のものです。:02/11/01 01:39 ID:???
>>879
HDDにスワップしているから遅くなっているとかそういうのは?
883名前は開発中のものです。:02/11/01 01:44 ID:???
メモリを解放しているから、メモリが足りなくなることはない
→スワップはしない。

って考えるのは間違ってますか?
スワップしてる気配はないのですが…
884名前は開発中のものです。:02/11/01 01:47 ID:???
>>879
1個1個new/deleteせずに、最初に一定数一括確保して使い回すように
してみて、軽くなるようならnew/deleteで重くなっていると見る。
885名前は開発中のものです。:02/11/01 01:53 ID:???
>>875
profilingしてみりゃいいだけじゃん?
886名前は開発中のものです。:02/11/01 01:53 ID:???
ありがとうございました。わかりました、やってみます。

ところで、new/deleteで重くなるとしたら、どうしてなんでしょう。
deleteする瞬間に重くなるなら分かるけど、後々にも響くってのは
理解できませんよね。
887名前は開発中のものです。:02/11/01 02:02 ID:???
あまりにも頻繁に確保・開放を繰り返すと、それを管理する
ほうも大変なんじゃないの。確保・開放を繰り返すと割り当てた
メモリが断片化するよね。そんな状態で効率よく領域を割り当てる
ようにするにはどうすればいいんだろうね。
888名前は開発中のものです。:02/11/01 02:03 ID:???
>>874
> OSに暗黙的に解放してもらったって時間は掛かるだろ。
free() のソースを読んで、どういう処理をしているのか調べてみ。OS の
方の処理とはまた別に、いろいろやってるから。
889名前は開発中のものです。:02/11/01 02:07 ID:???
>>887
仮想記憶を採用している環境なら、気にしないのが正解だと思う。スワップは
喰うかもしれんが、実メモリの断片化はページングにお任せってことで。

仮想記憶がない環境だと、最初にメモリのレイアウトを決めてしまって、固定
長のメモリブロックを割りあてるのが常套手段。
890名前は開発中のものです。:02/11/01 02:17 ID:???
>888
それが問題になるほど大きな処理なのか?
もしそうなのだとしたら、最初にどんとメモリ取って、
それを小分けにして使って、最後にどんと解放したら
いいじゃないか。だったら一回で済む。
891名前は開発中のものです。:02/11/01 02:34 ID:???
>>890
そこまでして、わざわざヒープの解放に拘る意味があるのか?
だいたい使ったメモリ全部解放しろっつーなら、スタックやテキスト
はどうするんだか。
892名前は開発中のものです。:02/11/01 02:38 ID:???
そこまでって言うほどの手間じゃねえだろ、と言っている。
最後にしか解放しないと割り切れば、簡単に実装できるだろ。
893名前は開発中のものです。:02/11/01 02:42 ID:???
>>892
そんな丼勘定な実装に何の意味があるんだ? だいたい最初からサイズが
見積れるなら static でとれば良いだけだし。
894名前は開発中のものです。:02/11/01 03:20 ID:???
メモリリークをつぶせるという意味がある。警告メッセージ潰し。
サイズ見積もれなんていってないじゃないか。
allocに一枚ラッパーかぶせて、ポインタを全部記録しておいて、
終了時に順にfreeするだけ。
895名前は開発中のものです。:02/11/01 03:35 ID:???
ダイナミックに確保するならちゃんと開放しないとダメだよ。
メモリを再確保するたびに使用メモリ量が積もっていく。
ゲームの場合はメインの処理がループなので、たいしたことないと思っていても、
処理によっては1秒60回でメモリリークされたりしてちょっとまずいことになる。

開放しないメモリを確保するくらいなら初めからスタティックに確保した方がいい。
896名前は開発中のものです。:02/11/01 05:41 ID:???
>894はループの中で確保するのを前提にした話ではないよ。
どうしても解放するのが面倒くさい場合の最後の手段で言ってるだけ。
シューティングゲームのバッファなんかはstaticでいい気が。
数の上限は知れてるし、容量もたいしたことないでしょう。
897名前は開発中のものです。:02/11/01 09:10 ID:???
.NETのガベージコレクタを使え
898名前は開発中のものです。:02/11/01 09:22 ID:???
boost::pool ダ! (ウソ
899名前は開発中のものです。:02/11/01 09:55 ID:???
メモリ開放しないプログラムはそのまま再利用できないからクソ。
900名前は開発中のものです。:02/11/01 14:36 ID:???
>>899
スレの内容を全く読んでいない馬鹿発見!
901名前は開発中のものです。:02/11/01 16:44 ID:???
メモリ開放しないやつは開発者の姿勢としてクソ。
902名前は開発中のものです。:02/11/01 19:58 ID:???
boost::poolって早いの?
903名前は開発中のものです。:02/11/01 20:41 ID:???
>>902
そんな抽象的すぎる質問にどうやって答えろと(藁
904名前は開発中のものです。:02/11/01 21:08 ID:???
突然ですみませんが当たり判定のアルゴリズムでOBBについて解説してある日本のサイトなどはないでしょうか?
905名前は開発中のものです。:02/11/01 21:49 ID:???
メモリ開発しないやつは解放者の姿勢としてクソ。
906名前は開発中のものです。:02/11/01 23:22 ID:???
>>904
日本のサイトは知らん。
海外ならいっぱいあるけど。
907名前は開発中のものです。:02/11/01 23:58 ID:???
>>900
まんざらそうでもない。
javacなんかがそれで一時期ハマってたらしい。
908名前は開発中のものです。:02/11/02 00:24 ID:???
>906
すみませんが、できたらそのサイトをおしえていただけないでしょうか?申し訳ないです。
909名前は開発中のものです。:02/11/02 00:29 ID:???
>>908
最近の厨房様は検索と言う言葉をご存知ないらしい。

http://www.google.com/search?num=50&q=OBB+collision
910名前は開発中のものです。:02/11/02 00:46 ID:???
日本語のサイトは皆無だよな・・・
911名前は開発中のものです。:02/11/02 01:01 ID:???
>909
すみません、すみません。(´Д`;)
912名前は開発中のものです。:02/11/02 02:32 ID:???
>>902
開発は、早くなり増田。
913名前は開発中のものです。:02/11/02 15:33 ID:???
>>899
本当に、そのプログラムは再利用されるのか? 汎用性は諸刃の剣だぞ。
914名前は開発中のものです。:02/11/02 16:06 ID:???
>>913
まあ、C/C++に限って言えば再利用なんて、ほとんど幻想に過ぎないんだが、
ここは希望的観測の意味も込めて、「安易な手法での再利用は諸刃の刃だぞ」にしとこうや。
915名前は開発中のものです。:02/11/02 16:19 ID:???
んでも、普段からメモリを解放するクセをつけておかないと思わぬところで…ってこともあるかもね。
GCがサポートされてる言語なら別として。
916名前は開発中のものです。:02/11/02 16:23 ID:???
・処理速度至上主義
・プログラムコードは基本的に使い捨て
・激しく機種依存するプログラムばかり組む
ゲームプログラマは特に価値観が偏っているから常識は通用しないよ。
偏りすぎていて他のジャンルでは通用しない気もするけど。
917ゲーム業界の真相:02/11/02 16:45 ID:???
再利用ができない

生産性が上がらない

労働者が沢山必要

1人あたりの賃金が安くなる

貧乏
918名前は開発中のものです。:02/11/02 18:52 ID:???
>>917
再利用を念頭においた結果、過度に複雑なクラスライブラリができて、結局
使われずに封印ということもある。バランス感覚重要。

っつか、ゲーム業界に限っていえばプログラマの数はむしろ少ないと思うが。
919名前は開発中のものです。:02/11/02 20:59 ID:???
ゲームばっか作ってると、変な癖がついてしまう面はあるんじゃないの。
パフォーマンスを追及するあまり、超複雑・可読性ゼロ・再利用性ゼロみたいな。
まあ、ゲームに限って言えばそれでいいのかもしれないけど。
資産が継承できないとしたら賽の河原状態かな。
920名前は開発中のものです。:02/11/02 21:41 ID:???
> ゲームばっか作ってると、変な癖がついてしまう面はあるんじゃないの。
気のせい。ファミコン時代ならいざ知らず、今時はそんなコードでは通用しない
程度には開発の規模が大きくなってる。

プログラマ一人で三ヵ月の仕事と、プログラマ三人で十八ヵ月の仕事だと、最適
な仕事の進め方は変わってくるわな。(さらに SI みたくプログラマ何百人みた
いな体制だと、また違ってくる)
921名前は開発中のものです。:02/11/02 22:36 ID:???
今だと、プログラマ2〜3人ぐらいのプロジェクトが多いのかな。
平均的な話。
922名前は開発中のものです。:02/11/02 23:03 ID:rSTkonKP
>>916
> ・処理速度至上主義
ここはその通りだとおもうけど、下の2点は同意できないなぁ
特に機種依存コードを多用したりすると恐ろしく読みにくいコードになって、
デバッグ困難になったりするよね
もし担当が交通事故で急死したとしても、他のメンバーが問題無く引き継げるように
読みやすさ優先でコード書けって先輩にたたきこまれたクチなんだけど…
923名前は開発中のものです。:02/11/02 23:10 ID:???
>>922 自己レス
916 は、ゲームプログラマはそういうのが多いって言ってるだけだね
勘違いしてた、もうしわけねぇ
924名前は開発中のものです。:02/11/02 23:18 ID:???
多いって一般のプログラマとどうやって比較したのか出所提出を小一時間求めたい
ありもしない妄想を根拠として抽象的な論理を展開するのが流行りか?
925名前は開発中のものです。:02/11/02 23:31 ID:???
そこまであちこち顔を出してる人ってそんなにいるとも思えんのう
926名前は開発中のものです。:02/11/02 23:32 ID:???
>>924
いちいち根拠になるデータを提示しないと話が進まないような話題とは
思えませんが?そういう不毛な煽りも流行なのですか?
まず、あなたのその「一般のプログラマ」の定義からお聞かせ願えませんか?
927名前は開発中のものです。:02/11/02 23:50 ID:???
「〜という傾向がある」に対し「そうでもないんじゃない?」
という発言がきたら、論拠なり証拠なりを出さないと話が進みませんよ。
928927:02/11/02 23:51 ID:???
あ、煽り屋か・・・スマソ
929名前は開発中のものです。:02/11/03 00:33 ID:???
>>927
それはそうなんですが、あまり度が過ぎるとどうかな?と
端的な例ですが、
 「最近の若い者は礼儀が悪すぎる」
 「そんな事はないでしょう。論拠を示してください」
という会話を見てどう感じますか?
感想レベルの話題に対しては無意味でしょ?
930名前は開発中のものです。:02/11/03 00:50 ID:???
920が示しているように、規模やコード資産の量などの違いでもって
やりかたは変わってくるし、それが元で傾向に違いがでてきてもおかしくないと
思うのよ。

それを「ゲームプログラマだから」とかいう括りでやっちゃうのが間違いだろ?
という話にもってくなら分るけど、>>924,926にあるようなつまんない指摘は
煽り屋と思われても仕方ないよ。
931名前は開発中のものです。:02/11/03 01:28 ID:???
完成するころには次のハード
932名前は開発中のものです。:02/11/03 09:43 ID:???
>>931
携帯電話プログラマも大変だねえ
933名前は開発中のものです。:02/11/03 10:28 ID:???
>>932
そうやって無理やり変な解釈するのもどうかと思うよ。煽り?
実際、でかいプロジェクトだと、そんな感じになるっしょ
934名前は開発中のものです。:02/11/03 10:39 ID:???
933は一行目と二行目を書く間にトイレにでも行ったんだろうかね?
935名前は開発中のものです。:02/11/03 10:54 ID:???
多重人格者でちょうど入れ替わったタイミングと見た
936名前は開発中のものです。:02/11/03 11:46 ID:???
>>934-935
そうか?
俺は特に違和感なかったが。
937名前は開発中のものです。:02/11/03 11:52 ID:???
933 の2行目は、931 の事を言ってるのでは?
話の流れから言ってそうとらえたほうが自然かと
938名前は開発中のものです。:02/11/03 12:22 ID:???
ゲームプログラムというのは基本となる技術が浅いのでは。
それで、高度な部分は激しく機種依存で数年おきにリセットされる。
熟年のベテランより体力のある若者のほうが有利な業界。
939名前は開発中のものです。:02/11/03 12:52 ID:???
ラッパーライブラリで全部吸収…しきれないんだよねぇこれが
940名前は開発中のものです。:02/11/03 12:54 ID:???
> 933 :名前は開発中のものです。 :02/11/03 10:28 ID:???
> 933は一行目と二行目を書く間にトイレにでも行ったんだろうかね?

> 935 :名前は開発中のものです。 :02/11/03 10:54 ID:???
> 多重人格者でちょうど入れ替わったタイミングと見た


面白い。俺は違和感なかったが、そういう発想もあるのかと。
941名前は開発中のものです。:02/11/03 14:02 ID:???
> ゲームプログラムというのは基本となる技術が浅いのでは。
SI と携帯電話業界には言われたくない…。
942名前は開発中のものです。:02/11/03 14:36 ID:???
931-935の解説キボン
943名前は開発中のものです。:02/11/03 15:01 ID:???
>>938
> ゲームプログラムというのは基本となる技術が浅いのでは。
その「基本となる技術」とは具体的にどういうものを指しますか?

> それで、高度な部分は激しく機種依存で数年おきにリセットされる。
ゲームコンソールに関して言えば、メーカ提供のライブラリが
ある程度吸収してくれていると思いますが

> 熟年のベテランより体力のある若者のほうが有利な業界。
そんなことはないでしょ
若い衆は体力はあっても場数を踏んでいない分、ちょっとした
トラブルに対処できずに途方に暮れる場面をよく見かけます
業界で生き残れている年寄りプログラマは、それなりに利用価値があります
944名前は開発中のものです。:02/11/03 15:28 ID:???
この手の話題は抽象的でいい加減な話ばかりで何の意味の無い
知ったかの横行で痛いだけ
語る前にデータを出せ、出せなきゃ語るな
だろうだろうでまともな話になるわけ無いだろう
945名前は開発中のものです。:02/11/03 16:13 ID:???
>>943
> ゲームコンソールに関して言えば、メーカ提供のライブラリが
> ある程度吸収してくれていると思いますが
世の中そういう方向に進んでるとは思うけど、目下の最大勢力 PlayStation 2
に限って言うと、メーカ提供のライブラリはきわめて低レベル(ハード寄り)
で「メーカ提供のライブラリがある程度吸収」してくれません。

特に PlayStation 2 のアーキテクチャは特異で、VPU 用のアセンブラと DMA
の使い方が性能の鍵になるので、「CPU キャッシュって何ですか」みたいな
高レベルな世界に済んでいる人間は揃って逝きました。

>>938
> それで、高度な部分は激しく機種依存で数年おきにリセットされる。
リセットされるのは、高度な部分というより低レベルな部分だと思うけど。
衝突検出やら AI のアルゴリズムなんかは、別にハードにゃ依存しないし。

それにリセットというほどじゃないやね。新しいハードが出てきたときに
いち早く使いこなすのは、やっぱり蓄積のある人間だったりするので。
946名前は開発中のものです。:02/11/03 17:34 ID:???
なんというか、特定ハード、特定環境でしかツカエネー奴って
本当に存在するのか謎だよ。
ここ数年でもめぐるましく環境変わってるよね。
947名前は開発中のものです。:02/11/03 18:42 ID:???
>>946
ある程度のライブラリが整備されている PlayStation から参入したメーカー
が、PlayStation 2 時代になって

ライブラリはねーわ
開発コスト(特にグラフィック関係)はかさむわ

で撤退に追い込まれたという話は、何度か聞いた。せいぜい、その程度だろう。
948名前は開発中のものです。:02/11/03 18:51 ID:???
瞬間最大風速だけのハードで付加機能が全然なく
出来たものはジャギーだらけのブツブツゲーム
どのハードとは言わないけれど
949名前は開発中のものです。:02/11/03 19:16 ID:???
ゲームの価値基準って「面白いかどうか」だから、技術力が高い
だけでは評価されるとは限らない。しかも売れるものと売れない
ものの格差が激しい。技術者としては遠慮したい業種。
950名前は開発中のものです。:02/11/03 19:23 ID:???
>>949
そういうモチベの低い人は業界的にも願い下げです
せいぜいご自身の業界でがんばっていて下さい
951名前は開発中のものです。:02/11/03 19:48 ID:???
>>949
そりゃゲーム業界に限らん。携帯電話業界だって FOMA は普及していないでしょ?
ただし、技術力があれば表現の幅や可能性が広がる。
952名前は開発中のものです。:02/11/03 22:52 ID:???
FOMA が普及しないのは、技術力があるかどうか以前の問題だと思うが……
953名前は開発中のものです。:02/11/04 00:04 ID:???
FOMAが売れないのは宇多田ヒカルが結婚したせい
954名前は開発中のものです。:02/11/04 05:19 ID:???
>>953
そうに決まってる。

トオモワナ ヤッテケナヒ...
955名前は開発中のものです。:02/11/04 08:08 ID:???
FOMAがヒットしなかったのは名前が悪い。
MONAにしろ。
956名前は開発中のものです。:02/11/04 10:40 ID:???
互換性が無かった
ただそれだけ
957名前は開発中のものです。:02/11/04 11:04 ID:???
存在価値が無かった
ただそれだけ
958名前は開発中のものです。:02/11/04 11:28 ID:???
そういう話は携帯板でやれ
959名前は開発中のものです。:02/11/04 12:01 ID:???
次スレが欲しいかな?

物凄い勢いで誰かが質問に答えるスレ@ゲ製板 4つめ
http://game.2ch.net/test/read.cgi/gamedev/1035601681/l50
【初心者歓迎】スレを立てる前にココで質問を【その3】
http://game.2ch.net/test/read.cgi/gamedev/1032814540/l50

これらがあるからいらない気もするけど。
960名前は開発中のものです。:02/11/04 13:32 ID:???
>>959
その両スレとは目的そのものが違うだろう。
961名前は開発中のものです。:02/11/04 14:19 ID:???
立てられる人おながいします
962名前は開発中のものです。:02/11/04 17:10 ID:???
立てられませんでした…
963名前は開発中のものです。:02/11/04 17:12 ID:???
スレを立てられる数はIPアドレスが枯渇していくと共に失われていくものなり
964名前は開発中のものです。:02/11/04 17:54 ID:???
入力欄を間違えてこんなことやってもうた(恥)
http://game.2ch.net/test/read.cgi/gamedev/1021735643/108-109
 
あと、漏れのISPはスレ立てらんないみたい。
他板で大暴れしたアラーシがうちのISP使ってたらしい。合掌。
ゲームプログラミング全般の質問スレッド。
扱う話題のダイナミックレンジはやや広め。包容力高め。
他の初心者質問スレとの棲み分けを探りつつ
これからもマターリと活用しておくれ。
 
■前スレ
【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
966名前は開発中のものです。:02/11/04 17:55 ID:???
■関連スレ
○【初心者歓迎】スレを立てる前にココで質問を【その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/
967964-966:02/11/04 17:58 ID:???
こんな感じ↑(>>965-966)のテンプレを適当に作った。
なんかあったら修正したり手を加えてちょ。
で、もし暇な奴がいたら変わりに立ててくれると有難いなり。
968名前は開発中のものです。:02/11/04 18:13 ID:???
立ててみます
969名前は開発中のものです。:02/11/04 18:15 ID:???
う、だめでした。比較的マイナーなISPなので、立てれると思ったのだけど。
970名前は開発中のものです。:02/11/04 18:40 ID:???
うらむならクソスレを連発している奴をうらめ
971名前は開発中のものです。:02/11/04 20:31 ID:???
うーん、ここんとこ立ててないのにダメですた。なんじゃろう。
972名前は開発中のものです。:02/11/04 20:39 ID:???
うーん、私でよければ立ててみますね。
973 ◆.c.yXP2vFk :02/11/04 20:41 ID:???
たててみる
974 ◆.c.yXP2vFk :02/11/04 20:43 ID:???
被った、待機
975名前は開発中のものです。:02/11/04 20:43 ID:???
>>973
ごめん、ストップ!!
私が先に立てた。
http://game.2ch.net/test/read.cgi/gamedev/1036410116/
976 ◆.c.yXP2vFk :02/11/04 20:45 ID:???
>>975
乙カレー

宣言があってよかった
977名前は開発中のものです。:02/11/04 20:46 ID:???
いえ、差し出がましいことをしてすみませんでした。
978名前は開発中のものです。:02/11/04 20:54 ID:???
おお、立ってる
979964-966:02/11/04 20:58 ID:???
スレ立て乙カレー
980名前は開発中のものです。:02/11/05 23:32 ID:/7Ytk27p
ここ埋めないの?もったいない…
981名前は開発中のものです。:02/11/06 00:04 ID:ac3ggRZP
新しいのがたったんだ。
安心して糞レスできるぜ。
982名前は開発中のものです。:02/11/06 00:17 ID:5us9zX6n
>>981
知ってるけど、あっち誰も書きこまないし
なら、こっち埋めてからでもいいかな?…と
983名前は開発中のものです。:02/11/06 01:22 ID:5kObgyse
そうだ一度くらいはラストを飾ってみたいね。
ラストでメール欄に得ろ画像のリンクとか。やってみたいね
984名前は開発中のものです。:02/11/06 09:05 ID:???
梅梅
985名前は開発中のものです。:02/11/06 18:55 ID:AbNkeWCY
このスレ一周年記念age
986名前は開発中のものです。
いいスレほど早く埋まっていく・・・・