Dragon ruby

Dragon Ruby первый взгляд

Пользуюсь этим фреймворком уже пару месяцев для разработки. И нашёл его достаточно интересным для прототипов.

Ограничения тоже есть - не полная поддержка руби и гемов.

Давайте рассмотрим со стороны плюсов, а потом зайдём на минусы и общее впечатление.

Учитывая, что он поддерживает динамическую перезагрузку кода (Юнити только обещает это, но на средней сложности проектах приходится прям долго ждать перекомпиляции, а возиться с ассемблями не всегда удобно - ведь если я уже имею архитектурный проект, то мне не нужна автоперегрузка, а когда мне нужно прототипирование - тут надо делать это быстро)

И это заметный плюс фреймворка.

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

Потом, можно постепенно улучшать код в сторону классов или функций - какая модель вам больше подходит.

Такая минимальная модель без трения удо на для прототипирования.

Очень напоминает работу с AppGameKit - поскольку так же быстро. Плюс преимущества Ruby vs basic в виде хешей и функционального и ооп подхода.

Приложения получаются очень маленькие и одной командой происходит публикация на несколько платформ.

Использование wasm позволяет посто использовать свой код в браузерах. И он просто работает так же (в отличие от AppGameKit)

Консоль для отладки и отладочные примитивы также помогают в разработке.

Последнее время много документации с примерами кода и даже часть библиотеки представлена кодом руби.

Теперь рассмотрим минусы, которые нашёл :

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

Часто проблемы были связаны со сложным кодом, который сам написал. И приходится переучиваться и выбрасывать старый код и переписывать заново кусок, который не работает.

Ветки гита в этом помогают.

Производительность оставляет желать лучшего. Bunnymark показывает три-пять тысяч спрайтов, что для среднего проекта сойдёт.

Плюс их замечание, что мол не всегда она нужна - говорит, что это не будет сильной стороной и создатели на производительности не сосредотачиваются.

Причём их же советы по повышению производительности противоречат их же подходу простого написания. То есть использование массивов для начала хорошо, а потом они советуют хеши и манить их сразу. Что заставляет двигаться в сторону объектов.

Публикация за платную версию на пк и хтмл. Мобильная версия или более сложные проекты с частью проекта в библиотеках на си требуют подписки до $200 в год. Напоминает Юнити с подпиской на $340 в год за логотип свой и сервисы.

Но у Юнити больше всего - и инструментов, и документации, и комьюнити.

В общем - напоминает геймекер, но с подпиской.

Выводы:

Для мелких проектов и прототипов самое то- быстрый цикл обратной связи позволяет быстро спрототипировать систему. После же, имея структуру проекта и документацию по механикам - можно выкинуть прототип и переписать на c#/raylib/sdl.

22
Начать дискуссию