はじプロでゲームを作るときに考えていること

# はじめに
らっしーです。はじめてゲームプログラミング（以下、はじプロ）では、アスレチックやミニゲームを中心にいろいろ制作しています。
この記事では以下のことを書いていきます。

１．どのようなゲームを作るときにも考えていること
２．アスレチックのゲームを作るときに考えていること
３．ミニゲームを作るときに考えていること

::: note warn
この記事は、仕組み解説などの技術的な内容は取り扱いません。
:::
# 1.どのようなゲームを作るときにも考えていること

ゲームは楽しく遊ぶものだと思っているので、必要以上にプレイヤーを苦しめる仕様はできるだけ避けたいと考えています。


::: note 
プレイヤーが任意に選択した場合（例：HARDモードを選ぶ）は、理不尽にならないように注意すれば、プレイヤーを苦しめる仕様は、難易度の上げ方の１つとして使えます。
:::

### 1-1 操作説明をゲーム画面に表示する
はじプロのゲームは、操作方法がコントローラーのボタンやスティック入力だけでなく、コントローラーを傾けたり振ったりする入力、画面タッチする（マウスでクリックする）入力をすることができます。操作説明が書かれていないと、遊ぶ人は操作方法を手探りする必要が出てきます。
操作方法がわからない状態でゲームオーバーになってしまったらそのゲームの面白さを伝えることができません。なので操作方法は**見やすいところに、分かりやすく**書くと良いと考えています。

:::note info
文字（言葉つきモノノードン）で操作方法を書く方法が手軽ですが、絵（テクスチャノードンで描く）を使って操作方法を説明するとより分かりやすいと思います。
:::

#### 文字や絵を使って操作説明をする

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/bfec00aa-5fe1-530a-a684-bdeb23197a93.jpeg">
<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/bf33db13-e107-4413-cdbb-48c8dd64e9d5.jpeg">
<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/0e201c6c-684c-1964-1f02-f1c1efe6af16.jpeg">


### 1-2 基本操作を複雑にしない
ゲームをクリアするために必要な操作の種類は、少ないほうがより親切だと考えています。
操作するボタンが少なければ、操作を覚えることに時間をかけることなく、ゲームを楽しむことができます。
逆に操作するボタンが多いと、操作を覚えられなかったり、忘れてしまったりしてしまう可能性があります。

::: note
操作する**ボタンの種類が多い場合**は、ゲームが始まったら全部出すよりも、**使う場面が来たら操作を出す**または、**いつでも操作方法を見ることができるようにする**など、一度に全部ではなく、覚えるタイミングをずらすようにすると、途中で操作方法を忘れて困るということを防ぎやすくなります。
:::
#### 使う場面が来たら操作を出す

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/838a95f5-8bd6-e905-9bbd-5947b7eb68ee.jpeg">

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/f5251ed6-bcf3-227d-234e-c222f29d65df.jpeg">

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/a14fb75c-1aa3-22b2-6f39-da5ab87c581d.jpeg">

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/d9cff006-346d-b2ac-91df-7c52a664d24d.jpeg">

#### いつでも操作方法を見ることができる

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/052e3ab5-e924-7fc9-baa5-d4864b566b90.jpeg">

### 1-3 初めて遊ぶ人にとって適切な難易度か
難易度の適切に調整をすることは難しいです。ゲームが簡単すぎると面白さが減ってしまう可能性もありますし、難しすぎるとクリアに到達できずに諦めてしまうかもしれません。
私は、ゲームの難易度が適切かどうかを考えるとき、以下の条件を満たすようにしています。

::: note
・制作者が、裏技などを使用せずにゲームをクリアすることができる（クリアチェック）
・制作者が、より厳しい条件でゲームをクリアすることができる（例：ノーダメージでクリア・最高ランクでクリアなど）
:::
**制作者がクリアできないものは、基本的に他のプレイヤーもクリアできません。** そのため、ゲームをクリアできることは必ず確認します。また、**制作者がギリギリクリアできる難易度は、初めて遊ぶ人に向けた難易度として適切とは考えにくい**です。そのため、制作者が余裕を持ってクリアできることを確かめるために、より厳しい条件でクリアできるかどうかも確認します。

::: note
より厳しい条件を裏技などで適用できるようにすると、クリアした人向けの高難易度モードとして使うことができます。
:::

# 2.アスレチックのゲームを作るときに考えていること

### 2-1　理不尽な仕掛けは作らない
ジャンプした瞬間に爆発してミスになった、穴を飛び越えようとしたら、突然ブロックが出現して落下してミスになった、など遊ぶ人にとって納得できないような仕掛けは作らないようにしています。

##### 穴を飛び越えようとしたら、突然ブロックが出現して落下ミスになる仕掛け
<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/6ac61ebb-80cc-e8ee-ac22-b5e537cd20f6.jpeg">
<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/7e2f240f-7dd2-79dc-7e45-3b35f1ff550b.jpeg">
<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/cb0f3a4f-7756-71d4-8559-8d3a57caa651.jpeg">


::: note warn
理不尽な仕掛けを意図的に多用した「騙しコース・トロールコース」を作る場合も、**ミスになる条件に確率（運）を含むものは避ける**ほうが良いです。確率要素を入れる場合は、**プレイヤーの実力があれば必ず突破できる**ようにする必要があります。（※運も実力のうちとは言いますが、ここでは運は実力に含まれません。）
:::


::: note
**一度騙されたら、次は同じミスをせずに先に進めるようにする**くらいの難易度にすると、過剰な理不尽になることを防げます。
次の項目の中間ポイントと合わせて、先に進みやすくすると楽しい騙しコースを作りやすくなります。
:::

### 2-2　中間ポイントを用意する
途中でミスをしたら最初からやり直しになる仕様だと、途中の難しいギミックで何度もミスをした場合に、すでに攻略した場所を何度も繰り返し進むことになります。繰り返す分、プレイ時間も伸びます。長く遊んでいるのにも関わらずゴールにたどり着けないと、プレイヤーの心が折れてしまいます（少なくとも私は心が折れます）。
プレイヤーの心が折れてしまう前にクリアできるように、**難しいところの前後に中間ポイントを用意**します。

::: note
・難しいところの前に中間ポイントを用意すると、難しいところに何度も挑戦しやすくなります。
・難しいところの後に中間ポイントを用意すると、その後のギミックでミスをしても、難しいところをやり直しせずに進めます。
:::
# 3．ミニゲームを作るときに考えていること
私は、ミニゲームの中でもスコアアタックができるものを作ることが多いので、スコア表示に関することを書いていきます。
### 3-1　必ずスコアがわかるリザルト画面を表示する
終了条件が満たされたとき（ゴールにたどり着いた・残り時間が無くなった・HPが無くなったなど）は、クリア条件を満たしているかどうかにかかわらず、リザルト画面を表示します。

::: note 
スコアに関わる項目はリザルト画面に表示すると、スコアの伸ばす方法のヒントになります。
:::
<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/1e56e01d-5dea-fdb4-e76f-6e93d5d4f6c6.jpeg">

<img width="333" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3034983/05e31ed2-e6de-5d28-3bf5-6ee41e311667.jpeg">

### 3-2　スコアがある場合はランク表示をする
ランク表示をすることで、取ったスコアが良いのか悪いのかを知ることができます。
ゲームや作者によって意味合いやボーダーは様々ですが、私の作品はDからSSSの7段階評価が多いです。

下の表に私の作品でのランクや意味合い、「制作者の記録が100」のときのボーダーの目安をまとめました。
    | ランク |　だいたいの意味合い・基準　　|ボーダーの目安|
|:-:|:-----------------|:------:|
| D | クリア失敗。やり直そう。 |0|
| C | クリアラインに惜しくも届かず  |15|
| B | ギリギリクリア  |30|
| A | 普通のクリア |50|
| S | 余裕を持ったクリア  |70|
| SS | 攻略法を知った人が取れるスコア  |80|
| SSS  | 制作者がギリギリ取れる難しさ |95|

::: note
この表でいう、CランクからAランクのボーダーの目安は、**制作者の想定より低めに設定**したほうが良いと感じています。制作者は慣れているので攻略法を知っている状態ですが、初めて遊ぶ人は攻略法を知らない状態なので、スコアが低くなりがちです。
:::

# さいごに
いかがだったでしょうか、私は記事を書き慣れていないので、読みづらい部分があったかもしれません。
私は、**分かりやすさと親切設計は大切**だと考えているので、この記事に書いた手法をよく使います。ですが、この手法を使うことが正しいとは限りませんし、使わずに楽しいゲームを作ることができる人もいるかもしれません。要するに、「**遊ぶ人が楽しいと思えればOK**」だと思っています。


最後まで読んでいただきありがとうございました！