Рэйлиб
![]() | Эта статья содержит контент, написанный как реклама . ( сентябрь 2020 г. ) |
![]() | |
Разработчик(и) | Рамон Сантамария и участники |
---|---|
Первоначальный выпуск | 18 ноября 2013 г |
Стабильная версия | 5.0.0
/ 18 ноября 2023 г |
Репозиторий | github |
Написано в | C , в частности C99 |
Платформа | Windows , Linux , macOS , FreeBSD , Android , Raspberry Pi , HTML5 |
Тип | API |
Лицензия | Лицензия zlib [1] [2] |
Веб-сайт | www |
Raylib (стилизовано под raylib ) — кроссплатформенная с открытым исходным кодом разработки программного обеспечения библиотека . Библиотека создана для создания графических приложений и игр. [3] [4]
Библиотека предназначена для создания прототипов, инструментов, графических приложений, встроенных систем и образования. Исходный код написан на простом языке C ( C99 ), который распространяется под zlib/libpng OSI лицензией открытого исходного кода, сертифицированной . Он поддерживает компиляцию на несколько целевых платформ, включая Windows, Linux, macOS, FreeBSD, Android, Raspberry Pi и HTML5.
raylib портирован на более чем 50 языков программирования в виде привязок, но многие из этих портов нестабильны. [5]
История
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( сентябрь 2023 г. ) |
Разработка raylib была начата в августе 2013 года Рамоном Сантамарией для поддержки курса по разработке игр, ориентированного на студентов, не имеющих предыдущего опыта программирования и художественного профиля. В ходе курса raylib была доработана на основе отзывов студентов, и к июню 2014 года библиотеку начали демонстрировать на нескольких мероприятиях по разработке игр в Барселоне .
raylib 1.0 был выпущен в ноябре 2013 года и содержал около 80 функций для управления окнами и входами, базового рисования 2D и 3D фигур, загрузки и рисования текстур, загрузки шрифтов, рисования текста, управления аудиосистемой, а также загрузки и воспроизведения аудиофайлов. У первой версии raylib в течение пяти лет было восемь последующих второстепенных выпусков (от raylib 1.1 до raylib 1.8), в каждом из которых были представлены некоторые новые функции. Среди наиболее заметных улучшений — поддержка Android , WebAssembly и Raspberry Pi , несколько OpenGL бэкендов , поддержка VR и десять примеров.
raylib 2.0 был выпущен в июле 2018 года и удалил все внешние зависимости из системы сборки. Он также предоставил ряд вариантов конфигурации в системе сборки , чтобы минимизировать размер и увеличить поддержку, поддерживая различные системы непрерывной интеграции . В течение следующих двух лет части библиотеки были обновлены, и экосистема была построена. В этот период был выпущен единственный второстепенный выпуск — raylib 2.5.
raylib 3.0 был выпущен в апреле 2020 года, в котором были проведены рефакторинг многих частей кода для улучшения переносимости и привязок. Он включал перемещение глобальных переменных в контексты, добавление поддержки пользовательских распределителей памяти, файловую систему для загрузки ресурсов и более 115 примеров кода. В декабре 2020 года он получил небольшое обновление raylib 3.5.
raylib 4.0 был выпущен в ноябре 2021 года и включает в себя полную проверку именования на предмет согласованности и согласованности библиотеки: были проверены имена функций, параметры, описания, комментарии и выходные сообщения журнала. Он добавил внутреннюю систему автоматизации событий и предоставил пользователю возможность управления игровым циклом. Он также включает некоторые из своих внутренних библиотек, которые можно использовать как автономные модули: rlgl и raymath. Zig Языки программирования и Odin официально поддерживают raylib.
raylib 4.2 был выпущен в августе 2022 года. [6]
raylib 4.5 был выпущен в марте 2023 года, через 7 месяцев после последнего выпуска. В этом обновлении появилась поддержка ANGLE на настольных платформах, новый модуль камеры, поддержка моделей M3D и анимации M3D/GLTF, совместимость с форматом аудиофайлов QOA , совершенно новый модуль загрузки сжатых текстур ( rl_gputex ), обзоры в rlgl и модули rshapes , проверка структур данных ( IsImageReady()
, IsTextureReady()
и IsSoundReady()
) для многих структур raylib и многих других улучшений. Это было самое большое обновление библиотеки на сегодняшний день.
raylib 5.0 был выпущен в ноябре 2023 года, улучшая поддержку будущих портов платформы. [7]
Функции
[ редактировать ]raylib предлагает следующие возможности: [8] [9]
- Поддержка нескольких платформ, включая Windows, Linux, macOS, Raspberry Pi, Android и HTML5.
- Поддержка OpenGL 1.1, 2.1, 3.3, 4.3 и OpenGL ES 2.0 в качестве серверной части.
- Загрузка и рисование изображений, текстур и шрифтов из нескольких форматов.
- Загрузка и воспроизведение аудио из нескольких форматов и поддержка потоковой передачи.
- Математические операции для векторов, матриц и кватернионов
- 2D-рендеринг с помощью камеры, включая автоматическую пакетную обработку спрайтов
- Рендеринг 3D-моделей, включая пользовательские шейдеры и шейдеры постобработки.
- Поддержка моделирования виртуальной реальности с настраиваемыми устройства HMD. параметрами
- Поддержка анимированных, а также неанимированных 3D и 2D моделей.
Прием и усыновление
[ редактировать ]По состоянию на январь 2024 г. [update] GitHub перечисляет около 900 проектов, соответствующих raylib
тема. [10]
Архитектура программного обеспечения
[ редактировать ]Модули
[ редактировать ]
raylib состоит из нескольких модулей, которые доступны программисту через API .
- ядро — обрабатывает создание окна и инициализацию контекста OpenGL , а также управление вводами (клавиатура, мышь, геймпад и сенсорный ввод).
- rlgl — обрабатывает серверную часть OpenGL , абстрагируя несколько версий к общему API. Этот модуль можно использовать автономно.
- фигуры — обрабатывает базовый рендеринг 2D-форм (линия, прямоугольник, круг...) и базовое обнаружение столкновений.
- текстуры — обрабатывает загрузку изображений и текстур (ЦП и графический процессор) и управление ими, включая функции манипулирования изображениями (обрезка, масштабирование, оттенок и т. д.).
- text — обрабатывает загрузку шрифтов в виде таблицы спрайтов и рендеринг текста. Также включает в себя некоторые функции обработки текста (объединение, разделение, замена и т. д.).
- модели – обрабатывает загрузку и рендеринг 3D-моделей, включая поддержку анимированных моделей.
- radio — управляет управлением аудиоустройствами, а также загрузкой и воспроизведением аудиофайлов, включая поддержку потоковой передачи. Этот модуль можно использовать автономно.
- raymath — предоставляет набор математических функций для векторов, матриц и кватернионов.
Привязки
[ редактировать ]raylib имеет привязки для более чем 50 различных языков программирования, созданных его сообществом, включая Rust , Go , C# , Lua , Python и Nim . Список привязок доступен в файле BINDINGS.md. [12] в репозитории raylib на GitHub .
Дополнения
[ редактировать ]Сообщество raylib предоставило несколько дополнений для расширения возможностей и связи raylib с другими библиотеками. Некоторые из модулей:
- raygui — модуль графического интерфейса немедленного режима для raylib [13]
- physac — физический модуль, предназначенный для использования с raylib [14]
- libpartikel — модуль системы частиц для raylib [15]
- Spine-raylib — модуль интеграции анимации Spine для raylib. [16]
- cimgui-raylib – Дорогой модуль интеграции Imgui для raylib [17]
Награды
[ редактировать ]- В апреле 2019 года Сантамария была награждена премией Google Open Source Peer Bonus за вклад в экосистему открытого исходного кода с помощью raylib. [18]
- В августе 2020 года raylib получила Epic MegaGrant от Epic Games на поддержку ее развития. [19]
- В апреле 2021 года Сантамария была награждена еще одной наградой Google Open Source Peer Bonus по тем же причинам. [20]
- В марте 2022 года raylib был номинирован в категории «ЛУЧШИЙ ИГРОВОЙ ДВИГАТЕЛЬ» на MOBILE GAMES AWARDS 2022. [21]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Лицензия» .
- ^ «Рэйлиб GitHub» . Гитхаб . 10 октября 2021 г.
- ^ Томас (01 августа 2019 г.). «Лучшие 2D-игровые движки: полный список (2020)» . Томас Жерво . Проверено 20 июля 2020 г.
- ^ «Змеиная игра, написанная на PHP (с Raylib)» . thephp.сайт . 12 апреля 2020 г. Проверено 20 июля 2020 г.
- ^ "raysan5/raylib" . Гитхаб . Проверено 15 июля 2020 г.
- ^ «Файл HISTORY.md» . www.github.com . 11 августа 2022 г. Проверено 15 октября 2022 г.
- ^ Вололо (1 декабря 2023 г.). «Релиз: Raylib 5.0 для PS4 и PS Vita» . Проверено 15 января 2024 г.
- ^ «raylib – игровая библиотека C++, идеальная для начинающих» . www.gamefromscratch.com . 24 июля 2016 года . Проверено 20 июля 2020 г.
- ^ «Выпущен Raylib 2.5» . www.gamefromscratch.com . 3 июня 2019 года . Проверено 20 июля 2020 г.
- ^ «raylib · Темы GitHub» . Гитхаб . Проверено 15 января 2024 г.
- ^ "рейлиб" . Проверено 28 октября 2021 г.
- ^ Файл BINDINGS.md
- ^ Рэй (15 июля 2020 г.), Raysan5/raygui , получено 15 июля 2020 г.
- ^ Фисак, Виктор (14 июля 2020 г.), victorfisac/Physac , получено 15 июля 2020 г.
- ^ Бриманн, Дэвид Линус (10 июня 2020 г.), dbriemann/libpartikel , получено 15 июля 2020 г.
- ^ WEREMSOFT (27 июня 2020 г.), WEREMSOFT/spine-raylib-runtimes , получено 15 июля 2020 г.
- ^ WEREMSOFT (12 июля 2020 г.), WEREMSOFT/c99-raylib-cimgui-template , получено 15 июля 2020 г.
- ^ «Победители Google Open Source Peer Bonus уже здесь!» . Блог Google с открытым исходным кодом . Проверено 15 июля 2020 г.
- ^ «rayLib получает Epic MegaGrant» . GameFromScratch.com . 07.08.2020 . Проверено 10 августа 2020 г.
- ^ «Объявляем первую группу победителей Google Open Source Peer Bonus в 2021 году!» . Блог Google с открытым исходным кодом . Проверено 27 апреля 2021 г.
- ^ «MOBILE GAMES AWARD — Финалисты 2022 года» . НАГРАДЫ МОБИЛЬНЫХ ИГРОВ . Проверено 20 марта 2022 г.
Внешние ссылки
[ редактировать ]- Интерфейсы прикладного программирования
- Библиотеки C (язык программирования)
- Графические библиотеки
- Аудио библиотеки
- Кроссплатформенное программное обеспечение
- API-интерфейсы Windows
- API-интерфейсы Linux
- API-интерфейсы MacOS
- Разработка видеоигр
- Программное обеспечение для разработки видеоигр для Linux