見出し画像

ゲーム作りのハードルはそんなに高くない


はじめに

本記事は、FUN Advent Calendar 2023 Part 2 の8日目の記事になります。
昨日は、吾妻ちとせさんの「ゲーム素材としてドット絵を描いてみよう!」でした。彼とは何度かゲームを一緒に制作したことがあるのですが、こうやって制作工程を文章で見ると、緻密にドット絵が作られているのだなあと感じました。

本文には関係ないですが、本日12/8は公立はこだて未来大学の2024年度学校推薦型選抜の合格発表日らしいですね。合格者の方、おめでとうございます。
私は2020年度の学校推薦型選抜の合格者で、ちょうど4年前、担任の先生のパソコンで合否をドキドキしながら確認していたことでしょう。
そんな #春から未来大 の皆さんにも、ためになる情報かはわかりませんが、ぜひ、一読していただけると嬉しいです。
というかあれからもう4年たっているのありえないもうおじさんじゃん

自己紹介

初めましての方は初めまして、そうでない方はこんにちは、千渡真君(@sento_shinkun)と申します。
学部4年の情報システムコース所属で、卒業研究では「包丁さばきの熟達支援デバイスの開発」について研究を行っています。
研究以外では、FUGU(@fugutwi)と卓球サークル(@FUNtakkyu)に所属して、ゲーム制作やら卓球やら未来祭への参加(ゲーム展示など)やら色々やっています。
また、プログラミング系の授業のTA(前期:情報表現入門・後期:プログラミング基礎)も行っていました。

なぜか今年の学祭の展示の様子を撮っていなかったので過去に展示していた時の画像

今回の記事では、私が趣味でたまに行う「ゲーム作り」についての内容となっています。ぜひお楽しみください。

「ゲーム作りのハードル」とは

さて、皆さんは、このようなことを考えたことはありますか?

「このゲーム、自分だったらもっと面白くできる!!」
「自分だけの最高のゲームを作りたい!!」

どうです?思ったことあるんじゃないですか?
このような皆さんの欲を満たす行動こそ、ゲーム制作です。自分のやりたいゲームを、自分でデザインし、自分で作り上げる。そうすることで、
完璧で究極のゲームを作ることができるのです。
しかし、未来大では、ゲーム制作活動があまり活発でないように感じます。もちろん、未来大は情報学をメインに取り扱う大学なので、ゲーム制作者が少なくてもおかしくはない話ではあります。それにしても、かなりつよつよな技術者が未来大には集まっているのに、ゲーム制作者が少ないのは、少々もったいないという気持ちになります…

そこで、どうして未来大でゲーム制作活動が盛んでないのかなあと友人と考えてみたところ、2つの理由があると考えました。

1.ゲーム制作に触れる機会が少ない
未来大でゲーム制作を主として取り扱う授業は少ないです。
(1年前期:情報表現入門、3年後期:インタラクティブシステムくらい?他にもあったらごめんなさい。)
そのため、ゲーム制作を最初に行おうと思うと、自主的に情報を1から仕入れる必要があります。
このことがゲーム作りをするきっかけを作りにくくなってしまう。

2.作ろうとするゲームの規模が大きい
ゲームを作ろうとするとき、人によっては何らかの名作ゲームみたいなものを作りたい!と思うはず。例えば、モンハンやドラクエ、FF、バイオハザード等々…
しかし、このような名作を知っているからこそ、自分の作るものと、世に出ているゲームとの比較を行ってしまい、ゲーム作りに手が出しにくくなってしまう。

この2つの要因がゲーム作りのハードルとして存在し、ゲームを作ろうとする手を止めてしまっているわけです。

…やはりもったいない!!!
せっかくゲーム制作ができる環境があるのに、興味があるというところで止まってしまうのはもったいない気がする!!!

そう、実は、ゲームって皆さんの持つノートパソコン、それも、グラボを積んでいないパソコンでも作ることできてしまうんです!!
つまり、ゲーム作りは、思っているよりも気軽にできてしまうのです!!
しかし、いきなりそんなこと言われても説得力がないと思うでしょう。

ゲームを作ってみよう!!

というわけで、前置きが長くなってしまいましたが、物は試しということで、ゲーム作りの工程を、実際にゲームを作りながら紹介しようと思います。

そうそう、ここで突然ではありますが、本記事はコラボ記事となっています。

7日に投稿されました、吾妻ちとせ君のアドカレ記事「ゲーム素材としてドット絵を描いてみよう!」とのコラボ記事です。吾妻君曰く、未来大アドカレでコラボ記事は史上初らしいです。
歴史に名を残してるみたいで、なんだかうれしいですね。
(ちなみにゲーム作りのハードルの話でちょこっと出てきた友人は吾妻君です。)

話のきっかけは前日の吾妻君のアドカレ記事の通りです。
こちらこそ、お忙しい中、素材の作成ありがとうございました。
吾妻君作の素材も後々出てくるので、まだ読んでいない方は、吾妻君の記事を先にお読みになると、本記事を200%楽しめるかと思います。

それでは、説明をどうぞ。

制作工程

ゲーム制作は主に、企画、プロトタイプ制作、実装・テストの3つの工程に分かれます。

企画

文字通り、ゲームの内容に関して企画を行います。ゲームのタイトルやジャンル、コンセプトなど、ここである程度ゲームの軸を決めておきます。この作業を行っておかないと、実装を行っている際に「あれ?これってなんのゲームを作ってるんだっけ?」と迷走まっしぐらです。

今回は吾妻君と簡単にミーティングを行い、ゲーム案を固めていきました。

吾妻ちとせ君との打ち合わせメモ

今回は、アドカレの記事に載せるゲームなので、何かしらカレンダーに関連するゲームを作りたいということ、そして多くの人が簡単に遊べるゲームに仕上げたいということをもとに打ち合わせを行い、その結果、「障害物を避けながらカレンダーを破って暦を進めていく、2D横スクロールランゲーム」というコンセプトを決定しました。

プロトタイプ制作

ここでは、ゲームの根幹となる機能を制作します。
今回だと、プレイヤー、ステージ、カレンダー、障害物の4種類です。これらを大まかに作ってみて、技術策定や、そもそもゲームとして成り立っているかを確かめます。

今回制作に使用するゲームエンジンについてはUnityを使用します。ここで、ゲームエンジンとは、ゲームを制作する際に使用する開発環境のことです。
そして、Unityはゲームエンジンの1つで、ゲーム開発はもちろん、映像作品アプリケーション開発、最近だとVR作品内のワールド開発にも用いられています。

Unityを選択した理由については、単に私が使い慣れているというのもありますが、公式のリファレンスやネットからの情報を拾いやすいことや低スペックのパソコンでもそれなりに動くことも選択理由にあります。

ちなみに私のパソコンも推奨機級のお世辞にも強いとは言えないパソコンですが、(なんとか)動いているので、デスクトップやゲーミングノートなどを持ってない方でもUnityであれば気軽にゲーム開発できるのではないかと思います。

では、Unityを使ったプロトタイプ制作を解説していきます。
工程としては

1.オブジェクトを置く
2.動かすためのプログラムを書く
3.オブジェクトに必要なプログラム類をアタッチ(コードをオブジェクトに
 紐づけること)する

4.ゲームを動かしてバグが起こっていないか確かめる。ここでバグが起こっ
 ていた場合はプログラムを修正して再度確認

となります。
これらの工程をもとに、プレイヤーのプロトタイプ制作を解説します。

Unityを開いたときの初期画面。左上が「Sceceウィンドウ」、左下が「Gameウィンドウ」。

上の画像がUnityを開いたときの初期画面です。今回の説明で主に使うのは左にある2画面で、左上が「Sceneビュー」、オブジェクトを配置したり、位置を調整する際に主に使用します。また、左下が「Gameビュー」、実際のゲームになった際の動きを見せてくれる画面で、作成した機能のデバックをする際に使用します。

では、早速プレイヤーとなるブロックを配置します。

真ん中の「Hierarchyウィンドウ」を右クリックし、
2D Object → Sprite → Squareを選択すると…
こんな感じで四角形が表示される!

と、こんな感じで四角形を配置することができました。
同じように足場を作るために、四角形を配置して、位置や大きさを調整すれば…

足場完成!

足場を作ることができました!!
ではここから、プレイヤーにジャンプの機能を付与するためにプログラムを書いていきます。
プログラムの内容に関しては、語りだすともう一記事書けてしまうほど膨大になりそうなので、説明は割愛します。気になる方、大変申し訳ありません…(もし時間があれば中身のことも書くかも…)
ここで、スクリプトは「Unity内で作成したオブジェクトに対する指示書」、プログラムは「スクリプト内に記入するコードのこと」とします。

オブジェクトと同じく、「Projectウィンドウ」で
Create → C#Scriptを選択すると、スクリプトが作成できる
作成したスクリプトにプログラムを書いていく。画像は作成したプログラムの一部分
(ゲーム完成後にスクショを撮ったので関係ないものも含まれています)


写真のようにプログラムを書いたら、保存をして、スクリプトをプレイヤーのブロックにドラック&ドロップでアタッチ(紐づけ)します。
そして、画面上部の再生ボタンを押すと…

ブロックが動いた!!

ブロックを動かすことができました!!!
このgifではブロックが動いていますが、後ほどジャンプだけに修正します。この調子で他の機能も作っていきます!!

床とスコアアイテム(青のやつ)と障害物(赤のやつ)を配置して…
ブロックを動かすプログラムなどを書いてそれらをアタッチして…
(プログラムの一部分、コメントがないのは突貫工事だったため。ユルシテ…)
プロトタイプ完成!!

これでゲームの元となる機能が完成しました!
この時点で、まだ粗削りではありますが、初期のオブジェクトを置いただけの状態から少しはゲームっぽくなったと思います。
プロトタイプの時点でひとまずゲーム性っぽいものが生まれてそうなので、このまま実装を続けてさらにゲームの内容を発展させます。

実装・テスト

プロトタイプをもとに、本格的に機能の実装や素材の組み込みを行っていきます。
この工程も、プロトタイプ制作と同様にプログラムを書いてオブジェクトにアタッチ、その後、実際に動かしてバグが発生していないかを確認という流れで進めていきます。こっちは本実装なので、HPやスコア、タイトルなどのゲーム要素のある機能を制作をメインに行います。

経過日数(スコア)を表示してカレンダー(青のやつ)にあたると
経過日数が増えるようにしたり…
プレイヤーにHPを追加して敵(赤のやつ)に当たるとHPが減る仕組みと
ゲームオーバーとなるようにしたり…

等々、色々機能を詰め込んでいって…

ゲームほぼ完成!!

ゲームの機能のほぼ全てを実装できました!!
ここで、機能同士が干渉して変な挙動をすることがたまにあるので、ゲームにバグが無いか簡単にテストを行い、もし何かあれば修正を行います。

さあここまで来たらラストスパート!!
ゲームの見た目と印象を決める、画像素材とBGM、SEを入れます。
(私的には、音楽や画像を入れていくところが一番好きなところです。段々ゲームっぽくなっていっていいんですよ…!)

というわけで…

受け取った画像をUnityにインポートした画像、圧巻です

満を持して、吾妻ちとせ君が描いたドット絵素材の登場です!
今回は、プレイヤーキャラ、背景、障害物などを作成していただきました。改めて、ありがとうございます。
素材作成の様子は、ぜひ吾妻ちとせ君の記事をご覧ください。
というわけで作っていきます。

頂いた画像でプレイヤーの走るアニメーションを作成したり…
背景をずっとスクロールできるようにしてより走っている感を出したり…
HPや障害物、スコアアイテムの見た目を差し替えたり…


このようなgifのような作業に加え、BGM、SEを再生できるスクリプトを作成したり、シーン遷移、フェードアウトなどの演出を入れてゲームをさらにリッチにしていきます。
こうした作業を繰り返していって…

ゲーム完成!!

ゲーム完成です!!
こうして完成したゲームがこちらになります!!

突貫工事で作ったものなので、バグなどあるかもしれませんが、せっかく作ったゲームなので、ぜひ遊んで頂けると嬉しいです!!
上のリンクから遊ぶことができます!!

ちなみに制作日数に関してですが、進捗1回目を投稿したのが12/1なので、だいたい1週間弱で作った計算になりますね。

つまり、冒頭にも話した通り、私たちは気軽にゲームを作ることができるのです…!!しかも1週間弱で…!!!
(というのは半分冗談で、本来はもう少し時間をかけて作ります)

終わりに

本記事では、ゲーム作りのハードルの話をもとに、ゲームの作り方などをお話しました。
ここまで長々とお話してきましたが、伝えたいことはただ一つ、
ゲームはめちゃくちゃ気軽にできます!!!
もしゲーム作りに興味があるのであれば、今からでもUnityに触れてみることをお勧めします。というか触れてみましょう!!

ちなみに今回私は、ほぼオリジナルで開発を行い、わからない部分を適宜調べるという方法で行っていましたが、もし「今からゲーム開発をしたい!!」と言う方は、Unity公式や有志の方が作成したチュートリアルを利用してみるのがおすすめです。チュートリアルでは、Unityの基礎操作やよく使う機能の解説などを一通り行ってくれるので、初めてUnityを触る人にはうってつけというわけなのです。

また、Unityを触っていて、「プログラムに出たエラー内容がよくわからない」、「一緒にUnityでゲームを作る仲間が欲しい!」、「作ったゲームに関するアドバイスが欲しい!!」という方がいるかもしれません。

そんな方に朗報です!実は未来大には、FUGU(Fun Game Unity)というゲーム制作サークルがあります!

読んで字のごとく、ゲーム制作を行うサークルで、ゲーム制作についての知識を共有したり、作ったゲームについてのアドバイスをしたり、一緒にゲームを作るメンバーの募集を行うことができます。
私や素材作成を行った吾妻ちとせ君も所属していて、私の場合は作ったゲームについてのアドバイスを頂いたり、今回のようにメンバー募集を行ったり、学校祭やサークル勧誘の際にゲーム展示を行ったりなど、様々な活動をしました!!ゲーム作りに興味がある方は是非参加してみてください!!(宣伝みたいですみません)

最後に、初めてこのような形で文章を書いたので、拙い文章であったとは思いますが、長々とお付き合いいただき、ありがとうございました。
ゲーム制作に興味がある方の参考になると嬉しいです。

また、重ねてですが、ゲーム素材を作成してくださった吾妻ちとせ君、本当にありがとうございました。

明日はくっしーさんの「『函館はスイーツもパンもおいしいぞ』ということを知ってほしい」です。私自身甘党なので、どんなスイーツが出てくるか気になります…!

あとがきも長くなってしまいましたが、これにて本記事は以上になります。
それでは、良いゲーム制作ライフを。ごきげんよう。


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