タイトル
ロールプレイングゲームプログラミング
著者
坂本 千尋 (著)
出版社
ソフトバンクパブリッシング
Amazonで購入する

最近のゲームは個人のレベルで作るには量も質も大きすぎて手の届かないところまで言ってしまった感じがある。一昔前の、「カルドセプト」などは、僕の中で大ヒットなゲームでした。

そんなシミュレーションRPGや、斜め上から見下ろす感じのテーブルRPG(?)みたいなゲームを作れるようになっちゃうのが本書です。「いまさら自作のRPGなんてなぁ・・・」って人も、本書一冊で、自分の好きなRPGゲームが作れちゃうなんてすげーと思って、本書を読んでみたらどうですか?

特徴

本書は、開発環境にVisual C++6.0 を使って、自分でシミュレーションRPGを作れるようになってしまう本です。Windowsプログラミングが始めてという人にも、丁寧な解説がついているので恐れることはありません。初めてRPGを作る人にはRPGって、こうやってやるんだーっという驚きが出るにちがいありません。

ゲームシステムの設計からウィンドウ表示のやり方、マップ・キャラクターの書き方まで本書だけで一通りのシミュレーションRPGゲームはつくれてしまいます。サンプルに出来上がったゲームがついているのもうれしいです。プログラミング中にハマった場合に、サンプルを見て確認したり、息抜きにやってみたりできます。

本格的にゲーム作りをしたい人も、初めてゲーム作りを体験する人も、最初は本書からやってみるといいと思います。ゲーム作りのノウハウ、キャラクターやマップの作り方まで、一通りのことを覚えることができます。

ノウハウかじり

CPUの行動ルーチンの考え方

基本的にCPUが行動を判別するときに使う考え方は「数値化」です。数値が高いか低いかを選択するようにします。たまに、ランダムな行動をとらせたり、少し低い数値を選んだりすることで、CPUの強さを調節し、ゲームバランスを整えます。

ゲームルールを作るうえで考慮する点として、「ルール上でプレイヤーを不利に作らない」ということがあります。例えば、数値化した場合に端数が出た場合、プレイヤーに不利にならない用にします。(端数切捨てなど)そうしないと、プレイヤーはいかさまをされている印象を受けてしまいます。

ビットマップの概要

Windowsが扱うビットマップには大きく分けて3つ種類があります。

デバイス依存ビットマップ(DDB)
HBITMAP型のハンドルで扱われ、CreateBitmapなどの関数で作られる。
デバイスに依存しないビットマップ(DIB)
メモリ上のフォーマットを規定したもので、作成用のAPIは用意されていない。
両方の特徴を持ったビットマップ(DIBSection)
CreateDIBSectionで作られる、両方の特徴を持ったもの。

DIBSectionはWindowsのリソースを消費するため、表示を行わない場合は使用しないほうが良いでしょう。特別な理由がない限り、DIBを利用するようにします。DDBは、HBITMAP型のハンドルが必要な場合(プログラムの都合で必要な場合)に使います。

DIBの構造仕様は、Windowsに定められていますが、本書には実装サンプルが存在します。

移動の考え方

移動は、一歩の移動を考えて、それの応用になります。例えば、二歩の移動は、1歩の処理 + 1歩の処理 になります。一般式で書くと 1歩の処理 + (n-1)歩の処理 = n歩の処理 になります。再起処理を使えば、移動処理を簡単に書けるということです。

マップデータ

マップは、設定ファイルに構造を書いておき、それを解析する方法が一般的です。起伏のあるマップを表現したい場合は、設定ファイルに数値化しておき、それを解析するという手法がとられます。

戦闘の考え方

戦闘シーンでのCPUの考え方としては、そのマップのクリア条件を満たすように行動させるのがポイントです。クリア条件には、例えばキャラクターの全滅などとします。複雑なルール、例えば属性の効果などは、仮想計算を行い一番効果的な手段を選択するようにします。

参考

  • ドット絵のキャラクタを、本格的に書きたいと思ったら、この本が絶対的におすすめです。

  • アドベンチャーゲームを作りたくなったら、本書をおすすめ!