GameDevCut: Итоги оптимизации и полугодовой работы

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Подвожу итоги полугодовой работы (оптимизации) над проектом Kindom of Isrion: Efdora.
    Прошлое видео по оптимизации от 1 апреля 2024 года: • GameDevCut: Оптимизаци...
    Плагин асинхронной и многопоточной загрузки: www.unrealengi...
    Видео о применении многопоточного плагина: boosty.to/mmit...
    Буду рад поддержке. Каждый рубль оплатит мое время на разработку игры.
    Поддержать автора:
    DonationAlerts: www.donational...
    Таймкоды:
    01:00 - по итогу об оптимизации
    28:38 - плагин асинхронной загрузки
    41:27 - о новых механиках и прогрессе в развитии ИИ
    *******************************************
    My game Kingdom of Isrion:
    Telegram - t.me/Kindom_of...
    Reddit: / mmitekkdev
    Boosty - boosty.to/mmitekk
    Discord - / discord
    House of the Dev: thehouseofthed...
    *************************************************************
    Author: Dmitry Nazarov.
    I work on the Internet. Webmaster, Internet marketer, IT specialist of a wide profile.
    ◆ GameDev: t.me/Kindom_of...
    ◆ WebDev: getdrupal8.ru
    ◆ Telegram: @mitishnazarov
    ◆ E-mail: webmaster@getdrupal8.ru
    ***************************************************
    Contacts:
    #VK - id72743020
    #Instagram - / mmitekk
    #Facebook - / mitish.n
    ***************************************************
    ******************
    PC Configuration :
    Motherboard: MSI X470 Gaming Plus Max.
    Processor: Ryzen 7 3700X.
    Graphic-card: Intel Arc A770 16 Gb
    RAM: 64 Gb, 3600 (OS) MHz, Patriot Viper Steel PC4-28800.
    Mouse: A4Bloody V8.
    Keyboard: Defender REBORN.
    Microphone: F100TL.
    Monitor: AOC 23" I2369VM.
    Disk: SSD NVMe M.2. for Windows 10 and Unreal project.
    Disk: HDD 2 Tb Toshiba for Games.

Komentáře • 50

  • @DmitryNazarovMmitekk
    @DmitryNazarovMmitekk  Před měsícem +1

    Есть люди, которые заходят на видео сразу после загрузки чтобы дизлайк поставить. Таковых прошу отписаться и добавить канал в игнор.
    А если видео тебе по душе - поставь лайк. Это поможет продвижению канала и мотивирует меня делать больше контента.
    P.S. Дорогие зрители. В особенности С++ разработчики. Я крайне ценю комментарии направляющие меня к правильным мыслям о том, что нужно использовать чисты плюсовый код вместо блюпринтов.
    И я бы хотел посмотреть, чтобы кто-то взял 60 полноценных НПС, больше 40 из которых Метахьюманы, разместил их на локе, добавил каждому по 4-5 полноценных Behavior Tree по 20-30 задач в каждом; с 7 actor component' ами в каждом character блюпринте, которые отвечают за обработку задач...
    Настроил загрузку - выгрузку в локации и показал мне сколько ФПС на medium качестве с включенными Lumen, Nanite и Virtual Shadow Map будет. Вот прям хочется.
    Много людей пишут о том, что надо брать С++. Но, кто-нибудь сделайте это. Покажите, как надо. Я бы рассмотрел ваш кейс.

  • @Camelot63RU
    @Camelot63RU Před měsícem +1

    Красава Митяй, пока остальные влажно фантазируют, мы делаем 🤙

  • @zazertpopov9995
    @zazertpopov9995 Před měsícem +3

    Понимаю вас, у самого немного другое направление, но видна колоссальная работа

  • @gamedev1118
    @gamedev1118 Před měsícem

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

    • @gamedev1118
      @gamedev1118 Před měsícem +1

      Далее при при переводе на скелтал меш использовать Thread Safe Animation (асинхронные анимации)

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem +1

      Thread Safe Animation - вот это интересно. Я как-то видел видео, где автор делал что-то в анимблюпринте асинхронно, но там, как в последствии оказалось метод с root motion не работает.
      Но про Thread Safe Animation изучу! Благодарю!!

  • @andreyshestakov9609
    @andreyshestakov9609 Před měsícem

    Всё понятно. Непонятно про что игра. Про менджмент поселения?

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

      Про исследование мира населенного персонажами с высокоразвитым искусственным интеллектом. Игра будет играть в себя параллельно с игроком.

    • @andreyshestakov9609
      @andreyshestakov9609 Před měsícem

      @@DmitryNazarovMmitekk Не думал кстати сделать систему от обратного, типа что бы не персонажи были центром принятия решений а абстрактная сущность, типа поселение. Как буд-то бы тогда систему можно сделать более замкнутой. Кому-то не хватает еды, система направляет чувака готовить и т.д. Типа что бы их БТшкой управляла внешняя сущность. Тогда возможно можно сэкономить на АИ просчетах. Если эта внешняя сущность будет содержать в себе необходимые данные.Типа не каждый персонаж будет знать о всех сущностях и ими апелировать а всего один обьект. Звучит как профит

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

      @@andreyshestakov9609 ребята уже предлагали подобное. Но я слабо представляю, как это будет работать и как это запрограммировать. По сути персонажи будут марионетками которым я выдаю руководства к действию. Они не будут личностями со зрением и слухом. Не будет и случайных событий которые они вызывают из-за своего бесконтрольного поведения.
      У меня сейчас огромный пласт в бихейвор зашит и я не представляю, как его можно в actor реализовать через события. Логика посыплется, т.к. придется делать кучу диспатчеров и каким-то образом придумывать свою систему сенсорики для AI.

  • @VDGames_Studio
    @VDGames_Studio Před měsícem

    Так и не смог заставить работать плагин Async Blueprints Extension на версии движка 5.3.2.
    Постоянно вылеты и ошибки.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

      Там нужно настраивать правильно. Подключать Stop Tasks обязательно иначе вылетает и зависает клиент после попытки запустить в редакторе.
      Плюс некоторые таски будут вылетать если не правильно их сделать. Например, положить в них ноду которая работает только в Основном потоке, например Get Actor of class или Spawn actor.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

      Еще могу порекомендовать чекнуть секцию Вопросы и ответы у плагина, т.к. плагин без бутылок реально не настроишь - не очевидно как-то. www.unrealengine.com/marketplace/en-US/product/async-blueprints-extension/questions?sessionInvalidated=true

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

      Могу записать видео, как я пользуюсь им, если нужно.

    • @sliderssli1769
      @sliderssli1769 Před měsícem +2

      @@DmitryNazarovMmitekk Нужно

    • @VDGames_Studio
      @VDGames_Studio Před měsícem

      @@DmitryNazarovMmitekk само собой Stop Tasks добавлен в Game Mode и даже персонажу.
      Хотел сделать передвижение NPC при помощи этого плагина. Но увы.

  • @user-gr3ze3gzhh
    @user-gr3ze3gzhh Před měsícem +2

    А не лучше написать важный участок кода на плюсах? На них же намного быстрее работает код

    • @srpgame
      @srpgame Před měsícem +1

      Он работает ни быстрее ни медленнее. Здесь больше важен сам подход. Можно и на плюсах мракобесие создать, а можно и на бп, но на бп это происходит просто чаще из-за недотуториалов, которые в 95% случаев скорее искажают информацию и вредят профессионально человеку, чем обучают. Ну и нужно понимать какие ноды в какой момент лучше использовать, чтобы всё работало быстро и шустро. БП это и есть по сути С++ и никуда от этого не деться. Тот же код на плюсах когда пишешь - вызываешь его уже нодами. Есть задачи, которые блюпринты просто не умеют выполнять изначально без написания кастомных - к примеру когда нужен тот же обмен с базой данных

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem +1

      Популярный вопрос! Я не владею программированием на С++ и принципиально не стремлюсь изучать программирование ради создания игры.
      Хотя бы потому что у меня мышление не подходит для данных задач. Я больше дизайнер и тех-артист, чем прогер. То же самое и в другой моей сфере жизни - в создании сайтов. Как ни пробовал где-то что-то изучать в php и js, так и не понял и даже не проникся этим. Иными словам - это не мое.
      Но я хочу делать игры. Хочу создать игру, которую задумал. И поэтому я готов покупать готовые С++ решения от знающих ребят. Чтобы это работало, как должно, на уровне профессионального понимания программирования.
      Остальное, что возможно, буду делать на блюпринтах. Если где-то упрусь в угол и пойму что без С++ не обойтись - буду искать умные головы программистов, какие-то плагины и т.п. чтобы так или иначе решить необходимую задачу.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem +1

      Здорово, что один из подписчиков в телеграм в тематических сообщениях оставил комментарий о том, что следует задуматься о работе с С++. Он указал мне на возможный плюс многопоточности, в частности для AI. И он заметил, что С++ в этом направлении был бы, как нельзя кстати.
      И я задумался и начал изучать этот вопрос. Благо решение не заставило себя ждать - нашелся интересный плагин, который позволяет разделять потоки.
      И это круто!

    • @user-gr3ze3gzhh
      @user-gr3ze3gzhh Před měsícem

      ​​​@@DmitryNazarovMmitekk bc softworks вот этот чел в своих туториалах говорит о том что касты убивают полиморфизм. Посмотри его может чем нибудь помможет

    • @NoName-fm6ew
      @NoName-fm6ew Před měsícem

      @@DmitryNazarovMmitekk кстати можно сделать "Native blueprint", это позволяет добиться той же скорости что и на плюсах, при этом все остается на бп(хотя фича популярная, наверное знаете)

  • @vlasud2018
    @vlasud2018 Před měsícem +2

    Секрет оптимизации в том, что надо писать КОД на плюсах. А не юзать БП

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

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

    • @MrDurarara11
      @MrDurarara11 Před měsícem

      ​@@DmitryNazarovMmitekk но ведь ты и в самом деле тратишь своё время впустую. Накидай говна на блюпринтах, они для этого и созданы, если получившееся чудовище будет играться весело - ищи инвестиции и с полученных денег нанимай С++ прогера.
      Если играться весело не будет, то и не страшно, обычно оно так и бывает, зато ты не просрал кучу времени на полировку говна.

    • @MrDurarara11
      @MrDurarara11 Před měsícem

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

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Před měsícem

      Да, вы правы. Скорее всего я мало что понимаю в Unreal. Но игру сделать хочется. И я буду стараться. Приобретая плагины и оптимизируя код, как могу.
      Пока с 50 ИИ персонажами все более менее работать не будет. Если будет 40 ФПС с 50 персонажами - это будет круто, я считаю. Учитывая что у меня с этими же НИПами на основной карте столько же ФПС. Хотя там и леса, и дома.
      Вообще тут видеокарта странно себя видет. Она что с люменом, что без него, что с рейтресингом, что без него, в редакторе один и тот же ФПС выдает. Более того, у меня на прежней видеокарте 1660 ti было почти столько же. Я удивился, когда поставил Arc A770 вместо нее и не заметил прироста ФПС на основной карте. Поэтому... тут большой вопрос... Видимо Интел-таки не смогли...
      Я бы хотел посмотреть, чтобы кто-то взял 58 полноценных НПС, больше 40 из которых Метахьюманы, разместил их на локе, добавил каждому по 4-5 полноценных деревьев поведения по 20-30 задач в каждом, с 7 actor component' ами в каждом НПС, которые отвечают за обработку задач... Настроил загрузку - выгрузку и показал мне сколько ФПС на medium качестве с включенными Lumen, Nanite и Virtual Shadow Map будет. Вот прям хочется.
      Много людей пишут о том, что надо брать С++. Но, кто-нибудь сделайте это. Покажите, как надо. Я бы рассмотрел ваш кейс.

    • @MrDurarara11
      @MrDurarara11 Před měsícem

      ​@@DmitryNazarovMmitekk если от изменения видеокарты или снижения графики не меняется фпс, значит упор в процессор. Надо открывать профайлер и смотреть что так много ест. Код в целом именно так и следует оптимизировать - открываешь профайлер и смотришь что жрёт дохрена и даёт резкие скачки времени кадра.
      Без профайлера этим обычно не занимаются, потому что чтобы плюсовый код начал тормозить ты должен конкретно так обосраться, что, впрочем, не так и сложно, если не понимаешь что делаешь. Однако понимание конкретно на плюсах приходит значительно быстрее.
      58 активных персонажей с полноценными анимациями это перебор, надо сокращать до одного - двух десятков. Если посмотришь на современные игры, ты редко встретишь ситуацию, где у тебя больше двух десятков АКТИВНЫХ и ПОЛНОЦЕННЫХ персонажей на экране одновременно.
      Нужно применять трюки, находить персонажей, которых игрок не видит, и выключать им всё кроме минимально необходимого, и всё такое.
      Если сделать один в один то же самое на плюсах, не факт, что это прям радикально улучшит ситуацию, однако на плюсах у тебя околобезграничное количество способов срезать углы и хакать производительность.
      Голая производительность это не главная причина почему блюпринты сосут. Главная это то что это просто всратый и ограниченный способ делать вещи.
      Ты очень усердный пацан, вложи это усердие в изучение С++, будет больно, но результат будет значительно лучше.