Rubyでプログラミングを学びながらゲームを作ってみてはいかがでしょうか。Rubyは学習しやすい言語ですが、プログラミングの学習を続けるのは大変です。しっかりとした目標が無いと学習を続けるれません。
しかしゲームを作ることを目標にすれば、楽しみながら続けられます。さらにアイデア次第でコンテンストに入賞できるオリジナル性の高いゲームが作れるかも。今回、Rubyを使ってゲームを作る方法について解説します。
Rubyならこんなゲームが作れる
パソコンで遊べるゲームと言えば、どんなゲームを連想されるでしょうか。まるで実写のようなシューティングゲームから、印象的なイラストが描かれたカードで遊べるゲームなど、人気の高いゲームをいろいろと思いつきます。
今回紹介するRubyで作れるゲームは、そのような大勢のプロが開発に参加している人気の高いゲームではありません。次からRubyで作れるゲームの特徴について紹介します。
Rubyの特徴
Rubyは簡潔で読みやすいプログラムが書ける、学習しやすいプログラミング言語です。そのため、RubyのフレームワークであるRuby on Railsを使い、短期間にWebシステムが作れるプログラミング言語として広く使われています。
そしてRubyの学習しやすい点は、これからプログラミングを学習する方が最初に選ぶ言語としても最適です。さらにRubyは日本人が開発したプログラミング言語のためネットで日本語の資料を探しやすく、学習をサポートしてくれるコミュニティーが多いのもメリットと言えるでしょう。
教育にも使われるRuby
Rubyを開発したまつもとゆきひろ氏が理事長を務めるRubyアソシエーションでは、Rubyの教育にも力を入れており、高校生や大学生を対象にしたプログラミング教育も支援しています。そして、そのようなRubyを活用した教育向けのイベントがRubyプログラミングコンテストです。
このようなRubyプログラミングコンテストでは、毎年ゲームプログラムが入賞しています。例えば「中高生国際Rubyプログラミングコンテスト2020 in Mitaka」では、入賞した10作品のうち7作品がゲームでした。
プログラミングを学ぶうえで、ゲームならモチベーションを保てるうえ、アイデアもいろいろ出てくるので楽しく学べるのではないでしょうか。
こちらの公式サイトを参照してください。
中高生国際Rubyプログラミングコンテスト in Mitaka
Rubyで作れるゲームの特徴
Rubyそのものはコマンドラインで実行するプログラミング言語であり、グラフィック環境で動作するゲームを作ることはできません。Rubyでゲームを作る場合はRuby用のゲームエンジンを利用します。
なお、今作られているコンピュータゲームのほとんどは、ゲームの映像や音を実現するための専用プログラム、ゲームエンジンを利用しています。つまりRuby用のゲームエンジンを使えば、Rubyでもゲームが作れます。
ただしRuby用のゲームエンジンの機能はかなり限定されており、まるで映画のような3Dグラフィックのゲームは作れません。それでもキャラクターが動き回るようなレトロな雰囲気のゲームなら簡単に作れます。
Rubyでゲームを作る方法
先ほど紹介したように今のゲームではゲームエンジンが使われており、ゲームのプログラミングとはゲームエンジンの制御する仕組みとも言えます。Rubyでゲームを作る場合も同じで、Ruby用のゲームエンジンを制御するプログラムを作ります。
次からRubyを使ってゲームを作る方法の概要について解説します。
開発環境を準備する
Rubyでゲームを開発するなら、Rubyのプログラムコードを作り、そのプログラムを実行するための環境が必要です。最低限テキストエディタとRubyをインストールしたパソコンを用意してください。
なおRubyはWindowsやmacOSなどにもインストールできますが、ゲームエンジンは動作するOSが制限されています。例えばよく使われるゲームエンジンのDXRubyはWindowsでしか動作しません。もしDXRubyを使うなら、Windowsのパソコンが必要です。
さらにWindowsのグラフィック処理を担当するDirectXも必要です。うまく動作しない場合は公式サイトのマニュアルに従って必要なパッケージをインストールしてください。
ゲームエンジンの使い方を学ぶ
Rubyのプログラミングを学ぶためにゲームを作るとしても、ゲームエンジンの使い方が解らなければゲームは作れません。先ほど用意した開発環境にゲームエンジンをインストールし、Rubyのプログラムからそれを利用しながらゲームエンジンの使い方を学んでください。
ゲームエンジンにはサンプルプログラムが付属しているので、それを参考にプログラムを作ることが可能です。また、Rubyでゲームを作る具体的な方法を解説した本やWebサイトがあるので、参考にしてみてください。
オリジナルのゲームを作る
Rubyのプログラミングとゲームエンジンの使い方を学んだら、ぜひオリジナルのゲームを作ってみてください。書いてあるとおりにプログラミングするのと、ゲームでこんなことができたらいいなをプログラミングするのとでは、難しさが格段に違います。
プロのプログラマーは、顧客の曖昧な要望を聞いてそこからイメージを作り、そのイメージをプログラムで実現します。ぜひRubyのゲーム開発を通じて、自分のアイデアをプログラムで実現するためのスキルを学んでください。
Rubyで使えるゲームエンジン
これまで紹介したようにRubyでゲームを開発するならRuby用のゲームエンジンが必要です。Ruby用のゲームエンジンはライブラリとして開発環境にインストールすることで利用できます。
次にRubyのゲームエンジンとして使われることの多いゲームエンジンを紹介します。
DXRuby
DXRubyは、Windowsのゲームなどで使われるDirect XをRubyから利用するためのライブラリで、Windowsで実行できる2次元のゲームを開発できます。先ほど紹介したRubyプログラミングコンテストの作品でよく使われるライブラリで、プログラミング初心者でも扱いやすいように作られているのが特徴です。
なおシンプルな機能しかありませんが、Direct Xを使っているので速度が遅い、ということはありません。そのため初心者でも快適に動作するゲームを作れます。ただしDirect Xを利用するのWindowsのパソコンでしか動作しないので注意してください。
DXRubyの詳しい使い方はこちらのWebサイトを参照してください。
Project DXRuby
Gosu
Gosuは、DXRubyと同じように2次元のレトロなゲームを作るためのゲームエンジンです。先ほどのDXRubyはWindowsでしか動作しませんが、GosuはmacOS専用のゲームエンジンで、macOSでゲームを作りながらRubyのプログラミングを学べます。
Gosuもシンプルな機能を組み合わせてゲームが作れる点が特徴で、DXRubyと同じくらい人気のあるライブラリです。
GosuはRubyとC++用の2Dゲーム開発ライブラリです。
Ruby • Gosu
DXOpal
先ほど紹介したDXRubyをJavaScriptに変換してWebブラウザのゲームとして動作させるための仕組みがDXOpalです。そしてDXOpalでは、RubyのプログラムをJavaScriptに変換するソフトウェア「Opal」を利用しています。
実際にはDXRubyではグラフィック処理をWindowsのDirect Xを利用しているので、そのままJavaScriptに変換してもWebブラウザでは動作しません。DXOpalではJavaScriptによる画像処理に変換することで、Rubyで作ったゲームがWebブラウザ上で動作します。
なおDXOpalのゲームエンジンの使い方はDXRubyと同じです。そのためDXRubyを用いてWindows用に開発したゲームを、DXOpalを利用してWebブラウザで動作させることも可能です。
DXOpalはこちらから入手してください。
DXOpal demo
まとめ
パソコン用のゲームと言えば、まるで映画のワンシーンのようなリアルな映像で遊べるゲームタイトルを思い浮かべるかもしれません。しかし、今回紹介したRubyで作れるゲームは、中学生や高校生でもチャレンジできるレトロな雰囲気のゲームです。
このようなRubyのゲームですが、アイデア次第で飽きずに遊べるゲームも作れます。そして、ゲームを作るという目標があれば、プログラミングを楽しみがら学べるのではないでしょうか。もしこれからRubyを学びたいという方は、今回紹介したRuby用のゲームエンジンを使ったゲームを作ってみてください。