raylibはクロスプラットフォームのオープンソースソフトウェア開発ライブラリです。このライブラリはグラフィカルアプリケーションやゲームを作成するために作られました。[ 3 ] [ 4 ]
このライブラリは、プロトタイピング、ツール開発、グラフィカルアプリケーション、組み込みシステム、教育用途向けに設計されています。ソースコードはC言語(具体的にはC99 )で記述されており、 zlib/libpng OSI認証済みのオープンソースライセンスの下で配布されています。Windows、Linux、macOS、FreeBSD、Android、Raspberry Pi、HTML5など、複数のターゲットプラットフォームへのコンパイルをサポートしています。
raylibはバインディングの形で70以上のプログラミング言語に移植されていますが[ 5 ]、これらの移植の多くは安定していません[ 6 ] 。
raylibの開発は、ラモン・サンタマリアが芸術系のバックグラウンドを持ち、コーディング経験のない学生を対象としたゲーム開発コースをサポートするためにライブラリを作成した2013年8月に始まりました。コース全体を通して学生からのフィードバックが初期開発に影響を与え、2014年半ばにはバルセロナのゲーム開発イベントでライブラリが紹介されるようになりました。[ 7 ]
raylib 1.0 は 2013 年 11 月にリリースされ、ウィンドウ管理、2D/ 3D レンダリング、テクスチャとフォントの読み込み、オーディオ再生などの基本的な機能を提供しました。その後 5 年間にわたる 8 つのマイナー リリースでは、Android、WebAssembly、Raspberry Pi のサポート、複数のOpenGLバックエンド、VRサポート、シェーダー、物理モジュール、拡張されたサンプル ライブラリが追加されました。[ 7 ]
raylib 2.0 は 2018 年 7 月にリリースされ、サンタマリアが教授職を辞して raylib に専念するようになった時期と重なりました。[ 7 ]すべての外部依存関係が削除され、OpenAL はminiaudio ライブラリに置き換えられ、継続的インテグレーションのサポートが導入されました。その後のマイナー リリースである raylib 2.5 では、Unicodeテキスト レンダリング、glTFをサポートするスケルタル アニメーション、および再設計されたゲームパッドシステムが追加されました。[ 8 ]
raylib 3.0 は 2020 年 4 月にリリースされ、移植性と言語バインディングのサポートを向上させるためにコードベースがリファクタリングされました。グローバル状態はコンテキスト構造に統合され、カスタム仮想ファイルシステムの統合を可能にするためにすべてのファイル I/O が一元化されました。この時点で 40 を超えるプログラミング言語のバインディングが利用可能でした。[ 9 ]マイナーアップデートである raylib 3.5 は 2020 年 12 月にリリースされ、Raspberry Pi 4 のネイティブモードと組み込みデバイス向けのソフトウェアレンダリングの改善が追加されました。[ 10 ]
raylib 4.0 は 2021 年 11 月にリリースされ、広範な名前変更とドキュメントの改善によりAPI の一貫性に重点が置かれました。実験的な入力記録および再生システム、オプションのユーザー制御ゲーム ループ タイミング、および OpenGL 4.3 サポートが導入され、rlgl と raymath は使用可能なスタンドアロン ライブラリに昇格されました。 [ 11 ]その後、2 つのマイナー リリースがありました。2022 年 8 月の raylib 4.2 では、raygui や physac などのセカンダリ ライブラリが別のリポジトリに移動され、rres リソース パッケージング フォーマットが導入されました。[ 12 ] 2023 年 3 月の raylib 4.5 では、デスクトップでANGLEサポートが追加され、 Vulkan、Direct3D 11、およびMetalバックエンドが使用可能になり、アニメーション サポートが M3D および glTF フォーマットに拡張され、QOA オーディオ フォーマットが追加されました。[ 13 ]
raylib 5.0 は、ライブラリの 10 周年を記念して 2023 年 11 月にリリースされました。最も重要な変更点は、コア プラットフォーム モジュールを個別の交換可能なバックエンドに分割し、新しいプラットフォーム サポートがはるかに容易になったことです。SDL2 が代替のデスクトップ バックエンドとして追加され、非公式のNintendo Switchバックエンドも追加されました。スプライン描画、新しい擬似乱数生成器、再設計された自動化イベント システムも導入されました。[ 14 ]マイナー リリースである raylib 5.5 は 2024 年 11 月にリリースされ、RGFW とSDL3が追加のプラットフォーム バックエンドとして追加され、3D モデル アニメーションの GPU スキニング サポートが追加されました。[ 15 ]
raylib 6.0 は 2026 年 4 月にリリースされました。ソフトウェアレンダラーバックエンドが導入され、raylib は GPU なしで完全に CPU 上で実行できるようになりました。Win32とEmscripten用の新しいプラットフォーム バックエンドがサードパーティ ライブラリの依存関係なしで追加され、ヘッドレス メモリ フレーム バッファ モードも追加されました。フルスクリーンと高 DPI スケーリングが完全に再設計され、スケルタル アニメーション システムが再構築されてアニメーション間のブレンドがサポートされるようになりました。サンプル コレクションは 215 件を超え、貢献を効率化するために専用のサンプル管理ツールが導入されました。[ 16 ]
raylib は以下の機能を提供します: [ 17 ] [ 18 ]
これは、RaylibのGitHubページに掲載されている、テキストを含むウィンドウを作成する簡単な例です。
#include "raylib.h"int main ( void ) { InitWindow ( 800 , 450 , "raylib [core] example - basic window" );while ( ! WindowShouldClose ()) { BeginDrawing (); ClearBackground ( RAYWHITE ); DrawText ( "おめでとうございます!最初のウィンドウを作成しました!" , 190 , 200 , 20 , LIGHTGRAY ); EndDrawing (); }CloseWindow ();return 0 ; }2026年4月現在 、GitHubには、このトピックに一致するプロジェクトが約2500件掲載されていますraylib。[ 19 ]

raylibは、 APIを通じてプログラマーに公開される複数のモジュールで構成されています。
raylib には、さまざまな言語コミュニティによって作成された 70 種類以上のプログラミング言語のバインディングがあります。最新バージョンに更新されているプログラミング言語には、 C#、Crystal、D (Dlang)、Fortran、Go、Jai、Java、Lua、Nim、Python、Rust、V (Vlang)、Zigなどがあります。また、C に似ていない、より C++ の慣用的な使用法を好む C++ ユーザー向けのC++ラッパーもあり、 C++ モジュールとしてインポートすることもできます。[ 21 ]バインディングの一覧は、raylib のGitHubリポジトリにある BINDINGS.md ファイル[ 5 ]で確認できます。
以下は、raylib-cpp の C++ バインディングを使用した、先の例と同じです。
import raylib ;using raylib :: Texture ; using raylib :: Window ; using namespace raylib :: Colors ;int main ( int argc , char * argv []) { constexpr int SCREEN_WIDTH = 800 ; constexpr int SCREEN_HEIGHT = 450 ;ウィンドウwindow ( SCREEN_WIDTH 、SCREEN_HEIGHT 、"raylib [core] サンプル - 基本ウィンドウ" );テクスチャlogo ( "raylib_logo.png" );window.SetTargetFPS ( 60 ) ;while ( ! window.ShouldClose ( ) ) { window.BeginDrawing (); window.ClearBackground ( RAYWHITE ) ; raylib :: DrawText ( "おめでとうございます!最初のウィンドウを作成しました!" , 190 , 200 , 20 , LIG HTGRAY ) ;logo.Draw ( SCREEN_WIDTH / 2 - logo.GetWidth ( ) / 2 , SCREEN_HEIGHT / 2 - logo.GetHeight ( ) / 2 ) ;window.EndDrawing ( ) ; }return 0 ; }raylibコミュニティは、raylibの機能拡張や他のライブラリとの連携強化のために、いくつかの追加モジュールを提供してきました。その一部を以下に示します。
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)