見出し画像

【初心者講座】本格的なゲームの作り方 ~準備編~


この記事の対象者

今回は、ゲーム制作の""までしか知らない人向けの作り方講座だ

具体的には、RPGツクールやWolfRPGエディターなどのツールで、
プログラミングをせずにゲーム作りをしていた人ゲーム作りをしたことない人向けの講座になる

例で挙げたゲーム制作ツールは、
厳密に言うと独自言語によるプログラミング手法があるが、それによるプログラミングが可能な人はこの記事は見なくても本格的なゲーム作りができると思うので、読み飛ばして問題ない

因みに、最後の記事では横スクロールの自分で作成した絵を使用したゲームを作れるところまでまとめようと思うので、このマガジンを最後まで見た方は自分なりの横スクロールゲームが作れるようになるだろう

メリット

多分、この記事を見てるということは理解しているだろう。

それは、、、ゲームを作るうえで自分が思ったように、感じたように、コンピューターの限界まで自由にゲームが作ることができ、多種多様な手段の表現が可能になるということ

逆に、プログラミングを行わないゲーム制作をしていると、どうしても制限が多く、自分の理想のゲームが作れないということになる

勿論、先ほど述べた独自言語を使ったプログラミングによって、制限のある中でも突出した作品を作ることは可能だ。
ただ、それは時間の無駄に他ならない
制限を解除するための処理を作成しないといけないからだ

これを機に、ゲーム制作での表現方法の壁をぶち破り、表現の自由を感じて欲しい
あなただけの作品を、制作する手助けができたら光栄だ

ゲームもアートや映画と同じなのだから…

ゲームを作る上での前提知識

それは、"アルゴリズム""データ構造"
正しくプログラムを学ぼうと思ったら、この二つは不可欠になる
プログラム言語が異なっても、基本的にはこれらは変わることのない構成要素となる。
今回は、初心者向けということなので、深掘った話はしないがなんとなく"こんなもの"というニュアンスだけお伝えする

アルゴリズムとは?

が定まっている「計算可能」問題に対して、そのを正しく求める手続きをさす。あるいはそれを形式的に表現したもの。

wiki

要約すると、料理でいう"手順"だ
カレーの作り方と同義だと思ってくれていい

データ構造とは?

コンピュータプログラミングでの、データの集まりの形式化された構成である。格納された各データの参照や修正といった管理を容易にするための構成である。

wiki

これも料理で例えるが、
アルゴリズムが"手順"であったように、
これはその手順の中で、必要な"調理法"であったり"調理素材"だ
カレーだと"じゃがいも","にんじん","たまねぎ","スパイス","野菜の切り方","煮込み方"等になる。

調理法や調理素材によっては、カレーを作るまでの過程が早くなったり、おいしくなったりすると思う
そういったものだと思ってくれて構わない

初めてプログラミングする上では、そこまで重要なものではないのでこの程度に抑えて先に進む

実際にプログラムを組む

環境構築

一先ず、プログラムをする上で必要な環境構築をしていく

プログラミングする上で、一番億劫になる部分だと思うが、
今回は難しいことはしないので、以下に簡単な手順を記載する

  1. VisualStudioをインストール
    ダウンロードサイト からダウンロードしてインストールしてください
    バージョンはコンソールで動かすので何でもよいですが、なるべく最新を使いましょう。
    古いバージョンを使う意味はないですからね

  2. 新しいプロジェクトの作成

3.C#のコンソールアプリを選択

4.適当に名前を設定し、次へ→作成

以上

コードを書いてみる

どのプログラマーも通ったであろう"HelloWorld"を試して見る

visualstudio2022で上記手順を行った場合、以下のような画面になっているので、そのままタブの「デバッグ」→「デバッグの開始」を押下する

正しく動いたら以下の画面になります

適当に "Hello, World!!" の部分を変えてみよう
デバッグ開始をした後の画面でも変えた文字になっていると思う
Console.WriteLine("XXXXXXXXXXXX");
この XXXXXXXXXXXX に当てはまる部分に文字を当てはめるとコンソールコン画面に文字を出力できることがわかりましたね

次は、データ構造を少し理解するために以下のように書いてみよう

//Console.WriteLine("Hello, World!");


var text = "あいうえお";
var sum = 0;

Console.WriteLine(text);

for (var i = 0; i < 10; i++)
{
    if (sum >= 10)
    {
        Console.WriteLine($"i :{i}, sum:{sum} 10超えた");
    }
    else
    {
        Console.WriteLine($"i :{i}, sum:{sum}");
    }

    sum += i;
}

この状態でデバッグ開始をしてみると…
以下のようになると思う

ここで、思うことはいくつかあると思う
"var" "if" "for" ";" "{}"
はなにやつ!ということだろう

以下で簡単に解説する

var

これは"入れ物"の一つで、その中でもC#では"型推論"と言われているものである
"="の右側の値に合わせて自動的に箱の種類を合わせてくれる便利なものだ
買い物を会計する際に、定員さんがお客さんの買い物の大きさに合わせて最適な入れ物を用意してくれるようなイメージで大丈夫である
一旦、C#で入れ物を作るときの宣言は迷わずvarにしてしまって大丈夫だ

if

英語そのままだが、"条件"だ
if の括弧内に条件分を記載することで処理を分岐することが可能だ

for

これは、条件指定しつつループ処理が行える代物という認識で大丈夫だ
ちなみに括弧内の意味は…

;(セミコロン)

C#では1処理の終端には必要な命名規則と思ってくれて大丈夫だ

{}(ブロック)

ifやforで使われていると思うが、そのブロック内で宣言した変数や処理はそのブロック内でしか使えないローカルのものという明示的な範囲指定をするC#コーディングルールだ

ここまでできたら色々と自分なりにコードを弄ってみてほしい
弄って動作を確認することで書いている処理の意味が分かってくると思う

おわりに

これであなたも生粋のプログラマーと名乗ってよいでしょう
プログラミングの中で言語毎の書き方の理解と準備が特に大変ですからね

ただ、まだ文字を出しただけに過ぎないので、
次の記事では実際にゲームを作っていきます
アルゴリズムやデータ構造を覚えるうえでも最適な、テトリスの作り方をまとめます


次の記事を見る前に、自分なりにテトリスを作ってみるのもいいと思う
前述した要素だけで作ろうと思えば作れるからだ

ここまで見てくださってありがとうございます
フォロー いいね をいただけたら励みになります

※このnoteは文化庁のルールに基づいて記述されています

この記事が気に入ったらサポートをしてみませんか?