24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Unreal Engine 5 уже в версии 5.1 - перекатывайся анон, хватит ебать остывающий труп четверки Видео
ПАЛЬ С РЫНКА 1. Content examples - учебный проект из маркетплейса, огромное количество примеров работы почти всех функций движка - анимации, блюпринты, материалы, виджеты и т.д. 2. Парагон - бывшая моба от эпиков, ассеты доступны в маркете бесплатно. И их там очень много - десятки разных персонажей с анимациями и VFX, разные локации, замки, подземелья, горы и т.д. 3. Third person shooter kit - Шутан с укрытиями и перекатами. Отлично подходит, когда нужно подсмотреть как что-то реализовано в реальной игре, а не учебных туториалах. Есть на торрентах. 4. Horror engine - хоррор от первого лица с открытым кодом, все на блюпринтах - камеры, замки, осмотр предметов - все как в твоем Аутласте. 5. Free for the month - каждый месяц эпики устраивают аттракцион невиданной щедрости и раздают некоторые ассеты забесплатно. Сюда могут входить плагины, модели, анимация - короче все что угодно. 6. Valley of the Ancient - демонстратор возможностей Unreal 5. Требует хороший комп для работы.
НЕ ЛЮБЛЮ ЭТИ ВАШИ ВИДОСЫ, ГДЕ МОИ КНИЖКИ Специализированные книги по анриалу - говно говна. За книгами по алгоритмам, паттернам и вообще программированию - обращайтесь в программач. И да, какой-нибудь "Совершенный код" Макконелла вполне подходит и к анриалу.
МАМ Я ВСЕ ЗНАЮ, КАК МНЕ ТЕПЕРЬ НАЙТИ РАБОТУ? 1. хх.ру - на момент создания треда 205 вакансий, хотя и не все они релевантные. В любом случае стоит начинать оттуда, многие вакансии дружелюбны ко вкатышам за еду и нет проблем с переводами. 2. https://forums.unrealengine.com/c/community/got-skills-looking-for-talent/56 - раздел офф форума с поиском и предложением работ. Примерно 3-4 предложения в день. Из минусов - ищут либо вкатышей забесплатно с непонятными перспективами (та же двачеразработка только под другой вывеской) либо сеньоров-помидоров с 5 летним стажем, но могут попасться и нормальные вакансии. 3. Раздел Job board в офф дискорде Unreal Sluckers. Примерно то же что и на форуме, но вакансий побольше - примерно 5-10 в сутки. Некоторые могут быть репостами предыдущих. Обычно ищут людей с хотя бы 2-3 годами опыта, так что для вката подходит плохо. PS. Оп-хуй этого треда устроился на работу именно таким образом. 4. Биржи фриланса типа Апворка. На момент создания треда в Апворке я не ебу сколько так как лень открывать вакансий по поиску "Unreal Engine", однако релевантных здесь намного меньше чем на хх. В основном ищут моделеров/художников/левел-дизайнеров/саунд-дизайнеров/спецов по созданию видеороликов и т.д., именно програмистских вакансий маловато. Пожалуй наихудшее место для поиска работы, но чем черт не шутит. 5. На удивление много вакансий требующих знание работы с VR и AR. Также довольно популярное требование - знание мультиплеерной части. Если ты этого не знаешь - то сейчас имеет смысл покуруть туториалы про репликацию и мультикасты.
НО ТАМ ТРЕБУЮТ ОПЫТ И ПОРТФОЛИО Да, требуют. Многие требуют иметь готовые и зарелизеные игры - либо самостоятельные либо в составе студии. Но многие готовы принять на рассмотрение любое портфолио, даже если оно состоит из тестовых болванчиков и манекенов. Если у тебя такого нет - значит пришло время начать делать игру по одному из туториалов в шапке треда, которую будет не стыдно показывать на собеседовании.
Я РНН ГОСПОДИН И ХОЧУ ДЕЛАТЬ СВОЮ ИГРУ С ДВАЧЕРАМИ БЕЗ КРАНЧЕЙ И СКРАМОВ, А НЕ РАБОТАТЬ 8/5 НА ДЯДЮ Пока что двачеры не сделали ни одной игры, и никогда не сделают. Хочешь делать игры и получать деньги - или иди работать в студию или тащи в одиночку.
Я НЕ ХОЧУ УЧИТЬСЯ ПРОГРАММИРОВАТЬ НА С++ ПОЭТОМУ ВЫБИРАЮ БЛЮПРИНТЫ Блюпринты - это точно то же программирование, только с человеческим синтаксисом без фигурных скобочек и непонятных слов. Если ты до этого никогда не программировал - шанс сделать на блюпринтах говнокод равен 100%.
Предыдущий больше не компилируется здесь: >>850568 (OP)
Интересовался в этом треде годным каналом по Unreal Engine для новичков - сказали что таких нет. В итоге после нескольких месяцев вката ютуб мне выдал данный канал:
Курсы по C++, блюпринтам, Unreal Engine, связке Unreal Engine и C++ - все в бесплатном доступе (автор канала предлагает купить его курсы после просмотра, если захотите). Также автор (который в программировании уже 25 лет, по его словам) сам пилит Сталкера, можно вместе с ним пилить шутан.
>>872344 В следующую шапку добавлю. Лично я вообще не воспринимаю тг и дискорд каналы. Даже если вступаю, то потом все равно не могу себя заставить что-то там читать или писать.
Ковыряю VR-темплейт и примеры на гитхабе и заметил там примерно 2 разных подхода: 1. Реализуется SceneComponent для предметов, который добавляется к интерактивным предметам и управляет поведением контроллеры-рук игрока (например, меняет анимацию рук при приближении). Т.е. предметы "влияют" на руки. В частности, такой подход использует официальный VR-темплейт проекта из самого Анрила. 2. Запиливается блюпринт-интерфейс, который содержит в себе основные функции-события (OnPickup, OnUse, OnDrop и так далее), далее руки трейсом/сферой проверяют, реализует ли объект данный интерфейс и, соответственно, вызывает вышеописанные события. Т.е. в этом случае руки "влияют" на предметы. Вижу, что такой подход используется во многих проектах на гитхабе (например, VrContentExamples - https://github.com/mitchemmc/VRContentExamples от автора книжки из шапки).
Может кто-нибудь по опыту/с дивана сказать, какой подход более гибкий и менее геморройный?
>>873358 Там надо разбираться с каждой моделью индивидуально. То что их дают бесплатно еще не значит, что ты можешь их использовать в коммерческом проекте. Вон там моделька Марио есть, естественно на нее нет лицухи.
>>873358 Ничего не значит. Формально там написано что это CC-BY, но что там вылезает на главной? Ага, Ламборгини. Смотрим. Это просто модели, взятые со скетчфаба. Можешь ли ты ее использовать? Автор модели считает, что да, но владельцы бренда Ламборгини с тобой вряд ли согласятся. Судя по всему, нейродауны просто скачали все что им понравилось на скетчфабе.
Хочу обрабатывать MouseX и MouseY-ивенты только в том случае, если включен шлем (Is Head Mounted Display Enabled). На текущий момент, я как понял, проверяться будет постоянно (каждый цикл симуляции?), что довольно бессмысленно. Как в Анриле цеплять/отцеплять обработчики событий по условию?
Вкатился в плюсы. Насколько я понимаю, классы с нуля писать смысла особого нет, и лучше наследовать хотя бы от uobject, чтобы можно было взаимодействовать с классом через редактор?
Типо как ни крути, а юай на прлюсах писать наверное не лучшее решение, а значит надо свои классы, которые будут взаимодействовать в виджетами и привет рефлексия. Хотя наверное можно сделать один класс адаптер, который будет связующим звеном. Но нахуй надо.
>>873924 >Из 40 написанных классов, 39 отвечает за хранение и обработку данных. Какая нахуй обработка данных, лол, что ты собрался обрабатывать? Зачем тебе 39 классов, что они вообще делают у тебя?
И конструктор нельзя перегрузить. Мдаа. Если вместо каждой перегрузки еще надо будет создавать отдельный инициализирующий метод - это конечно будет пушка.
>>873969 Если у тебя требуется много перегрузок конструкторов (нахуя, ты же все равно не сможешь ничего в них передать) - то может ты что-то делаешь неправильно?
>Какая нахуй обработка данных, лол, что ты собрался обрабатывать? Зачем тебе 39 классов, что они вообще делают у тебя?
>Зачем тебе метод инициализации он засерает интерфейс надо использовать бегин эвент.
> Иди туториалы смотри, чтобы научиться программировать
Там какие-то еще перлы были, не помню уже. Чел, я тебе хочу сказать, что у тебя необоснованно завышенное мнение о собственных способностях. Программист он должен гибкость иметь, а ты за пределы туториалов своих лапшиных боишься выйти.
Ожидаемо анриал сказал перегрузить мне анус, а не функцию. Ну штошь, печально, что плюсы в одном загоне с блюпринтами. Сразу понятно, почему челики, которые свой поход в программирование начали с блюпринтов нихуя не умеют программировать лол.
>>874054 > Иди туториалы смотри, чтобы научиться программировать Ну очевидно, что если б ты посмотрел туториалы - то не кукарекал бы про конструкторы, так как знал бы что это такое, когда они вызываются и особенности их работы в анриале. Но ты долбоеб, поэтому иди разделяй интерфейсы конструкторов, хуле, на большее ты не способен.
>>874100 > сохранить инициализирующие параметры в поля класса Ты вообще-то делал точно так же, только вместо бегинплея сделал свой метод, который потом вручную вызывал, называя это почему-то "разделением интерфейса". Так кто тут максимальный долбоеб? А сейчас ты пытаешься скрыть тот факт, что тупо не знаешь что такое конструктор и когда в анриале он вызывается. Ты вообще нихуя не знаешь.
>>874100 > сохранить инициализирующие параметры в поля класса Тебе Эпики именно для этого дали метод GetOwner(), чтоб знать кому принадлежит компонент. Нет, не хочу, не буду, это все от лукавого, я свободный от задротства человек!
>>874109 Все что ты описываешь является новичковыми подходами)))) Если ты не новичок, а я думаю, что ты года два копошишься на одном месте, то это твой интеллектуальный предел.
>>874159 Т.е. по твоей логике говнокод не существует, потому что любой говнокод пишется на синтаксисе языка программирования? Пиздец ты долбоеб конечно.
>>874162 Да нечего там пояснять. Фактически перегрузка конструктора отсутствует, есть конструктор по умолчанию и все. Его ты можешь изменять, но создавать различные параметризованные конструкторы анриал не дает. Это касается всего что наследует от uobject
>>874162 в общем суть токова. В обычном программировании ты можешь создавать несколько конструкторов, например classA(int); classA(int, string); classA(int, string, double);
И потом, создавая объект, вызывать один из нужных конструкторов, в зависимости от того какой набор параметров хочешь передать new classA(1488); new classA(1488, "зиг хайль"); new classA(1488, "зиг хайль", 14.88);
В анриале, внезапно, это тоже работает. Например у класса Трансформ есть 9 конструкторов - выбирай какой нравится и юзай. Но есть нюанс - это классы UObject, то есть 99% всех классов, с которыми ты будешь работать. Дело в том что создание объектов в анриале и их спавн в игровом мире - это разные вещи. Я не на 100% уверен в этом, но когда ты только запускаешь анриал, для каждого класса автоматически создается CDO - объект по умолчанию, который потом используется как объект-прототип для всех твоих будущих объектов, и именно в это время работает конструктор. Когда ты в игре, например, спавнишь пулю - на самом деле ты не создаешь новый объект класса "пуля", а только копию дефолтного объекта "пуля", который существует где-то внутри движка и был автоматически создан час назад. Поэтому перезагрузки конструкторов для них не имеют смысла, так как ты не управляешь тем, когда объект создается и на этипе CDO не можешь ничего конкретного туда передать без модификации движка (ему же нужно как-то знать, какой вызывать конструктор). Я могу ошибатся на счет объекта-прототипа, ну суть в том что конструктор класса вызывается сразу же как только ты только запускаешь движок, и НЕ вызывается когда ты спавнишь какой-то объект. Поэтому приходится искать разные обходные пути для инициализации. Например в блюпринтах можно использовать Expose On Spawn - и задавать значения переменных сразу при спавне. Есть еще "отложенный спавн", когда ты вроде как заспавнил объект, но еще как-бы не совсем, и на "заспавнил на полшишечки" этом этапе можешь передать в него нужные переменные. >>874168 Лол, ты реально ебанутый. Ну давай, поясняй в треде свой обсер - что такое interface segregation principle и почему то говно, которое ты наговнокодил, к нему относится.
>>874169 >Я не на 100% уверен в этом, но когда ты только запускаешь анриал, для каждого класса автоматически создается CDO >Я могу ошибатся на счет объекта-прототипа
Лол. Долбоеб абзац мануала пересказал, а там этого нет)) А я вот уверен, что сидиоу создает на старте движка.
>Когда ты в игре, например, спавнишь пулю - на самом деле ты не создаешь новый объект класса "пуля", а только копию дефолтного объекта "пуля"
объект это область памяти, тупица. Два одинаковых объекта хранятся в двух областях памяти, смекаешь?
>Ну давай, поясняй в треде свой обсер поясняю пиком
Хохол? new classA(1488); new classA(1488, "зиг хайль"); new classA(1488, "зиг хайль", 14.88);
>>874176 >Ну давай, поясняй в треде свой обсер - что такое interface segregation principle и почему то говно, которое ты наговнокодил, к нему относится.
>>874169 >Например у класса Трансформ есть 9 конструкторов - выбирай какой нравится и юзай. Падажжи, трансформ это же структура, для них вроде по другому всё работает, не? нюфаня
>>874178 >>874182 >Ну давай, поясняй в треде свой обсер - что такое interface segregation principle и почему то говно, которое ты наговнокодил, к нему относится.
Кстати, насчет этого кренделя. Там еще один перл же был.
> Зачем ты делаешь приватные переменные и функции, я делаю все публичное и никогда не запутывался. Ты хочишь игры дилать или на код дрочить?!
Если последнее предложение это маркер идиота вернейший, тут все понятно. То с первым есть вопросы. Т.е. у хуесоса вся реализация класса доступна наружу. Но при этом пик. Что это за дуализм сознания?
>>874197 Во-первых: >Ну давай, поясняй в треде свой обсер - что такое interface segregation principle и почему то говно, которое ты наговнокодил, к нему относится. Во-вторых: > Зачем ты делаешь приватные переменные и функции, я делаю все публичное и никогда не запутывался. > делает публичный метод В-третьих > репорт за разжигание межнациональной розни
Мне кажется, если спросить совет по анриалу в юнити треде, там ответ будет компетентнее. Тут тред захватил какой-то дурачок необразованный, который мало того, что не понимает ничего, так еще пытается давай советы на основе новичковый туториалов, которые просто знакомят пользователя с движком, и являются для него абсолютом.
А по каким-то практическим вещам у него только подобные всхрюки. А нахуя. а зачем. Меня так не учили. Хрю хрю. Зачем открывать в таком случае свой пятак, я не понимаю.
Причем понятно, что все игры у него из пары год классов, где он там лапшу таскает и обязательно компоненты, потому что их через редактор можно прокинуть, по другому не умеем
>>874209 Во-первых: >Ну давай, поясняй в треде свой обсер - что такое interface segregation principle и почему то говно, которое ты наговнокодил, к нему относится. Во-вторых: > Зачем ты делаешь приватные переменные и функции, я делаю все публичное и никогда не запутывался. > делает публичный метод В-третьих >Из 40 написанных классов, 39 отвечает за хранение и обработку данных. Если ты на каждый пук делаешь отдельный класс - то ты просто необразованный долбоеб. Делать по-нормальному? Нет, не хочу, не буду, я как долбоеб сделаю 100 классов ведь у меня ОБРАБОТКА ДАННЫХ ПО РАЗДЕЛЕННОМУ ИНТЕРФЕЙСУ., нужно еще больше классов, сегодня я создал 10 новых классов, ведь я свободный от задротства человек, я создаю классы! В-четвертых >и обязательно компоненты Если ты не знаешь о существовании класса UActorComponent, предназначеного под компоненты - то ты просто необразованный долбоеб. Что мы и видели, когда ты принялся колхозить инициализацию, не зная о существовании готовых методов. В-пятых > А нахуя. а зачем. Меня так не учили. говорит долбоеб который не знает как работают конструкторы, как работают компоненты, как работают интерфейсы, как избежать разростания дерева классов, как вообще работает анриаловский апи ... Как ты вообще научился компкудахтер включать? Ты как раз и есть тот еблан со скрина, который с умным видом несет хуйню, а когда его просят пояснить - переходит на визг. Тебя по человечески спросили, где ты взял 39 классов, не использующих анриаловские методы и что ты в них обрабатываешь? Но вместо ответа ты обосрался и начал что-то доказывать. Точно так же с разделением интерфейсов - любой нормальный человек бы сказал "Вот у меня был такой интерфейс, а я его разделил вот, и теперь от вот такой. Профит.". Что сделал ты? Второй тред с истерикой и визгом, при этом 0 ответов лол. Так что засунь хуй себе в рот и выкатись нахуй из треда.
>>874217 Поркинсон спок, ты мне и окружающим уже не докажешь, что ты не долбоеб. Особенно после подобных фортелей >обязательно компоненты >не знаешь о существовании класса UActorComponent просто шиз лол.
Насчет каких-то там объяснений, зачем мне поднимать твой мастери левел? Я дал тебе удочку, ты не просто не смог, ты ее выкинул и ловишь рыбу жопой. Ну можно конечно разжевать и плюнуть тебе в рот, но ты слишком неприятный долбоеб, еще и ведешь себя как свинья.
>>874227 С визга переходишь на нахрюк? Ты так и не ответил ни на один из пяти вопросов. У тебя только ЧСВ есть, ну или это желание прикрыть свою жопу и оправдать то, что на самом деле ты ни в чем не разбираешься и несешь хуйню из рандомных слов, не понимая их смысла. 39 классов обработки данных, перегруженые конструкторы, разделенные интерфейсы - и ничего из этого сделать не смог... >>874233 >этот визг
>>874234 свинья, ты вопросы свои перепроверь для начала на соответствие собственных утверждений фактическим обстоятельствам, тогда большинство их них сразу отпадет.
В то что ты чубаноид, я попал 100%. Приятно наблюдать твой поркинсон.
>>874236 >уиии, хохлы говно в дупу залили Вот и вся дискуссия с тобой, свин: - Подожди, но то что ты сделал - это не разделение интерфейсов... - АРРЯЯЯ УИИИ ХОХЛЫ ЧУБАТЫЕ НИЧЕГО НЕ ПОНИМАЮТ - Подожди, но 39 классов - это уже звучит подозрительно, а ты точно уверен что... - АРРРЯЯЯ УИИИ ХОХЛЫ СВИНЬИ ПЛАТИНОВЫЕ ВОПРОСЫ - Подожди, но зачем тебе перегружать конструкторы, это ведь не так работает... - АРРЯЯЯЯ УИИИ ХРЮЮЮЮ ХОХЛЫЫЫЫ УДОЧКА ЧИСТЫЙ КОД - Подожди, но ты делаешь костыль, ведь в апи уже есть... - РРЯЯЯ УИИИ ПОРКИ ХРЮКНИ КОМПОНЕНТ ЛАПША - Постой, почему ты такой поехавший? - ХРЮКНИ ХОХЛИНА УИИИИИИИИИИ
Тут открываются интересные подробности. Убогий поркинсон тут верещал, что блюпринт классы не отличаются от с++ классов. Для тех кто не понял, он не осилил плюсы, поэтому доказывает себе, что типо он не лох. Но вот что думает по этому поводу официальный мануал
>>874253 > Operating on large sets of data, doing string manipulation, complex math over large data sets, etc. are all very complex, and aren't easy to follow in a visual system. А теперь переведи что здесь написано, свин
Нормальный ход конечно. Долбоебу говорят, что он обосрался, он в ответ говорит, что он обосрался, но с видом, как будто это опровергает тот факт, что он обосрался.
>>874262 Это единственное, что ты смог перевести? Как ты прокоментируешь подчеркнутые строки? Знаешь что такое профилирование? Может слышал когда-нибудь, что не следует заниматься преждевременной оптимизацией. Это кстати в "Чистом коде" было, про который ты упомянул, но видно что сам не читал и как обычно ты несешь рандомные слова, не зная их смысла.
Тут был шарящий анон, он собственно сразу сказал, что блюпринты используются для протопитирования, дальше все переписывается на плюсы. Анриал к тому же заголовок может самостоятельно сгенерить.
Сначала долбоеб утверждает, что плюсы не быстрее блюпринтов, а потом называет код на плюсах преждевременной оптимизацией))) ебанутый нахуй на всю башку лол.
>>874290 > а потом называет код на плюсах преждевременной оптимизацией Так и есть. Если ты пишешь на плюсах только из-за того что считаешь, что так будет работать быстрее - это и есть классическая преждевременная оптимизация. Правильный подход: Написал на блюпринтах, если доволен скоростью - не трогаешь, если не доволен - пытаешься изменить алгоритм, если не помогло - переписываешь на плюсах, после чего проверяешь снова в профайлере - помогло или нет. Если не помогло - ну штош, ты пытался. Неправильный подход: РЯЯЯ ХУЙ ЛАПША ПЛЮСЫ БЫСТРЕЕ СОСИ ЛАПШУ ТЫ ДОЛБОЕБ ХРЮ Я РАЗДЕЛЯЮ ИНТЕРФЕЙСЫ ПУК Ну и я, в очередной раз, прошу тебя объяснить своими словами подчеркнутые строки, как ты это понимаешь
Ебать вы анрыли ебики. Какой пиздец. Вам бы юнити поюзать, сразу забудите про говнопринты и уебанское дерьмо под названием С++. Правда для C# придется учиться программировать, но это того стоит. Зато потом со смехом будете вспоминать эти дискуссии в стиле "ыы конструктар вроде работает а вроде не работает"
Главное достоинство блюпринтов в том, что не надо быть программистом для их использования. Главный недостаток блюпринтов в том, что не надо быть программистом для их использования.
>>874302 вот этот дятел полностью иллюстрирует древнюю мудрость. Не может даже текст логически структурно осознать абзац на русском.
>>874302 >Правильный подход: Написал на блюпринтах
Это из чего следует вообще? В тексте буквально написано, что надо делать при нехватке производительности. Тут нет ни слова о том, что писать на блюпринтах.
>>874329 >Не может даже текст логически структурно осознать абзац на русском >интерпефсы реализуют там конструктуры в полях абзацев Ты решил с горя нажраться? Осознаешь интерпефсы структурно в полях абзацев на русском?
>>874302 >это и есть классическая преждевременная оптимизация. Чел, вообще-то это игры, тут оптимизация всегда нужна, любая оптимизация. Чем больше оптимизации - тем меньше греется пека, тем меньше сброс частот будет, тем больше вычислений и графона можно вкрутить.
Современные пека ограничены скорость озу которую вообще никак, кроме оптимизацией кода, не победить. Ты можешь сколько угодно говорить "нищуки не играйте в игры", но ирл это просто некомпетентность в программировании.
>>874363 П-п-постой, просто я слишком возбуждён новым проектом был, со мной такое не часто, даже не знаю что случилось, обычно я не оптимизирую так быстро!
>>874359 Так идея не в том, что оптимизация не нужна, а в том, что ты не можешь знать заранее что и как изменить в коде чтоб он стал работать быстрее. Речь именно про код - ты можешь заранее оптимизировать дравколлы, материалы, освещение, партиклы, физику и т.д., но код можно оптимизировать ТОЛЬКО после того как он написан. Поэтому и придумали это правило - сначала ты пишешь код не задумываясь о том, насколько быстро он работает, а потом уже, если надо, начинаешь улучшать. Ну и не забывай что в играх большая часть оптимизации - это оптимизация графона, ассетов и движка, и почти ничего из того, что делает собственно программист игры.
>>874372 > а в том, что ты не можешь знать заранее что и как изменить в коде чтоб он стал работать быстрее Любой программист знает что сделать чтобы было быстрее.
>но код можно оптимизировать ТОЛЬКО после того как он написан. Бред какой-то, лол. Если ты не в курсе как работает твой код - ты не программист даже. Нах тебе игры делать вообще?
>Поэтому и придумали это правило - сначала ты пишешь код не задумываясь о том, насколько быстро он работает, а потом уже, если надо, начинаешь улучшать. Это правило придумали для лоускил программистов которым нужно хуякс-хуякс и в продакшн.
>Ну и не забывай что в играх большая часть оптимизации - это оптимизация графона, ассетов и движка, и почти ничего из того, что делает собственно программист игры. А это что за бред? Ты нейросеть? Кто по-твоему движок делает, не программист?
>>874359 Ты смотришь на этот вопрос с точки зрения некомпетентного пердоли, который оптимизирует все что только можно без какой-либо логики. При этом если задать ему вопрос - а почему ты оптимизировал это, а не вооон то, ведь оно куда критичнее - ответа не будет.
А должен смотреть с точки зрения рациональности - сколько часов разработки будет затрачено, сколько профитов(фреймтайм, скорость загрузки) оно даст, насколько данные профиты в свою очередь улучшат экспириенс игрока из твоей ца, и насколько оно вообще соответствует твоим целям.
> Чем больше оптимизации - тем меньше греется пека, тем меньше сброс частот будет, тем больше вычислений и графона можно вкрутить. Ни один пека не будет сбрасывать частоты даже под максимальной нагрузкой, если там система охлаждения исправна и вообще соответствует тдп комплектующих. А в 99% игр нагрузка эффективно параллелится от силы на 2-4 потока, т.е. даже самый дешевый 4-ядерный-8-поточный проц будет упираться в один поток, и чилить с загрузкой 20-50% прям в худшем случае. И это при условии что фреймрейт не ограничен, а во многих инди и около инди играх просто нечем современный проц грузить, и без лимита там будет 500 фпс которые нах не нужны. Ну это я уже по рофлу доебался просто видно что не полностью шаришь про че пишешь.
> Современные пека ограничены скорость озу которую вообще никак, кроме оптимизацией кода, не победить. Не абстрактной оптимизацией, а конкретно локальностью данных, с которой у твоего анрыли по умолчанию проблемы.
>>874377 Ты что-то явно попутал. Писать нормальный высокопроизводительный код не сложно, ты просто берёшь и пишешь нормально, не 700 классов, а 20 массивов данных, не хранить данные в свойствах, использовать батчинг и префетчи.
Тут нет какого-то пердоления или нерациональности, ты просто берёшь и изначально пишешь нормально. Без блюпринтов, ООП и прочей хуиты которая уничтожает производительность.
Даже не знаю что за ебаное дерьмище ты пишешь что для тебя оптимизация это нечто сложное, нерациональное и трата времени, лол. У тебя нет даже размышлений о том чтобы просто не писать говно?
>>874379 Анон, ты слушай внимательней, кек. Давай разберем твои же реплики, чтобы пояснить тебе, почему блюпринты важны:
> Писать нормальный высокопроизводительный код не сложно Так ты сам говоришь, что писать нормальный код на C++ не сложно, но ты забываешь, что блюпринты - это ещё проще. Именно поэтому они идеальны для прототипирования, проверки идей и работы с командой.
> не 700 классов, а 20 массивов данных А кто тебе сказал, что мы хотим нагружать себя этой хернёй, когда можем быстро и удобно сделать это на блюпринтах? Не все хотят пахать на C++ ради пары FPS, понимаешь?
> использовать батчинг и префетчи Ок, тут понятно, что оптимизация - хорошая вещь, но и блюпринты тоже могут быть оптимизированы, если знать, что делать. Зачем сразу кидаться на C++, если можно просто оптимизировать блюпринты?
> Без блюпринтов, ООП и прочей хуиты которая уничтожает производительность Ты ваще понимаешь, что блюпринты - это и есть ООП, и они не сразу уничтожают производительность? Если ты умеешь правильно пользоваться ими, то они тоже могут быть весьма эффективными.
Так что, анон, лучше пересмотри свои представления о разработке игр и научись ценить все инструменты, которые тебе дает Unreal Engine. Не надо сразу искать врагов в блюпринтах, они могут быть твоими друзьями, лол.
>>874379 > не 700 классов, а 20 массивов данных Одно другому не мешает. Классы это лишь абстракция для управления данными. Если ты думаешь, что классы это обязательно ЫЫЫ АБСТРАКТНЫЙ КЛАСС ИТЕМ И ЕГО НАСЛЕДНИКИ И ВСЕ ОНИ В РАЗНОБОЙ ЛЕЖАТ В КУЧЕ ЫЫЫ ПРОИЗВОДИТЕЛЬНОСТИ МАЛА то это лишь показывает что ты сам шаришь в ооп на уровне нубаса и никогда не юзал его правильно.
И что забавно, проблема с твоей логикой видна прямо тут - 20 каких массивов данных? Какое конкретно наиболее эффективное разделение, ведь их можно по-разному определить? И почему не один вообще?
> Тут нет какого-то пердоления или нерациональности, ты просто берёшь и изначально пишешь нормально. Мне нужна сортировка. Че делоть? Брать библиотечную? Самому писать? Какую? Мне надо найти 3 ближайших врага к игроку, врагов на карте тысячи. Че делоть? Какой метод разбиения пространство использовать, и какую его оптимизированную вариацию? А физику мне готовую использовать? А она точно идеально под мой случай оптимизирована, может лучше самому написать? А мне нужно найти все объекты на карте в определнной зоне, мне че сразу кеширование их делать?
Че, понял, клоунище, в чем проблема?
Мало того что мы не можем сразу точно угадать какие места какую конкретно оптимизацию требуют и на каком конкретно железе она подойдет, так еще и многие оптимизации опциональны - будем мы сразу делать систему кеширования говна или сначала без нее может сделать, может оно и нахуй не надо, ради обоссаных 0.1мс фрейма? . Ну и всегда стоит вопрос - использовать готовое решение или ебашить свое которое под конкретную ситуацию лучше подойдет.
>>874388 >Так ты сам говоришь, что писать нормальный код на C++ не сложно, но ты забываешь, что блюпринты - это ещё проще. Что это за бред? Даже дебил-ньюфаг знает что это не так.
>Именно поэтому они идеальны для прототипирования, проверки идей и работы с командой. Тоже бред, блюпринты созданы для людей которые в код не могут и просто для дебилов-школьников. Не можешь в код - пиздуешь из геймдева нахуй.
Дальше лень бред этот разбирать.
>>874392 > Классы это лишь абстракция для управления данными. Верно и лишние абстракции не нужны.
>>874388 >блюпринты - это ещё проще Качественный код писать не проще чем на плюсах. Все простое, что есть в блюпринтах, есть и в плюсах. Плохой код одинаковой плохой и там и там.
>Не все хотят пахать на C++ ради пары FPS просто пишут на плюсах потому что удобнее.
>но и блюпринты тоже могут быть оптимизированы При одинаково коде будут проигрывать плюсам.
>Ты ваще понимаешь, что блюпринты - это и есть ООП Нет.
Учитывая, что плюсы обыгрывают блюпринты в читаемости и скорости, человеку, который комфортно чувствует себя в плюсах нет смысла использовать блюпринты вообще.
>>874403 > При одинаково коде будут проигрывать плюсам. Почему бы просто не провести эксперимент - сделать два метода сортировки, один в блюпринтах, другой в плюсах, и проверить какой работает быстрее? Если разница окажется в 1мс - то вопрос не имеет смысла.
>>874408 Есть мнение, что внутри функций скорость принтов и с++ одинаковая, переплата идет за вызов функций. Иными словами, ты не сильно понимаешь о чем говоришь.
>>874408 Напиши блюпринт в котором есть 10 свойств какого-то базового типа. Потом переопредели оператор сложения этого блюпринта (на самом деле такое невозможно, поэтому это будет просто пьюр функция). А потом сделай тоже самое на плюсах. Потом поделись своим мнением, что было проще.
>>874408 > Почему бы просто не провести эксперимент - сделать два метода сортировки, Т.к. ты не программист даже ты не понимаешь что каждая сортировка под каждую конкретную задачу идёт.
> Если разница окажется в 1мс - то вопрос не имеет смысла. Уровень гейдева шизика - сортировка на 1мс. Ебануться просто.
Реально какой-то шизик который к программированию отношения не имеет срёт тут.
>>874410 Хохлозависимая мартышка из /вм/, ты? Узнал тебя по тому как ты только выигрываешь.
Но впроцем ладно, ООП всё ещё лучше хрюпринта.
>>874413 Не просто вызов функций, а вызов целых классов и библиотек для каждого хрюпринта, ебанутая обработка данных и прочий кал от шизов.
>>874400 О, анон, не ожидал от тебя такого кипеша, лол. Ну давай разберемся с твоими замечаниями, клоун:
> Даже дебил-ньюфаг знает что это не так А вот и пиздеж, братишка. Блюпринты разрабатывались, чтобы облегчить жизнь геймдевам и упростить процесс. Если у тебя что-то идет не так с ними, может, дело в тебе, а не в блюпринтах?
> людей которые в код не могут и просто для дебилов-школьников Судя по твоим репликам, ты и сам не далеко ушел от этого уровня, кек. Блюпринты - это хороший инструмент для начала работы над игрой и проверки идей. А когда понадобится оптимизация, тогда и на C++ переходи. Все просто.
> Не можешь в код - пиздуешь из геймдева нахуй Охуеть просто, какой заблужденный идеализм. В геймдеве работают не только кодеры, но и художники, дизайнеры, сценаристы, и всем им нужно быстро и легко тестировать свои идеи. Вот для этого и нужны блюпринты, понимаешь?
> Дальше лень бред этот разбирать Типичный разговор с двачером - как только аргументы кончились, сразу "лень разбирать". Ты хоть сначала разберись с тем, что говоришь, а потом уж пытайся учить других, как жить. Пока что ты сам в говне, а еще и других туда тянешь. Лол, просто позор.
>>874403 > Качественный код писать не проще чем на плюсах Собственно, никто и не говорил, что C++ сложен для написания качественного кода. Но блюпринты - это более визуальное представление кода, что упрощает понимание и обучение для некоторых людей.
> просто пишут на плюсах потому что удобнее Ок, клоун, никто не спорит, что для кого-то C++ удобнее, но не для всех. Весь смысл в том, что блюпринты дают возможность создавать быстро прототипы и экспериментировать с идеями, не забивая голову кодом.
> При одинаково коде будут проигрывать плюсам Бля, капитан очевидность, ну да, C++ быстрее. Но опять же, блюпринты не создавались для того, чтобы конкурировать с C++ по производительности. Они нужны для быстрого и удобного прототипирования и тестирования идей.
> Нет Кек, значит ты так и не понял, что блюпринты - это визуальный способ представления кода и работают на принципах ООП. Ну ок, это не делает их хуже или лучше, это просто другой подход.
> нет смысла использовать блюпринты вообще Поздравляю, ты только что сам доказал свою ограниченность, лол. Блюпринты - это инструмент для быстрого создания и тестирования идей. Если ты не можешь это понять и продолжаешь судить только с позиции C++ программиста, то это твои проблемы. В геймдеве работает много людей с разными навыками, и блюпринты - отличный способ вовлечь их всех в процесс разработки игры.
Так что анон, лучше прекрати быть зацикленным на своей точке зрения и научись видеть разнообразие инструментов и подходов в геймдеве. Пока что ты просто смешон, лол.
>>874419 > Блюпринты разрабатывались, чтобы облегчить жизнь геймдевам А вот и пиздеж, братишка.
Хрюпринты разрабатывались чтобы облегчить жизнь дебилам-вкатунам, которые не могут в код - менеджерам, художникам и для прочих дурачков которые не хотят изучать программирование, но хотят наебать систему через визуальное программирование. Наебали они только себя, разумеется.
>>874423 Анон, слушай, ты уже просто как унылый попугай повторяешься. Но ладно, раз тебе так нравится, давай и в этот раз разберем твои "аргументы":
> Хрюпринты разрабатывались чтобы облегчить жизнь дебилам-вкатунам Лол, ты настолько забит своим элитарным С++ менталитетом, что даже не понимаешь, что блюпринты создавались для того, чтобы ускорить процесс разработки и сделать его более доступным для разных специалистов. И да, это включает в себя художников, менеджеров и всех остальных, кто вовлечен в процесс создания игры. Это не делает их дебилами, это делает их специалистами в своей области.
> для прочих дурачков которые не хотят изучать программирование Ты когда-нибудь слышал про разделение труда, чувак? Не каждый обязан знать программирование, чтобы быть полезным членом команды. Если человек хорошо рисует или отлично разбирается в управлении проектами, зачем ему изучать код? Блюпринты позволяют им быть продуктивными и вносить свой вклад без необходимости становиться программистами.
> Наебали они только себя, разумеется Ну и снова, капитаночевидность, ты просто не можешь воспринимать разные подходы и инструменты. Ведь на самом деле блюпринты успешно используются во множестве проектов и облегчают жизнь многим разработчикам.
Так что, анон, пора прекратить быть зацикленным на своей узкой точке зрения и признать, что разнообразие подходов и инструментов - это то, что делает геймдев таким интересным и динамичным. А пока что ты просто позоришься, лол.
>>874428 > блюпринты создавались для того, чтобы ускорить процесс разработки А вот и пиздеж, братишка. Хрюпринты разрабатывались чтобы облегчить жизнь дебилам-вкатунам, которые не могут в код.
>>874436 Так, я сказал, что не все хотят пахать на C++ ради пары FPS, и это правда. Ты сказал, что пишут на плюсах, потому что удобнее. Так, это тоже верно, для некоторых людей C++ удобнее, но ведь не для всех. Так что собственно тут и согласие, и не согласие одновременно.
Но что же делает тебя клоуном, анон? Ну, помимо того, что ты пытаешься найти какую-то победу в этом обсуждении, ты также пренебрегаешь тем фактом, что в геймдеве есть множество подходов и инструментов, и не всем нужно использовать именно C++ для создания игр. Ты же продолжаешь настаивать на своей узкой точке зрения, и это делает тебя... ну, да, клоуном.
Так что, поздравляю, анон, ты нашел клоуна в зеркале, а теперь можешь смело вернуться к своим любимым плюсам и игнорировать все остальное, ведь так удобнее, правда? Лол.
>>874443 > Так, я сказал, что не все хотят пахать на C++ Да игры и программирование в принцпе сложная задача, думать нужно, соображать что-то там. Можешь не пахать, иди поперди, подрочи, нах тебе игры вообще? Пахать нужно, пиздец конечно задачи какие-то. Чильно подрочи и съеби из треда.
>>874450 О, да, анон, я вижу, что тебе по жизни непросто, все эти сложные задачи, соображалки, наверное, твой мозг уже почти взорвался от напряжения. Но вместо того чтобы идти попердить, подрочить и съебаться из треда, как ты так любезно предложил, мне стало интересно узнать, чем еще ты занимаешься в своей жизни, кроме как сидишь на имиджбордах и строишь из себя крутого программиста.
Ты считаешь, что все должны быть как ты - пахать на C++, иначе вообще зачем им заниматься геймдевом? Но братишка, мир несколько шире, чем твои плюсы и твоя клавиатура. Так что давай будем уважать разные подходы и инструменты, а не будем меряться "программистскими членами" в тредах, а?
>>874453 Но ведь это ты первый тут начал обсирать чужие подходы. Так может тебе съебаться, а мы предметно с другими анонами будем общаться про разработку.
>>874455 Ой, Анон, ну ты и обидчивый, а? Не кипятись так, это же всего лишь тред на имиджборде. Ладно, признаю, что мог немного перегнуть палку, но давай забьем на это и продолжим общаться на тему разработки, как ты предложил.
Так что давайте обсудим, например, какие методы оптимизации вы используете при работе с блюпринтами или C++? Ведь, несмотря на разные подходы, оптимизация - это что-то, что важно для всех геймдевов, так ведь?
Чет эпики хуйню какую-то сделали со статичными членами. Типо из плюсов анриал поддерживает статические функции, а в блюпринтах только библиотеки есть, которые можно вызывать из эвент графа, но не из функций. Возможно тут есть подводные камни, но пока выглядит, как будто блюпринты соснули.
Посмотрел сгенерированный заголовочный файл, в нем появился параметр result. Получается, что вызывающий блюпринт создает скрытый экземпляр класса, потихому его пропихивает в качестве параметра, чтобы сохранить туда результаты вычислений, потому что им пиздец после выхода за область видимости вызванной функции? Жеска.
>>874265 >Знаешь что такое профилирование? >>874271 >Знаешь что такое профилирование? >>874274 >Знаешь что такое профилирование?
Ну вы тут в анриале похоже не хуй моржовый. серьезные разработчики. Такие вещи знаете. Правда в юнити это второй или третий урок начального тьютора для вкатунов.
Палю годноту ленивым пидорам вроде меня - ActorCore Accurig, натянул сложную модель с несколькими слоями одежды на Анриловский скелет сам буквально за минуту. Единственное, что он попердолил пальцы и ножны меча, тем не менее, это можно пофиксить самому в блендере
Текстуры попердолены т.к. на модели еще нет UV-развертки
>>874606 Алсо, как в этом блядском движке сделать нормальное глобальное освещение БЫСТРО, потому что освещенные объекты у меня буквально светятся, эти белые камни на самом деле - темно-серые?
При нахождении в тени, экран буквально ЧЕРНЕЕТ, не видно ничего, как не выкручивай яркость, автоэкспозиция делает просто вырвизгланый контраст между темными и светлыми областями - и это дефолтное освещение движка!
Мимо только заметил, что всё это время срал в предыдущем треде
>>874428 > люпринты создавались для того, чтобы ускорить процесс разработки и сделать его более доступным для разных специалистов. И да, это включает в себя художников, менеджеров и всех остальных, кто вовлечен в процесс создания игры. Это не делает их дебилами, это делает их специалистами в своей области.
Этот прав
>>874432 > А вот и пиздеж, братишка. Хрюпринты разрабатывались чтобы облегчить жизнь дебилам-вкатунам, которые не могут в код.
>>874610 Хрюпринтер, плиз. Хрюпринты это визуальное программирование, оно не про ускорение процесса разработки, хрюпринты для того чтобы дизайнеры и менеджеры могли высирать нечто работающее. Абсолютно во всех ситуациях хрюпринты медленнее программирования.
>>874613 Хрюпритеры рассказывают про ускорение процесса разработки. Но это не так. Через хрюпринты нельзя ускорить разработку, её можно только замедлить.
>>874615 Местный дурачок лапшееб думает что быстрее, потому что он может через хуйпизду непойми вообще откуда просто сделать Гетчарактерконтроллер и что-то там манипулировать.
Но горькая правда лапшеебов заключается в том, что все эта хуйня есть и на плюсах.
А второй момент закляется в том, что это говнокод и как любой говнокод он быстр и прост пока его 10 строчек. Когда будет 10 классов ускорение разработки пойдет в обратную сторону лол. Но в его играх не бывает 10 классов))))
>>874608 Есть настройки автоэкспозиции, просто ставишь что минимальная яркость равна максимальной >>874624 У меня, например, 39 классов обработки данных. Что сказать-то хотел?
Потсоны, как найти работу ждуну на анриле? Вакансий нихуя нет, везде нужны только от 6-ти лет синьоры опыта коммерческой разработки с ААА-пет-проектами мировой известности. Хуль делать если хочется вкатываться?
>>874683 1) У отдела разработки нет времени заниматься этим 2) У вкатыша редко есть во что поиграть кроме 3,5 демок из туториалов, которые проходятся за 5 минут 3) А если тебе палец показать - тоже будешь проигрывать на весь офис? >>874685 Тебе в рисовач
>>874680 У меня опыта работы на анриле нет. В том и дело что без опыта, стажировку или джуна с++, на анрил не найти, даже за чисто символюческую плату.
Да вот прям сегодня. 3 года опыта работы. прокачал то прокачал се, знает паттерны проектирования. на гитхаб заходишь там пук среньк. Класс хеалс у него умеет метод ресив демейдж. Я за 3 месяца самообучения ну как-то дошел до того, что он не урон и лечение считает, а цифры. Тут 3 года челик кодит. Пушка.
где-то чуть ниже челик курсы закончил, 3 проекта сделал. эти всегда смешные. У них подход типо такой современный, себя преподнести, им там еще на курсах отдельный курс по резюме проводят.
>>874699 >Perforce, Git, SVN. чет проорал в голосину. Я так люблю контроль версий, что сохраняю гитовский репозиторий в свновском в перфорсовском! Больше версий для бога контроля версий. Если твоя версия меньше чем 5501ff333 - даже не смей подходить ко мне. >научился новому >научился новому >научился новому Как же это всрато выглядит.
>>874712 Впринципе я с тобой согласен. Heal и Damage - нормальные здоровые абстракции, а ChangeHealth уже попахивает реализацией. Так что я б, наверное, тоже использовал Heal и Damage как публичный интерфейс, а внутри них уже можно ChangeHealth
>>874699 > за 3 месяца самообучения ну как-то дошел до Еще через 6 месяцев до тебя дойдет, что может быть аура, которая увеличивает лечение, но не урон, и наоборот.
>>874727 Парный но не в таком смысле. В общем чисто по моим рассуждениям таких понятий как урон и лечение на уровне взимодействия классов не должно быть вообще, только в GUI.
>Heal и Damage как публичный интерфейс, а внутри них уже можно ChangeHealth если делать так, то ChangeHealth вообще лишний. Оба метода имеют полное право манипулировать полями своего класса без него.
>>874732 Ну тогда я бы сделал так - делаем ChangeHealth приватным методом компонента, делаем персонажа другом компонента, а Heal и Damage - публичными методами персонажа, которые вызывают ChangeHealth. Абстракция на месте, инкапсуляция не нарушена, ООПшники довольно урчат.
>>874736 А если у тебя манипуляция здоровьем не лечением и не уроном? Может такое быть? Например, ты подобрал бонус к максимальному количеству хп, он на столько же поднмиает текущее. Задача решается этими методами, вопросов нет, но семантика подсказывает, что тут не все гладко.
>>874736 нахуй ваще ебаный компоненты в очко деды без них писали и нам велели делаешь класс ХуйКарактор(ЮКарактор) и в нём публичный флоут хелсв всё бля
>>874733 Если б ты не был таким тупеньким, ты бы понимал в чем разница между ChangeHealth и пары Damage/Heal, а именно в поведении при пересечении границы нуля. А именно, ChangeHealth(3-5) сделает -2 здоровья, а Heal(3-5) ничего не изменит, поскольку будет сделан clamp.
>>874757 И что ты так проверишь? Heal(3) лечит на 3, Heal(-3) на 0, но Damage(3) бьет на -3, Damage(-3) бьет на 0. ChangleHealth эти случаи не различает.
>>874763 Не решается, потому что у сложной механики есть объективное количество необходимых абстракций. Если ты сделаешь health -= (damage - damageReduction); helath += (heal - healReduction) ты просто размазал абстракцию по формулам, в результате получишь нечитаемую лапшу как недавно постили в соседнем треде.
>>874769 Абстракция имеет бойлерплейт, который начинает окупаться после определенного количества использований. Ну то есть ты добавишь еще одну, две механики вида "эффект понижает урон на %" и запутаешься в них. Большие системы делают сложными не просто потому что кому то захотелось выебнуться, а потому что потом изменения и добавления легко вносить.
>>874776 Ты не понимаешь, чем хорошая абстракция отличается от плохой. Соответственно не понимаешь, почему твоя абстракция плохая. Плохая абстракция - это плохо.
>Большие системы Больших систем ты точно не писал.
>эффект понижает урон на % очень сложно. нет
У тебя вообще на ауры пунктик, еще в юнитач прибегал пугал. Это не ауры страшные, это тебе подкачаться надо.
>>874780 Ну все, пришел данни крюгер пояснять всем что раз в его пиксельном платформере ауры и эффекты не нужны, то и никому не нужны. Двач как всегда.
>>874699 >ссылка Так, блять, я не понял. А разве то, что он написал, это не самый базис? Типа умение написать систему сохранения и взаимодействия это те навыки, которые надо писать в резюме?
Блюпринтового опять повело походу, чуваки. Бойлерплейт словил. В очередной раз как дело дошло до непосредственно навыка, а не болтовни - пукнул в бойлерплейт. >>874736 вот тут он вообще приравнивает инкапсуляцию к приватности.))))) Ну это реально смех.
>>874782 > Типа умение написать систему сохранения и взаимодействия это те навыки, которые надо писать в резюме? Смотря что за система. Я недавно смотрел как сделан один плагин для сохранений (Easy Multi Save) - и там есть чему поучиться. А вообще это же классика написания резюме: 1) умею писоть 2) умею какоть 3) научился пукоть
>>874727 Если 100 новичков попросить реализовать подобный класс, они все сделают либо так же, либо чуть лучше. Сколько из них будут при этом иметь лицо эксперта, спрогнозировать не могу.
>>874736 Это вообще шизофрения какая-то. Ты похоже за связанность кода вообще не врубаешься.
>>874798 Ебать пацантре охуеют когда им придётся АУРУ НА МЕСТНОСТИ делать. Просто не представляю как эти шизики справятся, ведь даже в гугле это нормально нигде не описано, а навык гуглежа у них явно недоразвит.
Вангую, если блюпринтовый будет делать какую-то рпг, то у него обязательно будет метод Attack(), у персонажа, который будет делать противнику damage(i) { changehealtр(-i); }
>>874803 Шиз, не знающий анриаловского апи НИНУЖНО АПИ ДЛЯ НЮФАГОФ, ты опять выходишь на связь? Тебе эпики дали DealDamage и OnDamageRecieved - нет, не хочу, хочу изобретать велосипед
>>874804 > Нужно нанести дамаг. @ > ПОДКЛЮЧАЙ СРОЧНО БИБЛИОТЕКУ 15 МЕГАБАЙТ DAMAGE ТАМ ВСЁ ЗА ТЕБЯ НАПИСАНО!111
Так, ясно, уровень nodejs.
А если у меня дамаг зависит линии взамаха мечом, положения персонажа, конечно же на персонаже есть модификаторы длинны меча, наносимого урона, брони и всё такое, существует ли класс для этого? Конечно же должны существовать ауры местности и погодные условия. Ах да, это всё на сервере должно работать.
>>874810 Я тебе показал что учить чтоб научится делать свои ауры. Сможешь - молодец, может у тебя еще получится вкатиться в программирование, не сможешь - тогда тебе путь только в кассиры.
>>874812 Логично, хуле, только и может такую хуиту высрать.
>>874813 Т.е. ты буквально не можешь на хрюпринтах сделать урон и модфикатор в зависимости от местности, я правильно тебя понял?
На хрюпринтах невозможно сделать урон который зависит от какой-то функциия, это верно?
Если ты не можешь сделать функцию, зачем ты говоришь про программирование? Ты же не программист даже, ты буквально не можешь сделать урон по ТЗ, не понимаешь как его сделать.
>>874760 > Heal(-3) на 0 Оно должно выкидывать исключение, потому что если ты где-то сделал хил(-3) значит где-то обосрался с расчетом
>>874757 > Что мешает сделать проверку на 0 в ChangeHealth? Ну так, чисто ради интереса. Будет очень много юзов этого метода, потом будешь смотреть кто его юзает, и будет дохуя кто. Ну в шарпе это можно посмотреть, с вашими анрвло блупринтами хз
>>874819 > поехавший хрюпринтер даже не может ответить на простейший вопрос > пытается съехать с темы с обосранными портками
>>874820 Вряд ли такой шизик вообще когда-то будет работать или что-то по ТЗ делать, на самом-то деле. Его сразу нахуй пошлют с его охуительными историями про хрюпринты и их использование.
В движкосраче треде блюпринтожизик как-то хотел выебнуться и со словами - я настоящий программист!! я программирую!!! выложил скрин из стаковерфлоу с решением задачи на с++ уровня поменять местами значения двух переменных)))))
Я тогда аж захрюкал от смеха.
Это как раз тогда он пизданул, что блюпринты идентичны по скорости с++ коду, ПАТАМУШТА КОМПИЛИРУЮТСЯ В С++ КОД!!!
>>874835 > блюпринты идентичны по скорости с++ коду, ПАТАМУШТА КОМПИЛИРУЮТСЯ В С++ КОД!!! Если использовать нативизацию - то это так и есть, результирующий машинный код будет аналогичным. Изучай https://www.youtube.com/watch?v=VMZftEVDuCE
>>874835 Ну всё же он имеет представления о том что такое код, судя по тому как он представляет себе реализацию хрюпринтов, мол, "это с++ код, простые функции, а все входные ноды это просто переменные". Жаль конечно что это нихуя не так и хрюпринты это целые ебанутые классы и не менее ебанутые библиотеки, иначе бы хрюпринты действительно были бы идентичны с++ коду.
>>874838 >>874842 Хрюпринтер, почему ты такой шиз? Как пикрелейтед который читает данные в десятки раз чаще чем с++, может быть быстрее?
Скажи, хрюпринтер, ты реально искажаешь реальность? Как в твоей голове это происходит, вот ты видишь пикрелейтед и типо ты его в следующую секунду забываешь?
Хочется интересные темы обсудить в разрезе разработки игр, но сука опять вылезет блюпринтошизик со своими ШО КАВО ЭТО ЗАЧЕМ ЭО ПОЧЕМУ НИХУЯ и прочими наполненными смыслом выражениями.
Ах лол, еще вспомнил, этот гребень заявлял, что блюпринты это стандарт разработки и скоро все буду программировать на блюпринтах и их аналогах. ))))))
>>874868 Мда, пчел... Эта логика должна идти из прослойки.
Ты наносишь демедж, это получает контроллер получения дамага, который имеет списки баффов/дебаффов, он модифицирует значение и передает уже на компонент хп.
ебанько ввел эти абстракции, чтобы обеспечить инкапсуляцию, потом передаст полный доступ к интерфейсу персонажа какому_нибудь говноклассу типо баночка лечения))))))))))))))) Которая при этом мыслит категориями, что она не манипулирует размером здоровья, я лечит нахуй АПХАХПХАПХАПХПАХ Наверняка выпускник скилбокса какого-нибудь.
>>874891 >Наверняка выпускник скилбокса какого-нибудь. Это местный шизик, он тут лет 5-7 активно серит. Тупой пиздец, программеровать не умеет, он и годауном побывал и юнити-дебилом, и гамак использовал, теперь вот на блюпринтах хочет шизофренией страдать. Засрал весь раздел своей хуитой и шизоидным бредом, раньше тут дохуя анонов сидело, теперь гд это раздел в которой этот шиз срёт.
>>875030 Нет, нельзя. Скорее всего этот срущий шизик скорее всего мочератор /гд/. Можешь в /d/ написать чтобы этого шизоида нхуй выпизднули, но вряд ли поможет.
>>875112 Ну это колоссальная трудность. Тут может конфликт с аурой лечения даже возникнуть. Тут на пикабу надо спросить как быть вообще в таком случае.
>может быть аура, которая увеличивает лечение, но не урон, и наоборот >Ну, удачи сделать хотя бы временные хп не проебавшись. >Что будет при получении 3 временных хп, когда у тебя 5 временных хп
Как говорится, каков уровень программиста, такие и проблемы.
>>875101 Зайка, ну так как надо сделать? Чтобы тебе главное понравилось. На уровне реализации в хп учитывается бонус конституции и уровень персонажа. Как ты хочешь чтобы было временное хп, зайчик мой? Хочешь. будет сверху максимального хп? Сделаю так. Хочешь,будет увеличивать максимальное хп, но не текущее? Сделаю. Хочешь, сверхмаксимальное хп не будет лечится. Хочешь временное хп будет лечить с возможность выхода за границы максимального? Интерфейсы все есть. Ты только скажи. где ты находишься, дай цифры свои эээ
>>875099 Контроллер персонажа у меня конечно получится я ебал. Одних эвентов наверное штук 20 надо обрабатывать. И это только самая база. Вот будет мем, если мне концепцию придется переделывать, на екс какой-нибудь.
Еще и система эвентов в анриале пиздец какой-то непроглядный. Блядь надо объявить делегат, скормить ему ссылку на слушателя и название функции стрингом блядь))) и только потом все это говно уже можно засунуть в диспатчер лол.
Юнити с c# конечно рай не земле по сравнению с этим.
>>872248 (OP) > НЕ ЛЮБЛЮ ЭТИ ВАШИ ВИДОСЫ, ГДЕ МОИ КНИЖКИ Не люблю видосы. Дайте пожалуйста материалы текстовые кроме офф документации по пятому АЕ. Цель не создание игры, а создание красивых сцен
Тык, ну вот плюсы начинают наказывать шарпоеба. Образовалась цикличность заголовков. Некоторые члены персонажа требуют в себе заголовок персонажа. Есть два выхода. Первый - объявить типы членов в персонаже, но не уверен, что анриал позвонляет вообще отдельное от определения объявление классов. Или переосмысливать подход, что тяжело, так как глаз замылен на прямолинейном варианте.
С макаронами тут кстати проблем бы не было вообще.
>>875469 Читай пикрил. Если вкратце - грамотно выстроенная архитектура направляет тебя по верному пути и не позволяет референсить в модуле то, что референсить ты, по-хорошему, не должен, избавляя от циклических зависимостей, большой связности кода и прочих приколов спагетти-кода (к блюпринт-лапше отношения не имеет).
У меня лично трёхслойная архитектура для проекта средних размеров Core (Pawn'ы, GameMode'ы, GameState'ы, misc-геймплейные функции - вся) -> Gameplay (враги, уровни и всё остальное) -> Platform (платформозависимый код).
Советую, кстати, использовать RIder или иной линтер к какому-нибудь VSCode/Visual Stduio, он предлагает многие хорошие вещи включая выше упомянутые forward declaration'ы.
>>875478 >грамотно выстроенная архитектура направляет тебя по верному пути
Вот и я думаю, что у меня обсер на моменте проектирования.
В целом то я пишу слоистую, системы подсистемы, прокинуть интерфейсики, вот это вот все. Но тут болт поклал на инверсию зависимостей ну и пососал как бы ожидаемо.
Ладно, ебал я форвард декларейшен, буду думать сидеть, решать.
>>875519 > Можно просто за анус дёргать уеч, чтобы он рендерл из буферов, и всё. Через некоторое время заметишь, что много кода приходится повторять и станешь делать хелпер методы которые объединяют схожие действия.
Потом заметишь, что сложно как-то разобраться в своем же коде, станешь там путаться, и в итоге начнешь делать какие-то более конкретные сущности, группировать все что есть в игре по каким-то признакам, как-то группировать все методы.
Потом сгорит жопа и возьмешь нормальный ооп, потому что все что ты до этого делал - это было имитацией ооп с искуственными выстрелами себе в ногу.
В анриале шаг влево шаг вправо без гугла или чтения документации - расстрел. Я в енамы не вникал, на похуй сделал, работает и ладно. В итоге у меня редактор просто умер на стадии создания дефолтных объектов. Если бы мне ридер раньше в одном месте не подсказал, что надо енамы конвертить в байты, я бы инсульт жопы бы словил, пока нашел бы причину разъеба, потому что компилятор не видел ошибку.
>>875523 Есть мнение, что он не знает что такое екс, просто бегает пукает названием. Мне кажется он за последние 10 постов от лица трех анонов высрал токсичную шизу. Ебанутый карочи.
>>875530 > Ты описать проблемы ООП-дебилов, хелперы, какие-то сущности, группы. Что за хуйня вообще? Это я тебе говорю, что ты будешь делать без ооп, когда столкнешься с описанными мной проблемами. И будешь ходить как конч говорить, что ооп для даунов, хотя дклаешь ровно то же самое, что предлагает ооп, но только при этом у тебя башка будет лысая
> что как раз в ооп пришлось написать по три строчки левых хелперов Я говорю про то, что отрицатели ооп будут писать кучу бойлерплейта и хелперов, а те кто юзает ооп сделают так, что все натурально будет на своих местах, ну при должном скилле само собой.
> Ты же не шаришь в ецс, да Причем тут ецс? Мы разве ецс обсуждали? А так инфраструктура для ецс тоже прекрасно делается на ооп - с интерфейсами для систем и внедрением зависимостей. И внешние сервисы, которые системы в ецс могут дергать - тоже отлично реализовываются на ооп.
Может быть, ты с чего-то решил, что ооп - это парадигма в которой обязательно делают десятиэтажное наследование и на каждый пук делают абстрактуню фабрику? Ну, если дело в этом, то удивлю тебя - нет, это не обязательные признаки ооп.
>>875538 > Без ООП никакие группы не нужны. Если тебе нужно создать иерархию объектов - ты просто берёшь и создаешь иерархию сущностей или функций, массив данных с ссылками на другие сущности. Требуется сгруппировать сущности - просто добавляешь какой-то массив с определением группы.
> Не ну конечно у меня объекты есть, но в них нет никакого ооп, это просто глобальные сущности, набор поведения для сущностей и просто набор каких-то данных сущности. Офк всё это динамические может меняться в любую сторону. Вот о чем я и говорю блять, ты начинаешь из гавна собирать свой ооп и юзать ровно то же самое что и ооп по своей сути, только без удобной инфраструктуры для этого
> Нет, никто этого не пишет, в этом нет никакой необходимости если ты не пишешь в ООП-стиле. Ты просто пишешь код. Да, и код этот хаотично разбросан по проекту, до тех пор пока ты не начнешь его структурировать путем обобщений и написанием всего то что я написал выше
> Не будет, потому что ты не можешь предугадать иерархию классов. А что мешает мне сразу спроектировать иерархию классов полагаясь на текущую задачу, потенциальные пути развития игры, и свой опыт, таким образом минимизировав потенциальный пиздец?)
>>875541 > Что за бред ты несешь? По-твоему ссылочное дерево это ООП? Ну если ты попробуешь анализировать хоть чуть-чуть глубже, то заметишь наверное, что таким ссылочным деревом, конкретно в тех примерах что ты привел, ты реализуешь аналоги композиции и наследования(/реализации интерфейса).
> Лапша на ООП никакого удобства не даёт. Нужно писать больше, а делать меньше, по итогу испытывать проблемы просто чтобы 3хп у персонажа отнять. Можно писать не лапше-ооп. Попробуй хотя бы читать на что отвечаешь, я уже говорил, что ооп это гибкая вещь, можно делать десятиэтажное наследование,
> Шизофрения какая-то пошла уже. Причем тут группировка файлов и ООП? Никто не мешает группировать по моделям, доменам и назначению без ООП. Какие файлы бля? Это у кого еще шизофрения лол. Я и говорил просто про группировку, уж как ты технически это сделаешь - твое дело, суть в том что ты будешь искать обходные пути, чтобы как-то проассоциировать между собой вещи которые якобы связаны в твоем проекте, что в ооп делается на уровне контрактов.
> Ну ты какой-то ньфаг совсем, джун, никогда не программировал ничего серьезного? > Ты не можешь предсказать будущее. В будущем всегда будет другая задача и всю твою иерархию классов ты будешь переделывать, вместе с методами. Чтобы не переделывать ты будешь всё это переопределять и дрочить новый ООП кал, создавая лапшеподобный код вместо игры. Ну попробуй сделать несколько игр, быстро придешь к идее того, что надо избегать лишнего каплинга и, тогда и переписывать всё не придется, а только небольшую часть. А с ещё большим опытом и переписывать не так много придется, так как сразу будешь видеть точки расширения которые можно заранее заложить.
> В ECS это ничего не требуется - просто ебанул сущность и всё, у тебя новый полноценный объект. В моём говнокоде будет посложнее, но не сложнее чем писать скрипты. Ну и опять же - читай на что отвечаешь, а не беседуй сам с собой как клоун. Я уже писал, что ецс тоже отлично реализуется на ооп. Конечно ты можешь заниматься клоунадой и с пеной изо рта и реализовывать ецс в функциональном стиле, но тут уж я ничем помочь не могу.
>>875537 Одно дело, если бы писался хелпер для логики, писать такие функции и в ецс удобно - например, для рассчета модификатора хар-ки из ее значения для всех одинаковое. Но мы то понимаем что тут так называемый "хелпер" написан чтобы починить неудобство самого доступа по ООП. Которое якобы должно было упрощать. В результате с ООП все будет обмазано уже вот таким бойлерплейтом, только его уже не убрать и не вынести куда-то, для этого надо более выразительные языковые средства, типа макросов раста. (Крестовые шаблоны могли бы, но все знают что с ними все вообще превращается в килотонны бойлерплейта)
Такие-то охуительные истории конечно)) если изменения в ооп, значит пиздец нахуй все менять. Если в екс - в одном месте поменял и все. Екс в глаза не видел, но тут и без того сразу понятно, кто пиздабол.
>>875596 Каким образом External Logging Framework и ExceptionCatcher связаны с ООП? Или главное побольше страшных длинных слов со стрелками нарисовать?
>>875553 > Но мы то понимаем что тут так называемый "хелпер" написан чтобы починить неудобство самого доступа по ООП. Которое якобы должно было упрощать. В результате с ООП все будет обмазано уже вот таким бойлерплейтом, только его уже не убрать и не вынести куда-то, для этого надо более выразительные языковые средства, типа макросов раста. (Крестовые шаблоны могли бы, но все знают что с ними все вообще превращается в килотонны бойлерплейта) Ниче не понимаем. Не знаю с чего ты взял, что с ооп все будкт обмазано бойлерплейтом, в норм языках вообще есть рефлексия и аттрибуты чтобы ваще красиво было.
>>875561 > Нет, не реализую. У меня есть доступ к каждой сущности, у меня нет каких-то закрытых объектов доступ к которым я чрез пять метров макаронных изделий получаю. И вот отсюда и идут проблемы, от этого ебанутого каплинга.
> Ты шизик что ли? Сам пишешь про расположение кода в проекте, сам спрашиваешь какие файлы. ??? Лан забей, ты похоже троллишь просто, ведь ты буквально постом выше ответил на этот вопрос > Никто не мешает группировать по моделям, доменам и назначению без ООП.
> То что там есть "class" не делает ЕКС ООП. Это просто класс, чел. А что это за парадигма программирования, где мы оперируем объектами, мм? Ну и опять же, читай хотя бы че тебе пишут. Напомню: > А так инфраструктура для ецс тоже прекрасно делается на ооп - с интерфейсами для систем и внедрением зависимостей. > И внешние сервисы, которые системы в ецс могут дергать - тоже отлично реализовываются на ооп.
Или что, тебя в движкосраче треде так попустили, что до сих пор глаз дергается?
Нормальная тема, если у меня точкой входа в уровень будет бегин эвент левел блюпринта? Типа он будет создавать объекты остальных систем и прокидывать зависимости.
Спокуха, разница не большая, а порой реализации C# оказывается и быстрее. Ты ж не будешь писать свою систему пулинга памяти на С++, да? Ну значит и о производительности можешь не заикаться
>>875860 Любой кто юзает ецс, использует его в комбинации с ооп. Найди хоть кого-то, кто мыслит в стиле ЫЫЫЫ Я ЮЗАЮ ЕЦС ЗНАЧИТ ВСЕ НА ЕЦС ВСЕ ОСТАЛЬНОЕ ЗАПРЕЩЕНО
>>875852 >ты смешиваешь данные и поведение И в чем заключается смешение? Нет большой разницы, запишешь ты переменную и метод внутрь класса, или будешь вызывать фри стендинг функцию передавая экземпляр. Уже даже в сиплюсплюс додумались и идет речь о унификации вызовов через UFCS, когда obj.foo(x) будет эквивалентно foo(obj, x)
>>875866 /td но я туда заходил - там сидят раки похлеще чем в /gd. Что то спросишь - сразу начинают в ответ рассказывать что ты вообще не тем занимаешься. а потом рассказывают про то как получают пенсию по шизе.
>>875879 Ну у меня есть вертикал бокс. Я в него пихаю 6 одинаковых виджетов. Вертикал бокс выдает им какой-то размер снихуя вообще. Ладно. Ок. Мне после этих виджетов надо добавить две кнопки - вперед и назад, чтобы они по вертикали были на одной высоте. Создаю горизонтал бокс. Пытаюсь как-то манипулировать размерами кнопок. они либо на все ебало, либо с мой пенис. Промежуточных настроек как будто нет вообще фил ебаный хуй знает зачем нужен. Ну ок. Вместо горизонтал бокса делаю канвас, а какие размеры кнопкам в канвасе указывать? а хуй знает. Не ебу вообще, нигде не написало какой размер кнопкам задал вертикал грид. Охуенно.
В юнити я бы просто нахуярил панелек, разметил размеры. указал бы якоря и все бы работало. Тут какая-то ебля нереальная.
>>875881 Все это надо запихать в виджет свитчер, который в обном случае управляет размером вложенных виджетов, в других не управляет. Это полная хуета кароче.
>>875895 > Можешь погуглить что значит слово смешивание Если ты сам не можешь ответить без гугла, это означает что ты не знаешь, вероятнее всего что-то перепутал. Например int i = j - 2 * 4 это уже смешивание? А то смотри ведь уже есть и данные и код. >у тебя есть просто набор данных и отдельное поведение которое можно применить к любым данным и поведение это ничем не ограниченное Звучит как маняфантазии, хотя и приятные. На практике так не бывает, поведение подразумевает все равно какие то ограничения на данные. Да да, то самое cat.speak(), dog.speak(), Animal::speak(), а абстактныеданные.speak() не имеет смысла.
>>875901 >В реальном мире, в котором динамическая хуйня не может быть умнее человека Компиляторы C/C++ и C# уже давно умнее человека, который пытается написать то же на Си либо ассемблере. >Собрался писать си код в шарпе? Нахуй тогда шарп-то нужен вообще? Сначала создали проблему в виде шарпа, а потом героически её решают оптимизациями, супер-пупер рантаймом, стилем кода, запретом вызовов. Гениально. Именно, гениально. Ты пишешь на высоком уровне функционал, который схлопывается до нескольких инструкций ассемблера.
>>875933 writetext() не имеет смысла на абстрактных данных, например бинарнике. playaudio() не имеет смысла на абстрактных данных, которые не аудио. У тебя вообще ужасный подход, потому что ты называешь функции какими то низкоуровневыми деталями реализации.
>>875955 > Имеет, потому что можно бинарник отправить и будут нули и единицы. > writetext на самом деле тоже не очень, это скорее объектная абстракция, в екс будет sendToBuffer(from, to) Ахахах у тебя с башкой проблемы что ли?
Scrollbox выбирает хуйпойми как размер вложенных виджетов и делает невротьебенный паддинг, которого нигде нахуй нет вообще ни в каких настройках, ни в боксе, ни во вложенных виджетах. Боже, какое же ублюдство эти виджеты просто маму ебал создателя.
Тут советовали туториалы смотреть по анриалу. Пошел значит посмотреть как делать турн базед игру. Вроде все на видео идет своим чередом туда сюда ок смотрю до момента....
У чела есть два спавпоинта для двух игроков соответственно. Спавн поинт хранит в себе индекс игрока, который должен на нем спавнится.
В начале игры, гамемодскрипт чекает все спавнпоинты нужного типа и записывает их в мэп, ключом которого является индекс спавн поинта, а валью сам спавн поинт.
Блядь. Ну ебать. Ну это же пиздец нахуй)))))))))))
>>876292 Точнее не так. Скачиваю этот пак в соседний проект, выбираю машину, нажимаю Migtate. Авто переносится в мой проект - но в Projects Settings его в качестве пешки поставить не получается, UE его не видит.
>>876292 Все, вопрос снят. Пак весит 7,5 гигабайт - при миграции папка становится 750 мегабайт. Правда почему-то копируются некоторые другие авто - и при их удалении мой авто тоже перестает работать.
>To be fair, actors only support input events because there is some engine plumbing in place to create a UInputComponent (EnablePlayerInput), which handles the routing of said input. Without a valid input component, you can’t process input properly anyway really.
мда. хотел карочи по модел -контроллер -вью контроллер- вью паттерну сделать юай, ага, сделал. Надо либо контроллер делать актором, либо делать в плеер павне эвент диспатчер на каждый инпут, прокидывать во все контроллеры плеер павн и подписываться на эвенты контроллерами. Балдеж нахуй.
>>875885 Я тоже а виджетами ебался, проблема в том что они не интуитивны и там надо познать особый дзен чтобы на них строить UI. Плюс не рекомендуется делать дохуя иерархической вложенности и пользоваться биндингом. Они за просто могут ФПС сожрать. Короче жалоб на них много, но альтернатив все равно нет.
>>876360 Нытье этого анона напомнило, как мы в шкалке на уроках информатики жаловались "ух как я ебался с форматированием таблицы в ворде". И какой-нибудь компьютерный задрот авторитетно заявлял, что таблицы могут сожрать фпс компа и на них много жалоб
Я вот думаю, что можно на сцене разместить карочи несколько акторов контроллеров, по типу инпут эвентов - фест персон инпуты, юай инпуты и т.д. Сделать в них инпут эвенты соответствующего типа и прокидывать в классы, которым нужны инпуты, те будут подписывать на эти эвенты. А если надо какие-то инпуты отключить, просто отключать от инпутов актор контроллер и заебок.
лапшичный местный уебан опять как собака кидается))))))))
Сделал управление, чтобы при нажатой правой клавише мыши пропадал курсор и включался фрилук, при отпущенной курсор появляется в центре экрана и с его помощью уже можно взаимодействовать с чем-то, кроме обзора офк. Все работает нормально, до тех пор пока не кликнешь лкм. Тогда инпуты от лкм и ркм просто пропадают. Че за хуйня может быть?
>>876388 Если поиграться с настройками капчер мода, то инпуты сохраняютс, но как только мышь доходит до границ экрана вращение камеры останавливается. Анрил заебал если честно на любой хуйне выставлять какие-то свои позорные костыли.
>>876389 В общем проблему я решил таким образом, что каждый тик обработки лук инпута курсор устанавливается в середину экрана, соответственно никогда не достигает границ экрана. Какой-то позорнейший костыль конечно, но работает.
Всем доброго утра. Делаю гонку на UE5, создал несколько трасс — но все они не очень высокого качества, из стандартных ассетов, и автомобиль тоже из набора стандартных ассетов. Игра не ахти — но хочу выпустить ее в Стиме, чтобы прочувствовать каково это, быть геймдевелопером.
Какие подводные? Если игра не очень, это как-то может сказаться на моей карьере разработчика игр? Например Стим будет хуже игру продвигать, или другие мои проекты будут хуже продвигаться?
В игру планирую добавить коллекционные карточки — Стим их позволит добавить?
Бля, часов 5 ебался, не мог в юобжект засетить таймер, потому что не мог из него получить ссылку на ворлд, которая у юобжект получается через оутер объект. Как оказалось, при создании объекта через NewUobject, если явно не указать оутер, то оутера просто нет лол)).
При этом, несмотря на то, что оутера у меня не было, цикл сука один раз срабатывал лол.
Я бы понял, если бы он срабатывал, когда переменная неинициализирована и там бы лежал какой-то мусор, который дал сулчайноположительный результат, но я же сука гетоутер сделал. я ебу нахуй
Посоны, если я хочу сделать уровень состоящий из коридоров, то как лучше делать? Моделить в блендере и импортировать или собирать прямо в редакторе? Стены, полы и прочее должны быть единым мешем и отдельными? Какие тут лучшие практики?
>>876456 Лучше из отдельных частей. Потому что иначе Occlusion culling не будет нормально работать. Вместо того, чтобы отрисовывать целые коридоры, можно отрисовывать их часть. Разбей коридор на разные составляющие. Пол 1x1 например, потом стена 1x3, потолок 1x1.
Тоже спрошу про составление уровней коридорных. У меня много времени уходит на то, чтобы ставить объекты в стык, без зазоров. Очень много времени. Я что-то делаю неправильно? Может тут какое-нибудь прилипание есть?
>>876470 > Может тут какое-нибудь прилипание есть? вроде было. Когда я только вкатывался в анрил то тоже искал, чтоб как в Майе можно было назначать пивот и снапить к другим моделям. И я точно помню что оно было, но настолько неудобно и всрато сделано, что я в итоге забил хуй и просто стыкую на глаз или по сетке с шагом. Но шаг еще хуй угадаешь, если сначала не запарился с тем чтоб все объекты были одинакового конкретного размера
>>876470 Держи анон https://www.youtube.com/watch?v=raoeVwv9Q_k В крации - пивот актора можно назначать либо комбинацией алт-v + mmb на нужный вертекс, или через контекстное меню пкм->pivot->set pivot here. Чтоб актор прилип к другому актору - зажимаешь лкм на пивоте и держишь v, потом тащишь пивот на нужный вертекс. Подводный камень - прилипание сработает автоматически как только увидит подходящую цель, после чего вполне может выйти из режима прилипания. Так что для того чтоб это работало сначала выставляешь на глаз, чтоб было +- на своих местех, а потом прилипанием выставляешь в стык - иначе актор может прилипнуть к ландшафту/солнцу/аллаху и улететь в ебеня. Короче сделано всрато. Блять, пивоты и прилипания были в 3д максе 30 лет назад - хуле вы, дети шлюх, сделать не можете? Тем более что это достаточно нужная фича для левел-дизайна. Уебки, блять.
Сделал по базовому туториалу АИ. Если первой загружается сцена, где есть контролируемая им пешка, то все работает норм, в противном случае moveto не хочет работать. WTF?
Видео начиналось с того, что чувак хвалился как он объясняет все заебись. за 4 минуты вытянул риг на левел и зашел в секвенсер. Какие же ютуберы сыны говна я ебал.
>>876923 Ставь расширения на ютуб. Одно для скорости х6, второе спонсорблок, в спонсорблоке включи в настройках пропуск до важного момента в видео/заставки/бессмысленный треп
Думаю как теперь сделать пошаговый аи, при этом риалтайм должен остаться. В общем пока идея заключается в том что в бехевиор три надо делать 2 ветки, одна турн басед, вторая риалтайм и декоратор, через который будет определять, какая ветка работает. Внутри турн басед ветки тоже делать декоратор, через который будет проверяться этот персонаж сейчас ходит или нет. И некий контроллер ходов, который этим статусом будет манипулировать.
>>872248 (OP) Кто-нибудь уже щупал новые фичи вроде State Tree, Substrate, Smart Objects, Metasounds? Это говно можно использовать уже, или как обычно?
Смотрю шаблон игры от первого лица, там персонаж игрока обрабатывает инпут эвенты. А разве этим не контроллер должен заниматься, получать инпут и дергать за интерфейс контролируемого персонажа?
>>876984 > А разве этим не контроллер должен заниматься, получать инпут и дергать за интерфейс контролируемого персонажа? Нет, там целая цепочка тех, кто кого дергает. В крации это работает так - за конкретный интерфейс актора дергает InputComponent, но чтоб он знал когда нужно дергать - его самого дергает PlayerInput, а его в свою очередь дергает PlayerController, которого в свою очередь дергает World. При этом сам PlayerController вообще не участвует в инпуте, он только создает список тех, кому нужно дернуть анус и сказать СЛЫШ ИНПУТИРУЙ >персонаж игрока обрабатывает инпут эвенты. Это только кажется что это персонаж игрока обрабатывает, на самом деле в ноду завернуто обращение к этому самому InputComponent. В плюсах, кстати, не завернуто и там нужно ручками писать PlayerInputComponent->BindAxis(); >Пишите свои контроллеры? Я не понимаю вопроса, лол. Даже если я захочу написать свой контроллер - чем он будет отличаться от стандартного?
>>876984 >Смотрю шаблон игры от первого лица, там персонаж игрока обрабатывает инпут эвенты. А разве этим не контроллер должен заниматься, получать инпут и дергать за интерфейс контролируемого персонажа? > >Пишите свои контроллеры? Персонаж обрабатывает специфичные для него ивенты (ходить, прыгнуть, присесть), если персонаж сел в машину, оседлал лошадь, встал за стационарный пулемет, то инпут ивенты обрабатывает соответственно машина, лошадь, пулемет. На плеер контроллере же остаются инпуты, общие для всех состояний игрока (открыть инвентарь, карту, войти в фоторежим, выйти в меню)
Если же использование персонажем других актеров не планируется, можно всю инпут логику держать в контроллере и дергать функции персонажа. Как в Unreal Tournament
void AUTPlayerController::MoveForward(float Value) { if (Value != 0.0f && UTCharacter != NULL) { MovementForwardAxis = Value; UTCharacter->MoveForward(Value); } else if (GetSpectatorPawn() != NULL) { GetSpectatorPawn()->MoveForward(Value); } } Да и даже тут есть разделение для игрока/наблюдателя
>>877097 Ты про тех, кто вроде тебя мемов не знает? Или ты такой воробушек, который подумал, что кто то реально на полном серьезе написал В КРАЦИИ? Пиздос проорал с тебя.
>>876913 Есть контрол риг, я свои анимации прям в анриле делаю, раньше в майе делал риг и анимацию потом экспортил, но это лишние телодвижения. Осваиваешь контрол риг, секвенсор и вперёд.
>>876984 Я желаю часть в персонаже часть в контроллере. Те кнопки что отвечают за игру как таковую. Выйти, загрузить,сохранить, пауза, хуяуза пишу в контроллере. Те вещи которые непосредственно просом управляют: бежать, присесть в персонаже. Потому что контроллер может позезить разными акторами. И если ты персонажем сел в вертолёт и полетел, то у вертолета нет бежать присесть, там своё управление свой мапинг кнопок. Но загрузить, сохранить, выйти тебе самые, поэтому они в контроллере.
>>878222 Моча тут вообще поехавшая, это какая-то шизоватая хуйня которая в программирование не может, и с местными петухами, вроде местного ООП-шизика и лапшешиза, на одной волне. Срущий везде шизик начинает срать не по делу, его унижают аноны, шизик бежит к своей моче жаловаться. А может этот шизик и есть горелая моча? Хуй его знает. Поехавшие пиздец, раздел мертв из-за срущего шиза и мочи ебаной.
ХАЛП Мне анрил нужен только модельки повертеть, почему он пиздец пролагивается и подвисает иногда, разворачиваю после сворачивания? Так вроде всё нормально, потом альтабнулся в другое приложение, альтабнулся обратно и пизда
Объясните мне в чем прикол бихэвиор три если я умею писать свою логику через энумератор? Я щас запотел и посмотрел туторы всякие, с этим БТ больше мороки для меня, у меня свой мувемент и таски для него для всех сам пишу, в БТ в один тик выполняется один блок и свой мувемент работает не каждый тик, чтоб переключаться между БТ контроллером и ботом надо туда сюда переходные хрени как для блэкборд переменных, сервисы говнища и могут докопаться до переменной которой уже нет из-за де синхронов.
>>872248 (OP) Посоветуйте прям хороший качественный платный курс по Unreal, который позволит быстро освоить основы двигла, для анальника с ограниченным свободным временем, который хотел бы сделать игру чисто в качестве хобби
Без лишнего пиздежа пожалуйста, "курсы не нужны" идут нахуй.
>>879428 Ну или альтернативно подскажите какой-то свой стоящий курс для фильммейкеров на Unreal, я если что тоже могу какой-нибудь курс подогнать бесплатно
>>872248 (OP) >Unreal Engine 5 уже в версии 5.1 - перекатывайся анон, хватит ебать остывающий труп четверки угу, и смотреть на вечную компиляцию шейдеров. в общем, ваши люмены и наниты говно, лучи не тянут и вообще все новые игры на 5м анриле провалились. а если учесть что это говно недоспутно в россии, то нахуй
>>879353 Unreal 5.0 C++ Developer на Gamedev.tv (блюпринты там если что тоже есть). Старая версия есть на торрентах, я лично купил на распродаже у них за что-то в районе 10 баксов. В целом, хорошая обзорная экскурсия по возможностям движка, делаешь несколько проектов, каждый сложнее другого (примитивная стрелялка физическими пропами, раннер, танчики, шутер от третьего лица), в каждом затрагиваются новые темы. Разжёвывают векторную алгебру, C++ на базовом уровне, блюпринты, behaviour trees и animation blueprints, UMG и много чего другого по мелочи. Материалы, VFX - на примитивном уровне, я бы почитал-поделал на эту тему что-то отдельное (на Udemy есть неплохие курсы, плюс тут в шапке вроде раньше была хорошая книжка про ниагару и шейдеры).
Есть еще кто-нибудь, кого бесит эта пиздоглазая обезьяна, сын собаки, китайца и индуса? Также реквестирую годные курсы по блюпринтам для новичков, где хотя бы что-то пытаются объяснить, а не говорят "нажми сюда а потом сюда".
>>879556 Насколько я помню, была только одна новость, где челу показалось, что возникли какие-то проблемы при публикации игры. Больше не было никакой инфы
>>879554 Хз, я купил по скидке за 9,99. Хз по чем он сейчас, но если не очень дорого - то можешь купить, или ждать скидки. >>879563 > Также реквестирую годные курсы по блюпринтам для новичков, где хотя бы что-то пытаются объяснить, а не говорят "нажми сюда а потом сюда". Это очень большая редкость. Вообще скилл нормально объяснять - большая редкость.
>>879578 >Вообще скилл нормально объяснять - большая редкость. Потому что ему надо учиться. А каждый еблан с ютуба думает, что если хоть немного шарит в теме, то сможет и объяснить.
Стоит ли пытаться вкатываться в C++ если лапша из Blueprints мне кажется сложной? Бэкграунд: Blender 4 года (в том числе сложная анимация), немного макс, substance painter, немного aftereffects. Хочу освоить unreal чтобы клепать не слишком сложный интерактив, окружение.
Но если ты действительно работал с блендером, для тебя не должно было быть никакой сложности познать Blueprints. Кто в теме - поймет. Blueprints создали специально для тебя, чтобы хуйдожник мог делать простой интерактив, не изучая программирование.
Я сам в блендере работал полгода, и когда перекатился из Юнити в UE, увидя блюпринты, радостно воскликнул: "лол так это ж как в блендере". А потом все ровно стал задрачивать плюсы, ибо нодовость в программах для меня выглядит дико
>>879597 > Все-таки почему? Потому что я учился на программиста в ВУЗе и не могу писать программы нодами. У меня физическое отвращение от программирования нодами, я не могу это делать. Это что-то для художников, программисты пишут программы... программами, что ли. Текстом. Руками. А смотрю на блюпринты, и не понимаю нихуя, хотя в том же блендере с нодами работал.
>>879598 >А смотрю на блюпринты, и не понимаю нихуя У меня та же беда, правда я не программист. Поэтому и подумал, что может C++ проще будет чем лапша.
>>872248 (OP) Я правильно понял условия их лицензии: Я могу бесплатно использовать движок для своих проектов, пока не получу суммарно миллион долларов прибыли, дальше должен буду платить 5% от прибыли?
Народ, а че UE так много весит, аж 64гб, ебнуться можно?))) Думал от силы гб10, рассчитывал еще четвертую версию рядом накатить))) Пустой проект 1GB....
>>879989 > Учитесь удалять ненужный стартер контент и логи.
А че там за ненужный стафф? Анон, я даже вкатываться еще не начал, жду отпуска в июне когда время появится много, тупо поставил только, и понял что не зря, потом уже места может не оказаться придется думать что удалить и это при том что у меня 3.5тб в общей сложности.
>>880014 Нет никакого ненужного стаффа, не слушай ебанашку. Есть "Стартер контент пак" на 600 Мб в который входят один небольшой уровень и кучка моделей, материалов, текстур, анимаций и еффектов из них 500 Мб это текстуры Лол, абу обосрался и обрал ебанутую капчу
Анон, а от UE4 сильные отличия у UE5? Если нафаня будет курсы по четверке смотреть и повторять, то не сильно он будет в ступор и непонятки встревать? И еще вопрос, как проект для UE4 компилируются в UE5? Без проблем? Есть совместимость?
>>880314 Наверное главное отличие, про которое заявляли на выходе пятой версии - это отсутствие ебаных статтеров в любой локации и в любой игре на любой видеокарте при быстром движении камеры
Как дела обстоят на самом деле, пока неизвестно, т.к. игр на пятой версии вышло крайне мало
Может кто знает как в билдке сталкер 2 убрать ватермарку сейчас как на картинке 1, надо как на кратинке 2 (кажется при отключение худа интерфейса исчезает)
захожу в консоль пишу худ вылезает всякие команды как их применить не шарю и можно ли вообще
Изометрия. Хочу сделать 2 режима камеры - привязанная к персонажу и свободный обзор. Я сделал дефолную пешку игрока, которая является камерой. Соответственно аттачу или детачу ее от персонажа игрока. Работать как бы будет, но может есть какие-то более интересные варианты решения?
>>880586 Твой подход подойдёт только для прототипа. Я бы сделал две камеры и настроил их по-разному - к привязанной к персонажу камере сделал бы SpringArm и настроил бы там все эти инерции и длины. Свободную камеры бы либо детачил от спринг арма, либо сделал вообще бы отдельную, потому что к ней, вероятно, какие-то правила поведения тоже будут нужны.
>>880897 >Я сделал дефолную пешку игрока, которая является камерой. >Твой подход подойдёт только для прототипа. >инриал имеет дефолтный камера менеджер, который является актором, на который вешают камеры.
Видео треда https://www.youtube.com/watch?v=HTMDNZOlUq4
https://cgpeers.to - не плати за секс туториалы
FAQ https://www.writeurl.com/text/xun0z43omrlb3s4ob8e2/hcvwlcbc329lx8ioke1j
Как не запутаться в лапше https://github.com/Allar/ue4-style-guide
Еще указание как правильно варить лапшу и не только https://docs.unrealengine.com/en-US/Programming/Development/CodingStandard/index.html
https://forums.unrealengine.com/ - Форум. Коммюнити живое, на все вопросы отвечают быстро. Можно общаться с живыми гейм-девелоперами и разработчиками движка, а не мамкиными тимлидами с двача
Дискорд: https://unrealslackers.org/
Твитч https://www.twitch.tv/unrealengine
Ютуб https://www.youtube.com/channel/UCBobmJyzsJ6Ll7UbfhI4iwQ
БАЗИРОВАННЫЕ ВИДЕО
1. https://dev.epicgames.com/community/learning?application=unreal_engine - официальные туториалы.
2. https://www.youtube.com/channel/UCOVfF7PfLbRdVEm0hONTrNQ - очевидный Мэтью Вадштейн. Делает короткие туториалы по каждой ноде. Видосов ОЧЕНЬ много, имеет смысл как замена малоинформативной офф документации. Но что-то его давно не было видно. #ВадштейнЖиви
3. https://www.youtube.com/channel/UC4d4FQlX2zurgNmRAr2QDkg - Если ты в твоем сердце горит огонь Октября, а в душе ты до сих пор комсомолец - то можешь глянуть их туториалы. Не забудь потом постирать штаны. На русском. Как по мне - то хуйня хуйней
4. https://www.youtube.com/channel/UCjoFnxxd31c6hcmp71NL6oA/videos - еще лекции на русском. Оп-хуй их не смотрел, но анону понравилось.
5. https://www.udemy.com/course/unrealcourse/ - серия видосов по с++ для начинающих. Старые версии есть на торрентах. На английском. Для вкатышей имеет смысл сначала ознакомиться с базовой теорией с++
6. https://www.udemy.com/user/stephen-ulibarri-3/ - оче годные курсы от крутого чела для любителей подрочить на с++. Есть на торрентах. На английском. сейчас смотрю его курс по мультиплеерному шутану - хороший уровень подачи материала
7. VFX: https://www.youtube.com/c/Rebelway и https://www.youtube.com/c/RimayeAssetsandTutorialsNIAGARA. УВАГА! Последний канал на хранцузском, но в целом и так понятно что он делает.
8. Плюс многие многие туториалы на ютубе, тысячи их!
ПАЛЬ С РЫНКА
1. Content examples - учебный проект из маркетплейса, огромное количество примеров работы почти всех функций движка - анимации, блюпринты, материалы, виджеты и т.д.
2. Парагон - бывшая моба от эпиков, ассеты доступны в маркете бесплатно. И их там очень много - десятки разных персонажей с анимациями и VFX, разные локации, замки, подземелья, горы и т.д.
3. Third person shooter kit - Шутан с укрытиями и перекатами. Отлично подходит, когда нужно подсмотреть как что-то реализовано в реальной игре, а не учебных туториалах. Есть на торрентах.
4. Horror engine - хоррор от первого лица с открытым кодом, все на блюпринтах - камеры, замки, осмотр предметов - все как в твоем Аутласте.
5. Free for the month - каждый месяц эпики устраивают аттракцион невиданной щедрости и раздают некоторые ассеты забесплатно. Сюда могут входить плагины, модели, анимация - короче все что угодно.
6. Valley of the Ancient - демонстратор возможностей Unreal 5. Требует хороший комп для работы.
НЕ ЛЮБЛЮ ЭТИ ВАШИ ВИДОСЫ, ГДЕ МОИ КНИЖКИ
Специализированные книги по анриалу - говно говна. За книгами по алгоритмам, паттернам и вообще программированию - обращайтесь в программач. И да, какой-нибудь "Совершенный код" Макконелла вполне подходит и к анриалу.
МАМ Я ВСЕ ЗНАЮ, КАК МНЕ ТЕПЕРЬ НАЙТИ РАБОТУ?
1. хх.ру - на момент создания треда 205 вакансий, хотя и не все они релевантные. В любом случае стоит начинать оттуда, многие вакансии дружелюбны ко вкатышам за еду и нет проблем с переводами.
2. https://forums.unrealengine.com/c/community/got-skills-looking-for-talent/56 - раздел офф форума с поиском и предложением работ. Примерно 3-4 предложения в день. Из минусов - ищут либо вкатышей забесплатно с непонятными перспективами (та же двачеразработка только под другой вывеской) либо сеньоров-помидоров с 5 летним стажем, но могут попасться и нормальные вакансии.
3. Раздел Job board в офф дискорде Unreal Sluckers. Примерно то же что и на форуме, но вакансий побольше - примерно 5-10 в сутки. Некоторые могут быть репостами предыдущих. Обычно ищут людей с хотя бы 2-3 годами опыта, так что для вката подходит плохо.
PS. Оп-хуй этого треда устроился на работу именно таким образом.
4. Биржи фриланса типа Апворка. На момент создания треда в Апворке я не ебу сколько так как лень открывать вакансий по поиску "Unreal Engine", однако релевантных здесь намного меньше чем на хх. В основном ищут моделеров/художников/левел-дизайнеров/саунд-дизайнеров/спецов по созданию видеороликов и т.д., именно програмистских вакансий маловато. Пожалуй наихудшее место для поиска работы, но чем черт не шутит.
5. На удивление много вакансий требующих знание работы с VR и AR. Также довольно популярное требование - знание мультиплеерной части. Если ты этого не знаешь - то сейчас имеет смысл покуруть туториалы про репликацию и мультикасты.
НО ТАМ ТРЕБУЮТ ОПЫТ И ПОРТФОЛИО
Да, требуют. Многие требуют иметь готовые и зарелизеные игры - либо самостоятельные либо в составе студии. Но многие готовы принять на рассмотрение любое портфолио, даже если оно состоит из тестовых болванчиков и манекенов. Если у тебя такого нет - значит пришло время начать делать игру по одному из туториалов в шапке треда, которую будет не стыдно показывать на собеседовании.
Я РНН ГОСПОДИН И ХОЧУ ДЕЛАТЬ СВОЮ ИГРУ С ДВАЧЕРАМИ БЕЗ КРАНЧЕЙ И СКРАМОВ, А НЕ РАБОТАТЬ 8/5 НА ДЯДЮ
Пока что двачеры не сделали ни одной игры, и никогда не сделают. Хочешь делать игры и получать деньги - или иди работать в студию или тащи в одиночку.
Я НЕ ХОЧУ УЧИТЬСЯ ПРОГРАММИРОВАТЬ НА С++ ПОЭТОМУ ВЫБИРАЮ БЛЮПРИНТЫ
Блюпринты - это точно то же программирование, только с человеческим синтаксисом без фигурных скобочек и непонятных слов. Если ты до этого никогда не программировал - шанс сделать на блюпринтах говнокод равен 100%.
Предыдущий больше не компилируется здесь: