Raylib

редактировать
raylib
официальный логотип raylib
Разработчик (и) Рамон Сантамария и участники
Первый выпускНоябрь 18, 2013; 6 лет назад (18.11.2013)
Стабильный выпуск 3.0.0 / 1 апреля 2020 г.; 6 месяцев назад (2020-04-01)
Репозиторий github.com / rayan5 / raylib
Написано наC, в частности на C99
Платформа Windows, Linux, macOS, FreeBSD, Android, Raspberry Pi, HTML5
Тип API
Лицензия Лицензия zlib
Веб-сайтwww.raylib.com

Raylib (стилизовано в нижнем регистре as raylib ) - это кроссплатформенная библиотека с открытым исходным кодом для разработки программного обеспечения , написанная на C. Библиотека предназначена для быстрого и простого создания графических приложений и игр. Официальный сайт представляет его как «простую и удобную в использовании библиотеку для программирования видеоигр».

Библиотека вдохновлена ​​графической библиотекой Borland BGI и платформой XNA и особенно хорошо подходит для создания прототипов, инструментов, графических приложений, встроенных систем и образование. Исходный код написан на простом языке C (C99 ) и в первую очередь предназначен для начинающих и распространяется под лицензией с открытым исходным кодом, сертифицированной zlib/libpng OSI. Он поддерживает компиляцию для многих целевых платформ, включая Windows, GNU Linux, macOS, FreeBSD, Android, Raspberry Pi и HTML5.

raylib был перенесен на более чем 40 языков программирования в форме привязок, что позволяет пользователям получать доступ к функциям библиотеки на их любимом языке программирования.

Содержание
  • 1 История
  • 2 Характеристики
  • 3 Принятие и внедрение
  • 4 Архитектура программного обеспечения
    • 4.1 Модули
    • 4.2 Привязки
    • 4.3 Дополнения
  • 5 Награды
  • 6 Примеры
  • 7 См. также
  • 8 Ссылки
  • 9 Внешние ссылки
История

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

raylib 1.0 был выпущен в ноябре 2013 года и содержал около 80 функций для управления окнами и вводом, рисования основных форм, загрузки и рисования текстур, загрузки шрифтов, рисования текста, рисования основных трехмерных фигур, управления аудиосистемой и звука. загрузка и воспроизведение файлов. Первая версия raylib прошла 8 итераций subversion (от raylib 1.1 до raylib 1.8), увеличивая версию за версией с добавлением новых модулей, новых платформ и новых функций в течение 5 лет. Среди наиболее заметных улучшений - поддержка Android, WebAssembly и Raspberry Pi, несколько бэкэндов OpenGL, VR поддержка и +50 примеров для изучения и изучения.

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

raylib 3.0 был выпущен в апреле 2020 года с несколькими крупными внутренними изменениями дизайна для улучшения переносимости библиотеки и создания привязок. Некоторые из ключевых изменений raylib 3.0 заключались в перемещении глобальных переменных в контексты глобального состояния, поддержке настраиваемых распределителей памяти, централизованной файловой системе для загрузки данных в память и коллекции +115 примеров кода для изучения и изучения.

raylib продолжал расти и совершенствоваться на протяжении нескольких лет, добавляя множество функций, но всегда сохраняя свою основную ценность: это простая и легкая в использовании библиотека для программирования.

Особенности

raylib имеет следующие функции:

  • Поддержка многих платформ, включая Windows, Linux, macOS, Android и HTML5
  • Поддержка OpenGL 1.1, 2.1, 3.3 и OpenGL ES 2.0 в качестве бэкэнда
  • Загрузка и рисование изображений, текстур и шрифтов из нескольких форматов
  • Загрузка и воспроизведение звука из нескольких форматов и поддержка потоковой передачи
  • Математические операции для векторов, матриц и кватернионов
  • 2D-рендеринг с помощью камеры, включая автоматическое пакетирование спрайтов
  • Рендеринг 3D-моделей, включая пользовательские шейдеры и шейдеры постобработки
  • Поддержка VR, включая настраиваемые параметры HMD устройства
  • Поддержка как анимированных, так и неанимированных 3D и 2D моделей
  • Большой сборник примеров n с +115 примерами кода
Прием и принятие

raylib был в первую очередь предназначен для обучения видеоиграм и графическому программированию, но из-за своей простоты и простоты использования он также был принят многими разработчиками игр-любителей.

Существуют активные и растущие сообщества во многих сетях, таких как Reddit и Discord.

GitHub перечисляет более 120 проектов по теме raylib.

Архитектура программного обеспечения

Модули

архитектура raylib с версии 3.0.0

raylib состоит из нескольких модулей, которые доступны программисту через API. Каждый модуль содержится в одном файле кода C, и некоторые модули могут использоваться в автономном режиме:

  • core - обрабатывает создание окна и инициализацию контекста OpenGL, а также управление вводом (клавиатура, мышь, геймпад). и сенсорный ввод)
  • rlgl - Обрабатывает бэкэнд OpenGL, абстрагируя несколько версий от общего API. Этот модуль можно использовать как автономный.
  • shape - обрабатывает базовую визуализацию 2D-форм (линия, прямоугольник, круг...) и базовое обнаружение столкновений
  • textures - обрабатывает загрузку изображений и текстур (CPU и GPU) и управление, включая функции управления изображениями (кадрирование, масштаб, оттенок...)
  • текст - обрабатывает загрузку шрифтов как таблицу спрайтов и рендеринг текста, а также включает некоторые функции управления текстом (объединение, разделение, замена...)
  • модели - обрабатывает загрузку и рисование трехмерных моделей, включая поддержку анимированных моделей
  • raudio - обрабатывает управление аудиоустройствами, загрузку и воспроизведение аудиофайлов, включая поддержку потоковой передачи. Этот модуль можно использовать как автономный.
  • raymath - Предоставляет набор математических функций для структур Vector2, Vector3, Quaternion и Matrix

Bindings

raylib имеет языковые привязки для почти 50 различных языков программирования, предоставленных несколькими участниками. Некоторые из языков включают: Rust, Go, C# и Lua. Все привязки можно просмотреть в файле BINDINGS.md в репозитории GitHub библиотеки. Многие новые языки программирования, такие как Beef, Odin и Ring, обеспечивают привязку к raylib.

Язык программирования Ring включает raylib в стандартную библиотеку.

Надстройки

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

  • raygui - Модуль графического интерфейса непосредственного режима для простой разработки инструментов с использованием raylib
  • Physac - физический модуль, предназначенный для использования с raylib
  • libpartikel - модуль системы частиц для raylib
  • spine-raylib - Модуль интеграции анимации Spine для raylib
  • cimgui-raylib - Уважаемый модуль интеграции Imgui для raylib
Awards

In В апреле 2019 года разработчик raylib был награжден премией Google Open Source Peer Bonus за вклад в экосистему с открытым исходным кодом с помощью raylib.

В августе 2020 года raylib был награжден Epic MegaGrant от Epic Games для поддержки разработки raylib.

Примеры

Следующая программа на языке программирования C использует raylib для создания белого окна с некоторым центрированным текстом.

#include "raylib.h" int main (void) {const int screenWidth = 800; const int screenHeight = 450; InitWindow (screenWidth, screenHeight, "пример raylib [core] - основное окно"); SetTargetFPS (60); пока (! WindowShouldClose ()) {BeginDrawing (); ClearBackground (RAYWHITE); DrawText («Поздравляю! Вы создали свое первое окно!», 190, 200, 20, СЕРЫЙ); EndDrawing (); } Закрытое окно(); возврат 0; }
См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
  1. ^"Лицензия".
  2. ^"raylib GitHub".
  3. ^Thomas (2019-08-01). «Лучшие движки для 2D-игр: полный список (2020)». Томас Жервро. Проверено 20 июля 2020 г.
  4. ^«Игра-змейка, написанная на PHP (с Raylib)». thephp.website. Проверено 20 июля 2020 г.
  5. ^"rayan5 / raylib". GitHub. Проверено 15 июля 2020 г.
  6. ^«Релизы · rayan5 / raylib». GitHub. Проверено 15 июля 2020 г.
  7. ^«история raylib». raylib история github.
  8. ^262588213843476. «Райлиб: 6 лет веселья». Суть. Проверено 23 июля 2020 г. CS1 maint: числовые имена: список авторов (ссылка )
  9. ^«raylib – A C ++ Game Library Perfect for Beginners». Www.gamefromscratch.com. Дата обращения 2020- 20 июля.
  10. ^«Raylib 2.5 Released». Www.gamefromscratch.com. Дата обращения 20 июля 2020.
  11. ^«Присоединяйтесь к серверу Raylib Discord!». Discord. Проверено 07 июля 2020 г. -15.
  12. ^«Создавайте программное обеспечение лучше вместе». GitHub. Проверено 15 июля 2020 г.
  13. ^«rayan5 / raylib». GitHub. Проверено 15 июля 2020 г.
  14. ^Начало программирования на кольцах - от новичка к профессионалу | Мансур Аюни | Apress.
  15. ^«Разработка игр с использованием RingRayLib - документация Ring 1.13». Ring-lang.sourceforge.net. Проверено 20 июля 2020 г.
  16. ^Ray ( 2020-07-15), raygui, получено 15.07.2020
  17. ^Fisac, Víctor (2020-07-14), victorfisac / Physac, получено 2020- 15.07.
  18. ^Бриманн, Дэвид Линус (10.06.2020), dbriemann / libpartikel, получено 15.07.2020
  19. ^ВЕРЕМСОФТ (27.06.2020), ВЕРЕМСОФТ / spine-raylib-runtimes, получить ed 2020-07-15
  20. ^WEREMSOFT (2020-07-12), WEREMSOFT / c99-raylib-cimgui-template, получено 15.07.2020
  21. ^"Победители равноправного бонуса Google Open Source Peer Bonus здесь! ". Блог Google с открытым исходным кодом. Проверено 15 июля 2020 г.
  22. ^«RayLib получает Epic MegaGrant». GameFromScratch.com. 2020-08-07. Проверено 10 августа 2020 г.
Внешние ссылки
Последняя правка сделана 2021-06-03 09:25:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте