Чем еще в отпуске заниматься как не очередным переписыванием проекта на новый движок/фреймворк? 😃 Благодаря отпуску наконец-то нашел время закончить начатый Федей еще в начале месяца переезд с good-web-game на macroquad, ура! https://github.com/ozkriff/zemeroth/pull/646 Весьма масштабное изменение: 50 files changed, 1881 insertions(+), 2815 deletions(-), до ребейза ветка насчитывала порядка 90 WIP-комитов. Игровая логика (src/core) довольно хорошо абстрагирована от внешнего мира, так что её переезд вообще не затронул, но зато все касающееся графики или обработки ввода в той или иной степени переколбашено. Большинство изменений не особо принципиальные: немного по другому оформляются аргументы там-сям и ладно. Из заметного: * Не надо больше везде в явном виде протаскивать Context. * Ввод обрабатываетя явными запросами, а не через события. * Пропал привычный Drawable типаж (заменен самописным enum'ом). * Асинхронность, наверное, самое крупное отличие. Что бы нормально работать в вебе, основной цикл и загрузка любых ресурсов в macroquad асинхронны и, как известно, асинхронные функции нельзя просто так вызывать из обычных. Можно было бы попробовать окунуться в асинк полностью и обмазать весь код async/.await'ом с корутинами, но я постремался так делать: локализовал все это в новом src/assets.rs модуле, который при запуске предзагружает шрифты-картинки-звуки и потом через OnceCell дает к ним доступ отовсюду. Зато больше не нужно для веб версии собирать assets.tar архив и генерить для него индекс файл. Теперь осталось еще добить ветку с первой итерацией звуков/музыки и можно идти девлог для 0.7 версии писать.