Подписаться
для оповещений:
RU
Вход / Регистрация
  • Аватар пользователя Útost Alronbem
    7 месяцев8 дек. 2025 в 04:01

    [моё] Unity. Как миллионы мух сделали миллионы мух, и какие есть альтернативы

    Я в очередной раз сгорел после того, как очередной выкидыш рукосуйский на протяжении пятнадцати минут пытался показать мне главное меню игры, выжрал при этом всю видеопамять + всю оперативу + все возможные кэши и кэшеобразные ресурсы и умер от натуги.
    Вместе с системой.

    Каждый чёртов раз очередное поделие на Unity зачем-то пытается всосать в видеопамять все графические ресурсы игры, в оперативную - все неграфические.
    Причём, даже если непожатый проект занимает 2 (два) гигабайта - 5 GB RAM + 2 GB VRAM ему БУДЕТ МАЛО.

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

    Причину этого заведомо неадекватного поведения фактически воткрытую сдали... разработчики Deep Rock Galactic: Survivor :
    ECS (Entity Component System) is an optional system in the Unity game engine that changes how we structure games. Instead of being object-oriented, it’s data-oriented, which makes it far more efficient at scale. It’s powerful, but there’s a reason it’s not the default. ECS forces you to structure the game more like a computer handles data than how a human thinks about objects.
    ​Перефразируя коротко по-русски, Unity по умолчанию НЕ ПООЩРЯЕТ ХОРОШИЙ КОД.
    Совсем.
    Даже наоборот.
    Что, действительно, выливается в поведение по умолчанию вида "накидывай мышкой в окошко, мы всё загрузим, плевать на пользователей".

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

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

    У движка Unity в этом году, как оказалось, двадцатилетный юбилей.
    Всё, чего добились его создатели за эти годы, - нормализация невменяемых системных требований у проектов и изобилие говнокодеров.
    Ускорение наступления тотального дефицита оперативной памяти и прочих компонентов.
    (и 1 (один) http://unity3d.com/10-year-anniversary">официальный комикс на десятилетие проекта сделали)

    Как Это Сделано У Нормальных Людей
    (И Почему Их Проекты Перформят)

    В случае с GoDot, загрузка ресурсов только в случае востребованности (и выгрузка при первой же возможности) настолько зашита в парадигму разработки, что для кое-каких типовых случаев приходится писать официальные костыли.
    Да, где-то придётся грязно выругаться. И держать в памяти кое-какие нюансы работы с глобальными ресурсами.
    Зато в результате проект будет работать даже на ноутбуке из нижнего ценового сегмента 2011 года.
    Если сильно не наглеть, конечно.

    Пока Construct 2 был жив, они держались говнокодерского подхода "загрузим всё сразу" а-ля Unity.
    Но не бывает жопы без просвета!
    При переходе на 100% "облачный" браузерный Construct 3 разработчикам пришлось научить движок грузить только то, что востребовано прямо сейчас.
    Иначе browser-first проекты работать не смогут.

    RPG Maker... кхм...
    Этим по-моему достаточно, чтобы компьютер пользователя хотя бы существовал.
    До сих пор.

    Unreal Engine 5?
    Да, много шагов не туда сделали его разработчики за 25 с хреном лет развития движка.
    Но поведение по умолчанию при работе с ресурсами - всё ещё "система разберётся, что когда надо загрузить, но если Вы настаиваете..."
    Истины ради и справедливости для, это работает как часы.
    Даже если IQ разработчика проекта как у молодого окуня - полностью автоматизированная работа с ресурсами плюс возможность кое-какие переменные движка подрихтовать через файл конфига снимают большинство проблем с производительностью.

    Есть ещё какие-то намного менее знаменитые движки.
    У которых по этой части тоже полный порядок.

    Но мы почему-то живём в мире, в котором говнокодеры на протяжении двадцати лет плодят таких же говнокодеров.

    Ну как так то.
    / 1 / 0
    Отношение пожительных и отрицательных голосов: 1/0
    Лайкнуть этот пост, увеличить его рейтинг
    Количество комментариев под постом, кликните сюда чтобы перейти к посту
    Количество просмотров у поста, кликните сюда чтобы перейти к посту
  • Комментарии
  • Аватар пользователя Rastoropsha
    7 месяцев8 дек. 2025 в 04:09
    Прямо песня, а не текст!
    Правда, песня грустная.
    Лайкнуть этот пост, увеличить его рейтинг
  • Аватар пользователя Útost Alronbem
    7 месяцев8 дек. 2025 в 04:17
    • автор
    Аватар пользователя Rastoropsha
    Rastoropsha
    Прямо песня, а не текст!
    Правда, песня грустная.
    Это ещё не грустная песня.

    Вот случится что-нибудь с Тайванем.
    Ещё и процы подорожают.
    Будто минувшего подорожания видеокарт и идущего подорожания оперативки + дисков мало было.

    И придётся геймерствовать в старых эмуляторах старых приставок.
    И закупаться старьём на ГОГе.

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

    Я буду злобно хохотать, когда Nintendo снова запустит производство приставки Wii - и вам придётся её покупать потому, что больше никакого геймерского железа за доступную цену не будет...
    Лайкнуть этот пост, увеличить его рейтинг
Talkvio Engine 0.2.0-1538-gd9bcfa6
X
0.2.0-1538-gd9bcfa6