「Rubyでゲーム開発をしてみたい!」「Rubyでゲーム開発をする際にはどんなライブラリを利用する?」このような疑問・要望に応えるべく、Rubyでゲーム開発をする際に利用されるライブラリから、ゲーム開発を解説しているサイトを紹介する記事です。
具体的には、次の順番でお話ししていきます。
- Rubyのゲーム開発で利用するライブラリ
- Rubyのゲーム開発を解説しているサイト紹介
- ゲーム開発する際の最低限の知識とは
- Rubyでゲーム開発する際のメリット、デメリット
Rubyを使ってゲーム開発をしたいと考えている方、どうやってゲーム開発をするのかを知りたい方向けの記事ですので、ぜひご覧ください。
記事のもくじ
Rubyでゲームを開発する際に利用できるライブラリ
Rubyではゲーム開発用のライブラリが用意されています。
ここでは、Rubyでゲーム開発する際に利用できるライブラリを紹介します。
DXRuby
DXRubyは、RubyでDirectXを扱うための拡張ライブラリであり、Windows用の2Dゲーム開発で利用できます。
プログラミング初心者でも扱いやすいように作られており、初めてRubyでゲーム開発を行う方におすすめのライブラリです。
DXRubyが提供する機能としては、次のようなものが挙げられます。
- 画像の読み込み、描画
- キーボード、マウス、パッドの入力
- MIDI、WAVファイルの読み込み、再生
- FPS自動調整
- 高速な衝突判定
など
複雑な処理を行うAPIは提供されていませんが、その分初心者には使いやすいと言えるでしょう。
Rubyのゲーム開発で利用するライブラリに迷ったら、まずはDXRubyを使ってみてはいかがでしょうか。
注意点として、2020年7月現在ではRuby最新版(安定版)は「2.7.1」ですが、DXRubyが対応しているバージョンは「2.3~2.6」となっています。
Ruby/SDL
Ruby/SDLは、WindowsだけでなくLinuxやMacなどで動く2Dゲームが作れるライブラリです。
SDL(Simple DirectMedia Layer)と呼ばれるクロスプラットフォームのマルチメディアライブラリをRubyで利用できるように作られたものがRuby/SDLとなります。
SDLはC言語で作られているため、実行が遅いと言われるRubyでも2Dゲームであれば十分な速度を実現可能です。
Ruby/SDLが提供する機能としては、次のようなものが挙げられます。
- 2D高速描画
- キーボード、マウス、パッドからの入力
- SLD mixerによる音声の再生
- CDの再生
- SLDSKKによる行単位の日本語入力
- SDL kanjiによるbdfフォントの描画
など
Ruby/SDLでは、いくつかサンプルが用意されているので、サンプルコードを参照しながら理解を深めるとよいでしょう。
DXOpal
DXOpalはRubyでブラウザゲームを作るためのライブラリです。
RubyでOpalを利用するためのライブラリであり、OpalはRubyからJavaScriptへとソースコードを変換するコンパイラです。
DXRubyの命令がほとんどそのまま利用できるため、DXRubyの知識を深めるとDXOpalも扱えると考えてよいでしょう。
DXOpalでは、公式サイトでいくつかデモが公開されているので、作成できるゲームのイメージを掴むために一度確認してみてくださいね。
「ブラウザ上で動く2Dゲームを開発したい」という場合は、DXRubyとあわせてDXOpalの学習を進めてみてはいかがでしょうか。
Rubyのゲーム開発を解説しているサイト
Rubyでゲーム開発を行う際の主要なライブラリを紹介しましたが、具体的な使い方が知りたいという方も多いでしょう。
そこで、今回紹介したライブラリを中心としたRubyのゲーム開発を解説しているサイトを紹介します。
Ruby から DirectX を扱う簡単高速ゲームライブラリ DXRuby の紹介
「Ruby から DirectX を扱う簡単高速ゲームライブラリ DXRuby の紹介」はこちら
DXRubyを使うための環境構築から、簡単なサンプルの作成までを解説しているページです。
環境の構築方法から解説されているため、初心者でも理解しやすい内容となっています。
ゲームプログラミングの基礎から学ぶことができ、あなたの今後のゲーム開発にも活かせる解説サイトと言えるでしょう。
Ruby/SDLで始めるゲームプログラミング【前編】【後編】
「Ruby/SDLで始めるゲームプログラミング【前編】」はこちら
「Ruby/SDLで始めるゲームプログラミング【後編】」はこちら
こちらのページでは、Ruby/SDLの準備方法から一連のゲームプログラミングが解説されています。
Ruby/SDLの基礎を学びたい方におすすめのページです。
前編・後編に分かれており、ボリュームも多いページですが、Ruby/SDLの使い方からゲームプログラミングの基礎が学べるページになっています。
Ruby/SDLを利用してゲーム開発する場合には、参考にしてみてはいかがでしょうか。
Rubyで始めるゲームプログラミング – DXOpal編 –
「Rubyで始めるゲームプログラミング – DXOpal編 -」はこちら
DXOpalを使ったゲーム開発を解説しているページです。
DXOpalの環境構築から、実際にブラウザ上で動くゲームのサンプルコードの解説までされており、DXOpalの基礎知識を身につけるために最適なページとなっています。
内容としては「Ruby/SDLで始めるゲームプログラミング」のリライト版とのことですが、DXOpalの基礎を学びたい方におすすめのページです。
DXRubyで 0から作る「ブロック崩し」
こちらは個人のブログ記事ですが、DXRubyを使ってブロック崩しを作るためのサンプルコードが公開されています。
DXRubyの準備が完了している状態であれば、DXRubyでのコーディング方法も含めて学習できる良記事です。
サンプルコードを利用することでブロック崩しが作成できますが、同サイトでは「『ブロック崩し』の課題追加」として、サンプルを発展させた形の課題も挙げられています。
課題とあわせて実施することで、よりDXRubyへの知識を深めることが可能です。
ブラックジャックゲームを作ってみた[Ruby]
これまでに紹介したサイトと異なり、ゲーム開発用のライブラリは一切使用していません。
Ruby単体でもゲーム開発が行えることの例として紹介します。
このページでは、Rubyの基礎知識を身につけたことの確認として、ブラックジャックを作成しています。
ブラックジャックを作成するための条件からサンプルコードまで細かく解説されているページです。
実際にこのページを参照してブラックジャックを作ることで、ゲームプログラミングにおける「考え方」だけでなく、Rubyの扱い方も身につけることができるでしょう。
Rubyでゲーム開発をする際の最低限の知識
Rubyでゲーム開発をする際、具体的にどのような知識があればよいのでしょうか。
結論からいえば、Rubyに関する基礎知識が身についていれば、Rubyのゲーム開発は可能です。
具体的には、次に挙げるような知識を身につける必要があります。
- 変数、データ型
- 条件分岐
- ループ文
- オブジェクト指向に関する基礎知識
これらの基本的な知識を身につければ、ゲーム開発を簡単に行うためのライブラリを利用することでゲーム開発が可能となるのです。
通常のプログラミングと異なり、ゲームプログラミングでは条件分岐が非常に多く、一度起動したらループし続ける作りになります。
一般的なプログラミングの基礎知識を身につけた上で、ゲームプログラミングにあわせたプログラミングが重要となってきます。
また、今回紹介したライブラリを利用することで、簡単にゲーム開発ができるとはいえ、Rubyの基本的な使い方がわからなければゲーム開発は難しいでしょう。
そのため、上記に挙げたような基礎知識を身につけた上でゲーム開発を行うことをおすすめします。
Rubyでゲーム開発をする場合のメリット・デメリット
最後に、Rubyでゲーム開発をする場合のメリット・デメリットについても触れておきましょう。
Rubyでゲーム開発をする場合のメリットとしては、次のようなものが挙げられます。
- 簡単にゲーム開発が行えるライブラリが揃っている
- 記述がシンプルで学習しやすい
- 大規模なプログラムを書きやすい
Rubyは記述がシンプルであるため、初心者でも習得しやすい言語の1つです。
さらに、ゲーム開発向けのライブラリが用意されており、プログラミング初心者でもゲーム開発が行いやすい点はメリットとしてあげられます。
また、Rubyはオブジェクト指向言語であるため、大規模なプログラムを書きやすいです。
すでに記載したコードを再利用したり、あとから修正したりすることが楽であるため、大規模なプログラムも書きやすく、開発効率が良いのです。
反対に、Rubyでゲーム開発をする場合のデメリットとしては、次のようなものが挙げられます。
- 3Dゲーム開発は難しい
- ゲーム開発では積極的に用いられていない
Rubyはインタプリタ型言語であり、他のプログラミング言語と比べて処理処理はあまり速くありません。
そのため、高速な処理を要求されるようなゲームや、3Dゲーム開発は難しいと言えるでしょう。
また、Rubyでゲーム開発が行えるとはいえ、積極的に用いられているわけではありません。
今回紹介した参考サイトも古いサイトが多く、本格的なゲーム開発には向いていないといえます。
しかし、「手軽にRubyでゲーム開発をしたい」という場合は、Rubyの学習とあわせてゲーム開発を行うこともよいでしょう。
Rubyの処理速度は遅いと言われていますが、今回紹介したライブラリのコア部分はC言語で記載されているものばかりであり、2Dゲームであれば問題なく動作させることが可能です。
今回紹介したライブラリを利用することで、比較的簡単にゲーム開発が行えるので、ぜひ使ってみてはいかがでしょうか。
まとめ:Rubyでもゲーム開発は可能!
Rubyは「Ruby on Rails」を利用したWeb開発に注目が集まっていますが、実はゲーム開発も可能です。
Rubyでゲーム開発を行う際には、「DXRuby」「Ruby/SDL」「DXOpal」などのライブラリを利用するとよいでしょう。
Rubyの基礎知識さえ身につけていれば、ゲーム開発は可能です。
ゲーム開発を通してRubyに関する知識も深まるので、ぜひ挑戦してみてくださいね。
この記事ではライブラリの紹介とあわせて、Rubyでのゲーム開発を解説しているサイトも紹介したので、それらを参考にRubyでゲーム開発を行ってみてはいかがでしょうか。