Райлиб - Raylib
Эта статья содержит контент, который написан как Реклама.Сентябрь 2020) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | Рамон Сантамария и участники |
---|---|
изначальный выпуск | 18 ноября 2013 г. |
Стабильный выпуск | 3.0.0 / 1 апреля 2020 г. |
Репозиторий | github |
Написано в | C, конкретно C99 |
Платформа | Windows, Linux, macOS, FreeBSD, Android, Raspberry Pi, HTML5 |
Тип | API |
Лицензия | zlib Лицензия[1][2] |
Интернет сайт | www |
Райлиб (стилизовано в нижнем регистре как Райлиб) это кросс-платформенный Открытый исходный код разработка программного обеспечения библиотека. Библиотека предназначена для создания графических приложений и игр. Официальный сайт представляет ее как «простую и удобную в использовании библиотеку для программирования видеоигр». [3][4]
Библиотека очень вдохновлена Графическая библиотека Borland BGI и по Фреймворк XNA и он особенно хорошо подходит для создания прототипов, инструментов, графических приложений, встроенных систем и образования. Исходный код написан на простом C (C99 ) и в первую очередь предназначен для начинающих, распространяется под zlib / libpng OSI сертифицированная лицензия с открытым исходным кодом. Он поддерживает компиляцию для многих целевых платформ, включая Windows, GNU Linux, macOS, FreeBSD, Android, Raspberry Pi и HTML5.
raylib перенесен на более чем 40 языки программирования (но это нестабильные порты) в виде привязок, позволяющих пользователям получать доступ к функциям библиотеки на их любимом языке программирования.[5]
История
Разработка 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 поддержка и десятки примеров для изучения и изучения.
raylib 2.0 был выпущен в июле 2018 года, и впервые библиотека удалила все внешние зависимости, все необходимые библиотеки включены и скомпилированы вместе с raylib. В этой версии также представлен ряд параметров конфигурации функций библиотеки для минимизации размера, и она значительно улучшена. система сборки, поддерживая различные непрерывная интеграция системы. В течение следующих двух лет были пересмотрены и улучшены несколько частей библиотеки, а также вся экосистема библиотеки. Одна итерация raylib 2.5 была выпущена в середине этого процесса.
raylib 3.0 был выпущен в апреле 2020 года с несколькими крупными внутренними изменениями для улучшения переносимости библиотеки и создания привязок. Некоторые из ключевых изменений raylib 3.0 заключались в перемещении глобальных переменных в контексты глобального состояния, поддержке настраиваемых распределителей памяти, централизованной файловой системе для загрузки данных в память и коллекции +115 примеров кода для изучения и изучения.
raylib продолжал расти и совершенствоваться в течение нескольких лет, добавляя множество функций, но всегда сохраняя свою основную ценность: это простая и легкая в использовании библиотека, позволяющая наслаждаться программированием.[6][7][8]
Функции
raylib имеет следующие функции:[9][10]
- Поддержка многих платформ, включая Windows, Linux, macOS, Android и HTML5.
- Поддержка для OpenGL 1.1, 2.1, 3.3 и OpenGL ES 2.0 как бэкэнд
- Загрузка и отрисовка изображений, текстур и шрифтов из нескольких форматов
- Загрузка и воспроизведение аудио из нескольких форматов и поддержка потоковой передачи
- Математические операции для векторов, матриц и кватернионов
- 2D-рендеринг с помощью камеры, включая автоматическое пакетирование спрайтов
- Рендеринг 3D-моделей, включая пользовательские шейдеры и шейдеры постобработки
- Поддержка для VR, в том числе настраиваемый HMD устройство параметры
- Поддержка как анимированных, так и неанимированных 3D и 2D моделей
- Коллекция больших примеров с +115 примеров кода
Прием и усыновление
raylib изначально предназначался для обучения видеоиграм и программированию графики, но из-за своей простоты и простоты использования он также был принят многими разработчиками игр-любителей.
Есть активные и растущие сообщества во многих сетях, таких как Reddit и Discord.[11]
GitHub перечисляет более 120 проектов по теме raylib.[12][13]
Архитектура программного обеспечения
Модули
raylib состоит из нескольких модулей, которые доступны программисту через API. Каждый модуль содержится в одном файле кода C, и некоторые модули могут использоваться в автономном режиме:
- core - обрабатывает создание окна и OpenGL инициализация контекста, а также управление вводом (клавиатура, мышь, геймпад и сенсорный ввод)
- rlgl - Ручки OpenGL backend, абстрагируя несколько версий от общего API. Этот модуль можно использовать как автономный.
- shape - обрабатывает базовую визуализацию 2D-форм (линия, прямоугольник, круг ...) и базовое обнаружение столкновений.
- текстуры - обрабатывает загрузку изображений и текстур (CPU и GPU) и управление, включая функции обработки изображений (кадрирование, масштаб, оттенок ...)
- текст - обрабатывает загрузку шрифтов в виде таблицы спрайтов и рендеринга текста, также включает некоторые функции управления текстом (объединение, разделение, замена ...)
- models - обрабатывает загрузку и рисование 3D-моделей, включая поддержку анимированных моделей.
- raudio - обрабатывает управление аудиоустройствами, загрузку и воспроизведение аудиофайлов, включая поддержку потоковой передачи. Этот модуль можно использовать как автономный.
- raymath - предоставляет набор математических функций для структур Vector2, Vector3, Quaternion и Matrix.
Привязки
у Райлиба языковые привязки для почти 50 различных языков программирования, предоставленных несколькими участниками. Некоторые из языков включают: Ржавчина, Идти, C # и Lua. Все привязки можно просмотреть в файле BINDINGS.md в репозитории GitHub библиотеки. Многие новые языки программирования, такие как Beef, Odin и Ring, обеспечивают привязку к raylib.
Язык программирования Ring включает raylib в стандартную библиотеку.[14][15]
Дополнения
Сообщество raylib внесло свой вклад в несколько надстроек raylib для расширения функций и связи raylib с другими библиотеками. Некоторые из модулей:
- райгуи - Графический интерфейс немедленного режима модуль для простой разработки инструментов с использованием raylib[16]
- Physac - физический модуль, предназначенный для использования с raylib[17]
- libpartikel - модуль системы частиц для raylib[18]
- spine-raylib - модуль интеграции анимации позвоночника для raylib[19]
- cimgui-raylib - Уважаемый модуль интеграции Imgui для raylib[20]
Награды
В апреле 2019 года разработчик raylib был награжден премией Google Open Source Peer Bonus за вклад в экосистему с открытым исходным кодом с помощью raylib.[21]
В августе 2020 года Райлиб был награжден призом Epic MegaGrant от Эпические игры для поддержки разработки raylib. [22]
Примеры
Следующая программа в Язык программирования C использует raylib для создания белого окна с некоторым центрированным текстом.
#включают "raylib.h"int главный(пустота){ const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "пример raylib [core] - основное окно"); SetTargetFPS(60); пока (!WindowShouldClose()) { Начать рисование(); ClearBackground(РЭЙУАЙТ); DrawText(«Поздравляю! Вы создали свое первое окно!», 190, 200, 20, СВЕТЛО-СЕРЫЙ); EndDrawing(); } Закрытое окно(); возвращаться 0;}
Смотрите также
Рекомендации
- ^ "Лицензия".
- ^ "raylib GitHub".
- ^ Томас (2019-08-01). «Лучшие движки для 2D-игр: полный список (2020)». Томас Жервро. Получено 2020-07-20.
- ^ «Игра-змейка, написанная на PHP (с Raylib)». thephp.website. Получено 2020-07-20.
- ^ "raysan5 / raylib". GitHub. Получено 2020-07-15.
- ^ «Релизы · райсан5 / райлиб». GitHub. Получено 2020-07-15.
- ^ "история raylib". raylib история github.
- ^ 262588213843476. "raylib: 6 лет веселья". Суть. Получено 2020-07-23.CS1 maint: числовые имена: список авторов (связь)
- ^ "raylib – Игровая библиотека C ++, идеально подходящая для начинающих". www.gamefromscratch.com. Получено 2020-07-20.
- ^ «Релиз Райлиб 2.5». www.gamefromscratch.com. Получено 2020-07-20.
- ^ "Присоединяйтесь к серверу Raylib Discord!". Раздор. Получено 2020-07-15.
- ^ «Создавайте программное обеспечение лучше вместе». GitHub. Получено 2020-07-15.
- ^ "raysan5 / raylib". GitHub. Получено 2020-07-15.
- ^ Программирование на начальном уровне - от новичка к профессионалу | Мансур Аюни | Apress.
- ^ «Разработка игр с использованием RingRayLib - документация Ring 1.13». ring-lang.sourceforge.net. Получено 2020-07-20.
- ^ Рэй (2020-07-15), raygui / raygui, получено 2020-07-15
- ^ Фисак, Виктор (14.07.2020), victorfisac / Physac, получено 2020-07-15
- ^ Бриманн, Дэвид Линус (2020-06-10), dbriemann / libpartikel, получено 2020-07-15
- ^ ВЕРЕМСОФТ (2020-06-27), WEREMSOFT / spine-raylib-время выполнения, получено 2020-07-15
- ^ ВЕРЕМСОФТ (2020-07-12), WEREMSOFT / c99-raylib-cimgui-template, получено 2020-07-15
- ^ "Победители равноправного бонуса Google Open Source уже здесь!". Блог Google с открытым исходным кодом. Получено 2020-07-15.
- ^ «RayLib получает грант Epic MegaGrant». GameFromScratch.com. 2020-08-07. Получено 2020-08-10.