TGViewer
Все разработчики попадают в Ад Все разработчики попадают в Ад @vanrepindev · 49 subscribers
Post #10 135
Технологии курильщика
Часть 1
Поговорили о людях, пора и технологии обсудить. Всё-таки программист я или где?
Развитие движка Unity я наблюдаю ещё с 4 версии. И вот складывается такое ощущение, что компанию изнутри разрывает какая-то техно-шизофрения. И каждая новая крупная фича с трудом вписывается в то, что уже есть. Начиная от GUI: был Unity GUI, потом появился купленный (не самый лучший) uGUI (бывший nGUI), абсолютно меняющий подход к построению GUI и несовместимый с предыдущим, сейчас есть третья итерация, живущая своей жизнью - UIToolkit. Отдельно живёт проект Tiny (и не помер ли он ещё часом?). И вот в далёком 2019 появляется DOTS, переворачивающий процесс разработки с ног на голову. Изначально подход был выбран скорее правильно, чем нет. Ставка на производительность, data-driven, генерация кода, вот это всё. Начал я ковырять DOTS (не путать с дотой) практически с первой публично доступной версии. И даже выпустили АА игру с его использованием для симуляции логики. Ох, сколько я тогда огрёб проблем с моим тогдашним тимлидом. Пришлось записывать обучающие видео, проводить воркшопы, лишь бы человек, тратящий месяц своей работы на таску по переименованию переменных, понял, что же это за зверь такой. Затем выходит Entities 0.5 - полностью меняется API, полностью меняется подход к подготовке ассетов. Затем 1.0 - то же самое второй раз. Но теперь с обещанием, что ну теперь-то уж точно всё, готовый продукт бери и делай. Взял я его твёрдой рукой, прижал к себе и нежно прошептал на ушко… в смысле вкрутил. Тем более задача как раз требующая высокой производительности: много юнитов с физикой на лоу-энд мобилках. Времени делать специализированную физику не дали, поэтому бери, что есть, и докручивай. И KPI - меньше 1% хард-крашей на всех устройствах. И вот вскрылась целая куча проблем, часть удалось закрыть через нытьё на форумах Unity и последующее обновление редактора (а обновление даже минорной версии Unity - это всегда боль и страдания и кровь из жопы), где нам обещали, что ну теперь-то точно всё пофиксили. Остался последний краш, который ну никак не хотел уходить. Проявлялся только на андроид-устройствах с ARMv7 архитектурой. Что внезапно оказалось 10% аудитории. Как выяснилось, на ARMv7 до сих пор выпускают мобилки, даже крупные бренды типа Samsung. В 22 году, например, они выпустили целую линейку A13, M13 и ещё целый зоопарк от производителей поменьше. Видимо, разрывы цепочек поставок и дефицит отдельных составляющих заставили производителей даунгрейднуть свои производства, ну или решили впарить пользователям говно мамонта под видом корейского шоколада. И краш-то ещё неприятный - выстреливает в рандомных местах. Проявляется только вот на этих устройствах, но всегда со стопроцентной вероятностью в течение первых 1-5 минут игры. Бинарный поиск через комментирование половины кода не дал результатов - менялось только время до краша, но сам косяк был неизбежен, как понос после мексиканского ресторана. В итоге опытным путём установил - проблема в Burst. Специальный компилятор/оптимизатор для ускорения работы кода. Выяснилось, что при компиляции Burst систем ECS генерится неправильный код для адресации в unmanaged память на 32-битных платформах. Покрыл ifdef'ами все наши системы для 32 бит - не помогло. Стало вылетать внутри Havok, Unity Graphics и прочих системах Unity. А их форкать ну уж совсем не хотелось. В итоге волевым решением был сделан форк самого Burst, где он отправлялся спать при компиляции под 32 бита, так как заботливые разработчики Unity не предоставили возможности отключить его для отдельной архитектуры. И всё. Краши исчезли, игра держит стабильные 99-99.5% безкрашевых пользователей. Вроде в ченджлогах Entities 1.2 пишут, что они исправили уже эту проблему. Оказалось, они неправильно определяли архитектуру устройства при компиляции. Но обновлять Unity перед релизом - лучше на бутылку сесть. Так что живём пока так.
More from @vanrepindev
  1. Jul 22, 2026движение полностью контролируемое физикой. никакой анимации. кинематические кончики тентак…
  2. Jul 22, 2026насмотрелся видео про осьминогов и решил поэкспериментировать с более физически корректной…
  3. Jul 21, 2026глаза все делают лучше. чем больше глаз тем лучше. и вы только посмотрите на эти щикарные…
  4. Jul 21, 2026video post
  5. Jul 21, 2026Годы работы в геймдеве и несколько лет вынашивания идеи игры, я наконец то дозрел до конце…
  6. Jul 13, 2026в телеграмме превьюшка текста и куртинка в одном посте не работает и это печально
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →