1 :
名無しさん@初回限定:
わりと最近のPCのスペックで、
CPU使用率が常時100%にならないエロゲー教えて下さい。
まずは、私から マブラヴ
ガッツ
絶倫アクロバットおやじ
それを知ってどうするのさ
世界ノ全テ
6 :
名無しさん@初回限定:03/04/21 17:35 ID:GrwsSUfT
常時CPU使用率って何さ?
あぼーん
>常時CPU使用率が100%にならない
>マブラブ
アスロンの3000+だけど常時100%ですが?
アズラエル
DirectSound使ってるソフトなら、先ず100%に成るぞ?
CD-DAとWAVだけのソフトなんて、今時無いんじゃない?
>>11 それはサウンドカードかドライバがショボイ
東大将棋5
9=12
メーカーの人?
あぼーん
あぼーん
>11
ならない、ならない。
ちゃんとスレッドでストリーミング処理してれば、100%なんかにならないよ。
WMPで動画再生しても10%逝くか逝かないか、だし。
19 :
名無しさん@初回限定:03/04/23 03:02 ID:+tukmLKO
結論:マイクロソフト >>>>>>> エロゲメーカー
バグの度合いが?
エロゲでゲイツ波の成功を収めたら教科書に載るな。たぶん。
InternetExplorer
インストしてあるkeyのAIRは、100%にならない。俺のパソで5%〜10%をウロウロ。
すると、VisualArt'sシステムのAvg32シリーズのKANONも低いってことかな。
SNOWは知らんけど。なかなかVisualArt'sシステム良い。これで自動文字送りがあれば・・・
アリスソフトのSystem 3.9は必ず全部100%になる。
エスカレイヤーで100%ならまだいいけど、8年前のRance4 −教団の遺産−とかも100%は
なんか精神的に良くないなぁ。別に100%だからって、昔からずっとこんなんでやってるわけで、
いちいち気にしちゃいられないけどさ。
アリスソフトのシステム結構気にいってるんだけどね。
Present for you〜わたしをあ・げ・る〜
あぼーん
あぼーん
cycのゲヱム全般。
DirectSound(Music)の作法的にidol時もCPUを占有させるようになってるわけだが、
いちいちそんなの守ってコーディングできるかっつーの。
M$の言うことはまず疑ってみないと(w
○ idol
× idle
30 :
名無しさん@初回限定:03/04/23 20:32 ID:rLdwHeWU
なんてったってidle
セレ600でマブラヴはきついです。いやマジで。涙
>>23 それはCPUパワーが全てフレームレートに使われるタイプだ。
どんなにCPUがあっても一秒間に1000フレームとかとにかくパワーがあるだけ高スピードで
回るのに使われるから絶対使用率は落ちない。
System3.xは大元がDOS時代の仕様だから、そもそも他のスレッドの事など
考えていない。
あぼーん
age(アージュ)のゲーム全般。ゲームシステム rUGP 。
WILL系はかなりCPU使用率低いね。
「陵辱女子学園」で試したら、通常時のCPU使用率0%だ。
CPUはAthlon2000、WindowsXPで。
当方PEN4 2.4G
それ散る、SNOW、マブラヴ、wind
あたりかな
処理が軽いゲームだと、0%とかあるよ。idle時の処理が数字に出ないほど軽いわけだ。
よーく見ると、BGMのストリーミングの切れ目なんかで、たまに5%くらいになったりする。
ま、CPUパワーがそこそこある場合の話だが。
>>37 >>39 DirectX使ってるのばかりじゃん
プログラム板住人の総意としてはエロゲプログラマは一人として技術力が無い
ってことでFAになってるよ
総意厨ハケーン
>>41 俺はプログラム板ではそうなっている、というのを伝えたかっただけでつ
>>42 そのような見解をム板住人が総じて抱いていると俺は認識していないので
もしできるなら具体的にスレなりレスなりを示して欲しいな
DirectX使ってるのがなんだというんだろ。言わんとすることがよくわからんが。
DirectXといっても、DirectSoundだけしか使わないメーカーが多いし。
まあ、どっちにしても「板住人の総意」なんてあり得ないものを主張してるあたり、バカ丸出しだけど(w
45 :
名無しさん@初回限定:03/04/25 23:33 ID:kgVL1z7T
>>40 よくわからんが、Directx使ってないのばかりの間違いだよな?
マブラヴはDirectx一切使ってないけど。
まあ、「エロゲのプログラムなんてレベル低いし、簡単」とかほざいてる他業種プログラマーが、
いざやってみると、安易にDirect3D使っちゃって満足に動かないものができあがり、結果的に
「エロゲプログラマーはレベル低い」と言われるという状況を作ってたりもするのだが。
47 :
名無しさん@初回限定:03/04/26 00:29 ID:kYO3Kx7d
といいつつも、ハードが様々など特有の問題があるにせよ、
他業種に比べると明らかに単純な訳で。
河童の500でWind パッチ無しでも、100%なんていかなかったよ。
技術力が高いようには見えないのは確かだが
>>47のようにマシンのばらつきが一般PCゲーと比べても大きい点を軽視するのもどうかな
ノートPCでCPUを100%使われちゃうと、ファンが常に回転してて嫌だな。
>47
コンシューマ機の方が遙かに単純。用意されたライブラリだけ使ってれば良いコンシューマプログラマー
の方が技術力低い人間が多かったりする。
ま、その反面、コンシューマ系には、性能以上の能力を引き出す、スーパープログラマーも多いけど。
ま、PCも一度ちゃんとしたライブラリをつくってしまうと、コンシューマより楽だったりはするな。
52 :
名無しさん@初回限定:03/04/26 13:25 ID:ksgUzgcV
3Dゲームなんかはエンジンがあるんだけどなあ。
エロゲでそれやるとただでさえ代わり映えのないシステムが更に代わり映えしなくなる可能性も。
CPUを100%でも重いってことじゃないわけだろ?
部屋が少しあったかくなるとか、ノートだとバッテリーの減りがはやいとか。
俺がノベルタイプで本当に重いと思ったのは、Marronの秋桜の空にくらいだよ。
>>53 重いことはないよ。
でもノートの場合、普段はファンレスで使用できるのに100%になるとファンがフル回転する。
うるさくてしょうがない。
俺はデスクトップでファンはいつも回ってるから気にならないけど
うるさいのか。なるほど。そりゃ、たまらんな。
ここで言う「他業種」ってゲーム業界に限ってるの?
>>47 各個ハードの問題・OS毎の仕様違いの問題がプログラム作成上で一番難しい問題なのだが。
他業種といってもいろいろだから一概に言えないけど一般汎用機プログラマよりよっぽど高度だよ。
基本システムの構築から、CPUの特性理解、データエリアの管理、データ圧縮、OS作法、ユーザーインターフェースなど結構広い知識が必要なんよ。
もっともそれらが不十分な人がいるもの事実だけど。
エフェクトが
59 :
名無しさん@初回限定:03/04/28 03:39 ID:oeMWris0
>>57は、汎用機のややこしさ、つか、汎用機が使用される分野の厳しさを知らないと見えるな…。
特に「幅広い知識」の列挙に障害周りの事柄が全然出てこない辺りがPC厨って感じ。
PCプログラマと汎用機プログラマでは要求される能力が全く違うから比べようがない。
Cobolで作られたエロゲなんかどこにある?
ひとりだけ、劣等感まるだしの書き込みでageてるヤツがいるな(w
100%にならないエロゲー探すのは難しい。
あげ
66 :
57:03/04/28 22:06 ID:azM8L3XT
>>59 汎用機をやった後、今エロゲープログラマをやってる者ですが何か?(w
ちなみに障害関係が出来ない人はゲーム・汎用機問わずプログラマとして失格だから
ここで挙げるのはちょっと違うね。
>>66 渉外関係ができないのは星の数ほどいるがな。
コンシューマとエロゲーとネットワークとビジネスアプリをやった経験があるが、正直、コンシューマが
一番難易度低いかな。プラットフォームが限定されていて、例外処理の範囲がはっきりしているし。
楽かどうかと言うと、それはまた話が別だけど。
その中で、選択待ち画面でCPU使用率100%になったのは、エロゲーだけ。
まあおまえら素人は、もっさりP4&蟹AC97&蟹NICでも使ってなさいってこった。
71 :
名無しさん@初回限定:03/04/30 20:27 ID:yPFfdk8g
>>70 ( ゚Д゚)ハァ?
IntelPen4&IntelPro100S(82550)&Revolution7.1ですが、何か?
(´゚c_,゚` )プッ
まあ、実際には普通のPCゲーの方が、常時100%ゲーが多かったりはするのだが。
74 :
名無しさん@初回限定:03/04/30 22:38 ID:UJrd9+Yn
>>73 3Dゲームはいかにも重そうだからいいじゃん
エロゲなんて紙芝居ごときに常時100%食われるのが気にくわない
フックか何かでプロセス空間に無理矢理割り込んでSleepとかできないものか
クリック待ちの時に低ければそれでいいのではなかろうか。
ほとんどのエロゲで、実行時間の7割はクリック待ちでしょ。
だいたい、CPU使用率でプログラマの腕を比べるなよ。
下げるだけならSleep挟みまくればいいだけで簡単なんだから。
そんなこといったらROはうちの環境では歩かなくても常時
100%なんだがROのプログラマはエロゲよかショボいのか?
>ほとんどのエロゲで、実行時間の7割はクリック待ちでしょ。
×:7割
○:9割9分9厘
ていうかエロゲって簡単に中身解析されすぎ
発売翌日にセーブデータ上がってるってどういうことよ?
暗号化もできんのかエロゲプログラマは?
79 :
名無しさん@初回限定:03/04/30 23:39 ID:FB4SmAQC
>77
そうかもしれんが、なんだかちょっと悲しい数字だ(w<9割9分9厘
>78
似たようなこと言われたことあるんだが、そういうの気にするのって
だいたいコンシューマ系の奴なのな。
セーブデータをいちいち槍玉に挙げてるコナミ的なエロゲメーカーは少ない。
元々、ダブルクリックで開かれたり弄られて動かなくさせないための
安全装置としての暗号化に過ぎないんだが……。
コンシューマ機と違って実行時のメモリ書き換えが容易だから
セーブデータを暗号化してもあまり意味が無いしな
まあメモリ上のデータも暗号化できるが
昔は、皆PCのスペックがなかったから100%でも仕方ないと思っていたが
PCの性能が高くなって、気になりはじめたというわけかな。
昔はこんなもんだろ、と思っていたが、どうも他の重い処理を行うソフトが
CPU使用率低いのに気付いてしまった、こりゃ変じゃないの?と。
WMPとか。DVDプレイヤーとか。
出来るだけFPSを上げたいから、処理中はなるべく
CPUパワーを占有するようにしてるだけ。
で、うるさく言う人がいない一般ゲ業界では、遠慮なく
いつでもフルパワー使うようにしているようだね。
プログラマの腕ではなく、単に風習の問題。
CPU100%の某MMORPGだって、走らせながら
WEB巡回やメール閲覧くらいなら全然問題ないし。
>プログラマの腕ではなく、単に風習の問題。
(プ
>WMPとか。DVDプレイヤーとか。
まさかゲームと同列で語ろうというのか?
おそろしや・・・
思ったより、その程度のことでプログラマの腕を判断する人って
多いみたいだね……まあ、うちはクリック待ちのときは数%だけど。
素人はせいぜいCPU使用率で一喜一憂してろってこった。
CPU使用率100%だとヘボプログラム率が高い。
CPU使用率100%でない場合は良プログラムである率が高い。
クリック待ちに Sleep を挟む位のことが出来ないプログラマだから納得ではあるが。
省エネの時代に風習とかいって自分の腕のなさに逃げを打つプログラマはプロとしての誇りがない。
まあ、同人上がりの連中がてきとーにやってるのも珍しくない世界だからさもありなん。
>CPU使用率100%だとヘボプログラム率が高い。
>CPU使用率100%でない場合は良プログラムである率が高い。
>クリック待ちに Sleep を挟む位のことが出来ないプログラマだから納得ではあるが。
それ以上騙るとボロが出るからやめたほうがいいよ
だから、うちのプログラムは普段は数パーセントだっつの。
クリック待ちにSleep挟む程度のことに誇りを感じる
半可通のバカな素人が端から見てると恥ずかしいってのよ。
>>87 その程度の事すらやってない奴はヘボ確定だろう。
言い方がちょっときつかったかもしれんが、例を出そう。
ラグナロクオンラインはタイトル画面でさえ常にCPUを
100%使用するゲームだが、そのときに640x480 DivXの
ムービーを再生しても平気でラグもなく映ってるぞ。
同時にプログラムソースのコンパイルも問題なく出来る。
さすがに写真屋はきついかもしれんが(実験してない)
いっとくが、うちのCPUはたかがセレロンだぞ。
CPU使用率とOSの使用感にはほとんど関係が無い。
本当にCPU使用率を下げる必要があると思うか?
93 :
名無しさん@初回限定:03/05/02 17:49 ID:eVhgVeS4
>>92 それはラグナロクだろ?
エロゲーはそうはいかないのもあんだよ
だから何度も言ってるが、CPU使用率100%だとCPUの温度が上がってファンが回り出すからうるさい。
轟音PCに慣れてる香具師には関係ないだろうけど。
あぼーん
マブラブはCPU使用率は常時100%じゃないかもしれんが、
あ の 重 さ ではまともに遊ぼうと思わないぞ
>93
ラグナロクオンラインったって、タイトル画面だし。
動いてるのはカーソルだけだよ。
必要性があってああ作ったんじゃなくて、
単に気にしないで作ったからああなってるだけだ。
寝AFKなんてとても出来ないな、気にしてる人なら。
まあ、別に下げれるからCPU使用率を下げるのは構わないんだけど、
くだらないことでエロゲプログラマをバカにされるとがっくり来るなと。
>>96 マブラヴって重いの?
友達はかなり軽くて良いって言ってたけど(Pen4-2.4Gらしい)
ロジカルに考えられない人には何を言っても無駄だから
まあ、プログラマのするようなロジカルな考え方が誰にでも
通用するわけじゃないし、見た目で簡単に騙されてくれるから
商売やりやすいってのはあるんだけどな。
APIフックすればCPU仕様率の表示だけ下げるプログラムも作れるな
それよかCPU使用率下げるほうが楽では(w
あぼーん
あぼーん
電気代が少し高くなるだけだろ(w
>>92 別のアプリケーションが重くならなければ 100% でもいいと言う辺りからして終わってる。
PC メーカーが必死こいて省エネの努力をしているのに、えろげプログラマはこれだから・・・。
リソースを100%使い切ることの恐ろしさを知らん
ヘボプログラマが言い訳するスレはここですか?
>寝AFKなんてとても出来ないな、気にしてる人なら
>106
一般ゲーのほうがCPU使い切るゲームは多い。
同時に他のことができないようなゲームは別にいいだろうが・・・。
>>109 一般ゲームと同レベルの事やってるならそれでもかまいませんが?
無駄ループを問題にしているわけではなかったのか…
>110
町で座っててPLは寝ててもタイトルのクリック待ちでも100%なんだぞ。<RO
>111
タイトル画面並のことはやってるけどな(w
>112
まあ、どこかに必ずクリック待ちの無限ループがあるから、そこに
Sleepを埋め込むだけで解決する問題ではあるのだが。
正直、AVI再生中のWMPよりも重い処理をクリック待ちしてるエロゲがやっているとはとても思えないんだが。
なぜエロゲだけを特別に槍玉にあげるのか。
繰り返しになるが、一般ゲーのほうがCPU100%のブツは多い。
それも、明らかに必要の無いところでだ。
そんなものは気にしないのがゲームの世界では普通なんだよ。
エロゲユーザにはうるさいのが多いからうちは下げてるけどな<占有率
>>115 紙芝居がほとんどのエロゲーと3D物多数の一般ゲームを
よく比べられるな。恥ずかしくないか?
>116
お前はROのタイトル画面が3Dカードを駆使しているように見えるのか。
>>117 お前はROのタイトル画面をずっと眺めてるのか?
おそらくプレイ時間の1%にも満たないタイトル画面だけ
解放するように作る事にどれほどの意味がある?
で、お前はエロゲーの本編がCPU100%食ってるのに
ふさわしいだけの処理をやってると思ってるのか?
>118
ROの動作中だって、よほどキャラのたくさんいるところにいない限り、
CPU時間を100%活用はしてないぞ。
無駄に占有してるパワーがだいぶあるはずだ。それには文句言わんのか?
解放するように作るのは本当に簡単なんだ。方法は誰でも知ってる。
SleepというAPIをループ中のどこかに挟むだけでいい。
タイトル画面だろうがなんだろうが、そんなほとんど手間の掛からないことを
あえてやらないことにいったいどれだけの意味がある?
誰もそんなことを気にしていない、というのが正解なんだよ。
CPU使用率でプログラマの腕を云々いってる奴がバカに見えると
いってるだけで、CPU使用率を下げること自体には文句は言ってないぞ。
なんかSleepが頻繁に話題に登場してるけど間違ってる人が多そうなので一応書いとく。
Sleepを使うからこそCPU使用率は100%になるわけだが。
>そんなものは気にしないのがゲームの世界では普通なんだよ。
>誰もそんなことを気にしていない、というのが正解なんだよ。
とまぁ、エロゲプログラマはID:+riE5hIfのように、向上心とか
技術的好奇心とは無縁の人種が集まってることを如実に示してるワケでして。
確かに、エロゲンガーの場合は、萌え絵描きの中ではそれなりの(ヲタ的)ステータス
を持ち、それを(わざわざ)目指す(アフォな)若者が絶えないのに対し、
エロゲプログラマの場合は「紙芝居だろ。(プ。」と、ソフト業界では底辺扱い。
なんか、無理にでも「エロゲプログマはレベルが低い」と言わないと気が済まない必死なヤツが約一名
いるみたいだな(w
おおかた、他業種のへっぽこプログラマーがなんとか劣等感を慰めたいと思ってるんじゃねーの?
>121
Sleepをどう使えばCPU使用率が100%になるんだ?
ちょっとマジで分からんので教えて欲しい。
>>123 低くないと思われたくないんならそう思われないようにするだけの物出しゃいいだけじゃん。
紙芝居が大半の上にバグだらけ物がたくさん出てるんじゃしかたねーじゃん。
Sleepは指定時間、プログラムを停止させてしまうAPI。
しかも精度が悪い。(通常で10msec、裏技使っても1msecの精度、しかもかなりいい加減)
確かにSleep(100)とか挟めばCPU使用率はほぼ0になるが、応答速度はぼろぼろ。
でSleep(0)でループさせることになるんだけどSleep(0)はCPUが空いてたら処理を受け取ることになるから
結果CPU使用率は100%。ただ、空き時間を貰ってるだけだからシステム的には問題ない。
CPUが100%にならないゲームはWindowsのイベント等を使って処理が必要ないなら必要になるまで
プログラムを待機させる命令を使う。
前者はコンシューマやDOS時代の一般的な仕様。後者はWindowsでの一般的な仕様。
どちらがプログラマとして優劣と言うのはない。
127 :
名無しさん@初回限定:03/05/03 14:01 ID:sJcb5f5V
でもCPU100%のゲームって、BGで何か動かしてるとやたら応答が悪くなったり、
エフェクトがカクカクしたりするんだよなあ。
あぼーん
長文スマソ、マジメ書き込み
>125
バグとCPU使用率は関係ないわな。
>126
timeBeginPeriodでちゃんと設定しておけば、最低値にはなる。
100はやりすぎ(0.1秒だし)。
Sleep(0)とSleep(1)では意味合いが全然違ってくる。
Sleep(0)は特別で、待ち時間は無しで単に他スレッドにCPUを渡すだけ。
ちゃんとCPUを空かせたければSleep(1)を使うべき。
なんか重い処理でもやってない限り、その程度のスリープ時間でCPU
使用率は十分下がる。非アクション系エロゲなら動作にも支障ないでしょ。
CPUが100%にならないゲームでも、イベントドリブンとは限らない。
例えば、フレームごとに空き時間を計測してSleepさせてるものも多い。
単に手すきな時に適度にSleepさせてるものも多い(うちはコレ)。
ttp://www1.odn.ne.jp/psx-alternative/project_data.html この辺が参考になるかな。
>127
本当にマシンを使い切ってる100%と、単にアイドル時間を全部横取り
しているだけの100%があって、前者が貴方の言うカクカクする奴で、
俺の実験したROのタイトル画面は後者なんだね。
>バグとCPU使用率は関係ないわな。
潜在バグがCPU使用率100%等で顕在化するのはよくあるが…。
>>129 >>130 RoutesはCPU使用率が100%になるバグがあった罠。
つーか、アイドルを食いつぶして100%は問題ないって言うけど、問題なくないよ。
HALTが効かなくなるから、CPUの発熱が上がる。
上でも散々出てるが、ノートだとファンが回り出してうるさい。
>131
うん、たしかに、CPUの発熱や消費電力量が問題になるならば、
使用率は気になるだろうね。ゲームでそういうのを気にする人も
結構いるのだというのは分かった。
考えてみれば、シューティングや格闘ゲームに比べてエロゲは
起動時間が総じて長いしな。ROには負けるが。
133 :
名無しさん@初回限定:03/05/03 14:27 ID:0dsET00J
3Dゲーは最初から高負荷高発熱を考えてシステムも組むだろうけど、
エロゲーはノートで静音でやろうって思う人も多いだろうからね。
だから2Dしかないのにあの発熱は何だって文句言いたくなるんだろう。
CPU使用率100%の擁護派は要約すれば
「減らせるけど別に減らさなくていいじゃん」
といっているだけだからやっぱり変だよなあ。
100%にならないようにしてるプログラマもちゃんといることだし
最低、常時100%には利点もあるということを言ってくれないと
車の性能に燃費は関係ない、みたいなふざけた主張に聞こえる。
CPU使用率100%でいいと言う人は
いったい何のためのマルチタスクだと思ってるのかと小1時間…
イベントドリブンうざー(w
イヤなら不買運動でも起こせば?
>>132-133 確かにQuakeなんかで100%使っても誰も文句言わないよな
明らかに処理能力を必要としないタイトル画面でも100%なのにもかかわらずだ、
世界有数のゲームプログラマでも気にして使用率を落としたりしてないことからも、
基本的にゲームでは100%でも問題視されることは無いのだが、
エロゲの場合は事情が異なるということだ
ノートで3Dゲーやろうなんて人はあまり居ないし
ただ、100%かどうかでプログラマの腕が分かるってのは確かに違う
見られるのは気遣いだけで、腕まで判別する要素にはとてもならない
そもそも”プログラマの腕”って何かって話
プログラマは知識とセンスの二つの要素から成り立っていると言っていいと思うが、
使用率落とすのに必要なのは基本的に知識だけで、
センスは必要ないんだよな
一般に”プログラマの腕”って言うと知識よりもセンスだと思うのだが
そもそも CPU 100% でも構わないだろといって RO を引き合いに出すのが間違ってる。
あそこ去年度のインシデント対応ワーストだろ。
60点平均のテストで30点をとって20点の奴がいるからいいだろといってるのとかわんない。
腕のなさを潔く認められないヘボプログラマは業界を去って欲しいね。
あー、あとビジーループは HT と相性が悪そうなんだけど、キー待ちなら問題にはならないかな。
>>126 16ms だとしても 60fps でますが。
画面切り替えとかならともかく、キー入力の反応が16ms遅くなったってユーザは気付かない。
timeBeginPeriod(1) して
ループ中の処理 10ms / sleep 1ms なら CPU91%
ループ中の処理 1ms / sleep 1ms なら CPU50%
ループ中の処理 0.1ms / sleep 1ms なら CPU11%
キー待ちビジーループなら処理は無いに等しいから1%割るよ(w
なんかエロゲープログラマの腕が悪い人が多いって言うのがホントのような気がしてきた。
>>129 基本ループにSleep(1)を使ってCPU空きを稼ごうなんてあんたマジで言ってる?
それプログラマとして最悪のセンスだぞ。
例えとしては、机が散らかってるって怒られたから全部床に下ろして机を綺麗にしました状態。
そんなのじゃループの利点もイベントドリブンの利点もないヤバいプログラムにしかならないじゃん。
早い機械ならごまかせるけど遅い機械では如実に違いが出る。
>>137 126が言っているとおり作り方の問題であって知識の問題ではない。
そもそも動いていない様に見えたって全速で画面描写をしているかもしれないのに
なんで基本知識が無いと言い切れるのだろうか?
>>138 Sleepは精度が悪いのでFPS処理で使うには難がある。
もし高精度化(timeBeginPeriod(1))をしたとしてもSleep(16)で帰ってくるのは必ずしもピッタリ16ms後とは限らない
+-2msくらいの誤差が起きる。FPS表示で使うには致命的な精度。
そもそも16ms*60fps=960msとなる時点で画面描写としては致命的。
>135
CPU使用率100%でもシングルタスク動作はしません。
>138
インシデントって意味分かってる? プログラマの腕とは別問題だよ。
それに、ROのCPU使用率について文句いってる奴って見たこと無い。
あれは三日間走らせっぱなしにするのもザラなプログラムなんだが……。
(俺のマシンでだけ100%ってわけじゃないよな? ちと不安)
>139
君は他分野のプログラマだね? ゲームに関しては素人と見た。
教科書的なイベントドリブンは、ゲームプログラミングでは
必ずしもベストではない。悪いとは言わないが他にも方法がある。
確かに参考書にはその形式でソースが書いてあることが多いが、
それは要求仕様がシンプルだから出来ることだ。
商用の煩雑で日々移り変わる要求を限られた時間で実装するには、
こまごまとした要請に対応するたびにモード数がどんどん増えて
モードの移行の管理がややこしいその方式には欠点が多い。
そもそも、Windowsのタイマイベントなんてマルチメディアタイマ以上に
精度が悪くてゲーム処理の駆動にはほとんど使い物にならない。
時間に正確な処理をしたければ、イベントドリブンを捨てて、
タイマを監視しながらメッセージをポーリング処理しなければならない。
(ポーリングのところで適度にSleepを挟むことでCPU使用率は下げれる)
あるいは、別スレッドでメッセージループを回しっぱなしにして、
必要なときにバッファリングしたクリック情報を取りにいくとか
(これも実質的にはポーリングとあまり変わらん)。
Sleepは確かに精度が悪いのだが、16msの分解能すらないタイマ使ってる
機種では、正確な処理はもう諦めるしかないだろう。
あるいは使用率の低減のほうを諦め、全開でループ回しつつ垂直同期とるか。
>>140 じゃあ、インシデントは別にしてあのプログラムが普通もしくは良いというわけ?
俺にはとってもそうは思えん・・・。
そもそも、sleep(1) で CPU をあけることすら出来ないプログラマがイベントドリブンなプログラム書けると思う?
143 :
139:03/05/03 23:05 ID:cKhGXs0L
>あるいは、別スレッドでメッセージループを回しっぱなしにして、
>必要なときにバッファリングしたクリック情報を取りにいくとか
>あるいは使用率の低減のほうを諦め、全開でループ回しつつ垂直同期とるか。
なんだ、わかってるじゃん。
俺が言いたいのは、CPU使用率はプログラムの目指す方向に依るんであって技術の違いではないって事。
片方を諦めてでも、もう一方の利点を生かすのがプログラマのセンスだと思うよ。
今は単純なノベルでもそのベースがしっかりしていればそのうちぐりぐり動く超絶ADVが出てくるかもしれない。
その土台となるシステムがCPU使用率100%だからって避難するのはどうか?ということが言いたいだけ。
ぐりぐり動く超絶ADVだったら CPU100% でも誰も文句をいわないに一票。
現状として無駄に CPU を回してるから文句が出るわけで。
>>144 >現状として無駄に CPU を回してるから文句が出るわけで。
個々のプログラムが裏で何をやっているのかわかってないのに、
一律「無駄」と言い切れる方が不思議。
146 :
名無しさん@初回限定:03/05/04 02:01 ID:qknMkJhJ
まるで、裏で何か重い処理を行っているかのような発言(w
…それにしてもSleep Sleep、反応 反応と連呼してる香具師よ、
…もしや、UIもワーカも無しに全部1スレッドでやってるのかな?
ほとんどのエロゲは絵と文章を順に表示するだけの紙芝居だろ
いったい裏で何をやる必要があるのかと…
>142
「出来ない」のではなく「しない」のだろう。
1ミリ秒を使ってFPS上げるほうを優先してるのだと思われ。
腕について言うなら、あれはたいしたものだ。俺はあんなのよーつくらん。
>143
プログラムは分かってるつもりだが、君が何をいいたいのかわからん(w
複数スレッドでやるにしても、ポーリングでやるにしても、Sleepで
CPU使用率を下げることが可能だというのは変わらんのだけど。
クリック待ちでSleep(1)したくらいで反応が悪くなることはないだろ。
100%が気になるなら挟めばいい。気にしない人はやらないけど。
>144
「ぐりぐり動く」プログラムでも、下げようと思えば下げられるはずだぞ。
常に100%使ってるとは思えん。
>146
メッセージループとゲームの処理を別スレッドに切り分けるにしても、
処理のほうを全開で回してりゃやっぱり100%だろ。そっちのスレッドで
CPUを空かせるのに、やっぱSleep使うんじゃねえの?
150 :
137:03/05/04 06:59 ID:ubIXkAZB
>>139 基本知識が無いなんてどこにも書いていないんですけど……
何処をどう解釈されてそういう風に取られたのかさっぱり分からないが、
念のために137で言いたかった事を噛み砕いて書いておくよ、長くなるけど……
Quakeなんかで常時100%でも誰も文句は言わない
一応タイトル画面なんかで使用率を落とす事は可能だろうがそれもしていない
(止まっているように見える画面でも全速で画面描画と言われたが、
そんな場面で、全速で描画する必要は無いだろう)
しかし、それでも文句を言われることは無い
何故ならゲームは基本的にながら作業でやるものではない、
何処からレールガンで狙われているか分からない状態でのんびり裏でワード使用したりしないだろうし、
裏でコンパイルをしたりするようなことを考える人も居ないだろう
ノートでQuakeをやる人も殆ど居ない、居るとしてもQuakeでファンが回るのは覚悟してやっているだろう
付け加えるとこういうゲームではよりハードの性能を引き出してくれた方がユーザーは喜ぶ
しかし、エロゲーは違う、
オートプレイで回しながら裏で作業する人も居るだろうし、
ノートでプレイする人も居るからファンの回転数を気にする人も居る
だから使用率を落とせる場面で落としていないと文句を言う人が出てくる
プログラマの腕というのはセンスで語られることが多く、
使用率を落とすのは基本的に誰でも知っているレベルの知識で事足りるので誰でも出来る
これをもってプログラマの腕を判断する要素にはとてもならない
使用率を落としているプログラマは腕がいいのではなく、こういったユーザーへの気遣いをするプログラマ
ということであって、常時100%だからと言ってプログラマの腕が悪いというわけではない、
そんなこと言ったらカーマックですら腕が悪いということになる。
他業種のプログラマーだが、
スレッドをブロックするのに Sleep API を使う理由が良く分からん。
寝たら途中で起こせない API を使うのは危険じゃない?
WaitForSingleObject/WaitForMultiObjects API にタイムアウト値を指定して、
イベントを待つのがすじだと思うのだが。
>151
ストリーミング再生とかならもちろんWaitFor〜を使う。
単にゲーム処理をしているスレッドを休ませたいときに
わざわざWaitFor〜を使うことはあまりないなあ。
他スレッドからエラー時に強制終了させるのを想定してるのかな。
でも、たかだか数ミリ秒のタイムアウト待ちが問題になるような
シビアなエラー処理は今のところ組んだこと無いな。
分解能がSleepと比べていいなら、Sleepの代用品に使えるかも
しれないけど、多分一緒だし(情報ぐぐったけど無かった)
153 :
151:03/05/04 08:32 ID:/8hxHIkD
>>152 説明を端よってすまん。
オレが言いたかったのは同期オブジェクトのイベントオブジェクト(Event Object)を
積極的に使えば、Sleep API は不要になるのでは?ということ。
# 数十ミリ秒の Sleep API だからエラー処理による中断は考えていないっす。
オレは 141 の人の発言を念頭にあるの。
141 の人の発言は、非ブロック系のイベント監視命令(例えば、PeekMessage API)
をループ中で使って、その間に Sleep を挟み込むというアイデアだと思う。
それならブロック系のイベント監視命令(GetMessage API)を素直に使った方が
よいと思うわけ。本処理を行うスレッドは Event Object を待って WaitFor*** で
ブロックしておくの。スレッドを別に立てて GetMessage API をループして、
必要なメッセージを受け取れば Event Object をシグナルするというやり方。
当然、WaitFor*** はタイムアウト指定する。
# これは Message の例だけど、他のイベント監視も同様にと。
> 分解能がSleepと比べていいなら、Sleepの代用品に使えるかも
> しれないけど、多分一緒だし(情報ぐぐったけど無かった)
Sleep と WaitFor 系のタイマー処理は同じはずだよ。
>153
なるほど、ニュアンスは分かりました。その通り出来ると思う。
GUI周りの処理とゲーム処理の分離をWindowsのスレッド機構に任せて、
Windowsの一般的なメッセージ処理が出来るのが利点か。
そういう風に組んでる人もいそうだね。
PeekMessageでポーリングする方式は、DOS時代のゲームプログラミングの
延長上でWindows3.1で確立したかなり枯れたテクニックなんで、
これはこれで十分検証されて安全とは思うけど。
メッセージ周りの関数をちょっと弄ればこの二方式は交換できそうだなあ。
素人の俺にはエロゲはブラウジングとたいして変わらない程度の事しか
やってない様に思えるのだが、なぜに100%になったりするわけ?
>155
その辺の議論(つか説明)はあらかた終わってると思うのだが……
つか、エロゲの95%はセレロンの300MHzを必要としないと断言する
PS/SSに程度に移植出来るからだ
DCは微妙
>157
ハードウェアのこと何もわかってないんだね。
そうだな、分かってりゃセレロン300なんて高すぎる数字出すわきゃ無いな。
一般ゲーの95%もセレロン300を必要としないと思われ
エロゲに大手が参入してほしい
■が参入してみんなのハード交換させろ
PSでは、
・拡大縮小半透明をハードウェアの機能として持っている。
・最近は高解像度のゲームもあるが一般的に解像度が低い。
・色数が通常は15bitハイカラーである。
二番目、三番目が満たされるならセレロン300は必要ないね。
なんで100%ってハイクオリティの画像とかイッパイ使ってるからでしょうが
あー……
CPU使用率100%≠CPUの性能を100%使っている、なのです。
>>161 そして、上がった性能を全部ビジーループで無駄に消化するのか。
あほらし。
このスレ、エロゲのCPU100%の内訳が分かったので割と有意義だったよ。
しかしまさかマウスイベント待ちの空ループだったとは、ちょっとびっくりした。
>>161 ■はむしろ脱退したんだがナー
相棒のエニックスも
コーエーも脱退組み、
今じゃ立派な一部上場企業だ、出世したもんだな
>166
エロゲに限った話じゃないけどね。一般ゲでも事情は同じ。
本当にCPUを100%使い切ってしまうプログラムなんて
そうそうお目にかかれるものではありません。
しかし、確かに有意義だったなあ。
ここまでCPU使用率信仰がユーザに根強いなんて、知らなかった。
エロゲユーザ相手にものをつくるには、とりあえずCPU下げとくのは
有効だということだな。
プログラマの腕の問題ではないが、ユーザ感情の把握という問題ではあった。
↑
ヘタレ紙芝居プログラマ、まだ言っているし(w
これがゲーム以外ならCPU使用率下げるなんて当然だろうに
別にノートや静音でなくても裏でスキップさせたまま他の作業をしたりするのでアイドル時間を食潰されるのは迷惑
ゲーム以外のアプリは、ほとんどの場合、Windowsのメッセージにだけ反応すれば良いので、
わざわざCPU占有する方が面倒くさいので、当たりまえ。意識的に占有率下げる努力なんて
やってないよ。
>171
アイドル時間の意味が分かってない人ハケーン
>172
ゲームの場合、逆だからなあ。ほとんどのメッセージには反応しなくてもいい。
必要なときにだけ必要なメッセージを読みに行けばいい、という仕組みだから。
本気でROやQuakeがCPU使い切ってると思ってる人は
どのくらいいるんだろーか。ユーザって結構騙されやすい?
>170
結局、こういう根拠のない差別意識の問題でしかないのね。
上のほうでやられてた(初歩だが)技術的な話にはついてこれなかったとみた。
何はともあれさ、ユーザに素人が多いんだったらとりあえず素人の喜ぶようにしておけばいいんじゃないの?
>175
そうだね。だからうちではそうしてます。
ノートや静音を気にするというのは確かに納得できるしな。
スレの上から順に100%にならないメーカー
age
コンプリーツ ショウケース
Studio Kinky
たまソフト
Survive
VisualArt's系全般
Nail
cyc
WILL系全般
BasiL
minori
注意!(自分で確認してません)(w
100%になるメーカー
その他ほとんどのエロゲメーカー
もうちょっと少ないと思われ<100%になるメーカー
汎用エンジンはだいたいCPU使用率を下げるように作ってあるでしょ。
(クレーム入った経験があるだろうから)
一般ゲームやコンシューマゲームの流れを汲むプログラマだと、
言われない限り100%で作っている可能性がある。
>>173 NORMAL以下の優先度のスレッドにほとんどまわってこなくなるんだが…
戯画のBALDR FORCE立ち上げたら100%なんだけど、
この辺りのゲームなら100%でもかまわないでしょ
>179
何をやってるスレッド?<NORMAL以下
>180
常に100%でぶん回してるなら、明らかに改善可能なんだが、それでも
そういう風に思うのか? ほとんど気分の問題だな、それじゃ。
まあ、お客様の気分は尊重するけどよ。
>>181 一番困るのはVCLのUIhelperスレッド
タイミング次第でしばらく操作不能になる
何をやっているのかは不明
>>179はNORMAL未満の間違い
とある100%になるエロゲで試してみたのだが、AviUtlでムービーを
変換する処理は、優先度をLowestまで下げても別に止まったりはしないぞ。
確かに若干遅くはなるようだが。
そのUIHelperスレッドの内容は知らないけど、相当にスレッドの優先度を
低く設定してあるんじゃないかな。
>177
>100%にならないメーカー
>Nail
>minori
CPU使用率が低いことと良質なプログラムとは全く関係無いって言ういい見本ですな。
遅いアプリは結果としてCPU使用率100%になるものが多いが、
CPU100%だから遅いとは限らない。
他のアプリを重くするアプリはCPU使用率100%になるものが多いが、
CPU100%だからといって他のアプリを重くするとは限らない。
>>181 普通のゲームで100%は許せるけど紙芝居で100%は許せないって事だろ。
バルドフォースには紙芝居シーンもたくさんあったんじゃねえの?
たとえばROは君のいう紙芝居ゲームには入らないのだろうが、
付けっぱなしで他のことをする(もしくは寝る)ケースがエロゲ
よりもずっと多いので、他のアプリやCPU発熱や静音への悪影響は
エロゲより大きく見積もられるはずだ。が、誰も何も言わない。
AFKの間CPU使用率を下げる機能くらいは作れそうなものなのだがね。
結局、CPU使用率云々にこだわるのは一部のエロゲユーザだけなのだ。
その一部の人を相手にしている以上、下げなきゃしかたないんだけど。
だいたい、今売れてるエロゲって多くが紙芝居じゃねえか。
エロゲプログラマが紙芝居しか作れないんじゃなくて、
紙芝居のほうが費用対効果が高いから紙芝居を作ってるんだ。
消費者が望んだことなんじゃねーか。
その結果こうなってるだけのことを、差別意識の根拠にしてる
んだから、所詮エロ業界というのは賎業なんだなと思うよ。
DirectXを使ったゲームは、必ず100%になるからしょうがない。
という事を昔どっかのスレで数回見たことあったような気がするけど、
そうじゃないと言うことでいいでつか。
>189
DirectXったって、使い方は色々だし。
DirectSoundだけ使ってるなんてケースも多いしな。
>>187 バルドフォースを紙芝居目当てでやった奴どれぐらいいるんだ?
紙芝居もあるゲームと紙芝居しか無いゲームを一緒くた……。
>>188 そもそも出てるソフトのほとんどが紙芝居なんだから
売れるソフトの多くが紙芝居になるのも当たり前だと思うんだが?
紙芝居すらバグ連発な物があるぐらいなのに他の物を作れると?
>>23 亀レス
最近のVisualArt'sのシステムは自動文字送りついてるよ(オートモード)
CPU使用率は当然低い
>191
バルドの紙芝居部分のCPU使用率は?
何か勘違いしてるよーだが、普通のアクションゲームならエロゲ屋にも
作れる奴はたくさんいるぞ。さすがにMMORPGとかになると難しいがな。
専門学校出で就職活動でその手のものを持ち込んでくる奴はいくらでもいる。
きっと、それで驚いてもらえると思ってるんだろうけどな。舐められたもんだ。
プログラムよりも、むしろ素材をそろえるのが難しいんだよ<アクションゲーム
その割には紙芝居ゲーに比べて特に儲かるわけでもないし。
うちの業界では、紙芝居の作り方を知ってる奴のほうが偉いのよ。
ところで、スキップモードで100%になるのはまずいんだろうか?
>>191 個人的にゃバルドの紙芝居部分のCPU部分なんてどうでもいいよ。
つーか全部スキップだから100%でもいいからさっさと次行ってって感じ。
(実際は結構時間かかっていらつくんだが)
しかしアクションゲーム作れる奴はたくさんいるという割には
紙芝居以外のゲームもろくでもない出来なのが多いような……。
>194
全部スキップって、エロシーンも見ないのか?
お前なんのためにエロゲやってるんだ。いや、どうでもいいが。
たとえばどんなものを指して言ってるの?<ろくでもない出来
プログラムがろくでもないものが多いかどうか判定できるほど
そもそも数が出てないだろ<紙芝居以外のゲーム
むしろ、コンシューマから都落ちしてきたプログラマのほうが、
CPU使用率とかパソコンで使う上での細かい気配りに無頓着な
率が高いんだが……。
>>195 サバイバルをプレイするための苦行としか思ってませんでしたが、何か?
個人的にはバルドシリーズはエロゲーをやりたくてやってるんじゃなく
バルドシリーズを、絶滅寸前の非3Dアクションゲームを
やりたくてやってるんだから正直それ以外はどうでもいいって所。
ろくでもない物?一番印象に残ってるのはエナメルパニックだな……。
イリュージョンの3D物も遊ぶとろくでも無い物が多いが
あれはプログラムより仕様切ってる奴の問題だろうなぁ……。
コンシューマー落ちの方が無頓着って所は同意。
>196
エナメルはヤバかったらしいね。とびでばいんはいい出来だったな。
絶滅寸前というほどでもない。同人で作ってる奴らはたくさんいる。
金にならないから、趣味でしかやれない。
イリュージョンは、ダーティペアみたいなガンシューRPGが
出てたが、あれはなかなか。最近のバカゲーは色々微妙なのが多いが。
199 :
名無しさん@初回限定:03/05/06 19:50 ID:Ine0VnWm
>>150 >使用率を落とすのは基本的に誰でも知っているレベルの知識で事足りるので誰でも出来る
>ということであって、常時100%だからと言ってプログラマの腕が悪いというわけではない、
誰でも出来ることが出来ていないプログラマは、腕が悪いプログラマと思われ(w。
あぼーん
>>199 んじゃ、お前はカーマックの腕が悪いと言うんだな?
ところでカーマックって誰?
勝手にまとめ
・多くのプログラマはCPU使用率が100%になってしまうことを重要視していない。
仮にループ待ちでCPUを100%占有していても、他のプロセスが実行可能状態に
なればきちんとスケジュールされるため、システム的には問題がない(はず)
ためである。
・コンシューマ畑でやってきたプログラマはCPU使用率が100%になっても
全然気にしない。30fps(今なら60fpsか?)を死守することが、プログラマの
使命だと刷り込まれているからである。
・CPU使用率を下げることは全然難しくない。
ループにSleep()を突っ込んだり、排他制御によってマウスクリック等のイベントが
発生するまでスレッドを休眠状態にすれば良い。
結論としては、
プログラマ
・意外と多くのユーザがCPU使用率を気にしているようなので、これからは
己の保身の為にも(藁)CPU使用率を下げるようにプログラムを組むべき。
ユーザ
・CPU使用率が100%にならないプログラムを希望するユーザはアンケート等で
それを書くべき。クライアントから要請されれば、プログラマはその通りに
組むだろうから。
エロゲーの CPU 使用率をあれこれ考えるのはいいんだが、
Win95/98 は CPU のアイドル時には、ダミーループをぐるぐる回しているだぞ。
この中に Win95/Win98 でエロゲーをやっている奴も結構いると思うが、
ちゃんと CPU クーラソフトを導入しているんだろうなぁ?
でないとエロゲーが CPU 使用率を下げても意味がないぞ。
# Win2k/XP は大丈夫だ。アイドル時には HALT を掛けて CPU を停止させる。
# 電力消費が押えられて、発熱も少なくなる。
# WinNT4 は single-processor kernel 時には HALT だが、multiprocessor
# kernel 時には 95/98 と一緒だ。
# WinME のことは知らん。
205 :
名無しさん@初回限定:03/05/07 00:14 ID:ffQM5DTA
>>204 98なんか使ってる奴は使用率なんか気にしないよ。
ここで問題なのは、2kやXPでエロゲが100%使うとHALTが効かなくなって、
発熱が上がってしまう(ノートの場合は騒音増)って事だし。
あぼーん
あぼーん
あぼーん
>199
だから100%にするプログラマも出来ていないんじゃなくてやってないだけ
出来ないわけじゃないってこと、
だからやってるプログラマは腕がいいんじゃなくて、
HALTが効かなくなって発熱が上がってしまったり、
ノートでファンが回って騒音出すような状況を想定して作る
気遣いをしているプログラマってこと、
腕がいいかどうかの判断にはならない
ちゃんと読め、それとsageろよ、広告ばっかじゃん
>202
ゲームプログラマとしては恐らく世界でも1・2を争うアメリカ人
ゲイツやジョブスも彼の言動には注目している
詳しく知りたきゃ「John Carmack」でぐぐれ
John Carmack
>だから100%にするプログラマも出来ていないんじゃなくてやってないだけ
>出来ないわけじゃないってこと、
プログラミングに限らず、ありとあらゆる事でその道のヘタレの定番台詞だな(w
「出来ないんじゃない、やらないだけ。漏れが本気を出してやれば出来る。」
>>211 いやはや全く>定番
出来ようが、出来まいが、「やらない」という点においてカスタマーにとってどっちでも一緒。
免罪符になんかなってやしねえよ。
可能論でなく実際に提供されているかが重要。
コーディングの難易度が全て、と考えてる香具師が一人居るな(w
多分、低学歴だろうな。
難易度の高い(って程難儀でもないが(w)コーディングをこなす腕前なんて、
障害の起こるケースを事前にどれだけ予想できるか、の能力差に比べれば、
誤差なワケだが。
そもそも、CPUタイムに限らず、何であれホストのリソースを100%使うアプリ、
-それもユーザからの入力待ちが処理時間の大半を占める-に、何ら違和感を
感じ取れない感性がもう、ダメダメ。プログラミングセンス、ゼロ。
本当の素人なら「やぁ、マシンの性能を全部引き出してるな。頑張ってるな」とか
思うのかもしれないけれど、プログラマがそれじゃダメだろう(w
エロゲプログラマが馬鹿にされる理由の一端が垣間見えた気分。
ようするに、カーマックはダメプログラマということで、
このスレ的にはFA?
エフェクトも効いてない時の、静止画1枚と、
音楽が鳴ってるだけで100%ってのは耐えられんということだ。
>216
>214は全てカーマックにも当てはまるわけだが。
カーマックは紙芝居を作ってるのか?
>218
一般ゲーでだって、CPU使用率を下げることは可能。やってないだけ。
あまり動かないタイトル画面とかポーズ画面ならほとんど0にすることが
出来るだろう。ゲーム中だって、ちょっとオプションで1ミリ秒の
スリープ時間を挟むモードを作るくらいならできるはず。
例えば俺がそういうのを一番感じたのはROだな。
そういう意味でなら、CPU低減モードがあったっていいはずだ。
たとえば商人が座ってるときとか。
>214の指摘は全部一般ゲプログラマ、たとえばカーマックにも当てはまる。
本当にCPU使用率を下げようのないアプリなんてそんなにたくさんない。
エロゲだけはダメで他のはOKといってるのなら、それは単なる差別意識。
紙芝居はダメで他のはOK。だろ。
紙芝居ごときで100%食うなって事だ。
だから、紙芝居であることとCPU使用率を低く出来るということには
関係がないんだということを言ってるんだけど。
エロゲユーザには論理的思考能力がない、ということでFAかもしれないな。
まあ、ユーザがうるさいからうちはCPU使用率は下げてるけどよ。
>214
VBで会計ソフトの入力フォームを組んでる程度なら、
コーディングの腕前なんか誤差だろうけどな。
>>221 で、関係ないから紙芝居ごときで100%使ってても許せと?
エロゲ開発者には論理的思考力がない、って事でFAだな。
赤信号、みんなで渡れば怖くない
エロゲー≒ベンチマークソフト
ゲーム≒ベンチマークソフト
このスレは、
業務系出身プログラマ
(CPU 使用率は極力下げるのが当たり前)
コンシューマ出身プログラマ
(CPU使用率?そんなの気にしてどうする?)
ナイーブなユーザ
(ファンの騒音ウゼー。だから、CPU 100% になるプログラムはダメプログラムだ)
の3つの成分から成り立っています。
↑
あと、カーマック信者
(カーマック様がCPUタイム使いまくりだから、漏れの紙芝居プログラムもCPUタイム使い放題でオケ)
漏れは今日からカマーク様を崇めるです
あと、アクションゲーム信者。
アクションゲームはスバラシイから俺達のCPUどんだけ浪費してもOK。
技術的に可能でもやらなくてよし。
エロゲ? クズだから、CPUを1%でも無駄遣いしやがったら殺す。
……なんでエロゲやってんだ、お前ら。
エロゲはエロゲであってゲームじゃないからな。
で、「ゲーム」ならどれだけ「無駄に」CPU浪費しても怒らないんだろ?
ただの差別意識じゃねえの。
差別されて当たり前だろ。お前はカーマックと同レベルの仕事やってると思ってんのか?
>だから、紙芝居であることとCPU使用率を低く出来るということには
>関係がないんだということを言ってるんだけど。
関係大有りだろ(藁
その差別の対象の奴らが作ってるもので汚いものしごいて
ヘンな汁出してる分際で偉そうなこと言うんじゃねえや。
>>235 へんな汁まみれの金で食わせて貰ってるようなもんだろ、お前はw
さすがしょぼい紙芝居しか作ってないくせに
カーマックと比較されたいお方の言うことは違うねぇw
食わせてもらってる覚えなんかないがな。
買いたくなきゃ買わなきゃいいだろ。
生活必需品じゃなし、その寂しいチンコを慰める方法を
選択する余地はいくらでもある。
夏になると、文句が多くなるんだよなぁ・・・<<CPU使用率が100%
>>237 買わなくなったらお前の仕事はどうなるんだよw
まあ買う人間も大抵絵師やライターや音楽屋目当てだと思われるんで
お前の仕事はエロCG集のindex.html並の扱いなわけだが。
エロCG集の売上が紙芝居エロゲよりもはるかに低いというのを知っていて
そういうことを言っているのかね。
エロCG集の売り上げの話なんか誰もしていませんが?
エロCG集で言うところのindex.html並の重要度のしか無いと言ってるだけですが?
もっともindex.htmlの方がCPUを100%食ったりしないし
こんな昼間からカーマック云々とか言い訳しない分マシかもしれませんが。
全てのゲームがHTMLで供給される日が来るといいですね。
そうなってカーマックと比較されたい自称プログラマが失業すると嬉しいですね。
そうだね。それでいいんじゃない?
ま、俺は君みたいなユーザを相手にしないで、普通にお金を儲けさせてもらうよ。
君の包茎チンコにひれ伏さなくても、普通に仕事はとってこれるんでね。
っていうか、すでに自社で抱えるプログラマが要らない環境はできてると思うのだが
ではNスクマンセーさん、どうぞ。
↓
>>244 君は変な汁出してる包茎チンポのせいで飯食えてるくせにその自覚無いのか
それを認めたくないのか、どっちにしてもかわいそうな奴だなぁw
変な汁出すための紙芝居以外の仕事取れるんなら取ってこいや。
やってるけど?<他の仕事も
VBで会計ソフトの入力フォームか?頑張れよw
それよりはもうちょっとお金の取れて高度な仕事。(w
常時100%にならないエロゲーって、だいたい2%くらいだよね。ペン4 2.5くらいで
100%か一桁かしか普通はない。
例えば50%程度消費するプログラムを作るほうが難しい。
253 :
名無しさん@初回限定:03/05/09 21:04 ID:lwLwvNi4
カーマックが集うスレはここですか?
#誰だか知らないけど。
以上、ロメロの自作自演でした。
スリープ挟むだけでCPU使用率を見せかけだけさげているのは萎える
>なぜ、ゲームプログラムをWindowsの規則に従って作らないのかと言うと、誰でも簡単にゲームロジックを書ける環境=システムを用意したいからです。
つまり、低脳なエロゲプログラマにもゲームが作れる環境を、というわけですな。
エロゲプログラマがもっと賢ければこんな必要無いのにね。
442 名前:名無しさん@初回限定[sage] 投稿日:03/05/10 00:30 ID:DaiZwkUa
練習も結構だけど、絵は才能だからのォ。
君はよそのスレでも煽ってばかりだね
>>256 実際には、DOSの頃からのシステムをそのままWindowsに持ち込んだからなんだけどな。
>>259 彼は、「エロゲ関係者なんて、最下層だ、自分より下なんだ、そうじゃないとオレが可哀想だ」な人なんです。
261 :
名無しさん@初回限定:03/05/10 01:29 ID:x6y70z98
>>256 なんだ、結局プログラマが馬鹿なだけじゃんw
あぼーん
ユーザよりも内部開発者を大事にするプログラマなんてイラネーヨ>セノオ
ユーザの嗜好が
100%キニシナイ>100%ウゼー
だと判断した上で、ならば生産性が上がる手法の方が得策って見解だろ。
>ゲームはこの仮想OS上で動作しています。そして、そのゲームのコードを書くプログラマは仮想OSの存在は知っていても、Windows の存在は全く意識していません。
こういうシステムを作っておけば
DOS→WindowsになってもWindows→新OSになっても
ゲームを作る部門はそれを全く意識せずに作業を続けられる。
新OSに対応した仮想環境ができればすぐ新OSに対応したゲームを出せる
PCを使い始める人たち(新しいユーザーになる候補者)は、
大抵そのときの最新OSの入ったメーカー製PCを買ってるから
新OSに対応したゲームを素早く出すことは新規ユーザー獲得には有利になるんじゃないの?
>255
今エロゲユーザにより「見かけのCPU使用率」という
新概念が提唱されました!(w
見かけの使用率と実際の使用率ってどう違うんだよ。
俺達に何をしろというんだよ。
アリスソフトがCPU使用率が100%についてコメント出すとは思わなかった。
説明したことについては好感持てるのでは?
イモヲガンガレ
まあ、一般人にはSystem3.xの方がWindowsよりわかりやすい なんてことは無いと思うが
もしやエロゲプログラマは未だにメッセージドリブンが理解出来ていない説。
>>265 あと、Windows→ゲーム機という流れも想定してるんではないかと。
System3.xってDOSゲーそのまんまの作りじゃん。
ビジーループマンセー、メッセージドリブンなにそれ?でしょ。
>>270 プログラマじゃなくてスクリプタが、じゃねーの。
つってもシーケンシャルなスクリプトデコーダをメッセージドリブン下で実装するのは別に難しい話ではないわけだが。
つーかさぁ、アドベンチャーゲームしか出さないようなメーカの作るシステムじゃねーよ>System4
いかにも技術オタがやりそうな勘違い設計。
勘違いつーか、あれが非常に偏った設計であることは誰もが認めるだろうが、
妹尾氏が優れたゲームプログラマであることも、また認めざるを得まい。
まぁね。
「シーケンシャルなスクリプトデコーダをメッセージドリブン下で実装した」
商用エンジンの例があるかな。まあ、実行時の挙動では分かりようが無いから、
誰かの自己申告を待つしかないが。
別に難しくは無いからといって、わざわざコードが複雑になるめんどくさい
方式を選択する必要はあるまい。そっちのほうが技術オタ的だ。
ナイーブな素人ユーザーの私見だけど、
わざわざ使用率を確保しているという割には、
本体部分以外がレスポンス悪いと感じるモノもある。
そういう所にも不満があるな。
あんまり使用率とレスポンスって関係ないしな。
元々重いアプリは、使用率を下げたからといって軽くはならない。
>>277 NScripterのCPU使用率か。ちょっと興味あったんだよね。
月姫アンインスコしちゃったから、どうだったかなとは気になってたんだけど。
281 :
名無しさん@初回限定:03/05/10 20:45 ID:gBJ7b6zy
>>277 ノートPCでそのページのプログラムで検証してみました。
CPU使用率age
ファン:間欠稼働(5〜10分毎に10秒程度稼働)
CPU温度:51℃
内部温度:42℃
CPU使用率sage
ファン:常時稼働
CPU温度:60℃
内部温度:47℃
システム
CPU:Celeron1.6GHz
FF:A4
GPU:GeForceGo420
作者さんへ
このような結果になりました。
SystemIdleProcessを食いつぶすCPU使用率100%は論外と感じます。
282 :
281:03/05/10 20:46 ID:gBJ7b6zy
すいません、逆でした。
>>277 CPU使用率sage
ファン:間欠稼働(5〜10分毎に10秒程度稼働)
CPU温度:51℃
内部温度:42℃
CPU使用率age
ファン:常時稼働
CPU温度:60℃
内部温度:47℃
>>281 ノートユーザーにはかなり辛い物があるね、常時100%。
そんなに差が出る物だったんだ。
その辺のことは、このスレでもだいぶ上のほうで指摘されて
特に異論も出てなかったのではないか?
k6-2-300 メモリ72M VRAM2Mでマブラヴをプレイしましたが何か?
全然画面動きませんでしたが何か?ムービー守るべき世界で止まってしまいましたが何か?
PC買い替えました……
メッセージループと同じスレッドで処理してるのか…
俺も
>>277試してみた
使用率age
CPU温度:38℃
使用率sage
CPU温度:36℃
CPUはTualatinコアのCeleron1.0GHzでOSは2000
確かに差は出るけど大したことないね
暑苦しいCPUを掴んじゃった人はご愁傷さま
>>285 ビデオカードが原因だな。
チップ名が書いて無いけどVRAM2M世代だとミレが最速。
試しにK6-2 350MHz 128M ミレ8MBでマブラヴやってみたけど
「全然画面動きませんでしたが」程ではなかったぞ。
ビデオのチップ何だよ?
289 :
名無しさん@初回限定:03/05/10 23:27 ID:ESTN3N8B
>>287 フォームファクターは?
A4とB5だとだいぶ冷却能力変わるし。
ファントかは回ってる?
静かそうなら漏れもそのノート欲しい。
>>287 差が大したこと無いのはTualatinの特性です。
つまりidleでも消費電力に大差ないと……。
吉里吉里が完全にイベント駆動だったな。
あれはなんというか、あほ。
メッセージドリブン・・・おお新しい言葉だな!!?
んーーなの気にしているプログラマーなんていな(ry
エンジン作って1回もつかわれないなんてよくあ(ry
今問題が多いのはCPUよりビデオカー(ry
馬鹿でごめん
ほら、アタリのふるーい車モノのゲーセン筐体あったじゃん?
マジレスすると、メッセージドリブンという言葉は全然新しくない。
ぐぐってみれ。いっぱいヒットするから。
牛を轢きたくなってきた
>>293 それは「××drivin'」(××部分は数種ある)だ!
むしろスタ公主演のインディレース映画の方が適当。
>>294 マジレスありがd
VC++6のときに知ってたけど、今じゃそんな細かいこと気にしなくなったなー
あぼーん
300 :
名無しさん@初回限定:03/05/11 05:49 ID:L5aBNWTt
>>288 Trident社製のオンボードです。TGUI9680XGiの2M.だと思う。
302 :
301:03/05/11 07:58 ID:AaBysZ3a
PC9821のやつです。
>290
でも、どちらにせよ>281のCPUよりは温度低いわけだ。
Idleで下がらないと言うよりは、稼動中に熱くならないと見るべきでは。
最近のノートは放熱に気をつかってるんだねー。
今流行のセントリーノとかはどうなんだろ。
>>303 Pen4より熱くならないと言うだけでIdleで下がらないのは事実。
他のCPUだとIdle時の電流が1/3とかそれ以下になったりするんだが
Tualatinだと3/4ぐらいにしかならないのです。
Idleで下がらない、も、稼動中にあがらない、も、現象としては同じ。
で、物理的に>287のCPUは>281よりかなり熱が抑えられている。
>281のsage状態よりも低いくらいの>287のage状態は、プラスに評価すべきでは。
>287のCPUなら、使用率はそれほど気にする必要も無いということだ。
>>304 >303が言うように、>282の使用率sageよりも>287の使用率ageの方が
熱くないのだから、はなからIdle時の電力制御など考慮しなくてもいい
ような優れた設計と考える方が正しいのでは?
307 :
名無しさん@初回限定:03/05/11 15:05 ID:OsjFs+Q9
うわ、かぶった……
あぼーん
>>305 一緒じゃないんだな。
この場合比較対象がPen4系だったから勝ってるだけなんで。
Idle時でもPenII-450辺りより電流高いって辺りで……。
重要なのは、放熱に関しては勝っている、ということと、
その機種でCPU使用率下げてもあんまり意味ない、という
ことであり、CPUの系統がどうこうという話じゃなかろう。
まあ、サンプルが>281と>287だけではなんともいえんけど。
単にどちらかが極端な例だったという可能性を捨てきれない。
じゃぁ100%占有しててもいいじゃん。ビジループマンセー(゚∀゚)アヒャヒャヒャ
とか言い出すんじゃねぇだろうなオイ
別に何も主張して無いだろ。ただデータを分析してるだけだ。
どうしてそんなに必死なんだ?
Blaze of Destiny 80%〜90%くらいだった P4 2.53
その中途半端な数字は、本当にCPUを使ってそうだな。
Busy LoopのアフォAPならDiskにアクセスしてない時は常に100%近くをKeepしてそうだしな。
>>301 それはつらいよ。
98x1はATより遅いし。
バンシー挿せば早くなるかも。保証は出来ないけど。
俺も386の12MHzで東鳩や放課後恋愛倶楽部やって紙芝居の経験が…
Sys4にしろNスクにしろ、くだらねー自己弁護してる暇があったら
入力待ちでスレッドを待機させるくらいのことはしろ
CPU時間はてめーのものじゃねーんだ(゚Д゚)ゴルァ
まだ素人がいるようだが、入力待ちでビジーループさせているのは
スクリプターだ。
>318
Nスクはしてるって書いてるが。怒る前にちゃんと読め。
責任転嫁かよ。
まだ素人がいるようだが、入力待ちでbusy loopする必要のあるシステムを作ってるのは
プログラマだ。
でも、アリスのシステム並のものを作れる人間を
アフォだとか腕が悪いとかは言えんわなー。
結局素人目には「ちょっと変更するだけだろ」な変更点も
商用ソフトには個別にデバッグ必須な変更点で、
デバッグするには金がかかって、
そんな変更に金かけるくらいならもっと他に金かけるべきところがあるってことか
藪をつついて蛇を出すって言葉もあるしな
腕が悪いのとアフォなのは別物だな
でも、Nスク並のものを作れる人間を
アフォだとか腕か悪いとかは言えんわなー。
Nスクは割とアホでも作れると思うが。世渡りが上手いだけで。
というか、Nスクは100%にはならないのだそうだが。
アホ以下が大勢って事か……。
ここで何だかんだ言ってる人って、実際にノベル用のシステム組んだことない人がほとんどでしょ?
口で簡単に組めると言われてもねぇ
↑
328はBusy Loopでイベント待ちするダメプログラマ
↑
お前、ダメプログラマって言いたいだけちゃうんかと。
ところで、いちいち英語でbusy loopとか書くのキモい。
普通にカタカナでビジーループて書けばいいじゃないの。
プログラマと非プログラマの間には海よりも深い溝があるのだよ。
わざわざカナmodeから英語modeに切り替えてtypeしてるわけだろ?
そういうめんどうなことをやるmentarityが、俺はtechnical termを
使いこなしてるprogramerだぞというヘンなself-consciousnessを
想像させてキモいと。
ぎゃー、mentalityだった。鬱。
336 :
名無しさん@初回限定:03/05/14 09:24 ID:EKyOnbWk
>>334 かなと英語の切り替えなんてボタン一つだろ?
その程度のスペルもミスるくらいなんだから無理すんなよ(禿藁腹痛
あぼーん
ジョージ100%
Nスク
スレタイは「不必要にCPUを使わないエロゲー」の方がよかったんでは
>>331は「CPU」を「シーピーユー」とか表記するのに余り抵抗無いかな?
セントラル・ループ・ユニットに改名すれ
>336
この程度のことで勝ち誇れて人生幸せだな。
>340
「エロゲオタな他業種プログラマはキモい」スレのほうがよかったかも。
>341
CPUは、日本語でもふつうにCPUだし。
334=343 必死だな
「エロゲプログラマはキモい」スレがいいな
じゃあ、ふたつあわせて「プログラマはキモい」スレということで
プログラマとエロゲプログラマは、
漫画家とエロ漫画家位、全然違うことが分かった。
名前が一緒なだけでプログラマはエロゲに限らず全然違うもんだろ
非プログラマな1デスクトップユーザの個人的意見ですが
少しスレ違い的なレスも含んでしまってますのでご容赦。
アリスのsystem3.x系はエスカレイアーのsystem3.9を使って
6年前の鬼畜王ランスが動作させれるから、単純にしっかりしてると思います。
(アンチエリアス等の新機能が発揮されるがsavedataの互換性はないみたい)
普通にAVGのゲームエンジンと比較すると基本機能が野暮ったいけど。
VA系のAVG32ではSYSTEMverの互換性が(手持ちの昔のゲームでは)ないか乏しいみたい。
自分はプログラマでもなんでもないけど、PCゲームは本編のシナリオにはさして期待せず
インターフェイスやシステム、ゲームの見せ方に興味があるほうだけど、
「いつものシステムでいいや」という意見は発展性が無くて嫌いだから、
独自なゲームシステム組んで、結果的にバグが出たソフトは、VAのソフトより好きなままです。
XPのノートユーザの人が発熱等ですこぶる不満なのは分かったけど、
少なくとも上に書いたOSのヴァージョンが変わるたびに動かなくなるようなゲームよりは
サポート対象外のOSが出ても不自由少なく動くプログラムの方が有り難いです。
(中古売りしないので、リニューアルでないと動かせないというのは不経済性が高すぎる。)
>349
上位互換性を云々言うのもちょっと違う気もする。
ゲームそのものとセットでそのゲームを動かすのがそのエンジンの責任だろ。
それに、VAのエンジンのほうがむしろ細かく機能が増えてる気も。
サポート対象外でも、言えば対応版作ってくれるだろ。まだやってる会社は。
XPはかなりの普及率があるしな。
仕事は増やさない、バグは出さないに越したこたない気がするが。
特に新しいことやらないなら、システムは既存のでいいだろうに。
VAのエンジンは2001年後半あたりで交代してるもより
AVG32→VisualArt’s ScriptEngine RealLive
素晴らしい完成度だ。
そういやここは業界板だったな・・・
ネクストン系列ブランドの新スクリプトエンジン「LCSE」 CPU使用率100%でした。
BaseSon ONE2 with VOICE等
なかなか100%じゃないの探すの難しいですね。
>353
新しいエンジンだし、要望を出せばCPU使用率下がるかもね。
DOSの手法が体に染み付いたDQNプログラマが作ったエンジンならともかく、
最近のでCPUを無駄に使いまくりってのは何故だろう。
ある程度ベテランになると、年代から言ってほとんどのプログラマが
「DOSの手法が身体に染み付いて」いると思うんだが。
それとCPU使用率とは直接関係ないし。(某氏の見解はどうかと)
この業界で実力者というと、俺の知る限りほとんどが、
「DOSの手法が身体に染み付いたDQN」なんだよね。
DOSの手法をどうにかこうにかWindowsに適用しようと
して色々バタ臭いことやっている。
で、それにぶつぶつ文句を言ってるのが、
「Windowsの作法しか知らない理論倒れの厨房」
なんだけどな。人のコードを批判する前に、
バタ臭くても構わんからまず動くエンジンを
作って見やがれと。
Windowsとして模範的なメッセージドリブン機構で
ちゃんとしたエロゲシステム作ってる例ってあるのかね?
半分煽りだが、半分は興味。
うわべだけではわからんからなー。
VAのシステムとか、中身はどうなってるんだろう。
紙芝居に実力者も何も…(苦笑
>358
ふーん、そういうお前は何を作ってる人なんだ?
そういうpwdObsMWさんは?
君たちの言う紙芝居システムを作ってる。もちろん商業でね。
CPU使用率はいちおう下げてあるけどさ。
ふーん
うわべだけではわかりづらいな、たしかに。普通、仕様なんて
公開されないですしな。
Windowsとして模範的かどうかはしらんですが
確実にメッセージドリブンで動いてるやつは一つ知ってる。
363 :
名無しさん@初回限定:03/05/16 10:03 ID:BvACTYYP
age
紙芝居厨はもういいよ(w
あぼーん
あぼーん
367 :
hage:03/05/16 11:23 ID:6fIcEo4r
エロゲじゃないが鋼鉄のガールフレンド2nd糞重い
というか、別スレッドでスクリプトデコードしてしまえば
常時100%っつーのはなくなると思うんだが。
漏れはそれでやってる。
まあ、別な問題が出てくるのは確かだけども。
あぼーん
>>367 初代は「圧縮データ形式ってものを知らんのか?」な屁垂れプログラマの所為で
当時の標準的なCD速度では音はブツ切れアニメはカクカク、HDDにフルインスト
しようにも当時の標準的HDD容量の半分を喰う、って腐れ仕様だったが、
二作目もそうなのか?
>エヴァ1作目
押入れのどこかにあるけど探すの面倒だ(w
今のマシン(
[email protected]、メモリ1024MB、チーたん15K3、パフィたん128)
ならサクサク動いてくれるかな?
結局このスレでは、ただ「常時100%にならないシステム」が優秀、ということにだけに
焦点を絞っているのかな?
ノベルタイプならVAのシステムは省電力も兼ね備えて機能的かもしれないけど
ノベルよりゲームデザインが凝った、PRG風対戦やSLGなどの機能も実行するシステムを
ノベル風AVG専用のシステムと比べても条件が不均等だと感るのだけれど。
(3D処理でもないのに使用率100%か?という反論もあるかもしれないけど)
もちろん、処理の少ないノベルAVGをリリースする際に、システムをマイナーチェンジすれば
より好感は持てるけど、正直18禁ゲームのスタッフはプログラマがプログラムだけを担当
でしていられる程、暇はないところが多いと聞きます。
まあ自分の場合、CPUクーラソフトを当ててるのであまり気にしてないのがホンネですが、
要望が大きければシステムも改善されていくといいな。
373 :
名無しさん@初回限定:03/05/16 18:47 ID:eun9gzXH
>373
>287も一応参考文献に挙げておいてくれ。
>>374 あれはフォームファクタが書いてないからな。
SLGはCPU命つか、むしろCPUを遊ばせていてはダメでしょう。
入力待ちの時も当然裏でバリバリ先読みしまくってないと。
CPUを休ませて良いのはディスク待ちの時位か。
しかし、紙芝居は話が別。スクリーンセーバーよりCPUを
使っていたらもはやダメ認定。
はげどう。
思考ルーチンにSleep(1)挟むくらい出来そうなものだが。
つか、そこまで複雑かつ高速性の要求される思考ルーチンが、
いまどきあるか?
AOCの思考ルーチンとか、プログラミングできるから
いろいろ透けて見えるわけだが、そんなに頭良く見えない。
つまり「何もしなくていい時には何もしないエンジン」が紙芝居ゲーとしてはいいのですな。
>374-375
漏れの喝抜き鱈1.4G@MicroATXは、大凡>287と一緒。
だから、たぶん>287はノートではない。
>>380 デスクトップは冷却に余裕があるし関係ないでしょ。
今問題なのは冷却に余裕がないノートの話なんで。
>>378 スレッド分けて優先度下げとくとかね>思考ルーチン
まーなんだ。何か実のある処理をしているなら誰も文句は言わないさ。
世のエロゲシステムの多くがそうなっていないから、これだげいろいろ言われるわけで。
汎用システムにしても、入力待ちという概念が無いシステムを作るのはどうかしてる。
つまり、画面の端で薔薇でも回してれば、100%でも
文句は出ないんだな?
薔薇が回るなんてエロイな。
画面の端ってクリック待ちのアイコンの事か?
あんなので100%いくかよ。
エロサイトのチカチカするバナーでさえ数%しか食わないのによ。
ちがうだろ、つっこんでくれよ、かなしくなるじゃねえかよ!
御免…じつは、その通りなんだ…。
むしろエロCGの背景にたくさん薔薇があって
それらがクルクル回って欲しい。
…バカゲ―?
薔薇とは女性器のたとえなのか・・・それとも・・・
バカゲーなら100%食っててもいいぞ
それもネタのうち
マニュアルにはジョージが頑張ってますとか掻いとけ
ああ それならばなんか許せるな
ただ 俺を腹の底から笑わせてくれ
ヤケにsleep()のシステムコール呼び出す事を薦めてる奴がいるが、
君、busy loopなダメプログラマと大差ないぞ。構造が。
漏れはUNIX系とJavaばっかやってる他業種プログラマなんで
windowsのことはよく知らないから、とんちんかんかも知れないけど…
>>392 漏れにはsleepという発想がどこから涌くのかが良く理解できんかったのだが、
君のレスから察するにbusy loopの中にwaitの為のsleep()を入れるってことなん?
だったら、そのsleep()の代わりにGetMessage()を入れれば良いんじゃねえのかと
思うんだが。
エロゲで使うようなイベントは、全部GetMessageで待てるんじゃないの?
while {
入力状態取得;
}
を
while {
入力状態取得;
sleep;
}
にするってことだから大差ないどころか変わってない。
ウテナ……がくっ。
>394
でもCPU使用率は激減する。
そして、たかが数ミリ秒マウスクリックに対する反応が
遅れたところで誰も気づかない。
>>393の説でも
while {
入力状態取得;
GetMessage();
}
だから同じ。まぁsleepよりは幾分マシだが。
そもそもAP側が自前でユーザのオペレート待ちの空whileを持ってるのが
アフォな構造なのに、彼にはどうしてもそれが理解できないモヨリ。
当初は「CPU使用率下げるのは簡単(sleep挟む)だが、それではレスポンスが
悪くなる」と言い、挙句には「腕前とは関係無い!」とか言い出すし。
>そもそもAP側が自前でユーザのオペレート待ちの空whileを
>持ってるのがアフォな構造なのに
この部分はポーリングループの否定だよな?(メッセージドリブン云々の議論)
本来、CPU使用率とコーディングスタイルは関係ないはずなんだよな。
別に使用率100%を回避する方法はいくらでもあるわけで。
で、君は本気でゲームをメッセージドリブンスタイルで書くつもりか?
>「CPU使用率下げるのは簡単(sleep挟む)」
これは、俺は主張したけど、
>「それではレスポンスが悪くなる」
これは主張しなかったんだよな。
VF2の一フレームにも満たない時間応答が遅くなった程度で
いったい誰が気づくっての。
その「Sleepよりマシ」が「どの程度マシなのか」を実験できるサンプルが
Nスクの作者のところにアップされてるぞ。前のサンプルと比べてみれば
分かるが、何も変わってないようにしか見えない。採用は様子見だとよ。
実際にどうなるのかを比較しない理論には意味が無いぞ。
>>398 あれだと1msごとにループを回るから変わってなくて当然。
>399
たとえば、長い間他の処理をやっててメッセージ処理に
たどり着かない時間があることを想定してる?
それはSleepとは別問題だな。
メッセージドリブンとかマルチスレッドとかの話題になる。
でも、エロゲでメッセージ処理が途切れるとしても、
そんなに長い時間にはならないと思うが。
エフェクト中でもスキップ中でも、時々メッセージ処理を
さしはさむくらいは出来るしな。
>>397 CPU使用率を不必要に上げるのを避けたいなら、メッセージドリブンスタイルで記述するのが
正道であり、sleepは場当たり的な対処でしかないってことを言われてるんじゃないのか。
機能要件によってはポーリングループでしか実装できない部分もあるとは思うが、
メッセージドリブン・ポーリングループのどちらでも実現できかつCPU使用率を
極力まで落とす事を視野に入れるなら、まずはメッセージドリブンで実装する事を
検討すべきだと思うが。
(もちろんコストやメンテナンス性の問題もあるが、議論が発散するのでここでは省く)
なんでもかんでもSleepで対処、Sleep万能、メッセージドリブンスタイルはコーディング
スタイルの問題だから本論には関係ねーみたいな書き方されたら突っ込まれても
しかたないだろう。
>401
実際の動作が同じ(安全性が保証されている)ならば、
あと考えるべきはコストとメンテナンス性だけだろ。
大事なものを二つも省くなよ。
ポーリングループでSleep使用、もしくはMsgWaitForMultipleObjectsを
使用すれば、CPU使用率はちゃんと落ちるだろ?
ノートは発熱しなくなるし、実用上問題ないということになる。
あとはメンテナンス性の話になる。その点において、ゲームでは、
メッセージドリブンのコードはポーリングタイプのコードに劣る。
なぜメッセージドリブンを導入したいんだ? 解説してくれないか?
>>402 Windowsが元々メッセージドリブンを基本としている、てのじゃ理由にならんか?
何故メッセージドリブンという方式が出てきたかを考えれば、最初から捨ててかかる
理由は無いと思うが。
他の人はどう思ってるかしらんが、私は合理的な理由があってポーリングループを
使うのは構わないと思ってるよ。
が、それって個々のシステム要件による部分が大きいからどっちがいいなんて一般化
できるものじゃないよな。できるなら説明してもらいたいところだが。
で、今回はそういうところを抜きにして妙にsleepのみにこだわってるから違和感が
あるわけで。
ということで、
>なぜメッセージドリブンを導入したいんだ? 解説してくれないか?
むしろ何故ポーリングループのみに固執するかの方が知りたい。
あと、
>MsgWaitForMultipleObjects
これを使うのはメッセージドリブンと言わんか?
>403
理由があって捨てて掛かってるんだが。
例えば、シューティングのソースを書くときに、
Title();Game();GameOver();HighScore();Configure();みたく
処理を切り分けて書けるほうが、まずメッセージで振り分け
その先々で実行モードごとにさらに振り分けるよか、ずっと楽だろ。
メッセージドリブンだと、あとからモードを追加してくれといわれた
ときに、各メッセージ処理にバラバラに追加していかなきゃいけない。
>あと、
>>MsgWaitForMultipleObjects
>これを使うのはメッセージドリブンと言わんか?
少なくとも、Nスクの作者のあのサンプルはメッセージドリブンじゃないだろ。
ポーリングループの書き方を変えただけだ。
だれでもいいから、仕様が公開されているSystem3.9をメッセージドリブンで
書いてソースみせてくれよ。みんなプロなんだろ?
プロはそんなにひまじゃないよ。
原理主義的な理想と現実主義的な理想はしばしば違うもので、理想のぶつかり合いはみていてみぐるしい。
理想のぶつかり合いってのはちょっと違わない?
「現実的には」ポーリングループがメンテナンス性が高くて楽だ、という派と、
「理想的には」Windowsアプリはメッセージドリブンで組むべきだ、という派の
言い争いだろ?
メンテナンス性が高くて記述しやすいのも一種の理想だろ?
>408
あー、なるほど、そういう見方もあるのか。
エロゲプログラマの仕事の8割はメンテナンスとちょこちょこした機能追加
だから、その部分のやりやすさが全てだみたいな考えに染まってるなあ俺。
オブジェクト指向なメッセージドリブンに
非OOな作り方を持ち込もうとするからでしょ。
メッセージドリブンだからメンテナンス性が低いってことはない。
>411
ものの喩えだよ。一番極端で分かりやすいから出しただけで。
クリッカブルボタン、テキスト表示、画面エフェクト、ムービー再生など、
ADVを作るときでも動作モードは色々ある。
>410
そもそもオブジェクト指向がゲームに向いてるのかどうかという問題が。
アボガドパワーズのプログラマーかもしれん(w なんてなー
裏とかいう人か?
一言言っとくが、違う。
416 :
名無しさん@初回限定:03/05/17 20:08 ID:1t2DY4hD
Windowsプラットホーム上のGUIアプリケーションのプログラミングにおいて、
「メッセージドリブン方式は現実的ではない」と主張してる方が居らっしゃる
スレはここですか?
>416
現実にやってみれ。分かるから。
誰でもいいから、メッセージドリブンでゲームを書く利点を、
「他の一般Windowsアプリケーションがそうしているから」
以外にあげてみてくれないだろうか。
どっちが論理的に物を話しているか分かるってものだ。
一般的なPCゲーム ≠ Windowsプラットホーム上のGUIアプリケーション
吉里吉里がメッセージドリブン&オブジェクト指向スクリプトでノベルエンジンを実装しているので面白い例かも。
同人用エンジンはお呼びじゃないですが?
およびじゃない、ってのはちょっとキツいだろう。
あれはよくやってると思うよ。どこかで非効率性に気づいてるはずだが、
それでも引き返さずに教科書的なコーディングを貫いたのは偉い。
システムはメッセージドリンブンで書く。
スクリプトはシーケンシャルな言語仕様。
その差を埋めるのがプログラマの仕事。
スレッド使えば別にむづかしくもなんともないし、むしろ綺麗に仕上がる。
メッセージドリブンでゲームを書けなんて誰も言っとらんだろ。
あぼーん
エロゲに多い紙芝居エンジンは、シューティングゲームよりもむしろ
Webブラウザに近いんじゃないかなー。
…ところで、IEがBusy Loopで入力待ちをしてる、と思ってる人はいる?
とりあえずプラグイン経由でFlashを再生してる時も、CPU使用率は
100%には程遠いようだ(w。
あぼーん
Nスクの人の言い訳読んでると頭痛がしてくる。
なんつーか、パターンとか少しは勉強したら?
そのメッセージドリブンでオブジェクト指向な吉里吉里のソースを
読んでみろ。たしかに教科書的なプログラミングだと思うよ。
これを「美しい」と呼ぶことは出来る。いい仕事だとは思う。
この完成品をいきなり納品してもらって、今後弄る必要が無いのであればな。
君ならこれを設計してこの形までくみ上げるのにどのくらいかかる?
君はこのソースを現場の三日ごとにころころ変わる要求仕様に
あわせてメンテナンスしたいと思うか?
設計に時間が掛かる、オブジェクトごとに処理の流れが分散してしまい
ソースの見通しが悪くなる、機能追加を要求されたときにソース変更の
影響範囲をクラスを次々たどって調べなくちゃならないなど、
オブジェクト指向にも欠点がある。
とりあえず動くものを作り、仕様変更にもただちに対応する速さなら、
上に出てるNスクの人のサンプルを軸に作っていったほうが上だろうな。
>427
Nスクは100%にはならないんだそうだぞ。
言い訳とは違う気がするがな。
なるほどねぇ。
システムにNScripter使ったほうがよかった新規メーカーは、そこそこありそうだがな。
糞ゲーならかまわないが、
シナリオ&絵&音楽等が、そこそこ良くて、
システムがボロボロで評価されないと泣けてくるだろう。
>>428 いや、仕様変更に強いのもOOPならではの話であって……
> 影響範囲をクラスを次々たどって調べなくちゃならないなど、
逆でしょ逆。
クラスのインターフェースをきちんと定義してあれば、
その中がどんなになってても関係ないんだから。
なんか言ってることが
構造化言語しか知らん人が、オブジェクト指向言語の文法だけしってるって感じ
>>428 そりゃあんた、オブジェクト指向を誤解してるよ。
Nスクはその場しのぎの仕様変更や更新で、とにかく現場の要求を
満たすことだけをやり続けた、吉里吉里あたりからみれば異様に
不細工なシステムだ。そろそろ一から作り直せとは思うけどな。
美しいソース美しい設計が必ずしも金になるわけではないのが、現実。
>>428 オブジェクト指向ちゃんと理解してないんじゃ?
そんな欠点出るわけないんだが。
そういう欠点を極力なくすためにOOがあるんだし。
出るとしたらOOとはまったく関係ない
ただのへたれスパゲッティプログラム。
とはいえ、ゲーム開発で使えるまともなOO言語がないのもまた事実かと。
436 :
名無しさん@初回限定:03/05/17 23:29 ID:jtD1exop
大体分かった。
結局、このひとはイベントドリブンとかマルチスレッド等がよく判らないんだな。
発想が、DOS時代のシングルスレッドでビジーループのスタイルから全然抜
けられない訳。
ましてやオブジェクト指向なんて(w。
「クラス?ああ、構造体に関数が付いたやつね。意味ないな」とか。
きっとソースはコピペ改変が主体で、同じロジックがあちこちに点在してるな。
教科書にはそう書いてあるが、実際にはダメだろ。
仕様も固まってない頃からクラスを完璧に設計できる奴がいるか?
ゲーム開発の場合、仕様が固まってから作るなんて有り得ないし、
仕様変更に対して期間延長を要求出来るケースは少ないぞ?
いつまで立っても設計が終わらないか、仕様に合わない設計で
ソースがぐちゃぐちゃになるか、どちらかがオチだと思うがな。
最低限のラッパークラスだけ書いて、あとはベタベタの
コーディングしたほうが、少なくとも何をやってるかは
一目で分かる分、トラブルに対処しやすい。
>436
お前のコードはさぞかし高性能なクラスがたくさんあって、
中でどんなAPIを呼び出してるのか追いかけるだけで一苦労なんだろうな。
>>437 もしあなたがプログラムやシステム開発にかかわっているならば、
最近の開発手法について勉強するか、転職されることをお勧めします。
キーワードはXP、アジャイルなど。
>440
俺がいくら勉強したって、開発体制は変えられねえよ。
>>438 いや、きちんとOOPするとクラスというか、
メソッドは非常にシンプルなものになりますよ
キーワードはリファクタリング。
>442
きちんとOOP設計したりリファクタリングやってる暇のある
エロゲプログラマがどの程度いるものか。
そりゃ、ちゃんとやりゃあ美しいソースになるのは分かってるが。
で、予算はどこからでるんだ?
キーワードは金
キーワードはトータルコスト
その場凌ぎは結局高くつく
>445
最終的にはその通りかもしれん。
でも、目の前の金を拾わないと生きていけないのもまた現実。
その場しのぎをうまくやってのけるのもプロの才能なんだよ。
最後に破綻する前に、半年ほどでいいから、何もしなくて
ひたすら再設計に専念する暇が欲しい。
なんだか悲しくなってきた・・・・・・。
まーユーザからすればバグが無く快適なシステムであれば、プログラムの
中の人の事などどーでもいーわけで。占有率が高いのは嫌ずらって意見が
大勢なら、対応できないメーカは淘汰されるだろ。
占有率の話はもう終わっていると思うのは俺だけか?
現状の苦情の量は
「バグ多いぞ!」>>(越えられない壁)>>「CPU占有率100%って舐めてんのか!」
だろうし、
『バグ無く動く』が当たり前な状態にならない限り
『CPU占有率下げる改善』にまわる金は無いだろうなぁ
「CPU占有率は10%以下です! ゲーム? 動きません(ごめんなさいっ」じゃ意味ないし。
>445の言うようにその場しのぎ的にいじっても結局高くつきそうだし
つーわけでCPU占有率を考えるのはバグ無しが実現された後の次のステージなんで
現状ではあきらめれ、でFAか?
うーん、スレタイと直接関係ない話をやりすぎたかな。スマソ。
ポーリング形式だろうがメッセージドリブン形式だろうが、
構造化止まりだろうがオブジェクト指向だろうが、書き方によっては
CPU使用率は一ケタ台に出来るだろう。
で、その場しのぎ的に直す事だって出来るんだけど、今まで普通に
動いてるものがそれでトラブったらバカらしいからやりたくないって
のも、あるだろうね。
>>448 このスレはノベルエンジンをOOPで実装するスレになりますた。
OOP使うか否か等は臨機応変で考えるもの、だと思う。
拘泥しても仕方がない。
考えてみたが、正直、半年時間があっても根幹部分を
OOPで書き直したりはしないだろうと思う。
マルチメディア周りとかDIB管理とかを上手いこと
クラスで包んだりはするだろうけど、根幹は昔ながらの
メイン関数からのポーリングで作ると思うよ。
古いと言われようがどうしようが、この技術に熟練して
しまっている以上、わざわざOOPを導入したい理由が
ないからな。どうせプログラマは俺一人なんだし。
いつの日かコボラーのように肩身が狭くなる日が来るとしても、
そりゃ相当先のことだ。引退までは持つ。
あーそういえば
台詞と口パクが同期してるようなのって占有率下げることでずれたりしないのかなぁ
>台詞と口パクが同期してるようなのって占有率下げることでずれたりしないのかなぁ
ずれるかどうかは腕次第だな。Flashを見る限り。
10ミリ秒ぐらいずれても平気だろうし、
占有率を下げたくらいじゃずれないと思う。
コピペ先から来たが…。いやーさすがプログラマの最下層。
今時まだOOPを机上の空論的理想主義と考えてるアタリがすげぇよ。
まぁOOPはまだしも、ブラウザタイプのアプリでのイベントドリブン否定ともなるといやはや…。
否定の理由がまた振るってるな。何かエロゲ特有の技術的課題があるのかと思いきや、
「変えるのが手間だから」
技術論を、突如、身の回りの話で落としてるし(w
レイヤの切り分けが出来ないのはダメプログラマの特徴だが、そのまんまじゃん(w
>>404 >メッセージドリブンだと、あとからモードを追加してくれといわれた
>ときに、各メッセージ処理にバラバラに追加していかなきゃいけない。
あのね、おぶじぇくとしこうというやりかたをつかうとね、
ひとつのくらすにきのうをついかするだけでいいんだよ。
>>457 禿同。
あと、「まともに動いているものを直したくない」ってのは
どの分野のプログラマでも同じなんだけど、エロゲの場合
アフォなバグを残しまくった状態で当たり前のようにリリース
している訳で、そもそも「まともに動いていない」訳だから、
その言い訳は通用しないと思うのだな。
>457
身の回りの事情を無視してプログラムしてるうちは素人だぞ?
>458
まさか、MFCとかつかってねえだろうな?
そうは言うが、ゲームでOOPしてる例って少ないぞ。
いまだにC(++じゃない)しか使えないプログラマも
大量にいるこの業界で声高に主張しても、周りが付いて
こなきゃやっぱりマイナーだと思うがな。
PeekMessageでビジーループ組んでるライブラリは結構ある。
たとえばYaneSDKはそうじゃなかったっけ?
たった一人でしこしこクラスライブラリを整備したり、
オブジェクトとメソッドの切り分けをあれこれ考えてたところで
動くものを作らない限りただ遊んでるだけだしな。
プロトタイプを作るのが早い奴、マスターアップ数日前に仕様変更を
言っても泥縄式でやってくれる奴、一ヶ月二ヶ月で動くものを
作れる奴のほうを現場では重宝するのさ。
おれは流石にC++くらいは使う。
リソースの取得解放等をラップした小さなクラスは作るし。
でも、全体をOOPでやるなんてただの自己満足だと思うがな。
あと、微妙にオブジェクト指向方向に話がズレてきているが、
メッセージドリブンが嫌がられる理由は、本来別で、
つまりゲームではメッセージごとに処理を切り分ける合理的理由がないからだ。
タイトル画面で左クリックすることとゲーム画面で左クリックすることと
ムービー画面で左クリックすることとエフェクト中に左クリックすることを、
「左クリックへの応答処理」という風に纏めてしまうのがメッセージドリブンだぞ。
フォームをデザインしてボタンのハンドラだけ書いてりゃいい一般Windowsプログラムとは
事情が全然違うだろう?
意味不明な決め付けがたくさんあるわけですが。
そもそもなぜ突然、
OOP=「たった一人でしこしこクラスライブラリを整備したり、
オブジェクトとメソッドの切り分けをあれこれ考えているだけで
動くものを作らない」
となるのか。
>プロトタイプを作るのが早い奴、マスターアップ数日前に仕様変更を
>言っても泥縄式でやってくれる奴、一ヶ月二ヶ月で動くものを作れる奴
OOPか否かとは全く関係ない
>462
俺の知ってるOOP野郎がだいたいそうだったからだが……
なんつーか、理論倒れ? 動くもの作ってから偉そうなこと言えと。
元々OOPってのは大規模プロジェクト向けのやり方だ。
極端な例を言うと、ファイルをちょっと処理するだけの
フィルタをわざわざOOPで分析して設計するバカはいない。
設計に無駄に手間が掛かるだけだからな。
意見は分かれるかもしれないが、俺は普通のエロゲのシステム程度の
規模の物を組むにはOOPは無駄に大げさだと思うぞ。
OO厨は戦場に不要。害悪である事は、今日日の常識。
ム板から出張して来ました。
>タイトル画面で左クリックすることとゲーム画面で左クリックすることと
>ムービー画面で左クリックすることとエフェクト中に左クリックすることを、
>「左クリックへの応答処理」という風に纏めてしまうのがメッセージドリブンだぞ。
「stateパターン」でgoogleしてみよう。
>>457 >コピペ先から来たが…。
どこで晒されたか教えてくれー
そっちでどういう話になってるか知りたい。
>>461 頭悪すぎ。
そういう時は、まずタイトル画面用、ゲーム画面用、etcで分岐してから
それぞれのメッセージハンドラで処理をすればいいだけじゃない。
何で1つのメッセージハンドラで全てをこなそうとするかなぁ。
Windowsの普通のGUIにしたって
マウスクリック→座標下のコンポーネントを判断→該当コンポーネントの処理
といった過程があるわけだが。
NScripterといい
>>461といい、if,switch-caseを羅列する書き方しか知らねーんじゃねーの?
シューティングやアクションならともかくエロゲーなんか簡単にイベントドリブンに出来るだろ。
>>460 どうしても理解できないんだけどさ。
なんでPeekMessageでなきゃならないの?
どうしてGetMessageじゃ駄目なの?
GetMessageはユーザからのイベントとタイマイベントの両方を
待つことができるから、エロゲには十分だと思うんだけど。
本気でわからないから、誰か「GetMessageを使えない理由」を
教えてください。
>467
それをメッセージドリブンと呼ぶのであれば、たとえばNスクの人の
サンプルもメッセージドリブンと呼べてしまいそうだが。
先にメッセージで処理を分けるからメッセージドリブンなんだろ?
言葉の定義の問題で解決法が同じなのなら別に議論する意味ないけど・・・。
>468
そのために、MDIアプリを作るわけでもなくおそらく二度と再利用する
ことも無いであろうウィンドウメッセージ管理のクラスを設計するのは
なんか無駄だなと。
ベタに書けばゲームの事情に特化したウィンドウクラスになってしまうし、
一枚しかないウィンドウにゲームの機能を実装するのにわざわざ仮想関数
使うのも効率としてどうかと思うし。
MFCでも使うならいいんだが、あれって実装はマクロでかなりベタだよな。
>469
出来るけど、メンテナンスしにくくなるわな。
>470
まず、WM_TIMERは使えない(届かない可能性すらある)
マルチメディアタイマからメッセージなりイベントなり投げるのは
確かに正確になるんだけど、例えばエフェクトの時間待ちを
タイマイベント駆動にしようと思ったら、エフェクトの処理を
一こま一こま分断して記述しなきゃいけなくなる
(エフェクト中のメッセージ応答を諦めるなら別だが)。
MsgWaitForMultipleObjectsを使えば、ポーリングで
GetMessageを使うことが出来るようだな。
>>469 ある程度の規模になったら、シューティングだろうとアクションだろうと、
イベントドリブンになるよ。
そして、一度そうしたら、二度と元には戻れないと思う。
>473
規模ってのは大事なファクターだ。
「ある程度になったら」の「ある程度」の見積もりをしない議論は、
現場では意味がないと思うのだが。
記述を分散させて、その代わり個々の部品のメンテナンス性をあげるのが、
オブジェクト指向なり、それをベースにしたメッセージドリブンの記法の
やり方なわけだが、分散させずとも全体を見通せる規模のアプリを作る
時には、まっすぐ書き下ろしたほうが設計も楽だし読みやすくなる。
ゲームなんて、どうせ一からトレース実行を延々やらにゃいかんのだしなあ。
PS2のプログラマが何十人もいそうなデカいプロジェクトのことは知らん。
>>472 >まず、WM_TIMERは使えない(届かない可能性すらある)
届かないならPeekMessageを使っても同じような気が…
>タイマイベント駆動にしようと思ったら、エフェクトの処理を
>一こま一こま分断して記述しなきゃいけなくなる
現時点でも、エフェクトの表示自体はタイマをポーリングで見ながら
一こまづつやってるんじゃないの?
(漏れはエロゲプログラマじゃないから、違うならスマソ)
GetMessageが駄目なら、別にMsgWaitForMultipleObjectsでもいいけどさ、
要点は、ポーリングで「何もしない」ループを10万回くらい無駄に
回している部分をWindowsに返してあげるってだけじゃん。
>475
タイマをポーリングで見る処理はforループの中にも書けるけど、
メッセージドリブンの機構からバラバラに一コマ分の関数を呼ぶとなると、
実行状態を全部グローバル変数にでも書いておかなきゃいけなくなる。
記述レベルの話だが、全体を一箇所に書き下ろせないというのはしんどい。
だから、ボーランド系ライブラリには「ProcessMessages」、
VBには「DoEvents」という便利なポーリング関数が用意されてるわけで。
(エフェクトごとに管理クラスを作ってそのメソッドを毎回呼び、
実行状態はメンバ変数に記録してもいいのだが、大げさな気が。)
ポーリング時にうまいことCPUを解放すべきなのは同意。
Sleepを使ってる人が多いようだけど、MsgWaitForMiltipleObjectsと
GetMessageのあわせ技は、上手い手かもしれないな。
> 実行状態を全部グローバル変数にでも書いておかなきゃいけなくなる。
そんなバカやる奴は見たことない。
当然、やらないだろうな。だから俺はポーリングするんだし。
君はどう解決する? それぞれクラスを作る?
状態保持の役目しかしない、再利用性があるわけでもないクラスを
設計するのは、グローバル変数を作るのとあんまり変わらないぞ。
カプセル化の役には立つけれども、ループ内からのポーリングの
シンプルさには及ぶまい。
一こま分の処理を仮想関数で実装か? 大げさだなー。
> (エフェクトごとに管理クラスを作ってそのメソッドを毎回呼び、
> 実行状態はメンバ変数に記録してもいいのだが、大げさな気が。)
大げさじゃない。普通そうする。
OOPをやっていれば、どういう仕様にすればいいか考えられる。
つか、これをサッサとこなせないレベルだと、補助プログラマすら
キツいんじゃない?
>479
いくつクラスを作るつもりだ。
そんなつまらんことのために仮想関数呼び出しをする気か?
だいたい、メソッドがひとつしかなくただのグローバル変数ホルダに
なってるようなクラスなんて、アンチパターンのひとつだろ。
そこは素直にポーリングするのが設計的にも正解だと思うがな。
で、そういうケースがゲームの場合かなり多いと。
ソフトウェア設計の基礎講座みたいになってきた・・・
> 状態保持の役目しかしない
「デザインパターン」をちょっとでいいからかじってくれ。
状態を保持する役目のクラスと、
ストアされた状態を見て行動をするクラスの組で作る。
> 再利用性があるわけでもない
エフェクトのフレームワークは再利用性があるぞ。
エフェクトそのもののコードは追加や更新が必要かもしれないが、
その部分を変更するだけでよいというだけで、手間はかなり減る。
> そんなつまらんことのために仮想関数呼び出しをする気か?
「つまらないこと」って何だ?つまらない機能は最初から入らないだろ。
必要な機能を実装しているんだから、つまらなくはないぞ。
フレームワークとするべき部分を見出すにはそれなりの経験が必要。
経験と言っても、毎回ストレート記述の素人臭いプログラムしか
書いたことのない人には、正直厳しいと思う。
> そういうケースがゲームの場合かなり多いと。
そうは思わない。ほとんどがイベントドリブンで記述されるべき。
ただし、ゲームのシナリオを記述する部分は例外かもしれない。
プログラマが書くとは限らないので。
それでも、そのシナリオ記述部分から呼び出されるプログラム部品は、
すべてイベントドリブン形式で作成するべき。
>481
エフェクトのフレームワークったって、ただのforループだしなー。
外に出さなきゃいけないほど複雑な処理とも思えない。
それに、エフェクトの都合によってちょっとづつ変えてたりもする。
(どこにポーリングを挟むかとか、フレームとウェイトの取り方とか)
速度の最適化をしなきゃいけないところだから、再利用性は薄いのでは。
俺は、エフェクトひとつひとつを関数に書き出して、ロジックの
見通しをよくすることのほうを優先したい。
というか、たかだか一つのエフェクトのためにクラスを作ってたら、
左のペインが大変なことになるつーのが正直なところで、
しかも実行状態と行動とでふたつクラスを作る気か?
>482
仮想関数には少ないとはいえコストが掛かる。
例えばそれを避けるためにMFCはあんなアホな事を
(マクロでハンドラを記述)しとるわけだ。トリッキーで萌えだが。
たかがエフェクト処理に仮想関数は使いたくないな。
>>479 親クラスとして純粋仮想クラスをつくり、エフェクトのON/OFFやら
タイマイベント処理やらの共通インタフェースを作り、
メッセージループ内はオブジェクトを選んで共通インタフェースを
呼び出すという処理にする。
メッセージからオブジェクトを選ぶ処理も一般化できるから
あとはエフェクト自体の記述に専念できるし、クラス内に
カプセル化されるから周辺との干渉も少なくて済む。
ってのがオブジェクト指向的な考え方なんですが。
(エフェクト自体を記述する具象クラスには再利用性はないけど、
エフェクト毎に違う処理をする以上、これは当たり前)
仮想関数をなにか大袈裟なものだと思っているボケがいるようだが、
一般には巨大switch文の方が遅いし、そもそもミリ秒オーダーでは
きょうびこの程度の遅延の違いは考える必要がない。(マイクロ秒の
制御が必要な場合はまた別だけど)
> エフェクトのフレームワークったって、ただのforループだしなー。
> 外に出さなきゃいけないほど複雑な処理とも思えない。
エフェクトさせる対象が固定であったとしても、
エフェクトの方法が異なるパターンが複数あるならば、
イベントベースのフレームワークにするべき。
「時間のかかる処理」は基本的にすべて、だな。
> 速度の最適化をしなきゃいけないところだから、
> 再利用性は薄いのでは。
エフェクト全体をまとめるクラスは同様に扱えるのだから、再利用できる。
微妙な最適化(?)必要になるなら、抜け道を用意してあげるのも手。
抜け道ばかりになるようなら、要求から見なおしたほうがいい。
> ロジックの見通しをよくすることのほうを優先したい。
ロジックの見通しは、イベントドリブンのほうが判りやすいと思う。
補間によるアニメーションが基本だが、パラパラアニメでもイベント
ドリブンにしたほうがスキップ等もしやすい。
> というか、たかだか一つのエフェクトのためにクラスを作ってたら、
> 左のペインが大変なことになるつ
クラス設計の見通しがよければ(具体的には、継承と利用者-提供者の関係が
わかりやすければ)、クラスの数なんて問題にならないよ。
ペインってIDEツールのことだよね?グループ化すればいいと思う。
> 仮想関数には少ないとはいえコストが掛かる。
> たかがエフェクト処理に仮想関数は使いたくないな。
間接ジャンプのコストなんて、 画面に転送するコストに比べれば屁のようなもの。
例えばシューティングの敵キャラをオブジェクトと捉えて継承や
仮想関数を使うメリットは分かるのよ。
共通のメソッドをたくさん思いつくからな。
でも、エフェクトってのはあまりに単機能だろ。
ただforループを外に出したいがためにクラスを作るのはどうかなあ。
関数呼び出しコストは無視できるレベルだというのは分かるけど。
せいぜいコマ数回呼ばれる程度だし。トレース実行はウザそうだが。
エフェクトは、むしろ、時間をまたがることのほうが問題なんだと思うんだけど、
そこを理解してないっぽいなあ。
>487
だからポーリングで一コマごとにイベント処理するんでしょ。
>>486 エフェクト追加するたびにforループ書き換えてたら、
他との干渉が怖くないですか?
当然「影響を受けるコード」は全部テストし直すんだよね?
つか、もれの所でそんなクソコード書いたらクビもんですが。
うーん、これはマジで素人さんかもわからんね。
俺釣られた?
>489
forループの中から一こま分の関数を呼ぶんじゃないよ?
ひとつのエフェクト処理全体を関数にするんだよ。
メイン関数からは、エフェクト関数を単に呼ぶだけ。
だから、関数一つ一つが一つのエフェクト全体を現すことになる。
for文の記述とか、重複する(もしくは似る)コードは出てしまうが、
その代わり、その関数だけでそのエフェクトの処理は完結することになる。
あんたのところがどこか知らんが、俺の昔行ってた所は、
メインプログラマがかたくなにC言語を使い続けてたぞ。
コンストラクタとデストラクタも知らない奴がリソースリーク
起こしてると確かに殺意は芽生えるな。
ゲーム業界でOOPしてるところのほうが珍しいと俺は思うのだが。
>491
これまでの議論を元に、そうしたいとするなら末期的ですな。
ところで qyj4aMZw は最近、市販製品のゲームプログラムを書いてるの?
PCでもPSでもgameboyでもいいから、ここ1年の間に関わった本数だけでいいから
教えて。
これからとある仕事にかかるんだが、このレベルの思考が現場に蔓延しているようなら、
ちょっと考えねばならんので。参考にさせていただきたく。
むしろ、お前らがなんでエフェクト関数程度をそこまで細かく
分散して記述したいかの理解に困る。
俺の書いたエフェクト関数なんて、一画面を超えるのは
せいぜいマスクパターン使ったクロスフェード関数ぐらいだが。
>492
あー、俺も長いからなー。たくさんとだけ言っておこう。
>>491 ああ、そういうことか。
スマソ、なにやら大きく勘違いしてた。
ただ、その構成だと複数のエフェクトを同時に掛けるときには
どうやるんだ?
イベントドリブンでエフェクトをクラスにする構成なら、
メインループ内から現在起動中のオブジェクトのメソッドを
順次呼んでいくだけだから想像つくんだけど…
>493
いや、ここ1〜2年だけでいい。昔のはアテにならんし。
機種も明記がイヤなら、携帯か据え置きかでいいよ。
>494
あー、そういう処理が必要となると、確かに困るな。
タイマイベントで色々同時にやりたいとなると、
オブジェクトで切り分ける気にもなる。
>496
えええ?
「組み合わせたエフェクト関数を新たに作る。どうせパターンは少ないし。」
じゃないのか?
>495
全部Winのエロゲ。
特定されると嫌だからあまり細かいことはパスさせてくれ。
最近はドライバ周りの機種依存不具合以外は出してない。
>497
ひとつしかないならそうするが、任意のエフェクトを組み合わせたいんだろ?
組み合わせ爆発が起きるじゃないか。
>498
ありがとう。
しかしこれは・・・まあなんとかなるかな・・・
501 :
名無しさん@初回限定:03/05/18 15:31 ID:/lMmcZHt
>501
あー、かっこよくて好きだが、使ったこと無いな<デコレータパターン
というか、そんな複雑なエフェクトを要求してくる企画屋が
(というより、そのニュアンスを説明できる企画屋が)
いないというのが実情で。 もし言われたら、設計しなおすか。
>>501 エロゲのエフェクトでデコレーターは無茶だろ。
普通ビジター(要するに>494)じゃないのか?
結局俺が重視してるのは、
>その代わり、その関数だけでそのエフェクトの処理は完結することになる。
これなのな。3年後、クラス構造がころころ変わって昔のが記憶から
消えかけていたり、あるいはメンテナンスをC専門のプログラマに
任せるとしても、これならソースを追いなおさずともメンテナンス出来る。
設計が失敗すること、ドキュメントが古くて使えないこと、スタッフが
(俺も含めて)OOPの技術に必ずしも成熟していないことを
前提にした方法論なのよ。それを腐ってるといわれれば返す言葉も無いが。
その代わり要件を単純化してることは確かに認めるよ。
複数同時エフェクトを想定するなら、むしろスプライトのアニメーション
システムのほうに組み込んで(こっちはオブジェクトでやってる)、
単機能のほうはそれをラップして実装するように作り直すか。
なんか、レスがぴたりと止まっちまったな。
俺のやり方がオブジェクト指向的にダメなのは分かってる。
ベストファイトではなく泥試合をやってるというのも分かってるので、
そこを責められてもしょうがないとは思う。長々脱線議論すみませんでした。
では、今日も泥仕合で辛勝してきます。
足を止めて、ガード固めて、少々殴られても倒れることだけはないよーに。
バグ出さず占有率下げればデザパなんぞ知らんでも誰も文句言わんよ
あと動作は軽く、ユーザーのカスタマイズにも対応しやすく、機種依存バグに強く
次回作にユーザーの要望を生かすべく機能追加しやすく
プログラム側では避けられないスクリプトバグに対応するパッチが
作りやすいのがいいと思いますが。(早く出て欲しいため)
そういうユーザーの目に見えやすいところでも語ってくれるとうれしかったんですが。
それともそういう点に関してはどんなプログラムも大して変わらないのかな?
>>506-507 そういうプログラムを作りやすくするためのOOであり、
また、デザパタであるんだけどね。
この手のものの勉強は一種の先行投資であって、確実に利益という形で
回収できるという保証のあるものではないから、エロゲに限らず
目先の仕事さえこなせればいいという種類のプログラマは嫌がるんだよね。
まあ、こういうのはプログラマに限った話じゃないけどさ。
OOPはあくまで選択肢の一つであり、コストと規模を考えれば無条件に採用出来る様な物じゃ無いだろうに
確かにごくごく小さなプログラムはOOPを使わない方が簡単に書けるが、
ノベルエンジンみたいな数万〜数十万行程度のプログラムだったら十分検討に値すると思う。
>>508 > 目先の仕事さえこなせればいいという種類のプログラマは嫌がるんだよね。
目先の仕事をこなすので手一杯、という所が多いんじゃなかろうか。
プログラムに投資したくない、できればアリモノで済ませたいって感じで。
そういう状況で、マジメにリファクタリングするだけのモチベーション
を保てるか・・・俺は自信ないなぁ
512 :
504:03/05/19 00:23 ID:nT43rVJ/
正直、俺の発想がここまで反発されるとは思ってなかったのでショックだった。
よその現場ではそこまでOOPが浸透してるのかなー。
>506-507
バグにしろ占有率にしろ、コーディングスタイルで決まるわけではないから、
そういう話はここの本題からすると脱線だったのな。ごめん。
>510
ちなみに、うちのエンジンは数万には遠く及ばないほど小規模です。
エロゲのエンジンって、そんなにでかくなる?
以上のレスのうちのどれがは高橋直樹氏だね。
ちなみにGPL関連のスレにも登場してたよね。
ゲム制作板のGPLスレだっけ?
凄い必死だったな
>>512 つか、そんなにOOPというのは大変な代物でも無いつーか、
むしろエロゲエンジンなんかかなり向いてる種類と思うがなぁ。
高橋直樹って誰?
>>516 モジュール化を意識しだすとモロOOになるからねえ。
エンジンと呼ぶならなおさら。
ところでキリキリとかいうのを見てみたんだが、
あれってVM持ってるのな。たまげた。
>>517 >高橋直樹って誰?
話題のNスクの人。
>>512 バグはコーディングスタイルで明らかに差が出るぞ。
それはさておき、このスレの主題のはずの占有率はどうだろうね?
コーディングスタイルはどうあれ、いずれにせよイベントループは
存在するわけで、要はそのループでのイベント待ち中にOSにCPUを
返すか否かってだけなんだけど。
つか、このスレの流れを見ても、なにゆえにGetMessageなり
MsgWaitForMultipleObjectsなりを使わないのかが未だに理解できん。
マジレスさせていただきますと、
VAのシステムが省電力なのはよく分かります。
あれはエロゲーじゃないから、誰も発電しないでしょう。
おそらく最初に
while ( TRUE ) {
while ( peekmessage() ) {
dispatchmessage();
}
do_animation();
}
と書いちゃって以来、
誰も手を触れてないんじゃなかろうか。
言われてみれば、フルスクリーンゲームはこうしろ、
ということになっていたような。win95初期の時代ね。
>517
キリキリは起動直後にゲームシステム(ゲームシナリオじゃなくて)
を物凄い勢いでコンパイルしてなんたらかんたらだったかと。すまんスレ違いだね。
>519
件のNスクの人のちょっとまえの話だと、タイマー処理で
WM_TIMERの精度が悪いので使えなくて、
頻繁にtimeGetTimeで時間を監視しないといけないんだとか。
そんなのほかにやりかたがあるだろうにな。
自分の作ったのでは、
MsgWaitForMultipleObjectsで60fpsキッチリ保ってますよ。
そういえばWin95ではマルチメディアタイマなどを使っても精度が安定しなかったのでポーリング必須だったな
まあ16bitコードで回避という手もあったが
うちのとこも、そろそろ本気で開発せんとやばいなぁ。
>519
MsgWaitForMultipleObjectsとSleepの違いって、
イベントやメッセージで止まるか止まらないかだけだからな。
1ミリ秒の応答速度を気にしない人にとっては同じ。
でも、Msg〜のほうを使うほうが美しいかもしれない。
やたらメッセージループが分散してアイドル処理が多い
メッセージドリブン構造と言い張れないことはなさそうだし、
それで褒めてもらえるならな(w
まあ、Msg〜なりSleepなりで小刻みに1〜数ミリ秒休ませるだけで
普通はCPU使用率は一桁まで落ちる。
>522
マルチメディアタイマからイベントを発生させればもうちょっと
マシなんだけど、あれも怖い話をいろいろ聞く。
10ミリ秒単位でしか精度の出ないマシンがあると聞くのだが、
見たことはない。実在するのかな?
WM_TIMER の精度は確かに悪い。
ポーリングするなら、QueryPerformanceCounter() の使用可否を調べて
使えるなら使う。使えないなら timeGetTime() かと。
> やたらメッセージループが分散してアイドル処理が多い
まさかとは思うが、
メッセージループは普通一箇所だよね?
不安になってきた。
>528
いや、もちろんWndProcは一種類だぞ。
いくらなんでもそこを入れ替えるようなマニアックな真似はしない。
>>529 WndProcとメッセージループは関係ねぇだろ、少なくともこの文脈では。
ま、暇があるうちにせいぜい美しいソースを書いてくれよ<OO厨
俺はもう寝る暇もないほど忙しいのでな……
クソ小汚いコード書いてるから無駄が増えて寝る暇もなくなるんだと思うんだが。
一年に二本くらいなら、もっと綺麗なコードを書く気にもなるが。
金になってるから愚痴を言える筋合いでもないのだがな。
OOPが無かった頃は暗黒時代で、OOPは
ゲーム業界の未来を切り開く福音だったというわけか。
福音とは”おおっと”という響きですか。
OOT(オブジェクト指向技術)に掛けたんだな。
ごめ、一瞬わけわからんかった。
つーか寝る暇もない癖に昼間からこんな所で
必死で言い訳してる辺りで程度が(ry
お前ら相手に何を言い訳する必要が。
つーか、昼とか夜とかってなんですか?
どっからどう見てもただの言い訳の羅列だしな。
自分が無能だという事実を認めたくないんだろうな、こんだけ必死なのは。
うーん、無能ってのは、稼いでない奴のことを言うんだと思うが。
>537
WizardryのOOPS
じやア低能ってことで。
有能で儲かってない奴よりは、低脳でも儲かったほうがいいよ。
有能で儲かった方がいいですな
寝る暇もないって事は安いヘボ仕事を量こなさなきゃ食えないって事だろ。
まあ用済みになる前に稼げるだけ稼いどけば?
プログラマは私怨素人に釣られるのはやめれ。
俺は面白かったよ。ド素人からみればたかがクリック待ちの処理一つにも
どうやらいろいろなアプローチがあるらしいってことで。
あと「こうしないやつはバカ」みたいな煽り合いもやめれ。
(´-`).。oO(相手の言うようなやり方で俺が組むとしたら…)
みたいに発想してみればお互いプログラマなんだから、
なるほどそういうやり方でもまあ悪くない、ぐらいのところに落ち着くだろ?
希望としては、神が現れてちゃっちゃっとNscripterに対抗して
ゾヌscripterみたいなのを作ってくれたらサイコーなんだけど。
NScripterレベルじゃつまらんから
AGES(rUGP)かキリキリに対抗しろYO!
ゲ製作板でADVRUNとかがその辺の候補に挙がってるね。
というか、機能、安定性、記述性がNスク並のエロゲエンジンは
既に大量にあると思うぞ。
単にそれは各PGのメシの種だから半永久的に一般公開されないだけで。
Nスクがつまらんのはいいが、対抗商品がAGESやキリキリってのが萎えるな。
機能と実績という意味で言えば、System3.6のほうが。
>549
そりゃそうだろ。
一般公開&低価格供給ってのが商品的アドバンテージなわけで。
それではage信者さんどうぞ
> 俺は面白かったよ。ド素人からみればたかがクリック待ちの処理一つにも
> どうやらいろいろなアプローチがあるらしいってことで。
いろいろあるというか、まさに内部構造を曝け出す部分だね。
業務アプリや小さいツールしか作ったことのない人には
なかなか理解できんと思う。
> なるほどそういうやり方でもまあ悪くない、ぐらいのところに落ち着くだろ?
どのやり方にも長所と短所があって、
そのトレードオフをどう丸め込むかがポイントなんだよね。
そういう議論に持ってくのが理想なんだが、ここのところの発言を見ると
それ以前の問題のように見える。
そろそろjavaのエロゲきぼんぬ。
せめてFlash
NScripterバイトコードコンパイラ とか NScripter.NET とか作ったら
JITで性能向上するか、かえって悪化するか
>>553 少なくとも、OSに処理を返そうとしないというやり方には
いかなる長所も思いつけない。
8年前ならいざ知らず…
ここでの論争はもはやそんなことを議題にしてたのではないと思うのだが。
>>557 エロゲのマシンスペックの最低ラインがPentiumIIになったのは
ここ1年ぐらいじゃないかな。
エロゲ消費者のマシンはPentium-133とかK6だったりするらしいし、
そういう意味では8年前のままなのかもしれない。
メインループというか、イベント待ち空ループを「幾つも」
持たせてるあたり、OO云々以前の問題で凄すぎた。
>560
メッセージループは単独でないといけない派? >467の解決策には反対?
まあ、>467の解決策をメッセージドリブンと認めると、極論を言えば、
ポーリングループですらメッセージループの一つだといってしまえるので、
議論を無効化してしまうのだが。
逆に言うと、どんなプログラムでだってWndProcは一つなんだし、
OSから見ればかならずそこでメッセージ処理をしているのだから、
全てメッセージドリブンだと主張して主張できないこともない。
宗教論争は置いといて、本題に戻ると、
<いらないときにOSに実行時間を明け渡す>ことさえ出来ていれば、
それがスレッドを利用してようがGetMessageだろうかSleepだろうが
Wait〜系だろうが、とりあえずこのスレの問題はクリアじゃねえの?
もしかして、このスレの人たちって、少しでも実行時間を食いそうな処理は、
細切れにしてタイマなりアイドル処理なりでちょっとづつ実行するか、
別スレッドを起動するかにして、メッセージループへすぐ処理を戻さないと
ダメだと考えてるの? ポーリングが嫌ってことは、VBではDoEventsを
使わない派? 確かに、それはそれでWindowsプログラムの一つの理想だな。
でも、現実にはDoEvents命令ってすげえ便利だけど。
>>562 > 少しでも実行時間を食いそうな
時間を「またがる」処理(アニメーション等)は、細切れ(?)にして
時間の経過ごとに処理関数を呼び出す。
タイミングは典型的にはvsyncか、画面のflipだね。
時間が「かかる」処理(SLGでの思考ルーチン等)は、別スレッドで
実行させて、経過をメインスレッドにメッセージとして投げてもらうのが
いいのかなあ。スレッドの無い環境では、ちと辛いけど
処理を反復できるように割ってくしかないね・・・
> 確かに、それはそれでWindowsプログラムの一つの理想だな。
多種多様なイベントが飛び交い、いろんなタイミングで活性化する
オブジェクトが跋扈するゲームプログラミングでは常套手段だね。
でも、いわゆる普通のwinアプリに当てはめても、面倒なだけだと思う。
>>561 WndProcは各ウィンドウクラスに1つだこの大馬鹿野郎。
>>561 メッセージドリブンの本質を理解してないのと違います?
メッセージドリブン(イベントドリブン)のポイントは
・ユーザプログラムはイベントが発生したときのみ処理を実行
→イベントが発生しない限りユーザプログラムは止まっている
・イベントの検知自体はシステム任せ
にあり、受け取ったイベントをどう処理するかは関係ない。
ポーリング型の場合、ユーザプログラム自体がイベントの
検知を能動的に行っており、そのために常に(もしくは定期的に)
自分でイベントチェックをしているので、何もイベントが
発生してなくてもCPUパワーを利用しており、これが無駄になる。
→CPU使用率100%のものは、このイベントチェックのループが
ウェイト無しで走行している
つまり、イベントドリブンの旨味と言うのは、必要最小限しか
CPUパワーを消費しない作りにできるところに有る。
(それだけじゃないが、マルチプロセスシステムと言う観点では)
今でこそタイムシェアリングを併用しているので、システムに
制御を明示的に渡さなくてもマルチプロセスで動作するが、
以前(Win3.1とかSX-Windowとか)はイベント待ち等で明示的に
CPUに制御を戻すことのみでタスクスイッチを行っていたので、
イベントドリブンでプログラムを記述することは重要だった。
(というか、そう書かないとまともにマルチプロセスで動作しない)
>>562 VBで商業のゲームエンジン作るヤツはあまりいないと思われ。
>>565 >今でこそタイムシェアリングを併用しているので、システムに
>制御を明示的に渡さなくてもマルチプロセスで動作するが、
この点に関連して。
ビジーループでのポーリングは、単にCPUを占拠して消費電力を増やすって
だけじゃなくて、そのプログラム自体の性能を劣化させる。
イベント待ちで制御を渡している場合、OSはイベントが到着し次第
可能な限り速やかに制御を渡してくれるし、ある程度の時間は、
優先順位の高いプロセスが活性化しない限り、制御を奪われることもない。
で、必要な仕事をこなしてから再びOSに制御を戻すことが出来る。
一方、ビジーループで無駄にCPUを浪費している場合、OSからは
いつCPUを浪費していていつ仕事をしているんだか区別がつかないから、
OSは他のプロセスを走らせるために適当なタイミングで制御を奪わざるを
得なくなるわけで、結果として意味のある仕事をしている時にCPUを
とられてしまう可能性が出てくる。
実際、エロゲやってて他の常駐アプリがほんの少し動くと、
その瞬間にアニメーションがギクシャクするってのはよくあるんだが、
これはちゃんとイベントドリブンにすれば改善するんで無いかな。
>>568 バックグラウンド処理の優先度をどう弄っても、裏に回すと実行が止まっちまう
ってケースも、ちゃんとしたイヴェントドリヴンなら解決できる。
ながらゲーマにも優しい仕様だな。
まぁなんだ、言い訳してる暇があったら少しはプログラミングの勉強もしたら?
APIと言語の基本構文を使うだけがプログラミングじゃねーぞ、と。
スレッド使わないでかつビジーループしない方法なんぞいくらでもあるし。
>>567 体験版やってみたけど紙芝居だったな…
>>568 アニメがぎくしゃくするのは、ドロップフレーム処理をしていないだけだと思われ。
ポーリング中にCPUをあけてないプログラムはとりあえず論外としよう。
ポーリング中にCPUをあけているプログラムについての議論だと思ってくれ。
>563
1フレームごとに処理を分割記述するコンシューマ志向の方法論だとそうだろうね。
でも、非アクションパソゲとは違った分野なので、同じ方法論で作る必要はないかと。
>多種多様なイベントが飛び交い、いろんなタイミングで
>活性化するオブジェクトが跋扈するゲームプログラミング
データベースクライアントとかの一般アプリのほうがその条件に当てはまると思うが。
ゲームはOSのメッセージやイベントをあまり使わない。
使うとしてもポーリング取得の方が便利なことが多い。(そういうAPIもある)
>565
ttp://www.microsoft.com/JAPAN/developer/library/vccore/_core_idle_loop_processing.htm MFCのアイドル処理だ。メッセージがなくなるまでメッセージ処理するのと、
アイドル処理が全部終わるまでアイドル処理するのを反復しているわけだ。
この通り、MFCでも、アイドル処理やってる間はメッセージ処理は止まる。
ポーリングと次のポーリングまでの間にメッセージ処理が止まるのと、
アイドル処理もしくはタイマハンドラから呼び出された関数の実行中
メッセージ処理が止まるのと、OSから見て何か差があるの?
また、GetMessageでCPUをあけることには、SleepやMsgWait〜で
あけるのとは違う何か特別な意味とかあるの?
>566
DelphiやBorland C++ BuilderのFAQに、「VBでいうDoEventsはないんですか?」
ってのがある。そういう機構は割と普遍的にみんな欲しがるものだと思うよ。
それをVisual C++で作ろうとすると、ここで議題になってるようなものになる。
>>571 Sleep派の人ですか?
一つ質問。
ポーリングループの最後にSleep(FlameInterval)って書けって言いたいんだと
思うんだけれども、これだとポーリングループ中の処理の量によってフレーム間隔が
変わっちゃわない?
特に、ドロップフレーム処理ってどうやるの?
タイマイベントでMsgWait〜するやりかたなら、ループの最初でタイマを
仕掛けておけば、フレーム間隔は一定に保てるし、ドロップフレームが
出た時もMsgWait〜がすぐに帰って来るから、処理も簡単に出来ると思うんだけど。
573 :
572:03/05/22 00:01 ID:D1Zlhga1
flameって火炎かよ。
frameだよ。欝死。
>572
即興で概念だけ説明する適当なコードですが、
while (1) {
//1フレーム分の処理スタート
t=timeGetTime();
//新しいフレームを計算して描く処理
//メッセージがある場合はそれを処理する。
//フレーム描き終わった
wait=t+frameinterval-timeGetTime();//処理に掛かった時間計算
if (wait>0) Sleep (wait);//余った時間分中断
//このフレームの処理終わり
}
ちなみに、ほんとはwaitまるまる待たないほうがいい。
Sleepにも誤差があるので、少し少なくSleepして、
残りはタイマを監視するビジーループで食いつぶす。
ドロップフレーム処理がしたければ、waitが負の時は
どのくらいコマ落ちしたか計算して次に反映すればいい。
>>571 >また、GetMessageでCPUをあけることには、SleepやMsgWait〜で
>あけるのとは違う何か特別な意味とかあるの?
GetMessage/MsgWait〜 と Sleep の対比ならば分かるんだが。
あ、もちろん、Sleep(wait)でどかっと待ってしまうよりも、
Sleepはもっと小刻みにしながらメッセージ処理を挟むとか、
待ちループにMsgWaitFor〜を使うとかしたほうが、
ウィンドウを動かすメッセージとかへの応答速度はよくなる。
ゲーム中にウィンドウを動かす処理にそれほど高精度で
対応することにどの程度意味があるのかは分からないが。
ゲームの操作に関わる応答はどうせフレーム単位だしね。
>575
>GetMessage/MsgWait〜 と Sleep の対比ならば分かるんだが。
これは俺もわかる。Sleepは寝ている間メッセージが来ても止まらないので、
その時間分差が出る。でも、そんなのは無視してもいいレベルだと思うし、
差を気にするとして、ポーリングループをMsgWait〜とGetMessageで書けば
いいだけの話。俺が今抱いてる疑問とは関係ない。
MsgWaitFor〜とGetMessageの場合、待っているのはMsg〜のほうで、
GetMessageのほうじゃないからね。GetMessageに待たせることに
何か特別な意味があるのか、と聞いている。
>>577 なんでそういう比較をするかなぁ。
イベントの検知を行う主体が誰かという観点では
GetMessage/MsgWait〜とPeekMessageを比較すべき。
前者はOSがイベント検知を行い、後者はユーザプログラム
が行う。sleepを挟もうが挟むまいがそれは変わらない。
MsgWait〜はイベントドリブンではないだろうと言っていたが、
イベント検知をOS任せにして自分は休眠しているので
素直に使えばイベントドリブンになる。
Nスクの人のサンプルはMsgWait〜から定期的に処理を
プログラムに戻して別のポーリング(ステータスチェック)を
行っていたから、中途半端な作りで例としてはあまり適切
ではないが。
この説明でピンとこないのであれば、たとえとしてハードの
ステータス変化に応じて処理を行う場合を考えてみると
どうか。
前者に相当するのはステータス変化の割り込みが上がっ
てくるのを待っているやり方で、後者はレジスタを監視
していてステータスが変わるのを常時見ているやり方。
>MsgWaitFor〜とGetMessageの場合、待っているのはMsg〜のほうで、
>GetMessageのほうじゃないからね。
ほう、GetMessageは待ってないのね
>GetMessageに待たせることに
>何か特別な意味があるのか、と聞いている。
あれ、GetMessageは待ってないんじゃないの?
揚げ足とるようでもうしわけないんだが
言ってることがよくわからん。
>579
RO3nLvaRではないですが、これは
Nスクの人のサンプルを例にとった
MsgWaitForMultipleObjects でメッセージが待って、
メッセージがきたならGetMessageでメッセージ処理をする。
って意味では?
で単品でGetMessageで待つ意味はと聞いているのかと。
ところで
ポーリング
ループ内に
MsgWait+GetMessage
または
PeekMassage+Sleep
イベントドリブン
GetMessageループ(時間変化にWM_TIMER)
って認識でいいのかな?
>580
あ、はい、そういう認識です。
>578
定期的に処理を戻すのは、タイマ割り込み処理がしたいからだろう。
あのサンプルじゃ分からないが、ポーリングと言ってるからには、
例えばフレームの更新時間まで待つ処理に、あのタイムアウト指定と
内部タイマ監視を組み合わせて使うと思われ。
それが中途半端だというのなら、何かタイマイベントを発生させて
それを拾わせるしかないわけだが、OSにかける負担や正確さの面で、
Msg〜のタイムアウトと内部タイマ監視を組み合わせるほうが上だと思うが。
>>571 >565から、「何かの処理中はメッセージ処理が止まる」って論点が出てくるのが
さっぱりわからん。
メッセージ処理にインターバルが開く事によって応答が遅れる事を問題点と
思っている?
そんな話をしているつもりはないのだが。
>583
アイドル処理やってる間はメッセージ処理できないので、
GetMessageで休眠させることは出来ないということを言いたかった。
(ポーリングしながらSleepなりMsg〜で休ませることは出来る)
で、timeGetTimeでタイマを監視するようなコードを書くと、
ゲーム処理のほとんどはアイドル処理になってしまう。
実時間処理全部をタイマ割り込みから駆動してGetMessageで拾えと
言いたいのかもしれないが、そのためにはtimeSetEventを使って、
マルチメディアタイマから最高精度で割り込みコールバックさせる
必要があり、そっちのほうがよっぽどマシンに負担だと思うのだが。
(参考までに。WM_TIMERはまったく使い物になりません)
GetMessageでCPUをあけるのはSleepやMsg〜であけるのに比べて、
特別にCPUを養生すると言うような根拠はあるの?
1〜2行目、分かりにくいので訂正。
アイドル処理やってる間はGetMessageで休眠できないし、
GetMessageで休眠してる間はアイドル処理できないと言いたかった。
>>582 >定期的に処理を戻すのは、タイマ割り込み処理がしたいからだろう。
タイマ割り込みならでわの処理を行うならばあのコードでもいいと思うが、
少なくともサンプル上にはその様な処理はない。
(そういう処理も組み込めるスケルトン的な位置づけかもしれないが)
MsgWaitForMultipleObjectsの例として引き合いに出されたから、
MsgWaitForMultipleObjectsだけに着目したサンプルとしては理想的
とは言えないのではないかと言ってるに過ぎんよ。
>>584 バックグラウンドで処理すべき作業がある状態でOSに処理を戻せなんて
主張は誰もしていないと思うが。
必要な処理をしていてCPU使用率100%になっているのなら文句は出ない
だろ。
それと、OSに任せてしまえばいいメッセージ監視を自前でやっているのを
一緒にするのはどうかと思うが。
>586
あのサンプルはその辺分かりにくいな。もちろんそういう位置づけだろう。
例えば、500ミリ秒で画像のクロスフェードをやろうと思ったら、
1コマ数ミリ秒で割り込みたいというのはよくある話だ。
スキップ処理なんか、出来るだけ早く割り込んでもらわないと困るし。
記述する処理のほとんどがそういう処理だから、ポーリングループの
ほうがソース上にたくさん現れるのは当然のことだ。
ただ、たしかに、画面が完全に止まっているか、せいぜい数十ミリ秒
単位でカーソルをちょっと動かせばいいだけなら、タイマイベントを
GetMessageで待ってもよさそうだな。そういう風に切り替えるように
作ることは可能だと思う。Nスクの人の例で言うなら、GetMessage3でも
作って、タイマアウト時間が十分に長いときはtimeSetEventでタイマ
割り込みを仕掛けて、それをGetMessageで受けて抜けるようにすればいい。
ソースはほとんど変えずに実現可能だ。
でも、それをメッセージドリブンと呼ぶかどうかは微妙だが(w
RO3nLvaRってNスクの作者?
ループがあちこちに分散するスタイルを主張している人は一人ですか?
MFCですら、アイドルループとそうじゃないときのループじゃ
違うところに書かれてるわけだしな。主張するまでも無く。
>>590 あれはアイドル処理を継続するか調べてるだけで
メッセージループ自体は分散していないと思うけど…
あとMFCは汎用性重視なのでお手本としては微妙
ん、ちょっと違う。あれは、
>アプリケーション内の異なる場所の PeekMessage
>アプリケーションでアイドリング処理は、いずれかの関数にメッセージ
>ループを埋め込むという方法もあります
という目的のためのサンプルだ。
MFCのメッセージループ以外に、アイドル処理関数に別のメッセージループを
埋め込む手法を、マイクロソフトが公認しているってことだよ。
>>571のMFCサンプルは特殊なケースであって、
>>589,590のような話で持ち出すのは変
MFCのメッセージループも普通はWindowを持つスレッドに付き一つだと思うが
>593
アイドル処理中にポーリングでメッセージ処理するのを「特殊」と
言われてはゲームは組めない。
エフェクト中やスキップ中に全くメッセージ処理をやらなくていいとか、
せいぜい十数ミリ秒に一回コマが進めばいいとか、マルチメディアタイマの
割り込みイベントをフルスピードで回し続けても構わないと言うなら別だが、
それは普通避けたいんじゃないか?
そして、MFCではああいう書き方で関数に埋め込めと言っている。
(おそらく、OnIdleでメッセージ処理を完全に止めてはまずい処理用だ。
時間をまたいで待たなきゃいけない処理とか。)
ありゃ間違いなくポーリングのコードだよな?
>アイドル処理中にポーリングでメッセージ処理するのを「特殊」と
>言われてはゲームは組めない。
せめて「組みにくい」ぐらいの表現にしておいたらいかが?
確かに、そこで断言するから紛糾するのか。
そうだな、組みにくい、くらいにしておくよ。
ポーリングで組まない場合の難点は例示したつもりだし。
>>594 >せいぜい十数ミリ秒に一回コマが進めばいいとか、マルチメディアタイマの
駄目なの?
ディスプレイのリフレッシュレートより細かくても意味無いんだから、
せいぜい75Hz=13ミリ秒程度で良いもんだと思っとった。
>597
20ms程度のオーダーですら、Windows標準タイマでは無理で、
マルチメディアタイマからメッセージなりイベントオブジェクトなりを
投げさせることになる。
80ヘルツとかの人もいるが、とりあえず75Hzと仮定しても、
13ms刻みでディスプレイが更新されるってことは、許される
誤差はだいたい半分くらいでしょ。となると、6ms。
仮にエフェクトは6msでいいとしても、スキップが6msごとだとか、
文字表示速度が1文字6ms刻みでしか設定できないとかだと、
かなり遅いよ。やっぱり1ms刻みの割り込みが欲しくなる。
>>598 80ヘルツなら12ミリ秒か。
そっちで考えても良いけど、いずれにせよ人間の目の分解能よりは
小さいよねぇ。
…って、ちょっとまて。
一文字あたりの表示速度が1ミリ秒のときに、
ご丁寧にもループ内で一文字ずつ処理していやがるんですか?
複数文字いっぺんに処理しようとか言う発想は浮かばないでしょうか?
>599
分解能の倍で標本取れってのがサンプリング定理だよね、確か。
1ミリ秒に1文字出すのと、10ミリ秒に10文字出すのとでは
処理として全く違うよ。ディスプレイの更新タイミングはプログラムの
感知するところではないから(DirectDrawのFlip使ってる場合は別だが)、
酷い場合は、ほぼ一フレーム分表示がずれることがありうるわけだ。
10ミリ秒に10文字分タイミングがずれたら、酷いことになる。
1ミリ秒に1文字出してれば、ズレは最大でも一文字なわけだ。
それから、人間の目は映画とテレビのフレーム差によるコマ落ちを
違和感として認識出来るようだから、残像の理論による分解能よりも
実際はだいぶ性能がいいっぽい。
>600
599の言ってるのはそういうことじゃないとおもうが・・・
>602
ん、どういうこと?
>文字表示速度が1文字6ms刻みでしか設定できないとかだと、
>かなり遅いよ。やっぱり1ms刻みの割り込みが欲しくなる。
ここの文句も、
>1ミリ秒に1文字出してれば
ここの文句もそうなんだが、
ここのなんで6msだか1msだかしらんがそれごとに「1文字」しか
表示させることしかかんがえてないんだアホヤロウということでわ?
それとも考えてはいるんだけれども文章に書くのを忘れたってやつですか?
あとこれは重箱の隅だけど、
サンプリング定理を持ち出すんならば、時間通りに正確に処理できたとして、
リフレッシュレートをどんな短く見積もっても 8.3ms (120Hz)以上だとすれば
1文字/1ms でも 4文字/4ms でもあなたのいう「ずれ」はかわらんだろう。
4msよりもシステムに負担をかけやすい「1ms」である必要はないですな。
>604
だから、6sに6文字出したんじゃ、一フレームに最大6文字ずれるってば。
4msでも十分マシンに負担だと思うが。マルチメディアタイマから
4msごとにコールバック関数を呼び、それがOSにイベントもしくは
メッセージを投げ、それを待機中のGetMessageが受け取り、Translate、
Dispatchされて、そこから次の処理を行う関数を呼び出してようやく
処理が進むのと、単にひとつのアプリ、一つの関数内で内部タイマを
監視しながらMsgなりSleepなりで休むのと、どっちがマシン負担が
軽いと思うかね?
>だから、6sに6文字出したんじゃ、一フレームに最大6文字ずれるってば。
これは 正確に時間通りに処理できたと仮定した話ですか?
あなたのいう600の
>1ミリ秒に1文字出してれば、ズレは最大でも一文字なわけだ。
は正確に時間通りに処理できないと成り立たないはなしだから
(そりゃ正確に時間通りに処理できなければその分だけ単純にずれるからな)
>だから、6sに6文字出したんじゃ、一フレームに最大6文字ずれるってば。
これも正確に時間通りに処理出来た場合の話なんでしょ?
MsgWaitForMultipleObjectsを使えばいいのでは?
ああ、すまん、言葉まちがえた
>リフレッシュレートをどんな短く見積もっても 8.3ms (120Hz)以上だとすれば
↓
>リフレッシュレートが一番かんがえうる範囲で短い 8.3ms (120Hz)だとして
>606
処理A:
GetMessageがメッセージを拾う→
10文字書く→
GetMessageで10ms後の割り込みを待つ
処理B:
1文字書く→
MsgWait〜で1ミリ秒タイムアウト指定しつつ休む。メッセージが来れば処理して残りの時間を食いつぶす→
タイムアウトか食いつぶすかして1ms立ったので、次の文字を書く
このふたつの処理を比較しているわけだ。前者は一フレームに10文字
ずれる可能性があるが、後者は最大でも1文字しかずれないのは分かるよな?
>どっちがマシン負担が
>軽いと思うかね?
監視しながら・・・・?
なにそれ
ビジーループ?
>>609 なんだ 604 の俺の「重箱の隅を・・・」に反論してるんかと思ったらそうじゃないのか
>610
だから、MsgWaitFor〜を使うんだろうが。
この関数はメッセージが無きゃ指定した時間分休んでくれるんだよ。
エロゲプログラマがマターリしないスレになったのかな
素人の俺に言えることは
一文字/1ms
だろうが
六文字/6ms
だろうが
一秒間に1000文字のスピードで表示されたら
ノーウェイトと変わらないぐらいの速さだとおもうのだが。
もうちょっと現実的な数値でお願いします。
じゃあ
>一つの関数内で内部タイマを
>監視しながら
これはなに。実際に待った時間を計って、
待ちすぎた時間を補正するためとかでつか?
ならば納得がいくが。
で、たしかに GetMessageやTranslateMessageやらなんやら通すほうが
重そうだねぇ。ここで議論すべきほど重い物かは別問題だが。
1msは例示としてまずかったかな。最小単位だものなー。
Xmsだけ待つ処理を考えてみよう。
処理A:
Xms後のタイムアウトを指定してマルチメディアタイマを起動する→
GetMessageする→
マルチメディアタイマがXms後タイムアウトして、コールバック関数を呼ぶ→
コールバック関数がメッセージを投げる→
GetMessageがそれを拾い、Translateし、Dispatchする→
次の処理
処理B:
(A)timeGetTimeでタイマを取得する。→
(B)1ミリ秒のタイムアウトを指定してMsgWaitFor〜を実行、メッセージが来るまで休眠→
メッセージが来ていれば処理をする→
timeGetTimeでタイマを取得。(A)の時点からXmsたっていなければ、(B)に戻る
0.1秒くらいなら、処理Aでもいいと思う。
でも、これが10ms以下のオーダーになると、OSにいろいろやらせるオーバーヘッドが
バカにならなくなってくる。
>613 すまんねぇ 揚げ足とってるだけなんで・・・
というか すまんね 面白くないので引く。
あー
最後に1つ
なんで処理Bの(B)で1ミリ秒のタイムアウト?
Xミリ秒のタイムアウトでいいじゃん。まあ実際は
4ミリ秒まとうとしても10msぐらいたっちゃうことあるから
ってのもあるけどさぁ。
GetMessageはいいとして
Translate&Dispatchなんかはさんだら精度なんて期待できないような…
>613
ごめ、確かに。じゃあスキップ処理とか。こっちは4msに4つって出来ない。
>617
Sleepの分解能ってあんまり信用できないからな。
最短指定で待っておけば、最短誤差で済むかと。
確かに、概念的にはXミリ秒のタイムアウトでいい。
(その場合、(B)に戻るときに残り時間を計算しなおす)
で、このMsgWaitFor〜でポーリングしつつタイムアウト待ちする方法より
GetMessageでタイマイベントを拾う方法のほうがマシン負担が少ないという
根拠はあるのかなあという疑問の話に戻る。
620 :
619:03/05/22 21:08 ID:RO3nLvaR
あ、さらにごめん。スキップ処理こそ、別にまとめて少々ラグったって
どうでもいい処理なのかもしれないな。
となると、意外とタイマ処理の分解能って細かい必要は無いのかも……。
それでも、10ms程度の分解能がないのはやっぱ困るし、それをOSに
投げさせ続けるのは負担だと思うけどね。
では、俺もそろそろ落ち。
10msって100fpsなんだが。
エロゲで30でも60でもなく100fpsでなきゃだめなくらいの精度は必要なのか?
それに話があさっての方向にずれてると思うんだが。
画面エフェクト中ではなくメッセージ待ちとかの
処理の軽い部分でCPUが100%になるのが問題にしてたんじゃなかったっけ?
問題の切り分けができない。
レイヤ化できない。
スパゲッティコードが俺を呼んでいるぜぇっ
まぁ自前のコマンドキューを持てば?ということで。
>>621 前半に関しては完全に同意。
>処理の軽い部分でCPUが100%になるのが問題にしてたんじゃなかったっけ?
無駄にfpsを大きく取るってことは、本来軽い処理で済む部分で
不必要に重い処理をしている訳で、CPU使用率を増大させるじゃん。
「常時100%」の唯一の理由である、ビジーループでのポーリングっていう
構造に関しては、このスレでは既に「駄目すぎ」という結論が出ていると
認識しているんだが。(反対意見がある方はどうぞ)
624 :
619:03/05/23 00:52 ID:GZeixgqi
>621
まてまて、そこはサンプリング定理の出るところだろ。
10msごとにサンプリングしてるってことは、せいぜい20ms程度の
分解能だってことだから、50fpsだ。
まあ、ぎりぎりOKな範囲かもしれないが、これより遅いとしんどい。
クリック待ちで100%になるのは改善可能だろってことについては、
もうすでにどちらの派閥にとっても了承済みなんじゃないかな?
あえてやる必要がないと考える人がいても俺は別にいいと思うけど。
>622
一人しかいないくせに問題を無闇に切り分けて見通し悪くしたがる
やたらレイヤ化したがる
意味も無く六層構造のクラスが俺を呼んでるぜ!
ってな言い方も出来る。
オブジェクト指向なんかないころからゲームプログラミングはあったんだからさ。
625 :
名無しさん@初回限定:03/05/23 01:09 ID:3wo/9xkb
>オブジェクト指向なんかないころからゲームプログラミングはあったんだからさ。
………。
いやはや、何と言ってよいやら…さすが「プログラマの最下層」(藁
626 :
619:03/05/23 01:12 ID:GZeixgqi
結局OOP厨の巣窟になるのだなあ。
そもそも紙芝居ごときに fps 使う必要あるの?
てのはおいといて
一番いいたいことはだね
ゲームをやりながら別のことにCPUを使いたい場合がある
ほかに使うやつがいたら「即座にCPUを明け渡せ」
ってこと
オプションに「別アプリケーションのためにCPUを占有しない」
ってオプションつけるだけだろ馬馬かお前ら
応答性をあげるにはマルチスレッド使え
描画の集中処理が必要なときはマルチメディアタイマーでもなんでも使え
ただ、カーソルのアニメーションと音鳴らしてるだけなら明示的に
CPUを明け渡せ
そしたらあとは適切な「推奨動作環境」をパッケージに書くだけだ
今すぐやれ
つっても、大昔に誰かが書いたフレームワークにべったりのおまいらじゃ
一から書き始めるの無理そうだな
AtariのPONGよりOOPLの元祖と言われるSimula67のほうが古いのだが。
>627
fps志向で組む必要はない。コンシューマのアクションや3D系の発想だが、
コンシューマとパソでは全然環境が違うのでそもそも同じ技術の適用を
検討する意味もあまりない。だから、その意味では君に同意。
ただそっち系に話が移ってたから付き合ってみただけでさ。
オプションにCPU使用率の設定が出来るゲームは既にあるな。
例えばメイクLOVE+とかは出来る。でも他の意味でタコなエンジンだが。
CPUを明け渡すことの価値を否定してる奴なんかいないだろ。
その明け渡し方をどうするほうがいいのか細かい言い争いしてるだけで。
>626
625は技術の発展、成長が見られないとか言う意味じゃないの?
まあ前に
「今の技術でも後十年は戦える」
とか言ってなかったっけ?だから解り合えないと思うけど。
あとFPSにサンプリング定理は当てはまらないと思う。
>>629 言い争いよりコードやプロダクトで示すべきなんじゃないの?
>628
名前に反して、Simula67の開発は68年だ。
さて、スペーストラベルという、UNIX開発のきっかけになったゲームは、
69年に開発された。これはOSを作りたくなる程度には魅力的なゲーム
だったのだろうが、元祖コンピュータゲームなのかどうかは資料が
見つからなくて申し訳ない。なんにしても、オタ話だが。
C++がアメリカの大学に配布されるようになったのは1983年のことだが、
ほぼ同時期にファミリーコンピュータが発売されている。
ファミコンのゲーム開発でC++を使ってる奴なんていたのかね?
>630
VSYNCと同期しているのなら、元信号との誤差が正確に0なので
当てはまらないけど、パソゲの多くは違うから。
本来フレームごとに変化する信号としてあるべき情報をタイマで
割り込んでサンプリングしたものなので、サンプリング定理により
フレーム周波数の倍のサンプリング周波数が欲しいってこと。
>631
そっちはそっちでやればいい
オブジェクト指向とオブジェクト指向言語を混同してない?
そういえばスーパーマリオって起動直後すぐに空ループにはいるんだったな。
あとは全部割り込み処理。あんま関係かもしれんが。
57年にはFORTRANでチェッカーゲームのクライアントが作られ、人間に
挑戦するまでになっているな。どっちかというと人工知能分野だが。
>633
ゲームをオブジェクト指向開発していたやつが80年代初頭にいたと
いう気か? C言語で作ってる奴すら少数派だったんじゃねえ?
昔話はどうでもいいよ。
未来の話をしてくれ。
レイヤ化は別にOOP限定の手法というわけじゃないよ
どんなプログラムにでも必要な話
一般アプリプログラマにOOPが意識される(≠実際にOOPで書く)ようになったのは
タオ・オブ・オブジェクトの出版以降、つまり十年強前からでそ?
でもレイヤ化をやりすぎるとバカを見るのも事実。
まあ、どこまでレイヤ化するのは開発方針の問題だろうけど。
俺だって、まったくレイヤ化してないわけじゃないぞ。
言い訳ださい
サンプリング定理ってのは波に関する定理であって、
アニメーション処理には全く何の関係もないぞ。
数学や物理の定理や命題を、本質を理解せずにいい加減に
借用するのはインテリぶりたいバカが好む論法だな。
いい加減プ板へ帰れ
プ板ってプロレス板か?
ネタだと思うがいちおう・・・
>>641 おまいもう一度勉強し直してこい
>640
言い訳にしか見えないのなら、ただの素人だな。
本当にまともにオブジェクト指向で物を作ろうとしたことがあれば、
まず最初に、それに失敗したことがあるはずだ。
なんでもかんでも抽象化してクラスをバンバン作っていくと、
異様に階層構造の増えた、他人には読めないクラスライブラリになる。
そりはおつむが足りないからかと。
>646
いつでも完璧な設計が出来て、その水準をスタッフが常に共有できて、
誰もいつでも間違った実装をやらないと信じられるのであれば、
頭はいいかもしれないが現実を知らないやっぱりバカだ。
巨大なプロジェクトならともかくそれほど大きくもないアプリなら、
抽象化とかカプセル化とか再利用とかも、現実にはほどほどで妥協して、
少々ベタでも単純なやり方にしたほうがいいこともある。
その辺のサジ加減が人によって違って、抽象化の度合いが強い人と
弱い人がいるって話なんじゃないのか。
さすが底辺のプログラマだな。もうちょっと他の現場見てきたら?
まあ他の現場って言ったってその調子じゃまともなところにゃ雇ってもらえないだろうがな。
俺はエロゲPGじゃないがエロゲの開発現場ってみんなこうなのか?
まともなプログラマならこんな時間にこんな場所に書き込まないと思うが。
乗り物はスーパーカーだ最高だよ! それ以外は認めねぇ!
って人に
スーパーカーを買うにはお金がたくさん必要なんだよ、坊や。
とか
近所のコンビニに行くくらいチャリで十分だろ
って言ってるのと同じような事をしてる印象
>648
多分、一生PGどまりなんだろうな。
煽りだけに見えてもなんなのでちゃんと突っ込んどくと、
費用対効果の計算や遂行難度・失敗の危険性の見積もりをした上で、
その開発手法がプロジェクト規模からみて適切か判断する能力が無ければ、
作業員にはなれても、管理の側には回れません、ということ。
上から言われた設計でオブジェクト指向なコードを書いたことがあるだけで
自分で設計したことや、その上で失敗したことは無いんだろうな、どうせ。
はなっからHalt効かす気の無いAMDCPUならまだしもHalt効かすと劇的に消費電力下がる
Pentium4系は結構馬鹿に出来ないな
コードの保守性、生産性、再利用性を高めてくれるのがオブジェクト指向だし、実際そうなんだがな。それはプロジェクトの規模に関係なく。それも、理想論じゃなく現実で。
そりゃクライアントからの要望によっちゃ使えないこともあるけど、そういうのがなけりゃな。
なんかもう。
いま論争されてるのを無理やり一般人的イメージに例えるとこんなもん?
プログラム:倉庫 プログラマ:管理係 とする。
・オブジェクト指向の人
倉庫ってやつは品名をアルファベット順に並べてあるのが一番便利だべ?
管理人以外の人間にもわかりやすいし、新しい品のための棚を作る必要ができても
どこに入れるかは決まっているようなもん。システマチック、てのはこういうことだべ。
・必ずしもそうでないひと(なんて言えばいいかわからん)
うちの倉庫はそんなにでかくねえんで、使用頻度の高さとか、品物の大きさとかで
管理人の使いやすい様に並べたほうが良いんだよ。スペースだってうまくやれば節約できるしな。
ここは俺の庭みたいなもんだで、わかんないことは何でも俺に聞いてくんな。
品数が増えたとしてもちょっとくらいなら十分なんとかなるっしょ。
概念的に規模が大きくなればなるほど前者が優勢になるはずだが
エロゲ程度なら後者としてはわざわざ並べなおすより今のままのほうが
小回りがきくし管理人の手間は少なくて済みやすい、ってな感じ?
オブジェクト指向が理解できない奴が
「オブジェクト指向は駄目」と言ってもね。
最新技術に追いつけない頭の悪い古い人間は見苦しいだけ。
二言目には「理想的教科書的にはいいけど現場では通用しない」ですか?
COBOLerの言い訳と一緒ですね。
>655
近いとは思うけど、それでは本来OOPであるべきだ、なんて結論に
なってしまうから微妙。規模の問題をたとえるなら、こんなのはどう?
OOP=何十人ものメンバーを安全快適に海外旅行させるための旅行代理店。
非OOP=隣県の温泉宿へ家族でぶらりと日帰り旅行。
旅のやり方としてはもちろん代理店のほうが大掛かりでしっかりしている。
高度だといってもいいだろう。海外旅行ともなると、心配だし、そういう
方法論なしには旅慣れてない人にはお勧めできない。
でも、たかが家族日帰り旅行に旅行代理店に頼むのは、お金も掛かるし
返って面倒くさい。意味がない。
これが「プロジェクト規模を考えろ」って言葉の意味なのね。
>654は、団体様の海外旅行にしか参加したことないんだろ。
だからそうでない旅を知らない。
オブジェクト指向への批判は全部分かってない年寄りのたわごとだと
やたら決め付けたがるOOP厨も最近は目立つがな。
本当にオブジェクト指向で設計開発したことがあるのか?
プロジェクトを運営してきっちり完成させる苦労を味わったことあるのか?
C++で人に言われたクラスライブラリを使ったり、誰かの設計どおりに
作ったりしてるだけでオブジェクト指向開発をマスターしてるとか言うなよ?
オブジェクト指向を
めんどくさい、理解できないって言っているヤシの典型的な理論ですな。
>本当にオブジェクト指向で設計開発したことがあるのか?
>プロジェクトを運営してきっちり完成させる苦労を味わったことあるのか?
おまいは?
>>658 >オブジェクト指向への批判は全部分かってない年寄りのたわごとだと
>やたら決め付けたがるOOP厨も最近は目立つがな。
ああ、5年ぐらい前までは漏れの周りにもそんなのがいたな。
オブジェクト指向を「銀の弾丸」だと思っていたようなやつらだ。
最近じゃオブジェクト指向は単なる前提であって、「オブジェクト指向なら
自動的に良いものが出来る」なんて考えている奴はいない。
最近目立つってのはXP厨だろ。
これが将来どうなるか漏れには判断がつかないけど、
いずれにせよ銀の弾丸でないことは確かだ。
メッセージドリブンとCPU使用率が関係有るのはわかったが、それと
オブジェクト指向でプログラムを書くのの因果関係が分からん。
どっからオブジェクト指向の話にすりかわったんだ?
オブジェクト指向で組んだらCPU使用率が下がると言う主張も
なさそうだし、メッセージドリブンなプログラムがオブジェクト指向でないと
組めないと言う話でもなさそうだし。
なんかメッセージドリブンで書けない原因をオブジェクト指向になすりつけて
ごまかしているように見える。
>660
もちろん、人の造ったクラスライブラリやフレームワークなら
普通に使ったことはあるけど、俺はSEではないので。
データベースのクライアントやサーバーの電文処理をちょろっと
組んだことはある。規模的にはかなり大きなプロジェクトだった。
でも、ただの作業員だったからな。全体の設計なんてとてもとても。
個人的にはタコな設計してやがると思ってたが、PGごときにそんなこと
言われたら逆に鼻で笑われたろうよ。実際、簡単にやれることじゃない。
そこまで複雑で理論だった設計は、エロゲーのシステムにはいらんしな。
>661
XP厨には幸いにして出会ってないなあ。
もう数年すりゃこっちの業界にも来るんだろうか。
>662
メッセージドリブンで書こうがポーリングで書こうが100%に
ならないようには出来るってのは同意取れてると思うけどね。
ポーリングにはポーリングのいいところがあるんだよ。
どちらが無条件に優れてるって物ではない。もう一回読み直してみ?
OOPの話は脱線だけどな。
結論
「CPU使用率が100%なの? じゃあ回避〜」な時代になるか
会社に余裕でもないかぎりシステムのそういうところをいじる予算、時間が来ない、でFA?
つか、もまえら何故そこまで必死なんだ?
>665
煽り煽られ時にムカっとしながらも、実は割と楽しんでいるに一票。
煽り煽られ♪
釣り釣られ〜♪
>>664 紙芝居型エロゲーが無くなって100%でもOKな時代が来る!
紙芝居型の方がイイ
過剰演出ウザイ
100%食われたら出るものも出ないだろ?
それがもっとも重要なことだぞ。忘れるなよ。
>668-671
上のほう嫁、で済む話だから、さすがにもうその辺の話題は
飽きてきてるんじゃないだろうか。
>657
なんかここまでの叩きあいを解ったような気にさせてもらえたよ、ありがとう。
ここはプログラマ以外も見てる場所なんで
たまにこうやって一般人向けにまとめようとしてもらえるのはいいな。
もしかしたらこういうのは実際の仕事場でも必要になってくるんじゃないのか?
なんか春秋戦国の縦横家みたいだけど。
ところで、カーマックを出してもこのスレでは説得材料にならないな。
彼は誰もやれなかったことを実現するのに才を用いているのであって
このスレで求められているのは独創より洗練だ。もともと日本人の得意とする分野のはず。
……で、カーマックって誰よ?w (いや一応知ってるけどね)
CPUを占拠しない処理ってのはこういうイメージ?
●メッセージドリブンの場合
(゚∀゚ャ…
(゚∀゚)……
(Click!!)
クリックキタ━━━(゚∀゚)━━━!!!!!
●ポーリング
( ・∀・ )クリックマダー? チンチン
( ・∀・ )……
( ・∀・ )クリックマダー? チンチン
( ・∀・ )……
( ・∀・ )クリックマd (Click!!) キタ━━━( ・∀・ )━━━!!!!
で、改行されるときの時間がいまいち信頼できないからポーリングの価値があるってことでいい?
それと>410で「オブジェクト指向なメッセージドリブン」というキーワードが出てきたんだけど
これはメッセージドリブンというのはOOPのための方法という意味なのかな?
そうするとエロゲにOOPは是か非かという話になってくるのは納得できるんだけど……。
必ずしもそうではなくOOPに向いているだけでOOPである必要はないということの
ように読めなくもなかったけどここまでではよくわからん。
どこまでがメッセージドリブンなのかというのもつかみきれなくなってたし。
どっちにしろCPUの占拠の話がここまで広がってるのは面白かったんだけど。
>673
まあ、エロゲがOOPに足る規模かどうかの判断は人によると思うけど、
OOPを使わない人の主張をたとえるとあんな感じです。
メッセージドリブンとポーリングの話となると、OSの仕組みが関わるから
ちょっとたとえにくいかも。Cマガ5月号のMIDIプレイヤの記事で、
ちょうどその辺のことが書いてある。
(ちなみにそのプレイヤーはポーリング+Sleepで実装してるようだ)
Windowsのプログラミング作法としては、メッセージドリブンのほうが
正式なやり方なんだけど、タイマ割り込みの感覚が10ミリ秒とかになると
OSに掛かる負荷も馬鹿にならないので、ポーリングを使うという判断も
ありうる、という感じかな。
>>674 もうちょっとわかりやすい例で言えば
> ●メッセージドリブンの場合
郵便配達に「郵便でーす」と呼ばれたときに玄関に行く
> ●ポーリング
5分おきに郵便が届いてないか確かめに玄関に行く
> これはメッセージドリブンというのはOOPのための方法という意味なのかな?
メッセージドリブンはOOの考え方の基本。
679 :
名無しさん@初回限定:03/05/24 23:03 ID:bt25DbGp
ハードウェアみたいに専用の割り込みラインを設けて、
高精度にメッセージドリブンをするってのは無理なのかな。
今のWinじゃ無理だろうな。
カーネルドライバを書けば…
そんなエロゲはまっぴらごめんだが。
RT-Linux専用エロゲ・・・
BTRON用ということでひとつ。
で、NスクがMsgWaitForMultipleObjectsを使うようになれば、
他のエロゲプログラマも追従するんじゃないでしょうか。
上の日記:
> VC++6についてきたMSDNのヘルプには書いてない。
これは資質を疑われる発言ですが、生暖かく見守ってあげましょう!
あと、英語版SDKには載ってた気がします。
>あと、英語版SDKには載ってた気がします。
VS6付属MSDNですが、英語資料なら載ってますね。
というか、VS6発売当時の付属MSDNは日本語化が不完全なのだから、
英語の方を読むのが当たり前なのだが。
そうでなくとも、日本語のSleepやWaitForMultipleObjectsとかからリンクが
張られてるんだから、気付いてもよさげ。
そもそも、プログラムで飯食ってるんだったらMSDN Libraryの最新版
くらい持っとけよってとこか。
Webでも公開しているんだからそっちでもよいが。
KERNEL32/USER32くらいならは普通は、全部確認するだろうに
くそな すくりぷと えんじんが たくさん ででくる りゆうが この すれで わかりました 。
オライリーのWin32/C++マルチスレッドプログラミング詳説にも
普通に解説が載ってるな。<MsgWaitForMultipleObjects()
Nスクの作者は晒されたわけだが、このスレで設計からコーディングまで
1人でやってる奴って他にいるのかね?どっかのチームの一部品PGばっかちゃう?
エロゲ制作チームの規模から言って、ほとんどが一人でやってるんじゃないの?
たかがAPIの知識ひとつで勝った気分になれるのは幸せだなあと
>>691 unixでいうところのselectやpollにあたるものなので、
知らないというのはクリティカルですよ。
ソフトウェア技術の向上を目指すなら、
人にしろAPIにしろ、底辺層からやらないとダメですね。
>692
しゃべり方が特徴的だね。
そのクリティカルなAPIになぜSimpleObject版がなくて
いきなりMultipleObjectsなのか。
そもそも、イベントと関係無しに単にメッセージ処理と
Sleepを組み合わせたものが合ってもよさそうなものだ。
APIとしては付録なんじゃない?
ぐぐれば分かるが、PeekMessage+Sleepのコードは非常に多い。
「定石」だからな。やねうらおさんとか昔そういうコラム書いてたな。
これは知らない人が結構いるのか、知ってるけどSleepでいいやと
思っているのか、MsgWait〜には何か欠点があるのか、どれだろう?
(Sleepと違って全く休まない可能性があるのが気になってるのかも?)
例えばCマガで記事を書いた人は何故使わなかったのだろう?
コマンドを一つ知らなくても、それを使わない方法で
今までちゃんと動くものを作っている実績がるから特になんとも思いませんが。
てか私は>507なんですが私ごときの書いたようなことは全て高橋氏の次期エンジンに
盛り込まれているようなんで好感度高かったり。
っていうか、正直気になる。APIとしては傍系臭いとしても、
機能は確かにクリティカルに便利なので、これだけ便利なAPIを
なぜ今までみんな紹介しなかったのだろうと。
Win95の頃からあるのなら、もっと話題になってもよさそうなのに。
NScripter作者の最終見解がでましたか。
>>694 > 今までちゃんと動くものを作っている実績がるから特になんとも思いませんが。
私もそう思います。ですから、生暖かく見守ってあげよう、と。
2ちゃんで吠えてる人たちは、正直どうでもいいです(笑)
たしかに実用上はSleepでも問題にはならないからね
敢えてSleepにする意味も無いが
>>697 用法が最近変わってきたのかも知れんが、「生暖かく見守る」ってのは元々
ヲチ対象とかに用いる否定的な用法の造語だぞ。
700 :
名無しさん@初回限定:03/05/25 19:03 ID:qB+KW3ej
700げと
あぼーん
>>693 >そのクリティカルなAPIになぜSimpleObject版がなくて
>いきなりMultipleObjectsなのか。
大は小をかねるってだけだろ。
MultipleがあるのにSingleに存在意義が何かあるのか?
逆に、Singleでは使い物にならないって用途は幾らでもあるからな。
>>694 >コマンドを一つ知らなくても、それを使わない方法で
>今までちゃんと動くものを作っている実績がるから特になんとも思いませんが。
なんというか、典型的だな。
その言い訳で勉強を嫌がって君自身が時代から落伍していくのはまあ勝手だが、
君のコードをメンテする香具師には同情する。
ふつうWindowsならスレッドにするからだろ。
unixならfork/select/pollだろうが。
MsgWait〜はそもそもいらない。
704 :
694:03/05/25 21:48 ID:uaeT+XgY
>702
私はプログラマではないので…… 申し訳ないですが同情心を浪費させてしまったようです。
中のことなど見えない客といたしましては
いつまでたっても作品が出ない、でても満足に動かないものよりは
知らないコマンドがあったプログラマでも、
実戦でちゃんと動き、改良も出来ているエンジンを作れるほうが偉い。
高橋氏は偉い側とみなされるべき実績があるという意味で書かせていただきました。
ま、この論理ですとみずほ銀行のシステム構築を担当した方より
ずっと偉いという結論が出てしまうので声高に主張するつもりはないのですが。
というか、このスレでだって、Sleepの話題は頭からずっと出てたのに、
MsgWaitFor〜が出たのは>402が初出だ(ごうちゃ氏の日記で出てきて後)。
ここですら誰も知らないか、その使い方に気づいてなかったのでは?
いいことを教わったなーと素直に感謝しとくのが吉。
>703
マルチスレッドプログラミングは同期処理のところで分かりにくい
バグを入れ込みやすいからな。どっちがいいかの判断は人による。
>>704 まあ技術的詳細の部分はともかく、
「俺はこのやり方で実績を積んできたんだ。
いまさら新しい物を勉強して取り入れる必要なんて無いね!」
ってタイプの人は大概の職業はダメなんでない?
伝統芸能ならいざしらず、変化の速い業界では特にね。
新しいものと見ればそれが必要かどうかも今自分の状況に適切なものかも
コスト的に見合うものかも考えずとにかく飛びつく技術オタもダメだね。
そんなに新しいものが好きならDirectX9でもバリバリ使ってゲーム組んでみれ。
俺は安全が確認されてサンプルコードが出揃ってからゆるゆるとやらしてもらうよ。
ローテクですむところはローテクでさくっとやってしまうほうが儲かるぞ。
必要が無くてお金にならないなら、横目で見とく程度のほうが賢い。
>>707 とびつかないと実戦に投入できるかもわからんですがな
別にDirectX9知ってても、必ず仕事につかわなきゃならんって訳でもあるまい
Win32プラットフォームになって何年もたちますが
それでもメッセージドリブンは新しい手法ですか
DX9って…極論しか出てこない人だなぁ
>708
無駄になるかもしれないのを覚悟の上での投機というスタンスなら分かる。
確かに全方面精力的にそうやって動いていければもっと上へ行けるだろうな。
俺は得になるのを確認してから付いていっても間に合うと思ってるし、
なんでもかんでもとびつく体力も暇も若さもないんでなー。
>709
>706が「新しい」って言ってるから「新しい」で受けただけなんだけど。
もちろん、メッセージドリブンもポーリングも、十分古い技法だ。
どっちも利点があるから生き残ってきてるだけで。
ちなみにMsgWaitForMultipleObjects()にはfwaitAllがTRUEのときの
挙動やら、イベントによる待機の終了に多少クセがあるらしいが。
メッセージドリブン、マルチスレッド、オブジェクト指向、etc...
使いこなせるだけの技術を持っていて当然と思っている人たち
エ ロ ゲ プ ロ グ ラ マ に 夢 を 持 ち す ぎ
>713
技術云々以前に、採用する利があるかどうかの話をしてるんだろうが。
メッセージドリブンとポーリングについては長所と欠点の紹介はされたし、
オブジェクト指向についても、だいたい語りつくされてると思うんで、
あんまり議論されてないのはマルチスレッド周りしかないと思うがな。
マルチスレッドの同期処理のデバッグは、ただ現在実行されている箇所の
振る舞いを見ていれば事足りることの多いシングルスレッドのデバッグ
よりは難しいと俺は思う。だから、必要が無ければ避ける選択もありだろ。
アイドル処理なんてのがWin32の時代にまだ使われているのもそのせいだ。
>>714 >技術云々以前に、採用する利があるかどうかの話をしてるんだろうが。
以前ってあんた、採用する利があるかどうかを判断するには、その技術を
ある程度理解していないと出来ない話だろう。
考え方が逆だと思うぞ。
>>699 > 用法が最近変わってきたのかも知れんが、「生暖かく見守る」ってのは元々
> ヲチ対象とかに用いる否定的な用法の造語だぞ。
否定的って意味がよくわかりませんが、
ヲチ対象だということは確かでしょう。
>>692 に書いたとおり、底辺から良くならないと結局全体は
良くなりませんから。
Nスク作者の方はここをごらんになってるようですし(日記参照)、
ここでの議論がソフトウェアにfeedbackされれば良いのですが・・・
生暖かくヲチしましょう。
>>713 エロゲプログラマという環境がそうさせた、と切り捨てるのは簡単ですが、
こういった理由を盾にして閉じこもってる連中は、えてして老害になるわけです。
教育の機会がない以上、同じ指向のプログラマが再生産されてしまいますからね。
>715
採用する意味があるかどうか分かる程度に知れば十分だろ。
いちおう一通り知ってはいるぞ。その上で、今の開発規模なら必要ないと
いう判断をしてる相手に対して、お前は十分知らないだけだ、とただ
ガナリ立てるだけでは説得力皆無。
これこれこういう理由で採用すべきだ、という話をしてみろよ。
>716
>693の俺の疑問について、天上世界にいらっしゃる貴方はどう思う?
旅行のたとえで言うならば、旅行代理店の業務の詳細について
知らずとも、近場の個人旅行に旅行代理店が必要ないことくらいは
分かる、ってことだ。
>>703 > ふつうWindowsならスレッドにするからだろ。
残念ながら、スレッド化はイベントドリブン化よりもノウハウを要します。
イベントドリブンもロクに使いこなせていないのに、スレッド化なんて
まず無理でありましょう。ゲームに限らず、スレッドは難しいものです。
スレッド化でよくハマるのが、共有オブジェクトを排他ロックで取り合う
ようにする処理を *おかまいなしに* 入れてしまうことです。やっつけで作る
と大概ここでハマります。
スレッドを使わないでスレッドのようなことをするには、非ブロック型のAPI
を使います。MsgWaitFor.../select/pollはまさにそのためのものです。
select/pollは主にネットワークサーバーのプログラミング例題で出てくる
ものですが、アイデアはいろいろ応用できます。
>>718 あんたが実際に知ってるか知ってないかなど問題にしていない。
現在困ってなければ技術向上の勉強はしなくていい的に読み
取れる発言が問題視されているわけで。
技術屋って技術を売り物にしてるんだろ。
その商品価値を向上させる努力を怠ってどうするよ。
>720
ポーリングと比較して、「イベントドリブン」を「使いこなす」という
言い方自体がそもそもおかしいのだが。
別にイベントドリブンはポーリングの上位概念でもなんでもないのに。
ま、そういう煽り臭さは置いといて、言ってることにはおおむね同意。
無駄に難しいことをする意味は無い。
>721
>現在困ってなければ技術向上の勉強はしなくていい
俺がいつそんなこと言ったよ。
現在困ってなければ、新しい技術は無理に使わなくていい、とは言ったがな。
俺はそれなりに新技術には興味持ってる。C++の参考書とか良く買うし、
デザインパターンの巧緻さには萌えさせてもらってるし、Cマガは愛読してるぞ?
網羅的に全技術を勉強するなんて無理なんだから、横目でざっと見とく程度で
いいんだよ。その中で便利そうだと思ったのから手空きの時にやればいい。
技術屋が売ってるのは、作った製品や、それを使ったサービスだ。
技術はその製品やサービスで結実することを通して初めて商品価値を生む。
>>723 C++の参考書はよく買えるほどまともなのが出てるとは思えんのだが、
参考までにどういった本を買ってるのか教えてくれないか?
>>723 >713に対する>714とか読んでると、そういう考えが根底に有るように
読めるのだがな。
私が誤読している可能性もあるので他の人にもどう見えてるか
聞いてみたいところだが、>717みたいな発言があるところをみると
そう読み取っている人が他にもいるんじゃないかと思うのだが。
>>724 自分一人で製品をパッケージ化して売り切りでやっているのなら
それでも通用するかもしれんが、そういうパターンだけじゃないでしょ。
プロジェクトの人足として雇われているパターンなら、直接のクライ
アントは製品の開発元になるわけで、そっから見りゃ要員として欲しい
のはより技術(プログラム技術のみではないが)持ってる人だろうて。
コンサルタントとかだと持つ技術そのものの質が重要になってくるしね。
>725
探すのめんどくさいから今手近にある本について言うと、
Javaデザインパターンとか、アンチパターンとか。
C++の本は、今すぐ出せるところにはない。いくつか持ってるんだが。
言語仕様も、案外ヘルプで事足りてしまうからなあ。
あとCOMの本も買ったな。MSの公式参考書っぽい奴。
>726
>714は、必要がないなら採用しなくていいと言ってるだけで、
知る必要がないなどと一言たりとも言ってないと思うが?
採用しないものを詳細に至るまで学ぶ必要はあるまい。(>719参照)
>717なんか、露骨にただの煽りじゃねえの。
後半については、確かにそうかもな。
プログラマと一口に言ったところで、仕事の形態は色々あるしな。
>>727 正直>714の「以前」という言い回しにかなりカチンときたのは
事実で、そこからああいう意図があると勘繰ったのだが、
それが(悪意の)憶測だと言われるのであれば謝る。
とりあえず「全く勉強の必要は無い」という主張をしていないという
のは(私としては)了解した。
普段どこまで勉強して手を広げておくかという点についてはいろ
いろ議論の余地は有ると思うが。
# 個々人の将来への投資の問題かね
ただ、>717を単なる煽りととられると、そういう現場で悩まされてる
身としてはちょっとね。結構切実な叫びだと思うが。
# それとも私躍らされてる?
>728
俺も>713の言い草にカチンと来てた部分があるから、
そういうニュアンスのにじむ言い方になったかもしれない。スマソ。
個々人の将来への投資のことを言われると確かに痛いな。
(そんなに真面目に人生考えてる奴がエロゲ業界には来ないと思うが(汗)
大きなプロジェクトの一員として、フォーマルなオブジェクト指向
バリバリのところで上へ行くには、俺は能力・経験共に欠けているのは、
認めざるを得ないところ。ここでやりあった連中よりも格下だろう。
自分のやってる仕事に特化してしまっているからな。
>717については、老害というからには若いプログラマとロートル
プログラマがいて二人が対立してないといけないわけだが、
そんなエロゲメーカーはあんまりないんじゃないかと……。
730 :
名無しさん@初回限定:03/05/26 02:13 ID:gVpfkre9
デザインパターンって巧緻だったのか…
誰もが知ってるような方法に名前を付けてるだけだと思っていたが。
デザインパターンは普遍的な構造に対して”名前を付けた”ことに意味があるんだが。
あれを全部並べてみると、良く出来てると思うぞ。萌える。
今まで色々やってきた果てがパターンの一つになっていたというのは
よくあることだが、先回りして答えを教えてもらえるのは楽でいい。
>>731 共通の語彙にしたことに意味があるんですよね。
>>729 労害の典型的な例はこのスレにも沢山でてますね。
「Nスク作者が言ってた」というのを真に受けてる素人は多いかと思われます。
>733
設計段階ではおおいに使えばいいが、説明に使うときはせいぜい補助的に
使うにとどめておくべきだ。パターン名称から具体的構造がピンと来れば
いいが、来ないこともあるし、誤解を生むこともある。
OOP厨が「共通語彙」として振り回すのは害しかないぞ。
その老害の実例を説明してみろよ。
「たくさん」あるんなら、どれがどう間違いだか説明できるだろ?
>>734 例えばあなたが料理人だとして、
そのゴボウを「短冊切り」で切ってくれといわれた場合、
「短冊切り」が分からないとしたらどうしますか?
あるいはコミュニケーションをする場合、
「短冊切り」という語彙がなかったら、
どうやってゴボウを切る方法を人に伝えますか?
GoFのデザインパターンに関して言えば、
そういうことだと思うんですが。。
短冊切りなら、誰に言っても同じ短冊切りだろうけど、
たとえばある機能の実装を「これはBuilderパターンで実装します」と
書いただけで何か説明した気になっちゃいけない。
名称で伝わるものはもちろんあるだろうけれど、パターンはどれもある程度
幅をもった概念だし、それを状況に当てはめるやり方にも幅がある。
だから、実装のレベルで食い違い勘違いが生じるのが嫌なら、ちゃんと
具体的にオブジェクトの役割を説明しなきゃいけない。
「これはいわゆる○○パターンで、このクラスがこう働いて……」と。
パターンは優れたアイデア集、設計の参考書ではあるけど、他人と
共通認識を得るための道具ではない。
必死なとこすまんがエロゲ制作でパターン説明なんて絶対無いぞ
パターンパターンっていうけどただの定石集。
振り飛車っていえば将棋さしてりゃ、あああれかって思う。
じゃ、盤面のどこに飛車おいたら振り飛車なのか?っていえば
その時々に寄るだろ。
そんだけ。
おまいらもパターンを使ってるが、名前を知らないだけ。
優秀な一部の人が作ったフレームワークやオブジェクト管理の
定石、いろんなものにはパターンがあるが、おまいらが名前を
知らないだけ。
どうせ前の人が書いたやつをコピペしてシナリオと絵を入れて
動かすだけだからな。
前の人などいない!
ひとたびそうした技術を身につけると、たとえ有用性がなかろうと逆効果であろうと、
技術を活用しないことが罪に思えてきます。
「ハンマーを手にした者にはすべてがクギに見えてくる」と、以前私の友人が言いましたが、
まさにそういう状況なのです。
>740
あ、それアンチパターンだよ
>737
ごもっとも。だから時々寂しいんだよ。
共通語彙として振り回す機会を俺にもくれ。
>>741 「アンチパターン」のp138に載ってる「打ち出の小槌」って奴ですな。
でも「銀の弾丸」って名前の方がよく耳にする気がするけど。
ただ、この本に載ってる例文のうち、
>われわれのデータベースがわれわれのアーキテクチャそのものです。
は、ひとたび技術を身につけると、その技術が陳腐化しようが
より優れたものが出てこようがあくまでも既に身につけた技術にこだわる人、
の例ですな。
ひとたびビジーループでのポーリングを身につけると・・・
>743
英語の慣用句だろう。知らんけど<打ち出の小槌 銀の弾丸
例えば、ポーリングで組んだほうがOSの負担も軽く組みやすいという利点が
あるからポーリングで組んでいるのに、参考書にはWindowsはメッセージドリブンで
すばらしいと書いてあったから丸呑みにしてイベントドリブンでないものは
ダメなプログラムだと思い込んでる奴のことだな。
俺だって、環境設定ダイアログはもちろんイベントドリブンで組むぞ。
ポーリングで組む利点が全く無いからな。
>>744 「人月の神話 狼人間を撃つ銀の弾丸はない」
フレデリック・P・ブルックス
という、プログラマなら読んでるのが常識の本がある。
マルチメディアタイマのコールバックは、時々遅れが出るらしい。
また、OSの動作の中でも優先度が高いので(だから正確なのだが)、
OSの動作をいくらか重くするらしい。
マルチスレッドでSleepとメッセージ送信だけの空ループを回し、
定期的にメッセージを投げる手もある。こっちのほうが
マルチメディアタイマよか軽いんじゃないかな。精度は落ちそうだが。
このくらいならマルチスレッドにしても独立性が高く簡単だし、
ポーリングのコード書くのがいやなら、やってみてもいいかもね。
俺はポーリングに特に抵抗ないからやらないけど。
>745
だから、英語の慣用句なんだって。<銀の弾丸
日本語に直すと打ち出の小槌ってことだろ。
自分の頭で考えない2流は二言目には定石、常識でうんざりだ
まあ、二流であることを自覚している二流は、定石や常識で
片付きそうなことは片付けてしまうことを選ぶ。俺もそうだ。
適性を考えずになんにでも当てはめてしまうのは三流だがな。
>748
どっちの話? 上のほうは、ためしてないからどの程度イケるかはしらん。
下のほうは……違うのか? 慣用句だと思ってたが。
>750
それが初出なのか。
英語にはそういう言い回しがあるのかと思ってたよ。ありがとう。
>>751 両方。下の方知らないのはちょっとなあ。古典だし。
上の方はマルチスレッドでビジーループしてどーすんのよ、ってこと。
>753
別に人名と書籍を知っててもお金にはならんしなあ。
そういうアンチパターンがある、という概念がわかってりゃいいでしょ。
歴史の時間じゃあるまいし。
ビジーループじゃないでしょ。Sleepで休んでるんだから。
ほとんど休んでて、定期的にメッセージだけ送るスレッドだよ。
まあ、無駄っぽいから俺はやらないが。
755 :
753:03/05/27 00:06 ID:Lzv4JE+O
>>754 すまんかった、俺が悪かった。忘れてくれ。
>>754 別に人名も書名も知らんでいいが内容は知っとけ。
いや、「打ち出の小槌」はしっとったわけだが。
内容って「人月の神話」のだが。
86年の本について今言われてもなー。
今俺の仕事にそんなに役に立つことが書いてあるのか?
本を見直したら、打ち出の小槌の別名としてOld Yeller(黄色い老犬)
ってのがあるんだな。
この別名といい、また一般形式として紹介されているシチュエーションからしても、
このアンチパターンの適切な日本語名は「老害」だと思う。
一応、変種として>744のパターンも紹介されているけどな。
「老害」ってのは、老人が既得権益にしがみつき後進の若者に
座を明け渡さないことにより組織が老朽化する害のことだから、
ちょっと意味合いが違うんじゃないかな。
「打ち出の小槌」は、新しいとか古いとかじゃなく、ひとつの
解法に固執するのはよくない、って意味だからさ。
本に書いてあるって言うんだから、まずは読んでみれ。
元ネタを読まずに憶測で話をしていても仕方なかろう。
ふむ、そんなに面白いのなら、買ってみよう。ありがとう。
でも、「○○読んでないから××」って言い方はつまらんと思うけどな。
完全オブジェクト指向エロゲまだぁ?
多分、出来上がったものを見ても分からんぞ。
何を期待しているのか知らんが。
すべての面でオブジェクティブを目指した結果、女キャラがすべてメインヒロインの派生クラスだったり
したら嫌だな・・・
主人公はチンコから派生してたりな
昔UMLだけしか表示されないエロゲというのを考えたことがある。
萌えないね。
チンコはインターフェイスだよな。
特殊なヒロインが実装していることもある。
本質はチンコにあり
771 :
山崎 渉:03/05/28 13:19 ID:n/EIyH8V
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
772 :
名無しさん@初回限定:03/05/28 23:36 ID:isUauFvo
漏れはwinのAPIは詳しくないからよくわからんが、Msgナンチャラを使うにせよ
sleepを使うにせよビジーループするにせよ、ディスパッチャないし先行体の
中の話だろ?
486 66MHzでwin95を動かす場合とPentium4 2GHzでXPを動かす場合で
最適解が異なるなら、ディスパッチャオブジェクトにストラテジパターンを
適用して、適宜切り替えりゃ良いだけの話ぢゃないの?
773 :
名無しさん@初回限定:03/05/28 23:38 ID:4RLCQmSM
774 :
_:03/05/28 23:40 ID:l8Nzs/E2
>772
アイデアとしては面白いし、ここの人間はみんな満足するだろうけど、
現実には、低スペックユーザと高スペックユーザで動作を切り替えてたら、
(あるいは、ユーザにそれを選ばせでもしたら)、サポートの手間が倍増
するから、業界のユーザの環境の幅広さを考えると、避けるほうが無難だと
思われ。一昔前のノーパソとか、ショップの激安パソとか、回収・開発停止
モノのマザボとか、ドライバの入れ方分かってない自作機とか、数年前に
ドライバの更新が止まってて、今のDirectXが動くのか怪しいカードとか。
>>775 そもそもエロゲのプログラムでそんなまともなサポートをしてるか、
って論点はさておき。
デフォルトは「安全側」にしておいて、設定ダイアログの
「上級者向け(詳しい人意外触らないでください)」タブとかで
切り替えるようにしとけば、別に大してサポートの手間も増えんだろ。
まあ、「上級向けだ、わからん奴は触るな」と言っても文句つけてくる
キティはそりゃいるけど、そんなに多くはないべっさ。
補足すると、先行体パターンを使うことにはフレームレートを
先行体のプロパティとすることで統一的に制御できるって利点もある。
先行体パターンって何?
初めて聞いた。ぐぐってもよく分からんので教えてたもれ。
proactorで検索すりゃ出てくるちゃうんかと
>776
うちは普通にサポートやってるぞ、機種依存でもあんまりひどいので
なければ対応するしな。一部の酷い例を全部みたいに言わないでくれ。
でも、オプションスイッチを増やすくらいなら、表現を慎重にすれば
ありかもね。仕事を増やすな、といわれる可能性もあるが。
で、Nスク作者の人の反応はどうですかね?
あの人が改心すればここでヒステリックになってる奴も
黙ると思うんだが。権威に弱いみたいだし。
権威だったのか(w
Nスク作者って専任プログラマーってわけではないし、
(というか、本人はシナリオライターが本職と思ってそう)
そういう人を権威扱いしちゃうと怒る人も多そう。
つか、誰かヒステリックになってるのか?(藁
まあ2ちゃんねらーだし煽りゃでできそうだしな
あの程度でも、実際にモノが動いてるし、さらに声がデカいわけで、
(シロウトさんの頭の中で)権威化するのは簡単ですよ。
かなり前だけど、確か「偉そうなことは俺より稼いでから言え」とか
言ってたような?
価値基準が金しかないですから
そういや高橋って
他人のソースのパクりかたを必死に考えて
それを日記に書いたりしていたような。
>788
あー、やってたなあ。どこまで変形すれば著作権がなくなるかとかいう話。
Nスクもオプソのをパクりまくりだったりな。
まあ本人しか知り得ないことだが。
>790
解析すりゃ分かるよ。あるいはエラー時の特徴的な振る舞いとか、
ヘンなバイナリが埋め込まれてないかとか。
実際バレて大騒ぎになった例も・・・。
まあ、プログラマならではの技術的価値観みたいのは、
Nスクの人には通じないだろうね。商売人で守銭奴だから。
権利にうるさそうだから、少なくともGPLのような
バレるとヤバいものには手を出さないんじゃないかと。
そんなのがプログラムを語るなよ
氏のプログラマの美学への敬意払わなさっぷりは、
ちょっと度が過ぎてるからね。
本当はプログラミングが嫌いなんじゃないだろうか。
ストールマン的反商業主義への嫌悪が昂じての言動だと思うが。<T氏
理由はどうであれ。
つまり、氏をヘコませたければ、金の話で勝つしかないと。
別にヘコませたいわけじゃ
ま、山師だわな。
>>797 誰かがNsc以上の環境をBSDライセンスとかの商用利用し易いライセンスで
フリー公開すればヘコむだろ。
>>800 彼はサポートを売っている訳だから、それではどうかな?
>800
平気な顔して、その環境のサポートサービスを売り始めるだろうな。
前にそんなこと言ってたよ。BSDライセンスなら改造し放題だし。
AGESがフリー公開とか言ってた時期 凄い嫌がってなかった?
で ちょうどそんな時期にゲーム制作技術板のGPLスレで、とってむ似たようなご意見のおひとが。
AGESのネームバリューを怖がっていたようだな。
あと、GPL絡みで金儲けに使いにくいのが問題だったのだろう。
独自に付け加えたコードをクローズドにしておけないからな。
>800
追記。MacOSXとFreeBSDみたいに、Nスク(に限らないが)の
コア部分として丸々取り込まれる恐れがあるね。
優秀であればあるほど、返って喜ばせてしまうかも。
なるほど。
じゃあたとえばGPLなのが広く普及して、T氏のメシの種のシェアを
奪うとヘコむ。と。
いや、ヘコませたいわけじゃないが。
それは本気で怖がってたな。<GPL
ようは、技術屋のオナニーが嫌いなんだと思われ。
でも技術屋のオナニーを一番恐れてるという。
食い扶持が減るのがいやなだけちゃうんかと。
食い扶持が減って嫌じゃない人はいないわけで
そりゃ、エンジンが素晴らしすぎたら、サポートで金とれないもんな。
ちょっとクソにしておかないと。
だからスクリプトの書式も視認性が低いのか
だったら金の話で勝ってやる、という奴は現れないらしい。
そりゃもっと稼げる人もいるでしょう。
違うのは金の話でむきになるかならないかで。
作者叩きはよそう。
話のついでだがNスクのCDフェードでmixerいじってる部分って
キリキリのやつのパクりか?
定数やアルゴリズム一緒だし。
へー。
>815
そういうのをパクリというのかどうかは微妙だと思うが。
>814
ムキになるかどうかというより、それしか通じる価値観なんか
ないだろうということだ。本質的にプログラマじゃない人だから、
金につながらない技術屋の美学なんか、キモいオナニーにしか見えない。
キリキリの作者がTipsでソースつきで解説してたからな<mixerの弄り方
探したんだが、今は無いみたいだ。それを真似したんだろう。
API周りの解説レベルで騒がれると、WEBのTipsやMLのサンプルコードや
アルゴリズム解説が軒並み使えなくなって困るからやめといたほうが。
まあ、ライバルの技術を真似するなんてプライドないのかという話はあるが。
そういやBGMをループ再生する処理の仕様(実装は知らない)も、
トランジションの仕様も、キリキリからパクってたな。
データ作成にLoop Tunerとかトランジションライブラリとか、
キリキリのツールを薦めていたのを覚えている。
あー、そうだったのか。
プログラマが勝手に根拠無く決めた、配列要素の最大値みたいな、
(今回のこれはマシン上に存在しうる、CDに繋がっている
ボリュームの最大数か?)
実装ごとに違う数になりそうな定数まで
同じ数つかってたから
何事かと思ったけど。
TIPSみたいにして公開されてたのか。
別にネット上の情報を活用するのは悪くないと思うが
あからさまにコピペっぽいとちょっと萎える。
おまい本当にそれ理解してんのか、とか。
そういう「萎える」の部分を、彼は相手にしないタイプだと思われ。
プログラマの美学的には我慢ならんわな。
好意的に見るならば、別に変える意味もないし、何か意図して
この数字にしたのかもしれないし、このままでいいや、と
考えたのかもね。そういう定数を変えただけでオリジナルを
気取られるのも、それはそれで萎えるし。
あと、BGMは明確にNスクが後発だけど、トラジションはどっちが
先だったか微妙。というか、BGMにせよトラジションにせよ
それほど独創的な仕様でもないから、どちらにも先行する実例が
ありそうな気も。まあそれでも、ライバルのツールだけ使うよう
勧める図々しさはたいしたもんだけどな。
彼はプログラミングを(ゲーム作り、金儲け?)の手段として見ていて、
俺はプログラミングという行為自体を目的としているというだけのこと。
>824
あなたの言いたいことはスレの流れから汲み取れなくも無いんだが、
素直に字面だけ読み下したら、とんでもないDQNな発言ですよ。
ところで任意のプログラムのPeekMessageコールにフックかけて
Sleepさせるツール作ってみたんだけど,需要ある?
当然,方式によって効くやつと効かないやつがあるけど.
827 :
名無しさん@初回限定:03/06/05 01:58 ID:EPsUUaOU
物凄くずれた方向だな。
>826
ノートパソコンの電力は持つし、ファンは静かになるし、
有意義なツールだと思うよ。
829 :
826:03/06/05 03:08 ID:BzC/Ejmc
一昨日からWin32API質問箱にいた人? > 826
831 :
826:03/06/05 04:15 ID:BzC/Ejmc
>>830 違うよ.見てきたけど,丁度かぶってるのね.
Advanced Windowsは初版だけ持ってるな.あれは面白かった.
>>829 CreateRemoteThreadかな?NT系だけなのは。
ためしにwin95b(@VMware)では動かず。
ターゲットプロセスがアクティブかそうでないかでSleepのかかり具合が調整できるともっといいかも。
>824 同意。
遠まわしに、税金使って甘えんな、と言ってるよなあ、あの日記。
収益性重視で基礎技術軽視。やっぱ守銭奴だな。
834 :
826:03/06/05 11:05 ID:BzC/Ejmc
>>832 グローバルフックじゃないし,
厳密にコードが走る前にフック開始する必要もないから,
95系に移植するのも楽なタイプだとは思うけど.
今のラッパは単純に,メッセージがあればSleepなし,
メッセージがなければSleep(1),ってだけ.
timeBeginPeriodで分解能はあげてる.
あとはターゲットごとに調整は必要かもね.
一瞬ムかマ板にいるのかとオモタ…。
一般ユーザの漏れには訳分からんな。
例え思ってたってクチにだすもんじゃないよなー<T氏
>833
そうか?「甘えられればいいのにね」
ぐらいにしか読みとれないんだけど。
それよりも、スレ違いだが、上の奇跡の方が訳分からん。
Modern C++ Design を理解できないアホにつける薬は無い
あれがトリッキーだと思えないのもどうかと思うが。
840 :
838:03/06/05 21:06 ID:SXStaqQ9
841 :
名無しさん@初回限定:03/06/05 22:42 ID:NZaDlwqw
煽り不発のイイワケ程カコワルイものは無い。
>>838 TemplateやSTLにものたりなくなったらふつーGeneric Programmingじゃない?
理解してるつもりはないがよく参照してる。
プログラミングスタイルに「ものたりなくなる」ってあるのか。
遊びじゃないんだからさ。<ものたりない
遊びでプログラミングしてるオープンソースマンセーな連中が、T氏の商魂を
叩いてる流れな気はする。
T氏も極端過ぎだがな。GPL嫌いは昔からだし。
シナリオのほうでは金にならなさそうな趣味的なこといってるくせに、
どうしてプログラムではこうがめつくなるかね。
>オープンソースまんせー
同じジャンルで言うとキリキリか?(わら
オープンソースがいやというよりは、自分が利用できないGPLがきらいなんじゃ?
きりきりは昔はGPLオンリーだったがいまは違う模様。
どうしても2chは個人叩き傾向になってしまうのかな
暑くなってきたので、結構このスレも注目されるかも
(室温に大きな影響があるわけじゃないが)
ツッコミ所満載だからね。
851 :
名無しさん@初回限定:03/06/06 23:04 ID:9j0YhO3P
彼奴も、(他人の)オープンソースはまんせーだろうよ(w
最低限の知識として、オープンソースにもいろいろあって、
大きく分けてBSDライクなものとGPLなものがあって、
アンチGPL≠アンチオープンソースだということくらいは
理解してから書き込むことをお勧めする。
というか、ここはGPLスレじゃないと思うんだが。
ところで、T氏は汎用インストーラーを公開してるんだが、
これがオープンソースなのな。それもBSDライク以上にゆるい条件の。
出来についてはともかく、反オープンソースってわけではなかろう。
どうせMP3デコードもMPG123でしょ
libbz2とかも使ってるだろうし
憎しが先にたって、知らないことをいい加減に突っ込まないほうが。
DirectShowだってさ。<MP3
bzip2はDLLでオプションだっけ? あれはBSDライクだし<条件
857 :
名無しさん@初回限定:03/06/07 06:11 ID:UE/jIrmm
結局、公開されてるソースの寄せ集めを売ってる、と。
858 :
_:03/06/07 06:12 ID:vRdp65CC
>857
BSDライクのオープンソースというのはそういうものなのだが?
それを言ったらMacOSXはどうなるんだ。
860 :
名無しさん@初回限定:03/06/07 07:21 ID:4CZ4BpZ4
WindowsのTCP/IP関連のコードもオプソ由来だしなー
オプソいうなっヽ(`Д´)ノ
>>857 商用利用が認められてるコードを寄せ集めたシステムで商売する事に
文句垂れるのは「やっかみ」って言うんだが。
864 :
名無しさん@初回限定:03/06/07 20:11 ID:NV0PaWpV
シンパ必死だな(藁
いや、シンパとかアンチとか以前に、基本認識の問題だからな。
いくらT氏が嫌いだからといって、BSDライセンスの意味を
違った風に捻じ曲げるわけには。
そりゃまあ、他人のソースを自分のプログラムで使いたいってだけなら、
その他人のソースはパブリックドメイン(何やってもOK)がベスト、
BSD(原作者のクレジットだけ残せばOK)はセカンドベスト、
GPL(自分のコードまでオプソにしなきゃならん)は駄目駄目ってことになるやな。
根本には自分は他人のコードをただで使いたいけど、他人が
自分のコードを使うのは許せないというのがあるわけで。
理解はできるけど、大声で主張する内容じゃないよな。
GPLに染まってるからそう思うだけ。
BSDライセンスってのは、みんなでただのり上等、お金儲けを楽にしよう、
という思想。クローズドソースへの攻撃を意図してない。
GPLみたいに、他人の飯の種を切り崩そうなんて思想じゃない。
>>867 意味不明。
クローズドソースへの攻撃とは何のことだね?
GPLはGPLを嫌いな人がGPLなソースを利用しないことを禁じてはいないよ。
そして、GPLなソースに依存しないコードに対してGPLは全くの無力だ。
「GPLなソースを利用しないこと」を禁じるには特許権を使うほかなく、
周知のようにGPLは特許とは非常に相性が悪い。
GPLなプログラムは「自分のソースを公開したくない人」にとっては
クローズドソースなプログラムのように振舞うというだけのことだ。
いろんな商用アプリをGPLで置き換えてシェアを切り崩そうと
しているのは確かだろ。それ自体は悪いことではないが、
商用クローズド開発者に対して敵対する行為ではある。
特許でもなんでも使って排除圧をある程度掛けたほうが世のためだと
個人的には思う<GPL
870 :
名無しさん@初回限定:03/06/10 23:44 ID:xtnuPOmW
まーGPLのソフトの大半は商用ソフトのパクリってこった。
パクりがいい悪いの話をしてるんじゃないよ。
BSDライクとGPLの最大の違いは、それを使ったクローズドな
独自の商業展開がやりやすいかどうかだ。
システム自体で金を稼ごうとするのならGPLは目の敵かもしれないけど、
システムの上で何かやって金を稼ごうとするにはGPLはかなり都合がよかったりするんだよね。
おりょ?IDが変わってる…
>>871 そりゃBSDのほうがクローズドな商業展開はやりやすいに決まってるな。
それは>866に書いたとおり。(もっとも「クレジットを残すこと」という
最低限のルールすら破ったという事例もあるが)
>>869 「それ自体は悪いことではない」と「排除圧を掛けるべき」ってのは
矛盾してますがな。
悪いことではないことを排除せねばならない理由は何よ?
システムそのものでお金を稼がないことが前提ならその通りだね。
MacOSXは、売り物だったから、BSDライセンスなFreeBSDを選んだわけで。
>873
誰もが大学教授になれるわけではないから。
GPLをやるのは勝手だけど、もし商用ソフトウェア開発者の邪魔に
なるようなら、社会への貢献度で見れば、圧力のひとつも掛けたほうが
全体ではプラスになるってことだ。矛盾してないぞ?
GPLが商用ソースのアイデアをパクってもいいのと同様、
商用大手が特許を利用してGPLに圧力を掛けても問題は何もない。
>>875 大学教授というと、タネンバウム大先生のことか?(藁
>>876 >GPLが商用ソースのアイデアをパクってもいいのと
とりあえず、きみ、GPLってのが単なるライセンスであって、
GPLという集団が存在するわけじゃないってことを理解しているか?
あと、「アイデアをパクっていい」って、そんなわけ無いじゃん。
パクる価値のあるアイデアははじめから特許とられてるって。で、
>商用大手が特許を利用してGPLに圧力を掛けても問題は何もない。
それは全く問題ないよ。
gifに特許を主張するならpngを普及させるだけのこと。
「社会への貢献度」ってのも意味不明だな。
マイクロソフトとオラクルと、あと2〜3社くらい(全部アメリカ企業)が
儲けることが社会全体の利益だと?
>>868 GPLに基づいて自ソースを公開する作者の意図はいろいろあれど、
GPLの大元締めたるRMS御大は商用コードの排撃を目論んでるのは
あまりにも有名だろ。最も有名なGPLプログラムのひとつの作者
Linus氏が御大の攻撃的姿勢に温度差を感じてるのも有名だが。
順番にスレ読んでみたけど、えらい難しい話題やな。
さーぱりわからん。
>877
GPLというライセンス自体が持つ思想性には取り込まれてるから、
そういう意味では集団として機能してる。無自覚な奴もいるけど。
だいたい、なんでもかんでも特許とれるわけじゃないからな。
オラクルがデータベース開発を楽にしてくれたのは確かだし、
マイクロソフトのIE根幹の技術はイントラネットや
インターネットアプリの開発を楽で機能豊富なものにしてくれたぞ。
エロゲに関して言えば、Windowsあってこそ。ゲイツ様様だしな。
その前だとNEC様様ってことになるが。あれもMS-DOSだし。
これだけ書いといてなんだが、話題ズレまくってるスマソ
いや、ためになったよ。
ソフトウェア産業がサービス業へシフトしている時代に GPL 使っただけで敵対行為と切って捨てるとは(w
コーディングしか能がないとそういう発想しか出てこないのかのう
確かに、ソフトウェア産業がサービス業にシフトしてる(堕してる)とは
思うがね。いい傾向ではないと思うが、時代の流れだからしょうがない。
だからって自分でソースを隠すことで守れる価値を窓から投げ捨てる必要はない。
そもそも、GPLもののディストリビューターが、クローズドソースな企業より
儲かってるようにはあまり見えないのだが。
さて、適当に煽ったところで
Nスクの作者は誰だ
>884
煽るのは結構だが、ちっとも論破できてないのがみじめだな。
宗教論争であって、正しい結論なんてないんだから
煽りあいにこそなれど、双方とも相手を論破できるわけないんだって。
>885
そんな簡単に釣られてくれるなよ・・・
どっちが金になるかは比較可能だろ。そのほかの思想信条は、
まあ宗教戦争だからやめとこう、でいいと思うけど。
金を多く稼げる方が優れているか? ということ自体が宗教論争の論点の一つなんだから
まともにかみ合うはずがない。
>>883 ケースバイケースで公開するものは公開して、公開しないものは公開しないという発想はないのか?
>889
金を稼がなくても生きていけるような幸せな奴ばかりじゃないだろ。
>890
公開するにしても、BSDライクにする。
GPLにはしないな。あんなのに加担したくない。
手持ちのソフトウェアで金を稼がなければならない、と考えてる人はフリーで公開しないでしょ。
フリーを強制されるわけじゃないし。(ストールマンの言い分はまた別として)
俺の仕事が減るから公開するな、ってのは言いがかり。
オープンソースにするにしても、BSDにしたほうが、
お互いの仕事(仕事とは金になるもののこと)が楽になって得だろう、
ということを言ってる。プログラマがみんなで幸せになるためだ。
まぁGPLは商売敵のタダ乗りを防ぐには有効なライセンスだからな。
GPLは、何が何でもそのソースをGPL外で使うことを許さない、
きわめて狭量なライセンスだ(いいかわるいかは別に、性質の話として)。
BSDライクなライセンスは、どんどんただ乗りしてくれ、というものだ。
クローズドソースなプロジェクトに囲い込んで、みんなで商品の一部として
使いまわそうという思想の元にある。だから、BSDにただのりすることを
非難するやつはバカ。
オープンソースといっても、まるで性質の違うもの。
896 :
名無しさん@初回限定:03/06/11 22:45 ID:JrwsliOX
改良したソフトのソースを自分が見られないくらいなら、
改良されない方がマシだ!ってライセンス>GPL
>894
一番有効なのは、クローズドソースにすることだな。
オープンソースとかフリーソフト一般の話題として扱うのは、
いい加減やめたほうがいいだろ。GPLと非GPLの話題なんだ。
>>897 クローズドでパクられた場合はいろいろ面倒だが、GPLだと狂信者が勝手に(ry
アリスソフトのSystem4シリーズから、
アクティブじゃない時はCPU使用率を下げるってのついたのね。
>899
クローズドソースは、そもそもパクられる可能性自体少ない。
社員が社のソースを持ち出すとかなら分かるが、この業界では
社員の技術=その会社の技術資産で、開発もサポートも一体で、
どうせそのプログラマでないと使えない物と化しているので、
ソースの流出を心配する発想には乏しいと思われ。
>>895 日本のWindowsのフリーソフトの多くは「商用利用不可」という制約だが、
GPLはそれよりもゆるいぞ。
商用利用自体は否定してないし、実際にGPLなソースで商売してる
会社があるわけだしな。
GPLへの批判ってのは「軒を貸すなら母屋まで貸せやゴルァ」って
感じで実に的外れだ。
>>901 リバースエンジニアリングという言葉を聞いたことは無いか?
GPLの困った点はあの感染力。まさにウィルスライセンス。
>902
そりゃ使う側の都合の話だな。開発者の話じゃない。
幻想の安売り攻勢(実際は保守により技術も金も必要となる)で
市場に割り込まれてウザい、と他社は思うわけだ。
まあ、そういう幻想はいい加減なくなってるから気にするほどでもないが。
エロゲのソースをリバースエンジニアリングなんかしてもしょうがないぞ。
手間考えたら、作り直すほうが早い。
>>903 GPLなソースを利用しなければ感染しないぞ。
GPLに限らず、著作権のみを根拠としたライセンスや契約なら
嫌なら無視すればいいだけ。(特許が絡むとそうも行かなくなるけどな)
問題になるとしたら「ばれなきゃいい」理論でこっそりGPLなソースを
流用しようとしたときで、この場合はばれたら「感染」するけれども
それは自業自得だしな。
>>904 >幻想の安売り攻勢(実際は保守により技術も金も必要となる)で
それは事実だ。
しかし、そういう根拠でGPLを批判するならBSDライセンスも含めて
全ての無料ソフトを全く同様に批判しろよ。
知ったかぶりと思いこみの激しいやつに突っ込んでも無駄だって。
>906
BSDライセンスは、例えばファイルフォーマットの普及の為に商用に
組み入れやすいようにライブラリを配るときに使われることが多い。
これはありがたく使わせてもらえこそすれ、商売の邪魔にはならない。
BSDで商業アプリと競合できるほどのアプリ全体を供給している例は
あまりないが、そういうケースがあったとして、丸々ソースをパクって
改造してクローズドな商業プロジェクトに取り込むことが可能なので、
あんまり怖くない。
以上のことから、商業開発者がGPLほどにはBSDライセンスを
敵視する必要がない、と言える。
クローズドソースなフリーソフトについては、つまり、
その作者以外には保守も何も出来ないのだから、
無料で商業並のサポートやるとか言い出さない限り怖くない。
俺はBSDなオープンソースにもフリーソフトにも賛成の立場だ。
ただGPLにのみ反対している。
>>909 別に、GPLで供給されているファイルフォーマット実装でも
自力で実装しなおせばいいだけじゃん。
繰り返しになるが、それを禁じることが出来るのは特許権だけだからな。
GPLの何が邪魔になるんだ?
BSDならパクれるから確かに楽だけど、むしろそっちの方が異常なわけでさ。
そのフォーマットなりなんなりから利益を得たいなら自分でちゃんと苦労しろよ。
>>910 まったくもって、意味不明だ。
>その作者以外には保守も何も出来ないのだから、
>無料で商業並のサポートやるとか言い出さない限り怖くない。
の一文から判断するに、「その作者以外」に保守が出来ることが怖いと
言っているように見えるが、そのことの何が怖いの?
さらに、作者以外に保守できることが怖いと言うならBSDなオープンソースは
作者以外にも保守できるのに何故怖くないの?
>911
GPLなんて奇形的なライセンスが生まれる前は、ソースを公開すると
いえばパブリックドメインかBSDライクなのが普通だったと思うが?
GPLを基準に考えるから、GPL以外の物が異常に見える。
実装しなおすのは、別に作るのに近い手間がかかる。
ファイルフォーマット程度のものでさえ、その手間を惜しんで、
BSDライクにしたほうが普及するくらいなのに、アプリ全体となったら、
GPLみたいなタダのものと競争しなきゃならんのは辛い。
もっとも、GPLのほうも、まともに保守しようとしたら金が掛かるんで、
そこの部分で商業プロジェクトにも勝ち目があるのは確か。
>904でも言ったとおり、GPLがタダなんかじゃないことはもうみんな
分かってるから、競争力という意味では、あんまり怖くない。
ただ、普通の商業ソフトと違った戦法で競争を挑んでくるのはうっとおしい。
↓で説明するが、あれはソースを隠す利点を自ら捨てて掛かる自爆戦法だからな。
>911
BSDはまるまるクローズドな独自展開商品に取り込めるから怖くない。
(コア部分はそのまま使って、ガワだけオリジナルに塗り替えて、
自分とこだけで機能追加や改造やサポートをやれば、客を囲い込めるからね)
GPLは、取り込めないくせにオープンだからめんどうだ。
独自の商品力という発想がなくなってしまうので、
本当にサポートの労力でしか金を取れなくなる。
912修正:
>GPLみたいなタダで開発してるものと競争しなきゃならんのは辛い。
>GPLがトータルではタダなんかじゃないことは
要するに俺が言いたいのは、GPLは別にズルなんかではないけれど、
フリーソフトとしては狭量すぎるし、商売の方法としてみたら、
わざわざもっと稼げるチャンスをどぶに捨てていて、
商業アプリ全体の足を引っ張りかねない、といいたいわけだ。
マイクロソフトの囲い込み戦略は、商売の方法としてはきわめて正しいぞ?
>>912 >もっとも、GPLのほうも、まともに保守しようとしたら金が掛かるんで、
正直、GPLで保守に金がかからないとしたら、漏れはGPLを支持しないよ。
GPLなソースでも保守で食える(つか、食ってる)からこそGPLを支持するわけだ。
逆に、IISだののサポートは結局マイクロソフトの下請けにすぎず、
マイクロソフト様のご意向に振り回されて非常に困る。
>ただ、普通の商業ソフトと違った戦法で競争を挑んでくるのはうっとおしい。
競争とはそういうものではないのかね?
>BSDはまるまるクローズドな独自展開商品に取り込めるから怖くない。
怖くない、じゃないだろ?
ただ乗りさせてくれてありがとう、お礼は一銭も出さないけどね、だろうが。
他人の手間を無料で丸ごと頂いて、ガワだけ塗り替えて楽に儲けるってのが
正常な商売だと信じているのかね?
>>913 >フリーソフトとしては狭量すぎるし、商売の方法としてみたら、
>わざわざもっと稼げるチャンスをどぶに捨てていて、
そう、その通り、GPLはパブリックドメインとクローズドの中間なのだよ。
これはその意味では正しいが、結論としては逆だ。
つまり、GPLがこれだけ普及したのは、使いようしだいでフリーソフトと
商用クローズドの良いとこ取りができるからなのだよ。
企業にとって、BSDみたいに寛大にやってたら商売敵に自分の手間を
ただ乗りされるだけで良いことは無い、しかし、独占市場を切り崩すには
フリーソフトの「共有に基づく共同開発」は有効である、ってことで
中間であるGPLが有効に機能したわけだ。
ソフトウェアの開発自体は最近の経済学で言うところの収穫逓増原理が
働いて結局は寡占・独占に落ちていくわけで、業界としてはどのみち
保守が中心になっていくし、であるなら保守のやりやすいライセンスが
優れているというわけだ。
>>906 >GPLなソースを利用しなければ感染しないぞ。
自分では利用していないつもりで、非GPLなライブラリを使ったら、実はそのライブラリが…の場合が怖い。
>>915 その場合善意の第三者理論で押し通せる気もするがどうなんだろうな。
>>915 その場合は自分に全く故意性が無いから問題ない。
細かく言うと、ライブラリ作者はライブラリが依存するGPLソースの
作者に対してGPLに基づく責任がある一方、ライブラリ利用者とライブラリ作者の
間には(おそらくはライブラリ作者の定めた)別の契約があるわけだ。
で、その間に不整合があるとしたら、それは全面的にライブラリ作者の
責任であって、ライブラリ利用者はGPLに基づく契約関係に無い以上
GPLに基づく責任は無い。
もちろんライブラリが利用不可能になることによって自分のプログラムが
動作しなくなるというリスクはあるけど、これは別にGPLじゃなくても同じこと。
gif特許の時にそういうことはあったけど、GPLがらみでそういう
事例ってあったっけ?
>914
>競争とはそういうものではないのかね?
そうかもしれんが、競争の敵が憎まれるのは、至極当然だよな?
クローズドな商業開発者からすれば、業界を荒らすガンだと
みなされてもそういう意味では仕方なかろう?
>他人の手間を無料で丸ごと頂いて、ガワだけ塗り替えて楽に
>儲けるってのが正常な商売だと信じているのかね?
ただ乗りしていいよと認めてるものにただ乗りしてるだけだ。
まったく正常な商売だぞ。
それが嫌ならBSDライセンスにするのが間違ってる。
>つまり、GPLがこれだけ普及したのは、使いようしだいで
>フリーソフトと商用クローズドの良いとこ取りができるからなのだよ。
中途半端な悪い所取りにもなりうる罠。
というか、そっちのほうが可能性高いような。
>であるなら保守のやりやすいライセンスが
>優れているというわけだ。
Linuxという成功例もあるから、全面的に否定する気は無いが、
製品寿命の短いゲームエンジンでは成り立たないんでないかねー。
エロゲエンジンの場合、むしろカスタマイズに対する要求の少なさ=汎用性の高さが
オープンソース的なカスタマイズやサポートで商売を成り立たせにくくしてるような気が
するが。
ほとんどが吊るしで満足してしまうようだと成り立たないからな。
>>918 >製品寿命の短いゲームエンジンでは成り立たないんでないかねー。
ポリゴン枚数を競うようなコンシューマ機ならともかく、
現状のエロゲを見るかぎり、エンジンの製品寿命が短いということに
技術的な根拠は全くないんだよな。
>>919 >エロゲエンジンの場合、むしろカスタマイズに対する要求の少なさ=汎用性の高さが
要求が無いということは無いだろうけど、オプソにすると確かに
仕事は激減するだろうな。
まあ、エロゲの音楽屋には複数のメーカーで仕事をしている人もいるみたいだし、
プログラマも数社に一人で十分ってことだろ。
ほとんどのブランドにおいて、ブランドの個性に対するプログラマの
役割といえばバグの量だけだしな。
劣悪なのが淘汰されればユーザにとっても利益に適うし。
なんじゃこりゃ。
GPLネタになった経緯は何だ?
有名なエンジンであるNScripterの作者がGPL嫌いだから
エンジンの話をしてるといつのまにかGPLの話になる。
実際RSの言動はキモッって感じ
>>905 このゲーム使用率が10〜20%だね。(セレロン750)
エロゲでこのくらいのADV無いの?
727 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 02:29
不勉強で恐縮なんだけど、クライアントアプリでメッセージドリブンじゃないとどんな風に実装するの? 少しも非現実的だと思ったこと無いんで不思議なんだけど。
728 名前:デフォルトの名無しさん[] 投稿日:03/05/18 02:33
そりゃ勿論、空ループでキーボードやマウスのI/Oポートを常時監視さ!(藁 常にCPU使用率は100%をキープ。割り込み?なんですかそれは。
730 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 03:05
メッセージドリブンって、メッセージがある時にだけ動くって知ってる? キー入力があった時、マウス入力があった時のみ動くわけだわ。
100%いくとしたら、次のメッセージまでに前のメッセージを処理しきれない時だけだろ? 何言ってるの? というか、そのバカな書き込みのあるスレどこよ?
731 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 03:31
>>730 >>728はビジーループの場合の話だが… つか、ネタにマジレス(r
732 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 10:06
>>730 常時CPU使用率が100%にならないエロゲー
http://www2.bbspink.com/test/read.cgi/erog/1050908540/ 733 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 10:39
ビジーループで何かの値をポーリングしていたとしても、 なんらかの変化を検知し(それは時間の経過かもしれない)、
それに応じた処理を行うんだから、まさにイベントドリブンだと思うが。
735 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 11:46
>>732 いやあ、芳しいねえ。 周囲が詳しくない人ばっかだとああなっちゃうのか。
736 名前:デフォルトの名無しさん[sage] 投稿日:03/05/18 18:15
エロゲープログラマーが馬鹿の集まりなのは定説
http://pc2.2ch.net/test/read.cgi/tech/997727326/l50 737 名前:730[sage] 投稿日:03/05/19 00:00
>>731 すまん、言い訳にならないんだけど酔ってた。 あと、世の中にそんな汚らしいコーディングスタイルがあるってのが衝撃で、
正気を失ってた。ネタにマジレスかっこわるいよ、俺。
業務用しか組んだことないやつにはわからんってだけだろ。
>728
なんか、無知をさらけだしてるよなあ。
あ、ごめ、>925の>728ってことね。
ポーリングで組んだってCPU使用率が上がるわけじゃないし、
どこかでそれに類する処理を入れないと、タイマイベント駆動じゃ
かえってCPU負担があがるという事に関してはここでも大体
同意は取れてる。所詮会計システムのクライアントをVBで
組んでる程度のプログラマってことだな。
とまあ、とりあえず煽っとく。
エロゲだからバカにされるというのならば、たとえばコンシューマ機みたく
フレーム単位で記述したとすると、なおさらイベントドリブンじゃない。
(フレームをイベントと解釈するなら別だが、駆動イベントがひとつしか
ないものをイベントドリブンと呼ぶのは違うだろう。
入力は全部フレーム頭でポーリングで取得するわけだし)
元々ゲーム業界はイベントドリブンには縁がうすいっつーの。
つーか、インストーラって、作るのは簡単だが落とし穴がたくさんある、
開発が難しい部類のプログラムだぞ。舐めて掛かってる奴が多いが。
そんなに俺たちをいじめるなよ・・・
>>927 やぁ、スリープくん。久しぶり(藁
まだいたのね。
>930
で、何か反論は出来るのかね? 特に>928
「なぜ」Sleepがダメなのかが説明できる奴がいない。
タイマイベントのほうが負担が大きいといわれて何も言い返せない。
そもそもお前らの大事に崇め奉るオブジェクト指向設計を、自力で
やったことがある奴がいるのかと煽っても、誰一人答えてこない
(多分いないんだな)。
学生君か、下っ端でフォームの実装くらいしかやらせてもらってない
丁稚プログラマしかこのスレにはいなかったってことなんだろうな。
そんなやつらに見下されなきゃいけないエロゲプログラマという
因果な商売をやってることに欝。せめて金でも儲けなきゃやってられるか。
相変わらずイベントドリブンとオブジェクト指向をいっしょくたにするし。
脳内で相手の言い分を自分の都合のいいようにねじまげるから相手にされないんだよ。
>934
どこが?<いっしょくた
どちらもこのスレで紛糾していた話題だから両方持ち出してるだけだろが。
そもそも持ち出したのはお前らだしな。どちらも簡単に論破されていたが。
936 :
名無しさん@初回限定:03/06/14 17:43 ID:8P2V2lgD
ま た s l e e p 厨 か !
で、いい加減、
マルチスレッド、イベントドリブン、割り込み、オブジェクト指向
の概念程度は理解したか?
あのさ、本気でその程度のことが理解できてないと思ってるわけ?
それとも、単に煽ってるだけなわけ?
>>829 申し訳ないけど、再度アップしてくれないでしょうか?
上記のリンク先には既に無いみたいなので
> このスレで紛糾
このスレでどうなろうと、どうでもいいんですが・・・
Nスク作者の人がどう判断するかのほうが重要ですね。
っていうか、ちょっと待て。なぜそこで割り込みの問題が入るんだ?
DOSベースとかコンシューマ機でハード直接触るような場合ならともかく、
Windowsでゲーム作るのに、割り込みの話をされても困るんだが。
>939
Nスクの人って、CPU使用率ちゃんと下がってるんじゃなかったっけ?
あの人に何を判断させて何がどう変化すると見込んでるの?
942 :
826:03/06/14 20:13 ID:0dbihZwP
スピンウェイトループがあってもイベントドリブンであることには変わりない.
スピンウェイトループは単に高応答性を狙ったウェイト手法の1つだし,
それ自体はメッセージポンプの一部を成しているんだから.
イベント(メッセージ)に応じて何か意味のある処理をしてることが重要なんで,
その待ち方はイベントドリブンかどうかに関係ない.
30fpsなり何なりの毎フレームごとに
その瞬間のマウスのボタン押下状態を監視してるって場合でも,
押下状態の変化をイベントと考えればイベントドリブンと言えると思う.
Sleepなし/Sleep(0)/Sleep(1)あたりの問題はまた別の話.
>>938 消えにくいアプロダおせーて.
>942
イベントドリブンなコードでもポーリング的な処理を必要とすることはあるし、
ポーリング形式のコードだってメッセージループらしきものはどこかに出来る。
どちらにウェイトをおく発想が作りやすいのかってことだわな。
普通のWinアプリの人なら前者だろうし、コンソールアプリやDOSゲーの人なら
後者だろう。
Windowsはそもそも実時間処理用のOSじゃないからなあ。
ちょっと時間に厳しい処理をしようとするとすぐ限界が見えて、
スピンウェイトループの出番になってしまう。
となると、全体をそれで記述したっていいかな、という気にもなる。
で、それが他業種から見れば奇形的なプログラミングに見えると。
で、電子紙芝居つか、典型的コンテンツブラウザ系のアプリであるところの
大半のエロゲーは、IE同様にイベントドリブン向きな素材なワケだが…。
>945
Windowsに限った話をしよう。カーソルアニメーションにも、エフェクトの
フレームを処理する場合にも、タイマイベントは必要なわけだ。
で、Windowsのタイマイベント機構の出来が悪いんで、それを使うくらいなら
SleepもしくはWaitFor〜系関数とPeekMessageとtimeGetTime使って
ポーリングしながら監視したほうが精度面でもマシン負担面でも有利だ、
というのがタイマイベント駆動が使われない理由なのだが、
そういうのも広義のイベントドリブンとみなす>942の立場なら同意。
ところで、IEのコアってどう組まれてるんだろう?
JavaScriptのタイマイベントの分解能とか調べた人いる?
swfプラグインなんかは別スレッドでゴリゴリとタイマ監視して
タイミング合わせてそうだが。あれがタイマイベントで動いてるとは思えん。
>>933 ほんとにわかってないな。
Sleep+ループだとCPU使用率はどうがんばっても0にならないだろ。
それぐらいも分からんのか?
それに仕様設計どうこうって、あんた自分で自分のこと
下っ端だって言ってなかったか?
>947
君の言う0というのは、どのレベルの厳密さを持って0なの?
やってみればわかるが、クリック待ちやちっこいカーソルの
アニメ程度ならCPUモニタは0を返すよ。
とにかくGetMessageなりWaitFor〜なりのOS休止命令で待たないことには
0だとは認めないというのかな?
でもその場合、OSがメッセージなりイベントなりをミリ秒精度で
投げたりtranslateしたりdispatchしたりする負荷で、全体としては
逆効果だと思うが。
業務系では下っ端だったよ。でかいシステムの設計なんて到底やれないね。
やれる気分になってオブジェクト指向設計について簡単そうに語る奴の
気もしれない。で、君はやったことあるの?
経験した上で、エロゲエンジンみたいな小さなものにも有効だと考えてるの?
そもそもだ。GetMessageはハードウェア命令じゃない。
Windowsのメッセージもイベントも、ハードウェア割り込みではない。
全部Windowsがソフトウェアで実装しているものだ。機械語コードだ。
ユーザ関数内でループするのに比べてAPI関数内でループするのが
ハードウェアにとって絶対に軽いとは限らないぞ?
正直ここまで突っ込んだ内部構造の話は良く知らんが。
>>941 実現しているんですか?>Nスク作者の人
最近ヲチしてないもので・・・
> あの人に何を判断させて何がどう変化すると見込んでるの?
Nスクはエロゲスクリプト環境としては最底辺の地位を保ってますから
Nスクが実現すれば他のエロゲ環境も対応せざるを得ないでしょう。
全体としての技術力の底上げを期待しています。
ZbbCROfM さんはNスク作者の人と主張が似てるので、参考になります。
>950
してますよ。
たとえば、AugustのPrincessHolidayとか。
ねこねこのみすいろの頃のバージョンと比べるとCPU値が
かなり下がっています。
ところで次スレよろ。>950
>>948 >どのレベルの厳密さを持って0なの?
理論値でも実測値でも。
>translateしたりdispatchしたりする負荷
Sleepはそういう負荷は発生しないと言うわけ?
>君はやったことあるの?
残念だがおれはやったことはない。
と言えば満足なのか?
やったことのないほうが少数派だと思うが。
>経験した上で、エロゲエンジンみたいな小さなものにも有効だと考えてるの?
大きい小さいでオブジェクト指向の有効無効が決まるわけじゃない。
やっぱりわかってない。
独学で我流コーディングばっかりやっていた中卒だろうて>スリープくん
頭の悪さと心の幼さ、そしてアカデミックな事物に対する反感が、
文章のそこかしこから伺える。
でもsleep()で事足りるんならそれでいいんじゃないの?
「もっといい方法があるよ」
「そんなんやってるひまない」
「そうか」
でいいんじゃないかと。
進みたい人は自ら進んでいくんだし。
ある意味親切な香具師らと思うけど、
正しさを以って相手を追い詰めるのは手法としては考え物だよ。
だな。
>952
えーと、translateとかdispatchの意味分かってるか?
タイマイベントごとにメッセージ投げさせるとかしなければ、
そういうプロセスは通らないわけだが。
>953
具体的な反論はない、ってことだね。
>952
っていうか、CPU負荷0なんてありえない。
GetMessageとSleep+PeekMessageで、君がどのくらいのCPU負荷の差を
見込んでいるのかにちょっと興味ある。
>949の意見についてはどう思う?
Sleepとタイマ監視だと、タイマメッセージ機構を通さないので、
tlanslateもdispatchも必要ない。
で、お前はオブジェクト指向設計をやったことあるのかないのか。
いっとくが、上の人がオブジェクト指向にそって設計したものにしたがって
VBでフォームを作るのは「設計作業」じゃないからな。
オブジェクト指向は、大規模プロジェクト用に開発されたものだぞ。
お前は一人でファイルのフィルタ処理を組むときでもオブジェクト指向でやるのか?
>お前はオブジェクト指向設計をやったことあるのかないのか。
なんなんだよおまい
このスレみてるとこれがしょっちゅう出てくるんだが・・・
>お前は一人でファイルのフィルタ処理を組むときでもオブジェクト指向でやるのか?
やりますよ。
まあ どうせたとえば十数行のプログラムでC++標準のiostreamつかったぐらいじゃ
必死になって「それはオブジェクト指向設計」じゃないっていうだろうがな。
よく覚えとけ、モデリングを行うのも(クラスライブラリを作るのも)、
モデル化されたものを使うのも(クラスライブラリを使うのも)、どっちも
オブジェクト指向設計だ。
>959
えーと……マジで言ってる?
iostreamを使えばオブジェクト指向ですか(w
じゃあ俺も立派にオブジェクト指向だな。
>>958 > >949の意見についてはどう思う?
OSの勉強してくれよ。タイムスライスって知ってるか?
>で、お前はオブジェクト指向設計をやったことあるのかないのか。
ないほうがおかしいって。
仕事でも趣味でも使うだろ普通。
>オブジェクト指向は、大規模プロジェクト用に開発されたものだぞ。
この思い込みはどこからきてるんだか。
なにこいつ
最初からクラスから全部書くのがオブジェクト指向だと思ってるの?
再利用とかの概念はないのか?
さすがだな
>959
例えば俺だって、stringもテンプレート使ったlistもauto_ptrも使ってるし、
OSのリソースやDirectXインタフェースはクラスで取得・解放・各種操作を
ラップしてるし、セーブ/ロードはシリアライズ機構っぽいもので実装してる。
今時のプログラマなら当たり前だし、それだけではオブジェクト指向ではない。
オブジェクト指向というのはそういうことではないのだよ。
手続き指向と対になる語だからな。データを処理する手続きを記述するのではなく、
オブジェクトの振る舞いを記述し、動作はオブジェクト間の通信で表現するわけだ。
そういう設計をするのに、たとえばUMLとかを使うわけだな。
キモの部分はこの設計フェーズで、そこがきっちりしてさえいれば、普通のCでも
オブジェクト指向プログラミングは出来る。向いてはいないというだけだ。
逆に、そういう設計をやってるんじゃなければ、いくらC++を使おうが、それは
オブジェクト指向プログラミングとは言えないんだよ。
たとえクラスライブラリを自前で用意したり使ったりしていても、コードが
フローチャートやデータフロー図から起こした手続き指向アルゴリズムの発想で
書かれていれば、それは手続き指向だ。
>961
SleepでもWaitFor〜でもタイムスライスは明け渡されますが何か?
フローチャートがペラ数枚で収まる程度の小さな物を一人で書くのに、
わざわざUML書いてオブジェクトやクラスで問題を切り分けて
オブジェクト間の通信を細かく規定して、とめんどうなことをやる
必要があるとは思えんのだが。
OSの設計とかクライアント−サーバシステムとかになると、
これはもうオブジェクト指向の本領発揮だってのは分かるんだがな。
そんなこといったらそこらのクラスライブラリのなかみは手続き指向まみれですが。
なんかもうオブジェクト指向がなんたるかを
もう一回学んでこい。
せいぜい2Chで今のうちに恥をかいておけ。
>964
いや、中身の話はしてないだろ。
ちゃんとオブジェクト指向の設計してるのか、という話をしてるのだが。
例えば、一度もUML書いたことのないやつが、クラスライブラリを
ちょっと使ったからといって、オブジェクト指向プログラマを
名乗るのはどうかと。そんなこといったらDirectXインタフェースだって
一応クラスライブラリなんだから、あれを使えばみんなオブジェクト指向か?
なんでこいつはオブジェクト指向かどうかに拘ってんの?
オブジェクト指向はこうであるべきって固定概念にも凝り固まってるしな
コードが、っていうのがまずかったか。
実装方法がどうこうというんじゃなくて、あくまで設計の話ね。
メインルーチンがあって、そこからいろんなクラスライブラリを使って
一連の<手続き>を記述するようなスタイルで開発した場合、
それは単にクラスライブラリを使った手続き指向プログラミングだ。
データを抽象化するだけではオブジェクト指向じゃない。
オブジェクト間の通信が処理を駆動するタイプじゃないと。
基礎が見えてないからうわべでしか語れないんだな
>オブジェクト間の通信が処理を駆動するタイプじゃないと。
ほう
いや
まあいいや
好きにやれ
馬鹿らしくなってきた。
>>949 >Windowsのメッセージもイベントも、ハードウェア割り込みではない。
>全部Windowsがソフトウェアで実装しているものだ。機械語コードだ。
>>963 >SleepでもWaitFor〜でもタイムスライスは明け渡されますが何か?
タスクスケジューリングの勉強をしてください。
>>963のほかの部分
オブジェクトとメッセージについて勉強したのですね。
えらいえらい。
>969
いや、やらんよ? 俺は手続き指向で組んでるもの。
クラスライブラリはそれなりに使うけどな。
>970
前二つ:
どこか間違ってたか? もうちょっと説明するか、あるいは
理解できそうなソースでも示してくれんか?
最後の:
勉強も何も、こんなの基礎の基礎だろ。
確認しておきたいが、君達はマジでiostreamを使うことを
オブジェクト指向だと思っているのか?
あるいは、ソースにclassって書いたらそれでオブジェクト指向か?
974 :
名無しさん@初回限定:03/06/15 15:19 ID:YCaRmF7p
スリープくん、突破口を開こうと必死だな(w
そんな単純なモノじゃないことは分かってるだろうに。
ユーザーは実装部分は見れないんだから、各々が効率の良いプログラミングスタイルで
コーディングすればいいんちゃうん?
それじゃあかんの?
ユーザプロセス-サブシステム間の遷移
同じくマルチメディアタイマ使った場合のスレッド遷移
それぞれの9x/NTでの違い
くらいのことは把握してないと駄目だよ。まぁがんばってくれたまい。
>974
オブジェクト指向でファイルのフィルタ処理を書くって言うから、
どんな風に書くつもりだろうと思ったんだよ。それも十数行かよ。
メソッドがひとつだけ、mainからオブジェクトを作成して、
処理をして、デストラクタで終了か。
そんなの手続き指向でmainの中に書いちまったほうがいいだろ。
ゲームのバイナリデータはバイト単位か、せいぜいワード単位で
扱うものだから、iostreamを使う旨みに欠ける。fgetcでいいだろ。
>975
まあ、ユーザからすりゃそれで話は終わるなあ。
>976
だから、具体的にどう間違ってるか指摘してみて欲しいんだが。
お前、それらしいこと並べたらなんとなく買った気になれると思ってるだろ?
なんかもうあきれて。
ちっとは自分で調べろよ。
調べさせるにしてもだ。もうちょっとポイントを突いた指摘の仕方があるだろ。
これこれこういう意味で俺の発言のこの部分は間違っている、と指摘してみろよ。
マルチメディアタイマからハンドラで何か関数を呼び出すとしよう。
呼び出すところまでは、NT系のOSならある程度まではCPUとかタイマの
ハード的な機構がやってくれるのかもしれん。それをいいたいんだろ?
(でも、ユーザの半分くらいはまだ98やMeなんじゃなかったっけか)
問題はここからだ。待機中のGetMessageに拾わせるなら
PostMessage、WaitFor〜で拾わせるならSetEventを、そのハンドラから
呼び出すわけだろ。ここはユーザの書くコードだ。
そこで一旦イベントなりメッセージなりがOS内を通って寝ている
スレッドを起こすわけだが、この一連の処理と、適当にSleepしながら
たまにtimeGetTimeしてPeekMessageする処理とで、本当に前者が軽いのか?
つか、timeGetTimeとPeekMessageとif文一個がそんなに重いか?
まずオブジェクト指向には「こうするのが理想的」はあるが「こうしなければならない」はない。
あと、局所的にオブジェクト指向を使うのもありで、全部をオブジェクト指呼で書かなければならない道理はない。
大体がC++で書くにしろ、中途半端なオブジェクト指向しかできないC++でどうしろと。
>981
言いたいことは分かるが、それだとDirectXを使うだけで局所的に
オブジェクト指向で書いた事になってしまう。
やっぱり、オブジェクト指向云々人に勧めるのであれば、
設計の段階でオブジェクト指向的にやってほしいところではある。
983 :
名無しさん@初回限定:03/06/15 18:51 ID:qFAbVF1r
984 :
名無しさん@初回限定:03/06/15 19:01 ID:q3W3FlWx
>983
どうしてその一連の流れで勝った気分になれるのか不思議だ。
ポーリングだと100%とか言ってる時点で勘違い野郎じゃねえの。
まあ、趣味の悪い原色のボタンをフォームにゴテゴテ貼り付けて、
それを押したらサーバーに何かメッセージを投げるだけ、
みたいな物ばっか作ってたら、そうでないアプリのことなんか
想像も出来なくなってしまうんだろうけどな。
GetMessage+マルチメディアタイマにするなら「はい」
PeekMessage+Sleepにするなら「いいえ」を選択、では
前者が5%、後者が10%だった(C3-533
あの程度の処理で5%にもなるのか?
成る。体感的にはどちらも変わりない。
むしろoggを採用されるプログラマにoggのデコード/ストリーム再生1本あたり
30%超でCPU使用率を持っていってしまうのを何とかして頂きたいと願う。
>989
あれが5%って、どんな環境なんだ?
ソースがあるから中身を見られるわけだが、本当にGetMessageと
そこからの関数コールとTextOut一回しかしてないぞ。
そして、そこまでシビアな環境でも、体感的には変わらんのね。
Oggは重いからしゃーないって。
きっとPCがショボイんだよ
>C3-533
これが全ての元凶だろ。つかこんな糞CPU使っといて重いとかいうな
Celeron450MHz で Winamp で vorbis を再生しても12%くらいしかもってかれないから30%もっていくなら反省しるな気もするが。
>993
同じマシンで比べないと意味無いぞ。>989のは、ただの533じゃなくて、
他に何かもっとひどい要因がありそうに思われ。
1000!
996 :
名無しさん@初回限定:03/06/17 22:59 ID:wRmDInXQ
C3-533の性能はP2-300並だから(ry
つかC3だと浮動小数点演算能力が同クロックCeleronの1/3から1/2だから
使用率の比較では993の数値と合う。
oggデコーダがC3の3DNOWを利用できるようにしてやればCPU使用率で
6-10%改善すると思われ。
1000!
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。