GameDevCut: Создаю свою систему подгрузки уровня в Unreal Engine 5

Поділитися
Вставка
  • Опубліковано 7 лют 2025
  • Рассказываю чем занимался прошедший месяц.🤓
    Поставил систему профессий на паузу.⏳
    Самое время испытать их в деле и протестировать открытый мир.
    В течение +20 дней изучал стриминг уровня, ближе познакомился с World Partition, Data Layers, Packed Level Actor.
    Настрадался с collision и подобрал подходящую для себя комбинацию технологий. 💁🏻‍♂️
    В целом продолжаю двигаться по пути тестирования AI в открытом мире.
    Напомню, моя цель сделать так, чтобы мир жил без игрока, но в том же время чтобы в этом мире можно было играть 😁
    На очереди оптимизация моих блюпринтов леса, полей, костра, колодца, сада и прочего. Что-то с ними ни так 🤔. Сейчас они почему-то жрут по 25 fps. Надо разобраться
    Дальше займусь растительностью. Для нее тоже нужна выгрузка/загрузка путем стриминга.
    ****************************************************
    My game Kingdom of Isrion:
    VK - club212...
    Telegram - t.me/Kindom_of...
    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: / mngames6
    ◆ 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: iGAME Colorful GTX 1660 Ti, 6Gb.
    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.

КОМЕНТАРІ • 38

  • @супербомба-э7к
    @супербомба-э7к 6 днів тому

    спасибо за видео, сейчас разбираюсь с этой темой. твоё видео годное!

  • @LexStrat
    @LexStrat Рік тому +4

    Обычно такие ютуб проекты "игры" ничем не кончаются, надеюсь у тебя все получится и ты не сдашься на пол пути

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Рік тому

      От души большое спасибо!!❤

    • @CountryManOpinion
      @CountryManOpinion Рік тому +1

      А чем они должны кончиться? Человек по кайфу делает во-первых. Остальное мелочь.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Рік тому

      @@CountryManOpinion да, верно! Делаю чисто для себя). Такую игру, в которой я бы оставил несколько сотен часов и с друзьями поделился), а потом они оставили не меньше и вместе бы обсуждали, как она у всех по-разному проходится)). Даст Бог со временем постепенно все сложится в играбельный билд)).

    • @супербомба-э7к
      @супербомба-э7к 6 днів тому

      @@DmitryNazarovMmitekk на самом деле, такой подход делает меньше шансов выгореть. ну и просто если человек не рвется сделать что то в сроки, и тем более есть мотивация

  • @ArsMar
    @ArsMar Рік тому +8

    Нее, настолько я бы не заморачивался. Движок из коробки всё выгружает что не в поле зрения, да и деревья сразу можно спавнить с настройками расстояния отображения.
    Если эти заморочки только из-за AI, чтобы для них преграды держать всегда действующими - то-же так себе идея, представь если мир будет очень-очень большой, то всё-равно из-за логики всех AI всё просто умрёт.
    Я бы делал AI не только методами движка, а на момент скрытости от глаз игрока бы просто где-то в отдельном логическом блюпринте по очереди обходил бы НПСов, и в зависимости от времени и прочих вводных данных "имитировал" их жизнь "виртуально", заранее определив точки маршрутов и спавня в них НПСа если приближается игрок.
    А что касается падения FPS - явно что-то где-то спавнит что-то без конца, глянул бы список акторов на предмет появления чего-то там. Ну или стоит для оптимизации нормальной изучать сразу технологии профилирования из видосов типо "Unreal Engine: Производительность и Профилирование"

    • @ArsMar
      @ArsMar Рік тому

      Ещё для "виртуального" просчёта AI стоит погуглись ассинхронные функции(async), купить или самому написать для блюпринтов, чтобы игровой процесс не грузили.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Рік тому

      Спасибо на добром и полезном слове)

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Рік тому

      А что касается заморочек... Таков мой выбор. В этом вся суть проекта, суть игры. В искусственном интеллекте. Нет смысла симулировать жизненную деятельность в мире в котором по замыслу все создается для случайных событий и генерирования. Мир должен генерировать события в конкретном месте с конкретными субъектами создавая ситуации, которые не прописаны, а сгенерированы. При чем не просто за занавесом, а в конкретных контактах, на базе реальных взаимодействий в мире. В этом вся соль и я не собираюсь от нее отказываться. Если концепция не сработает, я просто начну другой проект. Но отказываться от ключевой идеи, я не стану.
      Обязательно посмотрю про профайлинг и профилирование. Спасибо за рекомендацию.

    • @ArsMar
      @ArsMar Рік тому +3

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

  • @алешагордый
    @алешагордый 6 місяців тому +1

    красавчик парень, молодец я бы с радостью и поучился и по работал с тобой

  • @Fazillka
    @Fazillka Рік тому +2

    Всё таки добился того, чего хотел, круто! Добивай выгрузку растительности и поехали уже стримы с энвиркой делать. А то с этой АИ-шкой свехнуться можно, если просто смотреть. А делать так тем более. Пора отвлечься на более творческую часть)

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Рік тому

      от души! Согласен и поддерживаю полностью!

    • @cgshnik
      @cgshnik 5 місяців тому

      @@DmitryNazarovMmitekk привет! А как вообще убрать эту подгрузку лодов и исчезновение их при отдалении?
      ну чтоб при отдалении камеры , ассеты не исчезали.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  5 місяців тому

      @@cgshnik 1) Использовать nanite вместо ЛОДов. 2) Использовать 3-5 уровней лодов для плавной смены полигонажа; последний прям крайне низкие полигоны сделать, чуть ли ни спрайт (как например, деревья от Эпиков).

  • @renchezlove1410
    @renchezlove1410 Рік тому +1

    Спасибо за видео. Подскажите пожалуйста что за музыка фоновая играет?

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  Рік тому

      А это из Deus Ex. Кажется, отсюда ua-cam.com/video/7lERcfsqJSk/v-deo.html

  • @alexphil9015
    @alexphil9015 3 місяці тому +1

    Приветствую. Можешь подсказать что читать, чтобы понять как создать игровую локацию для бродилки? От А до Я. Есть такое вообще?

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  3 місяці тому

      Я читал только одну книгу в этом направлении. И только ее могу рекомендовать. Михаил Кадиков - Проектирование виртуальных миров - level-design.ru/pro-ld-book-index/pro-ld-book-about/

  • @алешагордый
    @алешагордый 6 місяців тому +1

    хейтеров не слушай топой своей колеей

  • @РУССКИЙ_СОЛДАТ
    @РУССКИЙ_СОЛДАТ 11 місяців тому +2

    Привет ! Коллеге ! ))
    Случайно наткнулся на видео. Увидел низкий фпс в сценах, где этого быть не должно...
    И подумал. Возможно смогу тебе чем то помочь. (С работаю UE уже 5-6 лет) Не Бог-80lvl конечно, но пройдено многое.
    Если есть какие либо вопросы, нужны подсказки, с удовольствием помогу !✊
    UPD : RPG - это конечно ты "лихую ношу взвалил" !

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  11 місяців тому +1

      спасибо! Буду писать, если будут трудности! 🙂

    • @sha1bu
      @sha1bu 10 місяців тому

      А куда вам можно написать?

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  10 місяців тому

      @@sha1bu в описании к видео есть все необходимые контакты для связи. Можете на Сервер в Дискорд написать, можете в Телеграм комментарий оставить к любой публикации. В ВК редко бываю - лучше туда не писать)).

  • @алешагордый
    @алешагордый 6 місяців тому +1

    делегируй полномочия и у тебя все получится

  • @andreyshestakov9609
    @andreyshestakov9609 6 місяців тому

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

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  6 місяців тому

      Ребята в комментах уже ни раз предлагали сделать actor в котором будет вся логика и просчет, а AI чисто на стандартной выгрузке/загрузке через Partition.
      Но мне такой сценарий пока не подходит. Я думаю что там столько логики будет, что ппц.
      Мой текущий уровень познания движка не предлагает даже призрачных вариантов, как это можно запрограммировать. Это ведь надо отказаться от бихейверов и где-то все проверки ваять для каждого НПС отдельно.
      Плюс самая главная проблема - это отсутствие персонажа в мире.... У меня по задумке они должны перемещаться по миру, взаимодействовать друг с другом и т.п. В случае с единым эктором это будут просто балванчики которым я буду говорить что делать. Так не пойдет.
      Поэтому мудрю и стремлюсь сделать по моей задумке. Важно чтобы AI перемещались по миру, взаимодействовали, получали информацию через зрение и слух... короче, нагрузка сильная. Но посмотрим...

    • @andreyshestakov9609
      @andreyshestakov9609 6 місяців тому

      @@DmitryNazarovMmitekk Ну ты можешь сделать иерархию абстрактных сущностей. Например У тебя есть класс поселение там просчитывается логика примитивная. Например кол-во акторов их потребление. Есть вторая сущность отвечающая за наличие посаженых овощей там и т.д. Есть третий тип абстрактной сущности например система управления группами АИ поворами, защитниками и т.д. Эти 3 абстрактные сущности тикают в них записываются данные и они управляют всеми мобами. Мобам не надо трекать в тике обьекты им даже зрение можно вырубить, им в БТ будут приходить данные из этих абстрактных сущностей, и там уже не о 30 ФПС можно говорить а о 60. Если ты еще этих мобов будешь удалять впринципе из памяти как классы когда не надо или когда не видно, и потом загружать асинхронно когда надо, то там можно и 120 ФПС выжимать, потому что лагать там не чему будет.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  6 місяців тому

      @@andreyshestakov9609 я понял к чему ты клонишь. Единый мозг который управляем всеми. Через лобные доли в виде отдельных блюпринтов...
      Опять же, повторюсь, мне нужны AI сущности перемещающиеся по миру, которые будут случайным образом (это важно), на основе своих потребностей и прочих состояний совершать действия. Важно не контролировать их процесс, как это, например, сделано на Unreal в Manor Lords, а дать им жизнь.
      Смысл в том, чтобы игра генерировала события через взаимодействие AI между собой и с игроком. Мир должен существовать отдельно от игрока и важно чтобы он не был запрограммирован. Мне нужные случайные события на основе множества факторов, порождаемых действиями искусственного интеллекта, а не прописанной логикой "если, то". Да, по сути все и сводится к логике "если, то", но я разбавляю события кучей факторов которые могут произойти, а могут и не произойти. Например, НПС будут брать и генерировать квесты исходя из своих потребностей (например, принести ему еды или сложить дрова у поленницы, которые он вчера нарубил), денег и целей.
      Грубо говоря игра будет играть сама в себя и постоянно создавать для игрока уникальный опыт. Не будет повторяющихся прохождений... Это, как ММО без игроков, но с проработанным нарративом и вариативным геймплеем.

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  6 місяців тому

      @@andreyshestakov9609 вообще систему можно запрограммировать. И я сейчас посидел, поразмыслил. В принципе это реально. Но все упирается в perception и постоянную передачу данных на Главный мозг. Через таймеры каждые (условно) 10 секунд отправлять данные мозгу для обработки.
      Надо попробовать. Выделить все просчеты на многопоток и настроить обмен между ИИ и Главным мозгом.

    • @andreyshestakov9609
      @andreyshestakov9609 6 місяців тому

      @@DmitryNazarovMmitekk Понял ,ну это не отменяет того что сейчас система как буд-то не замкнутая. Типа как повар трекает что людям надо кушать а ему надо готовить, а если у тебя группа поворов, можно просто посчитать кол-во рассчетов которое им надо делать что бы выполнить вполне контролируемое действие. В любом случае все что ты рассказал можно написать с помощью абстрактных классов которые будут их единым мозгом,. если это грамотно написать.

  • @dimine2292
    @dimine2292 9 місяців тому +2

    Здравствуйте, откуда такие домики? Сами делали или пак какой то?

    • @DmitryNazarovMmitekk
      @DmitryNazarovMmitekk  9 місяців тому +4

      Все дома без исключения делал сам в движке с помощью Modelilng Tools. Но не с нуля, а с использованием различных бревен и досок Quixel Megascans.
      То есть текстуры не мои, материалы частично мои с фильтрами, частично квикселевские.
      Часть забора - готовые, часть (в полях частности) делал сам.
      Крыши в виде шифера вытеснены через дисплейсмент. Соломенные крыши вручную мною из травы Megascans собраны.
      Грубо говоря есть какой-то набор досок и бревен с определенным количеством текстур, которые я постоянно реюзаю внутри уровня.
      P.S. На канале есть стримы, как я делал все домики и весь уровень.

    • @betraid
      @betraid 7 місяців тому

      @@DmitryNazarovMmitekk Щас бы юзать ассеты из мегасканс для гейм дева☠