Связать?

Raylib

Материал из Википедии — свободной энциклопедии
Данная страницане проверялась участниками с соответствующими правами.
Перейти к навигацииПерейти к поиску
Эта статья написанав рекламном стиле.
Это не соответствуетправилам Википедии. Вы можете помочь проекту,исправив текст согласностилистическим рекомендациям Википедии.(июнь 2022)
Необходимо проверить качество перевода,исправить содержательные и стилистические ошибки.
Вы можете помочьулучшить эту статью (см. такжерекомендации по переводу).
Оригинал на английском языке —Raylib.
(23 июля 2022)
Raylib
Raylib official logo
ТипAPI
РазработчикиРамон Сантамария и др.
Написана наC, более конкретноC99
Операционные системыUnix-подобная операционная система, Mac OS[вд], Windows, Android, HTML5 и Oculus Rift CV1[вд]
Первый выпуск18 ноября 2013; 11 лет назад (2013-11-18)
Аппаратные платформыWindows,Linux,macOS,FreeBSD,Android,Raspberry Pi,HTML5
Последняя версия5.5 (18 ноября 2024; 5 месяцев назад (2024-11-18))
Репозиторийgithub.com/raysan5/raylib
Лицензияzlib License[1][2]
Сайтraylib.com

Raylib (стилизованное написание строчными буквамиraylib) —кроссплатформеннаябиблиотека соткрытым исходным кодом. Была разработана для использования при созданииигр и мультимедийных приложений.[3][4]

Библиотека была спроектирована для решения задачпрототипирования, создания необходимого инструментария, приложений сграфическим интерфейсом, приложений для встраиваемых систем и для обучения программированию.Исходный код написан наС и распространяется подzlib/libpngOSI лицензией. Библиотека поддерживаетсборку под многочисленные платформы, включаяWindows,Linux,macOS,FreeBSD,Android,Raspberry Pi иHTML5.

В Raylib можно использовать в более чем 70языках программирования при помощи библиотек привязки, однако не все они имеют стабильные версии.[5]

Содержание

История создания

[править |править код]
Информация должна бытьпроверяема, иначе она может быть удалена. Вы можетеотредактировать статью, добавив ссылки наавторитетные источники в видесносок.(июнь 2022)

Разработка Raylib началась в августе 2013 года Рамоном Сантамарией для поддержки курсов программирования, нацеленных на студентов без предварительного опыта в программировании; библиотека являлась прямой заменой устаревшей к тому времениграфической библиотеки Borland BGI. В течение курсов Raylib получала дополнительные усовершенствования на основе обратной связи от студентов и к июню 2014 года начала появляться на различных мероприятиях, посвященных разработке игр вБарселоне.

Raylib 1.0 была выпущена в ноябре 2013 года и включала в себя порядка 80 функций для управления созданием окон, обработки пользовательского ввода, отрисовки базовых геометрических форм в2D и3D, загрузке и отрисовки текстур, загрузке шрифтов, отрисовке текста, управления звуковой подсистемой с возможностью загрузки и воспроизведения звуковых файлов. Первая версия Raylib претерпела восемь небольших изменений (от версии Raylib 1.1 до Raylib 1.8) в течение пяти лет, каждое из которых привнесло какие-то новые возможности. Среди наиболее заметных улучшений была поддержка платформAndroid,WebAssembly иRaspberry Pi, различных реализацийOpenGL, поддержкавиртуальной реальности, а также создание десяти примеров использования библиотеки.

Raylib 2.0 была выпущена в июле 2018 года и исключила все внешние зависимости из системы сборки. Эта версия также предоставила опции для конфигурированиясистемы сборки, предназначенных для уменьшения размера собранной библиотеки и увеличения поддержки различными системаминепрерывной интеграции. В течение следующих двух лет части библиотеки подверглись пересмотру и обновлению, а также вокруг библиотеки сформировалась экосистема. Единственным небольшим релизом за этот период являлась версия 2.5.

Raylib 3.0 была выпущена в апреле 2020 года.Переработке кода подверглись многие части кода. Её целью стало улучшениепереносимости на другие платформы и улучшениепривязок[англ.] к другимязыкам программирования. Это было достигнуто путем переноса глобальных переменных ближе к контексту, добавленной поддержке пользовательских функций выделения памяти,файловой системы для загрузкиассетов[англ.], а также созданию более 115 примеров использования. Эта версия получала единственный небольшой релиз, Raylib 3.5, в декабре 2020 года.

Raylib 4.0 была выпущена в ноябре 2021 года, привнеся с собой полный пересмотр системы наименования для улучшения связности и последовательности: изменению подверглись имена функций, параметров, описания, комментарии исообщения протоколирования. Была внедрена система управления событиями и доступ к основному игровому циклу был предоставлен пользователю. Также появилась возможность использования внутренних модулей библиотеки как отдельных обособленных модулей: rlgl и raymath. Добавилась поддержка языков программированияZig и Odin. Эта версия стала крупнейшим на данный момент обновлением библиотеки.

Raylib 4.5 была выпущена в марте 2023, 7 месяцев спустя с прошлого релиза. Эта версия принесла с собой поддержкуANGLE для платформы настольных приложений, полностью новый модуль для работы с камерой, поддержка моделей в формате M3D и M3D/GLTF анимаций, совместимость сQOA аудиоформатом, полностью новый модуль для загрузки сжатых текстур (rl_gputex), изменения в модулях rlgl и rshapes, валидация данных (IsImageReady(), IsTextureReady() и IsSoundReady()) для множества структур Raylib а также много других изменений.

Raylib 5.0 была выпущена 18 ноября 2023. Переработан и разбит для работы на различных платформах модуль rcore. Добавлена поддержка новых бэкендовSDL,Nintendo Switch. Добавлена API для работы сосплайнами; новый генераторпсевдослучайных чисел rprand; API для работы с событиями. Обновлен модуль raygui для разработки утилит с помощьюграфического интерфейса немедленного режима использованием Raylib.

Raylib 5.5 была выпущена 18 ноября 2024. Добавлен инструмент для создания новых проектов. Новые бэкенды модуля rcore - RGFW и SDL3. Поддержка новых платформ: Dreamcast, N64, PSP, PSVita, PS4. Добавлена поддержка GPU скиннинга (дя всех платформ и версий OpenGL). В модуле raymath добавленыперегрузки операторов для C++.

Возможности

[править |править код]

Raylib поддерживает следующие возможности:

  • не используются внешние зависимости, все требуемые библиотеки включены в состав raylib;
  • поддержка множества платформ, включаяWindows,Linux,macOS,Raspberry Pi,Android,HTML5 и других;
  • написано на чистомC99;
  • поддержкаOpenGL версий 1.1, 2.1, 3.3, 4.3 а такжеOpenGL ES 2.0 и 3.0 в качествебэкенда;
  • уникальный модуль rlgl, обеспечивающий уровень абстракции от OpenGL (возможно использование модуля отдельно от raylib);
  • поддержка многочисленных форматов шрифтов (TTF, OTF, FNT, BDF,спрайтовые шрифты);
  • поддержка многочисленных форматов, включая сжатые, текстур (DXT, ETC, ASTC);
  • полная поддержка 3D, включая 3D примитивы, модели, билборды, карты высот и многое другое;
  • гибкая система материалов, поддерживая классические иPBR карты;
  • поддержка анимированных 3D моделей (скелетная анимация) (IQM, M3D, glTF);
  • поддержкашейдеров моделей ипостобработки[англ.];
  • математические операции свекторами,матрицами икватернионами;
  • загрузка и воспроизведение нескольких форматов аудио данных с поддержкой потокового аудио (WAV, QOA, OGG, MP3, FLAC, XM, MOD);
  • поддержка симуляциивиртуальной реальности с возможностью настраивать параметрынаголовного дисплея;
  • огромная коллекция содержащая более 140 примеров кода;
  • привязки к более чем 70 языкам программирования;
  • свободное програмное обеспечение с открытым исходным кодом.

Примеры использования

[править |править код]

Raylib изначально предназначалась для обучения работы с графикой и написания игр. Однако, так как многие разработчики убедились в простоте и легкости использования библиотеки, она была успешно адаптирована для применения в многочисленных хобби-проектах.

Существует множество сообществ, посвященных Raylib, на сервисах, таких какReddit иDiscord. На сайте Raylib есть ссылки на социальные сети, включая личные сайты Сантамарии, а также сообществ Raylib.[6]

GitHub содержит список 120 проектов использующих темуraylib.[5][7]

Архитектура библиотеки

[править |править код]

Модули

[править |править код]

Raylib содержит несколько модулей доступных пользователю при помощиAPI.

  • core — Управляет созданием окон и инициализацией контекстаOpenGL; также обрабатывает пользовательский ввод (клавиатура, мышь, геймпад и тачпад);
  • rlgl — ОбрабатываетбэкендOpenGL, абстрагируя множество реализаций общим API. Этот модуль может использоваться обособленно;
  • shapes — Управляет отрисовкой основных 2D примитивов (отрезок, прямоугольник, окружность…) и базовым обнаружением столкновений;
  • textures — Обрабатывает загрузку текстур и изображений (используя CPU и GPU) и управление ими, включая возможности манипуляций изображениями (обрезка, масштабирование, оттенок, и т. д.);
  • text — Обрабатывает загрузку шрифтов в виде листов спрайтов и отрисовку текста. Также включает в себя некоторую функциональность по работе с текстом (соединение, разъединение, замена, и т. д.);
  • models — Обрабатывает загрузку и отрисовку 3D моделей, включая поддержку анимированных моделей;
  • raudio — Обрабатывает управление аудио-устройствами, загрузкой и воспроизведением аудиоданных, включая возможность работать с потоковыми данными. Этот модуль может использоваться обособленно;
  • raymath — Предоставляет набор математических функций для работы свекторами,матрицами икватернионами.

Привязки к другим языкам программирования

[править |править код]

Raylib имеетпривязки[англ.], созданные сообществом разработчиков, включаяRust,Go,C#,Lua,Python, иNim., для более, чем 70 различных языков программирования. Список доступных привязок находится в файле BINDINGS.md[8] в raylib GitHub репозитории.

Расширения

[править |править код]

Сообществом Raylib были разработаны несколько расширений, дополняющих функционал, и обеспечивающих связи с дополнительными библиотеками:

  • raygui —Immediate mode GUI модуль raylib[9];
  • physac — физический модуль, предназначенный для работы с raylib[10];
  • libpartikel — модуль для работы с системами частиц для raylib[11];
  • spine-raylib — интеграция скелетной анимации в raylib[12];
  • cimgui-raylib — модуль интеграции Dear Imgui для raylib[13].

Награды

[править |править код]
  • В апреле 2019 года Сантамария был награждён Google Open Source Peer Bonus за вклад в open-source экосистему своей библиотекой Raylib.[14]
  • В августе 2020 года raylib получил Epic MegaGrant отEpic Games для поддержки развития проекта.[15]
  • В апреле 2021 года Сантамария был награждён ещё одним Google Open Source Peer Bonus по той же причине.[16]
  • В марте 2022 года Raylib был номинирован в категории BEST GAME ENGINE на MOBILE GAMES AWARDS 2022.[17]

См. также

[править |править код]

Примечания

[править |править код]
  1. License  (неопр.). Дата обращения: 10 июня 2022. Архивировано 10 июня 2022 года.
  2. raylib GitHub  (неопр.) (10 октября 2021). Дата обращения: 10 июня 2022. Архивировано 27 апреля 2022 года.
  3. Thomas. Best 2D Game Engines: The Complete List (2020) (амер. англ.). Thomas Gervraud (1 августа 2019). Дата обращения: 20 июля 2020. Архивировано 19 июля 2020 года.
  4. A Snake Game Written in PHP (with Raylib) (англ.). thephp.website. Дата обращения: 20 июля 2020. Архивировано 19 июля 2020 года.
  5. 12raysan5/raylib (англ.). GitHub. Дата обращения: 15 июля 2020. Архивировано 14 июля 2020 года.
  6. raylib (англ.). Дата обращения: 28 октября 2021. Архивировано 6 ноября 2021 года.
  7. Build software better, together (англ.). GitHub. Дата обращения: 15 июля 2020. Архивировано 23 февраля 2011 года.
  8. BINDINGS.md file  (неопр.). Дата обращения: 10 июня 2022. Архивировано 11 июня 2022 года.
  9. Ray (15 июля 2020),raysan5/raygui,Архивировано 14 июля 2020, Дата обращения: 15 июля 2020
  10. Fisac, Víctor (14 июля 2020),victorfisac/Physac,Архивировано 17 сентября 2020, Дата обращения: 15 июля 2020
  11. Briemann, David Linus (10 июня 2020),dbriemann/libpartikel,Архивировано 28 декабря 2020, Дата обращения: 15 июля 2020
  12. WEREMSOFT (27 июня 2020),WEREMSOFT/spine-raylib-runtimes,Архивировано 5 сентября 2020, Дата обращения: 15 июля 2020
  13. WEREMSOFT (12 июля 2020),WEREMSOFT/c99-raylib-cimgui-template,Архивировано 11 ноября 2020, Дата обращения: 15 июля 2020
  14. Google Open Source Peer Bonus winners are here!  (неопр.) Google Open Source Blog. Дата обращения: 15 июля 2020. Архивировано 29 июля 2020 года.
  15. RayLib receives an Epic MegaGrant (амер. англ.). GameFromScratch.com (7 августа 2020). Дата обращения: 10 августа 2020. Архивировано 4 декабря 2020 года.
  16. Announcing the First Group of Google Open Source Peer Bonus winners in 2021!  (неопр.) Google Open Source Blog. Дата обращения: 27 апреля 2021. Архивировано 19 апреля 2021 года.
  17. MOBILE GAMES AWARD - The Finalists for 2022  (неопр.). MOBILE GAME AWARDS. Дата обращения: 20 марта 2022. Архивировано 18 марта 2022 года.

Ссылки

[править |править код]
Перейти к шаблону «Игровые движки»
Графические
Физические
Общего назначения
2D
3D
Специализированные
2D
Свободные
LÖVE
Ren'Py
Stratagus
VASSAL
Wintermute
Проприетарные
M.U.G.E.N
NScripter
RPG Maker
3D
Другие
На эту статьюне ссылаются другие статьи Википедии.
Пожалуйста, установите ссылки в соответствии спринятыми рекомендациями.(11 июня 2022)
Источник —https://ru.wikipedia.org/wiki/Raylib
Категории:
Скрытые категории: