ゲーム開発でぜひ使いたい「ゲームエンジン」とは?初心者向けに解説
「ゲーム開発してみたいけど、みんな自分で1からプログラミングしてるの……?」
「ゲームエンジンって名前を聞いたけど、これは何?」
というあなたに向けて、ゲームエンジンとは何か、という観点で解説させてください。
- ゲーム開発でやらなければいけない作業
- ゲームエンジンとは何か
- ゲームエンジンの種類
について解説しています。このブログを書いている私(todo)はUnityというゲームエンジンを4年ほど使って、アプリもリリースしました。なので、ゲームエンジンを使っている人の立場からの解説になります。
ゲーム開発でやらなければいけない作業
ゲームエンジンを紹介する前に、ゲーム開発でやらなければならない作業をまず解説します。これを知っておくと、なぜゲームエンジンを使うべきなのかが分かります。
ゲームを開発する場合は、究極的にはプログラミングができれば、ゲームエンジンなしでも開発できます。
ゲーム開発の中で必要になってくる作業はざっくりと以下のものがあります。
- ゲームを動かす仕組み
- 音を鳴らす仕組み
- 画像を表示する仕組み
- キャラクターの位置を計算する仕組み
- プレイヤーの入力を受け取る仕組み
- 他にもいっぱい!
ここに挙げたものはほんの一例ですが、内容を深堀りしていきます。
ゲームを動かす仕組み
まずはゲームを動かすための仕組みが必要です。プログラミングを行なって、コンパイルしたものをゲームとして動かさなければなりません。
PC向けのゲームであれば、WindowsやMacといったそれぞれのOSごとにプログラムが動く仕組みを理解して、それに合わせてプログラミングをする必要があります。
スマホ向けのゲームなら、AndroidやiOSに向けた調整も必要ですね。
PS4やNintendo Switchならそれぞれに合わせて調整します。
いやぁ、大変だ(白目)
音を鳴らす仕組み
ゲームといえばサウンドも大切です。音を鳴らせるように、サウンドドライバーとのやりとりも必要になってきます。
例えばPCであれば、スピーカーから音を鳴らすための処理を実装する必要があるでしょう。任意のタイミングで音を鳴らしたり、止めたりする処理が必要だったり、プレイヤーの耳を傷つけないように音量についても気を配る必要があります。
ゲーム機であれば、そのゲーム機においても音を鳴らす仕組みが必要ですね。ゲーム機自体にスピーカーから音を鳴らす場合や、接続されたテレビのスピーカーから音を鳴らす場合もあるので、考えることはたくさんあります。
画像を表示する仕組み
ゲームは見た目が9割。これは冗談でもなんでもなくて、見た目でユーザーの心を掴まないとなかなか遊んでもらえません。
イラストを表示する仕組みだったり、3Dモデルの頂点の位置からオブジェクトの見た目を計算して画面に表示する仕組みだったり、エフェクトを表示させる仕組みだったりと、画面に何かを描画する処理は多くの場面で必要になります。
この部分に関しては完全に1から作ると途方もない時間が必要になってしまいますから、OpenGLなどのグラフィックライブラリを使用することが多いと思います。それでも自分で実装するのは大きな手間です。
プレイヤーの入力を受け取る仕組み
ゲームではプレイヤーの操作を受け取る仕組みを作る必要があります。コントローラーでの入力、キーボードでの入力、画面タップでの入力など、様々な入力方法があるので、これらに対応させないといけません。
押されたボタンやキーボードに対応した信号を判別して、処理を分けていく必要があります。
また、画面をタップするならば、タップした位置を検出する仕組みも必要です。
キャラクターの位置を計算する仕組み
プレイヤーが操作した結果だったり、あるいはゲームのCPUが操作する場合だったりと、ゲーム内のキャラクターが移動する処理も必要ですね。
ゲーム内の敵キャラであれば、移動のための思考ルーチンも実装する必要があるかもしれません。
3Dのゲームを作るときは3次元的な移動も考える必要がありますから、キャラクターの移動ひとつとっても作業の量は多くなってしまいます。
自分でこれらを作るのは大変!
……と、自分でプログラミングしてゲームを作ることの大変さをお伝えしてきました。
これらの処理を実装しながら自分のゲームを作っていくのはかなりの苦行です。自分が本当に作りたいゲーム部分になかなかたどり着けませんからね。
ここで紹介した処理の他にも考えるべきことはたくさんありますから、プログラミングだけでゲームを作っていくのはさらに難易度が上がっていきます。
ゲーム開発でぜひ使いたいゲームエンジンとは?
ここで登場するのがゲームエンジンです。
上で挙げたゲーム開発に必要な作業の多くは、このゲームエンジンを使うことで簡単に実装できるんです。ゲームエンジンにはこれらの処理があらかじめ実装されているため、処理を呼び出せば簡単に実行できちゃうのです。
多くのゲームでは、ゲームを操作したり音を鳴らしたり、映像を表示したりと、共通する処理があります。ゲームごとにこれらを作成していくのは大変ですよね。
なので、よく使うであろう処理をあらかじめまとめておいて、今作ろうとしているゲームの表現部分に力を集中させることで、より良いゲームに仕上げることができます。
本当に集中すべきはあなたが作りたいゲームそのものであって、その仕組み部分ではないのです。
このゲームエンジンは、大きなゲーム会社だと自分で作成していることもあります。これまで作成したゲームで共通する処理などをまとめ、ゲーム作りにかかる時間を短くして、よりたくさんのゲームを作れるようにしているんですね。
ただ、この記事を読んでいるあなたは個人や少人数のチームの開発者だと思いますので、自分でゲームエンジンを作るのではなく、既存のゲームエンジンを使うことをおすすめします。
ゲームエンジンの種類
一般の人が使いやすいゲームエンジンだと、以下のものがあります。ここに挙げたのは一例なので、興味があれば調べてみると良いでしょう。
- RPGツクール系
- Unity
- Unreal Engine
- cocos2d-x
それぞれ簡単に紹介していきます。
RPGツクール系
RPGツクールはRPGを作成するのに特化したゲームエンジンです。
RPGで作成する処理には以下のものがあります。
- アイテムのデータ管理
- 魔法のデータ管理
- 敵キャラのデータ管理
- お店の品揃えのデータ管理
- マップのデータ管理
- 戦闘システム
- イベント処理のシステム
- 他にもいっぱい!
このように、作成すべき処理がたくさんあります。
これらの処理をあらかじめ用意してくれていて、自分のゲームで使うデータを登録して組み合わせていくだけでRPGを完成させられるのがRPGツクールの強みです。
PC向けの他に家庭用ゲーム機向けにもゲームソフトとしてリリースされているので、ゲーム作りを体験するにはもってこいのゲームエンジンです。
実は私は子供の頃にこのRPGツクールに触れたことがきっかけでゲーム開発をするようになりました。
Unity
Unityは様々なプラットフォーム向けにゲームをリリースすることのできるゲームエンジンです。
3Dのゲームを作成することもできますし、2Dのゲームを作成することもできます。幅広いジャンルのゲームを作成することができるので、「とりあえずUnity」の感覚で始めてしまっても良いと思います。
個人的に大きな特徴だと感じているのが、アセットストアの存在。アセットとは、ゲームの素材を指す言葉で、Unityではこれを販売しているストアを持っているんです。
ゲーム作りでは素材作りに多くの時間がかかります。デザイナーさんやグラフィッカーさんにお願いすることが多いのですが、少人数のチームだと泣く泣く自分で作成することもあります。
そうなると素材作りに時間を割いてしまい、なかなかゲーム作り自体が進んでいかない、なんてこともよく起こります。個人開発、少人数のチーム開発では、時間をかけすぎるとモチベーションの低下にも繋がってしまうため、アセットストアを活用することで時間短縮を図ることができます。
Unreal Engine
Unreal Engineもマルチプラットフォームでゲームをリリースすることができるゲームエンジンです。
元々「Unreal」というゲームがあり、そこで使っていたゲームエンジンを他でも使えるようにしたのがUnreal Engineの始まりです。
その最大の特徴は、映画のようなグラフィックのゲームを作成できること。PS4で「映像がきれいだなぁ」なんて感じたゲームのスタッフロールを眺めていると、「Unreal Engine」の名前があったりします。
もちろん、3Dだけではなく2Dのゲームを作ることもできるので、スマートフォン向けのゲームを作成するのも良いでしょう。
cocos2d-x
2Dのゲームを作成するのが得意なゲームエンジンです。スマートフォンアプリを作るのに向いています。
オープンソースのゲームエンジンなので、作成したゲームでどれだけ売り上げを上げたとしても、ライセンス料やロイヤリティなどが発生しません。
作成したゲームをスマートフォンでリリースするなら、このゲームエンジンを使うのも良いと思います。
ただ、オープンソースということもあり、サポートはそれほど充実している訳ではないので、その部分だけ留意する必要があります。日本語で情報を公開している有志のサイトなどを参考に、自分で情報を集めていくのが大切です。
まとめ: ゲーム開発にはゲームエンジンを使おう
この記事では以下の3点について解説を行いました。
- ゲーム開発でやらなければいけない作業
- ゲームエンジンとは何か
- ゲームエンジンの種類
ゲームエンジンを使うことで、ゲームに共通する処理の大半を利用することができるので、あなたが作りたいゲームそのものに時間を集中させることができます。
各ゲームエンジンのもう少し詳しい特徴を知りたい時には、以下の記事をあわせてご覧ください。
ゲームエンジンを使うのにかかるお金・費用について知りたい時にはこちらがおすすめです。
これらの情報を元に、あなたがゲームを作るために使うゲームエンジンを選んでいただけたら幸いです。
ゲーム開発の攻略チャートを作りました!
-
前の記事
Unityで使うプログラミング言語のC#について紹介します 2020.02.13
-
次の記事
Unityのバージョンはどう選んだらいいの?おすすめの選び方 2020.02.16
コメントを書く