支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

小さい頃、時間を忘れてゲームの世界に没頭した経験はないでしょうか。剣や魔法の世界で手に汗握る冒険をしたり、宇宙船に乗って敵艦を撃墜しながら広大な宇宙を旅したり…。気づいたら何時間も経っていた、なんてことはざらにあったのではないでしょうか。あの時間を忘れてしまうほどのわくわく感は、大人になった今では久しく感じられていませんが、「わくわくしていた」という経験自体はそうそう忘れられるものではありません。私自身も大のゲーム好きでして、よくファンタジーの世界を旅したものです。好きが高じていつしか自分のゲームを作ってやろう、と密かな野望を抱いていました。
そこで今回は、プログラミングでゲームを作成するためにはなにが必要かを調べました。

ゲームの種類

一口にゲームといっても、スマホゲームやPCゲームなどの様々な種類があります。ゲームを作成するにあたって、まずは主にどのような種類があるかを見ていきましょう。

スマホゲーム

アプリとしてダウンロードされ、スマートフォン上で遊べるように開発されたゲームです。androidで遊べてもiPhoneで遊べないといった場合もあり(逆も然り)、主にandroid用、iOS用で開発する必要があります。

PCゲーム

PCにインストールして遊ぶゲームです。オンライン環境のゲームが大多数を占めますが、遊ぶにあたりインストールなどのPCを操作する必要があるので、ある程度の知識が求められます。現在普及しているPCのシェア率に比例し、Windows向けのゲームが多いです。

コンシューマゲーム

コンシューマゲームと聞いて、頭にはてなが思い浮かんだ方もいるかもしれませんが、DSやplaystationなどの家庭用ゲーム機のことです。おそらく皆さんの最も馴染みの深いゲームでしょう。ハイクオリティなゲームを作成できますが、特定のゲーム機用に作成して販売するためにはライセンス契約が必要なため、大規模向けのゲームが作成されることがほとんどです。

プログラミング言語

主なゲームの種類が分かったところで、次はゲームを作成するのに向いているプログラミング言語について紹介していきます。

C++

C++については有名なので、ご存じの方も多くいらっしゃるのではないでしょうか。C言語を拡張し、より高度なことを実現できるように開発された言語で、C++を使ってスマホゲームやPCゲーム、コンシューマゲームなどを開発することに向いています。C++の習得は比較的難易度が高いとされています。

C#

C++を習得するためには様々な難しい概念を理解する必要がありますが、C++ほど概念を理解しなくても扱えるとされているのがC#です。ゲーム用のプログラミング言語としては比較的簡単でしかもしっかりとした言語となっています。後述するunityでも使用できるため、制作する側にとっておすすめの言語です。開発に向いているゲームはスマホゲーム、PCゲーム、コンシューマゲームです。

Java script

Java scriptは、主にブラウザゲームと呼ばれるGoogle chromeなどのブラウザ上で動作するインストール不要のゲームの開発に使用されていましたが、様々な環境で利用されるようになった言語です。Java scriptの習得自体はそれほど難しくありませんが、Java scriptを使ってゲームを開発するためには様々なツールについても学習しなければいけません。スマホゲームやブラウザゲームなどの開発に向いています。

unity

unityはプログラミング言語ではないのですが、ゲームを開発するのに便利なプラットフォームです。2D、3Dゲームの開発にも対応しており、2D、3Dの描画やサウンド開発、データ管理などを備えたゲームエンジンを搭載しています。無料版も配布されているのが嬉しいポイントですね。
unityで開発するゲームはスマホ、PC、コンシューマゲームなどのほぼ全てのゲームで遊ぶことができます。また、アセットストアと呼ばれるユーザーが作成したプログラムの部品や素材などを売買できるプラットフォームを利用でき、より効率的な開発を行うことができます。
unityで使用できるプログラミング言語はC#、unity用に拡張したJava script、Booの 3つです。C#、Java scriptについては既に説明しましたが、Booについてはまた別の機会に解説します。クオリティの高いゲームを開発するのにプログラミングは欠かせませんが、unityの特徴として、簡略的に3Dキャラクターやステージを作成したい場合はプログラミングをしなくても実現できます。

おわりに

今回紹介したゲームや開発言語、ツールなどはほんの一部です。この記事で紹介した以外のものもありますが、私自身はゲームを開発するために(いつになるか分かりませんが)unityを使ってC#で開発していこうかなと思っています。unityやC#を使いこなすために学習サイトで学習する方法もありますが、独学では限界もありますのでプログラミングスクールに通うのも一つの手です。
子どもの頃に幾度となく感じたあのわくわく感、何度も旅したファンタジーの世界を今度は自分が作ることになろうとは、なんとも感慨深いものがありますね。