GameDev: разработка игр
7.64K subscribers
859 photos
203 videos
1 file
1.23K links
Всё про геймдев для девелоперов, художников, левел- и геймдизайнеров, сценаристов

Разместить рекламу: @tproger_sales_bot

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
30 июля GameFromScratch опубликовал обзор Doriax, движка с открытым кодом под лицензией MIT, который раньше назывался Supernova.

Работает он под Windows, macOS и Linux и идёт через четыре графических бэкенда: OpenGL, Vulkan, Metal и DirectX. Шейдеры компилируются и транслируются между платформами для экспортируемых проектов, писать отдельную версию под каждый бэкенд не нужно.

Скрипты пишутся на Lua ради быстрой итерации либо на C++ ради нативной скорости. Отдельно заявлен встроенный ИИ-ассистент, который создаёт сущности и скрипты по описанию на естественном языке.

Рантайм один на 2D и 3D: сцены, сериализация и многопоточная загрузка ресурсов общие, отдельных подсистем под каждый режим нет. В 3D импорт моделей в GLTF и OBJ, скелетная анимация, PBR-материалы, каскадные тени, освещение от неба и SSAO. В 2D спрайты, тайлмапы, источники света с картами нормалей и тени от препятствий. Двумерную физику считает Box2D, трёхмерную Jolt, тела, формы и соединения доступны в обоих режимах.

Обзор ознакомительный: ни замеров производительности, ни размера билда, ни списка слабых мест в нём нет.

Список возможностей длинный, а сверить его пока не с чем :)

@make_game
🆒1
Суббота — открываем скриншотник.

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

Смотрим работы друг друга, задаём вопросы авторам и ставим огонёчки в комментариях.

@make_game
6
За первый год игра в Steam продаёт по медиане 2,59 от того, что продала за первую неделю, за два года 3,32

Саймон Карлесс из GameDiscoverCo взял 5000 игр, вышедших в Steam с июля 2023 по июль 2025 и продавших больше тысячи копий за первый месяц, и посчитал, как растут их продажи после старта. Прошлый такой замер делали в 2021 году по опросу читателей, теперь цифры собраны по оценкам продаж всех игр когорты. Разбор вышел 21 июля.

Если к концу первого месяца продано 10 000 копий, медиана обещает 14 600 копий к шестому месяцу, 17 900 к концу первого года и 22 700 к концу второго. По деньгам хвост тоньше, чем по копиям: примерно на 7 процентов после года и на 12 после двух лет, разницу съедают скидки.

Множители от первой недели по копиям такие: 1,39 к концу первого месяца, 2,59 к концу года и 3,32 к концу второго. По выручке те же точки дают 1,42, 2,46 и 2,99. С 2021 года хвост по деньгам просел примерно на пятую часть: тогда год давал 3,05 от первой недели, теперь 2,46. Автор объясняет это тем, что число релизов растёт быстрее выручки Steam.

Игры дороже 10 долларов держатся чуть лучше, 2,7 по копиям за год против медианных 2,59: дешёвым титулам уже некуда падать в цене, и скидки им почти ничего не добавляют. Заметнее всего отрываются кооперативные игры, 3,53 по копиям и 3,17 по выручке за год против 2,50 и 2,39 у остальных.

Медиана при этом прячет разброс. У Lethal Company переход от первой недели к первому месяцу дал 4,14, у Mouthwashing 2,54, а у Fuga: Melodies of Steel 3 всего 1,04 и у Wargroove 2 — 1,08.

Цифры считаются по оценкам GameDiscoverCo, а не по отчётам Valve. Из выборки выброшено всё, что продало за первый месяц меньше тысячи копий, то есть большинство релизов Steam в неё не попало. Часть разрезов по жанрам и регионам закрыта платной подпиской.

Полный разбор: https://newsletter.gamediscover.co/p/what-long-tail-should-you-expect

Заодно любопытно, что кооператив прибавляет к хвосту больше, чем цена :)

@make_game
3
У Unity появилась своя командная строка, и через неё можно выполнять C# прямо в запущенном редакторе без пересборки

Этьен Уиттом, вице-президент Unity по платформе разработки, объявил 20 июля о выходе Unity CLI. Это отдельный бинарник unity, который ставится одной командой и дальше сам умеет управлять редакторами, модулями, проектами и входом в аккаунт. Установка сама прописывает себя в PATH, обновление идёт командой unity upgrade.

Вторая часть анонса интереснее. Экспериментальный пакет com.unity.pipeline подключается к проекту одной командой и позволяет посылать команды в уже запущенный редактор или в отладочную сборку игры, целиком по локальному соединению.

Установка редактора с нужными модулями укладывается в одну строку: unity install 6000.2.10f1 -m android ios webgl. Вывод любой команды можно получить в JSON или TSV, ошибки уходят в stderr, результаты в stdout, коды возврата простые: 0 успех, 1 ошибка, 130 отмена. На сборочной машине вход выполняется служебным аккаунтом через переменные окружения, без браузера и ручных шагов, а unity doctor разбирает проблемы с окружением и учётными данными.

Любой статический метод в проекте становится командой, если пометить его атрибутом [CliCommand], параметры помечаются [CliArg], регистрировать ничего не нужно. Команда unity command eval выполняет произвольный код C# внутри живого редактора или плеера и возвращает результат, без пересборки проекта и перезагрузки домена. В статье показан ролик на 25 секунд, где агент по жалобе «игрок иногда проваливается сквозь пол» осматривает живую сцену, находит выключенный в рантайме коллайдер, включает обратно и перезапускает режим игры, чтобы проверить себя.

Сам CLI пока идёт по бета-каналу, а пакет Pipeline помечен как экспериментальный и требует Unity 6.0 LTS или новее. Установка через привычные brew, winget и apt обещана позже, сейчас предлагается скрипт с сайта. Замеров ускорения в статье нет, есть только утверждение, что нативный бинарник стартует заметно быстрее прежнего headless-режима Unity Hub.

Полная статья: https://unity.com/blog/meet-the-unity-cli

Судя по демонстрации, целились не столько в наши скрипты, сколько в агентов, которым нужно самим проверить, что починили :)

@make_game
👍9
Godot начал писать свойства объектов с переносами строк, и это чинит diff в системе контроля версий

21 июля вышел второй промежуточный билд Godot 4.8: 93 участника, 197 исправлений с прошлого снапшота, сборка из коммита 7220d456d. Обложка релиза взята из детектива The Incident at Galley House.

Самая приятная правка невидима на скриншотах. Данные типа Object раньше писались в файл одной строкой целиком, и любой инструмент сравнения версий обращался с таким файлом фактически как с бинарным: понять по диффу, что именно поменялось, было нельзя. Теперь свойства разделяются переносами строк, и слияние ветвей перестаёт быть лотереей.

Из остального: созданные ресурсы теперь сами раскрываются в инспекторе, сцену можно запустить прямо из контекстного меню файловой системы, движок обновлён до Jolt Physics 5.6.0. Завершение работы GDScript стало устойчивее к падениям, а форматирование сделали детерминированным. Ускорено удаление большого числа дочерних узлов, и теперь невозможно случайно получить больше одного основного потока.

По мелочи: в Asset Store сортировка по умолчанию стала по оценке, в 3D-редакторе вернули инерцию свободного полёта камеры, а новые проекты по умолчанию игнорируют геймпады в неактивном окне.

Это предварительная сборка, а не релиз: замеров производительности в анонсе нет, большая часть изменений относится к удобству работы в редакторе. Отдельно отмечу, что промежуточные билды удобно смотреть именно ради таких правок формата файлов, которые в релизных заметках обычно теряются среди фич.

Полный анонс: https://godotengine.org/article/dev-snapshot-godot-4-8-dev-2/

Забавно, что самая полезная для командной работы правка за релиз — это символ переноса строки :)

@make_game
👍5👌1
Для GameMaker вышло расширение Colyseus, и сетевой код в проекте сводится к нескольким вызовам GML

6 августа в блоге GameMaker появилось интервью с командой Colyseus по случаю выхода их расширения. Colyseus — открытый фреймворк для сетевой игры в реальном времени: комнаты, подбор игроков, синхронизация состояния и авторитетный сервер. Сервер остаётся отдельным приложением на Node.js и TypeScript, но опыта в них, по словам авторов, не требуется, а разворачивать его можно у любого хостера.

Поддержки GameMaker сообщество просило годами, и до расширения люди изобретали обходные пути ради HTML5-сборок. Сделать её получилось после того, как клиент переписали на общее ядро на C, которое теперь питает все нативные SDK.

Подбор игроков сводится к вызову colyseus_client_join_or_create() с именем комнаты: он либо подключит к существующей, либо создаст новую, лобби писать не нужно, а по дополнительным параметрам можно разводить игроков по режиму или региону. Обработчики регистрируются как colyseus_on_state_change() и colyseus_on_message(), а один вызов colyseus_process() в Step разбирает всю очередь, без потоков и асинхронных сюрпризов.

Состояние живёт на сервере, клиенту приходит компактная двоичная заплатка только с изменениями, и она превращается в понятные события: игрок добавился, координата изменилась, игрок вышел. Клиент при этом шлёт намерения: он сообщает «хочу пойти», а куда игрок попал, решает сервер. Правку памяти на своей машине это обесценивает. Оттуда же берётся скрытая информация, тяжело дающаяся играм с хостом на клиенте: в демо с картами сервер владеет колодой и сообщает каждому только его руку, остальные видят лишь число карт.

В комплекте нативные библиотеки для Windows, macOS и Linux плюс сборка WebAssembly для HTML5 и GX.Games, автоматическое переподключение с очередью исходящих сообщений и два демо-проекта с исходниками: пошаговая карточная игра и танки в реальном времени.

Мобильных платформ пока нет, они обещаны позже. Замеров задержки и нагрузочных тестов в материале тоже нет, это интервью, а не технический разбор, так что цену решения придётся мерить самому. И сервер на Node.js всё равно кому-то нужно поднимать и обновлять.

Полный текст: https://gamemaker.io/en/blog/colyseus-multiplayer

Приятно, что демо отдают с исходниками: по ним видно, где проходит граница между «клиент показывает» и «сервер решает» :)

@make_game
👍5
Шесть лет, 5279 коммитов, больше 60 переводчиков и первый в жизни проекта сторонний коммит с кодом

Симон Дальвай ведёт открытый футбольный менеджер 99Managers на Godot и 4 августа выложил двенадцатый девлог. Проекту 11 июля исполнилось шесть лет, первый коммит датирован 2020 годом, сейчас их 5279. В июле вышли две версии, 0.8.3 и 0.8.4.

Главное событие месяца — первый человек, приславший код. До этого проекту помогали только переводчики, их больше шестидесяти. Новый участник сделал график баланса клуба по неделям и реализовал логику отступных при расторжении контракта: отпустить игрока бесплатно больше нельзя, остаток зарплаты придётся выплатить.

В самой игре появился отдельный трансферный список, где можно выставить статус своим игрокам и запретить принимать по ним предложения, добавились аренда игроков и роли в команде: ключевой игрок, ротация, резерв, будущая звезда и молодёжь. Роль влияет на мораль игрока и на переговоры о трансфере и контракте, то есть она заходит в уже работающие системы игры.

В Google Play набралось больше 30 тысяч загрузок за четыре месяца с релиза, и автор отдельно объясняет, что платформа за загрузки не платит ничего: для него это способ показать игру миру. Сборка для F-Droid, первая воспроизводимая сборка игры на Godot, пережила два обновления без ручного вмешательства, включая переход на Godot 4.7.1, где пришлось лишь поправить хеш коммита движка в двух местах. Версия 1.0 намечена на ноябрь, до неё остались сборные, тренировки, совет клуба с целями на сезон, травмы и карточки.

Цифр по активной аудитории, удержанию и деньгам в девлоге нет, и загрузки в сторе с ними не связаны. Это история одного проекта, а не обобщаемая статистика, но именно поэтому её удобно читать: видно, из чего складывается шестилетний open-source проект без рекламы и покупок внутри.

Девлог целиком: https://99managers.org/blog/devlog-july-2026/

Шесть лет и первый сторонний коммит с кодом только сейчас — хорошее напоминание, сколько на самом деле стоит собрать вокруг проекта сообщество :)

@make_game
2
Суббота, а значит открыт скриншотник.

Выкладывайте в комментарии, над чем работали на неделе: скриншоты, гифки, ролики, демки, ссылки на страницы своих игр. Новый эффект, переделанный интерфейс, первая работающая механика — всё годится. Ссылки на свои каналы разрешены.

Смотрим чужие проекты, спрашиваем авторов о деталях и ставим огонёчки.

@make_game
5🔥4
Разработчики Iron Nest отдали GameDiscoverCo выгрузку из Steamworks, и разбор запуска вышел с настоящими цифрами, а не с оценками: 366 тысяч копий и 4,74 миллиона долларов валовой выручки за пять дней, возвраты 4 процента, вдвое ниже обычного.

Что из этого можно унести к себе:

Демо решает больше, чем кажется. В него сыграли 876 тысяч человек при медианном времени 2 часа 19 минут. Но 400 тысяч вишлистов было ещё ДО демо — набрались на коротких роликах, в основном чужих и органических.

Соавтор игры говорит прямо: короткие видео дали первый разгон, а дальше их вклад сравнялся с остальными форматами — плейтестами, демо, фестивалем. То есть это инструмент старта, а не постоянный двигатель.

И отдельный сюжет: игра открыто сделана по мотивам PVKK, чей трейлер два года назад придумал жанр «маленькая комната, механизмы, стрельба». Вывод автора разбора неприятный, но честный: показал уникальную идею — выпускайся быстро. 26 процентов вишлистеров Iron Nest держат в списке и PVKK.

@make_game
83
Способ, которым игрок нашёл игру, связан с тем, сколько он в ней потом просидит.

GameDiscoverCo опросили больше 16 тысяч игроков Steam и разложили ответы по времени в игре. Стримы как источник растут с 40,6 процента у тех, кто наиграл полчаса, до 44,5 у тех, кто перевалил за пятьдесят часов. Текстовые соцсети идут вниз: 38,2 процента у наигравших час и 33 у долгожителей.

Разброс между играми ещё интереснее. Короткие ролики назвали источником 50,9 процента игроков R.E.P.O., 39,4 у ARC Raiders и всего 34,2 у Clair Obscur. Средний возраст при этом 25 лет против 31. То есть «работают ли шортсы» — вопрос не про жанр вообще, а про вашу аудиторию.

Важная оговорка: отвечали люди с открытыми профилями, согласившиеся на опрос, то есть заметно более вовлечённые, чем средний покупатель. А группа «50+ часов» вдобавок состоит из тех, кому игра подошла.

@make_game
👍3
Человек собрал себе Arch с Hyprland в теме «Аватара» и выложил его целиком — вместе с пятью играми на Python, которые лежат в том же репозитории и запускаются отдельно от всего окружения.

Тетрис на 766 строк живёт прямо в терминале: семь фигур с поворотами и подкрутками у стены, удержание фигуры, превью следующих, ускорение по уровням, вспышка на очистке линий и разлетающиеся частицы на game over. Рядом лежит тот же тетрис на pygame, с холстом 760×760. Змейка на 423 строки подгоняет поле под размер терминала и заворачивает края, а рекорды змейка и оба тетриса складывают в один общий JSON.

Вокруг игр — девять согласованных тем оформления, обои с Аангом, свой выбиратель тем на Rofi, гайд по сборке и шпаргалка по горячим клавишам. Автор просит не ставить всё подряд, а забирать понравившиеся куски.

@make_game
👍5
Разброс внутри одного стримингового показа огромный: на картинке разбор Triple-I Initiative, где 35 игр, медиана прироста вишлистов за неделю 36 тысяч, у верхних десяти процентов 154 тысячи, у нижних — 996.

Поэтому GameDiscoverCo советуют задать пять вопросов до того, как соглашаться.

Сколько игр в программе: у PC Gaming Show и Future Games Show доходило до восьмидесяти, у Triple-I тридцать пять-сорок. Чем меньше, тем больше внимания вашей.

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

Сколько там настоящих премьер: от этого зависит, соберёт ли эфир зрителей вообще.

Можно ли блогерам пересобирать трансляцию со своими комментариями — у крупных показов это заметно расширяет охват.

И сколько всё длится: короткие программы теперь заметно выигрывают.

@make_game
1
Доминик Шаблевски описал, как перенёс свой C-движок high_impact на Nintendo 64 и довёл Xibalba 64, шутер в духе Wolfenstein 3D, до физического картриджа для клона M64.

Бэкенд для платформы на Libdragon занял несколько вечеров, игровой код не менялся. Дальше началось железо: 93 МГц MIPS, 4 КБ текстурной памяти, максимум 64×64 на текстуру и медленная её загрузка. Отсюда сортировка тайлов по текстуре, до 17 квадов в одном 64-битном вызове Tiny3D и небо из одной текстуры 32×32. Уровни редактор хранит в JSON, но сборка компилирует их в бинарные структуры, потому что разбор JSON на консоли стоил около 100 мс на загрузке. Порт занял две недели, доводка — ещё несколько месяцев, стабильные 60 FPS.

Отладочный стенд: SummerCart64 по USB, ROM заливается прямо из сборки, видео через капчур-карту за 10 $. Эмулятор Ares точный, но медленную память N64 проверяет только настоящая приставка :)

@make_game
❤‍🔥5
Автор ретро-шутера WOBLO пишет игру на Python с raylib, без движка: геометрия, коллизии, свет, редактор уровней, физика и сохранения свои. В девлоге после 90 дней молчания он рассказывает вещи, полезные независимо от того, на чём вы делаете игру.

Про архитектуру. Мультиплеер он сделал наследником обычной игры и не поменял в основном коде ни строки. Это, по его словам, и есть проверка, что движок внутри правда разделён, а не выглядит аккуратным для того, кто сам этот беспорядок и устроил. На втором месяце работы такое не проверишь — нужно положить сверху что-то странное и посмотреть, сломается ли.

Про баги. Игрок упирался в невидимую стену; починил — стал проходить сквозь пол снизу; починил — вернулась стена. Оказалось, это один баг, видимый с двух сторон. Теперь он всегда проверяет оба случая сразу: проверять один — значит просто перекладывать баг.

Про платформы. На Mac все стены стали чёрными: там Metal, данные в шейдер приходят иначе, и свежее освещение получало мусор.

И вывод, ради которого он вообще сел писать: вишлисты набираются в месяцы до релиза, а не в день релиза. Молчание не бесплатно.

@make_game
👍2
В Defold завезли свет. Версия 1.13.1 добавляет компоненты Light: четыре типа источников, редактор их показывает, кастомные шейдеры получают данные через LightBuffer. Ограничения на старте честно перечислены: до восьми источников в редакторе, в WebGL1 и ES2 не работает, а layout LightBuffer должен совпадать с тем, что лежит в lighting.glsl.

Второе, что заметно на практике, это инстансинг morph targets. Веса морфов уезжают в per-instance buffer через атрибут morph_targets_weights, так что толпа персонажей с мимикой перестаёт быть отдельной болью.

Геймпады перевели на базу контроллеров SDL с сопоставлением сначала по GUID, добавили настройку input.gamepad_deadzone, а gdc умеет генерировать новые mappings; старый формат .gamepads поддерживается временно. Editor Scripts получили немодальные диалоги с изменяемым размером, вкладки, картинки, editor.fetch_libraries(), загрузку файлов по HTTP и endpoint /preview, который отдаёт сцену в PNG.

Тёплая сборка, по замерам авторов, ускоряется до 19%. Это верхняя граница из их измерений, а не обещание для вашего проекта, так что на большом проекте замерьте до и после сами.

@make_game
4
Bevy отметил шесть лет и подвёл итоги года: 47 529 звёзд, 1527 участников, 13 543 коммита. Главное, что появилось за год и что можно взять в проект.

BSN, новая система сцен: композиция и наследование иерархий сущностей прямо в Rust-макросе bsn!, с зависимостями и ассетами. Разработчик Exofactory после переноса на BSN убрал из проекта 7364 строки. Приземлились базовые UI-виджеты без стилей: кнопки, чекбоксы, слайдеры, списки, модалки, меню и наконец текстовое поле, а поверх них набор Feathers для внутренних инструментов. В рендере GPU-driven pipeline: пример bevy_city рисует город на 55 000 сущностей при 60 FPS; развиваются трассировщик Solari, язык шейдеров WESL и виртуальная геометрия. Сообщество на этих же основах собрало прототип редактора Jackdaw с визуальным редактированием сцен и инспектором ECS. Bevy Metrics теперь на каждый коммит меряет производительность, время компиляции и размер бинарника.

Отдельный раздел про ошибки: автор признаёт, что BSN должен был приземлиться быстрее и что раньше разработка шла в изоляции, пока не станет «достаточно хорошо».

@make_game
👍1👌1
Как собрать убедительный кристалл в Unreal, не платя за прозрачность.

Анастасия Горбань расписала свой мастер-материал по шагам. Материал непрозрачный: глубина внутри камня подделана двумя цветовыми слоями, которые при повороте камеры смещаются на разное расстояние. Именно разрыв между ними даёт объём, а не смесь двух цветов.

Перед цветом идёт стадия глубины, и там на выбор параллакс с картой высот или дешёвое смещение по яркости. Оба пути берут высоту из одного источника с одним тайлингом — поэтому подделанная глубина всегда ложится ровно на тот цвет, который смещает.

Переливы снаружи сделаны через синус: интерференция периодична по углу обзора, поэтому плавный градиент превращается в повторяющиеся полосы. Слой отключаемый — кварцу и рубину он не нужен, опалу и лунному камню нужен.

В конце автор приводит арифметику. Вариант на новой системе слоёв стоит 445–517 инструкций шейдера, а тот же вид на обычном материале — 291–369. Автор честно пишет: если цель просто выпустить этот кристалл дёшево, обычный материал правильнее.

@make_game
🤣2
Godot 4.7.2 это ремонтный релиз: 39 контрибьюторов, 57 исправлений, совместимость с 4.7.1 сохранена.

Главное для Windows: починили просадку производительности при движении мыши с высокой частотой опроса. Там же поправили залипание при одновременном отпускании Shift и позиционирование Wayland IME при дробном масштабировании.

В сети репликация больше не встаёт, когда удаляют узел, созданный через MultiplayerSpawner; заодно обновили источник энтропии в mbedTLS. В рендере починили тени PCSS, которые брали начало shadow range не в том пространстве, двойное копирование billboard-частиц и запуск игры на Android при выключенном экране.

Из мелкого, что легко словить: запрет отрицательных весов в RandomPCG::rand_weighted, падение при невозможности открыть файл лога и проверка родителей в GDExtension. Обновление недорогое, а проверять после него стоит ровно то, что чинили: ввод с высокой частотой опроса, спавн по сети, сцены с PCSS и экспорт под Android и Windows.

@make_game
4
Карта, погода, враги и лут получают по своему генератору случайных чисел, чтобы правка одной системы не ломала другую. Но если все они засеяны одним seed, они выдают одну и ту же последовательность, и игрок, увидев результат в одной системе, предсказывает остальные. Автор блога knives for cats разобрал три способа с этим справиться.

Смещение начала последовательности для каждого генератора — пластырь: сдвиги надо делать большими, не все RNG умеют перепрыгивать, и учёт превращается в отдельную работу. Отдельный генератор для раздачи seed работает, но состояние каждой системы теперь зависит от порядка создания генераторов, и добавление новой ломает старые. Вариант автора — хэшировать общий seed с именем системы: new RNG(gameSeed, "Weather"), генераторы независимы, а связать два нарочно можно, подмешав выход одного в seed другого. Хэш нужен детерминированный, HashCode из C# не подходит.

Через шесть часов после публикации выяснилось, что MegaCrit используют почти ту же схему в Slay the Spire 2: в первой части System.Random при линейно растущих seed выдавал коррелированные последовательности, и runSeed + hash("id") давал всем генераторам одни числа со сдвигом. Сам автор берёт Squirrel3 из доклада Сквиррела Айзерло: два uint состояния и прыжок в любую позицию.

@make_game
2🆒1
Если ваш мультиплеер в GameMaker сделан на откате состояния — не обновляйтесь. В ветке 2026.100.0 эту подсистему удалили полностью, а в заметках просто советуют оставаться на 2026.0, пока не найдёте замену. Чем заменять, не сказано.

Остальное в ветке, последняя запись от 13 августа:

Появились layer_sequence_get_alpha() и layer_sequence_get_blend() — читают текущие цвет и прозрачность последовательности. Менеджер пакетов научился проверять и переустанавливать испорченные пакеты, из-за которых заготовка могла намертво застрять. Для Switch добавили настройку, отключающую поддержку сенсорного экрана.

Из правок в самом коде игр стоит знать три: инкремент внутри аксессора больше не срабатывает дважды при присваивании, draw_set_alpha() теперь влияет на отрисовку сразу, а не после ближайшего изменения масштаба объекта, и оператор ^= в компилируемом режиме перестал считать входные значения логическими.

Остальное — редактор: вкладки, рабочие области, вставка текста, набор иероглифов. Разделение окон на части готовят, но в интерфейсе ещё не включили.

@make_game