[Разработка игр, Unreal Engine] Джентльменский набор программиста UE4, ч. 3
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Данный вопросник является дополнением и логическим завершением темы "джентльменского набора", поднятой ранее. Разработка игр — весьма комплексная индустрия, с очень широкими набором технологий и подходов, при этом базис у всех этих вещей на самом деле общий. Этот список создан в первую очередь для тех, кто хочет быть программистом Unreal Engine, а также позволяет оценить свой уровень тем, кто уже считает себя продвинутым программером под анрил.В своей статье я стараюсь затрагивать такие проявления используемой технологии, изучение или исследование которых дает не просто инструкцию "делай так", а формирует рациональные подходы к разработке.В прошлых сериях
4ертовы хипстеры. Никакой пользы от них
- Часть 1: Habr - Джентльменский набор программиста UE4, ч. 1
- Часть 2: DevGAMM 2019 - Джентльменский набор разработчика Unreal Engine 4
ДисклеймерДанный список вопросов ни в коем случае не тест и не экзамен! Все перечисленные в цитатах термины — это целый комплекс навыков, принципов и технологий. Некоторые вопросы попросту не предполагают единственно верного ответа, но очерчивают поле для дискуссии и поиска всех граней.Основы архитектуры движка
- Можно ли использовать STL? Зачем в Unreal Engine свой набор контейнеров? Зачем движку нужны свои "умные указатели", если есть UPROPERTY?
- Как узнать потребление памяти на момент Х и структуру (содержимое) этой памяти? Каким образом можно проверить целостность памяти и найти утечки? Как работает Garbage Collector и какие у него боттлнеки?
- Каким образом можно загрузить что-либо (текстуру, блюпринт, эктор, карту) асинхронно, и какие ограничения на этот процесс есть у движка? К чему приведет вызов функции синхронной загрузки ассета или его части в общем процессе асинхронной загрузки?
- Многопоточный ли анриал? Как устроен основной цикл кадра/обновления мира? Какие способы проводить асинхронные вычисления есть на движке, и какие у них особенности?
- Почему UPROPERTY — это пустой макрос? Как происходит процесс сборки бинарников проекта? Что такое unity build, зачем он нужен и какие плюсы/минусы у него есть?
- Что такое SlateApplication и какую роль играет в основном loop'е движка? Какой путь проходит событие ввода от нажатия клавиши до PlayerInput?
Blueprints
- Как технически работают блюпринты на уровне виртуальной машины? Как устроен EventGraph и что такое FFrame? Как происходит вызов функций из БП в нативный код и обратно?
- Как устроены латентные функции?
- (Advanced) Как можно реализовать wildcard in/out параметры и как работают CustomThunk функции?
AI
- Что такое Behaviour Tree? Какие отличия от классического "книжного" BT? Какие есть альтернативы? Как технически (или архитектурно) устроены BT?
- Как выбрать — писать ИИ на BT, или просто запрограммировать логику в блюпринтах или в коде? Либо предпочесть другие (какие?) варианты?
- Каким образом реализуются независимые ветки логики ИИ на BT? (Пример: танк едет и наводится/стреляет одновременно) А если их три или четыре?
- Какие еще модели построения искусственного интеллекта часто используются в геймдеве, в чем их плюсы и минусы?
- Какие алгоритмы pathfinding'а и навигации используются на движке? Каким образом происходит ведение персонажа по маршруту?
RenderingОзначенная глубина погружения не предполагает, что вы — рендер-программист. Скорее это взгляд со стороны техарта и "интересующегося" программиста на одни из самых высокоуровневых вопросов.
- Что такое draw call? Какие есть способы батчинга? Инстансинг vs батчинг?
- В чем разница между Forward и Deferred рендерингом? (Advanced) А сколько вообще основных архитектур на текущий момент? Чем принципиально отличается рендеринг на мобилках/консолях от десктопного?
- В чем отличия рендеринга непрозрачных объектов от прозрачных? Что за зверь Masked? (Advanced) А чем такой подход опасен на мобилках?
- Чем отличается Shader от Material?
- Какие типы шейдеров существуют и в чем назначение каждого? Как это используется в движке и отражено в материалах?
- Зачем нужны mipmaps? В чем сила power of two текстур?
- Что такое texture compression, как оно работает и используется?
- В чем сила indirect sampling? Что означает это на практике в контексте анрила?
- Как устроен цикл рендеринга на движке? Что такое RHI и <Smth>Proxy?
- Как работают Particle Systems? Где происходит расчет частиц, в каких случаях?
Animation
- В чем отличия рендеринга skeletal mesh от static mesh? Какие основные параметры и метрики у скелеталки? Какие техники оптимизации скелетной анимации используются на движке? (Advanced) По каким причинам Nanite не работает для скелетной анимации?
- Какие методы наследования и композиции в Animation Blueprint возможны для использования? Плюсы и минусы каждого из них?
- Какие способы анимации вообще могут быть? Какая информация и каким образом хранится в каждом случае?
ПрочееПара дополнительных полезных вопросов вне категорий.
- Что влияет на размер финального билда? Каким образом можно исследовать этот вопрос?
- Git, Perforce, Subversion, PlasticSCM и другие — что лучше для работы с Unreal Engine и почему? Какие проблемы могут быть?
Кода (3)Эта статья завершает мини-цикл такого формата — подготовка материала для публикации в виде самостоятельной статьи занимает слишком много времени, многие вещи из которых устаревают либо изменяются по мере написания. Формат следующих публикаций будет переработан и систематизирован несколько иначе.При этом конечно же два опросника не покрывают все области знания о движке целиком, однако я постарался коснуться тех вещей которые считаю основными.Как и всегда, призываю к активному обсуждению, комментариям и критике! =)
===========
Источник:
habr.com
===========
Похожие новости:
- [Высокая производительность, Анализ и проектирование систем, Промышленное программирование, Распределённые системы] Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем
- [C++, Unreal Engine] Как мы реализовали систему камер для мобильной TPS игры
- [Высокая производительность, Компиляторы, Процессоры] DSP-процессоры: назначение и особенности
- [Python, Программирование, Алгоритмы] Новый выпуск «Скринкастов» вместе с MADE: много Python'а
- [Разработка игр] Недельный геймдев: #23 — 20 июня, 2021
- [Работа с 3D-графикой, Разработка игр, Unity, Дизайн игр] Как за день потерять 30% онлайна и за два месяца сделать батлрояль
- [Программирование, C++, Работа с 3D-графикой, Разработка игр, CGI (графика)] Vulkan. Руководство разработчика. Отрисовка (перевод)
- [JavaScript, ReactJS, TypeScript] Готовим селекторы в Redux
- [Тестирование IT-систем, Go, Tarantool] Как я сократил код для нагрузочного тестирования в три раза
- [Работа с 3D-графикой, Разработка игр, Игры и игровые приставки] Движок рейкастинга внутри Factorio
Теги для поиска: #_razrabotka_igr (Разработка игр), #_unreal_engine, #_ue4, #_unreal_engine, #_unreal, #_voprosy_na_sobesedovanii (вопросы на собеседовании), #_arhitektura (архитектура), #_osnovy (основы), #_pushkinstudio, #_blog_kompanii_mail.ru_group (
Блог компании Mail.ru Group
), #_razrabotka_igr (
Разработка игр
), #_unreal_engine
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:05
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Данный вопросник является дополнением и логическим завершением темы "джентльменского набора", поднятой ранее. Разработка игр — весьма комплексная индустрия, с очень широкими набором технологий и подходов, при этом базис у всех этих вещей на самом деле общий. Этот список создан в первую очередь для тех, кто хочет быть программистом Unreal Engine, а также позволяет оценить свой уровень тем, кто уже считает себя продвинутым программером под анрил.В своей статье я стараюсь затрагивать такие проявления используемой технологии, изучение или исследование которых дает не просто инструкцию "делай так", а формирует рациональные подходы к разработке.В прошлых сериях 4ертовы хипстеры. Никакой пользы от них
=========== Источник: habr.com =========== Похожие новости:
Блог компании Mail.ru Group ), #_razrabotka_igr ( Разработка игр ), #_unreal_engine |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:05
Часовой пояс: UTC + 5