折角の夏休み、やっぱり何かプログラミングしようと思いまして
現在ゲームプログラミング中。
ゲームプログラミングは毎回チャレンジしてはアルゴリズムで手詰まりして諦めていたのですが、今回はやり遂げようと思います。
少なくとも前回諦めたB3の時よりは数段実力上がってるはずだし・・・!
で、作るゲームはというとRPG
というか、アイデアが無いので自分の最も好きなフリーゲーム、シルフェイド幻想譚のリエンジニアリングです。
著作権とかで残念ながら完成しても公開はできませんけど、実力はつくと思っています。
素材や仕様は半分あるような物なのでその点は凄く良いのですが、やっぱりプログラムの構造とかは凄く勉強になるし難しい。
現在、main処理から各シーンに該当する関数を読んでゲームを進める構造を取っているのですが、メモリ管理とかが結構難しいのではないかと思ったり。
例えば以下のような階層関係(関数の呼び出し順?)があったとして
main()
→StartSceneOpening()
→→StartSceneIntroduction() or StartSceneContinue()
これ、どんどん深い所に行けばいくほどメモリ圧迫するよなあ・・・。
しかもStartSceneOpening()から「はじめから」「つづきから」を選ぶとして・・・
その関数に戻れるようにする必要あるわけ?みたいな。
なのでまだこうした方がいいかもしれない
main()
→selectMode = StartSceneOpening()
→if(selectMode == INTRODUCTION)
→→StartSceneIntroducation()
略
でもこれも美しくない気がする・・・。どうすればいいんだろ。とりあえずがむしゃらに作ってるけど、改善したいなー。
あとSceneごとに関数作って処理進めてる訳だけど、音楽だとか画像をいつメモリに確保していつ開放するかがとても分からない。
別に大ざっぱでもいいのかもしれない。リソースに厳しい制約あるわけじゃないし。
とりあえずメモリリークだけ気を付けて後の管理はゲームが完成してから見てみるのもいいかもしれない。
もしかしたらメモリに画像や音楽を確保するコストは物凄く小さくて、いちいちSceneごとに解放して行くほうがいいのかもしれないけど。
とにかく凄く難しいです。。。
今これDXライブラリっていうものを使ってやってるわけですが、もしDirectXだったらと思うと・・・・
うん、とりあえずDXライブラリで完成目指そう。
コメントを残す