カテゴリー

  • プログラミング
  • 英語学習
  • 海外
  • キャリア
  • Kredo
Kredoオンラインキャンプ
KredoIT留学
無料カウンセリングはこちら
Kredoオンラインキャンプ体験談
KredoIT留学体験談
外貨を稼ぐ!海外フリーランス無料セミナー
未経験から即戦力ITグローバル人材 無料セミナー
Kredo Blog 英語・IT・AIで、人生の選択肢を広げる。
無料ウェビナー参加 ↗ 無料カウンセリング予約無料相談↗
MENU
EXPLORE KREDO BLOG

知りたいことから、世界が広がる。

ブログTOP ↗
留学・セブSTUDY & LIFE
留学・セブの記事をすべて読む ↗ 海外留学→海外移住→海外就職→
英語学習ENGLISH
英語学習の記事をすべて読む ↗ 英語学習法→英語フレーズ→
IT・AITECH & CREATIVITY
IT・AIの記事をすべて読む ↗ プログラミング学習→プログラミング知識→AI・テクノロジー→デザイン→
キャリアYOUR NEXT CHAPTER
キャリアの記事をすべて読む ↗ 転職情報→キャリアデザイン→
KredoOUR SCHOOL
Kredoの記事をすべて読む ↗ ニュース・キャンペーン→セブ島情報→インタビュー→
STUDENT DIARIES留学生のリアルな日記noteの体験記を読む ↗YouTube・Instagramで留学を知る ↗
記事を探す ブログTOP
留学・セブ
STUDY & LIFEセブで学ぶ。海外で暮らす。留学の準備から、現地の毎日まで。
留学・セブを知るすべての記事 ↗
海外留学費用・期間・学校選びを知る↗海外移住海外で暮らすためのヒント↗海外就職世界で働く選択肢を探す↗
FROM CEBU / note留学生の、
リアルな毎日。
写真とことばで読む留学日記日記を読む ↗
英語学習
ENGLISH英語が、世界を近くする。学び方と、今日から使える英語。
英語学習を知るすべての記事 ↗
英語学習法自分に合った学び方を見つける↗英語フレーズ会話で使える表現を読む↗
FROM CEBU / note留学生の、
リアルな毎日。
写真とことばで読む留学日記日記を読む ↗
IT・AI
TECH & CREATIVITYつくる力を、次の一歩に。プログラミングとAIをもっと身近に。
IT・AIを知るすべての記事 ↗
プログラミング学習はじめ方・学び方を知る↗プログラミング知識仕組みやスキルを深める↗AI・テクノロジーAIの活かし方と最新の話題↗デザイン伝わるものづくりのヒント↗
FROM CEBU / note留学生の、
リアルな毎日。
写真とことばで読む留学日記日記を読む ↗
キャリア
YOUR NEXT CHAPTER学びの先の、働き方。転職・海外就職・これからのキャリア。
キャリアを知るすべての記事 ↗
転職情報次の仕事へ向かう準備↗キャリアデザイン自分らしい働き方を考える↗
FROM CEBU / note留学生の、
リアルな毎日。
写真とことばで読む留学日記日記を読む ↗
Kredo
OUR SCHOOLKredoを、もっと知る。学校のこと、セブのこと、学ぶ人のこと。
Kredoを知るすべての記事 ↗
ニュース・キャンペーンKredoからのお知らせ↗セブ島情報現地の暮らしを知る↗インタビュー受講生・卒業生の声を読む↗
FROM CEBU / note留学生の、
リアルな毎日。
写真とことばで読む留学日記日記を読む ↗
留学日記 ↗

ENGLISH · IT · AI / STUDY IN CEBU

学ぶって、冒険だ。

英語・IT・AIで、人生の選択肢を広げよう。

留学の無料相談へ ↗Kredo Blogを読む →
JAPAN✈CEBU
Kredoで、講師と一緒に英語とITを学ぶ受講生
LEARN SOMETHING NEW.
セブの海を望む場所で学ぶ日常
HELLO, NEW WORLD.
  • TOP
  • プログラミング
  • Web・プログラミング(学習)
  • Rubyでゲーム開発はできる?|DXRuby・Gosuなどライブラリ5つを比較

Rubyでゲーム開発はできる?|DXRuby・Gosuなどライブラリ5つを比較

アバター画像
Kredo編集部
公開日:2023.04.20
更新日:2026.10.01
Web・プログラミング(学習) |
 width

こんにちは、Kredo Blog編集部です!Rubyでもゲーム開発はできます。2Dのシンプルなゲームや学習用のゲームなら、GosuやRuby 2Dといったライブラリで作れ、ブラウザで遊べるゲームならDXOpalも使えます。

ただし、3Dの大作やスマホ向けの本格的なゲームには、専用のゲームエンジンのほうが向いています。この記事では、Rubyで使える主なゲームライブラリ5つを、対応OSや最新版の時期とあわせて比較し、実際に動かして確認したサンプルコードで、ゲームの作り方の第一歩を紹介します。

この記事でわかること

  1. Rubyでどんなゲームが作れるのか
  2. Gosu・Ruby 2D・DragonRuby・DXOpal・DXRubyの比較と選び方
  3. 文字だけで遊べる数当てゲーム・じゃんけんゲームの作り方
  4. Gosuでウィンドウを出してキャラクターを動かすサンプル
  5. Rubyでゲームを作るメリット・デメリットと、学び方の順番

記事のもくじ

  • Rubyでゲーム開発はできる?
    • Rubyで作りやすいゲーム
    • Rubyが向いていないゲーム
  • Rubyのゲームライブラリ5つを比較
    • 目的別の選び方
  • 各ライブラリの特徴と選び方
    • Gosu
    • Ruby 2D
    • DragonRuby Game Toolkit
    • DXOpal
    • DXRuby
  • まずは文字だけのゲームを作ってみよう
    • ゲームの基本は「ゲームループ」
    • 数当てゲーム
    • じゃんけんゲーム
  • Gosuで画面を動かしてみよう
    • ここから広げるアイデア
    • うまく動かないときは
  • Rubyでゲームを作るメリット・デメリット
    • ゲームづくりはプログラミング学習の近道になる
    • 専用のゲームエンジンとの使い分け
  • Rubyでのゲーム開発の学び方の順番
    • 文法の基礎は先に固めておく
    • 1本完成させることを目標にする
    • 集中して学びたい人は
  • よくある質問
    • Q. DXRubyはMacで使えますか?
    • Q. Rubyでスマホゲームは作れますか?
    • Q. Rubyでゲームを作る経験は、仕事に役立ちますか?
    • Q. 以前よく紹介されていたRuby/SDLは使えますか?
  • まとめ

Rubyでゲーム開発はできる?

Rubyでゲーム開発はできる?

Rubyでゲーム開発はできる?

Rubyは、Webアプリケーション開発でよく使われるプログラミング言語ですが、ゲーム用のライブラリを使えば、画面に絵を表示したり、キーボードやゲームパッドで操作したり、音を鳴らしたりするゲームも作れます。

Rubyで作りやすいゲーム

  1. 数当て・じゃんけん・クイズなど、文字だけで遊ぶゲーム
  2. ブロック崩し・シューティング・アクションなどの2Dゲーム
  3. パズルやボードゲームのような、ルールを考えるのが楽しいゲーム
  4. ブラウザで遊べる小さなゲーム(DXOpalなどを使う)

Rubyが向いていないゲーム

一方で、3Dグラフィックスを多用するゲームや、処理の速さが強く求められる大規模なゲーム、スマホのアプリストアで配信する本格的なゲームは、UnityやUnreal Engineのような専用のゲームエンジンで作られるのが一般的です。Rubyのゲーム開発は「プログラミングを楽しく学ぶ」「小さな2Dゲームを作る」目的に向いていると考えるとよいでしょう。

Rubyのゲームライブラリ5つを比較

ゲームライブラリ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で画面を動かす

文字だけのゲームに慣れたら、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の環境で、ウィンドウを開いて描画と更新が繰り返し実行されることを確認しています。

ここから広げるアイデア

  1. 画面の外に出ないように、位置に上限と下限を付ける
  2. 画像ファイルを読み込んで、四角形の代わりにキャラクターを表示する
  3. ランダムな位置に「アイテム」を出し、触れたら得点が増えるようにする
  4. 効果音を鳴らす、制限時間を付けるなど、ゲームらしい要素を足す

うまく動かないときは

Gosuのインストールでエラーが出る場合は、Rubyのバージョンと、OSごとに必要なパッケージがそろっているかを確認しましょう。Linuxでは、SDL2などの開発用パッケージを先に入れておく必要があります。ウィンドウは開くのにキーが効かない場合は、ゲームのウィンドウをクリックして選択した状態で操作しているかも確認してみてください。

Rubyでゲームを作るメリット・デメリット

Rubyでゲームを作るメリット・デメリット

Rubyでゲームを作るメリット・デメリット

Rubyでゲームを作ることには、学習面での大きなメリットがある一方、本格的なゲーム開発では気をつけたい点もあります。

メリット デメリット
文法が読みやすく、短いコードで動くものが作れる 3Dや大規模なゲームには向いていない
ゲームを通じて、条件分岐・繰り返し・クラスなどの基本が楽しく身につく 専用のゲームエンジンに比べると、日本語の情報や素材が少ない
Webアプリ開発など、ゲーム以外にも学んだ知識を活かせる 更新が止まっているライブラリもあり、Rubyのバージョンとの相性を確認する必要がある

ゲームづくりはプログラミング学習の近道になる

ゲームは「動いた」「勝った」という結果がすぐに目に見えるため、プログラミング学習のモチベーションを保ちやすい題材です。キャラクターの動きを計算する、当たり判定を作る、得点を管理するといった作業の中で、変数・条件分岐・繰り返し・クラスといった基本が自然と身につきます。

専用のゲームエンジンとの使い分け

本格的なゲームを作りたい場合でも、最初からゲームエンジンの操作を覚えるより、Rubyで小さなゲームを作って「ゲームループ」「当たり判定」「状態の管理」といった考え方を身につけておくと、後でほかのツールに移ったときにも理解が早くなります。まずはRubyで仕組みを理解し、作りたいゲームの規模が大きくなったらゲームエンジンを検討する、という順番もおすすめです。

Rubyでのゲーム開発の学び方の順番

ゲーム開発の学び方の順番

Rubyでのゲーム開発の学び方

Rubyでゲームを作れるようになるまでの、おすすめの順番を4つのステップで紹介します。

  1. Rubyの基本の文法(変数・条件分岐・繰り返し・配列・クラス)を学ぶ
  2. 数当て・じゃんけんなど、文字だけのゲームを作る
  3. GosuやRuby 2Dで、ウィンドウにキャラクターを表示して動かす
  4. ブロック崩しやシューティングなど、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のスキルを身につけてグローバルに活躍しませんか?

\ セブ島でIT×英語を学ぶ /IT留学の無料カウンセリングを予約する
\ オンラインでIT✕英語を学ぶ / Kredoオンラインキャンプの詳細をみる >>
  • ツイート
  • シェア
  • はてな
  • ポケット
この記事を書いた人
アバター画像
Kredo編集部

Kredo編集部です!プログラミング、英語学習、キャリア、Kredo情報を発信していきます。

関連記事

  • PCとスマートフォンで自分たちのWeb作品を確かめる学習者の生成イラスト
    Web・プログラミング(学習)

    プログラミング合宿で何を作る?初心者の成果物・事前準備・復習計画

    2026.10.26
  • sort()は元のリストを並べ替えて戻り値がNone、sorted()は元のデータを残して新しいリストを返す比較図
    Web・プログラミング(学習)

    Pythonのsortとsortedの違い|英語の公式仕様で元データ・戻り値を確認

    2026.10.08
  • 机の上で色分けした注文カードと明細カードを並べ、結合後のカードを見比べる学習イメージ
    Web・プログラミング(学習)

    SQLのJOINで行数・合計が増える原因は?1対多と直し方を図解

  • 追加した項目の動きをノートで整理する学習者の写真イメージ
    プログラミング Web・プログラミング(学習)

    JavaScriptのイベント委譲とは?追加したボタンが動く仕組みを実験

    2026.10.06
新規CTA
KREDO JAPAN株式会社

\ SNSで留学の様子を更新中! /

  • Instagram
  • LINE
  • X
  • YouTube
©KREDO JAPAN Inc. 2024 All rights reserved.
Kredoのサービス
セブ島で学びたい方はこちら KredoIT留学
自宅で学びたい方はこちら Kredo Online 英語×アプリ開発コース
運営会社 会社概要 採用情報 お問い合わせ
利用規約 プライバシーポリシー 特定商品取引に基づく表示 資料請求