ゲームプログラミングのマップ読み込みについて

このQ&Aのポイント
  • ゲームプログラミングにおけるマップ読み込みの方法について解説します。
  • 大きなマップを効率的に読み込む方法を考える。
  • メモリ使用量を考慮しながら、効率的なマップ読み込み手法を選ぶ。
回答を見る
  • ベストアンサー

ゲームプログラミングのマップ読み込みについて

製作環境: C言語*DXライブラリ Microsoft Visual Studio Express 2012 現在、ぽちぽちとRPG製作を進めています。プログラミング初心者です。 タイトルの通り、マップの読み込みについて質問があります。 非常に大きなダンジョンのマップAがあります。 (ドラゴンクエスト3or4、のフィールド全体のマップ、くらいだと思ってください。大げさですけど) このマップA、ダンジョンなものですから普段使用しません。 とは言ってもその場面が来れば何度も使用することになります。 【A案】 あまりに大きいので、最初、いくつかに分割して読み込ませたらどうかなーと思ったのです。 0, 1, 2, 3 4, 5, 6, 7 8, 9,10.11 こんな感じに分けた上で、0に主人公がいた場合、0,1,4,5 辺りのみ読み込ませます。 このマップの表示には静的メモリを取りません。 ようするに60FPSなら、毎秒60回、主人公の周りのマップを読み込んでいます。 【B案】 一秒間に60回読み込むとか、ありえないでしょー。どう考えてもメモリ使いすぎでしょー。 と思ったので、次は最初から全て静的メモリにマップを確保しておいたらどうだろう。と思ったのです。 でもこれだと、ダンジョンのマップなものですから、全部確保したら使わない時にはメモリ無駄にしちゃうよな。と思ったのです。 【C案】 動的メモリとかいうものを使う、まだ学んでない関数があるらしい。 と、A,B,Cの三つを考えたのですが、実際、どれがどのくらいメモリを消費するのか分からないのです。 実際にC言語で巨大なマップを作ろう! と考えたときに、プログラミング初心者の私がチャレンジするのはどれが妥当でしょうか? もしくは別の考え方でこういうのがあるよ。と言ったものがありましたら教えてください。 よろしくお願いいたします。 ただし、巨大なマップ自体を作らない。と言った回答はなしでお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

初心者が最初の設計で最後までRPGを完成できると思えないので、行き当たりばったりもがいたほうがいいですけどね。何度か作り直すハメになると思います。でも仕方ないんです。始めてなんですから。 まぁ、画像のほうがデータ量を消費しますので画像の持ち方次第です。ABC案がマップの配置データの話としたら次のような感じでしょうか。 【A案】 読み込みは遅いので基本的に却下です。 【B案】 そもそも手打ちでマップデータ用意するんでしょうか。 【C案】 一般的には動的に割り当てたメモリに読み込みます。 ただ、大した容量取りませんよ。 単に可変サイズの時、動的の方が便利だからです。

mitara42k
質問者

お礼

A案ダメなんですね、頭捻ったつもりが結局浅知恵と言う。 B案はツクールみたいなマップエディタ作ってみようかな、と思ってました。これも手打ちになるのかな。 それを利用して分割したらA案いけるんじゃね! →ダメでした C案が一般的なんですね。可変サイズとか言われるとランダムでマップ生成とかできそうで夢が広がります。 可変サイズとか意味が全然分かっていませんけどね。 ともあれ、丁寧に教えてくださってありがとうございました。

その他の回答 (1)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

DXライブラリそのものに、画像読み込み関数が用意されているため、 上記を利用する限り、静的メモリや動的メモリの区別を行う必要はありませんよ。 >と、A,B,Cの三つを考えたのですが、実際、どれがどのくらいメモリを消費するのか分からないのです。 >実際にC言語で巨大なマップを作ろう! と考えたときに、プログラミング初心者の私がチャレンジするのはどれが妥当でしょうか? メモリ不足で怒られる(エラー発生する)までは、 贅沢にメモリを使用する方法がプログラム記述を単純化できるので楽だと思います。 小細工を考えるのは、性能問題(動作速度やメモリ消費量)が生じからで良いのです!(富豪プログラミング) 富豪的プログラミング http://www.mii.kurume-u.ac.jp/~smoto/lab/Diary/09/0214/0214.html 但し、無駄な処理はしないように… http://satoshi.blogs.com/life/2009/11/rails_programming.html

mitara42k
質問者

お礼

何か物凄い気分が楽になった気がします。 ポインタで処理が軽くなるよ。と言われても、どれだけ軽くなるのかと言う事が全く分かっていませんので、砂粒一つのような小さい事なのか、それとも岩のようなどけなければいけない物なのか、さっぱりだったものですから。 あまり気にせずやってみようと思います。 ありがとうございました。

関連するQ&A

  • 初心者のゲームプログラミング

    初心者なのですがダンジョンRPG的なゲームの作成を考えています。 初めてゲームプログラミングするのでわからないことばかりですが、色々な参考を見ながら独学で出来る範囲で作成したいと思っています。 私の能力としてはHP作成、html、css(基本アドビソフト使用)とphp言語。 プログラミング的な能力はごく簡単な投稿削除掲示板の作成ができる程度のレベルしかありません。 ゲームとなると全く0から作るとしてどの言語がよいのかもわかりません。 構想としてはダンジョンRPG メインの街(固定。自宅のようなもの+道具、武器屋等)からダンジョンへ ダンジョン(エンカウント制) ダンジョンボス撃破 街へ帰還 新たなダンジョンへ といったものを考えています。 色々とまだ詰めなければいけないと思いますが大まかな流れとして上記のものを考えています。 このようなゲームを作る場合どのような言語がプログラミング初心者に適していますか? ご教授お願いします。

  • メモリマップ

    プログラミングC言語のことについてなんですが・・・ メモリマップの利点などが知りたいので教えてください↓↓↓↓↓ 難しい言葉は使わず回答してくれると助かります↓↓↓↓↓

  • ゲームプログラミングを始めるにあたって

    ゲームプログラミングについて学ぼうと思っています。まったくの初心者です。 いくつか不安な点、疑問点があったので質問させていただきました。 ・CやC++が主に使われているらしいので、まずはC言語について学ぼうと思うのですが、C言語はゲーム以外の分野にも使われています。 なので、ただC言語について書籍やサイトで勉強しても、それがゲームのプログラミングに繋がるのかどうかが不安でなりません。 C言語を習得し、ゲームプログラミングに応用するためにはどのように学習するのが良いでしょうか。また、初心者が1からC言語を学ぶのに適している書籍などがありましたら、教えてください。 ・CとC++の違いについて教えていただけると幸いです。私の中の勝手なイメージですが、数学IとIIのような基礎と発展みたいな関係なのでしょうか?

  • プログラミング初心者がゲームを作るには

    最近暇ができたので、前々からやりたいと思っていた簡単なゲーム製作 (テレビテニスのようなもの)をしようと考えています。そこで質問です。 (ちなみに全然プログラミングには触れたことはありません)   1. どの言語を使うとよいのか 2. 一日に2時間くらい費やすとしてどれくらい時間がかかるものなのか 3. ゲーム製作のためにおすすめなHPや本 (どれを答えてくださっても結構です) プログラミング初心者がゲーム製作というのは、少し生意気かもしれませんがよろしくお願いします^^;

  • プログラミング言語 rubyを用いて、

    プログラミング言語 rubyを用いて、 画像処理プログラミングを書こうとしていますが、以下の点が分かりません。 1・メモリの動的確保はどうするの?(C言語でいうmalloc) 2・ファイルから配列に展開するにはどうしたらいいの? 以上が分かればわかるきがするのですが・・ 当方 C言語での画像処理プログラミングはそれなりに経験があるのですが rubyで実現できるのかわからなくて・・

    • ベストアンサー
    • Ruby
  • ゲームプログラミングについて

    始めまして、プログラミング初心者です。 最近「14歳からはじめるC言語わくわくゲームプログラミング教室」と言う本を買ってゲームプログラミングをはじめたんですが、無限ループとProcessMessage関数と言うところでつまずいてしまいました。。。 何度も入力間違いがないか確認したのに、「識別子が見つかりませんでした」とエラーが出ます。 どうすればいいでしょうか?

  • ゲームプログラミングで使うC言語の本

    ゲームプログラマーを目指す高校生です。 一番プログラミングで使うであろうC言語を学びたいと思っています。 ゲームプログラミングで使うC言語はhttp://www.amazon.co.jp/%E6%96%B0%E7%89%88-%E6%98%8E%E8%A7%A3C%E8%A8%80%E8%AA%9E-%E5%85%A5%E9%96%80%E7%B7%A8-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4797327928/ref=cm_cr_pr_product_topような本で基礎から勉強したほうがいいのでしょうか? ちなみにC言語に関してはど素人です

  • ゲームプログラミングは何言語?

    ゲームプログラミングに興味があるのですが、初心者なので全く分かりません。今、PascalとJavaを勉強しています。これからC言語も勉強の予定です。パソコンやプレステのゲームソフトもこのような高水準言語で書かれているのですか?それとも、まったく別のもので書かれているのでしょうか?もしゲームプログラミングをするにあたって、この言語は勉強しておいたほうがいいよというのがありましたら教えてください。

  • ゲームプログラミング学習法

    将来ゲームプログラマーを志望する大学生です。 ゲーム製作を行ってみたいんですが、 何から手をつけていいのかわかりません。 もう少し具体的にいうと、ゲームがどのような仕組みで動いているのかも、もうひとつわかっていません。 そこで、ゲーム製作経験者の方にお聞きしたいのですが、 皆さんは最初にどのようにゲーム製作を始めたでしょうか? 入門書を調べても、なかなか勉強しようと思うものが決定できません。 書籍名などを一言載せて頂くだけでも十分なので、よろしくお願いします。 ちなみに、C, Perlを習得済、Win32はとりあえず勉強済(入門書1冊読破)、C++, DirectXを勉強中です。 そういった言語を利用して、ゲームプログラミングを行いたいです。

  • プログラミングを学ぼうと思っています。

    技術者向けのカテゴリのなか、初心者の質問失礼します。 大学の講義で初心者向けのコンピュータプログラミング講座を受講したいと考えています。 C言語について、javaについて、コンピュータグラフィックスについて、の三つの講座があるのです。 C言語についての講座は受講を決めているのですが、javaとコンピュータグラフィックスのどちらをとるか悩んでいます。 私はプログラミングについては右も左も分からないのですが、プログラミングを最初から学ぶのなら、やはりjavaを取った方が良いでしょうか? また、「社会に出て役に立つか」という面から考えるとコンピュータグラフィックスの方が良い、と言われたのですが、本当にそうなのでしょうか?javaは数年後に古くなる、ということですか? どうかアドバイス・ご意見下さい。