Есть в мире разработки игр особый тип инструментов, которые не пытаются выглядеть как космический корабль. Они не встречают пользователя стартовым экраном на полгигабайта, не предлагают двадцать вкладок, где половина кнопок пугает даже опытного разработчика, и не делают вид, что без встроенного маркетплейса ассетов человечество немедленно прекратит существование. Raylib всегда был из другой породы. Это не огромный игровой движок, а простая, открытая и очень честная библиотека для тех, кто хочет писать игры, графические приложения, прототипы и инструменты почти напрямую, без ощущения, что между тобой и кодом сидит целый департамент корпоративной архитектуры.
И вот Raylib обновился до версии 6.0. На первый взгляд — очередной релиз популярного open source-проекта. Ну выпустили, ну добавили функции, ну закрыли баги. Интернет это переварит за полдня и побежит спорить о чём-нибудь более бесполезном. Но именно с Raylib 6.0 история интереснее. Потому что это не просто косметическое обновление. Автор проекта называет релиз самым крупным за всю историю библиотеки, и цифры действительно выглядят не как «мы поправили пару мест и сменили номер версии»: более 330 закрытых issues, свыше 2000 коммитов с прошлого релиза, больше 20 новых функций API, более 70 новых примеров и свыше 210 новых участников сообщества. Для библиотеки, которая живёт уже больше 12 лет, это не просто очередная галочка в changelog, а заметная точка взросления.
Raylib всегда держался на простой идее: разработка игр не обязана начинаться с борьбы с инструментом. Хочешь окно — вот окно. Хочешь нарисовать текстуру — рисуй. Хочешь звук, ввод, камеру, простую 3D-сцену — бери и пробуй. В официальном описании Raylib подчёркивается, что библиотека написана на C99, не требует внешних зависимостей, работает на разных платформах, поддерживает OpenGL, 2D, 3D, аудио, шейдеры, модели, VR-рендеринг, а ещё имеет привязки более чем к 60 языкам программирования. То есть это не игрушечная библиотека «для первых шагов», как её иногда лениво воспринимают. Это компактный инструмент, который многие используют именно потому, что он не забирает управление у разработчика.
Но главное в версии 6.0 — новый программный рендерер rlsw. И здесь начинается самое интересное. Раньше Raylib, как и большинство подобных инструментов, опирался на графическое ускорение. Это нормально: игры любят GPU, GPU любит игры, все делают вид, что счастливы. Новый backend меняет саму границу применимости Raylib: теперь библиотека может работать полностью на CPU, без видеокарты. По словам автора проекта, rlsw позволяет запускать Raylib через процессор без изменений в пользовательском коде, хотя программный рендеринг ожидаемо медленнее аппаратного. При этом он всё ещё способен тянуть базовые приложения на уровне 30–60 кадров в секунду.
На бумаге это звучит как техническая деталь. На деле — это почти философское заявление. Потому что современная разработка игр давно привыкла к мысли, что всё должно крутиться вокруг мощного железа, видеокарт, драйверов, API, графических слоёв и вечного ритуального танца с совместимостью. А Raylib 6.0 будто говорит: «А что, если игра или графическое приложение должны запускаться не только там, где есть нормальная GPU-инфраструктура?» И внезапно открываются совсем другие сценарии: микроконтроллеры, встроенные устройства, экспериментальные платы, RISC-V-железо, серверный рендеринг, headless-среды, генерация изображений напрямую в память. Да, не для каждого проекта. Никто в здравом уме не будет делать на CPU огромный 3D-блокбастер. Хотя, зная людей, кто-нибудь обязательно попробует, потому что запреты для разработчиков — это просто особый вид приглашения.
В релизе отдельно отмечается, что новый software renderer уже показал пользу на порте Raylib для ESP32, а также открывает дорогу устройствам на RISC-V, которые часто приходят без GPU. И это важная деталь. Raylib 6.0 не просто добавляет «ещё одну галочку» в списке возможностей. Он делает библиотеку более живучей. Она становится не только инструментом для ПК, веба или мобильных экспериментов, а чем-то ближе к универсальному графическому слою для странных, маленьких, нестандартных и будущих устройств. А будущее, как обычно, выглядит странно, недорого и с документацией, написанной человеком, который явно не хотел, чтобы её кто-то читал.
Вместе с программным рендерером появился и новый backend PLATFORM_MEMORY. Он позволяет рендерить 2D и 3D в платформенно-независимый framebuffer в памяти, работать без окна и напрямую экспортировать кадры в изображения. Это уже не просто история про «запустить игру на слабом железе». Это полезно для серверной графики, генерации картинок, автоматических тестов, инструментов обработки изображений и всяких рабочих пайплайнов, где нужно получить результат без полноценного графического окружения. Для обычного пользователя это может звучать скучно. Для разработчика инструментов — это примерно как найти в ящике переходник, который спасает весь проект за ночь до дедлайна.
Ещё одна важная линия релиза — новые платформенные backend’ы. В Raylib 6.0 появились экспериментальные Win32 и Emscripten backend’ы. Win32 backend напрямую использует вызовы Windows API и может работать как с OpenGL-ускоренными окнами, так и с GDI-окнами для software renderer. Emscripten backend уходит от зависимости libglfw.js и напрямую реализует веб-функциональность, поддерживая и программный рендеринг в обычный 2D canvas, и аппаратный WebGL-рендеринг, когда он нужен. В обоих случаях автор честно помечает backend’ы как экспериментальные, потому что реальность платформенной разработки, как мы знаем, любит прятать грабли не на видном месте, а под ковриком «всё уже работает».
Но если смотреть шире, то смысл этих изменений не только в поддержке конкретных платформ. Raylib становится ещё более модульным. На официальном сайте библиотека и так описывается как набор небольшого числа хорошо определённых, самостоятельных модулей, некоторые из которых можно использовать отдельно от всей библиотеки. Версия 6.0 продолжает эту линию: меньше жёсткой сцепки, больше чистых backend’ов, понятнее архитектура, проще портировать, проще поддерживать. Это не тот тип эволюции, который красиво смотрится в рекламном ролике. Здесь нет дракона, отражённого в зрачке героя, и воды, которая симулирует моральную пустоту человечества. Зато есть то, что разработчики действительно ценят через полгода после старта проекта: меньше магии, меньше зависимости от чёрных коробок, больше контроля.
Raylib 6.0 также принёс переработанные fullscreen-режимы и high-DPI scaling, обновлённую систему скелетной анимации, переработанную build config-систему, новый File System API, новый Text Management API, новый инструмент rexm для управления примерами и более 70 новых обучающих примеров. В changelog это выглядит как длинный технический список, но за ним читается понятная логика: библиотеку не просто расширяли, её приводили в порядок. Такие релизы обычно менее эффектны для публики, зато они важнее для долгой жизни проекта. Потому что open source умирает не только от отсутствия фич. Он умирает от накопленного хаоса, где каждый новый кусок держится на честном слове, старом issue и молитве древним компиляторам.
Самое привлекательное в Raylib — он остаётся понятным. В мире, где игровые движки всё чаще напоминают отдельные операционные системы, Raylib не пытается конкурировать с ними на их поле. Он не обещает заменить Unreal или Unity. Он не говорит: «Теперь делайте на мне всё, от мобильной фермы до MMO с открытым миром». И именно поэтому он интересен. У него другая роль. Raylib — это инструмент для тех, кто хочет быстро думать кодом. Для обучения, прототипов, джемов, небольших игр, визуальных экспериментов, графических утилит, демосцены, embedded-проектов, странных портов и личных инструментов. Для всех тех случаев, где большой движок слишком тяжёлый, а писать всё с нуля слишком долго.
В этом и есть причина, почему релиз 6.0 выглядит важнее, чем просто обновление библиотеки. Он укрепляет Raylib именно в той нише, где тот всегда был силён: простота, переносимость, контроль и минимальная дистанция между идеей и работающим окном. Новый software renderer добавляет к этому ещё одну степень свободы. Теперь вопрос звучит не только «на каких платформах Raylib работает?», а почти наоборот: «а где он теперь вообще не сможет запуститься?» И ответ становится всё менее очевидным.
Конечно, не стоит превращать релиз в сказку. Программный рендеринг не отменяет физику. CPU не становится GPU только потому, что нам очень хочется. Экспериментальные backend’ы потребуют тестирования. Старые проекты могут столкнуться с изменениями в API и сборке. Крупные коммерческие игры всё равно будут выбирать инструменты под конкретные задачи, а не под настроение open source-романтики. Но сила Raylib как раз не в том, что он обещает чудо. Он обещает честный, компактный, понятный путь к графике и игре. И в 2026 году это звучит почти вызывающе.
Мой вывод простой: Raylib 6.0 — это релиз не про «ещё больше функций», а про расширение территории. Библиотека стала лучше подходить для нестандартных устройств, headless-рендеринга, экспериментальных платформ и лёгкой разработки без тяжёлого инфраструктурного хвоста. Она не пытается казаться взрослым корпоративным движком. Она остаётся маленькой, прямой и открытой. И именно поэтому взрослеет красивее многих.
В эпоху, когда инструменты для разработки игр всё чаще требуют от человека сначала выучить сам инструмент, а уже потом делать игру, Raylib сохраняет почти наглую простоту: вот C, вот окно, вот кадр, вот ввод, вот звук, вот твоя игра. А теперь, с версии 6.0, возможно, ещё и без GPU.
И вот здесь возникает главный вопрос: может быть, будущее геймдева не только в огромных движках, которые умеют всё, а ещё и в маленьких инструментах, которые просто не мешают думать?