• Как и зачем мы добавили новый тип треков для Sequencer UE4
    0
    Спасибо, что пишите о таких штуках!
  • ИТ-аутстаффинг глазами клиента — обсуждаем с руководителем разработки Mail.ru Cloud Solutions
    +1
    Шикарная заглавная картинка!
  • Как превратиться в суперзвезду Zoom-звонков за 15 минут
    +14
    А потом Zoom отдает твое видео в 320х240 всем *harold_face.jpg*
  • Используем macOS для удалённой сборки Unreal Engine билдов из-под Windows
    0
    Очень рекомендую посмотреть на Teamcity. До трех агентов включительно он бесплатен, этого более чем достаточно.
  • Используем macOS для удалённой сборки Unreal Engine билдов из-под Windows
    0
    Привет! Немного критики :)

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

    1. Во-первых, совершенно незачем использовать ручную конфигурацию rsync'а, когда достаточно дать remote control для юзера. См. docs.unrealengine.com/en-US/Platforms/Mobile/iOS/Windows/index.html, конфигурация для удаленной сборки уже давно превратилась в «пройди по доке и все работает».

    2. Описанный вариант это НЕ оптимальный вариант :) Да, никто (ок, 99%) не использует удаленную сборку таким образом для целей продакшна. Это костыль, оставшийся от UE3 и нужный скорее для экспериментов и проектов с минимумом C++ кода, который как бы есть, но время его сборки — незначительно.

    Потому что:
    — если тебе нужно дебажить и профайлить билд: ты идешь к маку и аттачишься к нему через Xcode
    — если тебе нужен билд на «поиграть/потестить» или «на релиз»: ты делаешь сборку через CI/CD и получаешь либо ипашку, либо апдейт в файрбейзе/аппцентре.

    Более того, remote build:
    — не собирает шейдаки в бинари, они идут в текстовом виде
    — у него нет инкрементальной компиляции, полная пересборка every time
    — не поддерживает сборку плагинов или проектов, использующие статик либы (никаких «ашек»)

    Т.е. такой билд не предназначен ни для дебага, ни отладки, ни релиза.

    В любом случае, статье плюсик, как минимум это пример альтернативной конфигурации и настройки rsync'а, что бывает полезно :)
  • Разработка, оптимизация и релиз на Unity игры Synthety
    0
    Это очень распространенный термин. Что трисы, что квады.
  • Чистый код: причины и следствия
    –1
    Каким бы простым код не был в чтении, он должен быть покрыт тестами

    … или как отличить веб-программиста от не веб. Покрытие тестами — возможно на практике лишь в небольшом количестве областей практического применения, но почему-то часто трактуется как икона «тесты обязательны» :)

  • Разработка UI: кого слушать — себя или пользователя?
    +1
    Как пользователь — я, если честно, в ужасе, если это то, что привело к такому вот обсуждению и статье. Особенно доставил горизонтальный свайп на три экрана.

    Надо сказать описана прям классическая ситуация «как делать не надо», характерная во многом именно для нашего рынка: три менеджера «лезущих в кнопки» и дизайнер. Уволили дизайнера, сделаем сами. Ыть!

    В первую очередь — вы делаете продукт весьма технического назначения, задача которого — удобно и наглядно отобразить информацию для пользователя.
  • Локализация игр в Unreal Engine 4
    +1
    Полноценно — это когда вы игру с локализацией запаблишите, пройдя все промежуточные этапы, включая сам перевод, правки, QA этого дела и тп ;)
  • Локализация игр в Unreal Engine 4
    +2
    > Локализация в UE4 реализована шикарно

    Увы, нет. Количество багов, костылей и «особенностей» с этим связанных — зашкаливает. В последней версии стало лучше (наконец-то перестали теряться ключи), но путь к этому был полон боли.
  • Figma — простое решение для дизайнера, сложное решение для верстальщика
    +1
    О, самое страшное, что я видел в Фигме — дизайн интерфейса для компьютерной игры и внутриигрового магазина. Я не знаю каким молотком надо втолковывать, что большинство свистоперделок «для веба» не катят и не поддерживаются почти нигде кроме веба :)
  • Как мы сделали движок и игру на нем за полтора года
    +1
    Справедливости ради, мобильные платформы — это не только Android/iOS. И до них делали кучу разного, java2me наше всё.
  • Как мы сделали движок и игру на нем за полтора года
    0
    Battle Prime DOES NOT support: iPhone 5S, 6, 6 Plus

    Всё, что мы хотели знать об оптимизации, но боялись спросить
  • Выпускники американских университетов превосходят выпускников России, Китая и Индии
    0
    Я не совсем понимаю какое отношение это имеет к моему посту выше. Пример вопроса по ссылке это не про алгоритмы, это вообще базовая логика.
  • Выпускники американских университетов превосходят выпускников России, Китая и Индии
    0
    Ну это совсем основы, без них какая практика? :)
  • Выпускники американских университетов превосходят выпускников России, Китая и Индии
    +3
    Питон позволяет показать практику и решения прикладных задач, а не работу с кодом в вакууме
  • Выпускники американских университетов превосходят выпускников России, Китая и Индии
    +4
    Программирование в подавляющем числе случаев — это нифига не алгоритмы, а решение прикладных задач. Поэтому наше образование «по матчасти» даёт хорошие результаты в исключительных случаях (олимпиадники и так далее), но в среднем — так себе.

    И уж особенно если говорить про школу — этот Паскаль и иже с ними настолько далеки от реальности, что обьяснить ребёнку зачем оно надо (соответсвенно и мотивировать) — это уже даже задача вторая. Первая — не отбить желание на старте, используя допотопный и не нужный стек технологий, который без шаманизма даже и не запустишь.
  • Как мы спасали код-ревью
    0
    Плагин звучит очень здорово, нет ли планов сделать его общедоступным? :) (т.к. проблема близка, идея примерно такая же, только приходится делать это всё ручками)
  • Джентльменский набор программиста UE4, ч. 1
    0
    пысы. Есть доступный ресурс с хоть сколько детальными пайплайнами/процессами по разработке или напрямую разработке в UE?


    На самом деле многое описано в официальной документации. Если же речь про артовый пайплайн, то он по большому счёту от движка не зависит, и можно читать любые материалы.
  • FadeObjects — Скрываем объекты между камерой и персонажем
    0
    1. GetAllActorsOfClass стоит воспринимать как табу для всего, что имеет хоть какой-то период, отличный от «пару раз за игру».
    2. Прежде чем кидать дорогие большие капсульные трейсы, было бы неплохо определить, а персонаж вообще есть на экране в теории?
    3. Кидание капсулы мало того, что дорогое, но и будет давать артефакты по скрытию предметов близко к камере, что в случае, например, FPS, будет печальным. Может стоило обойтись трейсами в некие реперные точки?

    P.S. — если вы пишете под анриал, использовать не-ue4 кодестайл — призрак дурного тона.
  • FadeObjects — Скрываем объекты между камерой и персонажем
    0
    Я бы назвал ваше решение несколько, гм, не оптимальным. Или даже примером «как делать не надо». Даже простой трейс из камеры вперёд был бы на порядок (или два) легче, давая в общем-то тот же самый результат. Зачем вы перебираете объекты в принципе? :(
  • PsRealVehicle, или Open Source-плагин физики танков в Armored Warfare: Assault
    0
    Очень рад, спасибо! ;)
  • PsRealVehicle, или Open Source-плагин физики танков в Armored Warfare: Assault
    0
    Другая физическая модель, другая архитектура. Мы не ставили задачи создать «компонент широкого пользования для физических моделек», у нас вполне себе выверенное решение конкретных целей, с кучей шишек, набитых продом :)
  • PsRealVehicle, или Open Source-плагин физики танков в Armored Warfare: Assault
    0
    1. На самом деле мы работаем полностью в рамках PhysX: плагин высчитывает какую силу и куда приложить к телу танка, в зависимости от текущего его состояния. Как раз именно просчётом перемещения занимается уже сам PhysX.

    2. Анимационное дерево как таковое должно быть (именно оно управляет анимацией), но в теории можно свести к пустому дереву, создав кастомный класс-наследник AnimInstance и прописав всю логику в коде. Но мы такого не делали, вероятно могут возникнуть сложности :)
  • Сетевая оптимизация для Unreal Engine 4
    0
    Речь идёт о кодировании объектов в RPC. Можно представить это как матрицу 32х32, первый инт — будет задавать к каким строкам применить состояние второго инта. Т.е. это некий аналог «индекс + состояние».
  • Сетевая оптимизация для Unreal Engine 4
    0
    Посмотрите www.cprogramming.com/tutorial/bitwise_operators.html, здесь всё очень подробно расписано. Особенно посмотрите пример про машины, в частности:

    int is_in_use(int car_num)
    {
        return in_use & 1<<car_num;
    }
  • Сетевая оптимизация для Unreal Engine 4
    0
    Нет, если у вас такое поведение unreliable функции, то это первый показатель что сеть у вас «забита». UFUNCTION(Client, Unreliable, NetMulticast) отлично доходят даже с большим числом параметров при нормальной загрузке сети (у нас немало вещей ходят на клиенты таким способом :) ).
  • Сетевая оптимизация для Unreal Engine 4
    0
    Кодируется индекс + маска на 32 объекта, т.е. данный метод предполагает не репликацию массива, а отправку RPC. В случае если мир упорядочен разумно блоками в мире (например, персонаж въезжает в кучу объектов, которые лежат в одной маске или «рядом»), потребление сети и CPU минимально.
  • Сетевая оптимизация для Unreal Engine 4
    0
    Пока ничего кроме голых утверждений ничего не вижу. Ссылочка на проект выше, продемонстрируйте навыки что ли? Мапхак — банальная задача, а что-нибудь более интересное дак вообще смотрелось бы весомым аргументом.

    P.S. Про PUBG это даже не смешно. Первые версии и спидхаку были подвержены, ну и? Если вы его копали, вы прекрасно знаете какие вещи там архитектурно были косячны со старта, что для беты весьма ожидаемо.
  • Сетевая оптимизация для Unreal Engine 4
    0
    Как уже было сказано An70ni выше, это обычные битовые операции :) В гугле находятся кучей туториалов по запросу «c++ bit operations», например, вот: www.cprogramming.com/tutorial/bitwise_operators.html
  • Сетевая оптимизация для Unreal Engine 4
    +2
    Очень толсто :) Хочется увидеть ваш увлекательный рассказ на тему сетевого стека на анриале. Порадуйте меня и общественность срывом покровов.
  • Сетевая оптимизация для Unreal Engine 4
    0
    Это актуально для любого массового движка, только не имеет никакого отношения к сетевому стеку.

    Есть принципиально два разных направления хаков:
    1. Хак клиента, который вы описали. Мапхаки, воллхаки, эймхаки и иже с ними. Борьба с этим — постоянное противоборство щита и меча. Чем популярнее технология клиента или сама игра — тем больше высококлассных спецов его «разбирают». Читаки пишутся далеко не «мамкиными хакерами» (это потом уже тулзы общего назначения они стараются приладить, но серьёзные читаки это весьма бизнес). Защита — определять по косвенным признакам и банить. Сложно, дорого, не надежно.
    2. Хаки косяков сетевой архитектуры. Например, когда клиент решает откуда и куда он выстрелил, а сервер ему верит. Очевидно, это кривые ручки разработчика игры, давшего клиенту авторитарные права на такие вещи. Защита — бить по ушам разработчика. Архитектура, которая не верит клиенту ни в чем, кроме инпута, полностью устойчива к такому виду хаков.

    Если ваша игра популярна, с хаками из первого пункта все равно бороться самим ;)
  • Сетевая оптимизация для Unreal Engine 4
    0
    C++, все сетевые вещи строго переношу в код. На уровне прототипа БП нормально использовать для сети, но для продакшна такие вещи в них оставлять опасно.

    Кстати, ещё одна ловушка в БП и плюсах:

    Спасибо за дополнения! :) Еще из веселого — переопределенная в дочернем классе мультикаст функция в блюпринтах будет вызываться дважды, если дёрнуть Parent функцию. Описано здесь, если кому интересно.
  • Туториал по Unreal Engine: C++
    0
    Pawn на самом деле APawn, тк прямой потомок Actor’а
  • Туториал по Unreal Engine: C++
    0
    Я ни в коем случае не хочу принизить вашу статью, и это здорово, что вы и на арч линуксе запустили движок и работаете с ним, но все-таки тех, кто спрашивает про «завести под вайном», я бы отправлял «на убунту», где весь этот шаманизм не нужен.

    Сам я использую инструменты исходя из соображений их удобства для работы с конкретной технологией, оставляя личные предпочтения для «домашних нужд».
  • Туториал по Unreal Engine: C++
    0
    И вы знаете, это прекрасно работает. Быстро, понятно и удобно. При правильной архитектуре проекта ещё и собирается шустро. Не так там много правил, которым надо следовать. И никто не мешает вам использовать сипипи на полную :)

    А CE хоть и более «путь сипипи самурая», но архитектурно печален. Это не двигло для игр, а скорее сипипи песочница :(
  • Туториал по Unreal Engine: C++
    0
    Да там странная статья про извращения в целом. На Ubuntu давно все работает из коробки :)
  • Туториал по Unreal Engine: C++
    +2
    Потому что это не скриптинг, это — программирование. Для «скриптов» есть прекрасные Blueprints, где в ногу себе выстрелить даже при желании сложновато ;)
  • UE4 и мобильная разработка: мифы и реальность
    0
    Спасибо, я вашу позицию понял ;)
  • UE4 и мобильная разработка: мифы и реальность
    0
    К половине прекрасных андроидовских устройств скоро будет применён лейбак «не поддерживается Гугл плеем», о чем вы? Если вы ставите работу над играми в Гугл плее равенство «работа под лоу энд», то это уже не так. Посмотрите хотя бы игры из начала статьи, прекрасные примеры как можно делать продукт, мега успешный на рынке, не оглядываясь на девайсы такого типа.