6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C言語 や Rust の学習に使える描画ライブラリ raylib のご紹介

Last updated at Posted at 2025-12-10

この記事はPONOS Advent Calendar 2025 10日目の記事です。

はじめに

新たにプログラミング言語を習得しようとするとき、みなさんはどんな方法をとっていますか?
私は、描画ライブラリを用いて、簡単なゲームを作るという方法をとることが多いです。
実行結果を画面で見て分かりやすく、ゲーム開発の楽しさから、モチベーションを保ちやすいのでおすすめです。
今回は、C言語 や Rust の言語習得に使える raylib という描画ライブラリをご紹介します。

raylib について

C言語で書かれたシンプルな描画ライブラリです。

2Dの基本図形・テクスチャの描画、3Dモデルの描画、テキストの描画、オーディオ再生、キーボード、マウスからの入力管理等、最低限ゲーム開発に必要な機能が揃っています。
(※高度な物理エンジンは搭載されていないため、重力を設定したり、コライダーを設定して自動で衝突判定を行う等はできません。そのあたりは、自前で実装する必要があります。)

バックエンドには OpenGL / OpenGL ES が使われています。
マルチプラットフォームに対応しており、Windows / Linux / macOS / Android / HTML5等で動作します。

Rust で raylib を使う

C言語で書かれているraylibですが、raylib-rsという名前でRust版のバインディングが開発されています。
raylibのシンプルな描画APIをRustから呼び出すことができ、Rustでゲーム開発が可能になります。
Rustであれば人気の Bevy というゲームエンジンがあります。BevyはECSという設計パターンを採用しており、Rustの習熟と同時にECSへの理解も欠かせません。Rustの言語習得に集中したい場合には、API設計がシンプルなraylib-rsは一つの選択肢になるかと思います。

環境構築 (C言語)

確認環境

  • Windows 11
  • Visual Studio 2022
  • raylib 5.5

構築手順

Windows版 raylibのインストール

  1. raylibの公式サイトに遷移
  2. 「Download Now」からWindows版のインストーラーをダウンロードする(寄付金額を設定できるが、No thanksを選択することでダウンロード画面に遷移します。)
  3. ダウンロードしたインストーラーを起動する(raylib_installer_v5.5.exe)
  4. 「Install」ボタンを押すとインストールが開始する
  5. 「raylib installed successfully!」と書かれた画面が出たらインストール完了
  6. C:\raylibにraylibのファイルが配置されていることを確認

raylibのビルド

  1. C:\raylib\raylib\projects\VS2022\raylib.slnを Visual Studio 2022で開く
  2. ソリューション構成で「Debug」を選択し、ソリューションをビルドする
  3. C:\raylib\raylib\projects\VS2022\build\raylib\bin\x64\Debug\raylib.libが生成されていることを確認する

開発用プロジェクトの作成

  1. Visual Studio 2022 で 「新しいプロジェクトの作成」を選択
  2. 言語で「C++」、「空のプロジェクト」を選択しプロジェクトを新規作成する(プロジェクト名、配置場所は任意)
  3. ソリューションエクスプローラー上のソースファイルを右クリックし、「追加」-「新しい項目」と選択し、「main.c」というファイル名でファイルを追加
  4. ソリューションのプロパティを開き、「構成プロパティ - C/C++ - 全般」の「追加のインクルードディレクトリ」を編集してC:\raylib\raylib\srcのパスを追加する
  5. 続いて、「構成プロパティ - リンカー - 入力」の「追加の依存ファイル」を編集してC:\raylib\raylib\projects\VS2022\build\raylib\bin\x64\Debug\raylib.lib winmm.lib opengl32.lib user32.lib gdi32.lib shell32.libを追加する

動作確認

  1. main.cを以下のように書き換えて、ビルド・実行します。白いウィンドウが表示されれば環境構築完了となります
#include "raylib.h"

int main(void)
{
    const int screenWidth = 800;
    const int screenHeight = 450;

    InitWindow(screenWidth, screenHeight, "raylib");

    while (!WindowShouldClose())
    {
        BeginDrawing();
        ClearBackground(RAYWHITE);
        EndDrawing();
    }
    CloseWindow();
    return 0;
}

image.png

環境構築 (Rust)

確認環境

  • Windows 11
  • VSCode
  • raylib-rs 5.5.1

構築手順

Rustのインストール

公式サイトからWindows用のRustのインストーラー(rustup-init.exe)をダウンロードしてインストールを行う(※具体的なRustのインストール手順は割愛)

開発用プロジェクトの作成

任意のプロジェクト名、任意の場所でプロジェクトを作成

$ cargo new raylib_sample

Cargo.tomlのdependenciesにraylibを追記

[dependencies]
raylib = { version = "5.5.1" }

動作確認

main.rsを以下のように書き換えます

use raylib::prelude::*;

fn main() {
    const SCREEN_WIDTH: i32 = 800;
    const SCREEN_HEIGHT: i32 = 450;

    let (mut rl, thread) = raylib::init()
        .size(SCREEN_WIDTH, SCREEN_HEIGHT)
        .title("raylib-rs")
        .build();

    while !rl.window_should_close() {
        let mut d = rl.begin_drawing(&thread);
        d.clear_background(Color::RAYWHITE);
    }
}

下記コマンドでビルド・実行し、白いウィンドウが出れば環境構築完了となります

$ cargo run

image.png

raylibを使ってみる

raylibで円、四角、テキストを描画したサンプルです。
かなりシンプルな記述で描画できることがご確認いただけると思います。

image.png

C言語

#include "raylib.h"

int main(void)
{
    const int screenWidth  = 800;
    const int screenHeight = 450;

    // ウィンドウの初期化
    InitWindow(screenWidth, screenHeight, "raylib basic shapes + text (C)");

    // FPSを設定
    SetTargetFPS(60);

    while (!WindowShouldClose())
    {
        // 描画開始
        BeginDrawing();

        // 背景色をクリア
        ClearBackground(RAYWHITE);

        // 四角形を描画(x, y, width, height, color)
        DrawRectangle(100, 100, 200, 120, SKYBLUE);

        // 円を描画(centerX, centerY, radius, color)
        DrawCircle(500, 200, 80, MAROON);

        // テキストを描画(text, x, y, fontSize, color)
        DrawText("Hello, raylib!", 260, 360, 30, DARKGRAY);

        // 描画終了
        EndDrawing();
    }

    // ウィンドウを閉じる
    CloseWindow();

    return 0;
}

Rust

use raylib::prelude::*;

fn main() {
    const SCREEN_WIDTH: i32 = 800;
    const SCREEN_HEIGHT: i32 = 450;

    // ウィンドウの初期化
    let (mut rl, thread) = raylib::init()
        .size(SCREEN_WIDTH, SCREEN_HEIGHT)
        .title("raylib-rs basic shapes + text (Rust)")
        .build();

    // FPSを設定
    rl.set_target_fps(60);

    while !rl.window_should_close() {
        // 描画用ハンドルを取得
        let mut d = rl.begin_drawing(&thread);

        // 背景色をクリア
        d.clear_background(Color::RAYWHITE);

        // 四角形を描画(x, y, width, height, color)
        d.draw_rectangle(100, 100, 200, 120, Color::SKYBLUE);

        // 円を描画(center_x, center_y, radius, color)
        d.draw_circle(500, 200, 80.0, Color::MAROON);

        // テキストを描画(text, x, y, font_size, color)
        d.draw_text("Hello, raylib-rs!", 260, 360, 30, Color::DARKGRAY);
    }
}

まとめ

今回は、C言語 や Rust の言語習得におすすめの描画ライブラリ raylib を紹介させていただきました。
今回紹介したコードは基本的な図形やテキストの描画でしたが、図形をテクスチャに変えたり、物理エンジンを実装していくことで、様々なゲームを開発していくことができます。ゲーム開発を通じて、楽しみながら各プログラミング言語に慣れ、自然と習得することができると思います。
また、raylibは他のゲームエンジンと異なり、コードのみで開発が可能なため、AIコーディングツールを利用してゲーム開発をするといった用途にも使えそうです。


次回は@tequila0725さんの記事です。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?