[表示 : 全て 最新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/

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
そうだよ
似た質問しない方が良かった?

250 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:48:35.66 ID:suZpr76G]
何回も同じような質問するのはまずいだろ

「やろとしたができなかった」とか「やってみたが効果がいまいちだった」とかなら
それを軽く説明してから改めて質問に入るべきじゃね

でなきゃ>>243だよ。相手する意味がないしな



251 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:55:06.96 ID:NFm2pd34]
銃は発射するだけだろ。弾受け取って兵士が処理すりゃいい。
フルアーマーの奴と、裸の奴もおるだろ。

252 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 01:12:22.83 ID:5kM6hLnq]
じゃあ生成したユニットデータに座標を持たせるのと、
マップの座標にユニット番号持たせるのどっちが良いのっと

253 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 02:02:20.06 ID:NFm2pd34]
好みだろ

254 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 05:46:34.75 ID:BRzk8XkE]
>>252
どっちも持たせる。


255 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 07:59:01.95 ID:weX4F0Ac]
>>251
基本的に当たり判定って食らう側がするもんだよね

256 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 08:37:58.08 ID:kLL4aZzx]
>>255
どっちでもやる事は一緒。


257 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 08:47:58.63 ID:Em2GMpFA]
>>252
処理多くならない?

258 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 08:48:30.58 ID:alVEkGAv]
この手の話って、常に正解を教えられて育ってきた人間が、精神病のごとく質問してくるよね。
自分で決めていいことなのに、自分で決められず、
誰かに正解を提示されないと不安で仕方がない心の病気にかかっているヤツ。

259 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 09:49:57.78 ID:TYJ+eYx9]
それまで・これからのコーディングやゲームデザインによっても変わってくるしな。
その上で、この手法はこういうデメリットがあるし、
あの手法はああいうデメリットがあるし悩んでる。
っていうのを言えば、こういう方法があんじゃね?
ってことも言えるんだけど。
質問が大雑把過ぎるんだよな、結局。
恐らくデザインやクラス設計がイマイチ固まってないんだろう。

260 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 10:15:50.33 ID:kLL4aZzx]
弾が速くて可変フレームレートの場合は、
前回の位置と今の位置との線分で当たり判定が必要だから、
弾を移動させるロジックと同時に判定もさせた方が
楽だと思うに一票。




261 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 13:25:02.85 ID:kY76Nlsr]
銃の弾は、弾の移動でやったほうが楽だし
地雷の接触などはキャラが動いた時のほうが楽だし
楽なほうでやったらいいんじゃないかい
もしくは当たりイベントのスレッドをつくって統括するって方法もあるけど

262 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 14:00:18.48 ID:GfSYyx1Y]
弾クラスには弾クラスだけで、兵士クラスには兵士クラスだけで
完結するメソッドを持たせて、存在する全ての弾と兵士にアクセスできる
判定クラスがあればいんじゃね?
mediatorパターンというか、トランザクションスクリプトというか
Cライクやり方をお勧めする。

class Judge {
Bullet* all_bullet_array;
Soldier* all_soldier_array;
void judge_all(){
for(...){...};
}
};

263 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 15:48:15.62 ID:nQ9KtldE]
FPSなら線分で良さそうに思えるが
毎フレーム接触判定してるもんなのかな

264 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 16:20:02.21 ID:GfSYyx1Y]
3Dかどうかもわからんが、彼のレベルからすると
ファミコンマリオぐらいのアクションゲームだと思う。

265 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 20:21:19.07 ID:NFm2pd34]
シミュレーションかもしれんぞ

266 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 20:30:56.37 ID:QyF/fiyn]
マリオって作るの結構難しいよね
あのジャンプなんだよ

267 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 21:55:13.21 ID:q0NKYXAt]
ジャンプ中、亀を蹴って飛び上がれるときと当たって死ぬときが
あるけどどういう判定にしているのかみたいな話題がどっかのスレであったな

268 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 22:06:41.15 ID:5kM6hLnq]
>>257
射線1マスごとにユニット表総舐めする前者と
行動主を特定するのにマップを総当たりする後者
冗長構成の一貫性さえ保てればイイトコ取りの>>254

好きなのを選ぼう!

269 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 22:40:23.00 ID:l61wSE5A]
ユニットスタックの概念がなかったら後者の方が単純でわかりやすいけど、
汎用性とか考えたら前者の方がよいんじゃないかという気がするな。

まぁ今のPCならメモリ不足はあまり心配する必要ないんだし、
前者をベースに後者の「ユニット判定専用マップ」を用意するってのが
いろいろできていいかも。

270 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 23:31:53.31 ID:gSaZzhQ+]
リアルテイストの競馬育成ゲームで毎年生まれる馬3万体の
遺伝データをずーっとメモリに持たせたらとんでもないことになった思い出



271 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 07:03:53.84 ID:5hghPcJi]
どうなったんです?

272 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 19:54:18.88 ID:X1AjLJeN]
正直初心者にはマリオですらアクションゲーは無謀だと思う
まずはWizみたいな探索ゲーを作るべき

273 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 19:57:18.38 ID:AKltwP6Q]
おいおいw Wizは難易度高いだろ。
最初はパックマンか倉庫番でいくべし。

274 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 20:14:39.78 ID:X1AjLJeN]
そうかな
シーン管理と変数配列構造体辺り出来れば割りとなんとかできそうなんだけど

275 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 20:35:08.86 ID:s+a7RtxR]
探索だけなら簡単だな。
1マス未満の移動を出来るようにするとか、戦闘やらイベントを加えると途端に面倒だと思う

276 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 20:57:04.12 ID:rQvv9pU4]
宣言用.hと定義用.cpp作って
そこにexternで変数関係ぶち込むと凄い楽できることに気付いた
単純なミニゲームとかなら楽に作れそうだけど何か穴とかあるのかな

277 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 21:12:18.32 ID:s+a7RtxR]
単純なミニゲームならそれでいいんじゃね。
規模に比例して、デメリットが大きくなると思うけど。

278 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 23:39:25.37 ID:mjwjZU1k]
>>276
関数外のstaticの使い方とか覚えると、さらに世界が広がる
>>277
デメリットって?

279 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 23:46:14.46 ID:mjwjZU1k]
>>236
ソースプリーズ
new はVirtualAllocを呼ばないだろ

280 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 00:15:24.25 ID:yfcMlTbU]
extern自体あまり使うべきじゃないよな...



281 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 00:31:44.41 ID:s5fJFGX+]
>>278
「グローバル変数 弊害」などでぐぐると沢山の資料が出てくるので、そちらを参考にされたい。
名前空間やシングルトンパターンなどの利用で回避できる部分もあるけどね。


あと、プログラミングにおける有名な考え方(哲学)の1つなんだけど。
ざっくり言うと、「オレ専用のモノはオレだけが知っていればいい」という考え方がある。

例えばfor文で使ってる変数iとか、他のところから見て何の価値も無いよね。
単にどうでもいいってだけじゃなく、価値のない情報が溢れかえると肝心の情報が埋没するというデメリットがある。
本当に必要なものだけを選別しないと、それこそ狼少年みたいに重要なことが見過ごされてしまうかもしれない。

ミニゲームのうちは、そういった無価値な情報が多少あっても問題にならない。
でも規模が大きくなると、相対的に不要な情報が増えてくるんだ。

282 名前:名前は開発中のものです。 [2012/06/06(水) 00:57:04.37 ID:0Qe/6ch0]
木の葉を隠すなら森の中

283 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 05:05:34.22 ID:F+8wYuiU]
デバイスまとめクラスは
オレオレ名前空間内のstaticなグローバルオブジェクトにしてるな

どの程度正しく作るかって難しいよな

284 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 06:13:10.68 ID:BB9r7cef]
>>274
迷路自動作成ロジックはどうする?


285 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 07:30:32.76 ID:B+n3k45G]
>>281
例えばだけど、規模が大きくても付けた変数名を絶対に忘れない人が一人で作れば問題ないよな
場合によっちゃそこらへんのツールで重複調べられるしな

286 名前:名前は開発中のものです。 [2012/06/06(水) 07:45:33.71 ID:LQ8HTB51]
グローバル変数名は頭に「g_」を付けましょう。


287 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 09:05:26.97 ID:mjTHO3b4]
>>285
ホントに「例えば」だな。クラス設計が分からない時、
やたらグローバルな変数を宣言してたが見事に破綻したよ。

288 名前:名前は開発中のものです。 [2012/06/06(水) 09:28:51.13 ID:yfcMlTbU]
>>285
「人によってはなんとかなることもあるから開発効率落としてみてもいいだろ。俺もそのなんとかなる人の一人かもしれないし」
こういうこと?

289 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 10:15:18.79 ID:WiOpGBsA]
名前空間+グローバル変数は結構使いやすい。

.hと.cppをめんどくても分けるのは
相互参照でコンパイル通らないC++の都合だね。

290 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 12:11:44.97 ID:Ez398/8e]
なんだかんだで「変数はクラスに入れとけ」となるのはわかるんだが
じゃあそのクラスのインスタンスはグローバル的に参照したらダメなんかね?

たとえばジャンルがRPGだとして、キャラクターデータを

// common.h(各cppでincludeする)
namespace Sample {
 // パーティーデータを宣言
 MyCharacterData Party;
};

// main.cpp
#include "common.h"
int main( int argc, char ** argv, char ** env ) {
 // 起動時に初期化
 Party.init();
 :
}

・・・といった作りにするのはどうなんだろ



291 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 13:28:41.38 ID:s5fJFGX+]
グローバル変数のデメリットと言われるものは複数ある。
そのうちの幾つかは解消されるけど、残りは解消されないと言った感じ。

例えば、意図しない変数名のバッティングは回避されるだろう。
でも、複数の箇所から操作される可能性はそのままだ。

292 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 13:31:53.21 ID:mJCSqxTc]
グローバル変数のメリットは複数の箇所から操作出来る事なのでは……。






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

前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