Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

raylib

From Wikipedia, the free encyclopedia
Game programming library
This articlecontainspromotional content. Please helpimprove it by removingpromotional language and inappropriateexternal links, and by adding encyclopedic text written from aneutral point of view.(September 2020) (Learn how and when to remove this message)
raylib
Raylib official logo
Developer(s)Ramon Santamaria and contributors
Initial releaseNovember 18, 2013; 11 years ago (2013-11-18)
Stable release
5.5.0 / November 18, 2024; 4 months ago (2024-11-18)
Repositorygithub.com/raysan5/raylib
Written inC, specificallyC99
PlatformWindows,Linux,macOS,FreeBSD,Android,Raspberry Pi,HTML5
TypeAPI
Licensezlib License[1][2]
Websitewww.raylib.com

Raylib (stylized asraylib) is across-platformopen-source software developmentlibrary. The library was made to create graphical applications and games.[3][4]

The library is designed to be suited for prototyping, tooling, graphical applications, embedded systems, and education. The source code is written in C (C99), which is distributed under azlib/libpngOSI certified open-source license. It supports compilation to several target platforms, including Windows, Linux, macOS, FreeBSD, Android, Raspberry Pi and HTML5.

raylib has been ported to more than 70programming languages in the form of bindings,[5] but many of these ports are not stable.[6]

History

[edit]
This sectionneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources in this section. Unsourced material may be challenged and removed.(September 2023) (Learn how and when to remove this message)

raylib development was started in August 2013 by Ramon Santamaria to support a game development course, focused on students with no previous coding experience and artistic profile. During the course, raylib was further developed based on the feedback of the students and by June 2014, the library was starting to be showcased in several game development events inBarcelona.

raylib 1.0 was released in November 2013 and it featured around 80 functions for window and inputs management, basic 2D and 3D shape drawing, texture loading and drawing, font loading, text drawing, audio system management and audio file loading and playback. The first raylib version had eight subsequent minor releases (from raylib 1.1 to raylib 1.8), over the course of five years, which each introduced some new features. Some of the most notable improvements wereAndroid,WebAssembly andRaspberry Pi support, multipleOpenGL backends,VR support and ten examples.

raylib 2.0 was released in July 2018 and removed all external dependencies from the build system. It also exposed a number of configuration options in thebuild system, to minimize size and increase support, supporting variouscontinuous integration systems. Along the following two years, parts of the library were reviewed updated, and the ecosystem was built out. During this period, a single minor release, raylib 2.5, was launched.

raylib 3.0 was released in April 2020, refactoring many parts of the code to improve portability and bindings. It involved moving global variables to contexts, added support for custom memory allocators, a filesystem for loading assets and over 115 code examples. It received a minor update, raylib 3.5, in December 2020.

raylib 4.0 was released in November 2021, featuring a complete naming review for library consistency and coherency: function names, parameters, descriptions, comments and log output messages were reviewed. It added an internal Events Automation System and exposed game-loop control for the user. It also features some of its internal libraries to be used as standalone modules: rlgl and raymath.

raylib 4.2 was released in August 2022.[7]

raylib 4.5 was released in March 2023, 7 months after the last release. This update brought ANGLE support on Desktop platforms, a brand new camera module, support for M3D models and M3D/GLTF animations, compatibility with theQOA audio file format, a brand new module for compressed textures loading (rl_gputex), reviews in therlgl and thershapes modules, data structures validation (IsImageReady(),IsTextureReady() andIsSoundReady()) for many raylib structures and many other improvements. It has been the biggest update of the library to date.

raylib 5.0 was released in November 2023, improving support for future platform ports.[8]

raylib 5.5 was released in November 2024.

Features

[edit]

raylib offers the following features:[9][10]

  • Support for multiple platforms, including Windows, Linux, macOS,Raspberry Pi Android and HTML5
  • Support forOpenGL 1.1, 2.1, 3.3, 4.3 andOpenGL ES 2.0, 3.0 as graphic API
  • Image, textures and fonts loading and drawing from several formats
  • Audio loading and playing from several formats and streaming support
  • Math operations for vectors, matrices, and quaternions
  • 2D rendering with a camera, including automatic sprites batching
  • 3D models rendering including custom shaders and postprocessing shaders
  • Support forVR simulations with configurableHMD device parameters
  • Support for animated as well as non-animated 3D and 2D models

Reception and adoption

[edit]

As of January 2024,[update]GitHub lists around 900 projects matching theraylib topic.[11]

Software architecture

[edit]

Modules

[edit]
raylib architecture as of version 5.0[12]

raylib consists of several modules that are exposed to the programmer through theAPI.

  • core – Handles the window creation andOpenGL context initialization as well as inputs management (keyboard, mouse, gamepad and touch input)
  • rlgl – HandlesOpenGL backend, abstracting multiple versions to a common API. This module can be used standalone.
  • shapes – Handles basic 2D shape rendering (line, rectangle, circle...) and basic collision detection
  • textures – Handles image and texture loading (CPU and GPU) and management, including image manipulation functionality (crop, scale, tint, etc.)
  • text – Handles fonts loading as spritesheet and text rendering. Also includes some text processing functionality (join, split, replace, etc.)
  • models – Handles 3D model loading and rendering, including support for animated models
  • raudio – Handles audio device management and audio file loading and playback, including streaming support. This module can be used standalone.
  • raymath – Provides a set of math functions for vectors, matrices and quaternions

Bindings

[edit]

raylib hasbindings for more than 70 different programming languages, created by various language communities. Computer programming languages that are updated to the latest version include:C#, Crystal,D (Dlang),Fortran,Go,Jai,Java,Lua,Nim,Python,Rust,V (Vlang), andZig. A list of bindings is available in the BINDINGS.md file[5] in the raylibGitHub repository.

Add-ons

[edit]

The raylib community has contributed several add-ons to extend the features and connection of raylib with other libraries. Some of the modules are:

  • raygui –Immediate mode GUI module for raylib[13]
  • physac – physics module intended to be used with raylib[14]
  • libpartikel – particle system module for raylib[15]
  • spine-raylib – Spine animations integration module for raylib[16]
  • cimgui-raylib – Dear Imgui integration module for raylib[17]

Awards

[edit]
  • In April 2019, Santamaria was awarded with the Google Open Source Peer Bonus award for contributing to the open-source ecosystem with raylib.[18]
  • In August 2020, raylib was awarded with an Epic MegaGrant byEpic Games to support its development.[19]
  • In April 2021, Santamaria was awarded with another Google Open Source Peer Bonus award for the same reasons.[20]
  • In March 2022, raylib was nominated for the Best Game Engine category onMobile Games Awards 2022.[21]

See also

[edit]

References

[edit]
  1. ^"License".
  2. ^"Raylib GitHub".GitHub. 10 October 2021.
  3. ^Thomas (2019-08-01)."Best 2D Game Engines: The Complete List (2020)".Thomas Gervraud. Retrieved2020-07-20.
  4. ^"A Snake Game Written in PHP (with Raylib)".thephp.website. 12 April 2020. Retrieved2020-07-20.
  5. ^abBINDINGS.md file
  6. ^"raysan5/raylib".GitHub. Retrieved2020-07-15.
  7. ^"HISTORY.md File".www.github.com. 11 August 2022. Retrieved15 October 2022.
  8. ^Wololo (1 December 2023)."Release: Raylib 5.0 for PS4 & PS Vita". Retrieved15 January 2024.
  9. ^"raylib–A C++ Game Library Perfect For Beginners".www.gamefromscratch.com. 24 July 2016. Retrieved2020-07-20.
  10. ^"Raylib 2.5 Released".www.gamefromscratch.com. 3 June 2019. Retrieved2020-07-20.
  11. ^"raylib · GitHub Topics".GitHub. Retrieved15 January 2024.
  12. ^"raylib". Retrieved2021-10-28.
  13. ^Ray (2020-07-15),raysan5/raygui, retrieved2020-07-15
  14. ^Fisac, Víctor (2020-07-14),victorfisac/Physac, retrieved2020-07-15
  15. ^Briemann, David Linus (2020-06-10),dbriemann/libpartikel, retrieved2020-07-15
  16. ^WEREMSOFT (2020-06-27),WEREMSOFT/spine-raylib-runtimes, retrieved2020-07-15
  17. ^WEREMSOFT (2020-07-12),WEREMSOFT/c99-raylib-cimgui-template, retrieved2020-07-15
  18. ^"Google Open Source Peer Bonus winners are here!".Google Open Source Blog. Retrieved2020-07-15.
  19. ^"rayLib receives an Epic MegaGrant".GameFromScratch.com. 2020-08-07. Retrieved2020-08-10.
  20. ^"Announcing the First Group of Google Open Source Peer Bonus winners in 2021!".Google Open Source Blog. Retrieved2021-04-27.
  21. ^"MOBILE GAMES AWARD - The Finalists for 2022".MOBILE GAME AWARDS. Retrieved2022-03-20.

External links

[edit]


Proprietary
1980s
1990s
2000s
2010s
2020s
Free and
open-source
1970s
1990s
2000s
2010s
2020s
Retrieved from "https://en.wikipedia.org/w/index.php?title=Raylib&oldid=1277315500"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp