C++でゲームを作ってみようー基礎編(1/5)


対象者:わからない用語が出て来たら自分で調べられる人、ちょっとプログラミングできる人

目的:記事を元に色んなゲームを作れるようになってもらう

参考文献:ゲームプログラマになる前に覚えておきたい技術

 

さて、みなさんどんなゲームを作ってみたいですか?
・・・ゼル伝とかモンハンとか東方とか?
まぁ普通そうですよねー
でもここではそういう大きなものを作らないのでつまらないかもしれないですね

 

ここでは、C++で「倉庫番」っていうゲームをCUIで再現してみようと思います
このゲームを作ることで、大まかにゲームを作る方法を学びます
これを簡単に作れたら大きなものもどうやって作っていけばいいかわかる、かもしれません

 

作るのにライブラリ等は一切要りません、C++コンパイルできれば問題なし
Macならデフォルトでコンパイルできると思います、Windowsはちょっとわからん
gccとかg++とかで調べてください

 

 

では、本題に入りましょう

 


仕様書を書く

仕様書と言っても、ここではそんな大層なものを書きません
やることはただ1つ、「作りたいゲームはどんなものかを文章にする」です
自身の想像を文章化できればプログラムは半分以上できたものになります
では、あなた自身の想像を文章化していきましょう

 

まずは大枠、「それはどんなジャンルですか」
割と適当でいいです、あとでいつでも変更できるので

  • RPGを作る!!
  • STG作る!!!
  • RPGSTGかつシミュレーションな死にゲー作る!!!!!

とかでしょうか
ちなみに倉庫番パズルゲームですね

 

その次に、「どういう風なゲームにしたいか」

  • ゼル伝 :全裸の勇者が広い世界を自由に駆け回る
  • モンハン:強い武器でモンスターに立ち向かって慢心して死ぬと闘う
  • 東方  :かわいい女の子が負けるとボロい服になる同士が煽り合いつつ弾幕を繰り広げる

とかですかね
倉庫番は・・・荷物を所定の位置に置くただし簡単に行かせはしない
でしょうか

打消し線部分はただの遊び心です

 


ここからはもうちょっと詳しい仕様を決めていきます

「ゲームに最低限必要なものは何か」

  • ゼル伝 :勇者、広い世界・・・
  • モンハン:プレイヤー、モンスター、世界、武器・・・
  • 東方  :女の子、プレイヤー、敵キャラ、弾・・・
  • 倉庫番 :プレイヤー、荷物、ゴール・・・

こんな感じですかね、ゲームを動かしているものは何か、それがないとゲームは成り立たないかなどを考えてみます
・・・因みに少なめに書きました、増えたり減ったりするもんです


最後に、難しいかもしれないですが「どんな場面、画面があるか」

  • ゼル伝 :タイトル、フィールド、ダンジョン、ロード・・・
  • モンハン:タイトル、ロード、村、フィールド・・・
  • 東方  :タイトル、シューティング画面、エンディング・・・
  • 倉庫番 :タイトル、ゲーム画面、エンディング

にしておきます
主に、コントローラとかの操作が変わりそうなものを書いておきます
〇ボタンを押すとこの場面では選択肢の決定だがここでは攻撃だな・・・ってなったら別々の場面にします


では、倉庫番を元に仕様書をまとめます

  • ジャンル :パズルゲーム(たぶんね)
  • どういう風:荷物を所定の位置に置くただし簡単に行かせはしない
  • 必要なもの:プレイヤー、荷物、ゴール・・・
  • ある場面 :タイトル、ゲーム画面、エンディング


この時点で、どの場面でどのものが動くかってのは想像できますか?
例えば・・・タイトルでは、はじめからとかを選ぶ選択肢は動きますが、プレイヤーは動きませんね
あと、どのキーで何がどう動くかってのとか・・・十字キー上を押したらプレイヤーが上に動くとか・・・
まぁその辺のことが想像できてると手早くプログラムを書けていきます、想像できなくても問題ないです

さて、仕様書はできあがりました
といっても、主に自身の思考の整理をやったにすぎませんが
作ってる最中になんか思いついたら仕様書の最後の方にメモとして残しておくといいかも

一旦区切ります
続きは雑にプログラムを書いていきます