Это копия, сохраненная 8 июня 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
https://twitter.com/neoaxis/status/1104752688124833793
Странный какой-то релиз, скрины старые, никаких новых фич нету, что они там делали 5 лет?
Хуя ты мудрый.
Даун блять обосравшийся, почему же вы не съебываете когда я посылаю вас, что же вы такие пизданутые
Читать умеешь, даун? Петушина проткнутая, нахуй ты существуешь.
На линуксе нет игор
Из-за чего ты проиграл, даун? Модульная, компонентная система, а не всратый ооп
От того, что ты говнокод называешь паттерном, он не перестаёт быть говнокодом, уёба.
Сущность "экран" хранит компоненты-виджеты.
Бамп вопросу.
И добавлю, что в части ввода данных я с этим вопросом разобрался.
Вместо
if (key == W) { vec2 move.y = 1 }
if (key == W) { vec2 move.y = 1 }
if (key == W) { vec2 move.y = 1 }
if (key == W) { vec2 move.y = 1 }
Непонятно, какого хуя сообщение отправилось.
Вместо:
if (key == W) { vec2 move.y = 1 }
if (key == A) { vec2 move.x = -1 }
if (key == S) { vec2 move.y = -1 }
if (key == D) { vec2 move.x = 1 }
я напишу:
vec2 move.x = int(key = D) - int(key = A)
vec2 move.y = int(key = S) - int(key = W)
Но, как быть с конечными автоматами? Как их реализовать без ифов? Потому что хоть анимации, хоть ИИ, в любом случае придётся использовать КА. Сотни статей перечитал - нихуя не понимаю.
Обесните на пальцах.
Поставил case? Лошара, у процессора все равно нет команды case, а только if и jmp. Все это твои предрассудки.
>vec2 move.x = int(key == D) - int(key == A)
>vec2 move.y = int(key == S) - int(key == W)
Слоуфикс.
>int(key = D) - int(key = A)
Это ты присваиваешь key разные значения, приводишь к int и вычитаешь? Бред.
О боже, я снова оскорбил тупаря, который не понимает моей аргументации. Как же быть...
>Просто хочу разобраться.
Подписываешься на события через редактор ебучий, который визуальный типа. Повышается реюзабельность твоего вонючего кода + твой ссаный дизайнер "эдвард-руки-пенисы" сможет подписывать нужные объекты на нужные события. В крайнем случае можно через редактор задавать ссылки на нужные кнопки. Но искать кнопки по именам в коде - это уже клиника.
>эдвард-руки-пенисы
Олдфаг в треде! Вот и свиделись.
>искать кнопки по именам в коде - это уже клиника
Эм, ты о чём? Выше в постах исключительно в псевдокоде примеры. Никакого поиска по именам. Только события, естественно.
> vec2 move.x = int(key = D) - int(key = A)
> vec2 move.y = int(key = S) - int(key = W)
Это просто пиздец.
ЫЫЫ ИКАНОМЛЮ ДВЕ СТРОЧКИ ЫЫЫЫЫЫЫ ТЕПЕРЬ КОД ЧИТАЕМЕЕ В НЁМ ПРОЩЕ РАЗОБРАТЬСЯ))))
Как минимум второй чел тебя не оскорблял.
Напомню его собщение:
> Те же if за синтаксическим сахарцом. Ты верун?
А ты же в ответ оскорбил его, проигнорировав его консультацию и ложно обвинив в оскорблениях, которых тут нет. Двойные стандарты?
Ну и я уж вообще молчу про то что ты мало того что на сосаче ноешь что тебя оскорбляют, так еще и пиздишь что-то на справедливую аппеляцию к невежеству.
Флешбеки из laba_5 по программированию.
Блядь, орнул.
Сейчас среди неосиляторов ООП модно его ругать и хвалить все функциональное. В функциональных языках нету ифов и других стейтментов.
Всё функциональное внутри имеет то, что пытаются заменить, if там есть, и всё остальное.
Код компактнее вроде, да? Но работает медленнее, потому что там внутри целая куча, которую нужно обрабатывать, чтобы получить красивую оболочку, под названием функциональное программирование.
Чем это лучше годота?
Все лучше годота
Берешь спрайт/модельку, двигаешь влево-вправо с постоянной скоростью, смотришь, плавно ли двигается. Если у тебя нормальный движок, то всё будет плавно, если у тебя годот - время от времени будут проскакивать рывки.
Нормальный игровой цикл написать непросто, особенно если он многопоточный. У Хуана просто не получилось, теперь валит всё на кривые драйвера у nvidia.
Сколько потоков у хуана?
> Если у тебя нормальный движок, то всё будет плавно, если у тебя годот - время от времени будут проскакивать рывки.
Деревенщина, можно график фреймиайма выводить.
В любом движке есть такое, это же фундаментальная проблема отображения рационального значения времени на дискретное количество кадров.
Это какой-то assetbash либрарибаш от мира движков. Линукса нет, андроида нет, айфонов нет, VR нет, зато bgfx, ASSIMP и 64 битная точность бай дефолт. Ну охуеть.
Из середины нулевых, ньюфаженька.
Нету, эту проблему ты сам сейчас выдумал.
То о чем ты говоришь может повлечь за собой лишь тиринг(проблема для движков настолько фундаментальная, что контрится всинком, а если не хочешь жрать инпут лаг то фрисинком, жсинком и фастсинком - целый зоопарк на любой вкус), потому что то что ты назвал "временем" определяется полностью частотой обновления картинки на мониторе, остальному железу на это насрать.
Теперь немного теории:
Статтер - это сильно выбивающееся в худшую сторону время кадра(тут мы рассматривпем не время кадра на мониторе, а на процессоре в совокупности с видеокартой которая рендерит то что нужно по его указаниям, можешь называть это не кадрлм а одним полным игровым циклом, как тебе угодно) на некотором промежутке времени, которое портит игровой экспириенс. Например идут кадры по 15-16мс и всё заебись, а тут на нахуй 40 мс жри говно, потом опять пошло некоторое количество времени(в районе полсекунды скажем) и на нахуй опять 40 мс кадр. В итоге счетчик фпс показывает в районе 60, а на практике играть в это говнище жутко неприятно. И проблема эта вызвана не каким-то "рациональным временем" и "дискретным количеством кадров", а тем, что движок именно на этом кадре решил вычистить память, обновить какой-нибудь кэш, что-то очень нужное просчитать и это как мы видим заняло много времени.
А он и не говорил что интерфейс редактора=движок. Например можно сказать "на лошадях с таким извозчиком далеко не уедешь" - структура предложения точно такая же, причем если мы уберем первуб часть то получим "с таким извозчиком далеко не уедешь" и смысл остается такой же. Также и тут "с таким интерфейсом игры не делаются" - смысл не поменялся и это действительно так. Я думаю он это имел в виду.
А вообще это у тебя просто шило в жопе и ты уже во втором треде подряд до этого доебался.
Ну так я примерно о том же и говорю. В одном случае 15мс хватило на кадр. Во втором хватило. А в третьем попало на границу кадра, и вот уже один кадр пропустили и только в следующем нарисуем.
У лошади извозчик есть. А у движка интерфейса, на котором "что-то делают", нет.
Ну если монитор 60гц = каждые 16.6мс обновляется картинка, то описанная тобой ситуации никогда не возникнет если каждый раз время кадра будет меньше 16.6мс.
Вот если время кадра бывает больше 16.6мс, например иногда проскакивают 17мс - тогда такое может быть. А если иногда проскакивают 34 мс кадры - это уже потеря двух из трех обновлений на мониторе, это уже пиздец статтер.
>зато bgfx, ASSIMP
Вообще-то так и должно быть в нормальном движке, нужно использовать специализированные библиотеки для различных подсистем, а не городить свои кривые велосипеды под каждый чих, как сделал Хуан.
Ослина даже не понимает, что этот косяк не зависит от производительности и в юнити так же на двух кубиках статтерит.
Майнеры проверь, двухкубичный дебс
Нет, движок должен быть ближе к железу, поменьше прослоек, был случай когда чувак выкинул bgfx и получил прирост производительности в два раза.
0 * 5 = 0
С простым спрайтом у тебя будет тратится 0.01мс(эквиваленьно 100000 фпс) на кадр. Даже если ты там заметишь разброс аж до 0.1мс - то это будет из-за каких-то фоновых задач. А если ты заметишь статтеринг с одним спрайтом - то это кривой разгон процессора(или стоковый но на деградировавшем от многократного перегрева цпу, наверное) или памяти, опять же какие-то фоновые задачи(например именно в этот момент ебущие мертвый жесткий диск), проблемы с видеокартой/драйверами, может быть проблемы с другим оборудованием.
Вот если уже спрайтов будет много - тогда есть смысл проверить на статтеринг и ечли он есть то подумать что же у тебя такого раз в несколько кадров может сильно повышать нагрузку на процессор.
И зачем ты эту статью сюда притащил?
Показывай где там в юнити что статтерит - для этого нужно видео.
Это работает только для кода привязанного к фиксированному фреймрейту.
>Показывай где там в юнити что статтерит - для этого нужно видео.
Хуя пососи, чума, запусти да посмотри. У нас тут не суд, тебе пидару ничего доказывать не собираюсь. Я запустил и видно, что в годоте, что в юнити заикания ебаные.
Это безпруфные кукареканья.
В hw тебя бы за такое из треда вышвирнули, там челы не ленятся записывать видео с полным мониторингом нагрузки и фреймтайма.
>безпруфные
Я же тебе сказал, что не собираюсь ничего доказывать, долбоеб. Ты отрицаешь то что в статье написано? Юнитипидары уже писали, что у них тоже есть статтеры, так что соси.
Ахаха, гавнина блядь. БЕЗ ЛАЗАНЬЯ В КОД НИЧЕГО НЕ СДЕЛАТЬ! АХАХАХ! БЛЯДЬ! В ЭПОХУ ДАТА-ДРАЙВЕНА И ECS! ХУЯЧИТЬ МОНОЛИТ!
Там нет монолита, даун.
Ты, чмо, всё это делается через редактор Юнити. На события подписываешься через редактор. Создавать окна и наследовать в коде не нужно, создаёшь всё в редакторе. Не нужно загружать вручную окна, можешь префаб создать и перенести на сцену. Пиздец тебе, короче. Заебал ты меня.
Тогда как ты оцениваешь правильность кода, если никогда не видел правильный код, редакторо-дебил?
>ECS вместо архитектуры, наследования, оптимизаций компилятора
>шлем всем по сто тыщ сообщений на каждый чих
>РРЯ ПОЧЕМУ СТАТТЕРИТ?
>В hw
Это там, где по 200 постов могут перекидываться называнием шизиками друг друга, оба вбрасывая какие-то невнятные графики?
>Этот интерфейс из 90-х. На движках с таким интерфейсом игры не делаются.
Можно и без интерфейса, чисто в блокноте ебашить параметры.
Мне больше нравятся интерфейсы 90х, там олдовее смотрится. А это интерфейс 200х, Вспоминаю офис 2007.
В годоте всё построено на самописных костылях - в итоге как раз годот дрожит и статтерит.
Что это за говно и чем оно лучше ue4? Зачем очередной движок?
Если нет 10000 бесплатных ассетов - не нужно
https://twitter.com/neoaxis/status/1111094240392761344
То что линуксоиды с завидной периодичностью дают на рот виндоузятникам это я слышал, но чтоб они после этого и рот им струей мочи промывали, это что-то новенькое.
Помой рот после хуев, линуксоид.
>Если у тебя нормальный движок, то всё будет плавно
Неуловимая проблема тайминга кадров
https://habr.com/ru/post/419043/
Читани эту статью, это общая проблема касается всех движков а не только одного.
Это копия, сохраненная 8 июня 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.