[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 06/11 19:17 / Filesize : 85 KB / Number-of Response : 355
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++ゲーム製作総合スレッド Part1



1 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 21:22:08.41 ID:iNm25OoA]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
toro.2ch.net/test/read.cgi/gamedev/1330000532/

149 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 21:43:05.95 ID:GqVx2abs]
言語によって、
遅くて1秒間60フレ出ないとかGC対策が面倒とか、
ライブラリ自体に制約があってやりたいことができないとか、
いろいろ制約あるけど、まぁC++とDXライブラリならそういう制約は少ないから選んだわ

知識や技術は別に特別なものは必要ないと思ってる
他の言語と共通する程度と、あとちょっとC++独自のを知ってる程度で十分かと

150 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 21:51:08.88 ID:0SZX+VUb]
>>149
で、ゲームできたの?


151 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 22:10:25.90 ID:P0UtVE4F]
この板の中じゃどこ行っても万能すぎるお決まりの文句だよな

152 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 22:35:35.79 ID:GqVx2abs]
>>150
鋭意製作中w

153 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 22:58:58.18 ID:vC8mOnYT]
一番簡単なのってHSP?DX?

154 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:03:34.46 ID:GqVx2abs]
小さい仕様であればあるほどHSPのほうが簡単になる
規模が大きくなって、HSPだとめんどくせーってなったらDXライブラリもいい

155 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:10:22.61 ID:dGAr2JTI]
HSPってクラス扱えないんだよな?
俺には無理w

156 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:11:36.82 ID:gc4Q0khA]
>>151
でも、他人があえて言う意味って無いよな

157 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:14:19.90 ID:e5z2kRn1]
モノを完成させたことも無いヤツが、かじった程度で御託を並べるなと言うことだろう。



158 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:28:49.34 ID:GqVx2abs]
ま、そういうこったなw
小さい仕様のは作ったけど今作ってる奴は完成してないからな

159 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 00:03:48.81 ID:qSE9w4FD]
javaとかC#でゲーム作ったことないのにGCがどうこうとかね。
C++の80%が遅いのに、遅いDXライブラリを使う不思議。

160 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 00:09:04.71 ID:3lgmsZci]
作った作ってないって言っても0か1じゃねーんだし。
俺は数本ほど2Dゲームを作った経験があるけど、「どうせミニゲームだろ」と思われるだろうだけだろう。

ぶっちゃけミニゲームかそうでないかは、データ量の違いがほとんどを占めると思うけどw

161 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 00:09:52.31 ID:X2kmab9H]
横アクション作ってるんだけどジャンプ中に移動が出来なくて困った
ジャンプ処理と移動処理はやはり両方通るようにしないとダメか



162 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 01:16:53.38 ID:3lgmsZci]
本来、ジャンプ中に移動できるほう(いわゆるスーパーマリオジャンプ)がおかしいんだけどねw


163 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 06:17:31.08 ID:k8PTBoUk]
魔界村はジャンプ中に移動できないが、
あれはプログラマが初心者だったからなのか・・・


164 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 07:18:02.09 ID:M5YppKNB]
まあジャンプの出来に関しては作り手のこだわり次第だろ
デコジャンプで面白いゲームもあれば放物線でもつまらないゲームもある

165 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 08:43:38.66 ID:98ut8STl]
ジャンプはステージのデザインと切り離しては考えられないしな

C++は処理速度・ライブラリの豊富さ・エラーチェック・日本語がまともに通る、点に魅力感じるなぁ
HSPは「メインループとはなにか?」ってレベルの勉強には使えるかもだが、それ以降は・・・

>>160
そういやミニゲームって何だろうな
RPGの中にポーカーが入っていれば明らかにミニゲームだが
ではポーカーゲームはミニゲームなのか? とか。まあスレ違いだが

166 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 20:55:45.16 ID:qCagfYPX]
リアルでないこと、現実シミュレーションと違うことが、
ゲームの面白さに繋がることもあるよな
と思ったがこれもまぁスレチか

167 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 21:53:32.35 ID:AsMcXKmB]
繋がることもあるってなんだよw
現実シミュレーションが面白さに繋がってるゲームなんて一握りしかないだろう
だったら現実でやれって話



168 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 22:44:36.71 ID:qCagfYPX]
放物線・現実シミュレーションが面白いゲームもあるし、
ジャンプ中に移動できるジャンプが面白いゲームもある

片方が一握りしかないとか、前者をやれ、とかは思わんなあ

169 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 23:12:19.50 ID:tiWdIkDb]
現実でFPSをやったら殺人罪になるし、
カーレースをやったら事故死か白バイのお世話になるし、
ジャンプアクションをやったら転落死するし、
恋愛シミュレーションをしたら変態になる。

170 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 23:38:40.80 ID:CSiaqjKe]
おまいらはboost使ってる?

171 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 23:41:56.86 ID:XVqRqiij]
なんですかそれは

172 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 23:49:58.12 ID:aJXCPyxU]
>>170
ゲームそのものでは、あんまり使った記憶ないなあ。
それ以外だと正規表現とか使いまくってるけど。

173 名前:名前は開発中のものです。 [2012/05/31(木) 23:56:05.31 ID:uky8HTVF]
DXLibとか時代遅れのライブラリなんかより
OgreとかBulletとか使ってるひとおらん?
今はまあC++とかよりUnityやunreal engineの時代なのかもしれんけど

174 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 00:06:38.86 ID:2hjVHnyz]
流行に流されない俺様は自前ライブラリを使っていますよ?
人間、使い慣れた道具が一番でしょ。


175 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 00:18:08.05 ID:jiOBWGhf]
unityとか何それ、美味いの?レベル。
物理エンジンはとにかく、
他はインターフェースの面でしか楽にならんでしょ。
インターフェースのウェイトが重めのゲームとは縁が無い。

176 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 00:22:36.93 ID:TU92J+Oa]
>>173
ogreは機能豊富だけどapiデザインはもう時代遅れ
対応プラットフォームも最近だと物足りない
あえて今使う理由はないかな

177 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 00:23:33.07 ID:jiOBWGhf]
>>172
なんか使えそうで使わないんだよね。
最近、シリアライズで使おうと思ったんだけど、
随分ややこしそうな処理してるんで結局やめた。
スマポで使ってる話は聞くけど、俺スマポ使わんし。



178 名前:名前は開発中のものです。 [2012/06/01(金) 00:27:03.18 ID:fycJbMU0]
>>176
今だとC++ではどんなのがタイムリーなの?

179 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 00:57:23.11 ID:GysQPsBs]
>>176
具体的にどの辺りが時代遅れなの?

180 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 03:56:37.85 ID:bIBm1EvQ]
>>169
それらが現実シミュレーションだって?冗談だろw

181 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 06:12:45.95 ID:YzCF0h/I]
>>175
unity以外にwin, mac, ps, xbox, iphone, androidに対応してる
エンジンなんかあるのか?


182 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 07:14:24.44 ID:2hjVHnyz]
急にステマがわいてきたな

183 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 07:18:32.15 ID:U3o9Kj54]
>>170 Xpressive使ってる

>>173 Irrlicht使ってる。新しくはないが素直でいいエンジンだと思う
日本語には弱いけどね

RPG作ろうとしてるんだがゼロから作るとデータの保存・読み出しが面倒だ
Xmlで保存しちまうかw

184 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 08:00:25.82 ID:LAk2EFKF]
>>181
そんなに対応する必要あるの?

185 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 08:24:20.72 ID:zQI52x1x]
>>184
macはいらないけど、その他は必要でしょ。


186 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 08:35:27.13 ID:TU92J+Oa]
>>181
shiva + marmaladeならもっと範囲は広いのではないかと思うが、
marmaladeのゲーム機サポートは最近情報が隠れ気味...
今はideaworkgamestudioチームによる個別移植が必要なのかも。昔はそんなことなさそうだったのだけれど。

187 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 08:42:49.00 ID:46HM1XVZ]
>>185
winか携帯だけでいいんじゃね
インディーズでxboxならxnaのほうが楽につくれるし
ps3は会社で専用やつがきまってることがほとんどだし



188 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 09:55:01.79 ID:jiOBWGhf]
>>181
現状、windows向けにしか興味ないですしおすし

189 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 10:00:27.62 ID:XmKAMpEh]
Ogre触っているけどそれよりもナウなライブラリがあると聞いて

190 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 10:19:57.82 ID:TU92J+Oa]
>>189
gritとかmaratisとか
機能面ではogreユーザーには不足かもね

191 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 11:52:56.10 ID:3z3bXcMg]
海外のゲームエンジンはメジャーなものでもフルスクリーン切り替えができないものがあって驚く。

>>190
gritは内部でogre使ってるって書いてるような。

192 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 13:51:27.62 ID:TU92J+Oa]
>>191
内部で、ね

193 名前:名前は開発中のものです。 mailto:sage [2012/06/01(金) 14:10:59.17 ID:fDBKT1KS]
>>190
ありがと、今度みてみるわー

194 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 18:30:36.97 ID:o2lhntQH]
フルスクリーン対応って今更必要か?
液晶モニタももはや新品はHDしか売ってないし、規格は統一されてないみたいだし

195 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 18:34:50.83 ID:JwZ2BVqY]
C/C++と関係するかは微妙だが…
コアなプレイヤーからの要望があって初めて搭載を検討するくらいでいんじゃね

196 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 18:43:21.55 ID:yH+d3ni3]
その場合ティアリングはどうしてるんかな?


197 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 18:51:16.02 ID:a4OlxP0h]
>フルスクリーン対応って今更必要か?

少なくとも俺はフルスクできないゲームはやる気がかなり減退する。
目が悪いからできるだけでかい画面でやりたいし、
全てのPCユーザーが最新環境もしくはそれに近いスペックの環境でやってるわけではない。



198 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 19:15:04.43 ID:/NYjtNV7]
PS3でゲームアーカイブスを遊んだり、3DSでDSゲーを遊んだりするとき、
画像サイズを無理やり引き伸ばすか、それとも整数倍(1倍含む)にしてレターボックスにするか設定できたりするけど、
前者の需要はかなり多いと聞く。

199 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 20:07:09.97 ID:JwZ2BVqY]
画像サイズを任意サイズに引き伸ばすのは割と優先度高い機能と思う
フルスクリーンなしでも、画像引き伸ばしのほうは必須に近いかと

200 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 21:11:23.06 ID:Fx7ZWIqp]
液晶ディスプレイが普及している現在、最適解像度以外に変更するようなフルスクリーン化をするぐらいなら、
最上位ウインドウを全体に展開して、プログラム側で画像を調整するべきだろう。

201 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 22:32:20.69 ID:myF5RtO5]
全てのプレイヤーが「最適解像度」を意識してるわけじゃない。
そんなの一部のマニアくらいだ。

「最上位ウィンドウを展開して〜うんぬん」ができるのは良いとして
それとは別にフルスクリーンモードをできるようにすればいいだけなのに
それをしないのは作り手の怠慢だ。


202 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 22:51:41.46 ID:j4ElIJFU]
4:3の映像を16:9に引き伸ばしてデブったキャラに違和感を感じないんだろうか・・・
上下移動より左右移動の方が速かったり・・・

203 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 22:58:05.13 ID:JwZ2BVqY]
1)「フルスクなし、引き伸ばしなし」 →NG
2)「フルスクあり、引き伸ばしなし」 →NG
3)「フルスクなし、引き伸ばしあり」 →OK
4)「フルスクあり、引き伸ばしあり」 →OKだがそこまで手間かけなくてもいいよ
こんなとこ

204 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 22:59:09.90 ID:QK2zXOEH]
解像度やアスペクト比って
それなりに柔軟に対応出来るように作るもんじゃねーの…?
と思ったけど完全2Dゲームは黒縁いれなどうにもならんのかね

205 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 23:02:11.37 ID:myF5RtO5]
フルスクリーンってひょっとしてディスプレイの大きさに完全一致させる事を言ってるのか。
フルスクリーンを望む人間がそれを望んでいると思うのか。
黒縁ありでアスペクト比優先に決まってるじゃん。

206 名前:名前は開発中のものです。 mailto:sage [2012/06/02(土) 23:04:55.36 ID:JwZ2BVqY]
・ゲームの解像度が画面の解像度に比べて小さすぎてプレイに支障をきたす
・アスペクト比が違っていてプレイに支障をきたす
この2点について対策するのは、必須に近いな
引き伸ばしできればこのあたりはできる

207 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 00:23:21.31 ID:3U3UPjhL]
スレ違い



208 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 01:12:58.58 ID:aP5ZetOZ]
javaでAndroidSDK触ってきたけどなんだアレ難しすぎワロタ

209 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 01:13:07.02 ID:v/OzWZ4D]
対応できる言語が他にはあまり無いだろ
全く無いとまでは言わないが


210 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 01:13:34.79 ID:aP5ZetOZ]
やっぱC++でコードいじってる方が性に合うわ

211 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 08:47:32.70 ID:UydZV2Td]
3Dゲームなら4:3にも16:9にも対応してないと困る。
3D部分はカメラのパラメータいじるだけだし。
GUIのレイアウトがちょっと面倒だが。


212 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 09:19:16.35 ID:v/OzWZ4D]
Windows2Kも見捨てた事だし、4:3も見捨てるかな?
どうせ完成までには時間もかかるし

213 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 09:29:33.79 ID:UydZV2Td]
4:3モニタだと香港映画のエンドロールみたく縦長になるの?w


214 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 09:52:01.34 ID:XtOj+Vwn]
DbD、アス比固定、全画面の選択はビデオカードもしくはディスプレイの仕事だから下手に弄る必要ないよ

例外として、ドット絵系のゲームが拡大されてぼけぼけになるのを防ぐために必ずゲーム側でNN法で拡大したいとか、
画面の大きさによってゲーム内で見える範囲を変えたいとか、3DならGUIの大きさだけ小さいままにしたいとかなら弄らないといけないけどね

「画面が小さいからプレイに支障をきたす」ということで拡大したいならゲーム側での処理は一切必要ない
もちろんフルスクリーンとウィンドウモードを切り替えるオプションは必要だけどな

215 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 10:29:18.59 ID:VQ0xfCpl]
スレ違いか微妙なところだな
ブラウザゲーでは考慮のいらない部分だし
C/C++以外の環境ではあまり問題にならない部分か

個人的には、ゲーム側に拡大機能がついてないと困るわ
わざわざ拡大するフリーソフトが存在する理由はそれだし
しかも、そのソフトでも拡大できないゲームとかあったりして困るわ

216 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 10:35:05.15 ID:cJiiOnF4]
2Dエフェクトとか3Dエフェクトって作るの難しいな…微妙な差が違和感を産む
もしかして自分で作成ツールとか作るのが普通なのか?

217 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 10:41:19.26 ID:J6YmoIaF]
>>216
モンハンのような血しぶきがつくれなくてこまっています



218 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 13:25:57.94 ID:XtOj+Vwn]
>>215
普通のPCならグラボかモニタで設定できるだぞ?

5年以上古いビジネス用途のノートパソコンとか使ってるんだろうが
ゲームするならまともなやつに買い替えたほうがいいよ

219 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 14:07:41.96 ID:4q6OEElb]
>>218
そういうもんなのか、初耳だった

220 名前:219 mailto:sage [2012/06/03(日) 14:29:44.36 ID:4q6OEElb]
ああ失敬、フルスクリーンでか。
拡大機能っていうからウィンドウモードでの話かと思ってた。

それならグラボなりモニタ任せってのは1つの方法だよね。
多くのモニタ/グラボが対応してる解像度を選ぶなら、1920x1080とかになっちゃいそうだけど…。
つい最近、昔の320x240のゲームをフルスクで起動したら、見事に真ん中に小さく表示されてしまったのを思い出した。

洋ゲーとかその辺しっかりしてる印象があるけど、デュアルモニタ絡みになると結構バラバラのような。

221 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 15:52:09.21 ID:XtOj+Vwn]
対応してる解像度って何の話してんだ?
どんな解像度だろうがスケーリングはできるだろ

>つい最近、昔の320x240のゲームをフルスクで起動したら、見事に真ん中に小さく表示されてしまったのを思い出した。
これはスケーリングの設定をDbDにしてるからだろ
嫌なら他の設定にすればいいのに意味がわからん

222 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 16:03:02.78 ID:/Di23sVK]
>>217
赤い点をばら撒くだけでいい

223 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 16:29:41.17 ID:dCvIbGe4]
newとかmallocでちゃんとエラー処理してる人っている?
ってかメモリ確保失敗って実際問題起こる?

224 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 17:56:48.59 ID:v/OzWZ4D]
エラー処理って言ってもログ出すぐらいだな。
ちなみに、細かい動的メモリー確保で起きるフラグメンテーションには自前でGC作って対応した。

225 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 19:26:32.14 ID:lfTPN7Pn]
起きないだろ。
メモリ足りなきゃOSがHDD使って仮想メモリをいくらでも作るはず。
それにプレイヤーが推奨動作環境でプレイしていれば
まずメモリが足りなくなるはずないし、普通は必要ない。

226 名前:名前は開発中のものです。 [2012/06/03(日) 21:00:29.34 ID:v/OzWZ4D]
VCのヒープメモリーのサイズは10Mしか無いって知らないんだね
ちなみにnewやmallocはヒープメモリーだ
それ以上のメモリーを取得しようと思ったら、VirtualAllocを使わないと駄目だよ

227 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:14:18.66 ID:v/OzWZ4D]
間違えた。ヒープのサイズは1Mだった。



228 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:20:15.72 ID:ufFTQ137]
スタックサイズと間違えてるだろ明らかに・・・

229 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:22:27.91 ID:Y5aEM5Jb]
>>226
そんな事実はない。VirtualAllocのがぎりぎりまでとれるのは事実だけど管理も全部自分でするはめになるぞ

230 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:26:33.66 ID:Y5aEM5Jb]
>>228
いや、初期値はそれで合ってる。仮想メモリの上限がくるまでどんどん拡張される仕様

231 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:27:17.84 ID:cJHhyghN]
ヒープが1Mってw
20年前かw


232 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:30:41.62 ID:v/OzWZ4D]
>>228
VC2010とヒープで検索してみ?
っつ〜か、携帯からの入力は疲れるな

233 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:37:01.71 ID:v/OzWZ4D]
>>230
何処に拡張されるって書いてあるの?

234 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:40:50.99 ID:+Cd4NORe]
Windows で new の仕様としてHeapAlloc を呼ぶ
HeapAlloc はヒープサイズが足りなくなったらVirtualAlloc を呼ぶ

235 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:44:36.31 ID:v/OzWZ4D]
ソースプリーズ

236 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:48:02.82 ID:+Cd4NORe]
ごめんうそ書いた。確かめたら
new は足りなくなったら直接VirtualAlloc 呼ぶのね

237 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:51:19.35 ID:ufFTQ137]
じゃあ、どっち道newでいいじゃん。
つか、32Mでも確保エラー俺のとこじゃ起きないけど。



238 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 21:58:54.52 ID:xWr54rm7]
newとヒープは同じで、VirtualAllocは別物だね。
msdn.microsoft.com/ja-jp/library/dd744766(v=vs.85).aspx


239 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 22:03:21.55 ID:Y5aEM5Jb]
>>233
実際やってみ。状況にもよるが数百Mぐらいは特に問題ないから

240 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 22:27:01.07 ID:Y5aEM5Jb]
Win32の VirtualAlloc は仮想メモリから直接メモリを確保する機能で、
ページ単位の操作しかできないので細かい確保にはむかない。
100byte だけ欲しいと思っても 64kbとられてしまうので、
C++のオブジェクトの確保とかで使うとすごい無駄なことになる
静的なM単位の大容量データの確保用に使うのには向いてる

HeapAlloc は仮想メモリから確保したメモリを、
さらに小分けに管理して割り当ててくれる。管理のオーバヘッドと
引き替えに細かいメモリを効率的に使える。
VC++ の malloc や new はこの HeapAlloc で実装されてるはず

ただ、ヒープ系メモリはどうしても「断片化」がおこる。
合計ではメモリが余ってても、間に邪魔者がいると連続領域を確保できなくなる。
ゲームはわりとこの断片化をおこしやすい傾向があるので、
オブジェクトの寿命ごとにヒープを別グループで確保するのが
定番テクニックになる。C++ ではクラス単位で new を差し替えできるから、
そこで使うヒープを切り替えるようにする

Win なら HeapAlloc を直接使って別ヒープを確保する形で new を実装するか、
あるいはVirtualAlloc したメモリに対して dlmalloc などの
ヒープライブラリを使って実装することになる。


241 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 22:52:52.00 ID:dCvIbGe4]
良く分からんけど、エラー処理は趣味の問題ってことでいいの?

242 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 22:57:43.88 ID:v/OzWZ4D]
>>239
VisualStudio2005を使ってた頃、自作のスクリプト言語を作ってみた所、
数百行程度でフラグメンテーションによると思われる確保失敗を起こした。
ちなみにその頃のOSはxp。
で、GlobalAllocのGHNDを使って回避した。
Windowsが7になってもこの状況が変わったとは思えないんだがな……

243 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 23:13:03.94 ID:7gzK+eao]
銃クラスが、兵士クラスのアドレス貰って銃クラスが当たり判定すべき?
それとも銃クラスから判定クラスに銃クラスの位置や角度を渡して判定させるべき?

244 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 23:34:56.12 ID:0GlelDaK]
なになにする「べき」なんて方法は無い。
システムに合わせて一番実装しやすい方法を選択しろ。

245 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 23:37:00.73 ID:Y5aEM5Jb]
>>241
メモリ確保失敗したら、基本続けるのは無理だろうから基本は即終了でいいんじゃないかと
全部解放してタイトルに戻るとかそういう工夫はしてもいいと思う

>>242
Win32以降のGlobalAlloc/LocalAlloc はHeapAlloc のラッパー関数です。領域も malloc と同じはず
GHNDすると再配置もしてくれてるからフラグメンテーションにならなかったってことではないかと。
そのかわりパフォーマンスはわりと落ちていたと推測します

スクリプト系は、作りにもよるけど、案外あっさり
フラグメンテーションの原因になるので、あらかじめ
リソースとはヒープわけるのが上策ですね

246 名前:名前は開発中のものです。 mailto:sage [2012/06/03(日) 23:38:27.61 ID:xWr54rm7]
>>241
メモリリークを引き起こさない自信があるなら、エラー処理しなくてもいいと思う
フラグメンテーションに関しては、頭の片隅にでも入れておけばいい。

247 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:11:37.59 ID:U4cKxLml]
>>245
その辺りの推測は、大筋では当たってると思う。ただ、ちょっと疑問がね。
GlobalAllocのクリップボードでの使われ方の説明がつかない。そして、
GlobalAllocのGHND(正確にはGMEM_MOVEABLE)は64K個まで使える。
この意味理解できる?

おそらく、GlobalAllocのGHNDのヒープは、アプリケーションのヒープ領域
とは別に、OSが割り振ったヒープ領域を使ってる可能性がある。そのため、
下手にヒープ領域を使うよりもより多くのヒープ領域を使える可能性がある。



248 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:18:22.31 ID:suZpr76G]
メモリ談義はいいんだが
C++ならnew/deleteにこだわるのはやめたほうがいいと思うぜ
ttp://www.libjingu.jp/trans/bs_faq2-j.html#memory-leaks

>>243
疑って悪いが、お前>>15じゃないだろうな?

249 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:20:39.87 ID:Em2GMpFA]
>>248
そうだよ
似た質問しない方が良かった?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<85KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef