анонс https://blogs.unity3d.com/2018/09/13/unity-2018-3-beta-get-early-access-now/FAQ https://www.writeurl.com/publish/zukmrogwv45ptyuseyolпрошлый >>517346 (OP)
>>528051Допустим, есть entity с компонентом BulletComponent. Сейчас я в сообщении коллизии в этом компоненте просто использую SendMessage для отправки сообще об уроне и все. Остальные компоненты на столкнувшемся объекте обрабатывают сообщение как угодно. В этом гениальная простота ООП.А вот как это сделать с ECS? Не понимаю.
>>528053может ты зайдешь в гугл хотя бы на 1 сек? прежде чем задавать даунский вопрос по фреймворку нужно его хотя бы ЧУТЬ изучить и понять принцип работы?
>>528055>ко-ко-коЯ уже в ECS не один месяц пытаюсь разобраться вообще-то.Если ты такой гуру, то поделись знаниями.
>>528065С использованием SendMessage это делает добавлением одного(!) компонента без изменения существующей системы.
>>528065Всплывающие циферки над врагами или что? Для этого создаёшь отдельную систему, которая не будет ломать текущую структуру игры.
Судя по тому, что я видел, ECS и Unity ECS - две абсолютно разные вещи. В юнити это просто строенная система для удобной работы с большим количеством объектов.А вот здесь тру-ECS, на котором строится игра>>528056
>>528073>тру-ECSтру ECS - это data-oriented дизайн. А это какой-то тру говнокод. То же самое делается на MonoBehaviour намного проще.
>>528076>тру ECS - это data-oriented дизайн. Необязательно, хотя это один из основных вариантов. Суть же в отказе от калечного ООП-дизайна и четкого разделения данных и логики. Можешь хоть из постгреса свои компоненты тягать.
>>528086>четкого разделения данных и логикиНо нахуя? Прочел >>528056 и не понятно, зачем такой анальный цирк нужен? Байтоебства ради?
>>528086>Суть же в отказе от калечного наследования реализациипофиксилНаследование - это анти-паттерн. Не нужно его ассоциировать с ООП только потому, что оно есть в большинстве ООП-языковhttps://hackernoon.com/inheritance-based-on-internal-structure-is-evil-7474cc8e64dc
>>528087>Но нахуя?Чтобы получить хороший, годный, читаемый и расширяемый код вместо ООП-лапши. Плюс при добавлении некоторых нехитрых констрейнтов такая архитектура позволяет здорово увеличить производительность а можно не добавлять и не увеличивать, вне зависимости от этого ецс будет лучше чисто с точки зрения дизайна кода.Опять же, тут проблема в том, что под ecs (как и под mvc, как и под ооп) многие понимают вообще что угодно. И еще многие фанатики молятся на это, как на святую корову, из-за чего у некоторых возникает отторжение. Но на самом деле это просто нехитрая техника организации кода, в которой используется композиция вместо наследования.
>>528088Хайвмайнд практически, лол.Я об этом и говорю: "ваше ооп не ооп" ваш коммунизм не коммунизм. На сегодня никто не подразумевает под "ооп" смоллток. Под "ооп" подразумевают класс-бейзед дизайн с наследованием и инкапсуляцией, а-ля джава. Самое смешное, что даже дизайнеры джавы во весь голос повторяют, что НЕНУЖНО пихать инкапсуляцию туда, где она не нужна (геттеры\сеттеры на дата-классах, ага), но их никто не слышит. Ну то есть тут уже нет смысла о чем-то говорить, настолько все blurred. Ничего не спасти - господь, жги.
>>528089>в которой используется композиция вместо наследования.Но ведь это совсем не аргументный аргумент. Потому что ООП не запрещает применять композицию наследования. Прост иногда наследование удобнее, иногда - композиция.>>528089>читаемый и расширяемый кодНу хз, разделение данных и методов как по мне хороший способ насоздавать багов, в отличии от обратной системы, где данные прочно прилеплены к алгоритмам.
>>528090Ну хз кто там что говорит, по мне так инкапсуляция везде нужна чтобы скрывать реализацию. Да и не стоит это ничего.
>>528092>Потому что ООП не запрещает применять композициюЯ же вот о чем говорю: есть ооп-дизайн, есть ecs-дизайн. Тот факт, что твой язык поддерживает ооп (чтобы эти три буквы не значили), не означает, что ты не можешь использовать ецс-дизайн. Точно так же гугловцы в свое время написали guava для поддержки иммутабельных структур и функционального программирования на джаве, например. То есть речь как раз о том, что твой язык тебе не запрещает применять композицию, у тебя есть выбор, какую архитектуру использовать для твоего приложения: лапшеобразную ооп архитектуру или православную ецс архитектуру. Непонятно, в чем твоя претензия.>в отличии от обратной системы, где данные прочно прилеплены к алгоритмам.Ну читай классиков. "Лучше иметь 100 функций, оперирующих одной структурой данных, чем 10 функций, оперирующих 10 структурами данных", все в таком духе.>>528093>Ну хз кто там что говоритЛол, ну вот собственно поэтому и имеем то, что имеем.
>>528096Наверно я просто стриггерился.Я, собственно, недавно стал с наследования переходить на компоненты в своем симуляторе кокономики. Не потому что разуверился в ООП (все еще использую его) просто классы большие стали. Теперь, когда класс больше 1200 строк я тупо выделяю часть связанного функционала (и данные и алгоритмы вместе) в отдельный класс который потом можно навешивать куда хочешь как компонент. Дипломатию, например, так обособил. Теперь ее даже в других проектах можно просто навесить и радоваться.Впрочем, для гейм дизайнера, пожалуй, важно что бы был набор постоянного АПИ, а как оно там под капотом вертится - не важно, хоть ООП, хоть ЕКС хоть в одну строку на джава скрипт.
Я, кстати, прочитал сейчас ту статью от пиксоник - там все годно расписано, ребята шарят. Блядь, теперь вдвойне обидно, что мейлру скатило wr в такое говно. Я думал все нормальные разрабы оттуда ушли в red button.>>528101Ну, геймдизайнеру ецс как раз позволяет редактировать поведение игры, не касаясь кода вообще, ведь все компоненты - это просто данные, хоть в экселе их редактируй, все энтити - это просто наборы компонентов, включай\отключай как хочешь, и т.п. Ну и даже при написании логики можно постараться и обернуть это все в красивый дсл, так что это будет больше похоже на sql\datalog запросы, чем на код. У меня в моем костыле, например, ты буквально пишешь: для всех e таких что у них есть отравление, уменьшить здоровье на величину отравления - выглядит как нечто среднее между селектором jquery и кодом на прологе.
Хотя вот это говно:>У нас есть специальные «singleton»-компоненты/сущности. Например, у нас есть сущность с ID=1, на которой висят специальные компоненты — настройки игры.Для этого создается компонент "Game" или "Level" и вешается на соответствующую сущность. ID тут вообще ни при чем, айди трогать не надо.>События/запросы мы реализуем за счет создания специальных компонент.Это говно, из-за этого у них анальный цирк с созданием временных энтитей чтобы нанести игроку урон два раза за тик. Возникло это из-за того, что у них системы завязаны на игровой цикл, хотя они должны быть функциями GameState, Events -> Events (а они изначально рассматривали системы только как сайд-эффекты, проектированием датафлоу не занимались). Хотя тут трейдоффы по производительности конечно будут, так что это зависит.
>>528107>из-за этого у них анальный цирк с созданием временных энтитей чтобы нанести игроку урон два раза за тикХм, это серьезный недостаток ECS и использования компонентов для сообщений.Как ECS-господа обходят это ограничение?
>>528111Это не ecs, это их конкретная реализация. Я же говорю, в общем виде ецс описывается так:1. Состояние S: множество троек вида [id name data], где id - натуральное число, name - имя компонента, data - содержимое компонента.2. Логика: множество пар (cs F), где cs - это список [c] имен компонентов, F - (чистая) функция вида E, S' -> [E], где E - "входящее" событие, которое триггерит эту функцию, [E] - множество "выходящих" событий, S' - множество троек из S вида [_ c _].И все, вся игровая логика этим описывается, плюс есть некий внешний исполнитель, который запихивает начальные события в систему (юзер инпут, сеть, таймеры) и обрабатывает конечные события (отрисовка, сеть). Если добавить ограничение, что cs должен содержать ровно один элемент, и считать любой сайд-эффект событием, получится классический сишный однопроходный data-oriented ецс. У них как раз проблема в том, что нет явного notion'а событий, поэтому функции фактически получаются E, S -> S (ну и S получается состоянием всей* программы, а не только игры, потому что глобальное состояние и сайд-эффекты). Потому что они транзишны запускают из геймлупа, ну и это кстати еще не даст распараллелить\разсинхронить обработку. Но аффтар там тащем-то как раз писал в комментах, что они планируют перевести свою ецс на событийную архитетуру.
>>528121>Это не ecs, это их конкретная реализацияЭто практически стандарт ECS. Много где так сделано.
>>528121Я себе ECS представляю так1. все игровое состояние представлено посредстом компонентов2. компоненты явл. типом struct3. компоненты хранятся в ассоциативных массивах (например, Dictionary)4. каждый комп. ассоциирован с каким-то числом (entity id), это позволяет группировать разные компоненты вместе5. можно осуществлять фильтрацию имеющихся entity по наличию у них нескольких типов комп-ов
>>528121>Но аффтар там тащем-то как раз писал в комментах, что они планируют перевести свою ецс на событийную архитетуру.А это как?
>>528101ты это. partial классами тоже пользуйся. можно же разбивать логически один и тот-же класс на разные файлики когда когда разный функционал должен быть в одном месте. куда проще всем этим управлять становится.
>>528125>Много где так сделано. Все еще проблема много каких реализаций, где так сделано, но не самого ecs.>>528128Что как? Я же в посте это и описывал...
>>528140То, что ты описываешь, не существует. По крайней мере я не видел ECS на событиях. Везде используют добавление компонентов как флагов, вместо событий
>>528164Ээ, попробуй прочитать пост, на который отвечаешь. Там как раз это весь пост и описывается.>>528150По-хорошему надо бы послать тебя нахуй в гугл, но давай я за тебя открою первую ссылку на гитхаб по запросу "ecs callbacks": https://github.com/alecthomas/entityxА еще можешь попробовать почитать вот эту труднодоступную обскурную статью: https://en.wikipedia.org/wiki/Entity–component–system - когда откроешь, нажми Ctrl-F и введи "events".И это уж не говоря о том, что я прямо в посте русским языком описал, как именно вариант с прямым изменением глобального состояния является частным случаем этой общей модели.Испытываю некоторую фрустрацию по поводу таких аутичных ответов, извините.
>>528174>https://github.com/alecthomas/entityxот того, что туда зачем-то воткнули глобальный event dispatcher, ecs не стала более событийной.
>>528182Если ты по формальному описанию не можешь закодить прототип на языкнейм, то я здесь и сейчас ничем не смогу тебе помочь.>>528183>то, что там события, еще не значит, что там событияПожалуй, скрою-ка я обратно тред жс ой, то есть юнити-макак. Можете не отвечать.Но не сможете :3
>>528188Суть юнитивских сообщений в том, что обработчик связан с компонентом и вызовется только если компонент добавлен к объекту. Сообщения ты отправляешь объекту, а не отдельным компонентам. Поэтому получается такой событийный полиморфизм. Ты просто добавляешь какие нужно компоненты, и они задают поведение объекта. Очень просто и эффективно.В ECS тебе придется эмулировать ООП-функции. В самом простом случае тебе в подписчиках на твой глобальный диспетчер нужно писать какой-то такой код:// обработчик уронаvoid OnMessage(Entity entity, string message) {if (message == "OnDamage" && entity.HasComponent<Damage>()) {// }}
>>528258Что за хуйня? Зачем этот иф через иф? Ты вообще понимаешь, что такое подписка на событие? Это засовывание своего коллбека в список, хранящийся у глобального менеджера. Когда менеджеру приходит сообщение о событии, менеджер вызывает все коллбэки по списку. Никакие ифы в коллбэке не нужны. Сам факт подписки объекта на событие подтверждает, что он соответствует требованиям.
>>528261Нам нужна не просто подписка на событие. Нам нужно выполнять какой-то код, если entity содержит определенный/ые компоненты.С SendMessage мы это получаем бесплатно.C использованием компонентов как сообщений, мы создаем систему, которая фильтрует entity по компонентам. Недостатков у этого способа куча: начиная от ручного удаления компонента-флага, и заканчивая невозможностью отправить несколько сообщений за один тик.C использования диспетчера нам нужны if в самом простом случае, чтобы фильтровать события для entity у которых есть нужный компонент. Про недостатки этого способа ничего не знаю, но уверен что их немало.
>>528266>SendMessage Тебя даже вчерашний шторм не разбудилhttps://docs.unity3d.com/ru/current/Manual/MessagingSystem.html
>>528269Лол, бедные юнити-кликуши. Буквально неделю назад агрились на интерфейсы, а тут такая зрада от юнитеков подкатила.
>>528272Юнити на питоне. Как годот на шарпе.>>528266Я все ещё не понимаю, зачем тебе все эти сложности, которые ты описываешь? Я вроде ясно выразился. Регистрируется слушатель сообщения. Процедура регистрации требует предъявить функцию-коллбэк в которой будет код, выполняемый каждый раз, когда данное сообщение будет послано. Регистрация делается в конструкторе компонента, атписка делается в деструкторе. Всё. О какой сложной ручной работе у тебя там идёт речь?
>>528269Во, я придумал новую систему, игровые объекты должны слать не только сообщения, а письма. Сообщение - широковещательное, письмо - адресное.Например при коллизии пули с объектом, пуля посылает письмо объекту такому-то "ранен на столько-то". Синглтон "почтовый сервер" направляет письмо адресату и тот начинает хрустеть плотью и уменьшать свои хп, если он мясной, если же этот объект стена, то она просто рисует декаль в месте коллизии, указанном в письме.Побежал патентовать, пока юнитеки не украли.
>>528283>я придумал новую систему, игровые объекты должны слать не только сообщения, а письмаПриходите работать к нам в unyti
>>528282>О какой сложной ручной работе у тебя там идёт речь? Объяснаю на пальцах.У тебя есть система считающая коллизии. Допустим, эта система отправляет события через глобальный диспетчер.Ты подписываешься на это событие, где в коде тебе нужно применить урон от столкновения с пулей.Допустим сигнатура метода такая: OnCollision(Entity sender, Entity receiver); код подписки примерно такой AddListener("OnCollision", OnCollision);Как ты в подписчике поймешь, что это столкнулась пуля с игроком и что у игрока надо отнять ХП?
>>528296Я делаю, например, так в компоненте пули и все. Никакого boilerplate кода.void OnCollision(other) { other.SendMessage("OnDamage", gameObject); }Через глобальный диспетчер это выглядит как-то так:void OnCollisionMessageReceived(Entity sender, Entity receiver) {// тут надо отфильтровать sender, чтобы у него было компонент Bulletif (sender.HasComponent<Bullet>())EventManager.Dispatch("OnDamage", sender, receiver);}
>>528298Долбоебина, ты понимаешь, что SendMessage мало того что пиздец какой медленный, потому что пытается вызвать метод через строчное название, так еще и пытается сделать этот вызов на всех компонентах, которые навешаны на твоем гейобжекте?>So, on my (rather old) machine, a loop of 5000000 SendMessage calls, using an empty function, takes 9.872 seconds. A loop of 5000000 direct calls (using a cached GetComponent) takes .024 seconds. Therefore, direct calling seems to be about 400 times faster, although considering that the loop itself takes up some time, it's probably more than thatИ нет, пускать все вызовы через глобальный маняменеджер маняэвентов, как местные дебилычи любят - тоже нихуя не оптимальный вариант. Вы просто два сорта даунов, спорящие чем лучше копать ямы - черенком от лопаты или полотном.
>>528315в сбилженных проектах он становится нормальным делегатом. это приблуда для удобства в эдиторе в такой форме, придурок.
>>528320Тем более что разница в скорости настолько ничтожна >>528320 , что пердолинг с оптимизацией не стоит этого.
>>528327Если кто не понял, то раньше при выборе префаба отображался GameObject с компонентами, и можно было быстро настроить префаб.Теперь эта хуйня, которую нужно открывать в scene view, изменять, возвращаться обратно.Это фейл.
>>528266Короче, самый оптимальный способ для ECS - это для каждого сообщения создавать отдельную entity с компонентом-данными сообщениями. Тогда можно обойти ограничение на один компонент.Использование диспетчером и прочих SendMessage затрудняет распараллеливание систем.
Короче у меня возникла идея. Я ведь изучал С#, а не сразу вкатился в Юнити и еще помню про стандартные средства C# связаные с потоками. И вот задался вопросом:А можно ли с помощью скриптов С# прикрутить в Юнити-игру какую-то свою отдельную многопоточность? Ну типо помимо того, как Юнити сама работает и что-то обсчитывает, а ты из скрипта вызвал стандартный поток в C# и чето в нем обработал\посчитал? Или это хуйня идея? И почему?
>>528365Можно. Уан минус - нельзя вызывать юните апи из доп. потоков. А так норм, брат жив. Но лучше jobs попробуй приладить
>>528363каникулы что-ли неожиданно начались гдето>>528365до тех пор пока многопоточность отдельно от самого юнити. вон у меня например пайплайн навмеша в отдельном потоке. в потоке юнити собирается информация о мире, проверяется физон, информация отправляется в пулл потоков, там генерируется чанк, в конце пинается поток навмеша, который уже объединяет результаты в один целый, ищет путь и прочее.
>>528053>Сейчас я в сообщении коллизии в этом компоненте просто использую SendMessage для отправки сообще об уроне и все. Ок. Скажешь как оно заработает при появлении у тебя хотя бы десятка противников с пулемётами. Вообще Юнити со своими SendMessage жидко насрали в общий котёл, пидарасы.
>>528057Для понимания ECS надо иметь определённый уровень понимания в software engineering ну или хотя бы уметь программировать.
>>528435>при появлении у тебя хотя бы десятка противников с пулемётамиДаже под самым шквальным огнем будет максимум пара десятков SendMessage за апдейт.Экономия на спичках.>>528436Скорее это ECS слишком ограниченная архитектура для программирования геймплея. ECS нужно применять только для оптимизации определенных алгоритмов, а не пытаться сделать на нем всю игру.
>>528447ECS по сути своей соответствует определению игры как "базы данных с красивым интерфейсом". Если мы считаем состояние игры как БД, то кадр можно описать как серию запросов переводящих игру в состояние следующего кадра. ECS даёт такое разделение - отдельно состояние, отдельно логика.
>>528454>до тех пор пока эта логика находится на примитивном уровнеОна всегда находится на примитивном уровне. Даже в шахматных монстрах вроде стокфиша.
>>528456>>528455ололо хотелось бы узнать точку зрения этого замечательного господина >>528101 и того как он смотрит на этот вопрос.а вообще разумеется когда ты делаешь какую-то хитрую хуйню где требуются километры спагетти чтобы связать разные участки кода и зачастую ещё и в иерархичном порядке и с приличным слоем абстракции то ECS будет болью и мучением.
>>528453Какая база данных? Что ты пиздишь? Entity-Component-System это банальный паттерн (шаблон проектирования) в котором композиция ООП предпочтительнее наследования ООП. И все бля. Ебучие фанбои, нихуя не понимаете, а всюду лезете.
>>528466ну а хули. вон как по твоему выглядит внутри эта хуйня? какая там иерархия компонентов?там лол пришлось даже отдельно стейтмашину делать которая бы синхронизировала работу ИИ и контролер. плюс отдельно ИИ для планирования и стейтмашина которая меняет паттерн перемещения. отдельно даже была иная категория ИИ которая управляла сквадом меняя приоритеты действий у разных его участников. очень интересно посмотреть как это можно сделать в рамках ECS. очень увлекательное чтиво небось будет.
>>528501Купи второй монитор, на него выведи окно Game, а на первом всё остальное, включая сцену.Базарю, ещё захочешь.
>>528475meh. только на дваче и можно этим кого-то впечатлить. видео старое как говно мамонта. это был прототип примерно того что можно было увидеть в FEAR. у меня на тот момент появилась первая рабочая версия моего навмеша и я решил исследовать пространство смежных проблем заебошив прототип ИИ. у меня было множество интересных ваниантов как это применить но мои идеи трансформировались раз за разом в всё более охуительные. плюс один знакомый артист постоянно мешал моим планам. он был согласен помогать мне с проектом А но я хотел делать проект Б больше чем А. в итоге я начинал с ним делать А, но спустя какое-то время он сбегал. я начинал делать Б и он появлялся. в итоге пришлось послать его нахуй и продолжить совершенствоваться в этой сфере не делая ни один из проектов.а ты бы как применил подобное могущество, анон?кстати после прошлого апдейта моего навмеша я стал ебошить следующий и заодно сделал вон эту хуйню >>528132 теперь в этом ИИ можно сделать клёвые вещи и наверно надо вернутся к нему чтобы воплотить их. можно например сделать так чтобы ИИ в оптимальном порядке выполнял действия в разных местах. например последовательно надавил кнопки в разных частях лабиринта или собирал предметы рядом в оптимальном порядке.>>528494а че бы и нет? выглядит здорово! в юнити можно сделать щелчком пальцев, а смотреть становится интересней.>>528496я уверен я всё делаю правильно! разбавляю скуку треда.>>528498вообще тебе уже посоветовали два монитора (у меня два). но вообще можно же просто переместить окошко Game куда-нибудь нахуй. мне оно большую часть времени не нужно и поэтому я перемещаю его куда-нибудь в угол.
>>528516> у меня дваНа работе тоже два, а дома один. На одном пиздец как неудобно, после того как к двум привык.Вообще и двух маловато, особенно когда с анимациями работаешь.
>>528516Я тоже кстати одно время игрался с ии, но я использовал утилитарный подход а у тебя как понимаю GOAP как в фире? Удалось добиться прикольных результатов, юниты грамотно сидели по препятсвиям, съебывали если их сильно обстреливаешь/подходишь близко/кидаешь гранату, плюс поверх этого сделал ии отряда, чтобы он распределял юнитов на подавление огнем/обходы с фланга/отступление и т.д.Для фпс пилил, но проект затух, но наработки применил потом для икскома своего.
>>528521 >>528532йеп. это GOAP как в фире. сделал ещё обратный поиск, но этим никого не удивить. но изначально я применял его для немного иных целей. у меня список проблем начинался с того как научить ИИ организовывать собственный инвентарь. и GOAP отлично решал проблемы выстраивания цепочек из действий вроде "освободить основной слот", "положить предмет в основной слот", "одеть штаны", "перезарядить оружие" и так далее. просто потом к списку возможностей добавились подбирание и применение предметов в мире. но тут появилась иная проблема - отсутствие возможности адекватно оценивать дистанцию между применяемыми предметами. и недостаточно крутые мои собственные наработки чтобы я мог добавлять такие фичи с лёгкостью.у меня изначально наработки планировались для чего-то очень отдаленно похожего на сталкер и Xenus но без графона. хотел сделать чтобы симулировался какой-то примитивный социум вроде негров в джунглях и продвинутый милитаризированный социум вроде корпорантов с военными лабораториями и между ними были бы постоянно односторонние стычки за территорию. а задачей игрока было бы проникнуть в лабораторию корпорантов незаметно, но для этого пришлось бы как-то состыковать свои атаки с атаками негров. были интересные наработки в плане симуляции социума. например генератор террейна у меня выдавал диаграмму вороного чтобы делить мир на биомы а я переиспользовал его как граф с локациями чтобы между ними перемещались агенты и делали всякие дела не загружая их в мир, примерно как в иксах, или космических рейнджерах. негры ходили собирали бананы, носили их в деревню, корпоранты отстреливали негров если они слишком наглели.пока что пик развития этой идеи это сделать что-то вроде симулятора командира отряда на манер SW republic commando но только в открытом мире. чтобы вокруг ходили терминаторы и вели охоту на мясное окружение, а игроку надо было шастать по помойкам и искать себе членов в отряд сопротивления и командовать ими.>>528525не. но разумеется я отлично знаком с этим подходом. миллион вагон вещей разумеется у меня было реализовано в виде данных и обрабатывалось одной функцией. например в проекте с бегающим человечком у меня был простенький менеджер баллистики который обрабатывал все сорты пуль. пули разумеется в массиве со структами, в потоке юнити рэйкастили вперёд, а потом в других потоках обрабатывались одной функцией.
>>528461А вот такая. Если ты будешь всерьёз работать с ECS (я на работе закодировал целую игру на Entitas, сколько-то там миллионов закачек уже) - то очень скоро начнёшь мыслить в терминах данных и запросов к ним.
>>528544В терминах данных и запросов к ним мыслит любой программист, программа которого активно работает с данными.Все ещё непонятно, при чем здесь паттерн, завязанный на композиции, как я описал выше.Сдаётся мне, ты наслушался баззвордов из рекламных видосов юнитеков.
>>528560Вообще то я занимаюсь ECS уже третий год, задолго до того как Юнити решили очередную фичу, которая никогда не будет доделана, добавить. Игру шипнули до того как Юнити что то публично выложили.Типично при ООП ты думаешь в терминах данных объекта и какие манипуляции ты проделываешь над объектом, что объект делает. Не про состояние игры в целом и как ты это состояние трансформируешь.
>>528562Чушь. ООП не вещь в себе, при ООП тебе ничто не мешает думать так, как эффективнее для поставленной задачи. На ООП 30 лет корпоративный бд-софт пишется и успешно работает.При этом ООП универсален: есть классы, есть методы. Внутри методов можно ебашить код на любой парадигме, хоть на императивной, хоть на функциональной, хоть на сущностно-компонентной.
>>528573Я пожалуй, ещё раз повторюсь, ООП - каркас, ECS - одна из реализаций наполнения каркаса. Таким образом ECS - часть ООП. Сравнивать их все равно, что сравнивать печень человека с самим человеком.
>>528406>Точно нельзя? Даже с using?Хоть с двумя using. Вызывать то оно вызывается только ошибку выкидывает
>>528457>ололо хотелось бы узнать точку зрения этого замечательного господина >>528101 и того как он смотрит на этот вопрос.Ну кстати для моей кокономики идеально бы подошла ECS если бы я с нее начал пилить. Потому что экономика это набор таблиц по сути, одномерных. БД то есть. А абстракции, наверно, можно и в ECS реализовать.>>528461>Какая база данных? Что ты пиздишь?ECS предполагает хранить данные в виде таблиц, это формат баз данных.
>>528630Потому что работу с юнити апи нужно переводить в главный поток. В сайд потоках делаешь вычисления, в маин потоке обрабатываешь результат.
>>528644В Entitas очень годная система сборщиков (Collectors), можно создавать разные условия, типа "Всё что имеет здоровье, является игроком или монстром и не мертво", в реактивных системах ещё и дополнительным фильтром пройти.>>528573ООП значит объединение состояния с логикой с сокрытием состояния. Истинный ООП-код должен оперировать автономными агентами обменивающимися сообщениями (SendMessage в этом плане кстати ближе к Ъ-ООП). ECS это разделение состояния, не имеющего логики, и логики, которая не должна иметь в себе состояния. ECS это ближе к функциональному подходу, где игру можно описать как функцию от состояния, времени и ввода, отдающую новое состояние. Это достаточно разные вещи, но ничего не мешает использовать их вместе разумеется. Делать интерфейс на ECS есть форма мазохизма (в Tanki Online так делали, брррр). Ты можешь конечно использовать ООП-синтаксис для не-ООП кода.
>>528538а брось че там учить. гейдев это сорт исследовательской работы. к этому можно притупить имея минимум знаний и обрести их методически наступая на грабли.>>528559самописный UI конечно-же. в юнити своё окошко с говном довольно легко сделать, если знать как. у меня было 3 версии этого генератора карты. первая была без UI, но я решил что ну его нахуй когда увидел 20 закрывающих скобок подряд. вторая с UI на первом скриншоте где MapPatternEdit. где я имел плохое понимание о сериализации но в целом это было более-менее функциональным говном. третья версия на втором и третем скриншоте которую я написал по человечески зная что оказывается можно же скриптабл обжекты совать в другие скриптабл обжекты и сериализовал каждую ноду как скриптабл обжект. >>528632хе хе. не-а. ECS это не набор таблиц и данных. это приблизительно равноценно тому что всё описываемое должно состоять из комбинируемых между собой struct. так что хуй а не полиморфизм. нету больше цепочки наследования "олигарх : гражданин : человек : пёс : существо" где на каждом этапе у тебя оно становится всё менее абстрактным. у тебя есть просто олигарх который как химера собран из кусков других существ. конечно же можно добиться какой-то формы абстракции, но можно охуеть делая это.
>>528658Это именно набор таблиц, всё описываемое состоит из набора структурок. Каждый тип компонентов по сути таблица, а сама Entity это primary key. В иных реализациях даже такого объекта как Entity нет - чистый цифровой ключ по которому можно спросить систему "эй ты, объект 1337, ты кто?" и тот тебе выложит всё что в нём есть. Или давать запросы "дай мне все ключи к объектам содержащим такие и такие записи". Эдакий специфический упрощённый SQL.
>>528644>А есть LINQ для ECS?Так вроде LINQ должен и так работать. У тебя жи сущности и компоненты в массиве, вот и хуячь LINQ запросы к массиву. Или в системе опиши, она по сути сама является запросом.>>528658>добиться какой-то формы абстракции, но можно охуетьБез абстракций как то хуево. Хз, может не привычноА как быть со связями между компонентами? У меня классы имеют кучу ссылок на другие классы. В компонентах так можно или не тру?
>>528706>А как быть со связями между компонентами?Слабое место. Типично фигачат id другого компонента и всё. Сам id типично состоит из индекса и поколения, засунутых в 32/64 бита. Это кстати решает проблему уведомить всех кого надо про смерть объекта чтобы ссылки лишние не висели и проблему мёртвых ссылок - по такому id ты всегда можешь сказать что объект уже умер.
>>528706>Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity Может ли энтитас работать с годотом?
>>528747>>Entitas is a super fast Entity Component System (ECS)>классы для компонентов>super fastсмешно
Юзаю Юнити с 2014@до сих пор не пойму, как блядь работает местный snap to gridОф.доки читал, очень уж скудно. Может кто пояснит, ибо заебался уже с не-модульными левелами.* имею ввиду 3д
Почони, будьте любезны, подскажите, как сгладить управление камерой на телефонах? Ставлю сенсу камере низко- слишком медленно двигается, выше - перескакиваю место, куда пользователь хотел бы прицелиться. Золотая середина отсутствует.
>>528770Управление камерой не на мыше это огромная область. tl;dr: нужно определять куда игрок скорее всего хочет смотреть и помогать ему. Например в шутане камера оказавшись на враге должна притормаживать в ожидании что игрок хочет прицелиться на врага. С кучей условий - типа если игрок вертит камеру быстро то он скорее всего не хочет прицелиться, а если стал притормаживать то скорее всего хочет.
>>528775Спасибо за пояснение, озадачил прям. А не знаешь, есть ли в ассетсторе ассет с реализацией? Хочется взглянуть на пример.
>>528778Таких нет. Это довольно узкоспецифическая область, в интернете есть очень мало упоминаний как работает управление камерой в консольных шутерах - но это очень сложные системы. Большинство вообще не в курсе их существования. Вот отсюда можно начать: http://drstrangevolt.blogspot.com/2012/12/aim-acceleration-in-console-shooters-part1.html и адаптировать для мабилок.
>>528833Как будто побывал в масонской ложе, спасибо за просвещение. Думаю, обойдусь рэйкастом: луч попадает на enemy-> player фиксируется на нём, знания пока слабоваты.
Если я в блендер сделаю модель и навешаю на нее всякие текстурки, прозрачность и т.д. это сохранится в юнити или нужно будет заново в юнити навешать текстуры и эффекты?
Узнал про практическую пользу от ECS. В будущем движке от Photon - "QUANTUM" симуляция работает на ECS. Движок детерминирован. По сети отправляется лишь ввод от игрока. Так что имеет смысл уже сейчас начать учиться мыслить в парадигме ECS для разработки сетевых игр следующего поколения.https://www.photonengine.com/en-US/Quantum
Юняч, помогай.Есть энное количество неписей. Они должны преследовать игрока, при этом не сталкиваясь друг с другом.И всё бы было хорошо, если бы эти ребята жили в 3D. Я бы прикрутил навмеш и в хуй бы не дул, как говорится.Но как это реализовать в 2D?Можно, конечно, просто заставить их бампаться друг об друга, но не хотелось бы использовать динамику там, где она не нужна. Да и выглядит сие топорно.
Как правильно экспортировать майя анимации отдельно от модели в юньку?Если я импортирую модель с анимацией то все ок, но если пытаюсь сделать отдельно то ничего не работает.В майе я сначала экспортирую модель без анимаций(скрин 1). Потом открываю файл с анимациями, делаю бейк, удаляю все меши, оставляя только кости(скрин 2). Экспортирую в fbx с анимацией. В юньке создаю аватар из fbx с моделькой. Назначаю рандомную кость для rootNode.(скрин 3). А в fbx с анимацией ставлю этот аватар во вкладке rig.Модельку немного пидорасит по оси y в процессе анимации, но анимация не та, некоторые анимации вообще польностью не работают.Что я делаю не так?Может ли это быть из за немного другой иерархии(скрин 2)?
Вбросьте скрипт. Единственный с адекватным прицеливанием для смартфонов, но 15к$ требовать за 600кб - это нахальство, желаю автору рака. https://assetstore.unity.com/packages/templates/mfpc-mobile-first-person-controller-54270
>>529146>https://assetstore.unity.com/packages/templates/mfpc-mobile-first-person-controller-54270Где ты там прицеливание нашёл?
>>529147Оно не автоматическое же, а работа с сенсором настроена чики-пуки. Стандартное говно ерзает, как припадочное.
>>529146>15к$ Ты даун.>измеряет качество кода в килобайтахВдвойне даун.>жмотится заплатить жалких 15 баксов за готовое решение и требует чтобы все сделали за него и бесплатноТрижды даун. >не может написать контроллер персонажаПросто ultimate имбецил.Даже ссать на тебя зашкварно, просто съеби под шконарь и не пиши сюда больше.
>>529166А ты можешь? Ну напиши, раз герой такой, и запости со фри доступом. Я вот могу, но мне лень. Я ему 5 баксов и так занёс, он, наверное, от счастья кончил в очко твоей мамаши, быдло агрессивное.
>>529166>15к$Там 15к, я понимаю что ты мамкин миллионер и уже ослеп от элитного стекломоя, но даже я, пробежав пост по диагонали заметил.Мимо
>>529170>А ты можешь? Ну напиши, раз герой такой, и запости со фри доступом. Я вот могу, но мне лень. Я ему 5 баксов и так занёс, он, наверное, от счастья кончил в очко твоей мамаши, быдло агрессивное. - раздался пронзительный голос со стороны параши.Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
>>529176Окей, по ссылке я ясен хуй не переходил, беру свои слова обратно и ссу на того нищука с реквестом. 15 баксов это действительно немного.
Может кто подскажет? Как сделать так чтобы текст на экран выводился побуквенно(с анимацией), весь гугл прочекал ничего толком не нашел.
>>529196Это модельки из вахи. Просто мне нравится изучать и экспериментировать с красивыми модельками, а не бездушными кубами.Пока в планах пильнуть часть того же dow это RTS если вдруг не знаешь с некоторыми фишечками из другого кириллоподелия Zero-K тоже RTS.Почему работает анимация я так и не разобрался, так что бампаю реквест двачеэкспертов.пост #159 писал какой-то мимохуй
>>529215У перегонных редко бывает форма правильная. Еще и эмиссия повышенная. Смешение кровей до добра не доводит.
Ребят, чёт я мучаюсь с колайдером сильно, может кто поможет. Кароч я не хотел возится с кубическими колайдерами и решил пользоватся меш колайдером, и у него есть конвекс и нормальный. Но нормальный не работает с другими меш колайдерами. Но мне очень понравилась его детализация, может кто знает как добиться такого же детального колайдера но чтобы он работал везде?
Как скриптом сгенерировать mesh с множеством разных материалов? Как у отдельного triangle поменять материал?
>>529236> не работаетБастует? Или ты жалуешься, что isTrigger задизейблен, когда convex выключен?> очень понравилась его детализацияТолько её врядли оценят пользователи. Игра на вкладке Scene это не совсем игра, никому кроме тебя (ошибаюсь?) крутой коллайдер не нужен. Еще учти, что динамическое инстанцирование скейленного меха с меш-коллайдером (конвексным) стоит до 200мс в погожий день.
Обьесните долбоебу - нахуя вкрячивают этот нейстед префабс. Когда он существовал отдельно - хорошо, я его не трогал, такая-же лютая хуета от сторонних разрабов, как и ECSюнитеки любят прикупать себе конкретных разрабов, чтоб решали вопросы всякие, типа вашего Киеджиры, что рендерпайплайн и hdrp за них нахуячил в одно лицо, чувака, что эн-гую псиал, сейчас взялись за этих вотТолько у меня с конкретным нейстед префабсом был очень плохой опыт общения, когда пришел проект практически доделаный кем-то очень криворуким на допилить. И нейстед префабс доставлял мне адскую жопную боль, ибо при каждом маломальски изменении единообразного префаба, на которых и строилась архитектура - ебашил мне сохранение всех дочек внутренних, без моей на то воли. Может обьясните - зачем он есть и в чем прелесть. Видосики от юнитеков и авторов ни о чем прикладном не говорят, а на форуме только темы касательно прикладного пользования без указания причины - нахуя это нужно
>>529236Тебе юнитеки пишут прямым текстов - нихуя коллайдер не риджидбадя, пока он не конвексный. по-моему самая первая пятая юнька начала на это ругаться. Онли конвекс. И возможность в свежих версиях этот конвекс покрутить ползунки. Бай зе вей - количество поликов на один меш увеличится с 256 на нормальное в ближайших обновлениях. Эдакий симплигон встроенный будет именно для конвексов
>>529263Ну смотри, допустим у тебя есть несколько префабов неписей, ну там бармен, уборщица, пьяница и т.д. И есть у тебя сотня префабов домов разных, и в каждом эти неписи в разных конфигурациях. И если ты захочешь поменять что-то в одном из неписей, то без нестед префабов тебе придётся менять это в каждом из сотни домов. Так что нестед префабы нужны, чтобы избежать подобной ебли.
>>529263Ты говоришь про нейстиед прифабес из ассетстора? Там пиздец кривые реализации. Это говно из говна в говне. А реализация от Юнитеков просто божественная.
>>529271>изменил параметр в одном нестеб префабе>рекурсивно изменилось 99% проектавложенные префабы - это зло. вложенные префабы - это как наследование. все знают что наследование - плохо.
>>529273Я сталкнулся с подобным, не имея понимания - каким образом наследуются компоненты на обьектах и дочках.>>529298>>529298В чем проблема? пробежался по рекурсии, используя для поиска имена, накинул с ее помощью на каджую компонент, который поменяет любое тебе нужное свойство на новое. Изи 5 минут
>>529267Нахуя подобные вещи делать вообще в окне иерархии. Для подобной нели в любом же случае БД со свойствами, или для убогих - скриптбл обджекты. хуяк-хуяк, сериализовали - збс.Нужен немного другой пример, ибо видя задачу вспоминаю решение или костыль. Можно больше абстракции
>>529263>Может обьясните - зачем он есть и в чем прелесть. Видосики от юнитеков и авторов ни о чем прикладном не говорят, а на форуме только темы касательно прикладного пользования без указания причины - нахуя это нужно Может дело в том что ты недоразвитый долбоёб с однопотоком головного мозга в 2к18, у которого игры не тормозят только на топ пеках и топ-смартфонах и ты не можешь учиться в соверменные и актуальные парадигмы и приёмы?
>>529310Потому что ты дебич-шизик не могущий ни во что кроме MonoBehaviour и тормоза на >50 объектов+одноядро долбится в соточку. То тебе ECS не нравится, то тебе Job System не нравится. А долбиться в соточку тебе нравится.
>>529311И че ты доебался? Про многопоточность я топлю еще с ранних беток изучить и побаловаться с этим делом успел и заценил и уже юзаю, благо было время между проектами, и удалось прикрутить к ml-agent, где потоки пиздец как нужны. Ебать ты дикий... Я про конкретный нейстед префабс, который не имеет к сабжу обсуждаемого отношения
>>529314Спасибо. Вот ты адекват и все разложил. закрыл глаза, представил Задорнова, произносящего в адрес дезигнеров "инсектором! ну-ту-пы-ые!". Даже попустило
>>529263Потому что можно создать префаб человека (с анимашками), можно создать префаб винтовки (умеет стрелять) - и сделать префаб человек-с-винтовкой. Так же можно создать префаб гранатомета. И создать префаб чеовек-с-гранатометом. При изменении человека будут меняться оба солдата. И еще засунуть 10 prefab variant'ов "ракетницы" рядом с префабов машины и получить префаб "ракетная установка". При изменении гранатомета будет изменен и гранатомет, и ракетница, и ракетная установка.
>>529307Напомни, через сколько месяцев после релиза у "this is the police" появилась песочница? Часто из кодом создаешь анимации (не крутишь их, а именно создаешь)?
>>529321Яебу кагда когда она вышла, что ты подразумеваешь под песочницей, и нахуя там анимации из кода. Братиш, ты говоришь какие-то странные тезисы, которые не все обязаны знать. Если знаешь что и как - тупо пиши, а не задавай странные вопросы, которые никому ничего не объясняют, а только выставляют тебя странным типом с манией величия
>>529328Дада, никогда не забуду, как пехотинцы в старкрафте шли в штыковую, когда патроны кончались. А, нет, это ты обосрался.
>>529354Другие аргументы против твоего обсера? Все в курсе, что бесконечные, там и штыковую я тоже сам придумал
>>529255Я жалуюсь что два серх детальных меша друг с другом не работают, когда очень хочется. Ух, 200 мс это больно. Так что получается, вы все делаете конструкцию из кубов вместо меша? Как вы делаете свои детальные колайдеры? Или вы их не делаете? Алсо можно ли использовать istrigger как колайдер? Если да то можно пример кода пожалуйста? не кричите чтобы я загуглил, я прост в гугле на эту тему запутался
>>528670тебе квадратно-гнездовой способ мышления не мешает? >>529136если экспортируешь свою хуйню как гуманойда, то юнити знает какая кость куда. если нет то разумеется имена и иерархия должна быть такой-же, откуда знать иначе где какая кость то?>>529366не делай детальные коллайдеры. вообще че ты там делаешь? творить хуйню вроде "а давайте сделаем целый уровень одним меш коллайдером и чтобы он двигался ещё" не рекомендуется. меш коллайдеры вообще физические движки пережевывают не очень быстро.чтобы ловить коллизии с коллайдером есть специально отдельный код.
>>529366Конвекс или его подобие из тридередактора. Деградировавшая моделька отвечающая за физику там-же где лежит основнаяТы в майнкрафт переиграл
>>529366Я делаю так, чтобы модельки падали и ударялось прикольно, чтобы глаз не резало. Очень заебывает 10-30 кубов на модельке настраивать. Есть какой-то плагин, который автоматом кубы генерит, но со сложными фигурами (пикап с пустым задним отсеком) он справляется только очень большим количеством кубов (а 100500 кубов, я уверен, выльются опять же в потерянные кадры).
>>529383Почему кубы то? Кстати у кубов коллайдер очень странный и неправильно отрабатывает физику. Была задача сделать хват предмета физикой через джоинты и форсы (для виара) в итоге все отрабатывает правильно, включая конвексы, а кубы распидорашивает. Мешколлайдер такого-же куба даже без сабдивайда сетки дает нормальный результат. Оказалось, что у них вертексы физ. взаимодействия однонаправленные(наружу) а у всего остального - нет, и если мы что-то с большим усилием погружжаем в куб - он ебется, а остальные честно отрабатывают. Юнитеки в курсе, но зачем они так сделали - не понятно
>>529387 Интересно. В плане перехвата пуль и падения объекта у меня с кубами все норм. А с кубами в жоинтах, гришь, проблемы возникают? Спасибо, буду знать.
>>529389Они там есть в принципе. Усилие приводящее к проходу сквозь коллизию вызывает не желание обьекта под собственной массой форснуться из куба в ближайший вектор до поверхности, а ждать пока следующие вертексы физики начнут взаимодействие друг с другом. Можешь провести эксперимент и захерачить предмет в куб юнитевский и заценить, покадрово - куда его херачит. и так-же сделать с кубом-мешем. Разница огромная
>>529391>>529383Понял, то есть надо пользоватся конвексами, а там где надо что то точное так строить пирамиду из кубов? Кстати можешь дать название такого бесплатного строителя?
>>529305> В чем проблема? Вот в этом:> пробежался по рекурсии, используя для поиска имена, накинул с ее помощью на каджую компонент, который поменяет любое тебе нужное свойство на новое
>>529400Интеграция фич в юнитях>Сначала юнитеки купили NGUI>Потом юнитеки купили keijiro>Потом купили ECS>Купили Nested Prefabs>TextMeshProА еще они купили пробилдер и кинули в народ. Пользуйся! https://blogs.unity3d.com/ru/2018/02/15/probuilder-joins-unity-offering-integrated-in-editor-advanced-level-design/
Памагити пожалуйста. Сделал кастомный эдитор суть которого в ВебМрелейтед. Проблема в том что при изменении префаба изменяются те его экземпляры, у которых spriteIndex помечен как неизмененный. Как можно этого избежать? Может, как-то пометить эту переменную как измененную?Алсо, в новых Nested Префабах это будет правильно работать? Не спешу обновляться, но если это надо будет сделать для великого дела изменения тумбочек, то я готов.
>>529455В ящике слева ты задал значение - при изменении префаба юнити... эм... изменило значение префаба. А переопределения остались переопределениями. Ну, в этом суть префабов. Скажем так: в префабе дефолтные значения, на сцене интересные значения.
>>529464Имеется ввиду работа в инспекторе - раскидал, забыл про брейк префаб инстанс и... пизда, че. И да, есть варик завести скриптбл обджект, где хранятся как раз вот эти состояния по типам, и играться с ними, через обращение из твоего скрипта экзекьютеблом в едиторе
>>529470Никакой "брейк префаб инстанс", как правило, не нужен, т.к. тогда эффективность префабов обнуляется. Есть вариант, задавать "интересное" значение равным "дефолтовому". Но так себе вариант - от "брейк префаб инстанс" отличается несильно. Вариант юзать как можно больше prefab variant'ов - кусок говна, т.к. у тебя удобный ползунок для смены спрайтов. Ну, млин, получается что нужно аккуратненько и лишний раз префаб не менять. Можешь для страховки использовать правило "использовать на сценах только prefab variant'ы". Эх, нету в мире совершенства - если хочешь, я могу убить тебя, чтобы ты не мучался.
>>529481>Эх, нету в мире совершенства - если хочешь, я могу убить тебя, чтобы ты не мучался. Лучше поставить ГОДОТ. Там полноценный инстансинг префабов (сцен), включая нестед любого уровня вложенности.
>>529485Ты даже не смог понять суть проблемы, но выпрыгиваешь: ПОСТАВЬ ГОДОТ ПОСТАВЬ ЕГО ПОЛНОСТЬЮ - ты не черт из табакерки, ты не очень разумный школьник.
>>529481>>529470Если я двигаю ползунок с дефолтного значения, а потом возвращаю его на прежнее то переменная становится "интересной" и изменение префаба её не затрагивает, хотя по факту значение остается таким же. Я плохо представляю как юнити работает под капотом, поэтому пока не знаю как это имитировать в коде. Попробовал корутином переставлять значение на -1 и обратно - не помогло.
>>529489>Ты даже не смог понять суть проблемыТы тоже не смог понять суть проблемы. Инстансы сцен годота в отличие от префабов на вебм, могут переопределять общие значения переменных для себя. В отличие от того, что показано на вебм. Переопределяют значения любых параметров, установленных в сцене-префабе и это переопределение не влияет на другие инстансы. Но изменение параметра в корневой сцене всё еще затрагивает инстансы, если этот параметр не переопределен. Юнити сосёт не разгибаясь у опенсорца.
Оказывается, есть способ изменить название сериализуемого поля, не потеряв при этом его значения. Для этого нужно использовать атрибут, а потом убрать его кек:[FormerlySerializedAs("old name")]
>>529500https://docs.unity3d.com/ScriptReference/PrefabUtility.DisconnectPrefabInstance.htmlМожешь еще посмотреть другие функции в PrefabUtility, мб пригодятся
>>529522А чего обычно добиваются с его помощью? На видосе видно, какой ебанутый эффеки у нас происходит при сохранении префаба
>>529502Инстансы могут переопределять общие значения переменных для себя - это показано на вебм. Изменение параметра в корневой сцене всё еще затрагивает инстансы, если этот параметр не переопределен - это тоже есть. В юньке инстанция префаба может жить не только на сцене, то и внутри другого префаба (насколько я тебя понял, годот так тоже умеет). Еще в юньке есть prefab variant'ы и save/load настроек компонента, чего нет в годоте. Использовать менее функциональный инструмент не очень идея. Про суть проблемы: нашему строителю тумбочек это не нужно.
>>529595Не обязательно. На гитхабе давненько видел репозиторий, где человек клепает кастомные шкурки для редактора. Хотя это на совсем любителя тема
Короче делаю вот это https://www.youtube.com/watch?v=q-r1YJzj28MВ окне игры как по умолчанию один спрайт накладывается на другой, но в окне сцены всё работает как на видео. Чяднт?
>>529601Тебе же все видео твердят про сортинг груп. https://docs.unity3d.com/Manual/SortingGroup.html Если с чем-то сталкиваешься - сразу лезь в документацию, а если там нет, гугли на юнитиансверс, пока их не полюбишьУмничка, что изучаешь по оф. туториалам, а не говнокодерам с ютюба(есть пара хороших ребят, но это только те, на кого сами юнитеки подписаны). Все бы так начинали...
>>529671Так суть в том, что в сцене всё работает нормально, но в игре не работает вообще, пикрелейтед. Сортинг групы само собой проставил. Да и раньше я уже такое делал тащемта, всё было ок.
Есть задачка запилить клиент-серверную игру не используя unity-network. Что посоветуете попроще? Photon?
Почему при активном компоненте rb2d нельзя поменять order in layer? На обекте висит 2 триггера и 1 коллайдер.
>>530025Просто демка. Только надо считать все на сервере, от клиента только ввод брать (и графон показывать)
>>530032Пиши тогда на чем знаешь - джанго, нода, руби, аспнеткор. Не понимаю, что значит в твоем понимании - что есть "попроще"
>>530041Движок на шарпе... Ну пиздец теперь. Ебись если хочешь c asp.net core, но есть вероятность что быстро без навыков серверного охуеешь. Но если думаешь, что знаешь шарп - флаг тебе в руки открою тебе тайну, шарп юнитевые разработчики не знают и имеют лишь общие и ограниченные представления о нем
>>530032Либо Lidgren.Network, либо Photon Server, если тебе нужна готовая система с мастер сервером, который запускает инстанцы и держит связь с другими серверами.
>>530076ECS - сила, ООП - могила. Буквально неделю назад я копротивлялся за ООП, но тут почитал пару статей и ПРОЗРЕЛ!
>>530076Вот здесь уже рассказывается о ECS и других фичах от юнити разработчикаhttps://youtu.be/GFb84n9gz94?t=4h31m37s
>>530096> смириться с тем, что многое недоступно> ради выигрыша в 0,05 микросекундОлоло! ЕЦСблядей ебут уже в открытую.
>>530097Они, кстати, рассказали, что это пока низкоуровневая реализация. Потом они будут пилить высокоуровневую, которая будет такой же удобной, как обычные монобехавиоры.ЕУЧ сосёт с его отсталой архитектурой из 90х. А больше движков и нет.
>>530094>Он так говорит, будто ИСИЕС это будущее разработки, всё будет на ИСИЕС. Ага, конечно. Это уже настоящее для всех крупных контор, которые прошли путь от ООП головного мозга и XRay-engine середины 2000х подобных движков, вдоволь наелись говна с ООП и консолями прошлого поколения, поняли что без Data-oriented design в AAA никуда и прикрутили его к ECS. Уже скоро как 10 лет основная архитектура всех современных крутых игорь с графеном - ECS.Для манявкатывальщиков-оопдебилов из галер это, безусловно, будущее. Поэтому у них в лучшем случае пупки получаются, в которых на топ пекарне нужно на минималочках играть шоб нитармазило.
>>530098Крайенджин на ecs работает(которую год как знатно обновили). Даже первый сурс на нем был.Переучиваться прийдется всем и походу это реально бужет стандатом. Но скорее всего это будет плавно и в течении минимум года(как когда делали переход только на шарп, убирая js и boo
>>530244Никогда этот ограниченный процедурный понос не будет стандартом. Его область применения - это оптимизация алгоритмов. Все.
>>530251Есть твои вскукареки, а есть слова разработчиков из юнити. Это станет новым стандартом. Ещё они встроят екс в их новую сеть.
То, что в unity - это вообще ограниченная версия ECS с которой ничего нельзя сделать. Там можно только сделать выборку по типу компонентов и все. Нахуй это нужно, если можно объявить массивы в MonoBehaviour и написать обычный процедурный код без ебли
>>530252>а есть слова разработчиков из юнитиЗнатные пиздаболы. Их слова надо на 10 делить.Будет очередная заброшенная технология. Лет через 5 анонсирует новый ECS опять, если к этому времени юнити не издохнет.
Энтитидауны Школьники ОРХИТЕКТУРЩИКИ захватили тред, пиздец, я думал хуже в юнититредах уже не будет.
>>530254Юнитеки - ребята пиздатые и вообще ниразу не пиздоболы. Ричителла - неебаться управленец, и для роста акций продукт, что они реализуют обрастает фичами такого толка, что разрабы готовы переходить с других движков, видя удобство сейчас и на перспективу. А это привязывает кучу народа к другим сервисам экосистемы - унеты всякие и юнитиэдс. Почему, думаешь, скупают этих всяких самородков, которые делали топчик ассеты для стора и keijiro?
>>530251Так и про реактивное программирование говорили и про функциональный подход, и MVC, когда он появился(не про геймдев речь, а в целом)
>>530258Люди постигшие дзен геймдева понимают, что любую игру можно сдделать используя только передачу сообщений и behaviour tree
Я могу как-то реализовать чтобы при клике на объекте в иерархии выделялся не сам объект, а все его дочерние объекты с определенным компонентам на них?
>>530318не... зато можешь пробежаться по дочерним обьектам и заполнить ими массив с нужным тебе компонентом
>>530292Что ты делал прошлым летом? Где ты был год назад? Хотя, я бы и сейчас почитал толковых статей, чтобы колхозить поменьше.
>>530340Как?>>530327Это я знаю, долго и неудобно, когда я делаю какой-то эффект удобнее делать particleSystem дочерними элементами пустого объекта. И хотелось бы выделять их все при клике на пустой объект. Делать вложенными сами партикл системc неудобно, если хочешь каждую по отдельности смотреть.Я так понимаю что могу сделать кастомный инспектор с кнопкой и при клике добавлять нужные мне объекты в Selection. Но мне интересно могу ли я как-то перехватывать выделение нужного объекта и вместо него добавлять в Selection то, что мне нужно?
А я могу в решение юнити (*.sln) добавить второй проект, причем второй - не на юнити а windows form?Прост я хочу чтобы эти два проекта использовали общие классы, а с dll пердолиться не хочу.
>>530369Добавил, и на уровне ms vs код видит классы из другого проекта. А юнька чет не хочет видеть. Она только из Plugins видит связи?
>>530286>вообще ниразу не пиздоболы.Где их Server Library, чтобы делать сервера на UNET без необходимости запускать Юнити, которую обещали в районе 5.3? Нету. Они обещали расширять свою серверную библиотеку? Обещали. Где она? Нету, они кинули всех и пилят какую то новую пиздецому которую точно так же забросят. Потому пиздаболы.Ах да, про баги в критических элементах вроде ломающихся через версию канвасы находящиеся внутри других канвасах (критично для производительного UI!) я вообще молчу. А ещё у них был фундаментальный баг когда запечённый и сохранённый в проекте свет на одной платформе пропадал при сборке на другой - они вообще ответили по багрепорту с минимальным примером где то через 4 месяца. Не просто пиздаболы, а пиздаболы-говноделы.
>>530368Ты можешь рекурсией или просто по нужными тебе компонентам пробежаться файндом и экзекьют ин эдитормод заинстансить единожды нужный тебе префаб при указанном парэнте. Изи же
>>530410Кароч я поебался, теперь у меня 2 солюшена и 3 проекта: Юнити, Сервер на виндовс форм и Common который билдит длл с описанием общий классов. Все правильно делаю?
>>530452Врядли ты читал мой пост. Я спрашивал можно ли как-то перехватить клик на объекте в эдиторе. Мне не нужно ничего инстантить.
Котоны, а как можно сделать, чтоб визуализация текста, например Text mesh pro, управлялся с помощью партикл систем? Можно сделать материал, чтоб он использовал текст как текстуру?
>>530633Он у них отстаёт от последнего апдейта (или что-то вроде). Например, туплей нет, надо либо самому их делать, либо выкручиваться, если приспичило тупли использовать. Несущественные мелочи.
>>530752Вот то, что я хотел. Может есть более оптимальный вариант реализации сего?https://www.youtube.com/watch?v=E2AA-EgjbIw
>>530757Меня смущает вторая камера, потому что-то я клепаю своё ДЕТИЩЕ на андроид, и когда-то начитался от ахуевших гуру сеньёров юнити, что якобы использовать вторую камеру приравнивается к смертному греху и в приличном обществе за такое бьют в ебало. Вот я и комплексую по этому поводу. Хотя, конечно, я всё уже затестил и пока стабильные 60 фпс на телефоне.
>>530759Вторая камера вроде бы юзается для создания минимапов, т.е. показывается область сверху, на врага вешается префаб красный шарик, на игрока синий шарик, потом после хитрых манипуляций со слоями сцены, разрешаем второй камере рендерить только слои с шариками и общим лэйаутом уровня - чтобы сцена не рендерилась два раза целиком. А основной камере запрещаем рендерить слои с шариками и лэйаутом, как-то так.
Сделал я отсылку данных с сервера на клиент (прост сериализую карту и шлю)Но как мне слать команды с клиента на сервер? В буквально текстовом виде как то не айс "отправь этот юнит туда то". Завести класс Command или как принято?
>>530846>Но как мне слать команды с клиента на сервер? В буквально текстовом виде как то не айс "отправь этот юнит туда то". Придумай протокол@пердоль.Вот пример:https://bitbucket.org/l2jserver/l2j_server/src/0ac4798f7ff255722115defef24b73e2d5522765/src/main/java/com/l2jserver/gameserver/network/clientpackets/?at=develop
Придумываю архитектуру для карточной игры. И кажется что ECS подходит для этого идеально.Простите меня, ООП-братушки. Кажется я перехожу на темную сторону силы!
>>531253>Какой FPS ассет посоветуете?ЕБЕТ ЭТО ЧТОЛИ??? СУКА БЛЯТЬ ВОТ ЗА ТАКИЕ ВОПРОСЫ У МЕНЯ УБИВАЮТ В ТРЕДЕ НАХУЙ!
>>531282Нет. Просто в картах удобнее сделать просто данные, чем городить поведения для каждого эффекта. По крайней мере мне так показалось.
>>531338Я бы сделал визуалку отдельно, логику - отдельно, сеть - отдельно.Т.е. игрок делает ввод данных, возникает событие, все кому надо на него подписались и отрабатывают. Логика про существования визуалки даже не знает. C# события. Корутины разве что для анимации какой.
>>531339И именно поэтому визуалку никак в ХС не пропустить и не ускорить, хотя всем уже сколько лет хочется. Визуалке и логике нужно друг об дружке знать, все потуги разделить их есть ошибка - в конце концов ввод игрока зависит от визуалки, он не общается с логикой напрямую. Буффер команд надо делать как в файтингах. И кверю с первый входит первый выходит. Вызываешь начало хода одного игрока, апдейтятся статы через корутину, в которой вейт пока переменная конца анимаций не станет тру, в конце корутины вызывается корутина с самим ходом игрока, в которой вейтится нажатие конца хода. Когда нажимается, вызывается начало хода другого игрока.
>>531250ECS - это один из паттернов ООП, назывался композицией до того, как ньюфаги придумали ему новое модное базз-имя. Так что никуда ты не переходишь, братушка.
>>531340>ХСЩо се теке?>>531340>Вызываешь начало хода одного игрока, апдейтятся статы через корутинуЧет звучит плохо. Это ты УСЫ изобразил?>>531340>Визуалке и логике нужно друг об дружке знатьНиет. Визуалку геймдизайнер сломает, логика вообще на удаленные сервера в гонконг уедет. Для годного дизайна - надо разделять. Попытки оптимизировать перформанс таким образом - смешны. особенно когда игры нет. И внутри логики и визуалки надо все разделять.
>>531340То бишь так сделать:Логика эффекта карт, которая лежит в буффере и которая связана с визуалкой, чтобы не ебаться с ускорением/пропуском ходов и т.п.Логика добавления эффекта карты в буффер>>531345>логика вообще на удаленные сервера в гонконг уедетНахуя? Клиент сам со всем справится. Это, блядь, карточная игра, там нехуй считать. Пересылать только действия другого игрока. >оптимизировать перформансЭто не оптимизация, дорогой, это такая архитектура, чтобы волосы на голове потом не рвать, когда придётся баги решать.
>>531347>такая архитектураНазывается вермишель. Захочешь потом другую игру делать - готовый код из вермишели не выдрать, будешь всю хуйню сначала писать. Зато писать быстро научишься, тоже норм.
>>531348>Захочешь потом другую игру делать - готовый код из вермишели не выдрать, будешь всю хуйню сначала писать. Чивоплять.Что проще распутывать - раздельные логику и графон, т.е. по сути две цепочки действий, которые обрабатываются параллельно, или же единственную связанную цепочку действий, где логика нового действия не начинается, пока не кончится графон старого действия?Какая ещё вермишель из одной цепочки, когда альтернатива - две цепочки, которые никак не взаимодействуют и друг друга не знают, из-за чего сотни графических багов и невозможность сделать ход, если враг забафферил слишком дохуя графония?
>>531348>Захочешь потом другую игру делать - готовый код из вермишели не выдрать, будешь всю хуйню сначала писать. Что значит "не выдрать" вообще? У меня такая цепочка вместо разделения логики и графона. Ты думаешь я что, для каждой абилки программно графон и логику прописываю? Нихуя вообще, у меня поддержка моддерства, всё в скриптах во внешних файлах прописано. Очевидно, что это НЕ вермишель, если возможно в такую систему вписать новую абилку с новым скриптом и новым графонием просто из текстовика.
>>531328Было бы круто, если бы я играл в карточные игры и знал, о чем говорю.Вот есть ход. Ход это игрока, или ход ИИ, или ход игрока-за-сеткой: без разницы - делаем Ходильщика, унаследованного от Unit(точнее, нужен public ActionReceiver getActionReceiver, но с ним писанины кратно больше). Список ходильщиков держим в PartyController и итерируем, пока у одного из ходильщиков не случился .isPartyWinner.У ходильщика случился ход. Он может: кинуть карту на лоток, нажать спец. действие (-3 всем роботам противника), нажать конец хода сделать что-нибудь. Из синглтона partyController вызываем у tekuwiyHodilwik.nextAction(this) (если вернулся false - делаем this.endTurn()).Внутри .nextAction решили, что нужно кастануть "Уебать всех роботов врага" - дергаем myPartyController.castSpell(actions). Каждый Action должен уметь понимать кого можно трогать (FilterRule_ByRase : FilterRule ... public List<FilterRule> canTouch) и кого трогать не стоит (FilterRule_ByOwner : FilterRule ... public List<FilterRule> refuseTouch). Массив юнитов не держим. Держим массив плейсхолдеров: Placeholder_CardOnDesk, Placeholder_CardInPacket, Placeholder_Hodilshik, ... Бегаем по плейсхолдерам. Placeholder вернул true из .canReceiveAction(action): итерируемя по Unit'ам из .getUnitsForAction(action). Например, нам вернули магический-щит-над-орком и самого орка (оба унаследованы от Unit, а точнее имеют getActionReceiver). units[0].runAction(action) сделает action.damagePoints-=10, а units[1].runAction(action) вернет false. И тут пора бы еще раз дернуть .nextAction, но...Но у нас есть анимашки. Точнее, для игры они нужны, а для каких-нибудь юнит-тестов и просчета баланса визуальная часть не нужна. У ActionReceiver создаем public Visualizer visualizer и public GameObject visualizerAnimationLivesHere. Собственно, если visualizer у нас не null'овый - инстанцируем некий префаб с некими анимашками и сохраняем его в visualizerAnimationLivesHere. Запускаем все итерации как сразу по получению команды, так и по Update - покуда кто-то (из ActionReceiver'ов) имеет visualizerAnimationLivesHere!=null делаем return, если null у всех - считаем действие выполненным.Идем на следующий .nextAction. Решили выкинуть карту. Тоже экнш, применяется к первому-не-пустому Placeholder_CardOnDesk, но с проверкой на .blockAction(action) (и там тоже нужен ActionReceiver+Visualizer, который покажет: "Нельзя использовать пиратов и английскую королеву одновременно"). Положили карту на стол со всеми теми же visualizerAnimationLivesHere..nextAction вернул-таки false. Делаем конец хода. По-одному берем каждый плейсхолдер из Placeholder_CardOnDesk, Placeholder_Hodilshik, дергаем у него .getEnemySlotForAttack (если занятого вражьего Placeholder_CardOnDesk нету, то возвращаем вражий Placeholder_Hodilshik; да, конечно, тут логика потяжелее, но я уже заебался печатать), берем .getUnit (если кудаАтаковать и когоМогуАтаковать связаны - ну блядь делаем общий метод, усложняем логику), делаем ourDearUnit.atack(toSlot, toUnit) (Action+ActionReceiver?+ActionVisualizer+Update). Когда все атаки проитерированы - переключаем ходильщика.
>>531370Чтобы не было недопонимания. От MonoBehavior в таком раскладе вообще никто не унаследован. Как нарисовать карту-на-столе: 1. делаем у плейсхолдера список-карт-на-столе опциональный visualizer (разумеется, не ActionVisualier) который знает куда карты рисовать (задано мышкой в юнити) и знает какие карты рисовать из-за дабл-каплинга с плейсхолдером (да, блядь, прямо вот оба о друге знают, три программиста погибли, пассажиры в шоке).2. делаем у карты опциональный visualizer (опять же, не ActionVisualier и не CardsListOnDeskVisualizer), который нашу карту рисует. кол-во здоровья, кол-во урона, все иконки рисуем отдельными компонентами, которые знают о юните.
Антош, помоги пожалуйста, я тупой.Есть код: https://pastebin.com/YAhFsa1BinsectPrefabsArray - 3 элемента, последние 2 пустые, первый префаб.Если запустить все как есть, то все работает как ожидается: Спавнится объект раз в 3 секунды.Но если раскомментировать строчку 31 и закомментировать 32ю то начинается какая то хуйня, тогда у меня в первые 3 секунды спавнится 1 объект, во вторые 3 секунды спавнится 2 объекта, в третьи 3 секунды спавнится 5 и так по нарастающей. Из-за чего такое происходит? По задумке должен раз в 3 секунды создаваться объект с шансом 1/3.
>>531375.isTimeToSpawn ставится в false только если свезет с 1f/3f - цепочка Update > SpawnInsect > StartCoroutine отрабатывает чаще. Можешь SpawnCooldown выпилить и сделать void Update() {spawnEachSecondsTail -= Time.deltaTime;if (spawnEachSecondsTail<0f) {spawnEachSecondsTail = spawnEachSecond;SpawnInsect(); // в котором нет вызова SpawnCooldown - 1f/3f будет без сайд-эффектов}}
>>531340>И именно поэтому визуалку никак в ХС не пропустить и не ускорить, хотя всем уже сколько лет хочется.Не понял как разделение логики и визуала связано с невозможность пропустить анимации? По сути это получается что-то вроде MVC паттерна. Ввод игрока, анимации и их пропуск это тогда ответственность слоя представления. А логика просто рассылает SendMessage и обновляет состояние модели, которое триггерит сообщения, которые обрабатываются в визуальном слое.Все анимации просто добавляются, например, в буфер анимаций и проигрываются по очереди, и могут быть легко пропущены, т.к. модель данных уже давно изменена.Это скорее если все связано, то нужно ждать конца анимации, чтобы обновилось игровое состояние.>Буффер команд надо делать как в файтингах.Да, как то я не подумал про такое. Я сначала хотел все на одних сообщениях сделать. Но тут лучше сделать 2 абстракции: игровые эвенты и буфер команд. Тогда игровые эвенты генерирует команды и добавляют их в буфер, где они выполняются по очереди.
>>531375>По задумке должен раз в 3 секунды создаваться объект с шансом 1/3.Нипонил. Раз в три секунды создаётся по одному ненулевому объекту в массиве (каждый с шансом 1/3) так, что раз в три секунды может создаться случайное количество объектов в диапазоне от нуля до количества ненулевых объектов в массиве?
>>531375Апдейт каждый фрейм, а isSpawnЧто-тоТам буля поглощается лишь в 1/3 случаев, тогда как корутина, эту булю создающая, случается всегда. Вот и получаешь примерно так:первый фрейм выпадает 3 из 3, запускается кулдаунвторой фрейм 2 из 3, запускается кулдаунтретий фрейм 1 из 3, сжирается буля и создаётся инсект, запускается кулдаунЧерез время кулдауна первого фрейма буля становится тру, снова происходит то, что вышеВ следующий фрейм снова случается то же самоеИ третий фрейм снова, итого 5 раз выходит, что тебе в дебаглог кулдауна запись внесёт
>>531395Хм, такая проблема. Допустим, игрок нажимает кнопку конца хода. Отправляется сообщение. Одна система проверяет карты и находит карту с эффектом конца хода и добавляет в буфер команд. Последняя система добавляет команду окончания хода.Тогда в буфере такие команды:1. Выполнить эффект2. Конец хода.Но возможно такое, что во время выполнения эффекта будут созданы новые сообщения и новые команды (например, это эффект убей существо, будет убито существо с эффектом при смерти), и тогда они будут добавлены в буфер после конца хода.
>>531395Нужно организовать игровой цикл через ECS. Тогда архитектура будет простой и понятной.https://habr.com/company/pixonic/blog/413729/
>>531414Надо сделать буфер команд не очередью, а стеком. Тогда команда конца хода добавляется первой, а все последующие команды выполняются в порядке с последней добавленной по первую.Нет ли тут каких-то подводных камней?
>>531416>Нужно организовать игровой цикл через ECSНе понимаю. Как ты это себе представляешь?У меня тут событийная архитектура. Это отлично подходит для карточных игр. Системы это просто подписчики на события, которые выполняются в заданной последовательности.Я их называю системами, потому что они делают принципиально то же самое: фильтруют сущности (карты) по каким-то данным и выполняют код в зависимости от данных.
>>531418Делаю буфер в виде листа из контейнеров, в каждом из них в конце контейнер удаляется из листа и вызывается NextAction(), в самом NextAction() висит проверка, сколько элементов в листе осталось, если 0, то конец хода, иначе берётся следующий контейнер из листа
>>531507Давно слышал, что у них был html в планах. Они даже левый js+css+html движок на c# выкопали в какой-то помойке. Но забили, уж не знаю к счастью или нет.
А это мысль, нужно создать персонажа Петуха-Энтитуха, страдающего преждевременной кокоптимизацией. Чтобы он такой кокококококо внимательно в экран смотрит, задумчиво клювом водит, тут SSE-интринсик впендюрил, сразу радостное КУДАААААх , там кучу ECS лапши написал, такой получил +5 фпс и сидит довольный, кукарекает и тут такое оказывается, что он всё это время сидел в питушином углу, его блатные сокамерники уже три игры на объектах с наследованием написали и зашиппили, а разъяренный издатель в конце этой истории засовывает ему банку с абстрактной фабрикой в анус.
>>531250ECS для карточной игры? Ебануться... скоро для сапера многопоточность пилить начнут.мимо быдло геймдевер
>>531554Сапер на CUDA! Наконец-то ваша любимая игра рендерится 257 000 раз в секунду. Если Вы оставите куда-сапера включенным на сутки, по он отрендерится больше раз, чем обычный сапер смог бы отрендериться за всю Вашу жизнь!
>>531658Вы пробовали выключить и включить? Кеш ошибок - штука забористая. Когда юнька рисует белый экран и бастует - ребутай комп, как в 95м. Это правда.
Как правильно организовывать на этапе создания глубокое дерево графического интерфейса? Начал кое что тут делать и чем больше развилок тем сложнее все настраивать.
>>531658Я не вижу на твоих скринах "pobeda1 = ... ;" при этом юнька говорит тебе, что в переменной pobeda1 ничего нет. Ты что нас за идиотов тут держишь?
>>531691А ни что другое (в рантайме) не удаляет Win (или родителя)? И не зануляет pobeda1?ребутй-комп-кун
>>531716И как с этим бороться? Особенно если это мобильная игра фактически из одного интерфейса и состоящая.Проблема в том, что постоянно доступных кнопок много, на каждую нужно вешать закрытие всех любых уже открытых окон, на все окна нужно ставить булианы для запоминания их состояния, значения прогресса, это все в такую кашу превращается в которой я начинаю путаться.
>>531717>что постоянно доступных кнопок много, на каждую нужно вешать закрытие всех любых уже открытых оконМожно через события сделать. райзишь события - все кому надо его обрабатывают и закрываются. А вообще по апрхитектуру почитай, тут например https://habr.com/post/276593/
>>531718Вектор исследования понятен, попытаемся вникнут практически.> райзишь события - все кому надо его обрабатывают и закрываются.А вот тут можно поподробнее?
>>531719Ты не вызываешь гуишные методы напрямую, вместо этого у тебя есть событие "Конец уровня", например. На это событие уже подписаны окна и они сами решают что им делать с этим событием.
>>531719https://en.wikipedia.org/wiki/Event-driven_architecturehttps://docs.unity3d.com/ScriptReference/Events.UnityEvent.htmlhttps://unity3d.com/ru/learn/tutorials/topics/scripting/eventsмимо проходил
>>531733Ну не, все не настолько плохо. Я сейчас балуюсь с векторной физикой. Но из практического опыта только платформер на Моногейме. Видел пример сеточного поля, но там чел использовал circle collider для определения дальности атаки и я засомневался в этом подходе.
>>531798>Кастомный чтец текстовых файлов лучшеПобедитель гонки Тур-де-Франсhttps://www.youtube.com/watch?v=HaBP7eXdZUg
Смарите, вот я например хочу, чтобы у меня был класс, в котором бы содержались различные объкты, и я хочу ссылку на эти объекты указать в инспекторе unity. Как мне это сделать?Написал небольшой скрипт (https://pastebin.com/3fXQbF2c), но результата нет.
>>531822>https://pastebin.com/3fXQbF2cSerializacia, do you can't into it?Гугли [SerializeField] и [Serializable].
Алсо, чему у меня через раз GetComponents<GraphicElement>() выдает нулл? Ладно бы все время, но он рандомно то пустую коллекцию дает то нулл выкидывает. NullReferenceExceptionUnityEngine.Component.GetComponents[GraphicElement] () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/ComponentBindings.gen.cs:185)
>>531826Ну тут два варианта, либо Юнити у тебя косячный (спасибо разрабам), либо ты вкатился в геймдев на пахуе не изучав программирование и не замечаешь почему у тебя выдает null.
>>531826Как вариант, что ни одного такого компонента не нашлось - "вместо" пустой коллекции вернулся null. Рандомно потому что компонент на одном элементе находит компоненты, а на другом элементе - не находит. Как будет (создай пустую сцену и повесь свой компонент на камеру) вести GetComponents когда нет компонентов?
Сука блять написал какую то хуйню в Watch, теперь Unity вещается до того как я это почищу. Пиздец инженеры ПО блять.
Есть одна стейт машина. Анимация в Closing меняет альфу картинки до нуля. Однако, при следующем заходе на Opening альфа остается на нуле. Как сделать что б альфа в дефолтное состояние вернулась? Как то зациклить? Когда ставлю Loop оно в рамках одного перехода начинает мигатьЗапускаю машину через animator.Play("Opening");
>>532029Спасибо. Добавил стейт с отрицательной скоростью но обратная анимация отображается визуально, а это не нужно.. Надо как то лучше вернуть анимированные значения в дефолт.. Могу, конечно сделать это в скрипте но это жи тупо.. Могу еще запилить другую анимацию которая будет возвращать альфу выключив элемент через енаблядь но это тожи тупо..https://twitter.com/i/status/1047640140540260359
>>532038У тебя же простая последовательность. Зачем тогда юзать стейтмашин, если есть таймлайн. Там же практически любые юнитевские компоненты и паблики монобехов менять можно, пользуясь визуалочкой
Help, намутил апк - на xiaomi с 8 ядерным хз чем и андроидом 8.1, запускается норм. На Sony с arm64 Snapdragon 835 MSM8998 под андроидом 8,0, не запускается, сразу ошибка. В настройках поставил галку на arm64, всё обновил - и Юнити от 12.10.2018 и в андроид студии все инструменты обновил и джаву. в гугле ответы только от 2017го года, где обещают завести поддержку arm64, а в нынещней юнити оно уже есть но не робит. ПОМОХИТЕ!!!
С чего быстрее дергать значения, из массива? А почему? Массив это класс? Значит кажыдй раз как минимум надо заглянуть в кучу?
Насколько по силе различаются эдитор и билд? Особенно интересует работа с текстом. Я постоянно срусь с падения фпс от отображения текста на экране, но в самом билде всё СИЛКИ СМУФ без проблем с падением фпс. Я себя уже уверил, что дело в эдиторе, но вдруг я ошибаюсь в причине. Знает кто-нибудь что за дела такие?
>>532130Начнем с того что мы не знаем под какую кофеварку ты билдешь. На разных платформах разные интерпретаторы. По хорошему надо на каждой конкретной платформе тестить а не гадать на пораше.А так стандалон билд быстрее в несколько раз, на моих задачах.
Подсобите ньюфагу. Импортировал из блендера машину, отображается в итоге так. Как исправить и не переделывать модель? Всякое напереключал, смотрел, понятия не имею что с этим делать.
Почему картинки, которая не привязана к движению камеры, странно начинает пикселизироваться при движении? Как пофиксить?
Сап юнитач. Можно ли как-нибудь отражать спрайты с шейдерами? Попробовал сделать тень на свои спрайты, и все бы ничего, но при флипе, или повороте на 180, или при скейле на -1 спрайт исчезает.
>>532648Нагуглил что там нужно в шейдер Cull Off вписать, но куда именно, шейдер ведь на 2к строк? Legacy Shaders/Transparent/Diffuse - вот этот меня интересует.
Как в if else создать несколько условий?Например:if (Нажатие пкм по кнопке, свет выключен) свет включен
>>532843Даю голодающему удочку: if (true) => if (true == true) => if (!false == true) => if (true && false == !true) => if (!false || true == true), и так далее. Дальше сам.
using System.Collections;using System.Collections.Generic;using UnityEngine;public class FaceCamera : MonoBehaviour { Vector3 cameraDirection; void Update() { cameraDirection = Camera.main.transform.forward; cameraDirection.y = 0; transform.rotation = Quaternion.LookRotation(cameraDirection); }}Что я делаю не так почему не работает?
Как в скрипте обратиться к какому-нибудь объекту? Допустим я хочу, чтобы кубик поменял цвет. Как указать этот кубик в скрипте?
>>532861>Object reference not set to an instance of object>FaceCamera.cs:10>Что я делаю не так почему не работает?теперь у главной камеры надо ставить тег MainCamera
>>532843Под юнити же на С# пишут? if (ПКМ && Свет выключен){Свет включен}else{Свет выключен}Это же блять даже не основы программирования, это блять 5-тилетка через три минуты изучения любого языка узнает, куда ты лезешь не зная этого, оно тебя сожрёт.
>>532870Самое интересное, что это в школе проходят. Не помнишь, как "жи" и "ши" пишется, или сколько будет 4х8?
>>532843Бля ты че серьезно такие вопросы задавать? Вот ты вообще нихуя решил не делать, даже капельку программирование не поизучать, даже в туторах по юнити всяких такая лабуда встречается, и вот ты еблан тут решился это спросить?Пиздец уебки разленились, еще и игори делать хотят.
Есть гараж. В гараже автомобили. Не статичные. На потолке светильники. Как лучше организовать освещение? Натыкл каждому светильнику поинт лайтов, но чет не уверен.
Короче такой трабл. При первой загрузке сцены все нормально. Но когда из этой сцены выхожу в другую (меню), а потом из меню загружаю первую сцену обратно, не видит ригидбоди на объектах. Это баг, или я что-то сделал не правильно? Ригидбоди определяю в Start() с помощью gameObject.GetComponent.
>>533139А что в этом вашем юнити нельзя поставить текущую сцену на паузу и показать сцену с меню оверлейно? Правда штоле? Ахазхаха! Ебать движок тысячелетия!
>>532094> С чего быстрее дергать значения, из массива? Да.> А почему? Потому что данные в памяти лежат подряд и в кеш сразу по несколько элементов читаются процессором. Если конечно эти элементы - не жирные экземпляры классов на стопицот пропертей каждый.> Массив это класс?Массив это экземпляр System.Array. Устроен вот так (пикрелейтед).> Значит кажыдй раз как минимум надо заглянуть в кучу? "стек" и "куча" - суть абстракции области видимости и времени жизни языка.В реалиях железа имеет смысл говорить сугубо о cache friendliness тех или иных структур данных.
>>528048 (OP)Аноны, не обосрался ли я с реализацией? Нужно реализовать разные типы профессии со способностями, которые характеризуют данную профессию. То есть если ты слесарь, то способностью будет уметь "крафтить" и т.п.Самая профессия реализованная через скриптовый объект. Он принимает в себя название, описание и само состояние способности, пока этого хватит.Тип, состояние спобности реализовано через enum. К примеру: врачевать, крафтить и т.п.А вот уже о способности, описание, склонение, прочий текст, enum профессии и т.п. реализовано тоже через sctiptable object.Еба событиеТоже скриптовый объект. В нём хранится описание, enum способности, последствия.Как работает:Если происходит событие в котором нужно врачевание, в событии написано какое состояние, enum способность нужна, его ищем через enum в пуле всех скриптовых объектов способностей и печатаем текст с названием способности и том, что произошла еба и нужен врач и его умение врачевать.Если данный человек есть, смотрим на его scriptable object, в нем мы смотреть на его профессию и получаем состояние способности.Лично мне не нравится хранить столько скриптовых объектов, но как сделать иначе, заранее заготовленные объекты по-другому не приходит в голову. Кроме как отдельного массива класса, но просто будет не удобно работать.Можно же слить в одно и скилы и профессию, то есть в описании скила написать профессию, но мне нужно отдельно объект скил и отдельно объект профессии.Надеюсь понятно объяснил, рад любой критике, как этого монстра можно уменьшить и оптимизировать.
>>533334Можно рассмотреть вариант, при котором у человечков есть навыки в скиллах и они не связаны с профессией напрямую. Т.е. был npc врачом, а потом стал лесорубом - лечить он не разучился. Профессия npm служит для выбора задачи. Тогда у каждого человечка есть массив скиллов, у профессии (а то и у текущей задачи) есть массив как-скиллы-прокачиваются. Для каких-то задач может потребоваться массив минимальный-размер-скиллов. Скилл перестает быть объектом первого уровня, становится абстрактной субстанцией на страничке в вики. Названия скиллам для работы не нужны - переходят на уровень локализации. Профессии я бы хранил в DontDestroyOnExit синглтоном из префаба (может быть, скриптаблы более правильное решение, я их не люблю). Скиллы и характеристики отличаются только ростом из-за выполненных задач (т.е. это параметры). Т.е. у размера сисек и дальнозоркости в массиве буста будут стоять нолики. Или не нолики, если мы говорим о действии "медицинская операция" (задача это приказ-к-действию, профессия лишь добавляет возможные действия).Компоненты массив-буста-параметров, массив-требований-к-параметров, массив-текущих-значений-параметров должны или наследоваться от компонента МассивПараметров, или иметь ссылку на лежащий рядом МассивПараметров. Очень рекомендую залепить в МассивПараметров кастомную рисовалку для инспектора.
>>533334>Аноны, не обосрался ли я с реализацией?>Тип, состояние спобности реализовано через enum.Обосрался
>>533334А в чем собственно проблема с количеством скриптабл обжектов? Или ты собрался делать тысячу профессий?
>>533344Да это круто. Но у меня не будет такой большой и растущей системы с переходами способностей, прокачкойПросто будет человек. Ему случайно присваивается профессия, которая уже заранее ссылается на enum или название, скилла.Мне нужно отдельно объект профессии и скиллов. Чтобы можно было ссылаться на профессию и скилы. А не через профессию на скилл.Хотя как раз можно вытаскивать из профессии скилл и выдать сразу человеку.Спасибо, есть над чем подумать.
>>533363С началом мы создаём скриптобжекты профессий их в dictonary ключём будет название профы. Потом скриптобжекты скиллов их тоже в dictonary с ключем их enum. Трабл в том что, а можно ли запихивать в dictonary заранее или только при старте проекта.И сколько будет весить эта еба, да ещё и в dictonary.
>>533381Словари не сериализуются в унити, но можешь на гитхабе поискать Serializable Dictionary. Или на старом юнити вики, не помню уже.
>>533385Как и ожидал. Просто не хочется нагружать проекта, сторонними инструментами, но если что воспользуюсь в крайнем случае. Спасибо
Как реализовать пре-лоад рекламных объявлений AdMob? Межстраничное объявление загружается 5-8 секунд, а видео 12-15.
>>533466Что за поделки детей? Я правильно понимаю что юнити нужен чтобы создавать низкопробное мультяшное говно с пучеглазыми ебальниками, на большее он не годится?
Добрый вечер, /gd/! Я к вам в юнити-тред пришёл с небольшой проблемой, не совсем игрой. Так как я нихуя не программист, и не знаю, как сделать по-другому, пришёл сюда за советом. В общем, к сути дела: есть несколько объектов, и при нажатии должна появляться панель с текстом. Вот мой ебанутый код скрипта: https://pastebin.com/8HB03cXqПояснять, как оно работает, хз, надо ли. В общем, на панели есть дочерний объект - кнопка, при нажатии на которую срабатывает функция HideUI() из скрипта. В чём проблема: вот нажал я на один объект, появилась панель с текстом там, и кнопкой. Но при этом остальные объекты остаются активными, то есть я могу нажать на корпус, и появится вторая панель под первой. Есть идеи, как решить? Только не стукайте больно, пожалуйста
>>533495Я так понял, что тебе оверлей. Собсно, сделай UI>Panel во весь экран, внутрь него суй текст и что там еще надо. По клике по панеле удаляй панель.
>>533501> сделай UI>Panel во весь экран, внутрь него суй текст и что там еще надо. > По клике по панеле удаляй панель. true unity way
>>533501Хм, поможешь с кодом? У меня там есть уже в скрипте OnMouseDown, как повесить его на выбранный UIObject?
>>533525В этом способе только один минус, я считаю - энивей ты будешь нажимать на объект, панель старого объекта скроется, но нового всё равно появится.
Слушайте, я тут подумал, а мб поставить на панель коллайдер? Ну тогда ведь не будут активными объекты за панелью, да?
Господи какой объёб этот юнитовский ecs и жоп систем, который уже второй год пытаются втюхать на всевозможных презентациях. Вот только ни один человек это говно не использует, потому что это не юзабельно, и кроме одинаковых слайдов (об утонченной гибкой структуре) больше ничего не показывают и не рассказывают. Так похоже никто и не понимает нахуя это надо и нахуя ему это нужно. После скриптбл обжектов маркетологи поняли что можно любую пыль кидать в глаза лохам, а они и рады будут. В общем я крайне разочарован в этом всём и в бизнес модели в частности.
>>533531Суть в том, что "есть уже" отрабатывать не будет. Хотя, у меня мышка только в меню (т.е. я с мышкой не работал) - могут быть дополнительные сюрпризы.
>>533550Так мб новый скрипт написать и сделать так, чтобы он передавал значение другой переменной в функцию HideUI()?
>>533495UI - это всегда синглтон. Не верь ебланам, услышавшим слово "антипаттерн".Твой UI всегда должен быть загружен в память и всегда готов мгновенно выскочить на экран при активации.Поэтому.1. Делаешь отдельный объект UI. Загружаешь его при старте игры и выгружаешь в конце игры. Или вообще оставляешь выгрузку сборщику мусора.2. У этого объекта должны быть методы, наподобие: showMainManu, showInventory, showCharacterMenu, showLOOTMenu и т.п. (Либо один метод showUIItem(ItemKind) с аргументом, представляющим элемент интерфейса, который надо отобразить).3. Все твои игровые объекты при надобности вызывают соответствующие методы синглтона UI.4. Каждый метод, будучи вызван должен проверить, не выведено ли на экран то, что он должен вывести? И если уже выведено - прекратить свое выполнение.З.Ы. Можно то же самое сделать через модные у школоты сообщения. В этом случае, игровым объектам будет неважно, существует UI или нет - они просто будут сообщать "на меня нажали, покажи панельку с лутом", не проверяя, будет ли это сообщение услышано. Плюсы этого метода - не надо помнить об синглтонах и знать их, достаточно придерживаться установленных в команде разработчиков соглашений о именовании сообщений. Минусы - сложная отладка: в случае хуйни, вариант с ООП будет вызывать исключения при компиляции, с указанием строки с ошибкой. Вариант же с сообщениями будет компилироваться нормально, но в игре будет либо ничего не происходить, либо происходить не так, как тебе надо. Поэтому придется дополнительно реализовывать систему логгинга, которая бы тебе показывала, в каком месте ошибка.
>>533571>>533565>Не верь ебланам, услышавшим слово "антипаттерн". Игнорируй их посты с боевыми картиночками.
>>533546Если доведут до ума то будет конфетка, встроенный многопоточный Entitas. Но не доведут, потому что в презентациях уже приелось, надо новую модную штуку придумывать для продажи хипстерам.
>>533565Слишком много новых для меня слов, но я так понял, что есть другие методы, помимо "показать UI-панель". А теперь покажи мне, как это сделать на практике, да так, чтобы устранилась моя проблема.
Как я заебался с ебаным C# ждать компиляции. Почему все так медленно.Нахуя?! Объясните, нахуя они взяли mono и C#? Почему не javascript, например? Простота, крохотный runtime, легкость портирования на любую платформу, возможность hot reload'а и многие другие плюшки скриптового языка. Нет, возьмем компилируемый кусок говна от ms. Изменил строчку? Жди десять секунд! Создал скрипт? Жди 20 секунд! Делаешь билд для webgl? Жди вообще час, сука!
>>533622>Почему не javascript<-->Изменил строчку? Жди десять секунд! Создал скрипт? Жди 20 секунд! Делаешь билд для webgl? Жди вообще час, сука!Мне кажется ты слегка ПРЕУВЕЛИЧИВАЕШЬ
>>533627Допустим ты редактируешь код раз в 3 минуты. За день ты тратишь 6 часов на написание игры.Тогда 20 минут ты тупо тратишь на ожидание компиляции! 20 минут! Задумайся! За неделю это уже 2.5 часа. за месяц 10 часов!
>>533627>>Почему не javascript><--Тащемта javascript это самый лучший ООП-язык. Последние стандарты по функциям уже догнали С#.Я не понимаю зачем для СКРИПТИНГА нужно использовать компилируемый .net. А ты понимаешь?
>>533630А с чего ты взял что у тебя скриптинг? Скриптинг происходит в терминах предметной области конкретной игры. В Юнити у тебя нихуя нет, кроме коллайдеров и мешей.
>>533631В том-то и дело, что в юнити нет скриптинга, а есть только системное программирование. Компоненты создаются с расчетом на повторное использование. Создавать маленькие скрипты чтобы сделать какое-то простое поведение для конкретного объекта, или просто хранить данные для data-oriented кода просто неудобно.
>>533634Замечательно работает до тех пор пока ты держишь реальный код за пределами юнитевских объектов.
>>533633>Для типизации. Не нужно. Нормальные ребята все равно используют сообщения. А там типы не нужны.
>>533638>Замечательно работает>Создал файл. 10 секунд компиляции>Переместил файл в другую папку. Еще 10 секунд компиляции>Удалил скрипт. Жди компиляциюЯ хочу код писать , а не конпелировать
>>533640Предложение скрывать панель при нажатии по ней? Так я один чёрт на неё нажму, а другая панель другого геймобжекта высветится. Это не совсем корректное решение проблемы.
>>533641Бери УЕ, там блюпринты компелируются мгновенно. Так же непонято что у тебя такое по 10 секунд компелируется - у тебя явно меньше хотя бы пары мегабайт кода.
>>533556Другой скрипт "КликПоПанелеУдаляетПанель" точно нужно писать. Никуда никакие переменные он передавать не должен - не усложняй. У тебя есть экран игры - он не меняется. Есть всплывающая панель на весь экран, которая блокирует экран игры (визуально может быть полностью прозрачной) - она тоже сама по себе.
>>533660Я другой анон, но абсолютно согласен с предыдущим. Там не факт, что именно компилинг по 10 секунд тянется. Сохранил скрипт, переключился в юньку: пару секунд ждем, фриз, пару секунд ждем, фриз, пару секунд ждем, фриз - и мы почти уверены, что код обновился. Если изменить текст в комменте - юнька тоже будет "компилить" (хотя даже по AST'у понятно, что ничерта не поменялось). И, да, часто процедура обновления растягивается куда дольше, чем на 10 секунд. HCR в юньке есть, но связан с теми же тормозами + любит юньку крашить.
>>533647Тебе сказали сделать одну панель.На канвас добавить скрипт MoyInterfeis и в нем сделайpublic GameObject MoyaPanel;void PokazatPanel() {MoyaPanel.SetActive(true);}
Насколько законно сейчас так писать?Будут ли отличия от создания прайвет переменной и свойства на основе её?
>>533673Если точнее, я сказал сделать так:public GameObject MoyaPanel;void PokazatPanel(string ChtoNapisat; List<Knopki> KakieKnopkiOtobrazit = [OK, Cancel]) {if (!Active){SetActive(true);}SetText(ChtoNapisat);SetButtons(KakieKnopkiOtobrazit);}
Аноны, классика, но нужен совет знатоков.Я правильно понимаю, что для каждого особого действия, каждой катсцены, каждого изменения в мире мне нужно писать новый скрипт? Их же тогда сотни будут! Или я не догоняю? Там есть инструмент наверняка для катсцен, для всяких действий особых. Но их же надо запустить, а это скрипт. Или как это работает?
>>533703Не сотни, а тысячи.В моей игре сейчас 397 скриптов. не считая create-step-draw ивентов у объектов, которых уже 320
>>533704Но на самом деле всё просто. Уже после описания трёх-четырёх катсцен у тебя в голове сложится шаблон, и ты уже не будешь напрягаться, создавая следующую. Будет только "кастцена фаза 1, ждёт пятый кадр анимации, фаза ++" "катсцена фаза2, спрайт меняем на такой-то, х+=2.5. Если х == 50 фаза ++" и т.д.
>>5337031. Декомпозируй. Сделай компонент Action (с полем List<GameObject> doWith и public virtual void doAction(){}), унаследуй от него ActionActivate (public override void doAction(){ foreach (var v in doWith) {v.setActive(true);} }), ActionDeactivate, ActionDestroy. Сделай Timer, который умеет дергать Action через заданный промежуток времени (про зацикливание сразу подумай). Сделай CustomCollider, который дергает экнш, когда происходит OnTriggerEnter с объектом, который прошел фильтр isGoodObjectForMe, от него унаследую PlayerFinder, AnyEnemyFinder, FlyingEnemyFinder. 2/3 логики уже покрыты. Таких скриптов тоже будет много, но они композируются в +/- любую логику. Можешь включать объекты, только когда игрок внутри коллайдера (ты же в курсе про слои, да?), можешь включать объекты если другие выключены, можешь делать все что угодно - но атомарными блоками, которые легко запомнить.2. Для кат-сцен используй аниматоры. Скрипты только там, где логика заранее не просчитывается. Если у тебя есть скрипты в кат-сценах, то ты что-то очень общее пропустил, или я чего-то не учитываю (например, аниматоров внутри аниматоров).3. Выведи DamageReceiver из Enemy, сделай BulletCollider, ExplosionCollider. Чем меньше монолита - тем лучше.
>>533703>их же надо запуститьВообще, анимашки сами запускаются. Для кат-сцен делай отдельные сцены, аниматор вешай прямо на рутовый объект. Только учти, что анимации (не таймлайн) смотрят на иерархию по пути... Попробуй сделать пустой объект с аниматором, в нем проанимируй два куба, потом засунь один куб внутрь второго - анимашка развалится. Это учитывай.Варианты.1. Активация вложенного аниматора с помощью таймлайна. Включаешь объект с помощью таймлайна. В объекте таймер установленный на 0 секунд (или просто MakeActionOnStart), который дергает ActionSetTrigger - все. реакцию на SetTrigger настраиваешь в окошке Animator.2. Нет возможности сделать кат-сцену отдельной сценой. Т.е. тебе нужно, чтобы когда игрок оказывался рядом с флагом - он его поднимал и махал, потом шел назад. Описываю самый геморный вариант, на практике можешь проще сделать. С помощью PlayerFinder ты можешь определить, что игрок рядом с флагом. Заодно и запомнишь игрока. Блочишь управление, чтобы игрок встал в Idle (событие аниматора "Я идлюсь" (100) перехватывает OnAnimationEvent(int animId) и дергает следующий экшн). Выключаешь игрока с помощью ActionDeactivate (тут вру, поясню дальше), с помощью ActionClone создаешь визуальный клон игрока (клон запоминаешь) на позиции игрока. Запускаешь анимашку на клоне, ждешь от анимахи события "Я схватил флаг" (200) (тут аккуратнее, т.к. юнька умеет пропускать события) - дергаешь экшн который удаляет настоящий флаг. Второй флаг показываешь на уровне аниматора. Махает флагом тоже аниматор клона. Словил событие аниматора "Флажок воткнут в землю" (300) - удаляешь клон. Я врал про ActionDeactivate, потому что нам нужно сделать иначе. Рядом с игроком делаем компонент, который сам скрывает игрока, если активны некие объекты. Когда мы создали клона - мы закинули клона в этот компонент. Ну и до кучи, надо ждать не 300е событие анимации, а 100е после 200е. Ну и, еще до кучи, я бы строками названия событий лепил.
>>533711Мысли об инлайновой кат-сцене с флагом не отпускали. Решил, что этот случай в мои "2/3 логики" не укалывается - вот в случае с флагом лучше-таки написать отдельный скрипт.
>>533693Так, падажжи, а как это работает? У меня же по сути для каждого объекта должен быть уникальный текст. Как это работает, объясни ещё раз.
>>533720>Как это работает, объясни ещё раз. Очень просто:Объект "враг" вызывает функциюPokazatPanel("Вы убиты!" [Restart, Exit]);А например, объект "торговец" вызывает функциюPokazatPanel("Вот какие у меня товары", [Trade, Cancel]);Первый аргумент - текстовое описание твоего сообщения на панели, которое ты хочешь видеть. Второй аргумент - список (массив) именованных констант кнопок, которые может отображать панель.Эм, возможно между нами возникло недопонимание, код выше это не полноценное решение, а абстрактный псевдокод, который вызывает методы, которые тебе самому тоже нужно описать в классе интерфеса с панельками, например, SetText - этот метод меняет текст на панели. SetButtons - этот меняет кнопки на панели. Для простоты сделай, чтобы он удалял все кнопки, а затем создавал согласно переданному массиву.И теперь самое главное, как мы с еще одним аноном сказали выше, панель всегда висит в памяти, отображается на экране методом PokazatPanel, так же этим методом обновляется уже показанная панель (то, что тебе нужно было изначально - метод PokazatPanel не дублирует панель, а только обновляет в ней текст и состав кнопок).Скрывается панель кнопками, которые на ней отображены. С вызовом забинденных на кнопки действий. Так же ты можешь прихардкодить скрытие панели по кнопке Esc, чтобы избежать ситуаций, когда ни одна кнопка не скрывает панель (или по запарке панель вызвана без кнопок), и игрок матерится, не знает, как убрать этоя дрянья.Ещё вопросы?
>>533641Заебал ныть, решение перед носомhttps://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html
Посоны, думаю сохранять данные (небольшая структура со стрингом втутри стринг же вроде в куче лежит, да?) для последующей обработки. Может получиться много данных, где-то до десятка тысяч в массиве, и около сотни массивов. Юнити по сути используется для визуализации, сам класс без монобихавора. Дело в том что я хуй как работает этот ваш стек и слышал вроде что он имеет какие-то ограничения, а в стеке же будут лежать структруы верно ?А что такое структура, это набор указателей? В моем случае будет один стринг и несколько флоатов. Все эти флоаты будут лежать в стеке, так? Массивы будут использованы для перепостроение данных, обычно это просто полный/частичный перебор некоторго ренджа, и иногда будут обрезаться концы чтоб хуйня совсем не растолстела. Думаю использовать обычный список, какие могут быть подводные камни?
>>533789>какие могут быть подводные камни? Слышал, что если в юнити переполнить стек, то может сгореть процессор.Ты поосторжней с этим.
>>533767>Ещё вопросы?Да мне кнопки особо не надо менять, лул. У меня там при щелчке будет просто текстовое описание детали появляться и всё, а кнопка будет одна - "закрыть", так что в принципе, метод SetButtons создавать не надо. А как описывается SetText? Это типа надо создать такую функцию, а в нём описать, что входит, и что он должен делать? И в одном скрипте, да? Покажи пример, как он должен выглядеть а то я тупой, соре. По сути, у меня на панели должен меняться только текст, а кнопка одна единственная должна уметь закрывать эту панель.
>>533789>стринг же вроде в куче лежитты на с++ или на си писал когда-нибудь?>Может получиться много данныхДа?>где-то до десятка тысяч в массиве10000 байт?>и около сотни массивов.1000000 байт(чуть меньше мегабайта)?>Дело в том что я хуй как работает этот ваш стек и слышал вроде что он имеет какие-то ограничения, а в стеке же будут лежать структруы верно ?А что такое структура, это набор указателей? В моем случае будет один стринг и несколько флоатов. Все эти флоаты будут лежать в стеке, так? Массивы будут использованы для перепостроение данных, обычно это просто полный/частичный перебор некоторго ренджа, и иногда будут обрезаться концы чтоб хуйня совсем не растолстела. Думаю использовать обычный список, какие могут быть подводные камни?Просто зайди в гугл и напиши А ЧТО ТАКОЕ СТЭЙК и А ЧТО ТАКОЕ КУЧА ЭТО ТО ЧТО Я НА ГОРШКЕ ОТЛОЖИЛ ИЛИ ДАА еще лучше напиши конкретнее что за срань такую странную ты делаешь, откуда данные и как передаешь, почему тебя волнует переполнение стека(!!!) и как ты вообще к этому пришел?
Аноны, сорян за нубовопрос, но прошу помощи.Хочу в 2D игре реализовать много разных меню, сделать это частью геймплея. Чтоб в них много разных статистик, кнопок, элементов.Я правильно понимаю, что для этого используют Canvas? Или мне сделать отдельный геймобджект, и в нем уже делать кнопки разные и панели? А еще, может ли быть несколько Canvas? Один убирать, потом показывать другой.
https://blogs.unity3d.com/2018/10/22/what-is-a-job-system/Одно и то же перепечатывают по кругу уже которой месяц лол >>533745Кажется в комментариях начали что-то подозревать>So what’s new? Unity is really weird company rehashing stuff over and over without giving any new info.Хомячков уже корить жоп системс не получается. Скоро ее выбросят на помойку и выдумывают что-нибудь EXCITING
>>533817Дружище, ты уже который раз переспрашиваешь. Тебе пишут в целом, код тебе никто не даст. Вариантов у тебя на выбор уже несколько. Не осилиль менять кнопки - не меняй кнопки. Каким-то образом ты раньше текст показывал (без оверлея) - таким же и показывай.
>>533806Потому что в юнити уже все есть, больше нечего добавлять. Так же как в гейфонах, но что-то же нужно пиздеть.
Решил поизучать юнит. С каких классов начать?Подловил себя на том что элементарно не знаю многих классов юнити, тупо с ними не знаком. Вывел все классы, вышло 7866 штук. Но там 7/8 служебные, вроде конвертеров под iOS или внутреннего устройства редактора.Подксжите, как этот список сократить до 1000 самых важных? Вот знание каких классов реально важно?А вообще люблю просматривать такие списки. Вот я тупо не знал что есть такие классы как Vector3Int и похожие. Выглядит полезным.https://pastebin.com/PMTVtsVq
>>5338062018 год подходил к концу, ECS+Job System уже 10 лет как стал стандартом де-факто во всех AAA играх и только у ооптушка-ниасилятора по прежнему пригорало от ECS на весь юнити-тред.
>>533857UnityEditorInternal.EditMode+<DoInspectorToolbar>c__AnonStorey1 разумеется, еще интервал ща наугад ёбну, потом посмотрю 5700-5950 попал в UnityEngine.Networking.Match.NetworkMatch+<ProcessMatchResponse>c__Iterator0`2.Туторы посмотри. И классы, как бы тебе сказать. Юнька в целом про визуальный редактор. Ты можешь хоть 9499 классов вызубрить, но без понимания того, что "боевым товарищам" нужен именно редактор (а не "красивый код") - тебя уделает любой джун, который смастерил (и напрограммировал) четыре уровня платформера.
Как примитивно защитить свое приложение от воровства? Что кроме кода через рефлектор можно палить? Как сделать сорт оф тайм бомбы чтоб приложение не работало по истечению определенного срока и так чтоб бляди не смогли подменить dll, если конечно так можно.
>>533860Вообще-то я вполне себе средний юнити дев. И я вот решил вывести все классы и мне бомбануло что я там от силы 3,5 знаю. Типичный сосач. Спросил какие классы важны/нужны. В ответ рассказали как мне дальше жить, какую методологию применять к изучению юнити и то какой я школьник. Идите нахуй без вас соображу какие классы там важны, а какие шелуха. Не хотите кооперацию, получите конкуренцию мрази.
Аноны встал вопрос как передать массив данных между скриптами. У меня есть массив с данными, нужно что бы другой скрипт дёргал этот массив и получал эти данные? Кроме как во второй скрипт вложить первый
>>533703>>533704Совсем уж в быдло код не надо ударяться. Всегда есть решение лучше https://m.habr.com/post/244493/
>>533849Да не, не надо, чего ты. Просто скажи что ты хочешь сделать, и как ты это собираешься делать, а мы подскажем тебе правильный ли у тебя подход и какие подводные камни, если же нет - то как лучше сделать.
>>533875ImyaScriptaSDannimi dadaya = FindObjectOfType<ImyaScriptaSDannimi>();dadaya.data //мои данные
>>533886>ВЫВСЁВРЁТИИИИИИhttp://s09.idav.ucdavis.edu/talks/04-JAndersson-ParallelFrostbite-Siggraph09.pdfhttp://twvideo01.ubm-us.net/o1/vault/gdc2015/presentations/Gyrling_Christian_Parallelizing_The_Naughty.pdfhttps://www.youtube.com/watch?v=QYLqh9ncIxw
>>533899https://www.gdcvault.com/play/1012338/Shears-Squeeze-the-Juice-Outочередной гвоздик в крышку гроба манямирка однопоточного оопущенца. Опять 2к10.
Ну и напоследок, выход - 2009 год, разработка с 2007https://www.slideshare.net/naughty_dog/multiprocessor-game-loops-lessons-from-uncharted-2-among-thievesС 47 страницы, из десятилетнего прошлого нотидоги врываются в наше время и проводят оопущенцу хуями по губам.
>>533897> Job System уже 10 лет как стал стандартом де-факто во всех AAA играх> Parallel Graphics> Parallelizing Поехавший все никак не уймется, называй вещи своими именами.
>>533907Не знаю кого ты пытаешься детектить, но екс в ооп языках всегда будет находтся в контексте ооп. Либо ты не понимаешь что то одно из них двоих.
>>533916О, оопушок подъехал, но дальше названия прочитать постеснялся. Иначе манямирок рухнет.Впрочем, судя по подгоранию - уже начал рушится.
>>533919Проигрываю с твоего батхерта, но в следующий раз все такие лучше подумай прежде чем что либо писать.
>>533906Кэшируй если часто надо.Можешьв старте найти.Можешь изначально присвоить нулл, и в нужном методе если нулл - находишь.Можешь сразу в скрипте публичную переменную типа скрипта с данными сделать и в инспекторе перетащить туда то что надо.
>>533875>Аноны встал вопрос как передать массив данных между скриптами. У меня есть массив с данными, нужно что бы другой скрипт дёргал этот массив и получал эти данные?Юнити-туториалы осилил, а сишарп-туториалы не осилил?В сишарпе есть элегантный и универсальный метод обмена данными между "скриптами" - модулями: Оберни каждый из своих скриптов в одинаковый неймспейс и они сразу увидят друг друга.Не знаю, как там сейчас, но раньше юнити генерировал сишарп-солюшен с неправильно настроенным неймспейсом по умолчанию, потому что если солюшен генерирует вижуал-студия, у неё автоматически все модули классов помещаются в неймспейс по умолчанию, одноимённый названию проекта. И все классы автоматически видят друг-друга.В юнити же все модули классов ("скрипты", лол) получались изолированными и друг друга не видели. Как сейчас, не знаю. Возможно хитрые жиды юнитеки сделали это специально, чтобы продавать за шекели дополнительные средства интеграции.Если бы ты знал сишарп, ты бы (1) полез в настройки солюшена и настроил неймспейс по умолчанию или (2) не лез бы в солюшен, а просто оборачивал бы генерируемые юнитей классы в самодельные неймспейсы, а потом using MyPrefabs; using MyPropsData; using MyCockPussyDjigurda;Поэтому учи сишарп, чтобы не быть лохом.
>>533935> Юнити-туториалы осилил, а сишарп-туториалы не осилил?> В сишарпе есть элегантный и универсальный метод обмена данными между "скриптами" Ничто не предвещало беды, как вдруг>- модулями: Оберни каждый из своих скриптов в одинаковый неймспейс и они сразу увидят друг друга.> Не знаю, как там сейчас, но раньше юнити генерировал сишарп-солюшен с неправильно настроенным неймспейсом по умолчанию, потому что если солюшен генерирует вижуал-студия, у неё автоматически все модули классов помещаются в неймспейс по умолчанию, одноимённый названию проекта. И все классы автоматически видят друг-друга.> В юнити же все модули классов ("скрипты", лол) получались изолированными и друг друга не видели. Как сейчас, не знаю. Возможно хитрые жиды юнитеки сделали это специально, чтобы продавать за шекели дополнительные средства интеграции.> Если бы ты знал сишарп, ты бы (1) полез в настройки солюшена и настроил неймспейс по умолчанию или (2) не лез бы в солюшен, а просто оборачивал бы генерируемые юнитей классы в самодельные неймспейсы, а потом using MyPrefabs; using MyPropsData; using MyCockPussyDjigurda
>>533939>Не знаю, как там сейчас, но раньше юнити генерировал сишарп-солюшен с неправильно настроенным неймспейсом по умолчанию, потому что если солюшен генерирует вижуал-студия, у неё автоматически все модули классов помещаются в неймспейс по умолчаниюНу да, сейчас всё правильно генерируется. Я напиздел. Ладно.
>>533940Об оптимизации надо заранее беспокоиться, а то на абум что-то делать и потом плакать, ой набыдлокодил надо все заново переписывать
>>533941Таким образом, правильный ответ:>>533875>Аноны встал вопрос как передать массив данных между скриптами. У меня есть массив с данными, нужно что бы другой скрипт дёргал этот массив и получал эти данные?1. Массив с данными хранится в отдельном объекте, который ни от чего не наследуется.2. Данные передаются статическими методами, в которых реализована инициализация объекта при первом вызове. На скриншотах изображена простая инициализация конструктором, но можно создавать и десериализацией, например. В последующие вызовы функция уже будет обращаться к созданному объекту.
>>533952>самое лучшее что естьНет.Синглтон хорош, когда надо держать данные в памяти и быстро вызывать.Ты же не будешь из-за боязни антипаттернов дёргать десериализацию в апдейте?Или будешь? Хуй вас знает, сектантов баззвордовых.
>>533953Мне как раз singleton и нужен. Мне и нужно было быстро дёргать массив с данными и этот массив уникален. А зачем делать десериализацию да и еще в апдейте?
>>533957Ага сразу бросаются к Ванечке, который харкодит и без проектирования, комментирования делает всё логику. А потом приходиться все это исправлять, не понимания как и что работает.
>>533956Значит, сорян. Я увидел сарказм, там где его не было. ГД такой токсичный стал, что на каждый шорох приходится гавкать на упреждение.
>>533959Хех. Ладно, спасибо тебе. Надо будет повторить паттерны, а то со своими амбициями я далеко не уйду, даже не зная простой и готовой реализации.
>>533964Да там такие уроки, в частности на Ютубе. По типу как взять компонент текст и присвоить ему текст. Другая половина, которая учить делать что-то на реальных проектах, такую пургу пишет, начиная с магических чисел, спагетти-кода и заканчивая непонятной структурой проекта. В которой сами под конец блуждаютЕсть зарубежные, там конечно балдеж, но нужно поднимать технический английский. Да и они сразу пишут профессионально, объясняя лишь базу. Оставляя лишь пару крупиц знаний. Но хотя бы этому, ознакомился с мешами, триангуляцией и т.п.А так с помощью своих амбиций, реального проекта, любви к чистоте и внутреннему перфекционизму, который всегда захочет лучшего. Буду искать лучшие варианты и как раз закреплю знания.
>>533967Это какой-то левый хуй про уроки кукарекнул. Лучшие уроки - учебники. Лучший учебник по шарпу - MSDN.
>>533969>>533967Я вообще подумал что он так решил затраленговать, типа паттерны говно для школьников.мимо
>>533919О чём вы вообще спорите? И нахуя какие-то событийные шины, если тупо можно вызвать нужную функцию напрямую. Ну вот наприер я сегодня писал тайлинг текстуры. И там надо было квадраты рисовать в текстуру пикселями. Я все функции напрямую и вызывал. А что надо какие-то события лол для этого юзать? Зачем обычному индиблядку эти ваши шины? У тебя 3 макросекунды чтоб убедить меня что лично сука мне с них есть материальная шкурная низказкая и сладострастная выгода.
>>533990События нужны тогда, когда дохуя вещей должны происходит после какого-либо события. Например, сменил язык -> событие -> все текста на экране обновились. Удобно, только подписывай/отписывай текста при создании/удалении. Использовать события для чего-то большего есть извращение.
>>534064но для этого есть паттерн проектирования ОБСЕРВЕР из книжке 4ехпричем тут шины? вы шиноебы чтоле?
>>534069Нет, отправляю запрос по шине на разрешение отмотать 3, а то и целых 5 метров бумаги из рулона и жду пока шина ответит на мой призыв.
Суп, юнитибоги. Где ммаксимально нюфагу разжевывается кодинг UI? Почему-то все туториалы которые я нашел, даже официальные, просто шлепают их в эдиторе, а потом уже в самом эдиторе вешают на них всякие разности.Я смотрел в сторону OnGui и даже запилил пару вещей на нем, но люди на форумах говорят что они тормозные@устаревшие и вообще зачем тебе это нужно иди в эдиторе нашлепай.Вот еще говорят есть какой-то способ запихнуть нашлепанное в эдиторе в префаб, префаб в ассет бандл, ассет бандл в длл и загружать этот ассет бандл прямо из кода. Это было бы идеально. Я даже пару примеров видел, но поскольку я тупой и начал изучать сишарп и вообще программирование четыре с половиной дня назад кек не думаю, что мне удастся провернуть такой трюк.
Скажите как правильно нужно моделить этот корабль что бы вот так вот раскрашивать все текстурами, нужно частями моделить и все отдельными объектами собирать в юнити или есть способ раскрашивать текстурками секционо целую модель?
>>534103FixedUpdate не вызывается каждый кадр. Он срабатывает с фиксированным шагом ~20 раз в секунду, в моменты когда физический движок проводит свои рассчеты, так что момент нажатия кнопки FixedUpdate может пропустить. Проверку нажатий нужно вставлять в Update или LateUpdate.
>>534114>ВИЗУАЛЬНЫЙ СКРИПТИНГ В ЮНИТИТак для юньки уже давно штук сто проектов с нодами есть. Говно говна одно и тоже.
>>534065>причем тут шины?Чтобы все события в одном месте отмерять. Банально большой такой класс, куда отправляются и откуда происходят события. Можно ещё функционал вроде буфферинга прихуячить или какую-нибудь ещё задержку. >но для этого есть паттерн проектирования ОБСЕРВЕР из книжке 4ехОбчитаются своих паттернов, а потом у них виснет всё
Аноны нахуй нужны (get;set;) почитал документацию от microsoft сказано что нужно для лучшего контроля свойств и инкапсуляция. А нахуй тогда делать так: public int someint { get; set;}. Тут нету ничего из выше перечисленного
>>534167Дочитай до конца. Ты можешь сделать, например public int someint { get; private set;}Дальше сам.
>>534170Это да, это для инкапсуляция. Но люди в коде просто используют то что я привёл выше, вот вопрос, нахуя?
>>534171У них надо спрашивать. Могу предположить, что чисто для порядку, чтобы стиль соблюсти. Ну и плюс самодокументируемость - сразу видно, что обращаешься к свойству. И еще плюс можно по быстрому туда сеттер-геттер ебануть.
Есть поток говна идущий на тебя беспрерывно, нужно метко раскидывать говнины по кучам, но мы не знаем в какую кучу можно ложить, а в какую нет, быстрее ли всего выяснить с помщью dictionary.ContainsKey()? Зависит ли скорость выяснения от размера кучи линейно?
Ладно, а как просто быстро проверить наличие элемента в коллекции? Нужно просто знать есть ли он там или нет, тип стринг.
>>534174Мимо-анон, приебаться хочу.> сразу видно, что обращаешься к свойствуА по public int someint = 0 не видно, что обращения будут?
>>534167 >>534175на самом деле это не совсем сахар и у свойств есть свои лимитации так как они не являются какой-то хуитой которая содержит значение, а просто с другой хуйней взаимодействует. например свойство нельзя передать через ref. ну и некоторые хитрости при использовании их в struct.
Аноны, шлепаю примитив на пустую сцену (в проекте впрочем и других сцен хватает) редактор кладет его куда бог пошлет а не перед камерой например.С какого ?Алсо те кто юзает монодевелоп ИДЕ:Как заставить егоподсвечивать блоки кода постоянно а не тогда когдамышкой по крестику сверки блока елозишь ?Знатокам: (знаю что без мазы но вдруг) Может всетаки есть финт ушами писать екстенты без скобочек как проперти или как-то запилить проперти екстент с использованием This как в экстент методе. Например:obj.ext().something - такое вот расширение изза скобок трудно читаетсяobj.ext.something - намного меньше шума
>>533870>защитить свое приложение от воровстваЧто именно ты внем собрался защищать и от чего ?Ты уж определись.
Анотехи, уже с год наверное имею Юньку во все тяжкие, но вот как-то не попадал в ситуации где нужно юзать ScriptableObject.Читал мануал и гугл листал, однако устал.Обычно на каждый чих есть простой пример неепического профита.А тут как-то не срослось.В чем профит ?Что он может чего неможно сделать другими средствами ?
Решил попробовать Юнити.И у меня сразу несколько вопросов:1. В юнити есть встроенный 3d редактор. Есть ли смысл хоть как-то им пользоваться, если умеешь пользоваться всякими 3д максами, блендерами, автокадами и скетчапами и можешь делать модели в них? 2. Как я понял, в юнити есть редактор текстур. Его будет хватать или нужны какие-то сторонние?3. Какие плагины можете посоветовать, если я собираюсь тупо делать рил тайм рендер зданий с упором на фотореалистичность?
>>5342911. Нет там встроеного (по крайней мере не в 5.6 версии) редактора для моделинга.Есть редактор для расстановки на сцене.
>>534283>В чем профит ?Его можно просто, без задней мысли объявить (инстанцировать через new). В отличие от MonoBehaviour, который нельзя просто, без задней мысли объявить (а только через Add Component). Мне сама юнька об этом написала, когда я готовил этот >>533947 пост, потому я в том коде не стал заморачиваться со ScriptableObject, а написал вспомогательный класс, который вообще ни от чего не наследуется. Хотя в том посте, в коде, вспомогательный класс script2 мог бы быть как раз наследником ScriptableObject. Но раз работает и так, то зачем платить больше? А теперь ты идёшь в документацию юнити и смотришь, какими методами обладает ScriptableObject, и если эти методы тебе нужны, наследуешься от него.
Нашел несколько вроде бы подходящих плагинов. Может быть еще что-то посоветуете?Substance in Unityhttps://assetstore.unity.com/packages/tools/utilities/substance-in-unity-110555Post Processing Stackhttps://assetstore.unity.com/packages/essentials/post-processing-stack-83912Polybrushhttps://assetstore.unity.com/packages/tools/modeling/polybrush-beta-111427>>534291-кун
>>534298>Может быть еще что-то посоветуете?Сейчас ты будешь устанавливать все плагины? Будешь делать все игры? Сашко? Цэ ты?
>>534302Плагины в любой программе упрощают жизнь в разы.Если бы у меня сразу были все нужные плагины, когда я изучал 3д, то я бы делал все быстрее, лучше и эффектвнее. Но нет, заместо этого я изобретал велосипеды, хотя мог выполнять рутину одной кнопкой. Порой час времени без нужного плагина заменяется минутой времени в плагине.
>>534304Э нет, Сашко, ты не сможешь автоматизировать сразу всё, выучить за одну ночь сотни плагинов на все случаи жизни, при этом не утруждая себя изучением основ, как это всё работает. По факту, ты сейчас просишь кнопку "сделать заебись":Тэээкс, делаем игру. Я надеваю плащ и волшебную шляпу, достаю ассет "заебись модельки в едином стиле который ты хочешь", сверху на него скачиваю плагин "осознающий себя нейроскрипт", затем скачиваю плагин автоматическое игровое меню-экстрасенс, читающее мысли разраба". Итак, засекайте время, бац-бац, хуяк-хуяк, скачиваю плагин "процедурный генератор интересного контента", хуяк-хуяк, устанавливаю плагин "универсальный конвертор любых анимаций со встроенным валидатором мешей", еблысь-хуякс, накатываю плагин на плагин, надо не забыть сериализацию, вот так, скачиваю плагин "удобная система сохранения", бдыщь-пиздык - готово! Компилирую и выгружаю в стим. 10/10. ААА. Все игрожуры хвалят бесплатно! Называют меня русским Кодзимой.
>>534276Ну приложение такое себе, вроде ничего необычного, но в нем есть своя изюминка. Хотелось бы сделать сорт оф авторизации,и чтоб билд через некоторые время был непригоден к использованию и не было возможности выковырять заставив работать обратно либо чтоб это было очень трудно. Но глядя на то как на многие программы есть кряки складывается впечетление что хуйца так просто можно защититься.
>>534397Для малого объема кода и отсутствии инета - никак.Невозможно создать условия когда взлом станет невыгодным.На большом объеме кода и загрузке проца проверками лехко и интересно.
Пацанва, вот есть функция в классе, в класе есть поле (int), функция делает цикл 50-100 итераций, и при этом каждая итерация читает поле. Если скопировать поле локально перед началом цикла, будет быстрее?
>>534403Да. Компилятор не может гарантировать что переменная не будет изменена сторонним потоком. Потому каждый раз будет читать из памяти. Локальную переменную можно просто поместить в регистр.
>>534413Вообще-то наоборот. Конпелятор все оптимизирует из расчета на однопоточное выполнение.Так что если какой-то поток изменит переменную, то это скорее внутри твоего цикла никак не обнаружитсяДля отмены таких оптимизаций даже специальный модификатор volatile есть
Хочу абсолютно тупорылый вопрос задать, не бейте посоны ООП не понимаю, сишарп начал изучать очень недавно.Есть два префаба, один - ракетница, другой - ракеты. На них в эдиторе ничего не повешено(и вообще невозможно что-то повесить по моему скудному разумению, в игре к которой я пытаюсь прикрутить эту ракетницу свой уже готовый assembly-csharp, что-то прикрутить можно только через длл). В игре я инстанциирую ракеты по клику дллкой и прикручиваю к ним наследующий от MonoBehaviour класс, который должен следить за ее положением, скоростью, количеством топлива. Допустим, у каждой ракеты разный запас топлива.Все вроде как работает, но возникает этот самый абсолютно тупорылый вопрос. Я не могу понять, как обратиться к конкретно этому инстансу этого класса и соответственно, этой конкретной ракете к которой этот инстанс прицеплен. Мне нужно как-то поиметь возможность менять переменную запаса топлива для каждой конкретной ракеты. Но я абсолютно не понимаю как понять что это именно та ракеты, которая мне нужна, это просто в голову не укладывается.
>>534427Штоблять??Что ты творишь!? Остановись! Тебе нужно чтобы просто пушка стреляла ракетами. И всё. Какие нахуй ДЛЛ? Какой ООП? Какое прикручивание классов??? Куда ты полез? Она тебя сожрёт нахуй!
>>534429Я бы с радостью не лез в вещи в которых нихуя не понимаю, но я уже не могу остановиться.>Тебе нужно чтобы просто пушка стреляла ракетами. И всё.Это хуевое описание от непрограммиста кек, нет там никакой пушки и ракет. В игре есть механика выбора объекта через клик мышкой, к ней я прицепился и могу нормально отличить мой объект от других объектов в игре. Но как отличить какой конкретно это инстанс моего объекта? Мне нужно иметь возможность собирать с них инфу скопом, выставлять значения переменных для каждого в отдельности, как-то так в общем. И вот как обратиться к железно тому инстансу который мне нужен, я не понимаю.
>>534430Ну что тебе посоветовать?Изучай юнити. Тут выше в треде тебе советовали изучать шарп на МСДН, это дело хорошее, но помимо шарпа, тебе надо знать особенности движка. Для чего там нужны объекты, как движок ими манипулирует. Какие методы у тебя есть для получения доступа к объектам игровой сцены. А то ты за ночь нахватался вершков, а общего понимания нет.
>>534431Советовали не мне, я левый мимохуй. Я пробежался по юнити туториалам у самих юнитеков, но как-то это дело они либо обошли стороной, либо я просто не увидел.
>>534432>либо я просто не увиделЗыс.Невозможно увидеть всё, особенно, когда "пробежался".Теперь пройдись адресно, выискивая статьи по тем вопросам, которые тебе нужны.
>>534433Знать бы еще что искать эх. Буду копаться.Я вообще думаю вот что, а зачем писать велосипед. В игре это уже все реализовано, когда я копался в ассембли я видел что есть несколько dictionary, при каждом добавлении объекта в сцену и в них записывается инфа об объекте. И в этой самой механике выбора, когда игрок выбирает объект, то игра пробегается по этим dictionary, пока не находит нужный тип объекта и дальше уже решает что с ним делать. Я таким образом и подцепляю свой monob класс к конкретно моему объекту по параметрам, которых у никакого другого объекта в игре быть не может(наверное хех), а потом определяю, подцеплен ли к объекту класс или нет. Может быть пойти дальше и сказать, что если объект выбран, объект отвечает заданным параметрам и на объекте уже есть инстанс моего monob, то этот инстанс и есть нужный мне? Воот.
>>534431>Ну что тебе посоветовать?>Изучай юнити. Не хочешь помогать - не пиши ничего, даун, в зад засунь себе такие советы.
>>534438Нет ну совет-то правильный. Изучать как движок работает надо, иначе так и буду хуйню лепить. Мне просто надо было срочно разобраться в конкретной особенности.
>>534440>Нет ну совет-то правильный.Хочешь еще правильный совет? Иди учись на программиста несколько лет, потом не будешь нас своими вопросами мучить, мы тут не для этого сидим.
>>534441Совет был бы корректен, если бы у меня не было профессии(у меня она уже есть) или я бы хотел ее сменить(нет смысла). В моем случае гораздо логичнее спросить настоящих программистов конкретные направления поиска.
>>534446>конкретные направления поиска.>>534431>Изучай юнити. >>534434>Знать бы еще что искать эхПродолжай спрашивать этого дауна.
>>534427что за хуйню ты там творишь вообще? инстанс класса чего? наследуй ракету от MonoBehaviour и пускай она сама себе там на Update топливо отнимает. нахуй тебе где-то ещё отнимать у ракеты топливо то
>>534447Ну хрен его знает, может чего дельное будет.>>534449Я же говорю, пример с ракетой туповат оказался.Класс наследуется от MonoBehaviour, в нем есть переменные, которые вытаскиваются из параметров аниматор контроллера этих объектов, на который вешается инстанс - это он уже может. Но мне нужно как-то понять, как сделать так, что совсем другой класс будет менять и узнавать эти переменные адресно с каждого инстанса или все значения массово, вот так как-то.
>>534450не совсем понятно о каких ситуациях речь, приведи конкретные примеры. вот есть у тебя хуйня1 и хуйня2 которые представляют собой два обьекта. хуйня1 с аниматором и хватает его значения. их хочет хуйня2. как хуйня1 и хуйня2 взаимодействуют между собой в мире? возможно следует сообщать хуйня2 о хуйня1 через это взаимодействие?если ты хочешь список всех инстансов хуйня1 то это уже другой вопрос и на него другой ответ.
>>534453Постараюсь пояснить что мне надо сделать.Игрок создает объект из префаба. Когда он выделяет его, если этот объект отвечает параметрам, то главная_хуйня2 вешает на него хуйня1, которая в свою очередь вытаскивает значения из аниматора этого объекта.Игрок создает еще один такой же объект, опять же выделяет его, на него подцепляется еще одна хуйня1. И еще и еще и еще.При выделении объекта, который отвечает заданным параметрам и на котором уже есть хуйня1, выскакивает менюшка, в которой через хуйню1 можно контролировать эти значения аниматора на текущем выделенном объекте.Все это контролируется главной_хуйней2, которая цепляет хуйню1 на объект и которой надо знать каким конкретно объектам какие конкретно хуйня1 назначены.Потом, когда игра сохраняется, главная_хуйня2 собирает все параметры из всех объектов, на которые навешены инстансы хуйня1, сохраняет их каким-то пока еще не придумал каким образом и при загрузке ищет все созданные игроком ранее нужные объекты на которых была навешана хуйня1, автоматически вешает на них хуйню1 заново и восстанавливает в ней все значения, которые выставил игрок.Вот примерно то что мне нужно сделать.Я уже могу понять, что это именно тот объект на который нужно нацепить хуйня1, т.к. подцепился к механизму выбора игры, но как мне сказать главной_хуйне2, что именно эта хуйня1 на этом конкретном выделенном объекте должна реагировать на менюшку и как сохранить потом со всех хуйня1 их значения, на каком конкретно объекте они были и потом это все восстановить?
>>534455как-то сильно дохуя абстрактно. два раза пришлось перечитывать. лучше задавай вопрос "у меня есть Х. я хочу У" и схему в пэйнте бы не помешало, возможно пока рисуешь сам поймешь ответ.>Все это контролируется главной_хуйней2, которая цепляет хуйню1 на объект и которой надо знать каким конкретно объектам какие конкретно хуйня1 назначены.ну заведи в главная_хуйня2 коллекцию с объектами которым хуйня1 была назначена, можешь же через объект вытащить нужный тебе компонент с хуйня1, если тебе нужен инстанс хуйня1 если у тебя есть конкретный объект. можно же например взять Dictionary с ключем object и значением хуйня1. ты словарику даешь object, он тебе в ответ "такой хуйни тут нет", или "такая хуйня есть, вот тебе она".и все пары с object и хуйня1 можешь потом ещё и из этого словарика взять.главное не забывать удалять из этого словарика object перед их уничтожением.>но как мне сказать главной_хуйне2, что именно эта хуйня1 на этом конкретном выделенном объекте должна реагировать на менюшкуа зачем в этой логике главная_хуйня2? у тебя же должно быть что-то вроде public class Menushka где просто есть ссылка на нужный ей инстанс хуйня1. главная_хуйня2 же должна только создавать менюшку и возможно хранить список открытых менюшек на случай если захочется их все закрыть. но на этом вклад главная_хуйня2 в этот процесс заканчивается.
>>534457>как-то сильно дохуя абстрактноРискну предположить, что этот анон очень сильно ссыкует спалить свой геймплей, чтобы не увели. Потому такие абстрактные сведения.
>>534459а хуй его знает. я тоже это предполагаю. но ничего не говорит о том что есть вообще что спиздить. может ему и просто показывать нечего так как и нет нихуя.
>>534459>сильно ссыкует спалить свой геймплей>Потому такие абстрактные сведения.Тхис и тупость еще накладывается.
>>534275Я другой анон, но разница есть. Т.е. когда ты скриптуешь поведение сцены (игрок оказался здесь - включаем вот этот объект) ты используешь одни подходы, а когда скриптуешь интерфейс (если здоровье игрока упало ниже 20hp - включаем красный оверлей на камере). Вопрос в более жесткой линковке, например. Вопрос в слежении за показателями (или событийной моделе, которая цепляется именно за своего игрока). Или ты как-то так живешь, что этой разницы не чувствуешь?
>>534483Да какбы для мну что там что там один хрен програмить или юзать инспектор привязками или префабить.Собсна у чела два вопроса - как управлять с нуля гуем и как цеплять гуй снаружи к билду.Первый кодится также как и с обычными объектами, ну то что код другой так это везде так, а может это у юнитехов такой тонкий стеб типа могли сделать унификацию архитектуры, но вот хрен вам.Второй тоже попробовал, гугл не то что до Киива, до Гавриила местами даже тропинки расчистил, к слову в 2018 версии теперь должно быть проще, они там перешли на какую-то знатную шнягу и обросили старые костыли с бандлами итп.
Хочу сделать симулятор менюшек с бегающими человечками типа banished. Как не обосраться с архитектурой? А то боюсь, что если неправильно спроектировать - на выходе получится полтора фпс.
Тут это, настало время подчистить за собой. Пробелма один, есть классы которым требудются апдейты, а в них еще есть другие классы, которые тоже требуют апдейт, и ВНЕЗАПНО, в этихклассах тоже есть массивы сущностей (sic!) требующих апдейт, короче получилась такая лесенка из апдейтов. Как выходить из такого положения? Ну пока что брат жив, но полагаю тут нужен какой-то хитрый менеджер в котором бы еще желательно выставлять ордер апдейта, примерно как у юнити для скриптов. Сущности эти требуются для расчтетов и вычислений, обновлений, вот.
>>534495Я сделал так - общий менеджер с апдейтом, в котором логика всех менюшек и всех состояний вызывается, и апдейты в юнитах для обработки их моделей. Апдейты независимы друг от друга, разве что апдейт в моделях смотрит иногда на состояния из общего менеджера.
>>534450Ёбаная ты чмоня, просто создай открытый вызов в своем манябихейворе, который будет менять нужные тебе параметры.
>>534462Про тупость мог бы и не упоминать, если думаешь, что в юнититреде кто то спиздит твои гениальные идеи и завтра зальёт в стим.
>>528658> у тебя есть просто олигарх который как химера собран из кусков других существНо ведь, справедливости ради, этого же можно добиться и без ECS при помощи интерфейсов:class Oligarkh : IBoss, IHuman, IRich, IPhat, IJew, IHasCock, IOwnsPussy, IFriendsDjigurda {}
>>534517это не совсем так. интерфейсы предоставляют реализацию конечному классу, тогда как в ECS реализация не предоставляется. и каждый кусочек пазла должен уже в себе содержать реализацию.
>>534520Ага, таким образом самая простейшая в вакууме реализация ECS будет:class Entity{private List<Entity> components;public AddComponent(Entity component){ components.add(component); }}?
>>534521Хотя нет, лучше так, наверное:abstract class Component{}class Entity{private List<Component> components;public AddComponent(Component component){ components.add(component); }}class Dooer : Component {public void DoSomething{ Console.write("I do!"); }}class System1{Entity entity1 = new Entity() { AddComponent( new Dooer() ); }}
Подскажите как фиксить перекосоёбливание камеры как на видрилейтед в конце.Кот: Quaternion to = Quaternion.FromToRotation(transform.forward, -snakeHead.up) transform.rotation;transform.rotation = Quaternion.Lerp(transform.rotation, to, rotateSmooth Time.deltaTime);
Quaternion to = Quaternion.FromToRotation(transform.forward, -snakeHead.up) transform.rotation; transform.rotation = Quaternion.Lerp(transform.rotation, to, rotateSmooth Time.deltaTime);
>>534536у меня была идея прибавлять новое вращение к старому типо застакать что бы получилось конечное вращение, но нихуя не вышло т.к. рак мозга
Сап. Есть в Юнити инструменты для создания AR-приложений, не использующих маркеры? Я знаю, что есть ARCore, но он работает лишь на некоторых моделях телефона. Есть ещё что нибудь? Конкретно, мне бы хотелось создать приложение, которое превращает пол в квартире в траву.
>>534521>>534524довольно отдалённо. вообще конечно пример с интерфейсами ближе к реальности. можно же сказать "вот для группы у которой есть позиция, ротация, кошелёк и член ебанись ка этот код". но разумеется это будет поток боли, так как переиспользовать код по человечески нельзя, эвенты тоже нормально нельзя, ссылки нельзя. много чего нельзя. вообще интерфейсы как правило ебошат же чтобы проверять наличие какого-то функционала не ожидая что он есть вообще. чтобы ты такой хопа if target is IPickable DoSomeCode(target as IPickable), для этого ECS тоже не подходит так как надо заранее сказать "хочу всё говно с IPickable"всё это напоминает тот самый аутизм с оптимизоном когда ты все свои данные представляешь как несколько массивов со struct и ебёшся там с индексами, разве что удобств заметно больше.это всё просто замечательно, пока имеет разумные размеры.>>534536чисто так, интересно, а хули ты камеру крутишь? вместо квадратика?а вообще дай ка весь код.
>>534536Ну во-первых у тебя тут знаки проебались.А во-вторых - где этот код вызывается? На камере или на кубе? И змейка как у тебя представлена?
>>534541>можно же сказать "вот для группы у которой есть позиция, ротация, кошелёк и член ебанись ка этот код". но разумеется это будет поток болиРазумеется. Только при чём тут ECS?ECS не про группы и групповой вызов кода, насколько я понял, ECS это про то, как для реализации игровой логики создаются объекты-системы, код которых строится из взаимодействия объектов-компонентов внутри объектов-энтитей. Я неправильно понял?
>>534542>>534541>>а хули ты камеру крутишь? вместо квадратика?куб как в майнкрафте сделан из блоков и не вижу разницы>> И змейка как у тебя представлена?код весит на камере, а по "snakeHead.up" можно понять что голова змейки это двигающийся квадрат
>>534546>>куб как в майнкрафте сделан из блоков и не вижу разницыведь принцип будет тот же, он не успеет докрутится начав новое вращение и его перекосит как камеру
>>534543а нахуй он нужен если не использовать его для ебанистических групп то? ты суешь себе кочергу в задницу в обмен на производительность. оно не даёт плюсов за пределами этого. я уже привёл пример с массивом структов, я не знаю что к нему ещё добавить.>>534546>>534547>>534549ну добавь какое-нибудь округление ротации. например код этой крутилкиhttps://pastebin.com/DW6gpuJ6
Ну допустим я создал с помощью Vuforia приложение, которое отображает объект при наведении камеры на маркер. Можно ли как то сделать так, что бы объект не пропадал в том случаи, если маркер уже не попадает в область камеры, но сама камера ещё смотрит на объект? Допустим у меня высокая башня, и я, стоя к ней близко, хочу посмотреть на верх башни.
>>534556лол ну сохрани позицию объекта и попробуй угадать где он основываясь на какой-нибудь техномагии.а вообще тут икспертов по AR я не видал. лучше игры делать
>>534550> например код этой крутилкиспасибо большое, но теперь чувствую себя хуесосищем бездарным, опущеным в парашу всей головой. Такая мелочь, но сам бы не додумался https://pastebin.com/MujJrQHU
>>534563 >>534562лол это же обычное дело когда самые тупые и очевидные решения приходят в последнюю очередь. я много раз когда ложился спать и уже окуклился в одеяльчико неожиданно понимал это решение, вскакивал и записывал его.>>534565я могу только выразить отсутствие наблюдаемых экспертов. а вообще. возможно тут? https://developer.vuforia.com/forum
>>534566>https://developer.vuforia.com/forumНу я надеялся на ареал обитания российских экспертов по AR
>>534567ARVR - новая область. Вкатываясь сегодня, ты можешь стать одним из наикрутейших отцов-первооткрывателей индустрии.
>>534567На дваче ? лолА по существу не ведись ты на апи вуфоровцев, также как и производители видеокарт они будут по капле вливать типа иновацыи и тянуть резину до второго пришествия.Делай сам распознавание что сложного то ?
Корчое так, вот есть у меня класс-система с другими класссами-сущностями, , ну лежат там в списочке, апдейятся, то се, я их щипаю через GetBar(), и все хорошо, но есть одно но, если я его не использую, он дальше себе апдейтится и обновляется ,в памяти, а корчое как сделать так чтоб скотина удалялась то? Монобихавор юзает только публичные функции, и получает ссылку , а сам класс-система, не знаю ничего о монобихавере. Как итого неизвесно, кто юзает или юзает ли вообще сущности из класса-системы, я не использую ECS, просто обозвал так для наглядности. Что делать пацаны, может давать на вход системы монобихаворный парашливый компонент, а система уже будет смотреть. если типа компонент использует сущность, знач удаляем старую, и вставляем новую, хочется вообще почтиать про этот ваш ECS и научится работать с ним, тем более что пирфоманс, мультипоточность это как раз та пилюля что доктор прописал.
>>534582Оче мутno, понRтно ниhуя. Если монобех изменяется благодаря какой-то инородной субстанции, то кто сейчас их склеивает? Почему там же не сделать подсчет ссылок? Если монобех знает о некоей внешней субстанции (т.е. если у тебя есть компонент ЮзательИнороднойХуйни), то ты можешь сделать синглтон-счетчик, на Awake ЮзателяИнороднойХуйни регистрироваться в синглтоне, на OnDestroy выписываться и там же считать кто нужен, а кто нет.
>>534577>Делай сам распознавание что сложного то ? Во времени очень ограничен. Да и оказалась, что Vuforia по умолчанию поддерживает нужную мне функцию
>>534582Если всё совсем хуёво у тебя - делай один единственный апдейт в каком-нибудь апдейт-менеджере и подписывай в него списки апдейтируемых объектов, и регулируй, вызывать ли апдейты (обозванные как-нибудь MUHUPDATE()) в этих объектах через их наличие в списке.
Есть наклонная поверхность. Также есть Rigidbody с CapsuleCollider'ом.Если я двигаю его под поверхность, то он просто проваливается. Как это пофиксить?
>>534625> Как это пофиксить? Вариант первый: дикий костыль на скорую руку.На месте назначения движения проверь (высота земли - высота первого колайдера над землей) и если она не вмещает высоту перемещаемого объекта не двигайся туда.Вариант второй: еще более дикий костыль, но с привкусом мышки редактора.Вокруг(рядом, снизу) объектов под которые объект не может заехать из-за габаритов поставь еще колайдеров вида стенка.
>>534295>(инстанцировать через new)Так, паддажжи, ёбана. Разве SO - это не такая .ассет-хуйня, которая лежит в файлах игры(в асстах) и не может быть создана в рантайме?
>>534643Там у юнити вообще, судя по всему ничего в рантайме нельзя создавать, а не то юнитеки по ручкам надают и пожурят, нахуя ты кодишь, когда ассетфлипать нада?
>>534647>Лютое дело? Да не очень. Шейдер это посто программа определяющая цвет пикселя. Передавай ей на вход геометрию, текстуры, свет, окружение, время и вообще любые нужные данный и все будет.>Нужно шарить в геометрии?Скорее в математеке надо шарить. Интерпояции, вектора, правильный расчет лода, вот это вот все.Из геометрии в шейдарах есть стадия геометрического шейдера, но в нем не ничего сложнее треугольников на выходе и произвольных данных на входе. Можно процедурно сгенерировать произвольный мешь и сразу его нарисовать. Фича ограниченно пользуется для систем частиц и генерации всякой несложной типовой геометрии, но на старых девайсах она не заводится.И да анонас тебе правильно говорит, купи лучше нужный шейдор за $5 в ассет сторе это позволит съэкономить прото гору времени на отладку и тесты.
>>534627Не знаю, но предполагаю, что пол имеет более высокий приритет чем наклонная поверхность из-за вектора гравитации. Есть некоторый объект стоящий на другом объекте, чтобы правильно разрулить их коллизии нужно взять самый первый объект в иерархии против вектора гравитации, объявить его "неподвижным", а все остальные вытолкнуть вверх. Так касула "стоит" на земле после первой итерации физики. Потом внезапно она становится вторым объектом по вектору гравитации который нужно решить а решать ее нужно со всеми обектами что остались выше ее. И тут проихдоит майндфак - выше объект тоже закреплен и неподвижен и его выталкивать навех нельзя, значит надо двигать капсулу вниз, под землю. Капсула погружается под землю на второй итерации физики. По хорошему физику следует решать до тех пор пока не будет пересечений по всякому протбуя растолкнуть объекты, но можно ведь и не решать, а принять, что за N шагов будет достигута нужная точность решения "снизу-вверх", если моделировать простую гравитацию.
>>534627Видишь ли о мудрый Каа, при рассчете физики, сколько по твоему коллизий будет у наклонной и горизонтальной поверхностей на единицу времени ?Про то что проваливаться при континиус вобще-то не долно, скромно умолчим.
Давайте представим так, есть класс SolarSystem, в нем есть планеты, соларСистем получает апдейт и апдейтит все планеты, планеты создаются констуктором на старте и по ходу. Теперь нужно взаимодействовать с юнитимиром, делаю СоларСистемМенеджер, пишу туда чтоб на старте раскидала обжекты UnityPlanet : MonoBehaviour, и каждому монособачему компоненту через Activate() вхуячиваю инстанс Planet. Вот планета крутится, гравитация мутится, тут я такой навожу мышку и ВНЕЗАПНО начинаю крутить колесо, срабатывает функция SolarSystem.ReplacePlanet(this.planet) из монопсины, все, я сижу на экране с новой планетой, из памяти старая удалена и отправлена на помойку, производительность цела, компилятор жив. Правильно ли так делать, когда оснвной замес в памяти происходит не выходя за пределы, нужно всего лишь визуализировать неболььшой кусочек.
>>534656Нет так делать неправильно, но для прототипа сойдет.>монособачему >монопсиныРот с мылом помой.
>>534656>начинаю крутить колесо, срабатывает функция SolarSystem.ReplacePlanet(this.planet) из монопсиныА почему в таком случае не срабатывать приближению камеры в обнимочку с LOD'ом (или еще какой резиновой женщиной самопальной лод-системой)?>Правильно ли так делатьНу вот можно так делать, можно так не делать. Правильно это вопрос контекста. Идея с камерой тоже ни "правильная", ни "ошибочная". Или ты говоришь о том, что юнити-объект пересоздается когда мог бы и не пересоздаваться? Тогда ты должен быть твердо уверен, что сможешь бросить изменить поведение в любой момент - и не бояться теоритических тормозов.
>>534655Что, блять, значит "не должно"?1. Переключить на континоус2. Запустить и проверитьЧто я, по твоему, упустил?
Посмотрел я сейчас что на рыночеке творится - и у меня возник вопрос: а нахуй ковыряться в этом самом юнити? Зарплаты никакущие - новичку юнитиводу платят 30к (хотя требований к нему столько, что пойди он в веб - ему с его скиллом все 60 дадут), 80к считается очень и очень неплохой зарплатой. Если работать не на дядю - то тут вообще говно вырисовывается, ибо без бюджета в пару лямов рублей на маркетинг шанс заработать больше, чем заработал бы в макдональдсе меньше, чем выиграть в лотерею. В чем наебка? Есть какие-то масленные места и схемы заработка, которые я упускаю? Почему все так упарываются по геймдеву и дрочат эти ваши юнити?
>>534660>пару лямов рублей на маркетингА что ты с ними делать будешь? На объявления в фейсбуке пустишь?
>>534660В гейдеве и радиоэлектроннике работают ебанутые фанатики, потому такие маленькие зарплаты и такое отношение работодателей.
>>534662Твоё говно тяжёлое по по вычислениям и разрушится от первого рефакторинга. Включать компонент один хуй тяжело, что юнити будет его включать, что ты в коде.Только когда написал простыню текста понял о чем ты говоришь. Мысли ты выражаешь ужасно. От этого страдает и твой код. Твоя идея рисовать по минимуму верна, но сделана плохо.Я так понял у тебя есть куча планет со своими свойствами, но видно только одну и можно переключаться между ними через скролл?
Посоны, роюсь в ассетсторе. Меня заебало это делать вруцную. А там нет случаем АПИ? Хочу табличку ВСЕХ ассетов на сторе, с рейтингами в текстовом формате. Потому что переходить по ссылкам через всторенные интерфейс заебало.Может такое есть? Ну скачатъ список ВСЕХ ассетов в текстовом формате мне для парсинга. Ну а по сути я просто хочу1. Мне уже чисто интересно, сколько ж их там вообще? 1000? 10000) МИЛЬЯРДЫ?2. Наверняка из них всех если отфильтровать все с рейтингом меньше 3х, меньше 10 лойсов и обновляемые хотябы раз за этого год то останется не так уж и много. Можно пересмотреть за неделю.Или может есть какой-то внешний сайт с табличками итп?= Или у них есть более продвинутый поиск по ассет стору?
>>534660>В чем наебка? Есть какие-то масленные места и схемы заработка, которые я упускаю? Почему все так упарываются по геймдеву и дрочат эти ваши юнити?Как и везде, работодатель согласен платить не больше чем суммы, на которые соглашаются работать соискатели. Ты хочешь получать от 80 и выше, но вокруг куча народу шарит поболее тебя и готовы работать за 20-тку. Ты сидишь на жопе и сосёшь хуй, либо соглашаешься на 15-шку.
>>5346751. https://assetstore.unity.com/search/?k=type%3Acontent&order_by=relevance&q=type%3Acontent&rows=42 x1154 страниц это 48к - скоро юбилей2. открой браузерную консоль, напиши скриптИ очень большая ошибка ориентироваться по звездам. Ассет свыше 50 баксов очень часто оказывается оверинжиниринным говном, которое заражает пользователей Стокгольмским синдромом. И есть крутые ассеты которые или новые, или не раскручены автором.
>>534681Да, я понимаю что метод не идеален. Но как еще? Просмотреть 48к ассетов вручную, каждый скачатъ, потестить и потратить недельку на вдумчивое чтение туториалов, ютюб роликов и пиление небольшого прокетика? Такой способо подходит для изучения ЯП или библиотек. Но вот разобраться в 48к юнитипакетов таким образом времени не хватит.
>>534660Есть. Учить UE, С++ и разные сложные темы новичкам недоступные. Всё как всегда в итоге. Алсо, тут бабло есть только у издателей и владельцев, идти сюда имеет смысл только если твоя цель в итоге стать одни из.
После запуска (play) проект и иерархия становятся вот такими красными. Причём это не тёмно-красный, как пропавший префаб. А яркокрасный. Кто-нибудь сталивался с таким? Это можно починить? Что собвенно это значит? Сломана сцена или редактор? Переустановка 2018.2.12 на 2018.2.14 не помогает.
>>534678Я так не понял что ты хочешь сделать. По скролу на планете что должно происходить?В любом случае в ECS планета/вся солнечная система это сущность с кучей компонентов, если для разных удалений(я так понял у тебя на это скрол завязан) нужно отображать разную инфу, то просто включай/выключай нужные компоненты отображения без ее реального пересоздания(по сути такое поведение это самопальная лод-система, ее можно будет потом отдеить от планет).
>>534660Ой вэй не понял вопроса.Зачем ковыряться когда там уже все разжевано ?Зачем работать на чужого дядю если например ты даже поспать норамльно не можешь ибо идей столько что натурально рвут крышу ?Лепи поделия пхай на маркеты индигогопатрены и прочие кикстартеры.И будет тебе (если ты художник хотя бы в музыке и графоне) стабильный доход.
>>534563Короче, теперь разбивай куб на квадраты и шумом перлина поднимай вершины куба случайноПримерно вот так:https://youtu.be/gIUVRYViG_gМимо анон
>>534721есть лолно ты ведь имеешь ввиду бесплатных рабов которые будут рисовать по твоей прихоти и твоему быдло кодерскому вкусуа потом ты всё равно дропнешь проект и все отрисовкачасы пойдут по пиздетаких нет, извеняйзачем мне рисовать твои идеи, когда я могу рисовать СВОИ идеимои идеи-то получше а твои говно
>>534685Я по ассет стору шарился много. Понимаю его мощность, и когда надо что-то найти - рука набита, посмотреть 10-50 страничек могу быстро (внутрь ассета заглядывать далеко не всегда надо). Правда, посмотреть - не факт что найти, т.к. 48к поделим на тематики, да на стилистики, да на применимость к текущим ассетам... Короче, когда будет 480к будет хорошо. Но, как бы то ни было, когда смотришь массив ассетов, часто новые идеи появляются (порой даже легкие в реализации). Так что очень рекомендую уделить время на изучение части стора.
>>534728Это же лишь твои догадки. Да и не бесплатно, а за общую идею. :^)Да и плюс твои идеи могут перерасти во что-то более комплексное, найдя ты хорошего программиста на unity.
Читаю я значит этот туториал:https://unity3d.com/ru/learn/tutorials/topics/physics/physics-best-practicesГде сказано, что, мол, лепи ригидбади, коль коллайдер двигаешь.Ну налепил я их и шо я таки в итоге поимел - ~85 fps вместо ~120 без них.Где я проебался? Кинематик поставил.Ворнинги, кстати, без ригибади, тоже не видел. Объекты с коллайдерами двигаются.
>>534737>в итоге поимел - ~85 fps вместо ~120 без них.>Где я проебался?Ты проебался в том, что думал, будто симуляция физики обойдется тебе бесплатно или сущие фреймы, а оно вишь как. Теперь ты много задумаешься, нахуя игроделы такие трюки выдумывают, как знаменитый поезд-шапка у Тодда.
>>534739Так, паддажжи. Мне простой коллижн-детект нужон и я использую коллайдеры. Умные дядьки написали типа нужно присрать еще к каждому коллайдеру ригидбади обязательно и будет пиздато, а иначе пиздато не будет и пидором станешь. Но на деле все наоборот получается.
>>534740Поздравляю ты купился на разводку, как наивный дурачок. Смотри не нарушь закон, а то на зоне сразу же петухом станешь.
>>534740Не мороси ебана. Чтобы столкновения детектить, рижидбоди нужен только на одном из двух коллайдеров. Лучше распиши чего ты пытаешься добиться и тебе пояснят как лучше можно.
Скачал vectrosity, держит 50к лайнов, 80к vector2 в листе, но когда жму пробел (начинает апдейтить каждый фрейм), фпс падает до 40 в билде. Столько лайнов с головой хватит, но интересно что может ботлнечить? Может сам вектросити прожорливый с оверхедом? Стоит ддр3 зачтыка на 1гб, память ddr3 1600
Аноны, я новенький, на прошлой неделе начал учиться программировать, и вот мне не нравится, что в юнити все через отдельные Update() делается (как я понял). Нельзя ли все это как-то централизовать, сделать, скажем базу данных, в которой будет храниться все об игре, а сама игра будет просто эту базу теребить и рисовать соответствующую картинку?
Апдейт не относится к рендер-луп если ты об этом.Он дает возможность твоему скрипту как бы выполняться в нем.Но ты можешь не юзать апдейт.>>534768>все это как-тоЧто именно ?Можно то много всяких штук, от простигосподи синглтонов до экстентов через статик класс всего и вся.
>>534768>сама играсама игра это как раз твои скрипты а юнька от себя дает только обвязку орхитектурой и рендер.
>>534768Ты не очень понял, что такое юнити. Это вот такие штуки подключаемые https://assetstore.unity.com/packages/3d/animations/horseman-animation-collection-11545 , а для "мне только рендерить" бери https://github.com/Izzimach/react-pixi и не выебывайся.
>>534869Пост-эффекты. Только не перестарайся, а то https://www.playground.ru/blogs/battlefield_4/6_naibolee_uzhasnyh_graficheskih_effektov_kotorye_nuzhno_ubrat-140420/ получится.
Что думаете про alloy? Выглядит вроде как миленько, все йобы в наличии и бесплатный к тому же.https://assetstore.unity.com/packages/vfx/shaders/alloy-physical-shader-framework-11978
>>534903Я твою игру уважаю, но это совсем не приличная коробка из UE. Просто не совсем хуевая картинка с минимумом пост-эффектов и плохо запеченым амбиентом.
[code]fillTexture.wrapMode = TextureWrapMode.Repeat;fillTexture.Apply();EditorUtility.SetDirty(fillTexture);AssetDatabase.SaveAssets(); [/code]посоны, почему текстура всё равно остается в Clamp-warp-mode чяднт?Из инспектора всё работает.
>>534934Бро, спасибо за вежливость, но это не моя игра. Пикрил (нашелся в гугле) именно чтобы продемонстрировать было/стало. А так можем кадр из юнитевской демки https://www.youtube.com/watch?v=GXI0l3yqBrA посмотреть: глубина резкости (depth of field), очень аккуратный блюм (или даже хитрый LUT), sun shafts (хотя и не факт, что он тут пост-эффектом реализован), яркость+насыщенность тоже не "как в текстурах было" и (подозреваю) туман в зависимости от глубины.На второй еще и хроматическая аберрация (чем дальше от центра экрана - тем сильнее), а на первой картинке её нет.
>>534934А, ну да, еще источники света как надо стоят. Тени, наверняка, везде где можно запечены (хотя я их не запекаю - не могу ничего толкового сказать). https://blogs.unity3d.com/cn/2016/09/28/in-development-progressive-lightmapper/ , https://docs.unity3d.com/Manual/LightMode-Baked.html
>>534995Ну ебана бля. Ты как первый раз штаны обоссал. Все демки всегда делаются для супер-пупер оборудования. Не удивлюсь если он риалтайм на компе со спаянной вручную материнской плате, в которую воткнуты 146 видях.
>>535016Запускал адама на одной 1080 как она только вышла(да и адам был свеженький) Вроде норм, притормаживало при ассинхрронной подгрузке в сцену всяких ресов и выгрузке из нее, и еще где пидюков овердохуя - пролагивало. Но тут вопрос не в видюхе.И да - все эти прелести - они же без HDRP этих ващих
Есть у меня здоровое здание, для сохранения приличного texel density собираюсь обмазать его стену тайловой текстурой и чтобы не палилось повторение сблендить несколько тайловых материалов по карте. Как такое провернуть в юнити? Как быть с запеканием света при тайловой развертке? Прийдется юзать amplify?Также реквестирую тулзы для рисование и обмазываения тайловых текстур для последуещего блендинга, substance painter для этого не очень подходит.
>>535028Очень странные вещи спрашиваешь. Свет падает на отдельный канал. В принципе ты их можешь юзать сколько захочешь, только нахуя? Это нужно людям чаще при расчете на шейдере какой-нибудь фигни, типа карты повреждений, где цветами выведен коэффициент хитпоинтов. Художникам это нахуй не надо, и лучше не трогать - делать красивую одноканальную развертку, знать, что тень расчитывается на отдельной ювишке и эить с этим.
Анон, помоги разобраться с кодерскими штуками, сорян сразу если что-то не так говорю.В C# обычно пишу функциюpublic void test(){Какой-то код}Недавно встретил такую штукуpublic void test(Чота написано){Какой-то код}Не понял, что это за штука написана в тех скобочках. Что это дает, как называется? Прошу помощи, вдруг у тебя анон получится обьяснить человеческим языком?
>>535050Это (Чота написано) аргументы функции для передачи каково либо значения в функцию, ты что основ не знаешь?
>>535050Бро. Это, как тебе уже написали, аргументы. Если ты где-то (в другом, или в том же самое скрипте) вызовешь .test() - исполнится первый метод (метод это функция-для-объекта), если напишешь .test(чёта) - исполнится второй метод. Но. Как бы это тебе сказать помягче. Я забыл порядок цветов радуги и таблицу умножения для восьмерки - подсоби, будь добр. Иди в официальные туторы юньки и учись, нехуй тут эфир засорять.
>>535050Купи книжку по программированию для самых маленьких и прочитай ее перед тем, как к компьютеру подходить.
Анон, юнька виснет при попытке изменить аватар у модели с ригом импортнутой из блендера, кто-то сталкивался?
Господа, подскажите пожалуйста. Есть у кого оффлайн-документация по Юнити 3.5.7? Или в онлайне, похуй собсно. Пока нашел ток в веб-архиве, и то под более позднюю версию(4.х).Спасибо
Так это, джоб систем типа паралелит скрипты? А то я в один все сьебашил, чтоб одно и тоже дйствие не повторять по всех. При перемещении канвасов мне нужно получить ворлд корнер и траслировать 3d в 2d через RectTransformUtility, ну и я такой думаю, а че это я вообще должен в каждых 10 скриптах получать корнер, если могу все в одном, а в адейте поcчтитать цикл в цикле, вместо того чтоб кажlsй скрипт делал свой цикл. В цикле работа со списком и векторами, не сказать что много забирает кекопроизводительности, но вполне ощутимо. А что если я сделал неправильно, и бруст компилер/джобсы наоборот мне помогли бы?
Кидаю на 2д-сцену спрайт. Прикрепляю к нему 2д-риджидбади.Запускаю.Падает.Окей.Кидаю на сцену спрайт. Прикрепляю к нему 2д-статикбади.Запускаю.Падает. На 5-10 пикселов входит в статик, затем выталкивается обратно.ЧЯДНТ?
Как подключить библиотеки Юнити для кодинга без самого Юнити? Хочу в Notepad++ воткнуть, чтобы он всё это читал и можно было кодить на компе без Юнити (места просто на компе 2гб свободного, комп полевой).
>>535091Юнька в своем репертуаре. Можешь на https://docs.unity3d.com/Manual/ManualVersions.html тыкнуть "Report a problem on this page". Им будет похуй, зато ты еще долго сможешь рассказывать, ну какие же они пиродасы.
>>535065но зачем тебе документация на старую как говно мамонта версию юнити?>>535069много жрет чтоли? нахуй тебе возня с такими мелочами? а так вообще да, джобс это хуйня чтобы паралелить код. Там всякие интересные полезности есть вроде быстренького копирования информации в потоки и прочего.
>>535260Хотел в будущем построить сорт оф спектрограммы, нужен тупой брутфорс миллионых списков, с многопоточностю мало знаком, и если юнити дает тулзы для ленивых которые нагрузят все потоки под завязку бесплатно без смс то я готов ими воспользоваться.
Почоны, помогите дегенерату. Как правильно апдейтить InputField?Хотел этим вот назначать WAAGH через инпут филд:if (int.TryParse(waaghbar.text, out int value)){ if (value < 0) { value = 0; } selectedOrc.WAAGH = value;}И все заебись рабтает, да вот только изменения не отражаются в инпут филде, потому что у меня много оркоты и у каждой разный ваагх. Когда я пытаюсь повесить вот такую хуйню в апдейт:if(selectedOrc){waaghbar.text = selectedOrc.WAAGH.ToString;}по идее эта хуйня должна вытягивать из орка его текущий WAAGH, если я его выделил и пихать его в инпут филд. WAAGH изначально нуль, в процессе игоря он поднимается, ну и опускается.И оно действительно вытягивает, просто спамит этот ебаный нуль и я не могу воспользоваться инпут филдом вообще. Мне кажется зря я вообще в Update такую хуету тащу. Навесить апдейт гуя на сам селект пробовал, но почему-то обычный дебаг лог подтверждает что все работает и оркота выделяется с первого раза, а вот вызов апдейта гуя работает только после повторного выделения.
>>535299Решил булевым костылем, который запрещает эту строчку, когда когда триггерится onValueChanged и разрешает, когда триггерится onEndEdit, но наверняка есть другие способы, получше?
>>535301public static class ChmoExtension{ public static void TrahnutMamku(this 535301.Mamka whore, penis elda) { whore.Insert(elda); }}
>>534949О, привет. >>535094>сталкивалсяТак всегда так было. Попробуй Юнити обносить, да ставь на паузу когда профайлишь, и окошки активируй во время (оно вроде не жрет пока окно не активно)>>535334Спасибо>>534660Но ведь ХХ.ру даже в ДС2 обещает 80-120 даже миддлу.
>>534676Вот никогда не понимал этой демпинговой логики. Занимаюсь исключительно VR-ом последние 4 года. Бывает звонят - фрилансер нужен, сроки две недели, работы на пару месяцев если в обычном режиме, тз почти согласовано, есть графика почти вся... Озвучиваешь ценник - мол час столько-то, спать времени не будет, я не враг здоровью, потому еще и за это сверху возьму. А тебе "по рынку в среднем дешевле, есть ребята, которые за еду работают" и прочее прочее. В итоге твоя цифра отличается от цифры заказчика почти в 10 раз. Они тебе про тридцатку за две недели марафона(!) а ты им про три сотки. А итог всегда один - звонит менеджер, что твой корешь - и говорит, что "из-за тебя сорвали проект, что ты не взялся и попали на штрафы в пару лямов". Жиза. И такое 4 раза за последние пол-года. Все эти менеджеры любители фрилансеров придумывают себе каких-то разрабов, которым можно платить по 10ке в неделю - и это типа средняя по рынку. Не ведись - плюй в лицо тем, кто несет чепуху про фантастически дешевых разработчиков. Их нет, не было, и если ты не будешь дураком - не будет
>>535362Лучше работать на дно работе по фиксированому графику без переработок чем не спать ночами и выжигать глаза кодом.
>>535366О том и речь. Уже дошло до того, что ценник фрилансерам выставляют при сжатых сроках расчитывая цены исходя из зарплат на местах. Разница да - ты спишь и имеешь рабочий день (кроме дедлайнов, но в нормальных конторах за это приплачивают), можешь отлучиться на пожрать в рабочее время, может развеяться и заняться чем-нибудь ненапряжным, благо это в офисе всегда понимают, порисерчить в конце концов, почитать литературу по работе. А тебе на вышеперечисленное - "все это несущественно, ты же все равно без работы сидишь". Потому ценник исходя из минимальной ЗП, найденной на хедхантере за джуниора. Платят ему 70к - значит две недели на фрилансе - 35 и неебет. Таких надо сразу нахуй слать и вообще ничего не обсуждать. На твою цифру - "мы такое в бюджет не закладывали, и вообще заказчик бы отказался, если бы мы дороже сказали". А почему это должно быть головной болью разрабов?
>>535367Играем в "менеджера долбоеба"? - У нас есть ребята в регионах и для них это нормальный ценник. Не знаю почему тебе должны платить больше
>>535370>- У нас есть ребята в регионах и для них это нормальный ценник.Ваще лол, я работал реакт разработчиком удаленно без переработок и с адекватными сроками, мне платили 25 000 рублей.>Не знаю почему тебе должны платить большеМожет быть по тому что у вас не таких ребят которые работают за миску супа.
>>535372Это за какую единицу времени?По поводу второй части. Именно. Потому схема работает в виде торга, только в обратную сторону. Тебе озвучивают ценник, ты закладываешь все свои траты и время и озвучиваешь немного с запасом. Тебя шлют нахуй. Через неделю перезванивают, мол так и быть, ты заебал, сроки горят, но мы кое-как выбили денюжку на тебя. Но ты озвучиваешь уже ценник больше ибо неделя прошла и значит ебашить надо усиленнее, чтоб уложиться(что логично)
С какого анон ты сравниваешь ставку сталевара и геймдева ?Вот смотри сталевар отпахал выплавил котел металла и получил свою тридцатку.НО !Его работа это капля в море остальных работ делаемых другими людьми. Тут вас приглашают делать игру и платят по часам, а потом пиздос спасибо что отлизали ?Да с какого члена ?Все кто пахал на игру режут бабки с пирога продаж в пропорциях и никак иначе.Хитровыебаные пидоры манагеры пусть идут нахуй, посмотрим как они сами ззаебашат игру, посмеемся.
>>535382Никто так не работает - не поверишь. Есть люди, которые ответственны за происходящее перед инвестором или владельцем, есть команда, нанятая наработу. Тут не Пало Альто чтоб при устройстве на работу выделялся депозит, подъемные и опцион от доли в проекте. Люди работающие на опционах - обычно просто работают там, где нет денег на разработку, а значит что нет инвестора, а значит - проект говно и это индишкольники из телеграм канала @Govnodev
>>535383Ну как сказать, было дело пердложили написать магазин онлайн.Сразу поинтересовался про мой процент, строго по Марксу ни копейки лишнего.Сказали хренте в грызло.Ну окай отказал, насколько знаю магазин они себе так и не слепили.Сижу в уютной юньке, имею тридцатник чистыми.Собрались втроем слепили системку на отвали бабки попилили, всем хорошо, манагеры сосут, туда им и дорога.А про ответственность, смеюсь с такой ответственности, Готику грохнули, дохрена игр грохнули, какие то вобще закрыли.Денег вбухано немерено.Манагеры отделались общими словами и легким испугом.
>>535388Штрейкбрехом и не пахнет. Я за то, что разраб, получающий 30ку и при этом не совмещающий со школьной скамьей не особо имеет право рассуждать о проценте каком-то в принципе. И обвинять кого-то в штрейкбрехерстве тем более.
>>535390Тактактак, что-то ты меня смутил прямо.То есть вот давай подумаем.Вот пустое место.Вот появился манагер и подумал, а не замутить ли игру.Вот пригласил команду из пяти человек.Обратим внимание что (в упрощении) кроме еды, электричества, и оплаты места проживания других амортизаций просто нет.Нет завода построенного тучей людей под скользящие займы, нет тучи обслуги этого завода, нет закупки ресурсов ... Вот игру выпустили и она снискала лавры и всеобщую любовь (упрощаем)В каком отношении надо делить прибыль между этими шестью человеками (ну ок добавим бухгалтера и юриста) ?
>>535392Есть инвесторские деньги, ответственность за них, офис обставленный чтоб было комфортно, оборудование, компы, софт, деньги на корпоративы, реклама(!), серваки, сисадмины и прочий стафф аля эсэмэмщики и даже уборщицы, поддержка, и зп не исчесляющаяся в говяжьих анусах как у тебя, а позволяющая тянуть семью прикинь, два ребенка в частном детском саду - это 70к в месяц, тачку, ипотеку и отдых. И про шесть человек - ты дебил? Не бывал в студиях по 60-100 человек?
Кстати да, при привлечении внешних инвестиций это понятно.И снова жирное такое, НО.Пусть инвестиций будет лимон баксов, а игра очевидно взяла десять лимонов на продажах.Как теперь делить ?Даже с учетом амортизации этого лимона под божеские 30 процентов.Нет если зарплаты овер тридцатьтыщбаксов, вопросов нет.>>535394>И про шесть человек - ты дебил? Ойвэй, разве я где-то сказал что это ММО грейд ААА ?Так что 6 человек это еще по божески.Но отыскав алмазов неграненых в количестве трех человек (график, музыкант, сценарист) и при этом каждый может в хоть какой-то архитектурный програминг, получим тоже самое что и с десятью посредственностями или пятнашкой омежек с манией величия, а по факту ремесленников.
>>535369Мне тут на днях 5к рублей в месяц предлагали, типо стартап, денег, все такое.Ты какой то фантазер. Такие вопрсы решаются при найме, договор называется. Или ты подписываешь один договор в стиле "обоссыте но наймите" а потом требуешь 100500 денег за процент от взлетевшей игры?
>>535397Что ты за хуйню пишешь? Я тебе говорю, что есть на рынке клинические идиоты, что демпингуют рынок своими услугами в три-четыре раза меньше среднего по рынку - ты мне говоришь, мол "я такой, но это норм, а вообще я хочу процент от пары ляма баксов"? Ты поехавший, или реально школьник-тралль?
>>535394>Не бывал в студиях по 60-100 человек?Представил Скайрим над которым работали хотя бы половина от этого числа, но не ремесленников а настоящих художников.Эххх.
>>535398Ненене, про процент это не ко мне, а к другому долбоебу. У меня прайс фиксированный почасовой, если не согласны - ищите меня же на апворке, и я его вообще не обсуждаю в меньшую сторону от слова совсем. И вообще среднее по рынку 35 бачей в час для мидла, 50 для сеньора. И не занимаюсь я играми. Я блядь код пишу. И да, он для игр. Концепция не важна, идея, игра, проект. Мне за код платят, а не за участие в какой-то игре. И очень огорчаюсь, когда мне говорят, что мой ценник переоценен в несколько десятков раз и показывают анкетку долбоеба, пишущего про 5к рублейСукакакжеуменябомбит.
>>535362Охуенно про "ты нам сроки сорвал, мы попали на штрафы".Русская культура всегда нахаляву и побыстрее.
>>535400Что ты там эхаешь, фантазёр? Не было бы игры, была бы параша в которой за графоном не было бы геймплея. Титры. Едешь на физически корректной телеге в Хелген. Во рту у тебя детально прорисованный кляп. Кинематографическая камера постоянно тычет тебя в этот кляп с понтом "посмотри, посмотри какая красота!" Так же камера кинематографично тычет тебя в кинематографически идеальные рожи воров и Ульфрика, сидящих в телеге. И тоже постоянно как бы демонстрируя тебе, "смотри как колышутся на них наши тряпки с детализикованными 16К текстурами! Смотри какой физон ткани!"мимо из тесача, насмотревшийся за прошедшие годы на оверхолы вот таких вот настоящих художников
>>535399Против клинических идиотов с демпингом только профсоюзы помогут. Ну, или хотя бы какие-то организации, которые смогут насильно заставить потребителей пользоваться только услугами от поставщиков, одобренных этой организацией. Иначе студенты ради доширака зарплаты так и будут обваливать.
>>535439> была бы параша в которой за графоном не было бы геймплея.Ты наверное играл в скурим с овердохрена модов ?А машинку какую прикупил чтобы не плеваться на тени ?А тени и в старых играх были местами огого.А то что у меня в первых же кадрах на полчаса отобрали управление ?Это как назвать ?Если мне нужна кинематографичность я пойду в кинотеатр.В игре мне нужена игра, блят.Хорошо замаскированная нелинейность, а не набор сгенереных простейшим скриптом квестов.Криво понапиханые везде однотипные кривые префабы (ну вот яхз чем они все это время занимались)Физон ткани, ойвэй это не их заслуга, там же вроде физикс от нвидии, так он и в ActiveWorlds за 2000 год нормально фурычит зайди проверь http://activeworlds.ruКуклы как были скриптовыми так и остались, анимация жуткая.Долбаная реклама мимо которой вобще никак не пройти было и которая похерила всю изюминку, АУНАСДРОКОНЫ !!!! гребаные манагеры решили бабла нарубить козлы.Это не игра, блят, а заготовка под допиливание модами.
>>535447Кстати, лет 10 назад, до переезда в ДС, когда был работягой(доки, ремонт кораблей) - организовывал независимый профсоюз. Для организации нужно а)6 человек - руководство, отчетно-ревизионная комиссия, пара членов. б)регистрация банкоского счета фонда для пожертвований(обычно это юристы, у олдскульных это плюс переодика печатная, которая в 21 веке нахуй не нужна) в)актив, готовый подорваться разок в неделю на встречу/подписание трехстороннего договора вместо двухстороннего, или вызванивать демпингующих, чтоб поговорить "по душам"Вообще не так уж и сложно
Сделал неплохую, простеньку 3д игру на Юнити. Выложил в маркет. Она точно как минимум не хуже конкурентов, у которых за 2 года под 100к установок набежало.Моя игра в поиске на 300+ месте, никто ее не найдет через поиск, конкуренция высока.В итоге я выложил её и что? И хуй. Никакого почти траффика, установок, ничего. И как в таком случае быть?Почему какие-то пдоры выкладывают говно из ассетов и у них сразу неебаца трафик установки есть и все такое?
>>535492Сто раз уже обсудили. Грамотная реклама и пиар. Потребители говна в мобильных магазинах не умеют в поиск, они просто, без задней мысли тыкают установку того, что у них перед глазами.
>>535497Э, а причём тут "не за большие бачи"? Я такого не говорил. И примеров на то, о чём я не говорил - приводить не собираюсь.
Анон, нужна помощь.Предположим есть планета, которая удаляется, становясь меньше и меньше, пока не станет выглядеть как точка.Как лучше эту точку сделать?
>>535492Дядя ты бы что ли тактику и стратегию почитал.Смотри сам просто навскидку:Агрессиваня реклама.Вмрусная реклама.Продвижения через всякие соцсети.Продвижение через всякие краудфанды типа индигого, патреон итп.Ну а как ты хотел ?Зато когда наберешь аудиторию с дальнейшим продвижением новых продуктов проблем не будет.При условии что у тебя действиетельно что-то стоящее, денежка найдет своего владельца не сумлевайся.
>>535526>>535525>>535519Ни один из методов не работает. Траты на рекламу в соцсетях никак не окупаюются. С видео перешедших вообще нет. Если готов пару сотен тысяч выкинуть на ветер, и разочароваться - пожалуйста. Алсо есть целые ресурсы посвященные монетизации, рекламе, метрикам."Манагеры не нужны", - кричали школьники. "Вы тупые, и нихуя не понимаете что делаете" - отвечали им цифры
Всем привет!Подскажите, есть методики или бест-практисы про то, как связывать программный код поведения ИИ с системами анимации, озвучивания и т.д. и т.п.? Например, у меня реализуется поведение монстра через машину состояний, но я понятия не имею как по-уму сделать проигрывание анимаций "вступления" или "завершения" при переходе из одного состояния в другое, так чтобы часть поведения как бы блокировалась, пока проигрывается анимация. Что-то вроде: сначала скелет собирается по кусочкам, потом включается логика поведения; но ничто не мешает замочить NPC во время его "простоя".Можно тупо брать и прямо в коде прописывать бесконечный return пока какой-либо анимационный клип не завершится, но это кажется слишком грубым вариантом и в итоге для каждого отдельного ИИ надо будет индивидуально описывать алгоритмы сопоставления машины состояний анимации и поведения. Хотелось бы знать какой-то проработанный гайд по тому, как реализуются те или иные шаблоны связываний логики поведения и логики внешних признаков.
>>535638На гдач набижали тролли?Уже во втором треде машиной состояний срут.И тут я такой типа кормлю: Ты вообще понимаешь, что такое машина состояний? Это линейная последовательность состояний. На вход её может подаваться любая логика, хоть линейная, хоть древовидная, но сама машина работает линейно. Пример:(есть питание) собираюсь - (есть питание) собираюсь - (нет питания) жду - (есть свет) впитываю - (есть питание) собираюсь - (собралось) ищу врага - (враг не найден) ищу врага - (враг не найден) ищу врага - (нет питания) ищу питание - (есть питание) питаюсь - (нет врага) ищу врага - (получаю урон) прячусь - (получаю урон) прячусь - (вижу врага) атакую врага - (вижу питание) питаюсь ...Вот так работает конечный автомат. На него могут влиять тысячи факторов, но в каждый момент времени КА берёт сумму факторов, влияющих на него и переходит в соответственное этой информации состояние. Факторы могут быть как внешние (атаки, угрозы, погода) так и внутренние (жажда, голод, распорядок дня).Соответственно, переходу из состояния в состояние могут отвечать графические эффекты типа анимаций, замешанные в т.н. блендспейсы. Они в отличие от КА не линейны. На персонаж воздействует команда идти вперед, он отыгрывает анимацию ходьбы вперед, внезапно команда идти вперед сменяется командой идти вправо, КА персонажа мгновенно переключился в режим ходьбы вправо, но блендспейс анимаций плавно смешивает анимации вперёд и вправо, таким образом, что модель персонажа красиво перестраивается с ходьбы на смещение.Точно так же моб из абстрактного примера выше, он может ползти и жевать мертвечину в спокойном состоянии, но завидев ГГ он плавно перестаёт жевать и выпускает стрекательные тентакли, плавно меняя траекторию движения, хотя КА его ИИ уже десяток фреймов назад переключилось с "питаюсь" на "атакую врага".
>>535643Про динамическое связывание мне всё понятно, для этого есть переменные и триггеры в аниматоре.Я скорее имею ввиду статическое.>Точно так же моб из абстрактного примера выше, он может ползти и жевать мертвечину в спокойном состоянии, но завидев ГГ он плавно перестаёт жевать и выпускает стрекательные тентакли, плавно меняя траекторию движения, хотя КА его ИИ уже десяток фреймов назад переключилось с "питаюсь" на "атакую врага".Вот-вот! На словах все просто, а КАК ручками это прописывать в общих чертах принято у пряморуких проегров? Простая статическая анимация типа прожевывания кишок просто описывается в контексте поведения как пустой стейт что ли, в котором в точке входа просто запускается анимация?А если надо описать поведение транформации босса, н-р, ему был нанесен критический урон, и он переходит в другую внешнюю форму. И при этом заморозить и поведение и реагирование на внешние воздействия, то это делается в каком месте? До перехода в новый стейт или при входе? И как стейт должен отслеживать, что анимация сыграна и можно "начинать"?
>>535649Еще раз уточню, мне бы желательно какие-нибудь ссылки на гайды или лучшие практики, где аккумулируется опыт игровых программистов и аниматоров.Гугл отсылает только к основам анимации в Юнити.
Как оптимизировать Юнити террейн и ихние SpeedTree? Я сделал не густой, редкий лес и Draw Calls особенно после высадки деревьев выросли до 190. Больше на карте ниче нет.
>>535636Можешь, плиз, тезисно рассказать как жить-то? Потому что я понимаю, что маркетинг нужен. Но больше ничего не понимаю. Кеймейлер, стимгифты и общение с общественностью к Большому Успеху не приведут.
>>535663Только для всякой мелкой шляпы типа звуков шагания... Едва ли можно прикрутить к чему-то более серьезному. Где-то находил анализ производительности событий анимации. Цифры печальные.
>>535666да ну брось. вон у меня эвенты в этой хуйне >>528471 через StateMachineBehaviour были сделаны и нормально
>>535666Никто не запрещает тебе написать свои эвенты с прямой подпиской, используя StateMachineBehaviour. Отслеживаешь кадр анимации, вызываешь нужную тебе функцию напрямую в нужный момент, профит. Только на переходах там что-то мутное было, но в целом я так очень многое на анимацию цеплял.
>>535653ИМХО, ты просишь на пальцах описать тебе сложнейшую область компьютерного моделирования (подчёркиваю, не игрового). Тут не может быть простеньких туториалов.
>>535670>>535668Пока ищу только руководства по тому, как в контексте Unity по-человечески связываются две сущности: отдельная машина состояний ИИ и машина состояний анимации.Изначально все начинал с описания логики в апдейте МБ. Т.е. NPC описывались просто. Когда пришлось придумывать что-то посложнее, созрел до описания машины стейтов. А теперь приходится реализовывать еще более сложные в поведении игровые объекты, и тут я уперся в стенку, так как не имею понятия, как с нуля придумать универсальные правила связанной и согласованной работы системы внутренней логики и системы внешних признаков.
>>535664Изучай апптрактор, там профкомьюнити небольшре есть касательно продвижения. Полюби цифры, все эти метрики вроде CTR, CPM, средние сессии, и прочее прочее.Если занимаешься мобилками - ищи самые хайповые истории, пиздуй на appannie и sensortower и займись эксперементами с покупкой мотивированного траффика. Самые хайповые вещи относительно монетизации пользуй(киты если платят сечас за лутбоксы - встраивай лутбоксы, если мода на видеорекламу мотивируемую - в нее)Касательно комплуктерных сторов - юзай хайповые темы, эксплуатэйшн, собирай денюжку на партеонеА вообще да, искать вопросы касательно продвижения в отечественном нете - можно, но немножко.
>>535677>касательно продвижения в отечественном нетеСамостоятельно выложить свою игру на трекерах. Единственное возможное продвижение в нищерунете.
>>535679Имелось ввиду про отечественные новости и комьюнити про продвижение.И да, публика платит и за подписки и за лутбоксы, да и игры покупает за фулпрайс. У нас ситуация средняя по рынку. Не надо принижать отечественного покупателя
>>535677Стор, как раз, кампутерный. Но проект рядовой, хайповой темы нет (я стараюсь и делаю его на совесть, вставляю всякие маленькие фишечки и очень хочу чтобы людям нравилось в него играть). На всяких редитах надо по тематическим разделам размещаться? Помню, что размещался на реддите в геймдев-прогрессе, и в твиттер скриншот-субботу юзал, но очень неуверен, что с этого был толк. Или я за тремя соснами леса не вижу?
>>535680>Не надо принижать отечественного покупателяНовости давно читал?https://2ch.hk/news/res/3974935.html
>>535688Я тебе про цифры и статистику, а ты мне какой-то политач несешь. Давай, выходи уже из манямирка, и делом занимайся. Тебе наверное комфортно, сычевать и читать, что все вокруг хуево и у тебя никогда ничего не получится. А кто-то читает другую литературку, источники, и у таких людей вероятно, больше шансов сделать что-то полезное и как-то свой потенциал реализовать, не думаешь?
>>535690Я думаю, когда ты заработаешь больше, чем на дошик, к тебе придут в гости и попросят поделиться. И они будут очень убедительны.
>>535693Ебать ты контуженный. Манямирок на грани с шизой и паранойей. Больше чем на дошик - это сколько? За пять лет проганья успел взять в ипотеку трешку внутри ТТК и до НГ ее закрою. И что-то никто не пришел за долей какой-то. И не прийдет. Потому то эти люди не живут в моем мире - они живут в твоем. Скорее даже - в твоей голове.
>>535693Не придут. Обезьяны приходят за теми, кто им понятен и у кого можно это дело отжать.А программист им непонятен, сидит какой-то сыч и клацает по клавише весь день. Как он деньги вообще зарабатывает? СЛОЖНА, пойду лучше у ашота ларек отожму.
>>535687В твиттере я любил разбавлять теги типа #gamedev тегами в духе #handdrawed , #pcgame , тегать что изображено на картинке. Все правильно делал? Нет?
короч, переношу много моделей из сталкера.как мне автоматом присвоить материалам текстуры?не вручную же несколько текстур в каждый из сотен материалов пихать.текстуры там хранились в .dds в разных каналах, я их повынимал и сделал в .png
>>535734да, я видел, что можно авто-найти, но только дифуз, а остальные карты, типа нормали, спекуляра - хер
>>535654>ихние SpeedTreeОй мамо.Во первых зачем тебе ихние ?Во вторых нормальный спидтри я не видел, особенно если ты по кустам шаришься.Если только в Ризен морфинг крон неплох в одном месте, но не уверен что там спидтрее.
>>535664Анон, очевидно что ни патреон ни индигого к кпримеру твоим продвижением не занимаютсяи они сами об этом трижды предупреждают.Ты сам должен накропать аудиторию и самое главное не профукать ее релизом.То есть они должны сказать вау и ххотеть.Вот после этого запускаешь уже вирусный проект, наращиваешь аудиторию скачком.Все, дальше считай ты устроился, но само собой ровно до момента пока не попытаешься обмануть ожидания, тут с обещаниями будь очень осторожен.
Посоны, вот такой вопрос назрел. Есть аниматор контроллер, в ассет бандле, в не моей игре. Его можно как-нибудь раздеребанить, узнать что у него внутри(и вообще в эдитор обратно запихнуть)?
>>535366Все так говорят. Но скиллуха растет - а сколько ты в рашке будешь получать? Ну 3к баксов тебе заплатят, это потолок. А буржуины клятые на апворке 50 баксов в час могут дать, общаясь с тобой через гуглопереводчик. Какой тут сон, если ты в потоке и за это 50 баксов в час платят?
>>5357913к на то и выходят.ну сколько часов в месяц ты будешь работать? Рисерч и обучение - за свое время. в итоге две недели работы, две недели простоя , поиска, обсуждения и прочего. В принципе и у нас есть места для топчиков по 200-250к.За свои бабки покупать оборудование очень накладно. Тот же хололенз стоит около 300к. Шлемак vr с компом - около сотки. PSVR и девкит под него около 4к бачей. Leap motion - 300к... Айфоны, самсунги с8-с9, комп под былды на айось... Потихоньку этим обзаводиться можно, но В случае работы на дядю - ты можешь общаться с этими приблудами и все норм. И опыт. На апворк люди не идут из начинающих. Они уже имеют бекграунд на гитхабе в качестве своих личных СДК-шек, плагинов и решений. Без них ты тоже нахуй никому не нужен. Как и без грамотного пайплайна разработки.
>>535766Обещания, когда первую делал, я давал аккуратно. Очень аккуратно. Можем даже сказать, что критически аккуратно. Потому что я ненавижу обманывать. Посему и патреон не рассматриваю (как-то очень много там, имхо, халявщиков и наёбщиков). А вот изначальную аудиторию где брать? Можешь пример какой-нибудь конторы написать, которая правильно себя ведет? Я вот помню создателей hunie pop, у которых на твиттере 20к живых челиков было (сейчас цифра должна измениться), но не уверен что у них правильная работа с общественность.
>>535780Как? Использовал uTiny ripper, он выцепил этот самый контроллер и он вроде даже импортируется в эдитор, но флоучарт не открывается вообще. Ну ладно думаю, у меня же текстовое описание есть от uTiny есть, просто сделаю по нему. И хрен! Ванильный контроллер в игре работает идеально, даже если я под завязку напихиваю его моими собственными клипами. А мой собственный контроллер - нет. При этом, они(вроде как) абсолютно одинаковые.У них есть какие-то скрытые параметры, которые я пропускаю? Я спецом взял юнити той же версии, что и игра которую моддить хотел.
Есть пачка юнитов, которым можно указать, куда идти, то есть имеются три точки, текущая позиция, желаемая и "точка сброса" (куда сбросится, если не сможет передвигаться). Там ещё методы всякие и параметры, чтобы такую деятельность обслужить. Что лучше: иметь апдейт в каждом юните или же иметь один апдейт и несколько связанных списков юнитов, точек и параметров?
>>535845По логике смотри. Кто у тебя путь ищет, сам юнит или некий надмозг. Алсо, если серьезный проект делаешь можно вообще логику отделить от монобехайвора
>>535851Надмозг, конечно, но в ебеня идти юниту, а не надмозгу. Там в апдейте банально высчитывается оставшееся расстояние + всякие правила того, какая должна дальше анимация проигрываться (прыжок, падение, ну понятно). Это очень легко перенести в списки и в один апдейт.>Алсо, если серьезный проект делаешь можно вообще логику отделить от монобехайвора Вот вопрос как раз о том, надо ли оно вообще таким заниматься и насколько оно надо.
Как бы так менюшку сделать, есть одна менюшка, и она вызывается скриптами у которых есть интерфейс AltMod() , это для того если я по кнопке нажму с зажатим альтом, каждый шкрипт имплментит по свойму, все хорошо пока у метода интерфейса сигнатура стринг, а что если я хочу по нажатию кнопки юзать AltMod() c не стригом,а с чем-то другим? Хотел было юзануть рефлексию, а в скрипте просто сделать лесенку из if-ов и юзать оператор typeof/ as, скорость не важна, но он не подходит для валью тайпов, пацаны пишут что раз я так делаю то я обосрался, а правда ли это? Просто в менюшке куча кнопок, она универсальна по задумке для всех елементов, к некоторым можно применить чтото к некотоырм нельзя, накидал все в однмо месте и збс, дальше просто имплементишь интерфейсы для каждого класса, не?
>>535862А что по поводу создать для каждой класс-контроллер в котором описывается вариация интеракта и паблик юнитиэвент. Юнитиэвенты блядь. Стринги, хуинги - жрет все. Эту хуйню размножай рефлексией на всех детей типа кнопка, добавляй поля, параметры, инстанцируй экземпляры описанного тобой класса со всеми параметрами прямо в эдиторе сколько хочешь раз. Вообще занимаюсь сборкой всяких музейных и выставочных тач-панелей - и подход, описания класса для всего с допполями и возможностью размножения этого всего сколь угодно раз - превращают работу с интерфейсами в сплошной драг энд дроп. Если совсем дохуя в итоге переходов и прочего получается - пишешь визуальный дебаггер - и будет тебе счастье
>>535850Так я его и не хотел же. Мне он, вообще, не нравится. Игрок купил игру - игрок играется, не купил - не играется. И я не хочу других моделей. DLC, донаты и талоны на скидку от лукавого. Именно по этому я спрашивал: "А вот изначальную аудиторию где брать?"
>>535885>"А вот изначальную аудиторию где брать?"Выложи свою игру на торентах а в самой игре в главном меню укажи ссылку на свои реквизиты куда тебе можно заслать пожертвования, напиши что типа такого "Я делал игру бесплатно, жил в впроголодь и жрал один доширак.", я уверен люди сжалится над тобой и даже школьник пожертвует последние деньги.
>>535887Дружище, да ты ебанутый. Ты когда-нибудь что-нибудь выкладывал? Что-то заработал? Или это из разряда "хоть я и школьник, но мне лучше знать?"
>>535890>Ты когда-нибудь что-нибудь выкладывал?Я игры не делал.Я даю тебе ценный совет воспользуйся им, у тебя все равно нету выбора.
>>535891Двачую этого. Самые лучшие литературные критики, к мнению которых прислушиваются - не написали ни одной книги.
>>535887>>535891Я соглашусь с мимокроком, что ты ебанутый. Ебанутый ты, потому что игроки делятся на два типа: платят за игры, не платят за игры. Понятно, что у есть исключения (например, я когда-то купил диск с фоллачем, а потом его скачал с торрента). Так же ты ебанут, потому что я ни разу не видел обсуждений геймплея на торрентах. Понятно, что напишут и "говно, не играйте", и "лучшая игра на свете". Но способ привлечения хоть какой-то аудитории... Оригинальный, интересный. Плюс, вполне адекватно закинуть на свой сайт демку, её же (+/- с модификациями) дублянуть на торренты.
>>535895>игроки делятся на два типа: платят за игры, не платят за игры.Ты сам понимаешь что делить мир на черное и белое это черта ограниченного человека.Если игра зайдет человеку который никогда не покупал игру то он может ее купить что бы поддержать разработчика.
>>535896Я-то понимаю, а ты спойлеры не читаешь. Один из тысячи скачавших - да, купит. По каким-то своим тараканам. А чтобы поддержать разработчика 99,99% нажмут кнопку "Спасибо". Но это не сообщество, хотя и способ собрать фидбек до раннего доступа ("Релиз всегда только один" - есть такая полуправда).
>>535905>>535522Ты смотрел то видео? Ты понимаешь что таких как ты тысячи которые хотят продвинуть свою игру, в том видео есть епизод где рассказывается про одного разработчика который делал все, что бы продать свою игру и в итоге у него только 100 скачек со стима. Если ты выложишь свою игру у нее хотя бы будет шанс стать популярной если ты конечно не говно сделал.
>>535907Чувак тусил по будкам (или как там гейм-конфочки называются) вместо того, чтобы делом заниматься. Потусил, а публике это нужно не было. Мне гораздо больше нравится история, как несколько чуваков годами пилили игру фултаймом (ну, при первой же возможности - фултаймом), но выпустились в день в один день с началом гейм-конфочки. Причем хорошую игру запилили, даже с разрушаемым ландшафтом. Только вот 300 скачек на торренте дадут 30 "спасибо" и 3 коммента: "норм", "хуйня", "хурма". Ну постучусь я человеку, который сказал: "хуйня" - спрошу что не понравилось, а он ответит: "да всё говно". Второй скажет: "Управление какое-то деревянное". И торрент хорош тем, что можно услышать: "Управление какое-то деревянное" - до релиза в раннем доступе. Хотя, мля, для этого должны быть и специализированные ресурсы (типа /v/), не предполагающие монетизацию.
>>535907>>535910И, как обычно, я сам нашел правильный ответ на твой не-вопрос. Вот тут хорошая подборочка: https://ninichimusic.com/blog/2018/1/4/10-places-to-find-beta-testers-for-your-indie-game . Вот "ребята" выложили демку https://gamejolt.com/games/lightfall/68206 - в топовых комментах 5 летсплейев. Фидбек за денежку - https://www.playtestcloud.com/pricing , без денежки (комментов не много, но с осмысленным содержанием) - https://roastmygame.com/
>>535914У меня маркетинг, как гвоздь в жопе, вот и общаюсь. Что-то с широкими массами делать нужно (до раннего доступа, да и после).
>>535916Объясняю, как нужно без бюджета пиарить игру: делаешь прототип, идешь к дядьке с баблом, он смотрит на твой прототип, говорит заебись сделал, дает тебе мешок бабла на завершение разработки, говорит, что теперь ты издаешься у него. Ты за мешок бабла делаешь игру, приносишь ее дядьке, дядька ее пиарит и продает, отстегивая тебе половину. Хули сложного?
>>535910Ты игру делаешь чисто для заработка или потому что тебе это нравится и приносит моральное удовлетворение?
>>535924Первую начал делать для себя. Потом понял, что мне это нравится куда больше, чем работать. Релизнулся. По баблу получилось больше, чем заработал бы за то же количество часов. Сейчас более-менее изучил юньку, перестал совсем уж бултыхаться в вижуале - делаю вторую игру. Вторая игра простая, без убер-идеи и нескончаемого потока оргигинальности. Потому что хочу научиться делать игры нормальные, приятные "в целом" (и за счет геймплея), не для узкой аудитории.
>>535855>Вот вопрос как раз о том, надо ли оно вообще таким заниматься и насколько оно надо.От сложности зависит. У меня, например, все модули разделены. Графика, звук, логика, ввод. Может быть одновременно несколько указанных модулей. Могу поток ввода направлять от бота, например. Или отправлять игровые события на сервер для статистики. Удобно. Но и накладные расходы есть. Если игра не на годы рассчита то такое наверно и не нужно.
>>535885Люди на красивую картинку ведутся. Вау эффект, вот это все. Сделаешь хорошо - будут перепосчивать друг другу... Но это очень вау должно быть..
ух. наконец отрефакторил генерацию пути. теперь наконец могу добавлять функционал к нему без лишней боли. сделал чтобы модификатор стоимости навмеша применялся к поиску пути и теперь можно сделать так чтобы агент избегал, или наоборот стремился к тем или иным местам. клёво смотреть.>>535672Так себе затея на самом деле. Над скайримом то трудился какой-то миллион китайцев левел-дизайнеров которые скорей всего даже не подозревали о том что ещё кто-то работает над левел-дизайном. Конечно будет очень смешно если в таком сорте игр ИИ неожиданно обретёт какие-то цели и побежит их исполнять, но через час население мира уменьшится раз этак в пять. Если уж делать игры с ИИ то надо размышлять над эко-системой и прочим говном, генерацией там процедурной.Вообще это довольно интересная тема для обсуждения - как применить хитрожопость ИИ. Сильно уж мало игр смогло.>>535845как заимплементил то такое?
>>535952>Конечно будет очень смешно если в таком сорте игр ИИ неожиданно обретёт какие-то цели и побежит их исполнять, но через час население мира уменьшится раз этак в пять. Если уж делать игры с ИИ то надо размышлять над эко-системой и прочим говном, генерацией там процедурной.Лол, напомнило:https://www.youtube.com/watch?v=KFNxJVTJleE
>>535967а некоторые игры напротив известны благодаря хитрожопому ИИ, или тем что научили ИИ адекватно пользоваться его окружением. большая и интересная тема. >>535969да-а-а я отлично знаю историю ультимы. вообще надо попробовать сделать какую-то более глубокую эко-систему с асимметричным ИИ. что-то навроде ai war fleet command только от первого лица. чтобы вот игрок как джон коннор кусал роботов за пятки и собирал сопротивление, пока его ловят с вертолётами, прожекторами и вышками. было бы здорово сделать так чтобы сопротивление периодически самоорганизовывалось и самовыпиливалось об терминаторов. со всеми причинно-следственными связями. а игрок собирал своё сопротивление шарясь по помойкам и нигде не чувствовал бы себя в безопасности.
>>535910>Чувак тусил по будкам (или как там гейм-конфочки называются) вместо того, чтобы делом заниматься. Потусил, а публике это нужно не было.А ты лучше него знаешь что и как делать, да?>Только вот 300 скачек на торренте дадут 30 "спасибо" и 3 коммента: "норм", "хуйня", "хурма".Ого хоть кто то скачает твою игру.Допустим ты на торентах выставишь демо версию и что? Люди поиграют в демку и через минуту забудут что есть такая игра в стиме которою нужно купить.Если ты так уже хочешь прибыль, то выложи игру в стиме если по прошествии пару дней нету скачек, тогда загрузи свою игру на торенты с уже прикрученой в игре ссылкой на добровольные пожертвование. Но если действовать таким путем то есть риск что твою игру спиратят еще быстрее чем ты сам выложишь ее на торенты.
>>535967>Хитрожопость ИИ типично не стоит усилий и игроки её зачастую просто не замечают.Alien: Isolation на харде ты конечно не играл?
>>535981на самом деле там сильно уж объёбывают игрока с ИИ алиена. все равно что элизабет приводить как пример хорошего ИИ. в Halo например был очень клёвый ИИ, в FEAR, rainworld, ждалкере. вообще конечно стелс-игры часто имеют неплохой ИИ, но часто слишком уж зацикливаются на его предсказуемости. было бы здорово увидеть что-то где если игрока схватят за жопу то с побегом у него будут очень большие проблемы.
>>535981Эта игра построена вокруг ИИ. Типичная игра нет. И то там скорее всего набор предварительно заложенных сценариев.>>535985Предсказуемость ИИ является важнейшей фичей. Игровой ИИ должен быть интересным и красиво проигрывать, а не быть умным.> было бы здорово увидеть что-то где если игрока схватят за жопу то с побегом у него будут очень большие проблемы. Ага. Большие проблемы в виде mostly negative и рефандов.
Как по мне игровая индустрия стагнирует потому что ее делают для тупых шкальцов что бы получить легкие деньги, а хочется что бы было какое то испытания, челендж, с эти хорошо справились игровая серия Dark Souls но таких игр исчезающи мало и это плохо.
>>535986и в итоге мы имеем говно и плохие тенденции, где чётко выражена тупизна ИИ. у большинства ИИ в играх даже нет того что творит ИИ в этой новой зельде, когда поджигает палки у костра чтобы жорить ими и метает друг друга.>Ага. Большие проблемы в виде mostly negative и рефандов.разве это проблема? напротив - у нишевого продукта гарантирован хотя-бы минимальный успех.
>>535987>игровая индустрия стагнируетГде? Дикий рост выручки и доходов сколько лет подряд уже? Год когда рост считается "плохим" по меркам иных отраслей был бы невероятно успешным.> у большинства ИИ в играх даже нет того что творит ИИ в этой новой зельдеА зачем оно нужно в игре не построенной на поджигании палок у костра?>>535988>разве это проблема?Гигантская. От необходимости искать новую работу до продажи квартирки.> у нишевого продуктаУ него нет бабла на сложные вещи.
>>535997>А зачем оно нужно в игре не построенной на поджигании палок у костра?а должна ли игра быть чем-то конкретным, или пытаться доставить игроку более полноценный опыт погружения? ведь такое дело - если уж игра пытается как-то создать осмысленное окружение, то такие детали как тупой как пробка ИИ легко рушит всю атмосферу.>Гигантская. От необходимости искать новую работу до продажи квартирки.лол игры на кредиты делать что-ли? гранты может брать? надо быть дегенератом чтобы загнать себя в такую ловушку.>У него нет бабла на сложные вещи.лол бабло делает всё хуже. либо в проекте есть хуй который всё время разработки работает над ИИ, либо ИИ говно. а таких интересных личностей за бабло то дорого покупать. дешевле пару артистов-аутистов купить, которые внесут в проект более видимый вклад.но не душу
>>536002> а должна ли игра быть чем-то конкретным, или пытаться доставить игроку более полноценный опыт погружения? Игры - развлечение. Сложный ИИ нужен только там где он реально необходим.> дешевле пару артистов-аутистов купить, которые внесут в проект более видимый вклад.Вот. Ты же понимаешь суть геймдева. Фичи ради самих себя не нужны и просто вредны.
>>536008>Игры - развлечение. Сложный ИИ нужен только там где он реально необходим.а все ли развлечения можно назвать казуальными? нет конечно. ведь существуют такие игры как тоха, что сродни сованию себе биты в задницу, или from the depths где туториал заканчивается часу этак на 500. я знаю что желающих принять челленж в виде сложного ИИ более чем достаточно. а вот желающих создать такой челленж не особо.>Фичи ради самих себя не нужны и просто вредны.а причем тут это? яж пишу че: большинство дрочева неверно приоритезирует трату ресурсов. есть множество причин делать так как они, но в итоге про какое-то нишевое говно слышно и через 5 лет после релиза, а очередная срань забывается через неделю.
>>536011> а вот желающих создать такой челленж не особоНаверно потому что такие игроки играют например в шахматы против ИИ?
>>535952>как заимплементил то такое? Указываешь юниту, куда идти -> в него вносятся желаемая точка и точка сброса. Дальше в апдейте каждый фрейм вносим в аниматор переменные (зависимость от оставшегося пути и скорости), чтобы он правильную анимацию бега проигрывал.Но ты, наверное, про поиск пути спрашиваешь, а там у меня всё просто. Стратегия-то пошаговая, поэтому нахожу все квадратики до цели, заношу их в цепочку, юниту скармливаю связанные квадраты цепочки, когда он доходит до желаемой точки или сбрасывает свою позицию. Там в рилтайме только апдейт и то, что аниматор сам делает, чтобы анимации проигрывать. Эту систему в принципе легко перевести в рилтайм полностью, банально сделать шажки короткими, квадратики милипиздрическим и добавить автопропуск хода, если игрок нихуя не жмёт
>>535977Да, я об этом и спрашиваю, в общем-то. Вот допустим у меня есть массив структов с несколькими базовыми (инты, флоаты, стринги, ну ясно) переменными. Стоит ли заменять его на много массивов переменных?
>>536043Нет, ты явно не об этом спрашиваешь, лол.В общем unity ecs это хуйня, которая заменяет gameobject и monobehaviour.Ты создаешь сущности, которые содержат в себе компоненты: идти, стрелять, есть, спать.У тебя есть системы, которые могут работать последовательно.Например SleepSystem.Она берет все entities, у которых есть компонент "спать", и укладывает их спать в 9 вечера.Или HuntSystem.Она берет все сущности, у которых есть компоненты идти, стрелять и есть, и делает их ходить по спирали, и, если в поле зрения кто-то съедобный и живой, то стрелять.EatSystemЕсли рядом есть что-то съедобное, то сожрать.И еще у тебя есть RenderSystem(или как-то так), встроенная прямо в юнити.Если у сущности есть меш-компонент, то она его нарисует на экране.И так далее.Фишка в том, что данные компонентов лежат в неуправляемой памяти одним куском, и каждая система итерирует их очень быстро.Из недостатков, надо курить мануалы чтобы раздуплиться, и дизайнить код специально под. Ну и сама ECS еще в очень сыром виде, и многих вещей не хватает.А вообще можно использовать ECS только для некоторый вещей, которые прям напрашиваются. Птичек летающих сделать или рыбок, или толпу зомби.
Может кто-нибудь по пальцам перечислить, в каких местах юнька рефлексирует? Ясен пень, что сендмесседж, а ещё где?
Почему рейкаст2д не работает так как надо?Vector2 vec = gameObject.transform.position;Vector2 tar = target.position;RaycastHit2D rc = Physics2D.Raycast(vec, tar, 100f,enemyLayers);Этот код наводится куда-то в сторону далеко вправо вверх от vec, вне зависимости от того какие координаты в tar. Судя по всему, этот рейкаст наводится на координаты относительно камеры, ведь луч двигается только когда двигается камера. Короче, я явно чего-то не понимаю, подскажите.
>>536013лол шахматы против ии. >>536040с милипиздрическими то поиск пути уже может начать долго занимать же. вообще меня интересовало как организовал множественные пути, так как сам сейчас решаю схожую проблему. но это становится проблемой больше в реалтаймовой навигации, когда надо когда надо иметь штук 5 готовых путей, чтобы ИИ могло их между собой сравнивать. в этом случае тягать эти пути последовательно по одному уже не такая хорошая затея. для пошаговой полагаю гораздо меньшая.>>536055интерфейсы для структов как-то неочень>>536132что же ты. потомучто Physics2D.Raycast в качестве второго параметра принимает направление, а не позицию. вычти один вектор из другого.
>>536151> Physics2D.Raycast в качестве второго параметра принимает направление, а не позицию. вычти один вектор из другого.Спасибо, это то что нужно.
>>536154наркоман какая рефлексия https://blogs.unity3d.com/en/2015/12/23/1k-update-calls/сенд месседж перестает быть рефлексией после компиляции один хуй
>>536157а что ты ожидал то? очевидно что юнити подставляет туда полноценный делегат когда компилирует проект. такая всратая имплементация для эдитора только чтобы удобно было. а всякие дураки воют "ууу рефлексия ууу медленно". производительность надо проверять в сбилженных проектах, а не в самом юнити.
>>536158> очевидно что юнити подставляет туда полноценный делегат когда компилирует проектНе очевидно. И не подставляет. Я сейчас на пробу что-нибудь в il2cpp с SendMessage соберу и посмотрим.
Ок. Тупой C# код типа > public class Hui : MonoBehaviour {> // Use this for initialization> void Start () {> SendMessage("SayHui");> }> void SayHui()> {> Debug.Log("TI HUI!");> } >}Транслируется в следующее: https://pastebin.com/4zCgatpSГде чётко виден вызов к SendMessage по строке.
>>536050> Фишка в том, что данные компонентов лежат в неуправляемой памяти одним куском, и каждая система итерирует их очень быстро.Таак падажжи ебана. Я не понимаю в чем смысл и иноовационность.Вот у нас есть УСЛОВНЫЙ юнити, вот у нас наспаунились геймобжекты. И вот у нас есть ТОЛЬКО компоненты ЯВСЕХЖРУ, УМЕНЯКРУТОЙИИ и ЦЕЛЬВИЖУСТРЕЛЯЮ, во всех определен скажем метод АПДЕЙТ и каждый компонент подразумевает наличие каких-то параметров.В чем проблема ПРОСТО линейно разместить в озу данные каждого геймобжекта, а потом проходить по списку данных 3 раза(у нас всего 3 вида компонентов определено) и делать АПДЕЙТ к каждой сущности если стоит метка что там этот компонент есть. Хотя 3 раза проходить это земля говном(или там в жтом и суть чтот).В итоге никакой реворк архитектуры игры не нужен. Нужны только изменения в самом юнити(если он не так работает).А для многопотока не екс нужно, а нужно делать компоненты(под компонентом я офк подразумеваю что объект отнлсится к данному множеству и потому должен пройти заданную обработку через вышеописанный метод апдейт), которые можно по отдельности обрабатывать с малыми конфликтами при доступе к ресурсам. Для разработки как я сказал не требуются установки в мозгу Я ДЕЛАЮ ПО ЕКС Я ДЕЛАЮ ПО ЕКС Я ДЕЛАЮ ПО ЕКС а требуется подумать как сделать чтобы параллельная обработка миллионов таких объектов как можно меньше стопилась в конфликтах к доступу к ресурсу.Где я ошибаюсь?
>>536171Вообще смена парадигмы зрела давно и оно так правильнее с точки зрения геймдева. Ресурсно - да, каждый пишет свой ECS для оптимизейшона, хотя как ты говорищь - оно могло бы с помощью смены принципов работы интерпритатора(и тут не трогай юнитей, вопросы к мелкомягким с их языком) работать так-же. Но суть в том, что даже кодогенерация привела бы к чему-то похожему на ECS. А зачем плодить сущности, если цель одна? Смена парадигмы как способа мышления ведет к меньшему количеству итераций от человека к откомпилированному коду. Смена уровня абстракции на левел ниже.И да, происходит смена культуры кода. Если все что можно найти было на гитхабе, в ассетах и прочем была похожа на официальные уроки юнитей с их родными компонентами, чем на чистый шарп(минимум подклассов, юзание паттернов на свести минимум, больше общения с префабами и обращения к компонентам) - приводило, как ни странно к чистому и ненагруженному и главное ЧИТАЕМОМУ коду. И да, сейчас говорят - меняйте парадигму и культуру на новую, что очень сильно триггерит. Большинство именно программистов и так фигачили на чем-то своем, вроде MVC, где создавался контроллер(ГО с компонентами-контроллерами), что брал на себя функции основного кода, модель(что занималась сериализацией/десериализацией данных и общением с сервом и контроллерами) и вью(что из себя как раз представляет сцену). Такая культура всегда существовала параллельно работе скриптов конкретно на ГО сцены. И для таких людей смена парадигмы - есть что-то логичное, зревшее ранее, понижающее уровень абстракции и при этом нехило разгружающее систему. Почему это должно быть теми-же яйцами только в профиль? Переучиваться больно, компоненты не все даже стандартные поддерживают, нужно где-то изощряться и костылить. Но это же самый сок в работе, когда ты не спинным мозгом думаешь, а осознаешь себя человеком - властелином логики, сапиенсом блядь
>>536171Всякая хуйня с памятью - побочный эффект DOD. Суть чуть в другом - в отделении состояния от поведения и композиции вместо наследования.
>>536173Смена парадигмы случилась уже очень давно, просто до УНИТИ доезжала долго. http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ написано 11 лет назад.
>>536171Ты ошибаешься в том, что для этого потребуется переделать Юнити, на самом деле это фишка шарпа - в массиве ссылочных типов хранятся ссылки на экземпляры, а сами экземпляры лежат где-то в куче в произвольном порядке, еще и .net их постоянно перекладывает, чтобы фрагментации не было.Вот и получается, что при итерировании такого массива тебе надо взять ссылку, пойти по ней, сложить кусок памяти в кэш процессора, сделать что тебе надо, повторить.В случае ецс берется сразу кусок данных, содержащий N элементов массива, запихивается в кэш и последовательно обрабатывается. Отсюда и выигрыш в производительности.
>>536176Братишь, еще на старом сурсе была основной парадигмой именно ECS(только что заметил, что в русской раскладке будет - УСЫ). Унити да, доезжала долго, и видать старалась быть ближе к народу что-ли... Вообще все начало позитивно меняться в лучшую сторону, когда начали появляться новые компоненты и функционал, написанный "звездами" ассетстора и гитхаба, когда их начали скупать. Все эти нгуи, текстмешпро, киеджиро с HDRP, пробилдер, нейстед префабс, и овердохуя прочего - это конкретные люди и, что характерно программисты под юнитей. И их код всегда отличался в сторону разделения функционала, в отличие от этих ваших классических тем с геймобджектами. Нас всегда кормили околомаркетинговой историей в виде уроков для начинающих - повесь компонент ходить на перса, заебашь террейн - зацени, бро, у тебя игра и ты можешь ходить персом. А теперь добавь пушку на которой будет компонент инстанса снарядом - умничка. А теперь заебень на снаряд свой компонент. Заебись - он взрывается! Массовость, бляСейчас начинают сами грязнуть в истории, что люди переросшие проекты аля "ГТА МОБАЙЛ ЧЕЛЯБИНСК ЭДИШОН(ВСЕ МОДЕЛИ ВАЗа)" начинают писать свои системы, или переходить на другие движки из-за этой поеботы. А юнитекам это нахуй не надо, вот звезды, коих собрадось уже дохуя, скорее всего и подсказали, как сделать так, чтоб и рыбку съесть и на хуй не сесть
>>536178И это же охуенно, что разработчики не сидят на жопе ровно. Усам ещё расти и расти, но выглядит уже весело.
>>536173>когда ты не спинным мозгом думаешь, а осознаешь себя человекомТак то, батеньки, c# надо в помойку выкидывать. По себе вижу, как мозги костенеют от недостатка напряжения, а раньше считал .net программистов скорее ленивыми, нежели тупыми.
>>536219>c# надо в помойку выкидыватьФрипаскальчую! Скорее бы выкинули уже уёбищный шарп с крестами и вернулись к православному паскалю.
>>536245Меня триггерят, как разраба, подобные шутки. Помимо того, что она тупая , ты еще выпячиваешь свой "уровень"
>>536261Есть маркеры характеризующие. Если например корешь тебя хватает периодически за хуй и лезет целоваться - скорее всего - он пидор. Как и ты
>>536264>Этот порвавшийся пердоликЭто какой-то особый вид вниманиеблядства - мериться степенью аутизма?
Я где-то слышал, что ближайший год может быть шарп дополнен котлином. Выбор логичный. На данный момент есть поддержка котлина в качестве компилируемых андроидовых ADT плагинов внутри проекта. Может дальше реально будут в эту сторону развиваться
>>536251Мой уровень - 9 лет карьеры разработчика и работа по удаленке в Майами. Достаточно, чтобы написать, что ты несешь хуйню?
>>536283>к шарпоговну прикрутят джаваговно просто чтоб было) в роадмапе конечно ничего об этом не сказано, но ведь просто так бы не УСЛЫШАЛ! А всякие говноязыки которые раньше поддерживались - джаваскрипт и и еще какую то парашу - их выпилили чтоб освободить место для котлина)))))))))И эти шизоиды делают игры.
>>536290Ебанись. Услышал - имеется ввиду на юнайте упоминание было. Котлин на данный момент(с ебетки 2018.3) компилируется не юнитёй а андроидстудией. И это нативный язык. Свифт да котлин нынче масткновн юнитёвым разрабом ибо без них никакой мобилковой разработки.
>>536300>И это нативный язык.В андроиде не может быть нативного языка, это же джавамашина. Тебя обманывают.
>>536300>масткновнАга, еще скажи что делая игру на юнити под мобилки нужно хоть одну строчку на твоей джавапараше написать.
Ну что юнитибоги, небось рефлекшоном все балуетесь.Поясните дауну с какого так сказать пирога я должен юзать CreateDelegate вместо тупого присвоения существующему делегату времянке ?
>>536342Если хочешь встраивать хотя-бы монетизацию, рекламу, нативные сервисы, ачивки, не говоря уже о доступе к низкоуровневым данным с мобилки(вроде GPS координат не в флоате, а в дабле, чтоб получать погрешность не в 15, а в 5 метров) - тебе нужно лезть в студию и в икскод постоянно. Доступ к директориям телефона, какие никакие БД, кастомные библиотеки на других языках. Так чтоб не лазить туда и не писать какие-то моменты руками - только для совсем детских поделий справедливо
>>536382Я уже несколько лет не общаюсь с юнькой с точки зрения игр - да. Я код пишу, блядь. Да и никогда не занимался лютой индюшатиной и в играх так-же. Понятие "сделать игру" не шибко для меня актуально.
Хочу, чтобы жена попробовала работу в IT, веб-дизайн либо что-то аналогичное. У неё хорошие изобразительные навыки и владение photoshop/Corel. Думаю, предложить ей поучиться использовать unity, как один из вариантов. Вдруг зацепит? Насколько велика потребность в c# при использовании unity, насколько велик рынок труда в этой сфере?
>>536388Представь себе ситуацию. Субботний вечер. Ты один дома, потому как у жены дедлайн и нужно марафонить код. Звонок - речь несвязная, паника, человек охуевает от происходящего, потому как вместо того, чтоб спать неделю хуярит коктейль из спидов и ноотропов. Из понятных слов только мат формируемый в текст и "заказчик". Сопровождается это в случае успеха эйфорией и ощущением себя "королем мира и повелителем кода".Такое будет случаться постоянно в течении пары лет. Потом наступит "перегорание", кризис среднего возраста, и ощущение себя отработанным материалом без цели и неконкурентным молодым мозгам проходящим "стадию 1"Далее наступит дзен, ей будет нравится пописывать код, зарабатывать на этом очень неплохую денюжку, любовь, мир, дружба и красота. И ностальгия по былому...
>>536395https://yandex.ru/images/search?p=35&text=Звонок - речь несвязная%2C паника%2C человек охуевает от происходящего%2C потому как вместо того%2C чтоб спать неделю хуяритЭто определённо какое-то буллшит бинго
>>536388Потребность велика(если игоры делать, то кодеры нужны). Рынок труда небольшой относительно. Людей еще меньше чем спроса. Платят очень хорошо. В геймдеве вообще дохуя специальностей(таланты любые нужны), но самые бохатые и любимые - кодеры.
>>536388>хорошие изобразительные навыкиСразу определись, она художник или ремесленник и от этого пляши.Если художник - нахрен посылаете работу на чужого дядю.Если ремесленник то тут конечно варианты.
>>536388>Насколько велика потребность в c# при использовании unitИ снова, если она художник, то кодинг если и потребуется то тупо на уровне копипасты пары строк.
>>536490У меня в соседнем подъезде художник настоящий живет. Посылает работу на дядю. Правда постоянно стоит перед магазом ближайшим и просит денюжку на водку. Бесполезнее персонажа, чем гумманитария, думающего что вот-вот его тонкий мир кому-то понадобится и будет востребован - никого нет.
>>536493а я под мостом бывало жил и пил паленую из консервной банки с такими же художниками и норм, жизнь живется. тебе просто не понять потому что ты не человек, а ходячий автомат. заменят твою душу на нейросеть, а ты и не прочь
>>536493Я про другого художника )От картинок которого народ говорит вау.Художник в том смысле, что идеям тесно у него в голове и он постоянно хватается за кисть.А юнити и прочие песочницы же круче чем кисть.
>>536497Пиздежь. Норм художник, со скилом но без вау от окружающих может зарабатывать от 5 баксов в час в этих ваших интернетах. Просто рисуя. Художники нищими не бывают. И в юнити им разбирать нужно ровно на уровне ноль, все необходимые объяснения об особенностях работы платформы для того, чтобы они смогли верно выполнить свою работу занимают меньше десяти минут. >>536488Графон - это 2/3 от игры. Остальное - геймплей. Что, собственно, и отражает рынок: годному художнику зачастую платят 50+ баксов, годный юнити-кодер мечтает о 10. Поэтому когда художник хочет покирилить - к нему сразу слетается пачка кодеров, готовых бесплатно воплотить его идеи в код. Если же кодер хочет найти себе художника для своего говна - придется платить, бесплатно хуй кто что будет рисовать.и
>>536505>Графон - это 2/3 от игры. Остальное - геймплей.Ну музон же забыл.Убери из Мист3, Готики, Уереал музыку - ощути разницу.
>>536497То, что тысяча-две человек лайкнули кого-то на девиантарте - не делает человека художником.Всем похуй что у художника в голове. Там может быть просто шиза. Или мания величия. А быть может он просто ленивое чмо, которое думает, что оно может нихуя не делать, но почему-то всем охуенно нужен его внутренний мир(на самом деле нет). Это гумманитарий - недочеловек. Плюс лишенный навыков.Единственно важное - наличие навыков. Если умеет выполнять правильные вещи, пользоваться нужными инструментами, хуячить на выходе найс продукт, что можно использовать, умеющий слушать и слышать, при этом постоянно обучаясь и самообразовываясь(в написании эфикс или шейдоров, умеющий в сабстенсы все и воптимизацию) - то скорее, да, в команде он нужен и в зависимости эт этих скилов он получает денюжку. Иначе - все плохо.
>>528048 (OP)Скоро в юньку завезут воксельное ги суперахуительное летающее даже на древних видюхах и не надо будет говнозапекать говно.https://forum.unity.com/threads/hxgi-realtime-dynamic-gi.472486/page-15#post-3875065
>>536573>Скоро в юньку завезутНадо только подождать. Не рефлексируем, пиарим. Надо сходить годоблядей пнуть в говнотреде.
Пацаны, знает кто-нибудь где character controller хороший лежит? Уже штук 15 попробовал, все хрень какая-то, как будто не врубаются какой он должен быть.
>>536598>Уже штук 15 попробовал, все хрень какая-то, как будто не хотят годноту бесплатно выкладывать. Юнитификс.
>>536609>Пацаны, знает кто-нибудь где character controller хороший лежит? Уже штук 15 попробовал, все хрень какая-то, как будто не врубаются какой он должен быть.
>>536609Могу дать внезапный совет: Есть несколько бесплатных и при этом годных контроллеров для годота. Нет, я не призываю к инсталл годот. Предлагаю кое-что покруче: берёшь туториал по контроллеру для годота и реализуешь то же самое в юнити. ГДСкрипт прост и похож даже не не питон, а на алгоритмический псевдокод. Матчасть совершенно та же самая. Достаточно переложить на шарп. _process заменить на Update()
>>536598в ютубе туторалов по контроллерам как говна, сам оттуда спиздил неплохой контроллер и камеру, потому что дебил и не понимаю в них нихуя.
>>536505>Поэтому когда художник хочет покирилить - к нему сразу слетается пачка кодеровНуну. Ко всем и всегда слетаются все подряд (и ничего не доделывают). А уважающий себя спец с опытом игнорирует, что кто-то там кирилит.
>>536642>спиздил неплохой контроллер и камеруТам одно говно, я страниц 20 просмотрел, большинство суперпростые, идешь вверх на склоне - скорость не уменьшается, идешь вниз рывками как долбоеб. Есть вроде бы крутой платныйhttps://assetstore.unity.com/packages/tools/physics/kinematic-character-controller-99131Но его пока не спиратили. Еще несколько бесплатных, но они странные, вроде авторы хорошо программируют, но один при подъеме на склон проваливается, а при спуске вылазит дальше чем нужно. Где ты видел такую хуйню, ебанько? Хочется спросить у автора. Нашел почти идеальный бесплатный CharacterMotor.cs и CharacterMotorC.cs, это официальный юнитевский из старых версий юнити, потом заменили на фпсrigidbody. Он даже по платформам ездит, вообще идеально. Но у него прыжок стремно сделан, типо если долго жмешь выше летит, слабо - ниже, хуйня какая-то, нужно снести и сделать обычный, но там так запутано, все разваливается если кривыми лапками лезть. И у него есть баг, когда приземляешься на крутой склон летя вниз, он прекрасно скатывается, а если вверх и не отпускаешь кнопку бега, то тупо едет вверх бесконечно, на любую стену можно забраться. Сам не могу исправить ошибку, слишком сложный скрипт, если бы кто-нибудь исправил... Нашел еще и его исправленную версию, но там все переписано, убрана возможность ездить по платформам и тоже недописано.>>536636>Предлагаю кое-что покруче: берёшь туториал по контроллеру для годота и реализуешь то же самое в юнитиЗаебался уже, да и не получится скорее всего, да и контроллер там скорее всего тоже говно.
>>536674>не получится скорее всегоКак ты игру собрался делать, если даже контроллер по инструкции не можешь осилить?А вообще я, наверное, скажу ужасную вещь, но... Просто купи нормальный контроллер, если со скиллами все плохо. В конце концов это единоразовая покупка.
>>536680Проблема этих покупок в том, что они все говно. Есть много спираченных ассетов, системы всякие боевки, все говно. Если бы не пиратство пришлось бы кошельком проверять каждый. На ролике выглядит классно, скачиваешь там полное говно. Так бы конечно купил то что нужно. Я склоняюсь к тому, что чем у прогера выше скилл, тем меньше вкуса и вообще творческих способностей (не считая код). И еще им не хватает хитрости просто пиздить самые популярные геймплеи, они обязательно на свое усмотрение делают (конечно хуйню).
>>536699Справедливости ради, ты вряд ли можешь объективно оценить качество чужих ассетов ввиду собственной низкой квалификации. Без обид.
>>536682>Я склоняюсь к тому, что чем у прогера выше скилл, тем меньше вкуса и вообще творческих способностей (не считая код)Полу-правда такая, ну. Вкус дело наживное. Да, разумеется, есть товарищи которые с рождения пиджак к шортам подберут (но таких один на тысячу). А научиться разбивать картинку на составные части - такой скилл, как научиться разбивать программу на функции. Правда в том, что прогеры кладут хуй на "картинки эти ваши". Неправда в том, что с годами у любого человека прокачиваются все скиллы.
>>536682>Я склоняюсь к тому, что чем у прогера выше скилл, тем меньше вкуса и вообще творческих способностейЧушь. Талантливый человек талантлив во всём. В данном же случае дело в том, что чем меньше глупый человек что-то знает в такой-то области, тем сильнее он бьёт себя пяткой в грудь, заявляя о своём профессионализме. Такие технари и выдумывают себе тупых гуманитариев, у которых "эти ваши ненужные картинки"
Народ, как лучше реализовать выравнивание ландшафта в стратегии при постройке дома? Это делают с помощью динамического изменения террейна?
>>536740Гораздо проще сделать фундамент у домиков деревянных который по своей длине гарантированно уходит вглубь любых неровностей. И такие же длинные ступени крыльца у входной двери.
>>536682>Я склоняюсь к тому, что чем у прогера выше скилл, тем меньше вкуса и вообще творческих способностей (не считая код).Нет. Противостояние "гуманитарии-технари" есть ложная дихотомия. Углубляться в одну сторону в ущерб другой - обрекать себя на убогость.
Можно ли в висуал студио забиднить скрипты, ну типа такой хуйяк шифт +1 и перед тобой твой скрипт говна. Подзаебало мышковать в тоннах говна.
>>536800А можно сделать так к определенному месту, ну вот например хочу забиндить так чтоб при наждатии кнопки открывался опредененный класс в определенном месте, в общем задумка просто быстро свитчится в частопосещаемые места.
>>536809Хороший код не предполагает часто посещаемых мест.А на счет твоего вопроса хз, никогда не интересовался.
>>536723Для того чтобы понять, что повар хороший, не нужно быть профессиональным поваром, ебанько. Без обид.>>536737Нет, у всех свой потолок в каждом деле. Невозможно много учиться и стать эйнштейном, это врожденные особенности. Можно преуспеть только в том, к чему у тебя склонности врожденные, в остальном потолок очень низкий, чем больше в одном, тем меньше в другом, мозг он маленький.>>536738>Чушь. Талантливый человек талантлив во всём.Заткнись, пидараска. Гении как правило только в чем-то одном гении. Да, и пару талантов иметь можно, но это большая редкость, обычно вообще никаких, хоть усрись. Если у дауна айкью 60, как у тебя, хоть что делай, выше твоей тупой башки ты не прыгнешь, довин.>>536789А я и не говорю про технарей и гуманитариев, просто конкретно в этом случае так вышло. Наверняка, в ваших пизданутых манямирках полно гениальных программистов, которые одновременно еще и гениальные художники, что с вас взять.
>>536826>ебанькоСразу видно профессионала.Конечно, ты прав. Для оценки качества фрезерного станка не нужно уметь им пользоваться, это любому дураку очевидно.
>>536826> Нет, у всех свой потолок в каждом деле. Невозможно много учиться и стать эйнштейном, это врожденные особенности. Можно преуспеть только в том, к чему у тебя склонности врожденные, в остальном потолок очень низкий, чем больше в одном, тем меньше в другом, мозг он маленький.Быдло без склонностей закукарекало. Нет никаких склонностей, просто одни люди лучше других, и у них потолок во всех областях высокий, а у других - во всех областях низкий. А т.к. ты этого не понимаешь - ты явно из вторых.> Заткнись, пидараска. Гении как правило только в чем-то одном гении. Ага, они ведь в чем-то одном прокачиваются, как они могут быть гениями в том, чем не занимаются?> Наверняка, в ваших пизданутых манямирках полно гениальных программистов, которые одновременно еще и гениальные художники, что с вас взять.Если говорить про реальный мир - то в нем любые гениальные программисты могли бы стать гениальными художниками. И наоборот. Только зачем им это? Когда ты гениальный программист - тебе не нужно становиться гениальным художником, максимум помазюкать на выходных.
>>536842>Для оценки качества фрезерного станкаРазговор про людей, дура, что ты несешь.>>536869>они ведь в чем-то одном прокачиваютсяЕсть те кто в одном, есть кто во всем, люди разные, если ты не знал, ебанько. Есть те, кто ебашит бесконечно, выучивают один язык, второй и так всю жизнь. Так же можно представить суперцелеустремленного человека который занимается многими делами и везде достигает пика, но таких нет, только в твоем манямирке, даун.
>>536826>Нет, у всех свой потолок в каждом деле. Невозможно много учиться и стать эйнштейном, это врожденные особенности. Можно преуспеть только в том, к чему у тебя склонности врожденные, в остальном потолок очень низкий, чем больше в одном, тем меньше в другом, мозг он маленький.Что ты забывать собрался? Существование комплементарных цветов? Хотя мозг забудет градус-по-HUE синего цвета без примесей Или суть оператора условного перехода? Хотя если пять лет не кодить на питоне - if по памяти не напишешь. Умение в гугле вбить "flat design guides"? Что-то ни разу не слышал, чтобы человек забывал про гугль. Ты формулу воды почему не забыл? Не ври, ты её помнишь. А там и кислород от водорода отличишь. Хотя - унеситеэтухуетуотменя - это химия.Навыки без практики стачиваются - да. Общий скилл остается. Если чувак на 25м лвл понял, что красные штаны и зеленая куртка сочетаются не очень, то он в 35 её снова не оденет. Плюс, в 27 осознает, что эта прическа ему не идет. Это не значит, что в 40 он будет одеваться лучше всех. Но значит именно то, о чем я говорю: забываются детали, но не общие вещи.
>>536598А тебе точно игру делать, или велосипеды писать, как долбоебам местным? Я бы дал тебе контроллер, но не уверен пока.
Надо ли в gitignore прописывать .meta файлы? Скачал гит игнор для юнити, ну и вроде как норм, но он не игнорит мета файлы. Но их юнити сам создает каждый раз, да и не обновляются они даже когда сам файл меняешь. Так нахуя их тогда в репозитории хранить?
Платиновый вопрос: почему в юнити такой стремный свет и как его пофиксить, посоны? Получаю нормальные тени только от direct light, а все остальное расслаивается на ебенячие пикселизированные лесенки. Читал форумы юнити и прочие ресурсы, лекарства так и не нашел.
>>537035Вот еще https://stackoverflow.com/a/29046732 > if you have a very large ground object you need to spread your texel budget so shadow quality will be lower> the floor size was the actual problemХотя с 15го года все могло поменяться.
>>537048Не, в эту первым делом полез, нихуя не меняет. Такое впечатление будто с каждым источником помимо бесконечного эта псина шакалит тени все сильнее.>>537062Гляну спс
подскажите клёвую функцию чтобы я мог дать ей какой-то int, а она мне вернула какой-то цвет соответствующий ему и каждый раз один и тот-же для этого int. смещал байтики но не придумал как сделать красиво чтобы цвета не повторялись слишком часто и различались достаточно сильно
>>537627https://en.wikipedia.org/wiki/Hue и еще настраиваемый random seed https://stackoverflow.com/a/19303725 тебе пригодится, если захочешь нелинейную последовательность цветов
>>535649>Точно так же моб из абстрактного примера выше, он может ползти и жевать мертвечину в спокойном состоянии, но завидев ГГ он плавно перестаёт жевать и выпускает стрекательные тентакли, плавно меняя траекторию движения, хотя КА его ИИ уже десяток фреймов назад переключилось с "питаюсь" на "атакую врага".При виде врага он переходит в стейт "выплёвываю мертвечину и выпускаю тентакли", за которым следует стейт "ползу и грыгу, ползу и грызу!". Очевидно же.
Котаны, есть проблема, приходит много данных, Json парсер спайкает, иногда коннект вообще падает. Требуется раскидать выполнение задач, для каждого подключения - отдельный поток. Вопрос, как передавать данные в главный юнити поток? Первое что в голову пришло - для каждого типа данных сделать ConcurrentQueue, кидать туда данные, а в юнитипотоке использовать TryDequeue() ? Какие способы могут быть?
>>528761А вот и нет, если бы вы понимали хоть что-то в аллокации памяти и прочем, возможно вы бы прозрели, что создание класса идет в пул, а пулы разделяются по чанкам в зависимости от фильтров, я использую LeoECS его произвоидетельность примерно около стандартной юнити ECS. Использую стороннюю по множеству причин, среди которых сторонний рендерер внутри юнити и некоторые прицелы на MonoGame