トップページgamedev
994コメント383KB

【初心者】スレを立てる前にココで質問を【Part21】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/04/02(金) 00:21:35ID:zsqivwcw
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://wiki.game-develop.com/

ゲーム製作技術板公式アップローダ
http://gmdev.xrea.jp/

ゲーム製作技術板予備(機能停止中?)
http://yy13.kakiko.com/gamdev/

アップローダー予備
http://gamdev.hp.infoseek.co.jp/

gamdev.orgが落ちるたびにあげてみるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1107022166/
0244名前は開発中のものです。2010/05/25(火) 23:16:26ID:R0x1BRG0
今時Duron使ってる人はおらんでしょう…。
アクションゲームならPen4 2GHzぐらい要求してもいいんでね?
0245名前は開発中のものです。2010/05/25(火) 23:23:51ID:eLlQS5GQ
2Dの物理エンジンなんて,誰が使うんだよ
って思う割には,結構ありますよね
0246名前は開発中のものです。2010/05/26(水) 00:00:39ID:EIrQpvew

0247名前は開発中のものです。2010/05/26(水) 17:33:29ID:slu1m63Z
>>243
PCゲームに一般的は無いからなFPSゲーマーとノベルやADV専門のギャルゲーマーじゃ雲泥の差
もう何年くらい前のPCまでフォローするか時期で考え自分で足切りを決めるしかない
参考までに
2003年9月 AMD Athlon 64
2005年5月 インテル Pentium D
2005年6月 AMD Athlon 64 X2
2006年1月 インテル Intel Core
Athlon64X2自体が5年前に出たCPU
ノベルみたいなジャンルじゃなきゃ世代的にデュアルコア以前は切ってもいいくらいの時期になってる
0248名前は開発中のものです。2010/05/26(水) 17:52:36ID:HsSOHU3N
自分が作りたい物作って、その結果60fps満たす最低の物を推奨環境としたらいいのに。
動かしてもらって、fps報告掲示板でも作れば情報集まるだろ。
0249名前は開発中のものです。2010/05/27(木) 08:26:00ID:gxelTLt4
3Dダンジョンゲーが作れるフリーのソフトってないですかね?
欲を言うと、高低差のあるダンジョンが作れると嬉しいんですが。
0250名前は開発中のものです。2010/05/27(木) 09:29:47ID:FpjrTKOU
Wizライクの製作ツールならフリーで何種類かあるが
高低差っていうのがまったく判らない
特殊な仕様ならフリーでもシェアーでも難しいだろうから
贅沢言うほど自分で作るしか無くなる
0251名前は開発中のものです。2010/05/27(木) 09:33:11ID:aCWomQHN
>>249
Unity、UDK、DarkBASIC、etc...
0252名前は開発中のものです。2010/05/27(木) 10:51:04ID:gxelTLt4
>>250
ここで言いたかった高低差は、部屋にあるロフトに登れたり、
いま来た道の上に架かってる橋を通れたり、同一マップ内で
上下の移動ができるってことなんだ。
分かりにくくて申し訳ない。

>>251
ありがとう。
調べてみます。
0253名前は開発中のものです。2010/05/30(日) 03:51:12ID:S8BJ4LqX
DirectXの勉強を1年間やってきたが
コレ単体でゲーム作るのは困難だということに気がつき、ゲームエンジンを利用することにした。
ちょっと聞きたいんだけど、ゲームエンジン使用するときDirectXの知識って役立つ?
0254名前は開発中のものです。2010/05/30(日) 05:03:11ID:HbgM5xDQ
>>253
知ってたほうが何かといいよ。
オープンソースエンジンなら、DirectX知ってれば自分で改良できるし、使うだけでも特性を掴みやすい。
まあ悩んでる暇があったらサンプルでも弄った方がいいよ。
0255名前は開発中のものです。2010/05/30(日) 14:35:51ID:7vBQnTZH
オープンソースのゲームエンジンを使用しようと考えているのですが
IrrlichtとCrystalSpaceどっちがいいと思いますか
0256名前は開発中のものです。2010/05/30(日) 14:47:43ID:8KHYj64L
すみません。
「モンスターなどの移動体に衝突したら円を描くように弾かれる」という機能を実装したいのですが、方法が解りません。
レイを飛ばし凸凹な地形を高さ通りに歩かせる・4分木で衝突判定を削減する という事は現状出来るのですが・・

4分木で移動予定座標の判定だけを取るとガクンと進めなくなり操作性が非常に悪く、
敵の座標に円を置いてレイで判定しようかと思ったのですが
1つのVertexBufferに形状を動的に書き込む事はとても難しそうかつ、何か他に良い方法が有りそうに思えて・・。
どう実装すれば良いものなのでしょうか・・?
02572562010/05/30(日) 15:23:52ID:8KHYj64L
そんなややこしい事をしなくても三角関数使って円周の座標計算して適当に左右に散らせば
そんな感じの動きにできるのかな・・自己解決できるかもしれません、失礼しました、
0258名前は開発中のものです。2010/05/30(日) 16:34:22ID:su9YXlO9
>>255
比べるならOGREだと思うけど、その2つならIrrlichtかな。
0259名前は開発中のものです。2010/05/31(月) 10:44:58ID:BTSw9VY2
大きなマップのデータファイルを作って
プレイヤーが移動するたびに動的にマップデータを読み込んで
マップを表示するようにしたいんですけど
マップを実際に表示するためのデータはどう作るのが理想的なんでしょうか

最初はマップ1マス毎の構造体を作ってそれをリストにして
プレイヤーが動く度に見えなくなった列のマスを廃棄、新しい列のマスをマップデータから読み込み
とやっていたんですけど
いちいち開放、確保をやるのも馬鹿らしかったのと、見える範囲のマスの量は一定なのだから
配列で作ったほうが良いと思い作り直し始めたんです
でも考えてみると今の書き方だとリストにせよ配列にせよ
表示するマップデータを1列変えるだけで相当な条件分岐を使ってるんですよ

マップファイルから取り込んだ新しく追加する1列に含まれるマス数
                   ×
要らなくなり、取り替える必要のある1列に含まれるマス数
                   ×
要らなくなり、取り替える必要のあるマスを現在の表示マップデータから1マスずつ検索する為の分岐


毎Fごとにこれをやるのは結構な負担になると思うのでどうにか良い方法はないかと思ってるんですけど
自分の頭では思いつけませんでした
良い方法があったら教えてもらえませんか?よろしくお願いします
0260名前は開発中のものです。2010/05/31(月) 13:19:29ID:V4wY+c/3
>>259
どのくらいのマップ?1マスのバイト数は?
0261名前は開発中のものです。2010/05/31(月) 13:38:41ID:V4wY+c/3
どうしてもファイルから読み込まなければならない場合、マスの集合体となる
データセットを9個作りそれを3×3に配置する。データセットは1画面をカバー
できる情報量を持たせる。
1 2 3 4(座標)
×□□□
×□■□  ■プレイヤーキャラがいる場所
×□□□
プレイヤーキャラが移動し、となりのデータセットのマスに移動した時点で
1 2 3 4
□□□×
□■□× (左に移動
□□□×
データセットの中身を変更する。X座標4のデータセットはX座標1のデータセットに
上書きする。画面表示時の読み出しはプレイヤーキャラの位置からどのデータセットの
どの位置のマスを参照するかを計算によって特定する。
0262名前は開発中のものです。2010/05/31(月) 13:41:16ID:V4wY+c/3
データセットがマップのどの位置の情報を持っているかをバッファに納めておくと良いだろう。
データセット変更のタイミングを工夫すればプレイヤーがセットの境界で後戻りした場合
など余計なファイルアクセスを軽減できる。
0263名前は開発中のものです。2010/05/31(月) 14:06:35ID:BxJvMFWg
2Dなら普通に平野=1、森=2、……形式のバイナリデータでいいんじゃないの。
マップの幅と高さはヘッダに入れるか別途管理しておいて、
1マスごとにnバイトずつpeekとかで読込み、列と行の2重ループで展開するだけ。

■ヘッダ部:…54… (列と行のサイズ。他にレイヤー数など)
■データ部:00700117112272233733
■展開:(実際は番号に従ってチップ画像を表示)
00700
11711
22722
33733
■実際の処理:
for(row=0:row<=rowMax:row++){
 if(表示画面の範囲外){ continue; }
 for(col=0:col<=colMax:col++){
   if(表示画面の範囲外){ continue; }
   cell=(row*colMax)+col; //何マス目か
   chip=ヘッダバイト+(nバイト×cell); //そのマスのチップ番号
   // 以下、chip番号に該当する画像をnマス目の部分に表示
 }
}

あと普通はマップデータをファイルから読込むのは画面切替の時とかに一度だけで
スクロールごとにロードなんてしない。
0264名前は開発中のものです。2010/05/31(月) 14:29:15ID:BxJvMFWg
すまん、↑普通はと言ったのを念のためフォロー。
確かにぐぐるマップみたいに分割読み込みすることは場合によってはあり得るけど
初質だし、そういう凝ったことがしたいわけじゃないだろうと思ったから
普通のRPG程度のデータなら問題ないはずだし、いちいちファイルアクセスするのは
遅くなるだけだから無闇にロードはしない方がいいぞ、って意味
0265名前は開発中のものです。2010/05/31(月) 14:43:01ID:BTSw9VY2
>>260
マップの大きさは一辺が8185です。
1マスのバイト数は8バイトと少し大きめのファイルになっています。
ちょっとメモリ上に置くには大きすぎるのでファイル読み込み式にしたいです

>>261
実は同じような感じでマス16個(4×4)で構成される構造体を作り
更にプレイヤーの歩くモーションのループ処理の直前にマップ情報読み込み判定を付けることで
毎回の読み込みをさせないようにしたことはあったのですが
その方法だとある特定のフレームにだけ高負荷を掛ける事になり
後々に作る他のシステムとの相性によってはゲーム中に違和感がでる
フレームの遅延が起きそうだったのでちょっと考えてたんです
情報を小出しにするようなマネをしてごめんなさい

>>262
上の方法でやった時はunsigned int の上位2バイトにx、下位2バイトにy座標を持たせたデータを使っていました
0266名前は開発中のものです。2010/05/31(月) 14:52:46ID:/JCbAvCV
>>265
負荷もなにも、読み込み処理は別スレッドでやるのが当然だろうに。
0267名前は開発中のものです。2010/05/31(月) 15:30:10ID:BTSw9VY2
マルチスレッドは単独CPUでも使えるんですね
アドバイスありがとうございます

読み込み時間を考えると
4×4よりはID:V4wY+c/3さんの>>261のように集合マス構造体も大きくした方が良さそうですね
0268名前は開発中のものです。2010/05/31(月) 20:48:49ID:SBpXG6MJ
切り替えマップは逐次読み込んでもいいけど
スクロールマップは一旦読み込んで置いた方がいいのではないかと素人考えで言ってみる
0269名前は開発中のものです。2010/05/31(月) 22:08:54ID:T5iWUvHv
>>261
この方法いいなぁ!
勉強になった!
0270名前は開発中のものです。2010/06/01(火) 11:05:26ID:Po8f4zyx
>>269
すまん、これ以外の方法を思いつかないんだが、何かあったら教えてくれ。
全部持つ以外で。
0271名前は開発中のものです。2010/06/01(火) 13:26:43ID:YH1CnpGo
どうでも良いけど、条件分岐は論理演算である程度速くできるんじゃね?
まあ今のPCだと、コンパイルする言語ならIF文が多重になっても全然問題ないんだが。
画面への書き出しや画面バッファへの書き出しを工夫した方が、1ループのIFを数十回減らすより余程高速化に貢献するはずだから。
例えばシューティングで敵が大量に出たときに重くなるのは、各敵個体の条件分岐や移動計算であることはまずない。普通は、多数オブジェクトの描画が原因だ。

どこを高速化するべきかを間違っちゃいけねえよ。
0272名前は開発中のものです。2010/06/01(火) 13:42:31ID:YH1CnpGo
×コンパイルする言語なら
○ネイティブにコンパイルする言語なら

だな
念のため
0273名前は開発中のものです。2010/06/01(火) 14:29:31ID:7aLzTzAN
>>268
そう思ってマップの大きさを聞いてみたんだが、かなりでかい。
壮大というか、ダンジョンが要らないなと思ったりして。
ナイトロアーとザナドゥをやって以来、ダンジョンが大嫌いになった。
0274名前は開発中のものです。2010/06/01(火) 15:09:27ID:c3fpYBen
マップのでかさもさることながら、1マス8バイトって何入れたらそうなるの?
0275名前は開発中のものです。2010/06/01(火) 18:33:51ID:dU/tTxr1
>>274

>8バイト
そこは別に普通じゃね?
もうちょっと圧縮できそうな気もするけどさ。

0276名前は開発中のものです。2010/06/01(火) 23:52:22ID:c3fpYBen
マジか、普通なのか。
画像識別用2バイト、あとはフラグ用に1か2バイト程度、しか自分の考えでは思いつかない。
0277名前は開発中のものです。2010/06/02(水) 00:13:38ID:Mt7heWAJ
その広大なマップをいくらかに分けてスクロール+切り替え方式にする方法もある
切り替え方式を切り替えスクロールにしてもいいし、SFC版ゼルダみたく
で、もちろん読み込むタイミングは切り替え時ね
0278名前は開発中のものです。2010/06/02(水) 00:14:30ID:mynbMMdD
やっぱマルチスレッドを使うのが常套でしょうか??
0279名前は開発中のものです。2010/06/02(水) 01:34:19ID:OuftsG6g
>>278
ある程度のサイズを随時読み込みで、しかもフレームを一定に保ちたいなら当然かと
0280名前は開発中のものです。2010/06/02(水) 09:41:28ID:LPPCfpZ8
>>271
描写関連ですか
その辺のことについてはまだ詳しく調べていないのでなんとも言えないのですが
ある程度のテンプレ的な描き方があるのではないかと勝手に思っています
それに本当にそこまでやるならライブラリとかアセンブラ?とかも弄る必要があるんですかね
ちょっと今のレベルではそこまでは無理かなと思ってます

>>274
地形の種類
完全固定オブジェクト
仲間道ノード識別ID
仲間道ノード番号
敵道ノード識別ID
敵道ノード番号
動物道ノード識別ID
動物道ノード番号

を考えています

ノードを使ったルート検索ならリスト構造の方が適当かとも思ったのですが
複雑に入り組んだ道同士が交錯しているところで道を検索する必要があったとき
検索に時間が掛かるような気がしたので
いっそのことメモリ上の仮想空間に直接ノードを配置しようかと思い、タイル情報に追加しました
0281名前は開発中のものです。2010/06/02(水) 11:20:42ID:OuftsG6g
>>280
申し訳ないが、お前は基本的なことがわかってないせいでなんでも大袈裟に考えすぎのように見えるわけだが
お前が言っている範囲までのマップがスクロールする試作品は、普通は数日で作れる代物だろう
作ってから時間計測の仕組みを仕込んで、どこで負荷がかかってるか調べて、そこを速くするのが常道

物も作らずに妄想でどこが悪くなるか考えるのは時間の無駄だ
0282名前は開発中のものです。2010/06/02(水) 12:13:14ID:t3WFEQMw
>>280
マスごとに移動コストを持つタイプじゃない訳ね?
そうだとしても、その8バイトの内訳の意味がわからない。
ゲーム自体でどう考えてるかわからんし。

しかし、>>281が言うとおり、作ってからでも良いような。
0283名前は開発中のものです。2010/06/02(水) 12:38:22ID:LPPCfpZ8
>>259>>265で言ったのも含めて既に4回作り直していますし
自前でFPSを算出する関数、一定の範囲の処理に掛かる時間をμs単位で計測する関数も既に作ってます
それでいつも試作品を動かしているうちに全く違った方法が思い浮ぶんです
一度壊すたびにまたほぼ1から作り直しているので
どうせなら作る前にもっとよく考えてから作ろうと思ったのですが・・・
0284名前は開発中のものです。2010/06/02(水) 14:36:13ID:22LxRzfJ
ここは精神病の治療すれじゃないよ。
0285名前は開発中のものです。2010/06/02(水) 15:12:43ID:t3WFEQMw
>>259のようなやり方で、1フレーム毎に読まなきゃいかんってのがよくわからんなぁ。
マップチップのサイズはどれぐらいで、一回の操作でどれだけ移動するんかなぁ?
>>280のデータ構造を見ると、仲間と敵が同時に移動するんだろうけど、TD系のゲームなんかな?
進軍ルートが決まってたりするやつ?

どういう事がしたくて、こういうデータ構造にしたかが見えないので、
みんなもアドバイスしにくいんだと思う。

識別IDと番号の意味も説明してくれたらわかりやすいのかもしれん。
0286名前は開発中のものです。2010/06/02(水) 15:57:43ID:aA2EROmj
マップデータを頻繁に読み込むのはありえんだろ。ヒープに全部確保しといて参照するのではどんな不都合があるんだ?
0287名前は開発中のものです。2010/06/02(水) 16:08:41ID:t3WFEQMw
>>286 >>259-265ぐらいまで読んでみたら?
普通のマップサイズだったらそれで行けるとおもうけどな。
0288名前は開発中のものです。2010/06/02(水) 16:10:05ID:NndM2J5d
マップサイズを減らす方向で考えてみてもいいんじゃないだろうか
なんでそんなでかいんだよ
0289名前は開発中のものです。2010/06/02(水) 17:07:47ID:NwVSgvHR
そんなものゲームのデザインによるんだから、議論の対象にしてもしょうがないだろ
0290名前は開発中のものです。2010/06/02(水) 19:13:43ID:mynbMMdD
>>279
マルチスレッドはどの方法で行っていますか?
調べたところ、以下のようなやり方があるようですが・・・

ttp://www.daccho-it.com/program/WinApi/thread.htm

・Win32API関数(windows.h)
・マルチスレッド対応ランタイムライブラリ(process.h)
・マルチスレッド対応ランタイムライブラリ(process.hのex系関数)
0291名前は開発中のものです。2010/06/02(水) 19:29:55ID:OuftsG6g
>>283
>>290
言ってることがかなりおかしいぞ
1から作り直す必要がない
各処理をクラス化(モジュール化でもいい)してれば、
処理の変更はそこだけ書き直せばいいのに、全部書き直すって何だ?

4回も試作品を作ったのに、今まで満足に動いたのは1個もなかったのか?
ちゃんと動いた物があるのなら、なぜ頓珍漢な質問を繰り返す?
だいたい、動作速度に不満があり、遅延箇所を割り出す仕組みを実装してるというなら、
直す具体的な方法を自分で思いつくはずだろうが

はっきりと疑念を言わせて貰えば、動作する試作も作れてないうちから
グズグズ妄想しては質問してるようにしか見えない

マルチスレッドは自分がバグ無しで実装できそうなのなら何を選んでもいいが、
そこまで不安なら適当な入門書を買って、書いてあるとおりにやれよ
0292名前は開発中のものです。2010/06/02(水) 19:48:26ID:t3WFEQMw
聞きたいことだけ聞いて、聞かれたことには答えない感じか。
作ってれば、なんでそう考えたかまで説明できるモンだけどな。
0293名前は開発中のものです。2010/06/02(水) 21:01:20ID:tvDOvuiS
何でおまいらそんなに噛み付いてるんだw

でも俺も気になるんだが
ゲーム内容がどうあれ、一辺8185サイズのマップなんてプレイヤーは把握しきれないから
その時点で何かしらの分割を考えるべきだったし
ましてそのサイズの中で毎フレ−ム経路探索してたら遅くなって当たり前のような。
経路探索やったことないから俺も素人考えだけどさ。

やりたいことは色々あるんだろうけど
自分の技術で実現可能な範囲に仕様を落とし込むのも重要だと思う
FFとか作りたくても個人ではそこまで出来ないのと一緒
0294名前は開発中のものです。2010/06/02(水) 21:03:48ID:ptt3Ncut
>>293
噛みついてるつーか、
質問に答えて貰えば、礼も言わずに次のレスで後出し情報+追加の質問

マナー的にイラっとする人物ではあるよな
0295名前は開発中のものです。2010/06/02(水) 21:05:53ID:NwVSgvHR
まあ、妄想だけで実際作ったことなくても質問するのは別にいいと思うけどね答えたくなければ答えなきゃいいだけ
礼かもしくは自分の解釈くらいはレスすべきだとは思うが
0296名前は開発中のものです。2010/06/02(水) 22:16:34ID:LPPCfpZ8
ちょっと待ってください
俺が最初から聞いてることは1つだけで、それは>>259も最初の4行に書いてある通りですよ
その質問に答えてもらうのに必要な情報はこちらも言っているつもりだし
こちらの要求に対して的確なアドバイスをくれた方にはちゃんとお礼も言っています
それとID:mynbMMdDは俺じゃないです

>>285
1フレーム毎というのはマルチスレッドを考えていない時の発言なので気にしないでください
移動速度は15Fで1マス程度と考えています
ゲームのジャンルは明確には考えていません
ただ、大きなマップ上で二つの種族が暮らしているような感じが出せればいいなと考えている程度です
識別IDは道路の番号です。現在の道路で言う国道○○線と同じです
番号はその道路上の位置情報のようなものです

>>291
1から作り直すのはそのモジュールのことです。言葉足らずですみません
4回の試作は動いたのか?と言われれば動きました。満足しているかどうかは分かりますよね

>だいたい、動作速度に不満があり、遅延箇所を割り出す仕組みを実装してるというなら、
>直す具体的な方法を自分で思いつくはずだろうが
問題はここなんですよ
俺が恐れてるのは、自分が1番最適だと思う方法でまず一通り作って、それを更に洗練化していっても
後から根本的なところでもっと早くできる方法が見つかったらどうするのか
って事です
要はコロンブスの卵ですよ。聞いてみれば簡単な方法にもかかわらず、そのことに未だに気付いていない可能性です
その可能性を少しでも潰しておきたかったからここで質問したんです
ただ単にやり方が分からないから教えてくださいという質問とは意味が違うんです。
ここのすれ違いのせいでこんなことになってしまったんでしょうか…
0297名前は開発中のものです。2010/06/02(水) 22:23:43ID:GS58ezBB
>296
>俺が恐れてるのは、自分が1番最適だと思う方法でまず一通り作って、それを更に洗練化していっても
>後から根本的なところでもっと早くできる方法が見つかったらどうするのか

ゲームデザインがどうなってるかわからんから断言はできないが
>>280の道ノード〜のデータも持ち方が根本的に間違ってる気がする。

つか、最適解ってもゲームデザインで変わってくるから、全情報を与えてから
質問しないと最適な回答は得られないし、余計混乱すると思うぞ。
0298名前は開発中のものです。2010/06/02(水) 22:45:14ID:ptt3Ncut
>>296
アホか
他のモジュールを綺麗に切り離して作れば、
コア部分の書き直しなんか大して時間もかからずにできることだ

だいたい、具体的な実装や何を作りたいかも書いていないのに、
他人に執拗に質問してもわかるわけがないだろう
バカとしか言いようがない
0299名前は開発中のものです。2010/06/02(水) 23:14:34ID:NwVSgvHR
アホはお前だ
ここは初心者用の質問スレ
答えたくなければ黙ってろ
0300名前は開発中のものです。2010/06/02(水) 23:18:57ID:aA2EROmj
ゲームのジャンルも決まってないのによく作り始められるな
0301名前は開発中のものです。2010/06/02(水) 23:18:58ID:vN2ABHjR
>こちらの要求に対して的確なアドバイスをくれた方にはちゃんとお礼も言っています

これとか、質問者としてなんかなぁとは思うわ。

>ただ単にやり方が分からないから教えてくださいという質問とは意味が違うんです。

それなら初心者スレに書くなよ。
0302名前は開発中のものです。2010/06/02(水) 23:20:55ID:WzwnKx8u
つる草が伸びていくようなアニメーションってなにか作り方あるんでしょうか?
↓の開始5秒の枠とかです
ttp://www.nicovideo.jp/watch/sm10930444
普通にアニメーションでしょうか?
0303名前は開発中のものです。2010/06/02(水) 23:25:31ID:Isbe2hFE
必死でそんな部分の容量節約とかしなきゃならない状況じゃなきゃ
普通に動画が一番楽なような気がするけど
0304名前は開発中のものです。2010/06/02(水) 23:39:36ID:LPPCfpZ8
じゃあもっと単純に考えてください
●1マスに必要な情報は1バイトでその情報はタイルの種類です(0=草原,1=砂漠,…)
●マップは一辺が8185マス分の長さの正方形です
●マップファイルにはマップの情報が座標(0,0)からバイナリで入っており
  2バイト目には(1,0)、8186バイト目には(0,1)の情報が格納されています
●画面に映るのは20×15マスの長方形領域です
●マップの移動は完全スクロール型で、プレイヤーを常に中心において画面が動きます
●マップファイルからのデータ読み込みは動的に行います
  ただし一度に取得するデータ量とデータを取得するタイミングは特に指定しません
●プレイヤーが持っている情報は現在のプレイヤー座標(PX、PY)のみです
●他に必要な変数、構造体があれば随時追加してください

こういった条件がある中でどうやって無駄無くマップファイルから得た情報を表示領域に反映するプログラムを作りますか?
0305名前は開発中のものです。2010/06/02(水) 23:48:49ID:zIBeQzYD
>>304
それ学校の宿題かなにかじゃねえの?
そもそもなんで質問する側がそんな偉そうに条件を並べてんの?
0306名前は開発中のものです。2010/06/02(水) 23:57:33ID:aA2EROmj
8185*8185 = 66994225 ≒ 67MB
全部読んで普通にやればいいんじゃね
0307名前は開発中のものです。2010/06/02(水) 23:59:25ID:tvDOvuiS
まあ良くも悪くも初心者スレだし、そんな熱くならないで。
学校で一辺8185みたいな宿題は出さないと思われ。

>画面に映るのは20×15マスの長方形
俺としてはここにツッコミたいよ
それも含めそういう条件は一番に出して欲しかった
0308名前は開発中のものです。2010/06/03(木) 00:09:19ID:8rvj0z3i
メモリ500M程度使っていい前提ならどこにも問題なく実装できるだろ、としか言えないね。
過去に開いたマップはすぐに削除せずメモリ上にキャッシュとして持つくらいか。

省メモリ・高速化など最適化したいってなら、それは初心者スレで質問するにはスレ違い。
0309名前は開発中のものです。2010/06/03(木) 00:44:18ID:pYhRJ4qn
>>307
そうですね
>>304書いているうちに今まで言ってなかったことが結構あるなと自分でも思いました
申し訳ないです

>>308
省メモリ・高速化の具体的なやり方が分からない人は無理に答えなくてもいいです
ただその場合は自分だったらどうやるかを簡単で良いので書いてみて貰えませんか?
0310名前は開発中のものです。2010/06/03(木) 00:57:11ID:UZ0x4Gye
最悪な感じの教えて君だな
こいつにはもう、何も教えなくていいと思う
0311名前は開発中のものです。2010/06/03(木) 00:59:16ID:h5ytRWtF
まあ、初心者じゃないと主張するなら、初心者スレで図々しい文章で質問する資格がないわな
0312名前は開発中のものです。2010/06/03(木) 01:00:02ID:5ia8VuQF
>>309
とりあえずターゲットの環境はどれくらいよ?

CPU・メモリ・補助記憶域で最適解は違うぞ。
0313名前は開発中のものです。2010/06/03(木) 01:01:55ID:WOp66xky
どこかの専門学校生でしょこいつ
0314名前は開発中のものです。2010/06/03(木) 01:15:56ID:JHKS+jaY
これだから低学歴は嫌われるんだよね。
0315名前は開発中のものです。2010/06/03(木) 01:31:12ID:rCNqR1Gq
>>261の方法じゃだめなのか?
非同期で読み込めば1Fに処理が集中しないと思うし
20*15*8バイトのマスの集合を読み込む程度なら
1マスを15フレームで移動しても最速15F*15マス=225Fのうちに読み込み終わると思うけど

あと>>261に追加するなら
通った道(通ったマスの集合)をキャッシュとしてある程度まで残しておけば
マスの集合とマスの集合の間を往復しても読み込みの負荷が少なくていいと思う
0316名前は開発中のものです。2010/06/03(木) 21:00:38ID:wpd+krYH
>>296
マルチスレッドでなくても、負荷はそれほど無いように感じるんだが・・・。
8150*8150*8byte 532Mとして、それをバイナリファイルで持ったとしても、
ハンドルつかみっぱなしで、読み込んでも楽勝で行ける気がする。

みんなも書いてるけど、まず、そのデータの持ち方がどうなのって言うのもあるね。

その種族別の道路みたいなのがあるようだけど、
それって、全てのマスを埋め尽くすぐらいの規模なの?
それに、国道○○線っていう例を出しているけど、
そのデータ構造では交差するときはどうなるの?そもそも交差しない?

RTSのような感じを想像すると、結局オンメモリじゃないと厳しい気がするしなぁ、
作りたい物が全然想像できない。
0317名前は開発中のものです。2010/06/03(木) 21:04:42ID:24mZnJtE
またなんか案貰っても後だし情報でゴチャゴチャ言うだけでしょ
もう教えてやらんでもいいと思うよ
0318名前は開発中のものです。2010/06/03(木) 23:26:02ID:X4+4Nf+r
>>316
展開は同じスレッドでもいいけど、ファイルI/Oだけは別スレッドでやっときたいよ
Windowsは裏でごそごそやってることが多いし
0319名前は開発中のものです。2010/06/04(金) 05:26:24ID:ie2rOBiw
まぁあれだ。
イマジネーションが根本的に欠如している低学歴には、何を言っても無駄。
0320名前は開発中のものです。2010/06/04(金) 08:04:58ID:o2883Mxm
イマジネーションwww
0321名前は開発中のものです。2010/06/04(金) 23:32:48ID:gDCNHm1N
あの、、面白いゲームをする度に自分も何か作りたいという熱意は出るのですが、
独自のアイデアが全く思い浮かびません。
フリゲを作るにしろ、ある程度の個性というもの出さないといけないと思うのですが、
そういう人はおとなしく受け手でいるべきでしょうか?
0322名前は開発中のものです。2010/06/04(金) 23:38:40ID:OdQwTKaX
フリーなんだからそんなの自分で決めるべきでしょうね?
0323名前は開発中のものです。2010/06/04(金) 23:38:48ID:wknrrEpc
PCゲームという枠組み事態が既に物まねなのだから、
独自という概念に縛られるのではなくて、
既存のゲームに似てるけど、ちょっと違うくらいを目指した方が幸せになれる気がする
0324名前は開発中のものです。2010/06/04(金) 23:53:28ID:gDCNHm1N
ありがとうございます。
はじめは芸を身に付けるくらいで始めたいと思います。
0325名前は開発中のものです。2010/06/05(土) 07:19:24ID:aiQr03CG
自分の作りたいものを作ったら
0326名前は開発中のものです。2010/06/05(土) 23:51:41ID:PC3Ltlct
よくアクションゲームで

■■■
■☆
■■■
      ○←主人公
■■■■■

こんな風にブロックが配置されてますが
ブロックに囲まれた☆の部分にすんなり入れるようにするにはどうすればいいんでしょう
ブロックの天井と床、右端に主人公が当たってうまく入れないはずなのに
マリオ等では穴と主人公が同じ大きさでもスムーズに入り込んでいるのは何故…?
0327名前は開発中のものです。2010/06/05(土) 23:56:33ID:oGhEVFi+
>>326
主人公の当たり判定が、ブロックよりも小さいからかと。
0328名前は開発中のものです。2010/06/06(日) 00:15:53ID:2uXt4+X7
あ、なるほど
ありがとございます
0329名前は開発中のものです。2010/06/06(日) 15:47:35ID:M//Vh14J
どんなプログラムでもそうだけど、とくにアクションものだと
判定に±1するかだけでも挙動が劇的に変わるよなー
326の例も気がつかなければ、余分に四方の空きマスを再チェックとかやったりして
やたら冗長なコードになるだろうし
0330名前は開発中のものです。2010/06/06(日) 18:14:08ID:PZ6tzbmh
いや、劇的には変わらない。
±1しか変わらない。
0331名前は開発中のものです。2010/06/06(日) 18:55:40ID:iZsuaA92
よっぽど単純j内限りかなり変わるよ
前のブロックの話とかがいい例だ
あたり判定がブロックと同じならなかなかスムーズに入らないが一応入る
1小さくするとずいぶん楽になるし1大きくすると隙間に入るというアクションが
まったく不可能になるたた+1なのに出来た事が出来なくなるんだぜ?

通れる所を通れなくなったり、落ちる穴に落ちなくなったりかなりの変化だよ
0332名前は開発中のものです。2010/06/06(日) 19:24:02ID:hCiEoK9z
マルチコアCUPを活かしたプログラミングをしようと思うのですが、
win32apiのマルチスレッドプログラミング以外にも、OpenMPやMPIなるものがあることを知りました。
ゲームで使うにはどちらのほうが向いているとかはあるのでしょうか??
速度重視ならOpenMPよりMPIということは分かったのですが・・・

あと、並列処理プログラムを記述したとして、実際のCPUの各コアへの割り振りはOSが
受け持ってくれると考えてよいのでしょうか?
0333名前は開発中のものです。2010/06/06(日) 19:43:50ID:Cp8yLJF9
こいつ>>304だろw
0334名前は開発中のものです。2010/06/06(日) 20:33:51ID:tYLfXdHE
処理によって違った希ガス
0335名前は開発中のものです。2010/06/06(日) 20:38:07ID:DHbdxBok
>実際のCPUの各コアへの割り振りはOSが受け持ってくれると考えてよいのでしょうか?
OpenMPやMPIの用途をこんな質問する奴が理解できてるとは到底思えないが
0336名前は開発中のものです。2010/06/07(月) 19:17:58ID:83dYmmy1
>>333
俺はここですよー
0337名前は開発中のものです。2010/06/08(火) 00:55:53ID:GuXyJLJ/
プログラマーになりたくて
C++までやりたいのですが
現在C言語のポインタまでは何とかできる程度です
ここからCのポインタC++でゲームを作れる程度までするためにはどう勉強すればいいでしょうか?
よければオススメの書籍など教えてほしいです
0338名前は開発中のものです。2010/06/08(火) 01:55:35ID:4EeymffQ
作ればいい。
ウィンドウを表示して、
絵を読み込んで、
キー入力で絵を出したり動かしたりする。
それだけ。
0339名前は開発中のものです。2010/06/08(火) 01:58:16ID:kT5saXy1
>>337
「C++入門書の次に読む本」
「ゲームプログラマの為のAI入門」

あとは実践力だが…ネットワーク関連の参考書などが役に立つかもしれん。
0340名前は開発中のものです。2010/06/08(火) 02:01:26ID:Gy3kPYwi
ゲームにポインタを使う一例をお願いします
0341名前は開発中のものです。2010/06/08(火) 02:58:09ID:XU0SY8KK
ポリモとか関数ポインタに使ってる
0342名前は開発中のものです。2010/06/08(火) 07:25:53ID:vut+7kqL
ポインタがなんとか使える程度なら
ゲームを作りながら言語も勉強していけばいいんじゃないかしら。

ゲーム特有の知識とかは必要になるけれども。
0343名前は開発中のものです。2010/06/08(火) 15:32:35ID:hTyX/ZvK
>>339
>>342
ありがとうございます
作りながら覚える方がよさそうですね
勧められた本つかいながら実際にやってみます

>>340
ポインタは授業で一応習った程度で使うかどうかもわかりませんが
C言語の教科書の範囲だったので参考程度いに書いただけです
■ このスレッドは過去ログ倉庫に格納されています