こんにちは、Kredo Blog編集部です!Rubyでもゲーム開発はできます。2Dのシンプルなゲームや学習用のゲームなら、GosuやRuby 2Dといったライブラリで作れ、ブラウザで遊べるゲームならDXOpalも使えます。
ただし、3Dの大作やスマホ向けの本格的なゲームには、専用のゲームエンジンのほうが向いています。この記事では、Rubyで使える主なゲームライブラリ5つを、対応OSや最新版の時期とあわせて比較し、実際に動かして確認したサンプルコードで、ゲームの作り方の第一歩を紹介します。
この記事でわかること
- Rubyでどんなゲームが作れるのか
- Gosu・Ruby 2D・DragonRuby・DXOpal・DXRubyの比較と選び方
- 文字だけで遊べる数当てゲーム・じゃんけんゲームの作り方
- Gosuでウィンドウを出してキャラクターを動かすサンプル
- Rubyでゲームを作るメリット・デメリットと、学び方の順番
Rubyでゲーム開発はできる?


Rubyは、Webアプリケーション開発でよく使われるプログラミング言語ですが、ゲーム用のライブラリを使えば、画面に絵を表示したり、キーボードやゲームパッドで操作したり、音を鳴らしたりするゲームも作れます。
Rubyで作りやすいゲーム
- 数当て・じゃんけん・クイズなど、文字だけで遊ぶゲーム
- ブロック崩し・シューティング・アクションなどの2Dゲーム
- パズルやボードゲームのような、ルールを考えるのが楽しいゲーム
- ブラウザで遊べる小さなゲーム(DXOpalなどを使う)
Rubyが向いていないゲーム
一方で、3Dグラフィックスを多用するゲームや、処理の速さが強く求められる大規模なゲーム、スマホのアプリストアで配信する本格的なゲームは、UnityやUnreal Engineのような専用のゲームエンジンで作られるのが一般的です。Rubyのゲーム開発は「プログラミングを楽しく学ぶ」「小さな2Dゲームを作る」目的に向いていると考えるとよいでしょう。
Rubyのゲームライブラリ5つを比較

Rubyで使える主なゲームライブラリを比較しました。最新版の時期は、2026年10月時点でRubyGems(Rubyのライブラリ配布サイト)や公式サイトに掲載されている情報です。
| ライブラリ | 特徴 | 対応環境 | 最新版(時期) | 料金 |
|---|---|---|---|---|
| Gosu | Ruby・C++向けの2Dゲームライブラリ | macOS・Windows・Linux(ほかiOS) | 1.4.6(2023年5月・安定版) | 無料(MITライセンス) |
| Ruby 2D | 2Dのゲームやグラフィックスを手軽に作れる | macOS・Windows・Linux | 1.0.0(2026年8月) | 無料 |
| DragonRuby Game Toolkit | Rubyで書くクロスプラットフォームのゲームエンジン | Web・Mac・Windows・Linuxなどに書き出し | 公式サイトで確認 | 無料のJam版のほか有料版あり |
| DXOpal | DXRuby互換のAPIで、ブラウザで動くゲームを作る | Webブラウザ | 1.6.0(2024年7月) | 無料(MITライセンス) |
| DXRuby | Windows向けの2Dゲームライブラリ | Windows | 1.4.7(2021年1月) | 無料 |
これから始めるなら、Mac・Windowsのどちらでも使えて情報も見つけやすいGosuか、書き方が短く手軽なRuby 2Dが選びやすいでしょう。ブラウザで遊べるゲームを作りたいならDXOpal、作ったゲームをSteamなどで公開したいならDragonRuby Game Toolkitが候補になります。
目的別の選び方
| やりたいこと | 選びやすいライブラリ |
|---|---|
| MacでもWindowsでも2Dゲームを作りたい | Gosu、Ruby 2D |
| できるだけ短いコードで図形や画像を動かしたい | Ruby 2D |
| 作ったゲームをURLで友だちに遊んでもらいたい | DXOpal |
| Steamやストアで公開・販売したい | DragonRuby Game Toolkit |
| 昔のDXRubyの本や記事を使って学びたい(Windows) | DXRuby(Rubyのバージョンに注意) |
各ライブラリの特徴と選び方

それぞれのライブラリの特徴と、どんな人に向いているかを紹介します。
Gosu
Gosuは、RubyとC++で使える2Dゲーム開発ライブラリです。公式サイトによると、ウィンドウとメインループ、2Dグラフィックス、文字の表示、効果音や音楽、キーボード・マウス・ゲームパッドの入力といった、ゲームに必要な機能をひと通り備えています。MITライセンスで公開されており、gem install gosu でインストールできます(Linuxでは事前にSDL2などのパッケージが必要です)。
長く使われてきたライブラリで、公式のGitHub Wikiにチュートリアルもあります。Rubyで2Dゲームを作る最初のライブラリとして選びやすいのがGosuです。
Ruby 2D
Ruby 2Dは、2Dのアプリやゲーム、グラフィックスを、Rubyらしく短いコードで作れるライブラリです。公式サイトの「Get Started」では、gem install ruby2d でインストールし、数行のコードで三角形を表示する例が紹介されています。2026年8月に公開された1.0.0は、Ruby 4.0以上が必要です。古いRubyを使っている場合は、Rubyのバージョンを確認してから導入しましょう。
DragonRuby Game Toolkit
DragonRuby Game Toolkitは、Rubyでゲームを書けるクロスプラットフォームのゲームエンジンです。公式サイトによると、無料のJam版のほか、デスクトップ向けに書き出せるStandard版(買い切り)、Steamでの公開に対応したIndie版、スマホ向けの書き出しに対応したPro版(年額)があります。学生や教員などには無料のStandardライセンスも用意されています。作ったゲームを公開・販売したい人に向いています。
DXOpal
DXOpalは、RubyのコードをJavaScriptに変換する「Opal」を使い、ブラウザで動くゲームを作れるライブラリです。後で紹介するDXRubyと互換性のあるAPIを持っています。作ったゲームをWebページとして公開し、URLを送るだけで友だちに遊んでもらえるのが魅力です。日本語のドキュメントも用意されています。
DXRuby
DXRubyは、Windows向けの2Dゲームライブラリで、日本語のリファレンスマニュアルがあることから、日本で長く使われてきました。ただし、GitHubのREADMEによると、配布されているバイナリはRuby 2.3〜2.6向けで、それより新しいRubyで使うには自分でビルドする必要があります。これから始める人は、DXRubyと同じ書き方ができるDXOpalか、GosuやRuby 2Dを選ぶほうがスムーズです。
まずは文字だけのゲームを作ってみよう

ゲームライブラリを入れる前に、Rubyだけで動く「文字だけのゲーム」を作ってみましょう。ゲームの基本である「入力を受け取る→判定する→結果を表示する→繰り返す」の流れを、ライブラリなしで体験できます。どちらもRuby 3.3で動作を確認しています。
ゲームの基本は「ゲームループ」
ほとんどのゲームは、「プレイヤーの入力を受け取る」「入力やルールに合わせて状態(位置・得点・残り時間など)を更新する」「今の状態を画面に表示する」という3つの処理を、ゲームが終わるまで繰り返しています。この繰り返しを「ゲームループ」と呼びます。文字だけのゲームでは loop と gets でこの流れを自分で書き、Gosuのようなライブラリでは、ライブラリが毎フレーム update と draw を呼び出してくれます。
数当てゲーム
コンピュータが1〜100の中から選んだ数を当てるゲームです。rand で数を選び、loop で正解するまで入力を繰り返します。
answer = rand(1..100)
tries = 0
puts "1〜100の数字を当ててください"
loop do
print "> "
input = gets
break if input.nil?
guess = input.to_i
tries += 1
if guess == answer
puts "正解! #{tries}回で当たりました"
break
elsif guess < answer
puts "もっと大きい数です"
else
puts "もっと小さい数です"
end
end
ruby guess.rb で実行し、数字を入力してEnterキーを押すと、「もっと大きい数です」「もっと小さい数です」とヒントが表示され、正解すると何回で当たったかが表示されます。
じゃんけんゲーム
手を数字で入力し、コンピュータとじゃんけんをするゲームです。勝ち負けの判定を、(自分の手 - 相手の手) % 3 の計算でまとめているのがポイントです。
HANDS = ["グー", "チョキ", "パー"]
puts "0:グー 1:チョキ 2:パー を入力してください"
player = gets.to_i
cpu = rand(0..2)
puts "あなた: #{HANDS[player]} / コンピュータ: #{HANDS[cpu]}"
case (player - cpu) % 3
when 0 then puts "あいこ"
when 2 then puts "あなたの勝ち"
else puts "あなたの負け"
end
グー(0)・チョキ(1)・パー(2)の9通りすべての組み合わせで、判定が正しくなることを確認しています。慣れてきたら、3回勝負にする、勝敗の回数を数えるなど、ルールを足してみましょう。
Gosuで画面を動かしてみよう

文字だけのゲームに慣れたら、Gosuを使ってウィンドウを表示し、四角形のキャラクターを矢印キーで動かしてみましょう。gem install gosu でインストールしたあと、次のコードを ruby game.rb のように実行します。
require "gosu"
class Game < Gosu::Window
def initialize
super(640, 480)
self.caption = "はじめてのGosu"
@x = 320
@y = 240
@font = Gosu::Font.new(24)
end
def update
@x -= 4 if Gosu.button_down?(Gosu::KB_LEFT)
@x += 4 if Gosu.button_down?(Gosu::KB_RIGHT)
@y -= 4 if Gosu.button_down?(Gosu::KB_UP)
@y += 4 if Gosu.button_down?(Gosu::KB_DOWN)
end
def draw
Gosu.draw_rect(@x - 15, @y - 15, 30, 30, Gosu::Color::YELLOW)
@font.draw_text("矢印キーで動かす", 10, 10, 0)
end
end
Game.new.show
Gosuのゲームは、Gosu::Window を継承したクラスを作り、毎フレーム呼ばれる update(動きの計算)と draw(画面への描画)の2つのメソッドを書くのが基本の形です。このコードは、Gosu 1.4.6とRuby 3.3の環境で、ウィンドウを開いて描画と更新が繰り返し実行されることを確認しています。
ここから広げるアイデア
- 画面の外に出ないように、位置に上限と下限を付ける
- 画像ファイルを読み込んで、四角形の代わりにキャラクターを表示する
- ランダムな位置に「アイテム」を出し、触れたら得点が増えるようにする
- 効果音を鳴らす、制限時間を付けるなど、ゲームらしい要素を足す
うまく動かないときは
Gosuのインストールでエラーが出る場合は、Rubyのバージョンと、OSごとに必要なパッケージがそろっているかを確認しましょう。Linuxでは、SDL2などの開発用パッケージを先に入れておく必要があります。ウィンドウは開くのにキーが効かない場合は、ゲームのウィンドウをクリックして選択した状態で操作しているかも確認してみてください。
Rubyでゲームを作るメリット・デメリット


Rubyでゲームを作ることには、学習面での大きなメリットがある一方、本格的なゲーム開発では気をつけたい点もあります。
| メリット | デメリット |
|---|---|
| 文法が読みやすく、短いコードで動くものが作れる | 3Dや大規模なゲームには向いていない |
| ゲームを通じて、条件分岐・繰り返し・クラスなどの基本が楽しく身につく | 専用のゲームエンジンに比べると、日本語の情報や素材が少ない |
| Webアプリ開発など、ゲーム以外にも学んだ知識を活かせる | 更新が止まっているライブラリもあり、Rubyのバージョンとの相性を確認する必要がある |
ゲームづくりはプログラミング学習の近道になる
ゲームは「動いた」「勝った」という結果がすぐに目に見えるため、プログラミング学習のモチベーションを保ちやすい題材です。キャラクターの動きを計算する、当たり判定を作る、得点を管理するといった作業の中で、変数・条件分岐・繰り返し・クラスといった基本が自然と身につきます。
専用のゲームエンジンとの使い分け
本格的なゲームを作りたい場合でも、最初からゲームエンジンの操作を覚えるより、Rubyで小さなゲームを作って「ゲームループ」「当たり判定」「状態の管理」といった考え方を身につけておくと、後でほかのツールに移ったときにも理解が早くなります。まずはRubyで仕組みを理解し、作りたいゲームの規模が大きくなったらゲームエンジンを検討する、という順番もおすすめです。
Rubyでのゲーム開発の学び方の順番


Rubyでゲームを作れるようになるまでの、おすすめの順番を4つのステップで紹介します。
- Rubyの基本の文法(変数・条件分岐・繰り返し・配列・クラス)を学ぶ
- 数当て・じゃんけんなど、文字だけのゲームを作る
- GosuやRuby 2Dで、ウィンドウにキャラクターを表示して動かす
- ブロック崩しやシューティングなど、1本のゲームを完成させる
文法の基礎は先に固めておく
ゲームライブラリの使い方は、Rubyの基本の文法、特にクラスとメソッドがわかっていると、ぐっと理解しやすくなります。Rubyの基礎の学び方はRubyの独学勉強法で、無料で使える学習サイトはRuby学習サイトおすすめ8選で紹介しています。
1本完成させることを目標にする
ゲームづくりでは、アイデアを広げすぎて完成しないまま終わってしまうことがよくあります。まずは画面1つで遊べる小さなゲームを「完成させる」ことを目標にし、遊べる形になってから機能を足していきましょう。完成したゲームは、学習の成果として人に見せられる作品にもなります。
集中して学びたい人は
ひとりで学ぶのが不安な人や、短期間で集中してプログラミングを身につけたい人は、プログラミング合宿という学び方も選択肢の1つです。プログラミング合宿とは?国内・オンライン・海外の違いと選び方で、自分に合うものを検討してみてください。
よくある質問
Q. DXRubyはMacで使えますか?
A. DXRubyはWindows向けのライブラリのため、Macでは使えません。DXRubyと同じような書き方でゲームを作りたい場合は、ブラウザで動くDXOpalを使う方法があります。MacでもWindowsでも動くライブラリを選ぶなら、GosuやRuby 2Dが候補になります。
Q. Rubyでスマホゲームは作れますか?
A. DragonRuby Game Toolkitの有料のPro版は、公式サイトでApple App StoreやGoogle Play向けの書き出しに対応しています。ただし、スマホ向けの本格的なゲームは、専用のゲームエンジンで作られるのが一般的です。
Q. Rubyでゲームを作る経験は、仕事に役立ちますか?
A. ゲーム業界ではほかの言語が使われることが多いですが、ゲームづくりで身につく条件分岐・繰り返し・クラス設計といった考え方は、Webアプリ開発など、Rubyのほかの仕事にもそのまま役立ちます。
Q. 以前よく紹介されていたRuby/SDLは使えますか?
A. RubyGemsで配布されているRuby/SDL(rubysdl)の最新版は2014年8月の2.2.0で、それ以降は更新されていません。SDLを使いたい場合は、2026年4月にも更新されている後継のruby-sdl2がありますが、初心者が始めるなら、ゲームに必要な機能がまとまっているGosuやRuby 2Dのほうが扱いやすいでしょう。
まとめ
Rubyでもゲーム開発はできます。2Dのシンプルなゲームなら、Mac・Windowsのどちらでも使えるGosuや、短いコードで書けるRuby 2D、ブラウザで遊べるゲームならDXOpal、公開・販売まで考えるならDragonRuby Game Toolkitが選びやすいライブラリです。DXRubyは日本で長く使われてきましたが、配布バイナリがRuby 2.6までである点に注意しましょう。
まずはこの記事の数当てゲームやじゃんけんゲームで「入力→判定→表示」の流れを体験し、次にGosuで画面を動かしてみてください。小さなゲームを1本完成させる経験は、ゲーム以外のプログラミングにも活きる、確かな力になります。
英語でIT・AIを学べるKredo
英語×IT・AIのスキルを身につけてグローバルに活躍しませんか?
当メディアを運営しているKredoは、英語×ITをオンラインで学ぶ「Kredoオンラインキャンプ」と、フィリピンのセブ島で英語とIT・AIを学ぶ「KredoIT留学」「KredoAI留学」を提供しています。これまでの卒業生は3,000名以上。卒業生の多くが、国内外のIT企業への転職、フリーランスなどへのキャリアチェンジを実現しています。これからの時代に必要な英語×IT・AIのスキルを身につけてグローバルに活躍しませんか?









