09/10/14 21:02:10 x873g71t
>>106
x方向の当たり判定の式が怪しいので直してみた
if (tekix<tamax+4) && (tekix+15>tamax) && (tekiy<tamay+10) && (tekiy+50>tamay){
~~ ~
効果1
}
if (tekix+16<tamax+4) && (tekix+30>tamax) && (tekiy<tamay+10) && (tekiy+50>tamay){
~~ ~
効果2
}
109:名前は開発中のものです。
09/10/14 21:24:57 8YxFaWCP
>>106
Y軸はかすったときに当たり判定して
X軸は弾全体が敵と重なったときに判定してる。
ここまで書いて>>108が正解
110:名前は開発中のものです。
09/10/15 01:21:06 273G7C3n
ありがとうございますm(_ _)m
111:名前は開発中のものです。
09/10/15 03:28:34 XEVb4vS8
C言語やHSPなど様々な言語でゲームが作れますが
細かい部分は違えど当たり判定、フラグ管理等の考え方は共通してる所が多いって考えてもいい?
112:名前は開発中のものです。
09/10/15 03:39:48 ezl0Don3
いい
113:名前は開発中のものです。
09/10/15 04:00:28 XEVb4vS8
おK
114:名前は開発中のものです。
09/10/15 20:02:33 QLCYxmTI
>>88
かなり遅くなりましたが、ありがとうございました。
115:103
09/10/15 21:05:26 mXLNxkkI
>>104-105
とりあえず頑張ってみます。ありがとうございました。
116:名前は開発中のものです。
09/10/16 10:57:03 6D13DqNr
効果音作るソフトでお勧めってありますか?
周波数いじくる奴で頑張るしかない?
117:名前は開発中のものです。
09/10/16 13:20:43 eYYrLjKR
>>116
どんな効果音かしらないが、ものによっちゃ自分で録音するのが一番
無から周波数いじるだけで作るのは無理がある
118:名前は開発中のものです。
09/10/16 16:38:22 6D13DqNr
ストリートファイターみたいなバシッっとかドゴォみたいな音です
録音しかないですかね・・・
119:名前は開発中のものです。
09/10/16 16:53:10 +pO3lg2K
フリー素材を使えば良いんでね?ザ・マッチメイカァズさん所とか
120:名前は開発中のものです。
09/10/16 17:23:50 UJ9WR3Zt
声系の素材、もっと使いやすいものが増えてくれればいいのにねー。
121:名前は開発中のものです。
09/10/16 19:47:43 6D13DqNr
フリー素材・・・ちょっと覗いてみます
122:名前は開発中のものです。
09/10/16 20:43:52 rXjKMTSv
「セイッ!」とか自分で言ってみれば?
123:名前は開発中のものです。
09/10/17 09:36:11 WIdKu3LJ
弾が敵に当たると爆発アニメーション
アニメーション終了後にまた撃てるようになる仕様にしたつもりなんですが
敵に弾を撃つ→当たったら弾が小爆発→再び撃てるようになる
のはずが
敵に弾を(ry→当たったら弾が(ry→再び撃てるけど爆発途中の弾が放たれアニメーション終了後消える
といった結果になります・・・
敵に弾が当たると弾発射判定がオフになり、爆発アニメーション判定オン
アニメーション終了後にアニメーション判定がオフ
そして弾発射判定、アニメーション判定の両方がオフならば弾が撃てるという条件なので
こんなことになる原因がよく分かりません・・・
弾の座標を爆発用の座標に入れ替えてアニメーションさせています
124:名前は開発中のものです。
09/10/17 09:48:44 iJmzf119
意味も良く分らないし実際のコードを見てみないことには・・・
敵に弾が当たってその弾が爆発してる間は弾が撃てないのか?
そんなシューティング(or アクション?)聞いたことないけど、まあそれは別にいいんだけど
125:名前は開発中のものです。
09/10/17 09:55:53 71MZbNWZ
特殊弾とかでならアリかもしれない。
ともかく、ソース見たいな。
126:名前は開発中のものです。
09/10/17 10:24:49 xW2gorbr
表示しようとしてる弾画像の座標とフラグをfprintfでファイル出力すれば何か分かるんじゃないの
127:名前は開発中のものです。
09/10/17 15:00:36 WIdKu3LJ
見直したりフラグの状態を表示して検証しましたが解決しませんでした
単純に自分は画面上に一発しか弾が撃てず、画面から消えるか敵に当たればまた撃てるって仕様でした
結構粗のある感じだったので最初からキチンと作り直すことにします
失礼いたしました
128:名前は開発中のものです。
09/10/17 15:31:19 cef+x7Zx
そりゃあ、
> 弾の座標を爆発用の座標に入れ替えてアニメーションさせています
これが切り替わったままになってるとしか
ポインタ使ってて中身が爆発のアニメのものが入ってるとかじゃない?
129:名前は開発中のものです。
09/10/22 09:51:44 p3M9DvkJ
思想の問題かも知れないけどちょっと質問
シューティングでもアクションでもいいをだが
雑魚AをクラスAとして作る。このクラスはnewする度に画面上に雑魚Aが作成される仕様。
たとえば、クラスAを10回newすれば画面上に10匹の雑魚Aが表示され動き始める。
この時に気になってるのが、画像データとかを読み込むタイミングと場所。
コンストラクト毎に読み込むのは処理とメモリの無駄。
なら、クラス内にstaticの画像クラスとstaticなloadメソッドを用意して、クラスAをnewする前にloadメソッドを呼んで画像クラスを生成するか
もしくは、非staticの画像クラスをクラスA内に用意。
クラスAをnewする呼び戻し元の処理で画像クラスを生成してコンストラクトの引数で画像クラスを渡してやるか
どっちがいいんだろうか
ちなみに言語はc++です。
130:名前は開発中のものです。
09/10/22 12:05:10 C9BrTaQH
画像は全部ゲーム起動時に読み込んでおいて敵をnewするときは座標のセットだけしてるな俺は。
131:名前は開発中のものです。
09/10/22 12:17:38 8FqIdkxS
newは比較的重い処理(メモリアロケートが)なので、敵の発生のたびにnewするのもあまりよくない
132:名前は開発中のものです。
09/10/22 15:49:02 LJWQIbDf
3Dのシューティングゲームを作りたいのですがどの言語を使えばいいのか
何から勉強すればいいのか決めることができず立ち往生している状態です
今できることは3Dのモデリング、モーション、C言語の基礎で
過去にflashでしょぼい2Dのシューティングゲームを作ったことがあります
それ以外にゲーム制作経験はありません
なるべく書籍がでていて勉強しやすいものから入っていきたいと思っているのですが何が適当でしょうか
またHSPが簡単だということで気になっているのですがどうなんでしょうか
ご教授よろしくお願いします
133:名前は開発中のものです。
09/10/22 16:37:27 GBmIn+bu
どのくらいガチでやる覚悟があるかわからんが
まともにやるなら、DirectXとC++が一般的じゃないかな
過去のも合わせると書籍もかなり豊富だし
ネット上の情報も沢山あるしね
134:名前は開発中のものです。
09/10/22 17:18:35 LJWQIbDf
>>133
ガチで(挫折しない程度に)やりたいです
HSPはやめてDirectXとC++から始めたいと思います
ご助言ありがとうございました
135:名前は開発中のものです。
09/10/23 20:51:13 MUsH0HSh
ガチで時間があるならHSPから始めた方がよい
その方が挫折しない
それ以前の問題で,ガチで調べれば
C++&DirectXが一般的なことくらいわかるっていう
136:名前は開発中のものです。
09/10/24 09:57:49 kIRXFcc8
>>135
C++とDirectXの本を注文したのですが挫折しそうだったらHSPの本も購入しようと思います
ありがとうございます
137:名前は開発中のものです。
09/10/24 13:11:10 gJQGPyqe
>136
挫折したなら多分プログラミングの適性ないから他の何をやっても大したことできないだろうから、すっぱり諦めるくらいの覚悟はないとな
138:名前は開発中のものです。
09/10/24 13:25:52 DD7Pkbp2
いきなりC++&DirectXは初心者には少々荷が重過ぎる。
形になるまでに時間がかかりすぎる。
気合十分なら止めはしないが、C#当たりから入っていくのを薦めるなぁ。
HSPはどんなケースであれ漏れは薦めん。
139:名前は開発中のものです。
09/10/24 13:31:50 CI35l0uA
Cじゃないのか
C#のが簡単なのか
140:名前は開発中のものです。
09/10/24 14:52:30 6ZgvtRZK
C#なんて未来があるんだかないんだか分からない言語はすすめるのはなあ
141:名前は開発中のものです。
09/10/24 15:11:16 b8ij6S0c
C#やJavaの名前は挙がっているよ
URLリンク(cedec.cesa.or.jp)
142:名前は開発中のものです。
09/10/24 15:24:32 DD7Pkbp2
少なくとも2,3年で廃れるとは考えにくい。<C#
数年も経験つめれば多言語への移行も難なくできるでしょ。
職にするならC++は通らないと駄目だろうけど、趣味だったらねぇ。
C#が廃れるくらいの先の話なら64bitとかクラウドとかいろんな話が出てくるよ。
143:名前は開発中のものです。
09/10/24 15:55:12 kq4P4tpl
Cの基礎があるのならDirectXで問題ないだろ
144:名前は開発中のものです。
09/10/25 01:09:15 cd9OILdh
C#を最初にやってしまうと、CやC++、Javaに移るときや覚えるときに不満たらたらになるという難点が。
145:名前は開発中のものです。
09/10/25 03:59:35 2DV6zeAf
質問なんですが、ゲームパッドのボタン数やスティックの本数など、
最低限どれぐらいカバーすればいいんでしょうか。
PC用のゲームパッドの場合、右手の親指の4ツ、両人差し指の2ツ、
真ん中の二ツ、左手の十字ボタン、は自由に使っても差し支えない程度には普及してますか。
あと、左右の両スティックも標準的なものと考えていいんでしょうか。
それとも割り当てる機能は、十字ボタンの代替程度にとどめておくべきでしょうか。
146:名前は開発中のものです。
09/10/25 05:40:06 xTQpRCUt
初心者がOOPから入って大丈夫なのか?
147:名前は開発中のものです。
09/10/25 09:47:00 fG1Kpsev
>>145
例示したパッドが、高機能パッドにしか見えない件。
まあ、最近だとPS2/PS3ちっくなパッドもかなり多いから、それ前提に組むこと自体はそれほど問題ないと思う。
ただし、大多数が持っているか?という質問にはNOじゃないかな。
特にアナログスティックは、古めのものや小型をウリにしているものには付いてない可能性が高い。
それほどPCゲーで遊ばない人は、仮にパッドを持ってても5年前に買ったままでもおかしくないし。
大勢の人に遊んでもらいたいなら、パッドのボタン配置の差(右手親指6ボタンとか)も考えて、
・十字キー
・親指ボタン4つ
・LRボタン1つずつ
くらいが妥協点かも。
正直、ボタン数多くてもゲーム作りにくいと思うんだが、どうだろうか。
148:名前は開発中のものです。
09/10/25 09:55:04 fG1Kpsev
あとこれは超個人的な意見だが、
普通の十字キーと左スティックの効果が異なる場合、一旦考え直したほうが良いとは思う。
149:名前は開発中のものです。
09/10/25 10:03:35 dpB5E6Y5
>145
企画ならまだしも,自分でゲーム作ろうとしてんの?
で,そういった質問をすることから察して,
ゲーム会社の就職時とかに提出作品にしたいんじゃない?
それだったら,そんな高機能なゲームは避けろよ,って話なんだが.
デザインデータとか揃えるだけで時間くうし,
会社もそこまで求めてない.夢見すぎだから.
150:名前は開発中のものです。
09/10/25 10:15:14 XeXyzvN+
>で,そういった質問をすることから察して,
>ゲーム会社の就職時とかに提出作品にしたいんじゃない?
どう察すればそうなるんだ
151:147
09/10/25 10:23:17 fG1Kpsev
>150に同意するw
自分も趣味のゲーム作りで似たようなこと考えたことあるよ。
152:名前は開発中のものです。
09/10/25 12:41:06 eIkmSzQS
RTSを作ろうと思い立ったものの、資料の少なささに初っ端からオロオロ
してます。ネットでも本でもなんでもいいので参考になる資料とかありますか?
153:名前は開発中のものです。
09/10/25 13:42:51 plrtBRXO
>>145
ゲームパッドのアナログはレバーの形状一つで操作感違うので、
あまりアテにしないほうがいいんじゃね?
あとボタン10個以上の操作法を覚えなきゃいけないのも困ると思うよ。
ゲームのジャンルによるけど、十字キー&ボタン4個(+スタートボタン)くらいで
ゲームクリアできるくらいにしておいて、
残りのボタンやアナログ入力は「使いこなせれば便利」なくらいにしておいたら?
154:145
09/10/25 17:01:07 2DV6zeAf
たくさんのアドバイスありがとうございました。
皆さんのおっしゃるとおり、シンプルな構成で考えて見ます。
155:名前は開発中のものです。
09/10/25 17:18:16 gfayfarh
質問です。
私はC、C++歴2ヶ月くらいの初心者なのですが、
ゲーム業界に就職する際、作品提出として出せるレベルのゲームを作るまでにどのくらいの期間が必要でしょうか?
とりあえず、『やさしいC』は読み終わっており、
今は『独習C++』『C++の絵本』『ゲームプログラマになる前に覚えておきたい技術』の3冊を同時に読み進めて学習しています。
上記の3冊は全体の6分の1ほどを読み終えた辺りです。
『ゲームプログラマになる前に…』の本は結構難しく感じます。
高卒で専門学校等には通っておらず、独学です。
中学数学は全く問題ありませんが、高校数学は全く知識がない状態です。
このペースでの学習をこのまま続けられると仮定して、
何か月ほどでそのレベルに達することができるか教えてください。
また、この3冊を読み終えた後に読むべき本、とるべき行動など教えていただけるとありがたいです。
曖昧な質問で申し訳ないのですが、よろしくお願い致します。
156:名前は開発中のものです。
09/10/25 18:30:00 fG1Kpsev
プログラムの知識より高校数学の知識がないのがマズい気がする
157:名前は開発中のものです。
09/10/25 19:15:51 A8wY2OUV
聞くまでもないと思うけど
読んでるだけじゃなくていろいろ弄ってるんだよね?
158:名前は開発中のものです。
09/10/25 19:28:24 gfayfarh
レスありがとうございます。
>>156
高校数学の教科書は一応持っており、周りに数学・物理を質問できる人がいるので、
勉強する際には問題ないとは思いますが、やっぱり時間はかかりますか?
>>157
弄るというのがどの程度なのかはわかりませんが、本の中で出された問題、課題等はこなしています。
ただ、本を読んでいて経験が圧倒的に足りないというのは感じます。
159:名前は開発中のものです。
09/10/25 20:00:53 plrtBRXO
>>155
IDが格好良いね!
マジレスするとここは業界板でも就職板でもないのでロクなレス付かないです。
この書き込みを含めてwww
というわけで、
> ゲーム業界に就職する際、
> 作品提出として出せるレベルのゲームを作るまでにどのくらいの期間が必要でしょうか?
という質問に答えるのは不可能です。
貴方の能力も、ゲーム会社が要求する能力も判らないですから。
2Dでピコピコ動くものなら、言語が理解できれば、
あとはコピペ改変ででもどうにかなると思う。
本の方はあとDirextXの本でも買って来て、
ザーッと読んで書いてある内容を把握するだけにして、
さっさとDirectXサンプルをコピペ改変して弄り始めたほうがいいと思う。
そうすれば自分自身で目星付けられるんじゃね?
3Dグリグリ動くもの…については、高校数学は必須だけど、
ゲーム専門学校ではそんな高度なカリキュラムは無いというのが通説です。
だから一応下地はある事になるけど、3Dプログラム書きたくてしょうがない。
3D関連知識漁るのが楽しくてしょうがないってレベルでもなければ、
3Dは手を出さないほうがいいと思うよ。
ゲーム会社でもそこらへんは大卒以上あたりがライブラリ作って、
他人は使うだけで手を出さないんじゃないかな?
マスターしてれば評価されるだろうけどね。
160:名前は開発中のものです。
09/10/25 21:19:41 gfayfarh
>>159
丁寧にありがとうございます。
ほんとだw全部ID小文字ですねw
スレリンク(prog板:601-700番)
で聞こうと思ったんですが、聞ける雰囲気じゃなかったのでこちらで聞かせていただきました。
とりあえず今ある本を終えてから、DirectXの勉強をして早めに実践力をつけようと思います。
ありがとうございました。
161:名前は開発中のものです。
09/10/26 03:38:38 2y0cxQ6Z
独学でどこまで高校数学の知識を得られるかは、
正直そういった経験がないので分かんない。
ゲーム作るなら、三角関数とベクトル、それと多少の物理くらいは把握してないと話にならないかも。
中学でもやってる内容ではあるけれど、それの応用。
162:名前は開発中のものです。
09/10/26 15:28:37 Xm9ZUOsf
テトリスを最も短時間で作ることができる開発環境はどれですか?
163:名前は開発中のものです。
09/10/26 15:38:39 TQ0lp1L0
>>162
メモ帳, IE, HTML, Javascript
それこそ「565バイトのテトリス」をコピペしたら一瞬で完成する。
164:名前は開発中のものです。
09/10/26 18:58:20 2y0cxQ6Z
ニコニコで1時間でやってた人はBCCだっけ?
165:名前は開発中のものです。
09/10/26 20:01:18 TQ0lp1L0
>>164
あれはgcc(MinGW)
166:名前は開発中のものです。
09/10/26 23:24:30 DJWTX3Xh
面倒くさいからもう「高卒」は高校数学マスター扱いでいいんじゃねw
167:名前は開発中のものです。
09/10/27 03:31:39 PgOWFxS1
>>166
理系出身なら間違ってないはずだ!
…自分の過去は神棚に上げて祀るけど。
168:名前は開発中のものです。
09/10/27 23:50:36 xdHlNygA
>>152
RTSはいろいろなゲームで必要なテクニックを総動員して作
るから、
RTSそのものの作り方って資料は探しにくいかも
RTSに特化したテクニックはGemsにいくつか載ってるよ
169:名前は開発中のものです。
09/10/28 09:53:48 4eZmcJ8u
>>152
「14歳からはじめるC++わくわくゲームプログラミング教室」って本にちょっとしたRTSの作り方が載ってたぞ
基本的なことしかやってないから、ここから先は自分で考える必要があるわけだが
170:名前は開発中のものです。
09/10/28 10:42:14 w2JqwC2e
あの本はプログラムソースにミスが多いからお勧めできん
171:名前は開発中のものです。
09/10/28 19:35:44 6uOz2S02
開発はXNAでしてます
シムシティみたいな都市育成ゲームを3Dで作ろうと思っているんですが
3Dでグリッドは描画できるようになったけど
3Dオブジェクトをグリッドに配置する方法がわからない
まずグリッドの基準となるタイルを3DCGで作成してから
それを元にオブジェクトを作っていくのか
これならスケーリングする必要は無さそう?
それとも、LineStripなどでグリッド作成して
それに合うように3Dオブジェクトをスケーリングしたりしていくのか
ここら辺がよくわからないので、アドバイスありましたらお願いします
172:名前は開発中のものです。
09/10/30 11:52:10 S3yEYDhi
スケールするにもオブジェクト毎にスケール値が違うと参照データが増えるので、基準グリッドを元に作った方がいいと思う
この手の仕様的なことに悩んだら他の人がどうだとかより、作ってるゲームでどういうメリット/デメリットがあるかを羅列して自身で判断したほうがいい
173:名前は開発中のものです。
09/11/04 19:50:08 WgLSvKP+
複数の敵キャラクタや弾などをどのように管理するか悩んでいます。
URLリンク(msdn.microsoft.com)
ここの「2.5 キャラクタ管理」にあるように、十分な数の構造体配列を用意し、
その中の有効/無効を表すbool値でゲーム上での出現/消去を管理する方式は、
感覚的に分かり易く、メモリリークの問題も起こり難そうに思います。
しかし、その他のコードを調査していると、STLのvectorやlist等を使い、
それらに敵や弾のクラスを格納しているケースもありました。
有効/無効の切替については、Active用のvector(list)、非Active用のvector(list)の
二つを用意しておいて、それらの間を移り替わることで対応していました。
(ゲームループではActive用に登録されたクラスのみ動かす)
どちらの方式にするかを考えてるのですが、
各ノードがクラスで構成されている(オブジェクト指向的な組まれ方がされている)場合は後者で、
そうでない場合はどちらでもよくて、統一的いすべて後者にするといった方針もあるかと思っています。
そのほか、複数のキャラクタ管理について気を付けておいたほうが良いことなどがありましたら、
ご教示願います。
ゲームデザインとしては、各キャラクタグループ相互の関わり合いが多いものになる予定です。
(敵キャラ、自キャラ、弾の衝突判定など)
よろしくお願いします。 m(_ _)m
174:名前は開発中のものです。
09/11/04 21:02:26 K+5ruHbY
とりあえず全てリスト等で実装する。
それで特に問題になることはないから。
175:173
09/11/04 23:05:02 WgLSvKP+
>>174
ありがとうございます!
そうします!
176:名前は開発中のものです。
09/11/04 23:46:15 /Sz4AuHE
intの変数にビット単位で(32個の)フラグを立てる方法があると思うのですが,
32個ブール値を用意するのとの違いはありますか?
177:名前は開発中のものです。
09/11/04 23:49:46 /Sz4AuHE
intというのは例えばです.
ブール値を使う方が短絡な分直感的だし,
別々の変数名を付ける方が分かりやすいように思いました.
178:名前は開発中のものです。
09/11/05 00:22:54 5+rWBuJO
ビット単位でフラグを立てる方法の方が、メモリーの節約にはなる。
まあ、メモリーの節約を気にする必然のある環境は少ないけどな。
179:名前は開発中のものです。
09/11/05 00:26:41 Vo34wPi1
>>177
まあブールのほうが作法としては行儀がいいと思うね。
あとintでもこんな方法で1ビットずつ変数名は付けられる。
struct
{
unsigned int a_flag:1;
unsigned int b_flag:1;
unsigned int c_flag:1;
unsigned int d_flag:1;
unsigned int e_flag:1;
unsigned int f_flag:1;
・・・
180:名前は開発中のものです。
09/11/05 02:28:38 eJ3mIolJ
フラグを初期化したいときにintだと楽かな。
でもフラグが32個を超えると管理が煩雑になりがちw
181:名前は開発中のものです。
09/11/05 09:50:10 KI4+w2Dm
それ1ビットずつか
ユニオン使うんじゃないのか
182:名前は開発中のものです。
09/11/05 14:47:55 +rSTg+Ag
>>178
例えばリプレイを実現する場合なんかは、入力情報をintに変換・復元できる。
キーコンフィグを実装すればキー入力とゲームの応答の間に、なんらかしらの管理機構が挟まるからそこら辺で使えるし。
ただ、まぁ無理して使う必要は無い。ビットフィールドな列挙型も同様。
183:名前は開発中のものです。
09/11/05 16:28:19 SNIE/4Rt
某所からの転載
>3Dゲームの制作ツール、Unityの下位グレードが無料化。
>PhysXが使えてシェーダーも40種がビルトイン、チュートリアルも完備。
>総売上が10万ドル以上の法人は除く、という条件付だけど
>大半の同人サークルは引っかからないだろうから、
>3Dゲームの頒布を考えているサークルさん、いかがでしょ。
>
>Unity Technologies Launches Version 2.6 of Its Platform and Makes Unity Freely Available
>URLリンク(unity3d.com)
すごくよさそうなんですけど、Unityの本スレってありませんか?
チュートリアルも全部英語なので、日本語での情報がすごく少なく困ってます。
184:182
09/11/06 02:37:08 qMwKFyiY
過ぎた話題だけど安価ミスった。>>176へですな
185:名前は開発中のものです。
09/11/06 13:19:49 hajLFQ96
シビアに高速化をやるときはキャッシュアクセス考慮するのでintに押しこんだりする
186:名前は開発中のものです。
09/11/06 16:37:00 kEmsEn+Q
intは、整数値を扱うときに、一番最適な値にデータ型を割り振ってくれるわけだしね。
とりあえずメモリロスは起きてもタイムロスは回避できるさ。
そして現代のPCならメモリなんて使い放題に近いさ。
187:名前は開発中のものです。
09/11/06 18:14:17 hajLFQ96
逆だよ
キャッシュサイズのこと言ってんだからintでboolの代用すんじゃなくて、intにブール値を詰め込むほうの意味
intにbool詰める・読む際に余計な演算が必要なるが、ここで必要となる論理演算は一般的に高速に処理できる
それよりも昨今のCPUのマルチコアの関係もあって、キャッシュミスヒット時のストールで待たされる時間のロスのほうがはるかに大きくなることがある
フラグ32個をint32個に入れずに1個のintに入れて処理すれば、キャッシュ内に収まりやすくなるので高速化できることがあるって話
188:名前は開発中のものです。
09/11/06 22:12:14 HsspV1xj
おおお、勉強になる・・・
メモリをふんだんに使えるとはいえ、高速化を目指すときはより小さなサイズにしたほうがイイんだね。
189:名前は開発中のものです。
09/11/07 09:17:22 gHawF7bm
そんな小手先の似非最適化をしたって、全体の速度は誤差程度も変わらないよ。
190:名前は開発中のものです。
09/11/07 10:11:51 Orb9rLPQ
効果は入れる前にある程度計算可能で効果が出るところに狙って施す
実際にMTフレームワークなんかでもキャッシュサイズを意識した作りをしてるわけだがそれも否定するのか?
191:名前は開発中のものです。
09/11/07 10:58:18 cV8cW+A4
虎の威を借りる前に、自分でやってみた結果を提示したらどうだ?
これだけパフォーマンスが変わったというのを証明すれば簡単に片がつくだろう。
192:名前は開発中のものです。
09/11/07 11:14:03 Orb9rLPQ
トラの威を借りるな、おまえの自分の成果をだせ
バカですか?
193:名前は開発中のものです。
09/11/07 11:19:22 gHawF7bm
つまり検証も何もしていないというのは理解できたよ。
無いものを無いと証明するのは不可能に近いけど、
ある物をあるというのはそれを見せればいいだけなんだけどね。
194:名前は開発中のものです。
09/11/07 11:21:33 ZbG3kEz7
あのぉ、素朴な疑問なんだけど、
キャッシュヒット率を上げると速くなる
→ メインメモリと同じくらいの容量(数百MB)のキャッシュを積めば、
HDDへのページングが起こらないレベルであれば特に最適化しなくても速くなる
って理論上は合ってる?
言い換えると、
速い・小要領 <- キャッシュ(SRAM) - メインメモリ(DRAM) - HDD -> 遅い・大容量
これのメインメモリをすっ飛ばした構成
速い・小要領 <- キャッシュ(SRAM) - HDD -> 遅い・大容量
まぁ、そんな量のSRAM積んだら、恐ろしい値段になるだろうけどw
195:名前は開発中のものです。
09/11/07 11:53:36 Orb9rLPQ
> 無いものを無いと証明するのは不可能
>>187に速くなる根拠があるんだから、その間違いを示せば証明できる さあばんがれ
なんら反証はなく、自分の経験だけで速くならないって言い張ってるだけじゃないよね?
>>194
それだけ大容量ならキャッシュとしてヒットさせる必要は無くて、高速なメインメモリとして使えばいいので当然速くなるだろうね
SRAMの制限まではよく知らないけど、何億もするコンピュータでも全SRAM構成にしないとこをみると、何制限があってできないのかもしれないね
ただ、上にある話題はキャッシュサイズの話しかないけど、CPUがストールする要因はほかにもたくさんあるので、それらも合わせて何とかしないと効果は薄いかも
196:名前は開発中のものです。
09/11/07 12:27:09 gHawF7bm
>>195
>速くなる根拠がある
これは否定してないよ。
単にフラグをビットで管理したところで、誤差でかき消えてしまう程度しか変わらないといっているんだけど、
ではいったいどの程度のパフォーマンスアップが期待できるというのか明確にしてくれ。
197:名前は開発中のものです。
09/11/07 12:36:18 gHawF7bm
そもそも何を突っ込みたいかというと、最適化云々やCPUの挙動を論じる奴が、
木を見て森を見ず、局所的な部分のみが多少速くなることに悦に入って、
全体でみれば実際は何の役にも立っていないことに気がつかない馬鹿だということ。
ぶっちゃけこれが一番言いたい。
198:名前は開発中のものです。
09/11/07 12:52:58 Orb9rLPQ
>速くなる根拠がある
>これは否定してないよ。
君が、俺が「何の役にも立っていないことに気がつかない馬鹿」と思うかどうかは、俺にとっては(きっと見てる大部分の人間にとって)どうでもいいことなので、そう思うなら勝手に思ってくれ。
速くなる根拠の部分に何の反証もないなら何の問題もない。
>>187にもあるが、「高速化できることがある」としか言っていなくて、どんな条件でも速くなるとは言っていない。
特定の条件下でパフォーマンスの改善が期待できるとは間違いなく、MTなどの市販製品でも考慮されていることは
そもそも、intにブールを入れるか、intをブールとして使うかの違いについてのレスとしては183
199:名前は開発中のものです。
09/11/07 12:56:32 Orb9rLPQ
すいません、途中で送ってしまった。
下3行は書きかけ
>>187にもあるが、「高速化できることがある」としか言っていなくて、どんな条件でも速くなるとは言っていない。
特定の条件下でパフォーマンスの改善が期待できるとは間違いなく、いろいろな情報からも、MTなどの市販製品でも考慮されていることからも、十分確かと考えていいだろう
そもそも、intにブールを入れるか、intをブールとして使うかの違いについてのレスとしては>>183でなんの問題もない。
200:名前は開発中のものです。
09/11/07 15:58:19 M1hO6X0P
ハードウェア側のことを考えて
32bitの環境なら32bit型をなるべく使うのは結構重要なことなのに
「役に立ってない」と完全否定できる奴はすごいな
201:名前は開発中のものです。
09/11/07 16:12:38 vkeQqaC1
あえてそこまでストイックになる必要がないってだけじゃないの? 少なくともゲーム製作を語る上では。
お互いに相手の言い分もわかってるだろうに、わざわざ議論始めなくてもいいよ。
202:名前は開発中のものです。
09/11/07 16:25:32 Orb9rLPQ
まあ適材適所で必要なときだけ必要な個所でやればいいと思うよ
最適化ってそういうもんだし
なんにしてもしょうもないやり取りでスレ汚してすまんかった
203:176
09/11/07 23:44:19 Xs7tndnq
レス有難うございました.
>179
自分の勉強不足でしょうか...
intサイズの変数が並んでいるように思うのですが,
1ビットずつの命名が実現できているのでしょうか?
>180
>182
boolで構造体を作って,memset, memcpyで操作するのと
違いが出にくいように思いました.
無理して使う必要はない,と言うことであればそれまでなんですが.
>200
個人的にこの言い分がしっくり来ました.
他のいくつかレス頂いた分も,これに終始すると思いますし.
また,潜在的な疑問でしたが,
必要な真偽値がきり良く32個になることなんてまずないから,
シビアに弄ってる一方で,ビットの未使用分が気になっていたので.
有難うございました.
204:名前は開発中のものです。
09/11/07 23:49:19 pD8Hg5wM
> >179
> 自分の勉強不足でしょうか...
ビットフィールドだからC言語だね。
205:名前は開発中のものです。
09/11/07 23:53:56 Xs7tndnq
>204
勉強不足でした...;ありがとうございます.
206:名前は開発中のものです。
09/11/08 10:28:20 jVF9AtCS
結局何が聞きたかったのかよくわからない質問だったな
207:名前は開発中のものです。
09/11/08 10:56:38 3Syd0d+d
ここで激論を戦わしている人達は、アセンブラを知っているの?
CPUの汎用メモリは数個程度だから、ある変数をメモリにロードしても、
そのメモリに別の変数がロードされたら、またロードし直さないといけない
結局の所、メモリの使われ方は、アセンブラを見ないとわからんよ
マイコンのプログラムなんて1行ずつ、どのメモリを使うか確認しているんだから
208:名前は開発中のものです。
09/11/08 11:11:15 5bB/LHM4
DOS時代とかデバイスドライバ、マルチメディア系の最適化ではなく、
マイコンを例に挙げてくるあたり、頭の悪さを露呈しているのがよく分かる。
209:名前は開発中のものです。
09/11/08 11:24:07 jVF9AtCS
そういえば、64bitになってから拡張された上位分や、MMXやらSSEで増えたレジスタって汎用には使えないのかな
register指定でその辺のも使ってくれれば、結構な数がそろうと思うんだけど
Itaniumでも使えばもっとレジスタ使えるんだろうけど、Itaniumマシンはサーバ以外で使われそうにないし
210:名前は開発中のものです。
09/11/08 11:46:34 ENtK6awO
>MMXやらSSEやらで増えたレジスタ
浮動小数点のレジスタをまんま使用してるんじゃなかったっけ?
211:名前は開発中のものです。
09/11/08 11:48:04 u9PsEAnz
Itaniumを使わなくても、EM64TやAMD64で汎用レジスタの数が増えているんだが、
いったい何を言ってるんだ?
しかも今の時代、コンパイラでregister指定をしても、
逆に無駄が増えるか無視されるかという結果にしかならない。
212:名前は開発中のものです。
09/11/08 12:29:07 jVF9AtCS
>>210
ああ、共通で使ってるんだっけ
なんかそんなのを聞いたことがあったのを思い出したよ
>>211
増えた汎用は汎用で使ってくれればそれでいいんだけど、
Itaniumにすれば汎用レジスタがもっとたくさん増えるだろ?
それだけの話だよ
>しかも今の時代、コンパイラでregister指定をしても、
>逆に無駄が増えるか無視されるかという結果にしかならない
これはよく聞く話だけど、実際どうなるかはコンパイラ依存だよね
無視されるならまだいいと思うけど、無駄が増えるって具体的にどんなコードが吐かれるの?
213:名前は開発中のものです。
09/11/08 12:41:13 BFD52Z6T
PCをターゲットにするのに今時アセンブラなんてあんまし関係ないと思うが。
キャッシュ操作を命令で出来れば早くなりそうだな。
214:名前は開発中のものです。
09/11/08 14:38:24 ENtK6awO
キャッシュは自前で操作したいよな。つ~か一体、どんな状態になってるんだか。
215:名前は開発中のものです。
09/11/08 18:54:01 2FC+r2WV
どこで質問すればいいのか迷った、
というか所謂初心者なのでどう質問すればいいのか上手く説明できませんが質問させてください。
よくある戦略SRPGで、敵(CPU)の行動でこちらの敵に向かわせる際、
川や山、障害物など通れないマス目を避けて進ませる方法が上手く思いつきません。
さすがに大まかすぎて回答してもらうのは難しそうなので、
そういった、AIというのでしょうか、CPUの行動させかたを上手く解説しているところ、
もしくは参考にできるような題材やリンクはありませんでしょうか?
216:名前は開発中のものです。
09/11/08 18:56:42 49+a80li
自分もちょうどそれが気になってたところ・・・
217:名前は開発中のものです。
09/11/08 18:58:32 9QV4n3ah
>>215
URLリンク(www.jyouhoukaiseki.com)
こことか。
218:名前は開発中のものです。
09/11/08 19:02:24 hbP1+XQi
オライリーの「実例で学ぶ ゲームAIプログラミング」という書籍に経路探索が出てたと思う。
とりあえずマンハッタン距離、経路探索くらいのキーワードで調べてみるとか。
219:名前は開発中のものです。
09/11/08 19:07:17 2FC+r2WV
10分も経たないうちに回答してくださってびっくらこいた
>>217-218
ザッと見たところ、どちらも参考にできそうな説明がされておりました。
あとは自分で考えて発展させていけばなんとかなりそうです、どうもありがとうございます。
220:名前は開発中のものです。
09/11/08 19:07:28 hbP1+XQi
抽象的な概念でいえば、グラフ理論を学べばできるようになると思う。
221:名前は開発中のものです。
09/11/10 18:19:12 PeiW8ICh
何だかわからんが、議論の経過は華麗に無視して結論。
・boolean型のフラグは、byteで持つよりbitで持った方が
全ての面で優れています。bitで持つようにしましょう。
操作が煩雑なら、std::bitsetやboost::dynamic_bitsetを使いましょう。
以上終わり。
222:名前は開発中のものです。
09/11/10 18:54:49 m+B8PjQ8
>>221をかいつまんで説明すれば、億万長者が一円玉を拾い上げるのと同じだということ。
腰を曲げるぶんだけ損しているかもしれない。
以上終わり。
223:名前は開発中のものです。
09/11/10 18:56:33 iR0qXcSq
全ての面で~などと簡単に言う人間の言葉は、全ての面で信用ならねぇ
224:名前は開発中のものです。
09/11/10 19:02:45 kkW4R7qN
ゲーム製作でお約束の豆知識
何の判定でもいいが、フレーム単位でするのは御法度である。
何らかの理由でフレームとしての描画が遅れると判定も遅れるからである。
普通は、タイムスライスなどの時間判定で行う。
時間なら、描画が行われていなかろうが何だろうが
時間が来れば強制的に判定するからだ。
これは兼ね合いの面も強いのであまり多用すると処理速度に悪影響を与えるが
よりクリティカルなところでは時間で判定しないとロクなことにならない。
225:名前は開発中のものです。
09/11/10 19:12:03 C6i0KrhP
URLリンク(www.wacharo.net)
ここを参考にしてJAVAでテトリスを作るんですが、
アプレットではなくてアプリケーションで作成したいと思っています。
ですがアプレットとアプリケーションの互換性などが全く分かりません。
作ってからアプリケーションに簡単に変換することができるんでしょうか。
ためしに上記のサイトのレベル1と書かれてる部分からextends Appletなど抜くと
他も使えなくなる部分が出てくるんですが。
アプリケーションでJARファイルにして実行できるようにしたい場合は
他のサイト参考にしたほうがいいんでしょうか?
見ておいたほういいサイトなどあれば紹介お願いします。
226:名前は開発中のものです。
09/11/10 19:26:28 33hrI6K4
VC++で、directX(dxlib)を使っています
リフレッシュレートに左右されぬようFPSを固定する技法を使うと、
等速直線運動しているだけの画像がカクカクとスムーズでない動きをしています
理由は理解しているのですが、明確な解決方法がググってもどこにも載っていません
(移動距離をリフレッシュレートによって変更するという技法はありますが、その他全てを変更するのは無理そうです)
これはつまり、カクカクなのはしょうがないと言うことなのでしょうか。
東方等大手も仕方が無いこととして適当に諦めてるのでしょうか。
それとも、何か解決法(orマシになる方法)などあるのでしょうか。
(dxlibを使っては不可能なのでしょうか)
よろしくお願いします
227:名前は開発中のものです。
09/11/10 19:40:07 iR0qXcSq
>>225
ググったら、こんなのあったけど
URLリンク(wisdom.sakura.ne.jp)
228:名前は開発中のものです。
09/11/10 20:10:08 WSBQhFY6
経過フレーム数ではなくて、経過時間でアニメーションするように変更する。>>226
229:名前は開発中のものです。
09/11/10 20:20:35 33hrI6K4
>>228
ありがとうございます。
すると、ほとんどのゲームソフトはそういった仕様になっているのでしょうか。
自分はカクカクなのが許せないと言うよりは、大多数の手法と同じ手法を用いたいのですが……。
230:名前は開発中のものです。
09/11/10 20:30:16 WSBQhFY6
リフレッシュレートに依存しないとなったら、ほとんどがそうだろ。
231:名前は開発中のものです。
09/11/10 21:55:03 1FCcgIbf
>>215-220
オライリーの「ゲーム開発者のためのAI入門」とその続編の
「実例で学ぶ ゲームAIプログラミング」
ゲーム・プログラマーで、この2冊を読んでいない人はやばいよ。早く読みな
>>225
アプレットはブラウザの中で実行するから、色々と面倒な設定をしないといけない
それを考えれば、アプリケーションの方がずっと簡単
新たにアプリのプロジェクトを立ち上げて、ソースをコピーすればよい
232:名前は開発中のものです。
09/11/10 23:44:40 VPqZVDvF
>>227
正直アプレットとして使う必要が無いので、
アプリケーションでのみの動作を考えたいです。
そしてそのリンクの中身ですら難しいと思えるレベル・・
>>231
それやってみたらpublic void initの中身のsetSizeやらcreatImageやら
よくわからない所がエラーででててMainで未定義です、とエラー文がでます。
initをmainに書き換えても同様のエラーなので構造が分かってないからでしょうか。
丸写しするつもりはないんですが課題の一部なので、
流用する部分が多いかもしれません。
調べてみるとアプレットはinitで定義してアプリはmainという風な理解の仕方と
どこかで見たような気がするんですが。
ocn規制されたのでこの書き込みは代行です。暫く出て来れません。