Не так давно обновился до версии 3.0.0 открытый игровой 2D/3D-движка KorGE. С версии 2.0, вышедшей 2 года назад, был проделан довольно долгий путь. Разработчики добавили много новых интересных вещей и исправили некоторые довольно старые проблемы. Собственно, теперь давайте рассмотрим новые функции: горячая перезагрузка, векторный рендеринг графического процессора, поддержка эмодзи, маски, фоновые фильтры, новые функции Безье, множество доработок и мн. др.
Функция горячей перезагрузки JVM меняет правила игры, благодаря чему KorGE выходит на один уровень производительности с точки зрения быстрого тестирования с движками JavaScript.
Теперь KorGE будет использовать Kotlin 1.7, а в случае с K/N также использует новый менеджер памяти, который позволит использовать несколько потоков. В KorGE 3.0 есть код, обеспечивающий многопоточный рендеринг, который решит множество проблем и повысит производительность несколькими способами. Но в полной мере эта функциональность будет доступна где-то в цикле 3.x.
Наряду с обновлением версий и оптимизацией нескольких вещей нам удалось уменьшить размер вывода приложения "hello world", что важно для сети.
Поскольку Kotlin/Native поддерживает Apple Silicon, теперь вы также можете создавать исполняемые файлы непосредственно в ARM64 для новых компьютеров Apple Mac. В будущих версиях разработчики добавят поддержку кроссплатформенной сборки и запуска исполняемых файлов через WSL, Wine, Lima, Box64.
В случае JS, JVM и Android декодер mp3 был переписан и стал в 4 раза быстрее, чем предыдущий. Исходный код minimp3, автоматически преобразованный из C в Kotlin, был оптимизирован, чтобы быть более удобным для kotlin и работать быстрее. Использование minimp3 устраняет некоторые проблемы, связанные с декодированием mp3 из реализации JavaMp3. Теперь потоковое аудио является многопоточным в JVM и Android, а K/N будет позже в версиях 3.x.
В дополнение к WAV и MP3 теперь вы можете загружать файлы музыкальных треков XM, MOD и S3M благодаря webaudio-mod-playerпорту на Kotlin. Что позволяет включать длинные треки в гораздо более ограниченное пространство, как mp3.
Включена поддержка векторных шрифтов TTF с шрифтами ColrV1 и ColrV0, что позволяет использовать шрифты emoji очень ограниченного размера. Также новый движок рендеринга текста имеет общий код с кодом векторного рендеринга.
Теперь можно пометить любой текст как редактируемый. И не только это: теперь вы можете размещать текст вокруг векторных контуров, чтобы текст следовал за кривыми. На мобильных устройствах при редактировании текстов появляется программная клавиатура.
После внутреннего рефакторинга того, как происходит рендеринг, теперь KorGE поддерживает фоновые фильтры (применяемые к замаскированной области) и сглаженные маски для любого вида представления. Теперь KorGE более расширяем с точки зрения этапов рендеринга.
Давняя проблема заключалась в том, что в JS рендеринг отличался от JVM. Также в некоторых случаях смешивание вызывало некоторые артефакты. Теперь KorGE загружает растровые изображения как предварительно умноженные альфа-каналы, а текстуры, загружаемые в GPU и внутренние буферы рендеринга, всегда предварительно умножаются. Это также устраняет проблемы при линейной выборке текстур.
Graphics и Context2D были значительно улучшены на всех платформах, и теперь большинство проблем устранены. Это также реализует новые функции, такие как шаблоны штрихов. Есть совершенно новый сглаженный векторный рендеринг на GPU, который не использует промежуточные текстуры и делает заливку на GPU. Хотя он все еще является экспериментальным и в некоторых случаях работает медленнее, в других случаях он намного быстрее. Circle и RoundRect теперь используют этот рендерер внутри, поэтому их масштабирование намного выгоднее.
Теперь можно загрузить некоторые SVG-анимации, и визуализировать их, используя любой поддерживаемый рендерер: SYSTEM, CPU и GPU. Теперь можно загружать SWF Adobe Flash/Animations напрямую без промежуточных атласов и рендерить их с помощью векторных рендереров SYSTEM и GPU со сглаживанием.
Кривые Безье были значительно переработаны, теперь портирована библиотека BezierJS. Теперь вы можете разбивать не только безье, но и произвольные векторные пути, получать позиции на основе расстояния/длины или t и получать штриховые узоры. Исправлена плавность и добавлена поддержка произвольной плавности на основе кривых Безье. Вы даже можете выполнять анимацию движения по векторным траекториям.
Обновлен плагин KorGE IntelliJ. Вы можете использовать её для предварительного просмотра файлов изображений .ase, .kra и .qoi. Окончательно интегрирован магазин KorGE, и теперь вы можете устанавливать бандлы в один клик прямо из каталога https://awesome.korg.org/. Этот каталог в конечном итоге превратится в маркет, где люди смогут делиться бесплатными и платными ассетами.
ASE 1.3 поддерживает тайловые карты и наборы тайлов. KorGE обновлён для их поддержки. Шаблон по умолчанию использует плагин Gradle 7.5. Репозиторий Korge-next был заархивирован, как и все отдельные репозитории korlibs.
Есть некоторые регрессии, связанные с тайловыми картами. Они будут исправлены в следующей версии 3.0.1.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Что нового в KorGE Game Engine v3.0.0», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]