>>1083568 >Если у них есть возможность подсчитывать количество запусков Да нет у них такого способа, и никогда не было.
>неработоспособными уже купленные игры на устройствах игроков? Даже если бы они могли так сделать, это отключалось бы одним кряком на все игры.
>А перед клиентами будешь отвечать лично ты в первую очередь, а не юнити. Скажешь "пшш пшшш какой-то фанат принёс печеньку, которая фиксит игру пшш пшшш".
Анон, поставил Unity снова спустя год, хуле он мне все время создаёт папки с названием проекта которые я когда-то создавал год назад, типа синхронизируется с чем-то, зашел в Unity Cloud, там вроде все по удалял, а он мне один хуй их постоянно создает. Шо еще можно сделать?
>>1083568 > по каким либо соображениям сделать неработоспособными уже купленные игры на устройствах игроков? Зачем? Чтобы набутылиться в суде и понести репутационные потери?
>>1083586 Юнитеки специально будут в чанах с говном со дна стима копаться чтобы выловить иван город челябинск и его игру блокнуть по приколу не имея абсолютно никаких профитов с этого?
>>1083590 Если они могут считать запуски для конкретного проекта, то могут блокнуть. В определенном регионе. Просто чтобы реалиовать фичу подсчета запусков приложение у клиента тоже должно быть всегда онлайн. У тебя в юнити аккаунте есть целый дашбоард с телеметрией. Это только то что дают тебе. Регион может так же отвалится по причине длительно недоступности сервисов юнити.
На Фальку рычали за простую адваре, а тут зонд в жопе предагается игнорировать..
>>1083563 >Эта консольная команда была написана где-то кем то в глубинах форумов. Так не консольный гений, ты слабенький гуглёныш. А я думал ты прям man unity открыл и там прям нашел нужную опцию с ключом. Вот мы и поняли кто ты.
>>1083590 Так это не в ручном режиме происходит. Как только игра с юнити запускается на устройстве с интернетом, она тут же ходит куда надо, отправляет метаданные, потом на сервере юнити уже идет сверка лицензии, кто делал билд, на какой подписке, в каком регионе. Блокнут не по приколу, а за нарушение лицензионного соглашения. Лично тебя в челябинске не достанут, но твоя игра и аккаунт студии со стима слетит в пермабан, скорее всего, потом уже не сможешь повторно зарегаться на свою персону.
>>1083795 > Блокнут не по приколу, а за нарушение лицензионного соглашения. А зачем тебе нарушать лицензионное соглашение? Может стоит простотделать игры?
На самом делетя просто подвгоываю, так то понятно, что ты просто хуйню несешь, чтобы не делать игры.
>>1083795 >Как только игра с юнити запускается на устройстве с интернетом, она тут же ходит куда надо, отправляет метаданные, потом на сервере юнити уже идет сверка лицензии, кто делал билд, на какой подписке, в каком регионе.
Такое технические такое возможно, но юридически они должны на каждый запуск игры на каждом пк прикручивать спрашивалку на это.
На самом деле если убрать влажные юношеские мечты, то окажется зарабатывающих игр не так много и это легко мониторить даже небольшой командой менджеров (купят, декомпилят, спросят).
>>1083979 приблизительно да. это из самой старой статьи, со временем это число уменьшилось до 20-30 так как стим стал навязчивей просить писать отзывы. учти что все игры спустя годик начинают продаваться по скидкам 50-80% и имеют региональные цены, так что не стоит это примерное число продаж умножать на фуллпрайс
>>1083982 вот свежий пример, разрабы на днях 100к копий продали, у игры 2000 отзывов. ратио 50 к 1. но игра кроме стима вышла на всех консолях включая пастген, и речь про продажу 100к копий на всех платформах. допустим консольная часть продаж 50% со всех консолей вместе взятых. соответственно финальное ратио будет 25 к 1, то есть укладывается в диапазон 20-30
>>1083979 На steamdb есть estimated owners, можешь ориентироваться на него, а не на гадание по отзывам. А зачем тебе это знать? Как это поможет сделать игру лично тебе? Хиты и бестселлеры и так известны, но даже если ты клонируешь их, не факт что твой клон взлетит так же
>>1083985 >флеш-стиль нулевых Топовая тема, ИМХО, очень ностальгично (миллениал).
Проблема в том, что на одних кружках и квадратах не нарисовать чего-то интересного, ты всё равно должен обладать навыками художника, видением проекта, а не просто следовать примитивным туториалам.
>>1084036 Хуя коупинг. Пиксель арт бывает приятный и минималистичный. Топовый пиксель арт это вообще высокий уровень, требующий высоких художественных скиллов. Вектор бывает вырвиглазный и нечитаемый, как в твоем случае. И как отметили выше, ассоциируется с детскими играми, казуалками, мобильными дрочильнями и прочим слопом. Тут даже проблема не столько в стиле, сколько в слабой художественной базе и плохом дизайне. > куплю просто трафик. Чтобы еще больше людей посмотрели и сказали «фу, выраиглаз» и ушли? План надежный, как швейцарские часы.
>>1084044 >Чтобы еще больше людей посмотрели и сказали «фу, выраиглаз» и ушли? План надежный, как швейцарские часы. Ты даже не представляешь силу маркетинга. Я еще всплакну на стриме и покажу синяки от побоев жены.
Поэтому бздотей из командной разработки нужно гнать ссаными тряпками, потому что рано или поздно он заскучает, не вывезет или просто сбежит, и в его говнокоде разбираться уже никто не будет. В итоге проект умер, месяцы работы нескольких людей отправлены в мусорку. А делали бы на годоте - за день бы нашли нового программиста на замену. Ну, зато бздотя повыебывался тем, какой он нитакусик и крутой перепечатыватель туториалов.
>бздотя убил проект Проект умер из-за тимлида, который бесполезный: >погромист, художник, звуковик и бесполезный я Или кем он себя считал, геймдизайнером что ли?
>>1084211 > Представляешь себе, как выглядел Godot 2.0/2.1? Вполне рабочий для 2д был. Все лучше, чем допускать бздотю до создания игры, который убьет проект в любом случае, несмотря на все труды целой команды.
>>1084220 Ну не скажи, там наверняка все захардкожено, все абилки, анимации, боевка, комбо, и т.д. Вряд ли бздотя чистый dod использовал, чтобы переписать пару систем и перенести весь игровой контент как есть, там скорее всего анимации, прописанные покадрово прямо в коде и прочие прелести бздотя-девелопмента. А перенос такой игры даже с готовым артом - это как делать все с нуля, на кардинально новой архитектуре.
>>1084226 >это как делать все с нуля Сразу видно, что ты игр не делал самостоятельно.
Если ты делаешь не клон 1-в-1 успешной чужой игры, сложнейшая задача - не код, арт или анимации, а сами игровые правила, логика, формулы и параметры этих формул. Всё это не зависит ни от ЯП, ни от движка, ни архитектуры. Поэтому разработка игры 99% времени представляет из себя "подвинуть на 3.5 пикселя или умножить число на 1.5 и посмотреть на результат в процессе игры реального игрока (разработчика)".
Когда правила, логика, формулы, параметры и т.п. окончательно найдены и утвержены, можешь хоть полностью переписать игру с нуля на ассемблере - времени это займёт немного, ведь игра уже есть, достаточно подтянуть либы для показа спрайтов.
И "хардкод" не помеха, т.к. все языки +/- одинаковы касательно математических и логических формул. Единственное препятствие - это, скажем... обратная польская нотация, если оригинал написан на Forth, например, или что-то другое экзотическое вроде самодельного языка для стековой машины... Даже в подобных случаях перевод формул тривиален по сравнению с изначальным поиском этих формул.
Именно поэтому новичкам рекомендуют делать клон классической аркады - там все формулы уже заранее известны и достаточно просты. Дело не в графике, поскольку 3D пакмана сделать не сложнее, чем 2D, а именно в поиске оптимальных формул геймплея.
Но я сомневаюсь, что в том треде была такая игра - продуманная до мелочей. Обычно у новичков нет конкретных формул, только обрывистые идеи.
>>1084240 Как будто ты делал игры. Если бы ты делал, то знал бы, что 90% работы, даже с готовым артом - создание объектов и сцен в редакторе, их расстановка, связь через скрипты, наполнение игры контентом таким образом, и это все придется делать с нуля. Потому что в движке уже есть своя архитектура гейм объектов, на которую хардкод бздоти не налезет при всем желании.
минутка вопросов. почему движок сделанный дурачком из gd, с нуля, без опыта, за год, выглядит профессиональнее "бесплатного" (за миллион долларов в год) движка, сделанного 100+ человек за 10+ лет? это как если бы мастер карате потратил 10+ лет и целое состояние на то, чтобы научиться разбивать доски рукой, а потом бы из зала вышел маленький мальчик и сделал то же самое. абсолютное унижение разработчиков годот, как по мне. они окончательно и бесповоротно были обличены мной как самозванцы. если бы я был пользователем этого движка в вопросе, то лично мне после такого было бы просто стыдно продолжать им пользоваться.
кажется я начинаю догадываться каких программистов заменяет LLM.
>>1084324 бздынь, движок допиливается необходимыми инструментами - менеджером пакетов, официальными пакетами и сторонними пакетами из ассет стора, а это значит что мне не придётся год тратить на допиливание редактора
>>1084324 >каких программистов заменяет LLM. Разумеется бздотей, которые вместо создания новых инструментов - пилят трижды переваренный кал который есть во всех движках (включая годот) и перепечатывают туториал
>>1084324 > выглядит профессиональнее Что ты там профессионального увидел, спизженный из блендера интерфейс? Так-то даже нау энжин выглядит более профессионально чем то, что у тебя на пике. Если это весь результат твоей пятилетней работы - нарисовать сетку и спиздить код редактирования сплайна из туториала, то это конечно печально. Майк 🍓 за меньшее время выпустил 20 игр, стал мировой легендой геймдева и долларовым мультимиллионером. А ты все в пердольку свою долбишься, игр как не было, так и нет, зато нарисовал сплайн, который из коробки есть в лютом движке. Это задача, решенная до тебя миллион раз и потому не представляющая трудностей, полностью понятная, как раз LLM такое щелкает как орехи. А вот придумать такую игру, которую можно вывезти в одного, и при этом она зайдет миллионам людей - эта задача не имеет детерменированного решения, поэтому ты за нее и не берешься, нет туториалов, с которых можно спиздить решение , да и нейронка не поможет. > каких программистов заменяет LLM. Таких как ты в первую очередь и заменит, потому что ты решаешь проблему, решенную до тебя уже миллион раз всеми возможными способами и описанную в подробностях везде где только можно.
>>1084331 в гимп тоже много чего есть про сравнению с фотошоп.
>>1084337 а ты любитель переводить стрелки. это тема про движки.
>много чего есть >решенная до тебя миллион раз если решенная, то почему в годот не решили, почему там это решено хуже чем у меня. почему решение годота выглядит как решения дурачка из гд, а не наоборот. дело не в том, что что-то решено, а как это решено. режим редактирования кривой это просто пример.
>выглядит профессиональнее Ты разве не понимаешь, что от движка, как и любого профессионального инструмента, важнее функции, выполняемые инструментом, а не внешний вид? От раскрашивания велосипеда в "профессиональный" чёрный цвет велосипед не станет лучше старого трактора в нежно-розовой раскраске для работы.
Вот сделай игру (3д экшон, суть знаешь) на своём велосипеде, тогда и поговорим.
>>1084337 >А вот придумать такую игру, которую можно вывезти в одного, и при этом она зайдет миллионам людей Open world survival craft. Всё, делай игру, идейщик.
>>1084348 >отдельный тред Где-то был тред движкопись. Видимо, утонул.
>>1084351 > Видимо, утонул. Бздоти устали писать свои бздотя энжины по 5 лет без выхлопа, находясь на том же этапе отрисовки сплайна или цветного треугольника, и разбежались кто куда. > Open world survival craft Это не идея, и не инди масштаб. Таких идей уровня «суть такова» у каждого по десятку, они ничего не стоят.
>>1084352 >Это не идея Какая тебе идея нужна, лалка? Чтобы вообще ничего делать не пришлось, а деньги сами текли тебе в рот? Таких не бывает. Даже мошеннические пирамиды требовали каких-то усилий от мошенников, а если б мошенники собрались и думали "о, какая идея, уж с такой-то идеей мы станем сказочно богаты", то они б остались на свободе и не сели за мошенничество.
Вот как всегда: - идея - будем делать движок 10 лет; - движок есть, но интересных идей нет... Лишь бы не выходить из зоны комфорта.
>и не инди масштаб Просто не делай АААААааа-фотореализм, не делай физический симулятор а-ля BeamNG.drive, не делай массовый мультиплеер и всё будет нормально. Сам "открытый мир" сегодня не сложнее "закрытого"...
>они ничего не стоят Если это так, почему ты их не реализовал?
>>1084361 Generic движки больше ни для чего не нужны, конечно. Тебе об этом уже писали выше, что нужны специализированные движки под конкретную идею, которую можно сделать только кастомным движком.
>>1084360 > Какая тебе идея нужна, лалка? Как минимум интересный кор луп, сеттинг, персонажи, мета, все это оформленное в каком-то формате - вики, обсидиан, граф из страниц и т.д. То есть не просто маня фантазии Кирилла из головы, а проведенная работа, зафиксированная на бумаге. Мне не нужна, я свою игру уже делаю, у меня по ней много документации расписано. > ничего делать не пришлось Откуда ты это вообще взял? Думаешь 🍓 ничего не делал? Это тяжелый монотонный труд, который не каждый вывезет. > Сам "открытый мир" сегодня не сложнее "закрытого" Где твоя игра с открытым миром? Ах да, ее же не существует. Существуют только фантазии о том, как это просто, а игры делать мы не хотим, это не так интересно как фантазировать.
>>1084365 >интересный кор луп Сказали же: survival. >сеттинг Фэнтези - беспроигрышный вариант. >персонажи Бери архетипы из аниме или tvtropes. >мета Это балансится в процессе разработки. >формате - вики, обсидиан, граф из страниц и т.д. Это всё не так важно, как производство контента.
>у меня по ней много документации расписано Сколько ты реализовал? Часто переписываешь?
>Где твоя игра с открытым миром? На моём компьютере, а что?
>>1084365 Никакой особо большой разницы между идеями в голове и идеями на бумаге нет, пока нет реально работающего прототипа, программы. Хотя, видимо, это совет для хлебушков, которые взаимодействие больше чем 2-х объектов в голове удержать не могут.
>>1084372 Когда надо переписать пол движка, это уже нельзя назвать "сделано на том движке", мань. Это уже и будет самописный движок, только зачем то сделанный в рамках чужого, которое надо изучать и соблюдать, вместо того чтобы сосредоточиться на нужном для своего проекта.
>>1084371 >пока нет реально работающего прототипа База. Так напишешь 500 страниц А4 описаний своих гениальных механик, а когда начнёшь делать, потом окажется, что 499 страниц придётся вырвать и всё переписать заново. Стоило ли их так расписывать?
Я делаю так: 1. Появилась идея - сделал заметку 2-3 абзаца. 2. Есть возможность - сразу накидал прототип. 3. Поиграл в прототип, оценил играбельность. 4. Записал в заметку свой игровой опыт с ней. Только потом можно что-то дописывать.
>>1084373 > Когда надо переписать пол движка Что значит ПЕРЕписать?
Просто берешь и наваливаешь код, ничего ПЕРЕписывать не нужно.
Конкретно говоря про юнити там срп заебись для этой задачи подходит, куча тулов для дебага, рендерграф, короче если стоит вопрос самописного рендера то это крутая опция.
Вот в анриле посложнее свой рендер впилить да.
Но суть не в этом, суть в том, что ты бросаешься понятием движок будто это конкретная вещь с узкими рамками, а не размытый термин которым называют НАБОР инструментов которыми ты волен пользоваться как тебе удобно.
Например у анрила есть интересный кейс применения - обливион ремастер, где игровая логика осталась старой, а анрил прикрутили чисто для рендера, без его всевозмодных встроенных тулзов для разработки гейммлея. Такой же пример есть с край энжином - крайзис ремастеред.
У юнити очень частая ситуация, когда на нём делают игру со всей его инфраструктурой, но сведя на нет казалось бы ключевое - его компонентную систему, и абсолютно весь геймплейный код и бизнес логика написаны так что там сам юнити казалось бы можно выкидывать.
Но геймплейный код и бизнес логика жто далеко не вся игра, поэтому нет, нельзя выкидывать)
Не стоит мыслить выдуманными ограничениями уровня васчнов игроков которые не понимают что такое движок, надо смотреть че есть че оно дает как это может тебе пригодится в конкретной задаче а как помешать.
> только зачем то сделанный в рамках чужого Интересно даже зачем, дайте-ка подумать, может потому что там есть нормальная совместимость с платформами, система сборки, UI, звуки, система пакетов, инструментв профилирования и загрузки ресурсов, куча готового инструментария который тебе пригодится?
>>1084381 >проект про них можно не начинать Разве пришло твоё время начинать? >>1080699 >Аноним 23/03/26 Пнд 08:21:09 >Во первых, у меня сейчас нет цели делать игру. >Во вторых, я уже за год достиг того, чего ты никогда не достигнешь за всю свою жизнь. >В третьих, я сделаю лучшую игру, когда для этого придет время. Как-то слишком быстро. Даже месяца не прошло.
>>1084386 Слишком раннюю если ты видишь в чем-то закат мира. У меня так же батя работая инженером больших ЭВМ окончательно выкатился из профессии, ровно в тот момент, когда персоналки стали внедряться повсеместно. Когла все еще боялись комплюктеров и платили бабки за простую чистку мышки от пыли.
>>1084408 Зачем тебе для этого писать свой импорт разных форматов звуков, поддержку кодеков и возможность проигрывать звуки? Разве не достаточно будет просто с кода правильно спозиционировать откуда проиграть звук?
Но ты в чем то прав, впринципе никто не юзает нигде встроенные звуки в двидке, все сидят в wwise и fmod.
>>1084416 а когда микеланджело делал статую давида, думаешь его волновало как это оценят? в каждый момент времени нужно думать только о том, как сделать лучше всех. это единственное что имеет значение.
>>1084351 ты не понимаешь, дело не в виде, а в UX. по сути любая программа предоставляет некий опыт использования. чем лучше опыт использования, тем объективнее лучше программа, все просто. какая разница, какие есть функции, если ими нельзя/неудобно пользоваться. поэтому смысл создания любой программы в предоставлении UX. если в программе плохой UX, то все остальное не имеет значение. какая разница какой двигатель в автомобиле, если у него нет руля, а колеса квадратные.
люди даже готовые платить за хороший UX (так называемые "игры" типа tiny glide, которые по сути просто редакторы уровней - упрощенные движки)
>>1084421 Стоп, но при написании своего движка, допустим на Си/c++/расте, у тебя доступ к большому количеству либ звука, а не только то, что предусмотрено разрабами юнити, или какими то двумя платными аддонами.
>>1084348 что ж тебе так не нравится, что я раз в несколько месяцев оставляю одно сообщение. неприятно, что я сделал движок лучше годот (в некоторых аспектах), и доказал, что любой может сделать движок?
>>1084378 > система сборки юнити Бляяя зачем ты мне напомнил этот ад, в годоте я просто нажимаю экспорт html и выкладываю игру на джем, юпити же там чего то по два часа компилировала в веб билде.
>>1084373 > которое надо изучать Ну то есть ты выбрал путь безыгорного бздоти потому, что не в состоянии заниматься такой мозговой деятельностью как изучение чего-то? Сочувствую. А когда у тебя заболело что-то, ты тоже вместо похода к врачу начинаешь изучать медицинские справочники с самых основ?
>>1084429 > большому количеству либ звука А зачем? В том же анриле есть metasound , это фактически профессиональная daw и модульный синтезатор, можно генерить любые процедурные звуки в реальном времени, в самых разных вариациях, ни одна внешняя либа не даст такой гибкости из коробки.
>>1084430 Да не в этом дело, то что ты делаешь движок это ты молодец. И если он будет лучше годота то еще лучше. Просто заебало уже читать эти спорты про Надо ли делать движок, Не надо ли делать движок, А вот эти без игр, А вон те новые Кармак, А это то А это это. Какая-то шизофрения.
>>1084477 Так движкопися как раз изучает намного лучше как реально можно сделать и как делают разные люди, найти плюсы и минусы, а не только быть зависимыми от того, как сделали рачилы в калоюнити.
>>1084500 Смотря какую игру, если ты делаешь какой то очередной клон шутера, то да, а я писал про движок, который в принципе открывает новые возможности, которые без него сделать нельзя, ну там 4d какое нибудь. Ну вот например чел делает симулятор всяких трехсторонних порталов и прочего https://www.youtube.com/watch?v=DTcfaHfDCEc Прикинь как бы он заебался если бы воевал с юнити вместо того чтобы написать просто свой рендер на расте https://optozorax.github.io/portal/ https://github.com/optozorax/portal
>>1084506 >Смотря какую игру >симулятор всяких трехсторонних порталов Так игру или симулятор порталов? >4д Очень сложно для восприятия игроком, кроме как для моделирования всяких красивых сценок на ютабчике - не нужно. Да и для этого не надо писать никакие рендеры на расте, есть вагон симуляционных либ под питон с графикой, хоть обмоделируйся, какие угодно мерные пространства, неэвклидовая геометрия и прочее. Неэвклид кстати отлично эмулируется в юнити, есть тестовые проекты. Но дело как обычно, не в геометрии, не в трехсторонних порталах, а в геймплее. >если бы воевал с юнити Война с юнити будет всегда, даже когда ты будешь писать шутер. Другое дело, что эта война оправдана, т.к. победив движок в ряде ключевых аспектов - другие ключевые аспекты (редактор, кроссплатформу, встроенные оптимизации, рендер) ты получаешь бесплатно. Все в конечном итоге сводится к одному - или победи движок по небольшому списку аспектов и получи игру - или сиди вечно безигорным, дрочащим прототип на пропердывающем рендере, зато с поддержкой трехсторонних порталалов
>>1084511 Она не оправдана потому что ты скорее всего никогда ее не сможешь победить и встроить то что тебе нужно не поломав остальное,, поэтому ты будешь сидеть без игры, поскольку не релиазуешь ключевую идею, как трехсторонние порталы, и все эти системы загрузки и редакторы тебе окажутся не нужны. А так все тобой указанное можно проще набрать либами с нуля, чем отковыривать все от юнити.
>>1084513 И что? Кто-то запрещает писать на плюсах на годоте и переписывать все, что хочется из исходников? Кто-то на законодательном уровне закрепил, что ты либо бздотя, либо таскаешь ассеты мышкой?
>>1084538 учиться в школе/университете это тоже подростковый масимализм. взрослые просто однажды просыпаются, и, как нео, знаю кунг-фу. это так и работает.
>>1084552 Кунг фу это как раз мастерское владение готовым движком. Путь бздоти - это бесконтактный бой из мемов, где пузатый мужик приседает, и его помощники вокруг него делают вид, что разлетаются от невидимых ударов
>>1084570 >клоун, который c++ в глаза не видел, а о графическом программировании даже не слышал, фантазирует как он перепишет годот при необходимости как твой диагноз твоей в справке от психиатра называется
>>1084583 Я делаю игру на анриле, пишу на с++, блюпринты по минимуму. На плюсах еще под первый анрил писал моды в нулевых. А вот ты похож на клоуна, который никогда не прикасался к движку и считает это невероятно сложной магией, и поэтому пытается компенсировать пропукиванием цветных треугольников через сдл
>>1084587 то есть у тебя 20 лет опыта, и ты их проецируешь на остальных? ну, допустим делал моды, это еще не значит что ты знаешь графическое программирование. а разбираться в низкокаественном помойке кода годот это еще 10x сложнее, чем сделать самому.
Программист который жить не может без гитхаба банальный трутень, не заслуживающий рубля. Гитхаб это иллюзия компетентности а по факту фабрика копипасты. Нашел репозиторий, скопирнул и доволен.
Понимать код не для него, уметь в отладку не для него. Курить мануалы сутками это ужасно. И более того когда он берет за базу чужой код он банально игнорирует контекст требования, и наложенные ограничения. При этом что на выходе? Сомнительные умения и нулевой рост.
А нам пользователям приходится разбираться в монструозных надмозговых решениях выжирающие наше время и ресурсы. А главное выступишь с критикой получишь гигантский поток необоснованного снобизма.
P.S. самый важный и ключевой в мире код пишется без гитхаба.
P.P.S я как не программист но имеющий потребности в приложениях уж лучше отдам работу джуна какому-нибудь ИИ, он все равно сделает быстрее и без потока снобизма и бесплатно.
Зачем изобретать колёса для твоего самодельного велосипеда? Зачем изобреть покрышки для колёс велосипеда? Если тебя интересует руль и сиденье комфортной формы и размера под твою огромную задницу и кривые короткие ручки, то тебе не только колёса изобретать не нужно, но и цепь с педалями и шестерёнками. Можешь просто готовый велосипед приобрести и поменять руль с сиденьем под себя. Можешь сварить из покупных труб раму, поставить готовые колёса, педали и цепь, а потом уже на это - нестандартный руль и сиденье. Но не нужно сидеть изобретать колесо, когда тебе и готовое подойдёт.
И даже если лично тебе нравится изобретать самому методику вулканизации резины для покрышек, лить стальные трубы из расплавленного металла и т.д., большинству людей это вообще не нужно. Что нужно большинству - так это взять велосипед и поехать в направлении точки назначения, и доехать целыми и здоровыми. Некоторым некомфортно с базовыми сиденьями и рулями - меняют на свои. Но не сидят в гараже месяцами, изобретая свой велосипед с нуля.
>Нашел репозиторий, скопирнул и доволен >ИИ, он все равно сделает быстрее Так он же ведь тоже "копирует"...
>>1084513 > Она не оправдана потому что ты скорее всего > скорее всего Сотни тысяч релизнутых игр говорят об обратном. И плеебл адс работающие в рекламе на телефоне(!), и инди от соло разрабов и небольших команд, и ААА над которыми работают сотни человек. У всех почему-то получается, хотя ты говоришь скорее всего не должно.
зачем переписывать годот? лучшая метафора этого движка - это выгребная яма. просто движок, победивший за счет оголтелого маркетинга. это печально, потому что демонстрирует что маркетинг решает не только в играх, но даже в движках, где, казалось бы, должна быть объективность.
если вы пользуетесь годот и вам кажется, что вас все устраивает, я просто советую скачать ezEngine или демку leadwerks engine и поиграться с ними пару дней. вы все равно ничего не потеряете.
>>1084646 Не, мне больше нравится другая метафора, годот - это цветущий город-сад, который прекрасен и удобен для жизни, поскольку построен самими людьми, его населяюшими.
>>1084646 >объективность Расскажи какой еще foss движок обьективно обладает аналогичным набором характеристик, кои присущи годоту - кроссплатформа, поддержка разных языков, редактор, 2д, 3д, 3 бэкенда рендеринга (vk, dX, gles), модульность вплоть до возможности написать свой рендер и свою физику? Только давай без клоунских проходов в "нинужна".
>>1084652 >кроссплатформа практически любой движок >поддержка разных языков нет никакой поддержки. васяны там что-то делают на стороне, но с таким же успехом можно добавить "поддержку" к любому движку >редактор примитивный, бесполезный редактор сцены (без play mode), в котором до недавнего времени не было даже ID ресурсов. >vk, dX, gles это не является преимуществом. вообще, ничего из этого не является преимуществом. фреймворк движка отвратительный, API неудобное. редактор до безобразия любительский, примитивный.
>>1084655 Анончик, мы тут не первый год сидим и уже перепробовали все опен сорс движки. Как только появится что-то лучше годота, я первый же перейду. Но таких нет и не предвидится.
>>1084655 >практически любой движок Какой? Езенгине винда онли, дефолд - 2д онли, викед - тоже винда онли. Так какой? >нет никакой поддержки Забавное отрицание реальности, ведь у движка нет модулей на расте или с++, или поддержки дотнета >примитивный, бесполезный редактор сцены Так где не примитивный? И со всеми вышеперечисленными возможностями? >в котором до недавнего времени не было даже ID ресурсов Id появились два года назад, держу в курсе. Впрочем я их все равно не юзаю, привык к путям и полюбил их. >это не является преимуществом. вообще, ничего из этого не является преимуществом == ряяя нинужно я скозал >редактор до безобразия любительский, примитивный. >https://store.steampowered.com/app/251810/Leadwerks_Game_Engine_5/ >На видосе интерфейс годот 1 Ты бы хоть викед кинул, чтобы не так смешно было, ну или open3d.
>>1084655 >практически любой движок Пиздеж. Ты сам даешь ссылку на leadwerks где >in 2014 mobile support removed Да и веба там незаметно. Ну это не говоря про нинтенду свитч и так далее. >нет никакой поддержки Пиздеж. Из коробки: C/C++, C# >(без play mode) Нинужно, это бесполезная концепция для юнитидетей впрочем, ее для них уже добавили. Так что опять пиздеж >не было даже ID ресурсов. Нинужно, как без них выпускал игры, так и сейчас ни разу не понадобилось ими пользоваться. >API неудобное Единственное с чем можно согласиться 50/50, Бывает изредка, какой то параметр не проброшен ну так опенсорс, все решается. >примитивный редактор расширяется tool скриптами под задачу.
>>1084661 я говорю о реальных преимуществах опыта использования движка, типа хорошего фреймворка, или play mode, являющегося незаменимым решением для быстро прототипирования и отладки, а ты рассказываешь о какой-то ерунде вроде платформ. это как покупать грузовик для езды по городу, а то вдруг раз в 10 лет тебе понадобится поехать на дачу. такая же логика. у платформ свои особенности, особенно у мобильных и веб. движок, работающих на всех платформах, работает на всех платформах одинаково плохо. реализация платформ для галки это просто маркетинговая уловка, чтобы побольше логотипов на главной странице нарисовать. новичкам это нравится. никакие из этих платформ им никогда не будут нужны, разумеется.
ты просто новичок очарованный маркетинговой шелухой, не способный принимать рациональные решения.
>>1084662 >для них уже добавили добавили возможность выбрать мышкой объект в игровом окне, чтобы для галки написать "у нас есть play mode дома"?
>так и сейчас ни разу не понадобилось ими пользоваться это потому что ты ничего не делаешь на годот, только фантазируешь как твоя игра выйдет на всех платформах одновременно. сломать проект из-за строковых путей - элементарное дело.
>>1084662 >ну так опенсорс, все решается ой, как удобно. когда в ezEngine нет платформы, то это проблема ezEngine, а когда в godot чего нет, то это решается и вообще опен сорс.
если бы ezEngine зарабатывал миллион в год, там бы тоже были все платформы какие только захочешь.
>>1084671 Это надуманная проблема, только если у тебя какой то ОКР и ты все двигаешь вверх вниз по иерархии, у меня ни в одном проекте таких проблем не вознкало, кроме каких-то самых первых при обучении, потому что всегда заранее понятна вертикальная архитектура, а там уже доступ к объектам обычно через пулы или массивчики, или банально get_children
>>1084672 А истерика по повододу миллиона в год тоже смешна, миллион чего, рублей (и по курсу какого года)? Так это ниачем, особенно при том что делилось на несколько человек, если ты имеешь в виду доллары, так такого не было на протяжении большинства лет, там были копейки, по сути Хуан написал базу и мясцо движка миллион строк кода за бесплатно и подарил всем. Никто не мешал то же самое делать любому другому.
>>1084670 >типа хорошего фреймворка Нормальный фреймворк >play mode, являющегося незаменимым решением для быстро прототипирования и отладки Добавлен уже давно >а ты рассказываешь о какой-то ерунде вроде платформ. Опять нинужно >движок, работающих на всех платформах, работает на всех платформах одинаково плохо. Юнити например отлично работает на всех платформах, а годот - фосс, с него меньше требования (и он тоже +- нормально работает на заявленных платформах, не без ньюансов, но аналогов нет). >никакие из этих платформ им никогда не будут нужны, разумеется. Ты скозал? >рациональные решения. В таком вопросе как разработка игр рациональность решения диктует слишком много факторов, в которых производительность перекладывания байтов или наличие плеймода может оказаться даже не в первой десятке этих самых факторов. А вот все что я обозначил выше - может оказаться гораздо важнее.
>>1084689 это серьёзное обвинение у нас за это жёстко спрашивают - вплоть до пожизненного покажи кто что "распилил". ведь у тебя есть все доказательства, так? нет, я так и думал
>>1084670 Так ты и есть ньюфаг рассуждающий как ньюфаг, ничего серьезного ты плеймодом отладить не сможешь, вот делаешь ты платформер/шутер с ботами/стратегию, передвинул препятствие камушек во время игры, и все, тебе все равно надо перезапускать уровень, потому что теперь тайминги другие, пасфайндинг будет другой и т.д. То же самое и с изкоробочным редактором, он вообще не всем играм нужен, в некоторых играх вообще все генерится, в других нужен свой кастомный редактор. Ты буквально как обезъянка увидел вещи ориентированные на ньюфагов в движках G и X и побежал копировать не понимая сути.
>>1084649 Я люблю ezengine, движок с большим потенциалом, он мог бы быть лучше годота, и даже сейчас лучше в каких-то моментах, но в таком формате разработки у него нет будущего, к сожалению. Его пилит пара энтузиастов в свободное от работы время, темпы разработки очень низкие. Они не заинтересованы в создании коммьюнити, привлечении донатов, новых контрибьюторов, не занимаются маркетингом. Пока эта позиция не изменится, у движка нет шансов выстрелить как у годота
>>1084676 >такого не было на протяжении большинства лет годот с самого начала получал десятки тысяч в месяц плюс были всякие сомнительные спонсоры, лого которых даже показывали каждый раз при запуске наравне с синим роботом. когда годот делал один хуан, это было полное дерьмо с функционалом меньше ezEngine (оно и сейчас дерьмо, просто наряженная свинья с нескучной темой и кучей пустых обещаний и функций реализованных для галки, просто 99% пользователей дальше базовых функций никогда не лезет).
>>1084677 >он тоже +- нормально работает на заявленных платформа годот даже на windows не работает нормально и имеет 10к багов. а что там на android с зоопарком китайских телефонов даже страшно представить, просто нет сумасшедших это проверять.
>>1084707 ты напоминаешь программистов, которые пишут на C в emacs, используют printf для отладки и им все нормально. неандерталец с каменным топором. я же говорю, просто попользуйся ezEngine несколько дней, после этого годот будет вызывать у тебя физическое чувство тошноты.
>>1084677 >наличие плеймода может оказаться даже не в первой десятке этих самых факторов ну и в чем рациональное решение использовать годот для slay the spire? что, у них основные продажи на андроиде? или может у road to vostok есть веб сборка?
https://github.com/godotengine/godot/issues/118138 годотные придурки сделали функцию, которая возвращает тип отличный от того, который ожидается в C# коде, из-за чего сломался вызов функций. какой то дурачок провел бесплатно целое расследование.
сколько еще таких мин заложено под годот некомпетентными разработчиками, на которые вы нарветесь во время разработки.
>>1084725 это особенно актуально в контексте разных платформ, о которых фантазируют безыгорники. на windows все у всех работало, а на linux вдруг перестало работать. так и у тебя будет, когда в конце разработки вдруг окажется что твоя андроид сборка вся дырявая и не работает.
>>1084716 >годот с самого начала получал десятки тысяч в месяц Про годот до его третьей версии вообще знали единицы, только где-то на тройке народ стал его замечать, так что ты пиздишь >когда годот делал один хуан, это было полное дерьмо Ну да. Любое ПО проходит через стадию полного дерьма. Но после всех переписываний, от годота 1 в тройке и четверке остался только синий интерфейс, факт существования гдс и всё. >годот даже на windows не работает нормально и имеет 10к багов Любое ПО имеет баги. Даже твой любимый ezengine. Даже юнити имеет баги. Но у годота и юнити есть сообщество, которое находит баги и их исправляют. А у езенгине есть только молящиеся на него безигорники, которые даже не пытаются делать на нем хоть что-то. Вот у него и "нет багов". > что там на android с зоопарком китайских телефонов даже страшно представить, просто нет сумасшедших это проверять. Бротато проверил. Там все заебись. Можешь влетать в годот. >>1084717 >ну и в чем рациональное решение использовать годот для slay the spire? что, у них основные продажи на андроиде? или может у road to vostok есть веб сборка? Есть бротато, вышел на куче платформ. Я делаю 3д веб игрушку, для меня веб важен. А конкретно sts2 и RtV - это отголоски runtime fee юнити. Не все разрабы затерпели эту хуйню.
>>1084736 >Любое ПО имеет баги баг - это ошибка. в годот не случайные ошибки, а систематическое низкое качество кода ведущее к катастрофическим лавинообразным последствиями. это совершенно другой класс проблем. называть это "багами" - это кривить душой.
>>1084743 >катастрофическим лавинообразным последствиями Единственные катастрафически лавинообразные последствия которые я наблюдаю - это последствия для бздотя-энжинов (они умирают). Другой катастрофы не наблюдается. Зато наблюдаются успешные релизы игр, как 2д так и 3д, к тому же на мультиплатформе.
>>1084745 выпускать игры можно на чем угодно, особенно если уже есть опыт создания такой же игры на своем движке. это то, о чем новички забывают. возвращаясь к тому, что я ранее написал, годот - это плохой движок ставший популярным только благодаря агрессивному маркетингу. можно делать игры и на плохих движках. но никто не станет отрицать, что делать игры на хороших движках лучше, чем на плохих.
>>1084749 >особенно если уже есть опыт создания такой же игры на своем движке Этого опыта нет у 99.9% бздотей. Один из идеальных примеров - ezengine (впрочем викед тоже можно назвать безигорным). Хуан хотябы три в ряд пилил на том что представляло собой годот до его публикации в гитхабе. Возможно именно это и послужило причиной, по которой эти движки сосут на фоне годота. Годот всегда готов к тому что на нем будут делать игру. А бздотя движки - готовы только к демкам. >годот - это плохой движок ставший популярным только благодаря агрессивному маркетингу Вечно бздотям кто-то говно в штаны подбрасывает, то нарот геймдевский не тот, то агрессивный маркетинг (в последнее время - преимущественно маркетинг игровыми релизами). >но никто не станет отрицать, что делать игры на хороших движках лучше, чем на плохих. Критерии хорошести и плохости у каждого разные, при чем эти критерии являются кумулятивными и учитывающимися системно для каждого отдельного движка.
>>1084750 а тебе какое дело до чужих игровых релизов? ты действуешь не рационально, как фанатик, радуешься чужим победам, вместо того, чтобы думать о своих. о чем я и говорил, ты под влиянием агрессивной рекламы.
https://github.com/godotengine/godot/issues/105750 долбарики из годот сделали API которое срет объектами с finalizer'ами(!) по любому поводу, из-за этого у пользователся годот один вызов метода в коде приводит к 20 мс(!!!) паузам.
интересно, он все еще рад, что решил делать игру на годот, как местные безыгорки, или уже не очень
>>1084765 то, что создатели slay the spire сделали игру на своем движке и потом с имеющемся опытом сделали игру на годот, лично к тебе не имеет никакого отношения. это просто эмоциональный, стадный отклик фанатика "они такие же как я". нет, они не такие.
>>1084771 я тебе привожу реальные "кейсы" из issues. может пойти сам почитать. там таких "реальных кейсов" полно. ну ты конечно можешь радоваться за чужую 2D игру, которая рисует аж рисует спрайты без сильных проблем.
>>1084773 >я тебе привожу реальные "кейсы" из issues. может пойти сам почитать. там таких "реальных кейсов" полно. Кейсы чего? Багов? Они везде есть. >ну ты конечно можешь радоваться за чужую 2D игру, которая рисует аж рисует спрайты без сильных проблем. Твоя аргументация про 2д сильно устарела, у нас есть восток, которому 10к ишьюсов ну никак не мешает стабильно работать
>>1084777 во первых, не известен уровень экспертизы разработчиков востока. во вторых, неизвестно какой процент движка они переписали, может это форк движка, в котором все свое. повторяю, что радоваться чужим играм это просто не рациональный фанатизм, и проекция. у тебя так же не получится, у тебя получится как у бедолаг из issues, которые просто скачали движок, просто вызывают функции, о которых они прочитали в документации и просто получают пропуки по 50мс на пустой сцене.
>>1084792 >во первых, не известен уровень экспертизы разработчиков востока. Как экспертиза влияет на движок и его исполнение? Аура экспертизы делает из неработающего (по твоим словам) движка - хорошо работающий у игроков движок? Или может все таки движок работающий, просто не без ньюансов? >во вторых, неизвестно какой процент движка они переписали Процент известный - 0%. Игра после распаковки спокойно открывается в редакторе годота. https://www.reddit.com/r/godot/comments/1sig3mh/opened_up_road_to_vostok_in_the_editor/ >у тебя так же не получится У меня получается все что мне надо, правда на тройке. Но на четверке, я думаю, тоже получится без особенных проблем.
>>1084716 >годот с самого начала получал десятки тысяч в месяц, мутные спонсоры Так это уже 3-я версия, и изначально они получали дай бог тыщ 3 + 1.5 от спонсора и это только к началу 2018 года, а движок в опенсорсе с 2014. Там конечо был еще разовый грант о мозиллы на 20к на вебсокеты, но ты уж вообще выдумываешь про десятки тыщ в месяц. Там буквально обычная зарплата программиста была не более >когда годот делал один хуан, это было полное дерьмо с функционалом меньше ezEngine Можно скачать 2-ю версию и какую-то из первых и там уже все было заложено. https://www.youtube.com/watch?v=zs_heJ6jzaE
>>1084792 Поправка - у тебя не получится. У меня все получается лучше, а ишью бедолаг я иногда чиню и отправляю фиксы. Ты тоже мог бы, например сделать крутой аддон для редактора раз у тебя такие крутые гизмы, но ты выбрал путь обиженки.
>>1084774 По-моему, у разработчика востока - слишком высокие запросы для годота. Не тот движок выбрал для такой игры. То, что он планирует сделать, да ещё и в таком сетиинге, он мог бы лет 5-6 делать и доделать на анриле каком-нибудь условно.
Но, гои прогрелись, и будут удивлены, когда через лет 5 - рам все также нихуя не поменяется особо.
>>1084844 Да какая разница что он выбрал. Игра есть, игра выглядит хорошо (хоть и видно что инди). Сам выход подобной игры - победа foss. Мылогенератор 5 конечно потехнологичнее будет, но это личный выбор каждого, делать игру на своем движке или на движке дяди.
>>1084848 >победа foss опять бесмысленный фанатизм. это победа только разработчиков игры, которые сменили движок на фоне горячей темы, чтобы рекламироваться в околоигровых сообществах, и это сработало. обычный расчет.
это называется ошибка выжившего, когда смотришь на один долетевший самолетик, а не на 1000-и подбитых в issues.
>>1084861 Я смотрел на 1000 подбитых в issues и там реальных проблем может десяток, остальные это просто ньюфаги которые не разобрались. Зачем ориентироваться на ньюфагов?
>>1084776 потому что ты ничего не делаешь. каждый вызов API в движке создает кучу объектов с finalizer'ами, которые сильно тормозят gc. https://stackoverflow.com/questions/2860121/why-do-finalizers-have-a-severe-performance-penalty >когда в процесс включены финализаторы, сборщик мусора не может просто удалить все поколение сразу. Вместо этого ему необходимо определить все объекты в этом поколении, которые нуждаются в финализации, и поставить их в очередь потока, который фактически выполнит финализаторы.
>>1084863 >каждый вызов API в движке создает кучу объектов с finalizer'ами, которые сильно тормозят gc. Нет, не каждый, только те вызовы, где передается stringname, при чем stringname не кешированный. В ишьюсе даже написали, как это обойти. Другого, требующего вызовы каждый кадр апи, кроме инпута - в движке нет. И даже используя это апи проблемным способом - у меня нет заиканий, потому что моно gc можно настроить на сборку мусора пока не выполняется логика. Ну а дотнетерам - соболезнуем.
>>1084869 все C# объекты создаваемые движком имеют finalizer, потому что они оборачивают объекты gdscript движка, потому что там реализовано C# в этом движке. а они создаются во время каждого вызова любого API, потому что, опять же, это сделано поверх gdscript. это не просто плохая реализация, это неликвидная реализация.
>>1084870 >все C# объекты создаваемые движком имеют finalizer Да, но есть ньюанс - кроме stringname - других обьектов неявным образом не создается. Все типы кроме string - являются значимыми и не выделяются в куче. Путаница с string возникла только потому что строки в рамках с# даже будучи обьектами - кешируются и ссылки на них удерживаются в памяти, а stringname - обходит этот механизм.
>>1084867 Так любой джун умеет бурную деятельность изображать. Днями гонять коммиты туда сюда по одной строчке и в результате фига не сделать. >>1084877 Да. Если фига не делать, то и issues мало.
>>1084888 хуан тоже с этого начинал, но он так и не осилил один трансформ класс сделать для всех объектов. мало того что апи кривой, так ещё и в матрицу лазить надо, которая к тому же называется basis. код уровня раннего php
пре- и пост-ротация - умный ход для предотвращения осевой блокировки
в каком-то движке я видел вращение на роторах. хотя может это мне приснилось
>>1084891 >в каком-то движке я видел вращение на роторах. хотя может это мне приснилось Этот движок называется юнити и годот. Скорее всего в анриле тоже роторы, потому что это лучший способ поворота предотвращающий блокирование по оси. В этом движке тоже скорее всего кватернион, но для домохозяек сделали многоступенчатый поворот. Идея интересная, но ты ее можешь сделать в годоте сам с помощью tool script, и сделать хоть 10 ступеней эйлеровских углов поворота.
>>1084891 Роторы это кватернионы (просто другая интерпретация математики). Это стандарт для вращения во всех движках (кроме аргентинского, конечно же).
>>1084894 Особого смысла в это нет, потому что это можно сделать дочерние узлы. Смещения обычно делают для реализации недеструктивного вращения. Например, в каком-то скрипте надо добавлять вращение, но так, чтобы сохранилось оригинальное вращение.
>>1084895 да, это мне приснилось. я в ezengine увидел класс rotor, но это просто скрипт-вращатель
>>1084894 >но ты ее можешь сделать в годоте сам нет, спасибо
если бы я делал движок, я бы вообще не скрещивал дерево трансформов с графом сцены для ренденринга и с игровыми объектами (логикой уровня). логически - это две или даже три разные структуры. может я неправ, но где-то дизайнеры ошиблись когда стали массово внедрять эти деревья. раньше их не было и нормально было
>>1084895 >кроме аргентинского, конечно же Если ты движкопися из Аргентины - то F тебе, делай кватернионы. Как в годоте. И как в юнити. >>1084902 >логически - это две или даже три разные структуры Логически - дерево сцены может даже не знать о том, как организуются параметры его детей, все зависит от реализации поведения "веток" с определенными метриками. >раньше их не было и нормально Это простейший способ обойти осевую блокировку не вдаваясь в подробности работы роторов, это повышает доступность движка для широких масс населения. Кому надо - и так знают как использовать кватернионы.
>>1084904 >делай кватернионы >как в годоте нафантизировал себе мультиплатформенную игру на движке, о котором ничего не знает. типичный ЦА этого движка - безыгорный мечтатель.
>>1084912 MIT оставляет шансы, что на этом сделают хоть какую-то коммерческую игру, что найдется хоть один шиз. С gpl бы никто не притронулся к этому шестиметровой палкой
>>1084913 >сделают хоть какую-то коммерческую игру >коммерческую ты так написал, как будто это важная самоцель. shattered pixel dungeon неплохая игра в которую много залипал жаль что эта культура потихоньку убивается, выдавливается корпорациями когда просто делишься с другими и они делятся с тобой в ответ даже ммо раньше встречались под gpl, хотя там сложнее, концептуально ограничения и защита от читеров какой нибудь чилловый кооп можно запилить
>>1084921 > Потому что это они форсят MIT/BSD. > Ну и само то что ты хочешь чтобы это было работой, тоже в некотором смысле их форс. Это как? Я делаю коммерческий проект -> я не могу тащить GPL библиотеки в него -> я тащу MIT или платные
Если в мит бибилиотеке чето не хватает - я это так и так буду дорабатывать и могу в теории открыть пулл реквест чтобы качать социальный рейтинг.
С гпл библиотекой же такой опции не будет, потому что я ее изначально ни для чего юзать не буду.
Если смотреть с точки зрения разраба библиотеки который ей занимается не по фану, а хочет монетизировать, например через патреон - если его библиотека гпл, то ее меньше людей будут юзать, а если мит, то ее затащат в проекты если она норм. Больше народу которые юзают - больше шансов получить донатов.
У меня все репозитории на гитхабе мит. Не то чтобы они очень много кому нужны(но они неплохие, даже звезды есть), но если нужны - берите на здоровье.
>>1084926 > Я делаю коммерческий проект Вот, видишь, ты опять с этой позиции начинаешь мыслить. Как будто бы все вокруг этого должно вертеться. А не вокруг просто обмена исходниками, установки прог из репозиториев.
>>1084928 > Вот, видишь, ты опять с этой позиции начинаешь мыслить. Как будто бы все вокруг этого должно вертеться. Какая разница должны или не должны, факт есть факт - почти всё вертится вокруг этого и я тебе написал какие у этого следствия для гпл и для мита
>>1084974 >Обязательная к прочтению статья для всех пользователей движков. которые хотят построить карьеру в гей деве, а не вечно писать трижды переваренный кал?
А почему все так плохо в области любительских движков, я не понимаю. Можно вечно смеятся над плохим кодом в godot, но у других-то еще хуже, вот что удивительно. Тот же fyrox за 7 лет не смог явить миру ничего выдающегося, типичный вечно сырой, кривой движок. Чем он вообще занимался эти 7 лет. Похоже я единственный в мире, кому по силам сместить godot с пьедестала. Что ж, придется публично выпускать свой движок, с GPL лицензией конечно же.
>>1084974 Самая большая ошибка что он пошел работать на дядю, хотя сначала шел самостоятельным путем. Не будешь работать на дядю - не придется отвечать на вопросы, которые тебе не интересны. Нет ничего плохого в том, чтобы он ничего не знал про очереди и копировал код из туторов или нейронки. Дядя сам нихуя не знает, но тем не менее у него игровой биз. Главное заниматься тем что у тебя получается. Но он сделал самый тупой вывод из ситуации, что он прохой "сферический разработчик в вакууме", попал в ловушку работодателя и теперь будет как осел за морковкой бегать...
>>1084974 >Юнитютя думал, что он разработчик игр. 1) разработчик игры != программист. Можно делать игры вообще нихуя не умея в код.
2) собеседования - говно ебанное. я двадцать лет программирую на C++, а тоже плыву на подобном.. Да и нахуй оно надо - оно все давно уже обернуто... оптимизация подобного - это зло (знаете чем геймдев до юнити отличается от геймдева после юнити? потому что до юнити игры не работали, из-за таких вот байтоебов. а после юнити игры стали делать школьники, которым срать на это - и сейчас любая поделка на юнити хотя бы запустится, в отличие от той эпохи... кстати советую потыкать несколько демо времен нулевых - в 99% они у вас не запустятся, потому что умные программисты байтоебили в что-то слишком специфичное)
движкописи - я тут захотел взять какой-нибудь давно померший но хороший 3D движок на C++ за основу своего. или минимальный, с хорошо заложенной базой. (просто заебало уже эти логи с векторами писать.. или пытаться сшить франкенштейна из 100500 библиотек без документации)
>>1084991 Это скелеты в шкафу движка, о которых ты не узнаешь из главной страницы сайты и лестных отзывов безыгорных фанатиков движка. Только так и нужно определяться с выбором движка.
Например, никто не скажет, что C# в движке нерабочий и его нельзя использовать. Это можно только по крупицам достать из issues. На самом деле спасибо нужно говорить таким людям, которые предупреждают об опасности.
>>1084999 Конечно. Надо было спрашивать у игорных фанатов, например меня. Я постоянно на протяжении лет 5 пишу, что C# не нужно, достаточно гдскрипта для скриптов и с++ для высоконагруженных частей. И что? Юнитидети просто начинают спорить и ходить по граблям.
>>1084997 >Это скелеты в шкафу движка >никто не скажет, что C# в движке нерабочий и его нельзя использовать дауж, такой страшный скелет, литералли неюзабельный сишарп: намеренное создание 300 кнопок и подключение к каждой из них пустого C# скрипта приводит к просадке производительности. я не могу представить себе разработку игры без 300 кнопок с пустыми скриптами >Это можно только по крупицам достать из issues. ты не поверишь, из любого движка и даже фреймворка можно достать по крупицам проблемы. не существует идеального софта, если ты только не шизик с самописным движком. можно пойти дальше и сделать свой язык, ведь проблемы есть даже в нативных плюсах, по сей день. часть скиллов разработчика - уметь отлавливать баги, чтобы если не репортить их, то хотя бы знать ботлнеки и слабые места того, с чем он работает. ровно как водитель, который садится за руль автомобиля, должен знать каково его предназначение и на какой скорости подвестка может отъебнуть, если ты словил яму поразительно что эти вещи не очевидны, тут пока "движок выбирают" уже можно было приличную игру сделать и на собственном опыте найти реальные проблемы, а не синтетическую дрисню с 300 кнопками и пустыми скриптами
>>1085005 Ага.. >I never actually tested anything >The project I lost because I did not use git
Игровой кабан кабаныч возможно даже не знает что гит существует, но делает игры используя тебя как инструмент.
Программисты часто путают свою работу и конечный продукт. И часто жалются на недооценку своей роли в компании. Еще жалуются что нужно быть клоуном на собесе и усилия дя подготовки к собесам никем не оцениваюся, а в компанниях навыки, которые тестировались на собесе не используются.
Не хочу сказать что не нужно работать на дядю совсем. Просто если бы автор четко понимал свои цели, а не шатался между инди геймдевом и работой по найму, то никакой проблемы не было бы.
Хотел бы работать на дядю и строить карьеру, задрачивал бы вопросы для собесов и знал когда нужно очереди использовать
Хотел бы работать на себя, не пытался бы объять необъятное, не страдал бы от того что чего-то не знает, упрощал бы свой пайплайн, делегировал бы часть работы, фрилансерам, нейронкам, фрилансерам с нейронками и тд
>>1084974 Невыдуманные истории о которых невозможно молчать Сайт какого то инфоцыгана которые продает курсы личного тренинга, после которого ты точно пройдешь собес. Конечно он постит истории где все "было сделано неправильно".
>>1085010 > и знал когда нужно очереди использовать Так это нужно в создании игр.
Ты говоришь так, будто собес это что-то левое, но на собес тебя буквально проверяют как ты умеешь делать игры(их техническую часть)
Да, может быть челу не интересно программирование и техническая часть игр - но тогда нах он идет в найм на программиста изначально? Если ему нравится придумывать игры - может поцти в геймдиза, если нрааится командой управлять и делегировать - в пма, и так далее.
>>1085016 Смысл в том что необязательно куда-то идти и отчитываться перед кем-то что ты умеешь. Можно быть вольным художником. Можно быть ответственным только перед собой и отвечать за незнание чего-то из своего кармана.
Но ты видимо этого никогда не поймешь из-за комплекса плохого мальчика, у которого в голове мамкин крик из раннего детства отдается.
>>1085017 > Смысл в том что необязательно куда-то идти и отчитываться перед кем-то что ты умеешь. Не обязательно. А я говорю, что обязательно?
Я же простые вещи говорю 1. Если чел не знает что такое очередь то скорее всего он нубас программист и этот пробел стоит закрыть 2. Если тебе нужна работа - то надо идти на собеседование, если не нужна - то не надо 3. На собеседовании как правило спрашивают релейтед вещи, которые ты ответишь если ты сильный программист, и не ответишь если ты нубас
> Но ты видимо этого никогда не поймешь из-за комплекса плохого мальчика, у которого в голове мамкин крик из раннего детства отдается. Что не пойму? Ты разве какую-то глубокую мысль сказал? То что у тебя аллергия на работу которая выражается в каких-то стереотипах и заблуждениях - это чисто твой прикол.
>>1085019 Я разве спорил что нужно уметь плясать под дудку как клоун, если хочешь проходить собесы? Я как раз оспорил стереотип плохого мальчика разработчика, т.е. нубаса твоими словами.
Ничего нет плохого в том чтобы быть в чем-то дилетантом и идти своей дорогой, а не ориентироваться на стандарты "крутого разработчика".
Автор изначально описывал индюка который выпускал игры под андроид на юнити, а потом сказал что это не правильно и нужно проходить собесы и что-то навязанное извне изучать.
А может чел решит что уменее в простую логику в коде ему достаточно и будет делать новелки, а не AAAAA контент?
>>1085020 > Я как раз оспорил стереотип плохого мальчика разработчика, т.е. нубаса твоими словами. Читай внимательнее - я говорю не про абстрактного разработчика, а про программиста.
> Ничего нет плохого в том чтобы быть в чем-то дилетантом и идти своей дорогой, а не ориентироваться на стандарты "крутого разработчика". А я говорю что плохо?
> А может чел решит что уменее в простую логику в коде ему достаточно и будет делать новелки, а не AAAAA контент? Может.
Еще раз, я не говорю что так нельзя - можно.
Я говорю что:
В процессе разработки игр задействованы навыки программирования.
В зависимости от проекта нужен разный уровень навыков программирования и разные его ответвления, для каких-то очень простых проектов достаточно в общем и целом понимать логику и мочь пару визуаллнвх схем запилить, для каких-то нужны прям глубокие знания.
То что автор обосрался даже с очередями - свидетльствует о низком уровне программирования и как следствие узком скоупе проектов где его навыков достаточно. Это НЕ плохо, просто что есть то есть. Может оно ему и не надо для его целей.
Но говорить, что знание что такое очередь бесполезно, а на собеседованиях якобы только проверяют умение "плясать под дудку" и бесполезные вещи - это просто отрицание реальности. Как правило на собеседовании(кроме самых донных контор) идет живое обсуждение что ты делал, как ты делал, зачем и почему - если ты сам не знаешь ответа в рамках релевантных задач, то скорее всего ты нихуя и не знаешь и не сможешь работать над реальной игрой которая сложнее раннера в декорациях скибиди туалета. Именно как технический специалист.
>>1085026 >являющегося де факто стандартом индустрии с 2014 года, ведь так? Видимо юнити не в курсе, раз добавили только в юнити 6, про бздотей и говорить нечего
>>1085033 unity это фактически легаси движок на аппарате жизнеобеспечния. у них d3d11 рендер основной до сих пор. нужна полная переделка с нуля некро системы материалов и т.д. они никогда не пойдет на это, поэтому у unity нет будущего. но годот то уже переписывали с нуля на vulkan.
>>1085040 Почему в road to vostok такие чёрные тени? У меня на мобильном олед экране скриншот такой тёмный, что деталей не разобрать. При этом я точно знаю, что нормальные светлые тени легко сделать на Godot... Неужели это авторская задумка - мазать чёрным?
>>1085043 Ну контрастности режили подвыжать, хз. Это как никак инди, для первой игры нормально немного проебаться с материалами и освещением. >>1085041 Анон, дело не в том что такое юнити, а в том что такое "стандарт индустрии". Юнити - образчик стандарта индустрии, потому что на этом движке выходит игр собирающих суммарно треть если не половину бюджета всей игровой индустрии. Собственно, стандартом индустрии гпу окклюзию можно считать ну где-то с 24 года, когда эта функция стала стандартной на всей мультиплатформе в массовом виде. И да, эта функция требует значительной переработки рендеринга, которую делать некому в годоте, и не имеет значения, что собой представляет бэкенд рендера, директ ли, вулкан ли.
>>1085047 >стала стандартной на всей мультиплатформе Для этого новая RTX нужна, или на старой GT из 2007 заведётся не хуже новой? Просто не понимаю, в чём прикол... Типа, с помощью стенсилов что ли? Или как?
И почему это вообще важно на ПК? На мобилках это встроенная фича на уровне самого видеочипа. Разве десктопные видеочипы нельзя сделать такими же?
И зачем рендер переписывать-то, если речь о гпу? Видеоядра же сами должны принимать решения? Получается, это что-то связанное с шейдерами?
можете привести пример, когда разработчик хотел сделать игру на годоте, но на середине разработки наткнулся либо на отсутствие фундаметнальной фичи, либо адские пропуки, вследствие чего забросил? если выпустил с тормозами, не надо. это выше уже упоминали
>>1085055 На ютубе был чел, который обсирал хуана, годот, и роад ту восток, показывая артефакты и пропуки игры на райзенах. При этом сравнивая с версией на юнити которая выглядела в разы лучше и работала тоже лучше.
Куда-то пропал челик, больше не могу его видосы найти.
>>1085056 Это инди игра. Она не может быть витриной годота. Витрина годота - множество маленьких, успешных релизов. >>1085064 Видосу два года. Свежайший.
>>1085068 >уже 12 лет прошло, а витрина годота - "множество маленьких игр"? Да, ведь таково предназначение движка. Он не развивается и не предлагает себя в качестве SOTA решения для серьезнейших проектов. Пройдет еще 12 лет, а ты так и не поймешь, в чем дело. >вахтёр с тех пор стал ещё более едким старым пердуном Хз про кого ты, я мимо. Обычно не сижу здесь, непонятно как можно из пустого в порожнее годами переливать, ради чего.
>>1085072 Почему тебя так трясет с этого миллиона долларов? В цивилизованных странах это не так много, и этих средств хватает ровно для того, что Годот и делает: мейнтейнить движок, по-тихоньку его развивать, параллельно немного развивать медийку, чтобы когда отвалился один донор вместо него пришел другой. Они организуют джемы и в целом популяризируют инди разработку. У тебя, похоже, глаза разъезжаются от таких сумм, потому что ты не понимаешь сколько денег получают Юнити, UE и в целом корпоративные продукты. Что самое смешное, не вижу здесь никого, кто ныл бы, что Юнити берет деньги за подписку, а UE процент за прибыль, хотя и у того, и у другого движка тоже есть проблемы, что тянутся годами. Не хочешь спросить у Эпиков, куда деваются деньги? Это пиздец как у тебя все в черепушке перевернуто. Доебаться до микродвижка, у которого едва денег хватает, и за который у тебя ничего не просят.
>>1085050 В старых версиях графических API можно было отправлять данные на GPU непосредственно перед рисовкой. В новых можно все данные о сцене хранить сразу в GPU буферах и использовать compute шейдеры для генерации списка команд рисовки. Тогда на CPU ноль нагрузки во время рисовки. Это не сложно сделать, просто нужно заранее это планировать.
>>1085076 >>1085073 прав полностью, а ты видимо никаких денег кроме МРОТа в своей жизни не видел. Желаю успехов еще 12 лет убивать свою жизнь ради бессмысленных срачев ради ничего.
>>1085077 мощно ты тему на эпиков перевёл и вот уже лежишь в ногах у тима свини как собачка и довольно подставляешь ему ушко на почёс в ожидании рождественской косточки. ну по крайней мере ты себе это представляешь
а ведь вопрос был не про это, а про то, куда делись деньги на годот неужели это очередной распил?
>>1085074 >получают Юнити, UE и в целом корпоративные продукты А зачем ты сравниваешь корпорации с тысячами сотрудников и нескольких мошенников, которые под честное слово набивают карманы миллионами долларов.
>>1085050 Для этого нужно чтобы это было кому-нибудь нужно. Так опенсорс работает. Все новые фичи годота завозятся со стороны. Даже когда переписывали рендер в 4.3 - это делали посторониие. Если кто-то задастся целью внедрить гпу куллинг и перепишет под эту хуйню половину рендера - в годоте появится гпу куллинг, тем более функционал частично под это имеется. >На мобилках это встроенная фича на уровне самого видеочипа. Впервые слышу о подобном, впрочем если это правда - тогда тем более никакого гпу куллинга никто пилить не будет, ибо нахуя. >>1085052 >Речь про количество объектов На скрине немало обьектов, средняя вегетация и без всяческих фогов, честная дальность отрисовки, и без смешных лайтмапов прямо на оружии перед ебалом. Если тебе мало - есть демки bistro и tps, где ты можешь сам полетать, там много обьектов. >уже 12 лет прошло Учитывать годот с первой версии - нечестно. Движок даже в 3д не умел. На что-то человеческое он стал похож где-то на 3.3-3.4, на этом наконец можно было делать игры.
>>1085079 Средний гражданин В ЛЮБОЙ СТРАНЕ на одну квартиру в среднем заработает ВСЮ ЖИЗНЬ И эта дурочка еще что-то рассказывает "В цивилизованных странах это не так много"
>>1085056 >>1085054 >>1085058 >А газговоров то было... И это игра-витрина годота? Я угораю как динозавр с того, что там все блогреры этого куска витрины выкручивают графоний на превью, чтобы хоть как-то людей заставить кликнуть на это дерьмо.
Там буквально почти все фейковые скрины, я никогда такого не видел, что буквально всем не нравился цветокор витрины. Первая игра-шрёдингера. Тыкаешь на что-то тарковское, а попадаешь на мод на сталкер из ХЛ2
Когда нейрокал на превью лучше продаёт, чем реальная игра, лол
Сделаю игру-витрину за месяц на Ezengine Чтобы там были панелечки и деревья-крестиком. Погулять, повзаимодействовать чтобы можно было много с чем. Ещё аниме добавлю.
>>1085090 >Маловато будет! Ма-ло-ва-то!! Ты случайно не из vg сюда пробрался? Потому что местные наоборот восхитились бы, что чел в одно ебало довел дело до конца, заработал лям и никому ничего не должен..
>>1085095 что-то местные не торопятся восхищаться, всё пытаются обсуждение неудобной темы перевести на квартиры, рождественские подарки в эпик геймс и т. п.
>>1085100 В чем тема неудобная? Наоборот очень удобно восхитится годотом, что можно такое соло сделать. Обычно соло это какие-то вовсем мелкие 2д игры. Наверняка большинство недостатков в том что в сутках всего 24 часа. Если бы игру делали 100 индусов на том же годоте, тогда можно было бы судить о витринах.
>>1085102 >так почему же не делают? Потому что им не хочется изучать движок на котором нет работы по найму. Как большинству людей из бедных стран им хочется теплое местечко, а не самовыражения в бизнесе.
>>1085072 Я правильно понимаю что к миллиону долларов у тебя прилагается машина времени, которая отрпавляет деньги в 2018 год? Не может же быть, чтобы ты забыл, что еще вчера верещал что годот собирал целое состояние 10 тысяч долларов в год?
>>1085101 >можно такое соло сделать И в чем здесь достижение? Расставить префабы в готовом движке? Мне не нравится эта современная тенденция, когда люди что-то "засуживают" что-то за социальные, а не технические заслуги. Это какая-то гинократизация общества по моему. Раньше такой пожалейки не было.
Или взять того же хуанана, который с точки зрения обывателя заслуживает купить 10-ю квартиру в барселоне, потому что когда -то 10 лет назад работал над кривым движком, хотя по факту уже давно отошел от разработки движка.
>>1085125 >И в чем здесь достижение? Расставить префабы в готовом движке? Так можно сказать даже про ааа гейминг типа убейсофта или cdpr. Ну пойди ты расставь и заработай миллион, может хоть тогда перестанешь считать чужие деньги к которым ты никакого отношения не имеешь. >Мне не нравится эта современная тенденция, когда люди что-то "засуживают" что-то за социальные, а не технические заслуги Единицы купивших восток и sts2 людей из саба годота и прочих геймдев помоек знают что игра на годоте. Остальные их купили за скрины и интригующий трейлер, ну или за франшизу. Авторы я так понял даже сплешскрин с годотом не делали.
Я на 100% уверен, что я смогу сделать такую игру как road to vostok за полгода-год. Я так же уверен, что она будет никому не нужна, и даже в gd в нее никто не поиграет. Не сложно сделать такую игру, сложно ее разрекламировать и продать.
Итак, я >>1085093-кун скомпилировал EzEngine, чтобы, как говорил >>1085098 перейти из безигорных в пытающихся. Поиграл в стандартные демки и пока это ощущается как хидденгем.
Своё название оправдывает, он прямо Изи. По простоте напоминает программы для модинга или роблокс-студио какой-то. Интуитивно понятен, без нагромождения кнопок, но гибкий. Готового разрабы понаделывали уйму всего, там даже есть ассет для создания беспорядочно ходящей толпы. Есть аналог блюпринтов. Пока всё нравится, потом посмотрим.
Деревьев крестиком не будет, оказывается там есть изкоробки нормальный генератор деревьев типа спидтри с автогенерацией лодов.
я анон >>1084990 ищу что спиздить для своего движка под свою ретро рпг игру, страдаю крайней формой движкописательства, но заебался с нуля писать все эти вектора. хочу взять что-нибудь что с одной стороны уже рабочее (а не брошего на выводе куба), с другой - минималистичное чтобы это можно было открыть в ide и не сойти с ума от миллиона кода
>>1085135 >чтобы это можно было открыть в ide и не сойти с ума от миллиона кода Я когда просто писал свою систему частиц под годот - это уже суммарно заняло 550кб. Просто для 3д системы cpu частиц. А ты хочешь движок но попроще и без кода. Забавно.
>>1085136 >Я когда просто писал свою систему частиц под годот - это уже суммарно заняло 550кб система частиц должна загружаться из внешнего редактора..
ну и вот к примеру http://cubeengine.com/ сетевой шутер в стиле кваки - в середине его развития там вообще было 4-6к строчек кода - и это игра, сетевой режим, боты, и даже редактор карт.
>>1085139 >Такова судьба движкопись такова судьба тех кто берет школьника мнящего себя программистом. 2D движок даже не нужно делать - берешь sdl - там все из каробки уже есть. или allegro.
в 3D вот пердолится, да... почему-то никто не может сделать простую обертку уровня sdl для 3D - чтобы просто модельки выводить и удобно конвеером рулить. Все в основном начинают писать убийцу юнити/годота и ue в одном флаконе.
>>1085140 >грузишь просто какую-нибудь json анимацию Имел дело со спайном? Игра на 90% веса будет состоять из json портянок. При этом моя система частиц в скомпилированном виде весит килобайт ну 30 максимум. При этом это будут настоящие частицы, а не анимация, еще и с полным контролем их лайфтайма.
>>1085170 Мое мнение - похуй на апи в век нейросетей, надо брать любую хуйню где есть сборщик мусора и нет сырых указателей и юзать ее, шанс обосраться минимальный, выхлоп максимальный, нейросеть будет знать апи за тебя, твоя задача только придумывать идею про выкалывание глаз с потерей видимости на полэкрана и иметь среднюю компетенцию по основным инструментам работы с визуальной частью игры, большего не нужно, не считая подписки на нейродауна
>>1085175 Это мое субъективное мнение, мне тот апи неприятен. Конкретику слишком долго расписывать, там два кирилла-васяна каждый со своими нестандартными модификациями си плюсов.
>>1085141 >почему-то никто не может сделать простую обертку уровня sdl для 3D raylib. нюанс в том, что 3D pipeline намного сложнее. нельзя просто взять и сделать одну функцию рисовки mesh, как для 2D движка, потому что это, во первых, будет не оптимально, а во вторых, недостаточно, так как нужны материалы и тд.
>>1085218 у меня был плохой опыт с годотом, поэтому я его не использую кроме того, по нему невозможно было спросить советов у анонов, в годототреде меня постоянно банили а вот в юнититреде не банили, поэтому я освоил юнити
>>1085219 >на ютубе множество летсплеев по этой игре. например в одном автор восхищается плавностью игры и говорит что она идёт более гладко, чем CS2 На какой нибудь 5090, если только. Или просто троллинг.
>>618624 (OP) Уважаемые знатоки, ответьте, пожалуйста, на вопрос - при скачивании UE или Unity email, указанный при регистрации, вообще, где-то дальше фигурирует? Можно ли зарегистрироваться на фейкопочту и пользоваться этими движками? Или почта где-то прописывается и будет фигурировать в сборках твоих проектов? Или надо обязательно регистрироваться именно на основной email, под которым и планируется основная работа? Спасибо.
>>1085250 >>1085253 То есть если я зарегистрируюсь на фейкопочту, сделаю игру, выложу где-то, то понять, кто сделал, нельзя будет? Или движки имеют id и прочую мета-инфу при сборке игры?
>>1085093-кун на связи. Называйте меня хоть ezengine-шизом.
>>1085135 >кстати анон, пиши как че там Я понял, почему он не пользуется популярностью среди школоразработчиков:
Сам движок очень легкий, буквально какие-то небольшие cozy-игры можно за пару дней делать. Интуитивно всё, шустро запускается даже на встройке ноутбука. Это прямо жирный плюс.
НО Парадоксальная вещь. Возможно я просто ещё не разобрался, но в движке кажется нету магической кнопки "выпуска". Чтобы там выбрать платформу, логотип и оно мне экзешник создаст, который я могу на ичио отправить. В этом он пока ставит железобетонную стену для таких нубов типа меня.
>>1085134 Ты про гуй движка? Там для игр используется RmlUi и обычный советский ImGui.
>>1085132 Это какой-то генератор деревьев для годота?
>>1085243 Не понятно что ты хотел спросить. Яснее выражайся. Ну скачаешь ты unity под одним емейлом, а залогинишся в unityhub в другой. Что это тебе дает? Ты думаешь что при скачивании тебе дадут уникальный exe файл? Нахуя? К сборке будет привязан аккаунт которым ты пользуешься в unityhub. Телеметрия в игре будет к этому аккаунту относится. Скачать ассеты из ассетстора ты тоже только под этим акакунтом можешь. Потому что unityhub синхронизируется со стором.
а почему у тебя стоит такая цель? ты собрался что-то незаконное делать? обычно кто пишет "хочу выложить игру чтоб никто не узнал что это я" на этом и заканчивают
>>1085254 Какая цель, что за конспирация? Скорее всего в билде есть только гуид проекта и всё, а у юнити наверное есть инфа какие аккаунты открывали проект с этим гуидом.
>>1085256 >в движке кажется нету магической кнопки "выпуска" я думал там надо проект собрать, но в доках написано >To get started with generating a self-contained package of your game, use the project export dialog that you find in the editor under Project > Export Project....
>>1085257 >>1085258 >>1085259 >>1085260 >А зачем такая конспирация? Почему нельзя просто скачать и сделать? Постоянно какие-то регистрации, анальные верификация и прочая херня на каждом шагу. Печалька.
Кстати, что насчёт Unreal Engine? Там такая же херня?
>>1085264 > Почему нельзя просто скачать и сделать? Потому что это коммерческий движок.
> Постоянно какие-то регистрации, анальные верификация и прочая херня на каждом шагу. Просто через гугл акк заходишь и все, какая верификация? Разае не больше заморочек с созданием фейкопочты?
Если ты собирался реальную игру делать и куда-то выкладывать, то можешь тогда сразу закругляться - от регистраций и верификаций в сторы, заполнения платёжной информации, регистрации и менеджмента акков всевощможных смежных штук - в ахуе даже я. Это не то что за 2 секунды в гугл акк для юнити залогиниться, это уже реально боль.
>>1085268 Godot 3d поддерживает? >>1085269 >созданием фейкопочты? Гугл теперь так просто не сделаешь. Телефонные операторы тебя на хер посылают, пожтому верификация не проходит. >Если ты собирался реальную игру делать и куда-то выкладывать, то можешь тогда сразу закругляться Можно на борды выложить. Мне не для монетизации.
>>1085271 > Гугл теперь так просто не сделаешь. Телефонные операторы тебя на хер посылают, пожтому верификация не проходит. У тебя гугл акка нет? Я про него сказал просто потому что он у 99% есть.
На яндекс почту тогда зарегайся основную хз.
Если ты прям совсем параноик и всем этим по фану планируешь заниматься, то просто бери годот, он намного лучше для новичка чем абсолютно любой другой открытый движок.
> Rust или Python для разработки там нельзя применять? Скорее всего для тебя ответ нет.
Но вообще прикрутить нативные либы можно - но я могу себе представить код на расте в анриле только если у тебя на расте ецс и он заебись и ты уверен что оно тебе надо, а анрил теюе нужен иолько для вывода графона и редакторов. Но само собой придется писать какую то либу чтобы это все соединить. Но в разумности этого варианта я сомневаюсь, скорее всего нихуя нету какого то заебись фрецмворка нк расте который оправдает все эти лишние трудозатраты.
И скрипты на питоне тоже можно, подключаешь интерпретатор, пишешь какую то систему которая будет определенные скрипты вызывать и что то в анриле делать, и поехал.
Хз какие у тебя цели и что именно ты собираешься делать, с 99% шансом это все не нужно и стоит брать С++.
>>1085153 >Bgfx например и еще что-то такое. >>1085154 >sokol https://github.com/floooh/sokol авторы страдают какой-то херней и пишут свои парсеры шейдеров, при том что: а) это бесмысленно - давно уже перешли на glsl b) есть свой очередной универсальный синтаксис шейдеров (slang)- он хотя бы от офф вендоров, а не ноунеймов гитхаба.
плюс эта классическая болезнь - навернуть над одной функцией 10500 абстракций
>>1085179 >raylib эти зачем-то упоролись в синтаксис opengl 1.0 и зачем-то сделали эмулятор begin/end на котором оно там внутри все костылит. (но вроде бы это было потому что рейлиб создавал преподаватель для студентов)
идейно да, это наиболее близкий пример, но им надо взять и все переписать с нуля
>>1085179 >потому что это, во первых, будет не оптимально, а во вторых, недостаточно, так как нужны материалы и тд. за оптимизацию должна отвечать система сцены а не рендер. так-то 2д тоже как бы требует оптимизации - например батчинга, и пользователь его сам пишет.
в 3д таки нужно только две вещи - послать данные о ресурсах - настроить конвеер
в принципе современные апи так и работают - настраиваешь командный буфер и запускаешь.
>>1085179 >нюанс в том, что 3D pipeline намного сложнее. а вообще есть например Three.js и бабилон под браузеры. по сути минимальные обертки на которых можно делать 3D игры не ебясь со всякой лоу херней. вот такую бы вещь на десктоп и желательно на C++
>>1085294 >что насчёт Google Filament? подобное страдает нечитаемым синтаксисом (всегда забавляло, все эти гуглы так дрочат на собеседованиях, но самый упоротый код, это код от айти гигантов)
и лишней раздутостью - когда делает вроде мало, а по объему кода больше чем какой-нибудь UE
>three.js в веб есть ниша для простых интерактивных 3D страниц. а вот целесообразность графического полу-движка предоставляющего только граф сцены крайне сомнительна. это уже пол движка, и лучше уже добавить остальные системы, чтобы сделать нормальный движок со всем интегрированным. иначе у тебя в движке будет свой граф сцены/ECS, которому надо как-то взаимодействовать со сценой граф движка, это только все усложнит.
>>1085298 >и лучше уже добавить остальные системы, проблема в том что остальных систем много. и вместо уютного маленького движка получаем очередную попытку сделать юнити в подвале если нужен полноценный движок - есть UE, есть юнити, есть годот, там валв кажется оживляют свой движок. крайэнджин еще. даже движ от фалко. Все одно, одиночка физически не сможет все написать. Плюс его приоритеты задач могут не совпадать с потребностями пользователей.
При этом для многих инди игр эти системы не нужны. Часто для игры может требоваться только совсем минимум - модельку с текстурой вывести, да музон пробренькать.. не надо рассказывать про тыщи кода для частиц и PBR материалы бога... вот типа wizordum - вывести кубик с натянутой текстурой, вывести билборды. Все - руби бабло. (хоть он и на юнити, но и для своего движка не много надо)
>>1085299 для этого даже не нужно библиотеку, куб можно сделать за неделю на opengl. ну или сойдет raylib. а вот для полноценного 3D движка хотя бы уровня road to vostok этого уже будет недостаточно, если одиночка не может сделать движок, то ты в одиночку тем более не сможешь сделать это поверх простой библиотеки.
то есть мотивации делать простую 3D библиотеку ни у кого нет, потому что это тривиально, а область применения сильно ограниченная. а если начнешь усложнять 3D библиотеку, то окажется что ты уже сделал пол движка, и не добавить остальную половину нет смысла.
>>1085300 >для этого даже не нужно библиотеку, куб можно сделать за неделю на opengl. можно... но тут включается режим движкописи - начинаешь писать те самые ненужные для куба системы.
>>1085300 > хотя бы уровня road to vostok этого инди игр требующих хотя бы такие технологии всеже не много.
а вот игр с кубами, спрайтами и т.д. даже в 3D - много делают.
>>1085304 такую игру надо было 10 лет назад делать, а сейчас это будет интересно только тебе (хотя сомневаюсь что это будет интересно даже тебе). лучше делай road to vostok на ezEngine.
>>1085305 >такую игру надо было 10 лет назад делать, 1) такие игры делают и сейчас. этот визордум в прошлом году релизнулся. и это не какой-то уникум - их там сотни 2) это можно пробовать осваивать в браузерках - все одно это сейчас единственный способ продать игру без пердолинка с казашкими счетами. посмотрел бы я - как ты запустишь road to vostok в хроме. 3) простота графония позволяет делать огромные миры не ебясь в сложные темы - даже тупо выводя в лоб километры пространсва, оно наверное будет работать без байтоебства
>>1085307 >простота графония позволяет делать огромные миры позволяет, но зачем? ты заранее исходишь из пораженческий позиции неудачника, который уже сдался. никому не будет интересно то, что ты будешь делать.
так называемый game design для подобной игры очень легко придумать. там и не надо ничего придумывать, так как я буквально описал весь документ. идеальная игра для одиночки.
даже какой нибудь клон vampire survivors и то сложнее придумать, так как там придумывать колоду способностей, балансить, и тд. так что графика может быть обманчива, и игру с 3D графикой может быть даже проще сделать.
>>1085313 >morrowind. пустая карта из 3-х ассетов с одинаковыми врагами и ящичками с инвентарями
И да и нет. Сейчас как раз прохожу её. По ощущениям, как недоделанная готика, статичный мир, огромный и сука пустой, я перед этим конченную готику 3 прошёл вдоль и поперёк, но даже там мир был более насыщен.
Графически с одной стороны небо, отражения, погодные условия с другой стороны поворот модели - вектор без умножения на скорость, это конечно лютый зашквар когда видишь, нпс который поворачивается мгновенно то в одну то в другую сторону.
Идиотское ограничение по весу инвентаря, при том игра заточена на бесконечные данжи и накопление лута.
Единственно что вытягивает эту игру это система прокачки, но это скорее для аутистов готовых сотни часов тратить на прохождение однотипных данжей, в желании стать самым сильным в этом мире.
Морровинд сильно переоценен, что тогда, что сейчас, огромные пространства и открытый мир нафиг не нужен если он пустой и однотипный.
Однако в производстве это оказывается проще, чем придумывать всякие интересные механики и геймплей.
>>1085320 Свитки никогда не были парком аттракционов, это сборник квестов где рпг это базовый набор механик чтобы эти квесты проходить/находить.
>поворот модели - вектор без умножения на скорость animation based combat это рак для рпг, но мы живем в выросшем поколении дарксоулс-даунов и их искаженном понимании что такое рпг вот и имеем что имеем Времена моровинда это когда всякий сахарок вроде анимированного вращения как в арпг/зельде был ненужон/считался дурным тоном консолепидорства
>>1085320 >это конечно лютый зашквар когда видишь, нпс который поворачивается мгновенно то в одну то в другую сторону. Ты дотер что ли? В лиге легенд тоже поворот мгновенный, и ниче, турниры устраивают
>>1085325 да, но новички обычно думают, что если простая графика, то игру просто сделать, а если сложная - то сложная. и попадают в ловушку, когда пытаются без опыта сходу сделать сложную абстрактную игру, или, что еще хуже, придумывать новые идеи для своей пиксель арт игры.
>>1085360 Это не то. Это оптимизация render target'ов, которые требуют большую пропускную способность памяти, особенно для deffered рендера, который копирует сразу несколько render target'ов. Экранчик делится на клетки, у каждой клетки свои локальные микро буферы для render target'ов в быстром кеше.
Не, аноны, я всё понимаю, что со свиным рылом в калашный ряд и вообще нехрен играть в ААА на встройке. Но эти ебучие тени от перил нереально было запечь? Что это за шумящее уебожество? Пиздец, двадцать лет назад и то было получше. Покупать видяху по цене самолёта, чтобы тени не шумели, я хуею. И это даже не UE5, хотя тени там такие же всратые.
Я к тому, что зачастую не в движках дело, а в рукожопых разрабах.
>>1085531 Разве анрил не запекает статические меши автоматически? Этот шум видимо особенность люмена, возможно только на лоу оборудовании. Я запускал в ue5 обучающий контент от эпиков на 1660 там такая же фигня и мерцание. На ue4 такой фигни не было..
>>1085543 Не так уж давно. Крайтеки ещё 10 лет назад положили. А современный гейдев только пришел к этому. И это ещё при том, что половина не умеет ни в pbr, ни в pbs. Так что мылу и уродливым текстурам ещё долго быть.
>>1085655 Почему жалко? Я тоже положительно относился к движку, пока не узнал лучше что такое роблокс, и чем занимаются разработчики sbox. В их движке нет ничего особенного, чтобы зацикливаться на нем. Довольно паршивый, посредственный движок надо сказать.
>>1085651 Эта картинка иллюстрирует еще одну проблему современных движков - HDR рендеринг. Тусклые цвета, низкий контраст, как будто серый фильтр поверх изображения. Это происходит из-за того, что картинка рендерится с 32 битными цветами на канал, а потом сжимается с потерями до 8 бит. У разработчика нет никакого контроля как будут выглядеть цвета в его игре.
>>1085672 Ты даже близко не понимаешь о чём ты говоришь и насколько ты не прав. Возможно, если бы ты хоть пару раз запускал современные игры или современные движки, ты бы не писал такие глупости.
>>1085676 А может это ты не понимаешь? HDR рендерит выше отображения диапазона sRGB, и чтобы это отобразить картинка прогоняется через фильтр который по опеределнию все усредняет. Это типа аудио фильтра, который усредняет звук, делает его плоским. Так и HDR рендер после tone mapping фильтра становится плоской, имеет специфический вид ААА слопа >>1085673
Любпытная статья https://modelviewer.dev/examples/tone-mapping >Основная проблема, о которой сообщают пользователи электронной коммерции в отношении тонального отображения ACES (и даже AgX), заключается в значительной потере насыщенности. Многие художники были разочарованы невозможностью получить желаемый цвет продукта (как правило, продиктованный маркетингом) при любом сочетании свойств материалов и освещения, но мало кто понимал, что именно функция тонального отображения является ограничивающим фактором.
>>1085678 Пиздец ты дебилиус. Ну, нет, всё абсолютно не так, ты по верхам слов нахватался и не знаешь, что они значат.
Говоришь про нет контроля, потом говоришь про тонемаппинг. Так есть контроль или нет? Определись. А лучше сам потыкай чтобы не позориться.
Говоришь про sdr потом про SRGB потом про HDR - это не совсем связаннве понятия деб, ты наверное хотел сказать про SDR.
Ну и шиза про отсутствие контраста это шиза, игра будет весь твой цветовой охват юзать, то что у тебя на скрине это вообще дешевое освещение 10 летней давности без GI(и его имитации доп источниками - в кат сценах часто так делают) вкупе с грязными текстурами(что является стилистическим решением а не ограничением), а не цветовой охват и не контраст.
Хз просто попробуй хотя бы игры какие то запустить и ткни в пиксель где там они че усредняют
>>1085704 Ну тоесть формально проблема только в том что юнити слишком сильно дружит с сервером лицензирования, и из-за этого чел начал лезть в залупу годот. Нет проблемы с лицензированием, нет проблемы с самим движком, тупо техническая проблема с хабом, и надо просто все удалить и поставить назад. Ну ладно бы я еще понял, если бы чел свалил по идеологическим причинам, тогда выбор годота был бы оправдан, а так чел просто решил самоубиться каналом с юнити аудиторией и попутно удариться головой о все проблемные места годота (а их пиздец немало).
>>1085704 11 лет потратил на юнити, и, вместо создания своего движка, решил взять годот, да не просто годот, а какой-то форк? диагноз: дебильное слабоумие.
>>1085739 Ты совсем ослеп? Видно что на пост процессинге выкрутили контраст. Само изображение тусклое. Из-за PBR все в какой-то белесой дымке. стандартный PBR+HDR пайплайн совершенно не подходит для стилизованных игр.
>>1085775 То, что здесь изображено >>1085739 далеко от реальности, мягко говоря. И это в любом случае грубая имитация, без полноценного рейтресинга никакого PBR реализовать нельзя. Оно просто обесцечивает половину картинку там, где должно быть затенение.
>>1085785 Да, но проблема в том, что в стандартном пайплайне всех движков это просто рисуется в шейдере как обесцвеченные пиксели в зависимости только от нормали. Без рейтресинга по другому не сделать. Поразительно, как ААА приучили игроков терпеть эти уродливые артефакты >>1085787
>>1085793 >ААА приучили игроков терпеть эти уродливые артефакты приучили не ААА, а конкретно юнити с говнорендером про годот не упоминаем, т.к. графонистых игр на нем нет
>>1085815 >Поскольку рендер Не сколько рендер, сколько реализация 3д в целом. Годоту до 3д ещё расти расти. А там гляди может кто-то захочет Bakery адаптировать хотя-бы под годотю. Разраб плагина только за, только желающих не нашлось до сих пор.
>>1085827 Ноды хуже компонентов. Единственное, когда они нужны - это иерархия, типа GUI, или скажем персонаж у которого оружие крепится к руке, а рука поворачивается. Обычно же у тебя есть домик, а в нем лифт, а в нем кнопка. Но нет такого, что лифт внутри другого лифта, а тот внутри третьего лифта, а тот на четвертом лифте и так далее. Хотя, если в лифте туррель, то может быть полезно
>>1085801 >а конкретно юнити с говнорендером ну толи дело игры до 2005 года - заходишь в сарай, и смотришь на квадрат малевича или там ищешь негра в темном-темном месте темной-темной ночью помню doom 3. агась
юнити тут вообще не при чем - просто все перешли на srgb - который вообщет драйвером видеокарты включается. toon maping - это наследие предков там, где еще фреймбуфер создается в линейном пространстве, а не srgb
>>1085830 >хуже компонентов. ну хуй знает. все говорят что компоненты - это про оптимизиацию.
но вы видели что внутри типичного GetComponent? это же сука перебор всего массива при каждом обращении (даже если бинарное дерево с хешем). Это же миллионы подобных переборов. а полиморфизм? что системы, что компоненты - virtual и сразу нахуй 20% производительности (компилятор не умеет оптимизировать динамические вызовы - он же блядь не знает что там зовется)
стоит ли это кеш фредли таких выебонов?
А со стороны геймдизайна - вот говорят - это такой конструктор. но дизайнер не работает с деталями лего. дизайнер работает с орками, гоблинами, сундуками, а не с "нечно двигающееся", "нечто рисующееся", "нечто брянкающееся", "нечто скриптующее". А внутри кода в секунду времени вообще хуй поймешь - кто там сейчас неправильно двигается- оно же блядь там абстрактно все работает
>>1085829 И то, и то - объекты. Нет никакой разницы добавлять их в список компонентов или дочерних объектов. Компоненты это лишняя абстракция, на мой взгляд. Нет разницы между var x = this.gameObject.GetComponent<Foo>(); и var x = this.parentObject.GetChild<Foo>(); я не могу придумать сценария, где компоненты бы выигрывали.
У нод лучший UX в редакторе, на мой взгляд. Их все видно в иерархии, иерархию удобнее редактировать.
>>1085827 >>1085861 >но вы видели что внутри типичного GetComponent Это только в юнити, который позволяет компоненты одного и того же типа вешать на один go. Но это не значит что ты обязан использовать этот механизм, ты можешь после инциализации и связывания монобехов в твою архитектуру вообще не использовать GetComponent, а искать их инстансы твоими собственными архитектурными способами. К тому же в юнити есть ecs, и в нем уже такой проблемы нет. >virtual и сразу нахуй 20% производительности Аналогично в годоте, методы лайфтайма ноды тоже являются virtual и переопределяются реализациями, и это невозможно пофиксить. Но если тебе реально важны такие копейки - мне не понятно нахуя тебе вообще нужна графовая сцена, пиши как деды завещали и сам считай все матрицы. >А со стороны геймдизайна - вот говорят - это такой конструктор. но дизайнер не работает с деталями лего. дизайнер работает с орками, гоблинами, сундуками, а не с "нечно двигающееся", "нечто рисующееся", "нечто брянкающееся", "нечто скриптующее". Дизайнер работает с подготовленными программистом префабами, а то и вовсе собирает по кускам модели, анимации к моделям, vfx, выдает программисту вместе с концептом, программист настраивает, а дизайнер затем еще и шлифует. Ему поебать абсолютно, компоненты там, полноценные реализации, вплоть до того что дизайнер может вообще не видеть что это наборы компонентов, а просто наблюдать их набор полей, потому что в юнити или в годоте ты можешь полностью переопределить как редактор "видит" твой обьект. Я например с помощью этого механизма починил главную проблему нод - 1 нода - 1тип - 1скрипт, и теперь могу реализовывать рантайм композицию группы сцен в рамках 1 ноды, внутри которой может жить от 2 до бесконечности скриптов разных типов с разными задачами.
>>1085864 >А ты не делай много таких запросов, не засовывай их в апдейты и всё будет норм. ну например в юнити допердолились до того что вообще отказаться от архитектуры движка и пердолить все на своих классах, с одним GameObject на сцену.
>>1085866 >Ну так никакого гет компонента быть не должно конечно, должен быть только перебор foreach. И вот уже пгчти ecs. тебе надо подвигать из внешнего скрипта (какого-нибудь луа для дизайнера) орка в новую позицию.
>>1085868 >реально важны такие копейки это не копейки. 20% это реальная цифра потери производительности за виртуальные методы.
>>1085868 >ноды тоже являются virtual не знаю как в годоте, но прелесть оопшных нод в том что вместо наследования и полиморфизма можно юзать агрегацию - не теряя производительность.
>>1085868 >Дизайнер работает с подготовленными программистом префабами вообще почему-то в современном мире дизайнеров появилось мнение, что это какие-то инвалиды не способные нажать две кнопки. А это не так. достаточно посмотреть инструменты ААА игр - чтобы понять что геймдизайнеры там ебошат в скриптах не хуже кодеров.
имхо, разница между геймдизайнером и программистом - программист ебется за оптимизацию и качество, а геймдизайнер, за логику выполнения. Но по сути код пишут оба. просто один пишет код на каком-нибудь С++, а другой на нативном языке.
>>1085872 >не знаю как в годоте, но прелесть оопшных нод в том что вместо наследования и полиморфизма можно юзать агрегацию - не теряя производительность Теряя, если это не laba2.cpp. Любой более менее сложный продукт на базе агрегации либо перейдет на контракты(интерфейсы), либо будет вынужден писать сложную макросную логику, чтобы заменить ею контракты на компайлтайме. Контракты обойдутся еще тяжелее чем виртуальные методы, ебля с макросами - ну такое себе наверное может позволить только убейсофт.
>>1085875 зачем? вообще в этом разговоре есть ключевая ошибка - многие рассуждают о какой-то абстрактной машине абстрагированной от всего. отсюда и рожают всякие абстрактные машины с мыслью "а вдруг потом понадобится добавить ХХХ".
в реальности так никто не делает. В реальности у тебя есть четкий диздок, есть сроки, есть согласования, и переделка логики часто недопустима. А если что-то нужно переделать - то это конкретный, документируемый процесс - в котором код - это вообще самая мелочь, все начнется с бюджетов
поэтому у тебя на начале игры уже должны быть все основные классы (это кстати сразу пишется в тех док). И из этого уже строишь всю архитектуру - и тебе не нужны все эти расширения.
если проще - вот ты делаешь игру змейка в 2д. ты не можешь ее делать с принципом, а вдруг через месяц это будет игра про кота, а вдруг она будет в 3д, а вдруг надо не собирать яблоки, а убегать, а вдруг это вообще будет карточная игра... а нет, это будет шутер. (если ты делаешь по такому принципу - у тебя вообще никакой игры не будет) То есть у тебя четкое понимание игры, в нем есть четко - змейка, яблоки, поле. три класса. возможно будут варианты (ядовитые яблоки, камни, гемы) - но это экземпляры классов. И тебе не нужны никакие ооп, ексы и прочая лабуда.
--------------------------------------------------------------------------------------- в екс и подобное должны дрочиться движкописи - они вот как раз не могут знать - какой будет игра, какие в ней будут требования и т.д. Но много ли движкопись готовых отдать жизнь за никому не нужный клон годоти?
вообще знаете почему дизайнеры/художники чаще релизят игру в стим, чем одиночки программисты? и почему вообще программисты срывают проекты? почему движкопися в проекте - быть беде? (и не потому что свой движок плох)
Художник делает игру с принципом - да ебись оно как угодно, я не прогер, там-сям надергаю скриптов из интернета и норм (сейчас еще им в помощь вайбкодинг)
короче, они ебашат игру. им насрать. И потом говноблогеры высирают видосы про то, какой же там ужасный код (например про разраба яндере) - но вот только на этом ужасном коде есть игра, а вот у них....
А программист начинает - а вдруг у меня будут не орки а спейсмарины, а вдруг не шутер, а стратегия, а вдруг... Надо все делать по уму, обмажусь в ексы, сделаю все абстрактно, чтоб как конструктор. А игра где? а игры нет - прогер прогает миллион компонент и систем на все случаи жизни (только чьей?)
>>1085868 >а искать их инстансы твоими собственными архитектурными способами. во, щас смотрел одну реализацию. там GetComponent выполняется по индексы за O(1).. было бы заебись, если бы не то что в итоге энтити хранит указатели на все существующие виды компонент. Вроде по сути 4 байта, но...
немножко математики - если в игре 100 видов компонент, и 10к энтити, то это уже 4мб оперативы только на то чтобы GetComponent работал без оверхеда. для пу мож и похуй, а для браузерки жопа
>>1085880 >А программист начинает - а вдруг у меня будут не орки а спейсмарины
так будет делать плохой программист, про это даже была древняя статья "как программисты пекли хлеб"
>>1085880 >вообще знаете почему дизайнеры/художники чаще релизят игру нет, не знаю. а что если я одновременно художник и программист? перфекционизм присущ любому независимо от специализации.
вот дорисовал я все спрайты персонажей, ура. а потом вижу, что бэкграунды для них не подходят. перерисовал бэкграунды, но пока рисовал, так прокачал скилл, что персонажи стали выглядеть убого. потратил ещё полгода и перерисовал персонажей. вроде всё нормально, но оказалось, что они совсем не вписываются в изначальный концепт и стиль игры. и т. п.
>>1085877 >в реальности У меня например в реальности есть 4 типа никак не связанных логически, но требующих связки геймплейно сущности - физика машины, скин этой самой машины (модель, материалы, коннектпоинт для турели или другого обьекта), турель на машине (модель турели, материалы), эмиттер проджектайлов турели (с настройками и разными скинами проджектайлов). И всю эту хуйню надо уметь увязывать друг с другом, при чем, количество турелей определяется скином машины (так как связаны прокачкой), а физики может быть 2 (колеса, воздушная подушка), что помимо прочего накладывает связь взаимодействие физики + скин (сопла подушки визуально дуют в разные стороны в зависимости от направления движения и эта информация берется из физики). Я не представляю, как это можно вразумительно и в человеческие сроки связать без наследования и без полиморфизма. Агрегация ли, композиция ли - обе потребуют контракты-виртуальные методы. Ecs все это дополнительно усложнит, так как не использует полиморфизмом.
>>1085883 > Я не представляю, как это можно вразумительно и в человеческие сроки связать без наследования и без полиморфизма. Агрегация ли, композиция ли - обе потребуют контракты-виртуальные методы зачем ты это передаешь абстрактным классом? у тебя есть конкретные типы - передавай и храни их.
>>1085884 >у тебя есть конкретные типы Ну есть у меня конкретные типы, дальше что? Мне их методы вызывать как прикажешь? If object.instanceof(Mytype) { objecs as Mytype.Call() } ? Ну ладно, эту проблему частично решили в c# 15 с вводом union types, но эта версия языка еще даже в стейбл не вышла.
>>1085886 >раньше писали игры на Си и не бухтели К сожалению в марио из 98 в 2к26 играть никто не будет, большее я не вытяну в одно лицо даже со всеми нейронками
>>1085888 >в 90-ые ещё вовсю писали на си, а это в том числе весьма сложные стратегии и рпг с разными сущностями Это писали крупнейшие по тем временам студии, где трудились десятки программистов фуллтайм.
>>1085873 Компоненты - это просто идиома юнити, как создавать и получать ссылки на объекты. Реализация объектов в обоих движках может быть идентичная, просто различаются идиомы получения ссылок на другие объекты сцены (мой пример с GetChild() >>1085867)
Например, в unity ты создаешь GameObject игрока, добавляешь ему CharacterController и MonoBehavior со скриптом. В скрипте ты дергаешь ссылку на контроллер и вызываешь метод, а контроллер дергает game object и изменяется трансформации. В godot так же можно создать корневой объект и добавить ему 2 дочерних объекта с контроллером и скриптом, никакой разницы. Но в случае узлов можно еще "схлопнуть" несколько различных объектов в один, сделать наследование Player -> CharacterController -> GameObject, тогда вместо того, чтобы прыгать по нескольким ссылкам для обновления, нужно прыгнуть по одной ссылке. Это эффективнее и с точки зрения производительности, и с точки зрения памяти (меньше объектов, а меньше объектов - эффективнее GC).
>>1085890 да чаи они там гоняли, лоботрясы тем более штат ААА-компаний 90-ых по нынешним меркам просто смешон, человек 20 включая маркетологов и директоров
>>1085895 ну подумай, с точки зрения проектирования и ООП: червяки которые у тебя по экрану ползают - это игровые объекты (сцены), объекты первого порядка
а ихние спрайты и коллайдеры - это свойства объектов. коллайдеры сами по себе по сцене не ползают
игровые объекты могут быть частью дерева сцены, если оно у тебя в движке есть. а если нет, то это просто список сущностей.
схлопнуть игровые объекты и компоненты в одну сущность - технически можно, но нелогично, это создаёт противоречие между логикой кода и логикой дизайна. мол тут у нас написано так, но вы это игнорируйте, потому что в коде у нас иначе
можно сделать ещё шаг назад и отказаться от композиции вообще, тогда твои червячки - это что-то, что наследует класс Sprite, потому что оно видно на экране. но тут возникают сложности, когда нужно будет наследовать разные комбинации
>>1085897 >а ихние спрайты и коллайдеры Их необязательно добавлять в список "компонентов" и вызывать GetComponent чтобы получить на них ссылки. Композицию так же можно сделать через добавление дочерних узлов.
>>1085899 это уже ненужный костыль, который вызван нитакусичностью
компьютерная игра - это моделирование какой-то реальной игры. либо настольной, либо физической активности
если у тебя в коде "мячик", "текстура мячика" и "звук мячика" - сущности одного порядка, то ты обосрался с проектированием
а ты обосрался с проектированием потому что не занимался моделированием бизнес-процессов, вот и думаешь что в разработке игры ты можешь делать абсолютно что угодно, а это не так
Я нашел пример, который нельзя сделать через композицию дочерними объектами, но он включает использование SendMessage. Нельзя сделать всплывающие сообщения, по типу HTML, которые отправляются через SendMessage. Я думаю лучший вариант где-то посередине. Например, было бы лучше если в unity MeshRenderer, RigidBodt и т.д. наследовались от GameObject, а скрипты были бы компонентами.
Нет, я ошибся. Я рассматривал один пример с мешем в изоляции, но если взять хотя бы стандартный набор компонентов - меш, rigid body, коллайдер, то все уже совсем по другому. Да, число объектов в годоте может быть меньше, но объем памяти они будут занимать намного больше чем компоненты из-за того, что компоненты переиспользуют один GameObject/Transform, а у каждой ноды в годоте свой трансформ и т.д. А если вспоминим что в годоте еще вместо кватерниона - базис на 36 байт, то все еще печальнее. 3 ноды могут реально занимать пол килобайта памяти. Компоненты могут эффективнее так как даже если по итогу объектов создается больше, то в среднем они занимают в 3-5 раз меньше памяти, то есть это будет эффективнее для кеша.
кстати напомните паттерн, про который не так давно сделали несколько статей, который изолирует игровые системы и переменные (вроде, не вдавался в подробности) в чанки / миры. помню что постили на реддите и были какие-то статьи. писалось что хорошо работает для туториалов
>>1085880 >вообще знаете почему дизайнеры/художники чаще релизят игру в стим, чем одиночки программисты
Потому что главное в игре это визуал. Приятная картинка радует глаз и привлекает игроков в виши. Уже на этапе разработки появляется группа поддержки, обсуждения какие-то. Поэтому даже у автора вырабатывается достаточно серотонина для того, чтобы продолжать разработку.
А у прогромиста вишей никаких нет, потому что до последнего стыдно и нечего было показывать. Два куба-заглушки на скриншотах и 3 видеоролика с разбором гениального кода на два часа посмотрело 2 инвалида и поставили 1 дизлайк. Отсюда нулевая мотивация продолжать игру. Поэтому игра века забрасывается превращается в ЭТО ПРОСТО ДЕМКА МЕХАНИКИ, ВЫ НИПРАВИЛЬНО ПОНЯЛИ!
>>1085947 Картинка != игра, так что не пизди. Ни художник, ни программер, ни 3д артист, ни музыкант не являются игроделами. Это вспомогательные роли которые существуют и без игр. Только геймдизайнер является чистым игроделом.
>>1085948 >Это вспомогательные роли которые существуют и без игр Речь в посте идёт об одиночках, поэтому ты спизданул хуйню уровня "Только режиссер ялвяется чистым киноделом"
>>1085947 Ты увидел несколько игр в стиме сделанных художниками, и решил что художники что-то там лучше заканчивают. Я могу так же найти примеры игр сделанных программистами. То же tangy td, сделанная программистом на своем движке.
Заканчивают игры только те, кто их делают. И я скажу так, что у программиста шанс закончить игру несравненно выше, по ряду причин. Во первых, у него будет большой опыт разработки игр. Во вторых, у него будет системный подход к разработке. Для того, кто 5 лет делал движки, потратить еще 1 год на разработку - это само собой разумеющееся. Для новичка без опыта, год - это беконченость, и поэтому большинство таких разработчиков бросают свой проЭкт через неделю-две.
>>1085959 >Во вторых, у него будет системный подход к разработке задрачивание в ексы, правильную архитектуру, и прочие высшие ценности - не способствует завершению игры
>>1085959 > я скажу так, что у программиста шанс закончить игру несравненно выше если бы было так - в этом треде бы уже десятки игр сделали.
>>1085959 > Для того, кто 5 лет делал движки, потратить еще 1 год на нет, он потратит еще 5 лет на идеальный движок.
>>1085959 >Для новичка без опыта, год - это беконченость, сейчас тебе вон нейронка за час основу любой игры напишет. художник просто нарисует туда моделек/текстур и в релиз А программист... начнет переписывать код
>>1085959 >шанс закончить Тут дело даже не в шансе. Художники сильно ограничены в игровых механиках. Они максимум потянут совсем уже примтив. Поэтому они часто уходят во всякие новеллы.
Майнкрафт был создан программистом, который идеально владел кодом. В игре шикарная архитектура кода, грамотное использование паттернов без фанатизма. Естественно никакой художник такое бы и близко не потянул.
>>1085960 > если бы было так - в этом треде бы уже десятки игр сделали. Нет, 0 связи > сейчас тебе вон нейронка за час основу любой игры напишет. художник просто нарисует туда моделек/текстур и в релиз Где же твоя игра тогда?
ECS, каким его популяризовал Майк Актон из unity, это ложь. Было обещано, что если объединить data oriented дизайн и ECS, то это ускорит движок/игру, потому что системы будут линейно обращаться к памяти и все будет быстро. Последний пункт про линейное обращение - это наглая ложь. Первое озарение заключается в том, что в типичной игре геймплейный код - это даже не 10% кода выполняемого движком. Основной код выполняется внутри систем движка, и каждая система хранит данные в каком-то своем оптимизированном виде. Например, системе графа сцены нужно проходить по графу. Система графики хранит данные в batch'ах оптимизированных для рисовки, порядок у которых не соответсвует порядку компонентов в архетипах. Система физики тоже хранит данные в своих структурах. И так далее. Остаются только демки с обновлением положения у 100 000 боидов.
>>1085981 >ECS придумали до юнити. одна из первых запруфанных игр на ECS (и важнее - презентация технологии) - dungeon siege. типа большой бесшовный мир за счет этого и сделали... типа без екс они бы не смогли сделать такой мир...
вот только в 2002 году также вышла готика, в которой также бесшовный большой (и намного более детализированный) мир. без всякой екс дрочи.
вот и думайте - одни дрочили во всякую хуиту, а другие "хуяк-хуяк и в продакшн" (готика на релизе неиграбельна была из-за багов). Хотя обе игры оставили свой след в истории... только доказывая что вся ебля с кодом бесмысленна.
другой пример - был дрочер кармак вылизывающий все до асемблера и вуду магии. а был суини которому ебать на эти ваши дрочи кода, он во все ооп больной (он юзал ооп в 86 году кста). Один сделал квейк. другой анреал торнеймент. снова две великих игры, и снова показали что код - хуйня полная, что делай хорошо, что делай плохо - не он решит за игру.
>>1085985 >он юзал ооп в 86 году кста кто не понял вдруг - бытует мнение что классическое ооп это медленно и нельзя в геймдеве. Особенно лет десять назад. (собственно отчасти дрочь на екс тоже растет отсюда, типа ооп медленно а вот DoD - это то что надо)
Так вот, Суини юзал то самое академическое ооп, как по учебнику, еще в своих первых 3д демо движка в 1986 году - все летало и было графонисто на моменты своего времени. И не просто ооп, а того монстра который с com от майкрософт смешано
>>1085988 такое уж место, там все друг друга опускают. и им нормально. петушатник одним словом. то ли дело здесь, атмосфера взаимного уважения и свобода слова.
>>1085987 Просто до сих пор бытует популярное заблуждение, что если в движке есть ECS, значит движок быстрый, и что нужно использовать ECS, потому что оно лучше. Некоторые даже на основе этого выбирают движок. unity опять же, вложили 10 лет в говно ECS, вместо того, чтобы оптимизировать ядро движка. А по итогу обычный dotnet быстрее их супер оптимизированного burst. Потеха.
unity сравнивали свой DOTS/ECS с базовой неоптимизрованной версией движка, и из-за этого создавалось впечатление высокой производительности. но это не ECS был быстрый, это движок был медленный.
https://www.youtube.com/watch?v=f3_UVYFyMno Интервью с бывшим разработчиком unity, который работал над HDRP. Рассказывает, что они хотели модернизировать движок, но в unity много разных команд, в частности мобильная команда, которые не хотели этого. Он из-за этого впал в депрессию и уволился, после этого разогнали всю HDRP команду.
>>1085998 >у них единого видения что нужно делать вот что бывает когда продукт захыватывают выблядские мобильные дегенераты верящие что создав движок для создания мобильного дерьмища они заработают лядрды
>>1085988 Я там редко пишу, годотеры меня не любят потому что я на хую видал gds и ноды, а мое решение проблем нод в годоте с интеграцией в редактор считают "неестественным", потому я серю в движкосраче и воюю на три фронта, как бывший юнитист, нынешний годотер и бывший и нынешний EC-дрочер
Непопулярное мнение: мобильный рынок - это кал. Эта хуйня должна сдохнуть, а те кто наживается на ней - публично обоссаны. И дело даже не в деньгах: рынок мобильных игор приучает жрать говно по типу роблокса, из-за чего атрофируются мозги уже с раннего возраста.
>>1085995 У тебя каша голове. Ецс и берст это очень слабо связанные вещи.
Бёрст нихуя не медленнее .NET(который если что тоже супер оптимизированный при JIT), особенно в векторизации.
> Просто до сих пор бытует популярное заблуждение, что если в движке есть ECS, значит движок быстрый, и что нужно использовать ECS, потому что оно лучше. Некоторые даже на основе этого выбирают движок. У тебя в голове бытует или где? Ецс это архитектурный паттерн с возможностью дод реализации(через спарс сет либо через СОА как в юнити ецс).
Например Entitas вообще не дод, это ецс фреймворк который вообще ни в какую производительность не метит, он чисто архитектурный.
> unity опять же, вложили 10 лет в говно ECS, Нормальный ецс, пусть и сложный.
> вместо того, чтобы оптимизировать ядро движка. Какое конкретно ядро, что конкретно оптимизировать? У них рендер и физика на берсте переписаны.
>>1086004 > из-за чего атрофируются мозги уже с раннего возраста. Какое нахуй атрофируются мозги, это олна из самых креативных игр при этом форсящая соц взаимодействие
>>1086013 >требования на оптимации ЛОЛ. Там просто буквально кал, который грузится по две минуты и лагает. Там всем похуй на оптимизацию. >чем отличаются Да много чем, неудобность управления породила тупейшие казуалки, которые уже на самоподдуве начали вырождаться еще сильнее. Второе, ориентрированность на короткие сессии и постоянное прерывание рекламой.
>>1085981 Все так. Это нужно только для боидов. Остается только придумать какую-то интересную игру на боидах, это почти ни у кого пока не получилось, кроме унылых примеров тысячи юнитов набигают стенка на стенку.
>>1086020 > ЛОЛ. Там просто буквально кал, который грузится по две минуты и лагает. Там всем похуй на оптимизацию. Ахаха, знаток в треде. Ты в курсе что если у тебя игра вебгл и она грузится больше 5 секунд то она идет нахуй из стора? В гугл плее если АНР(игра подвисла) больше 1% то ей режут органику? А если игра жрёт много аккумулятора(=греется теелфон), то готовься к волне единиц в отзывах которые убьют органику.
Поэтому требования к оптимизации на мобилках очень высокие, особенно у серьезных игр, это я тебе могу сказать из практики - там реально на это много времени тратят.
То что слабо квалифицированный чел в целом может сделать гиперказуалку без йоба оптимизации - ну да, может, но ему все равно придется немного запариться и хотя бы гайды посмотреть несколько дней чтобы минимум сделать.
А вот инди на пк - это пиздец, вот там обычно во все тяжкие идут потому что железо мощное и о перегреве девацса думать не нужно.
> Да много чем, неудобность управления породила тупейшие казуалки, которые уже на самоподдуве начали вырождаться еще сильнее. Второе, ориентрированность на короткие сессии и постоянное прерывание рекламой. Это конкретные жанры, это как говорить что пк говно потому что на пк можно в вебгл казуалки с рекламой играть. Ну да, можно, а можно и в другое играть. Как и на мобилках.
>>1086025 >Ахаха, знаток в треде. >Ты в курсе что если у тебя игра вебгл и она грузится больше 5 секунд то она идет нахуй из стора? >В гугл плее если АНР(игра подвисла) больше 1% то ей режут органику? >А если игра жрёт много аккумулятора(=греется теелфон), то готовься к волне единиц в отзывах которые убьют органику. Прохладные истории, вот только я ставил буквально игры из топ рекомендаций и там было все описанное мной. >Это конкретные жанры, это как говорить что пк говно потому что на пк можно в вебгл казуалки с рекламой играть. Ну да, можно, а можно и в другое играть. Как и на мобилках. Ну а это просто фантазии, может на десять тысяч говна там где то и есть нормальная игра, только хуй ей найдешь. Ну типа я видел пару шутеров похожих отдаленно на комп игры, ну так и они урезаны в разы управлением, всяким автоаймом и прочим.
>>1086026 > Прохладные истории, вот только я ставил буквально игры из топ рекомендаций и там было все описанное мной. Прохладные истории. Поставил пару виральных топов которые в топ на неделю залетели спустя пару месяцев разработки и пока офк не успели получить полноценную оптимизацию.
> Ну а это просто фантазии, может на десять тысяч говна там где то и есть нормальная игра, только хуй ей найдешь. Ну типа я видел пару шутеров похожих отдаленно на комп игры, ну так и они урезаны в разы управлением, всяким автоаймом и прочим. Идиотский аргумент. Я говорю - на мобилки есть сложные игры разных жанров. Ты говоришь - 1 на 10к. Ну збс, на пк тоже 1 нормальная на 10к вебгл гиперкпзуального калыча. Отличный показатель.
Тут вообще не важно сколько, важно наличие и отжор рынка - какой-нибудь мидкор могут делать больше сотни человек с топ квалификацией годами, а гиперказуалку васян который только только курсы прошел в соло за месяц, офк из больше будет.
>>1086037 >Поставил пару виральных топов которые в топ на неделю залетели спустя пару месяцев разработки и пока офк не успели получить полноценную оптимизацию. Играл и в игры которые существуют годами, та же хуйня. Никто и не пытался их оптимизировать. Да и вообще, это даунская отмазка - ведь они могли сразу сделать и выпустить оптимизированную версию. >Ну збс, на пк тоже 1 нормальная на 10к вебгл гиперкпзуального калыча Это где ты такое видел? Уже выдумываешь прямо на лету. > васян который только только курсы прошел в соло за месяц Говномобилки выпускают огромные студии. Васянов там практически и не заметишь.
>>1086021 Это GPU частнцы, compute шейдер, данные не покидают GPU. К архитектуре годот не имеет отношения. Смысл этих тестов в том, чтобы обновлять игровые объекты на CPU стеке. Давай демку с одновременным обновлением 100 000 нод на годоте.
>>1086044 Нет, в unity фреймворк игровых объектов на движке. В твоем примере один compute шейдер и один вызов графического API нарисовать миллион кубов инстансингом.
>>1086050 >ими код на C# управляет Сразу кал. В годоте можно сразу на c++. >дело ведь не в том, Дело в том, что похуй где там обсчитывается, потому что в результате просто прыгают кубы. А передавать положения объектов и анимации с CPU вообще не проблема.
> передавать положения объектов и анимации это для наглядности. можешь что угодно передавать.
ты не понимаешь, что суть демки не в отрисовке - можно вообще убрать отрисовку кубов и всё будет даже быстрее работать. но чтоб впечатлить обывателя типа тебя сделали видео с кубами. усёк?
>>1086054 Ты ничего своей демкой не доказал, кроме того что ecs подходит для скачущих кубов, но скачущие кубы можно делать и другими технологиями, проще и быстрее.
>>1086056 Специалистам давно понятно что ecs бессмысленная вещь, поскольку нужна только для масштабов от 10000+ прыгающих однотипных кубов, что для геймплея в 99,99% просто не нужно.
>>1086057 откуда ты знаешь, что думает специалист, ты же не специалист.
ты думаешь что с помощью частиц можно нарисовать монстриков, а с помощью ecs кубы. это показывает отсутствие абстрактного мышления что для программиста проф. непригодность.
на самом деле, ecs и burst в юнити вообще ничего не рисуют, они не для этого
>>1086059 С помощью частиц на годоте не просто "нарисованы монстрики", а существует геймплей, в котором там монстриков поджигают, отталкивают. А в притащенной тобой демке на юнити просто скачут кубы. Все что ты показал что ты аутист, который пускает слюни на синтетические тесты, но не понимает что они ни для чего не нужны.
>>1086060 ты можешь найти десятки демонстраций burst с гемплеем. где 10000 юнитов можно выделить рамкой и послать рубить друг друга, кубы это максимально упрощённая демонстрация для новичков. начни хотя бы с кубов
>>1086061 > 10000 юнитов можно выделить рамкой и послать рубить друг друга Ну то есть есть буквально одно унылое применение, которое все повторяют. Когда появится что то реальное, возвращайся.
>>1086051 Ты понимаешь что означает benchmark? Это просто тест сколько игровых объектов можно обновить из C#. Вместо простых кубов там может быть логика. А в compute шейдере не может быть игровой логики, это простой шейдер частиц, двигающий кубы по простой фиксированной логике.
>>1086068 >Вместо простых кубов там может быть логика Ну вот когда будет тогда и приходи. Тривиальная логика легко выоптимизируется и получается вырожденный код, который не показывает что будет происходить в реальности, когда ты попробуешь хотя бы 10 разных взаимодействий в ecs реализовать.
>>1086060 Ну так и говори, "да, в годоте нельзя обновить положение 100 000 узлов, но это и не нужно". А ты пытаешься доказывать, что gpu частицы это аналог ECS из unity и только компрометируешь себя.
>>1086039 > ведь они могли сразу сделать и выпустить оптимизированную версию. Нет, это лишние затраты, нет смысла этим заниматься пока концепция не проверена - может вообще идея игры мертвая.
> Это где ты такое видел? Уже выдумываешь прямо на лету. Все вебгл игры работают везде, на вебгл игра портируется элементарно - все кто делают легкие мобилки сразу на вебгл площадки льют тоже.
> Говномобилки выпускают огромные студии. Васянов там практически и не заметишь. Лол. Нет. У меня точных цифр нет, но по вакансиям если судить - если студия большая то у них либо мид кор, либо большая казуалка(типа матч 3 обвязанного сотнями всяких систем, там и квеств, и баттл пассы и миссия и прочий кал), гиперкэж большие студии не делают. Гиперказуалки делают либо супер маленькие студии, либо супер маленькие студии с издательством через какой нибудь азур или вуду, иногда числятся как их внутренние студии. И тех и тех много, и то и то это всё таки маленькие студии.
>>1086055 > Ты ничего своей демкой не доказал, кроме того что ecs подходит для скачущих кубов, но скачущие кубы можно делать и другими технологиями, проще и быстрее. >>1086053 > В демке прыгают кубы, если бы они делали что-то сложнее, было бы что обсуждать, а так нечего.
Есть куча крутых игр в проде на ецс. И на юнитевском, и на кастомных. Также как и берст - его можно юзать и в комплекте с юнитевским ецс, и без(и это тоже не супер редкость)
>>1086068 По сути это бенчмарк оптимизированного пути для потокового копирования памяти CPU -> GPU, больше он ничего не тестирует.
Кстати, в D3D12 можно использовать REBAR для прямого копирования в GPU память, минуя временный upload буфер, это еще сильнее должно оптимизировать этот тест.
>>1086073 Зачем ты строишь из себя лоботомированного дурачка, забывшего в что годоте это делается через одну ноду - MultiMeshInstance? Ну можно еще аддон VAT анимации сверху навернуть, что собственно я в своих играх и делал
>>1086090 В годоте конечно есть нода для новичков, удобная для каких то разовых операций, но из скрипта есть удобный доступ прямо к физ.серверу через direct_space_state. Но если у тебя 100000 объектов, там естетственно уже другие оптимизации будут и не рейкасты движка, лол. Впрочем, можешь показать конечно 100000 на своем юнити с берстом
>>1086081 Все, что не затрагивает системы движка и их производительность, вообще не имеет смысла обсуждать, потому что это тривиально реализуется самим пользователем. Зачем мне ECS, я и сам могу массивы в цикле обновлять. ECS актуально только за счет тесной интеграции в движок, без этого оно вообще не интересно.
>>1086095 рендер не единственная система движка, олсо твои сущности могут рисоваться в один момент, а в другой не рисоваться. или рисоваться каждая десятая и т. д. возможности безграничны, не нужно ворочать нос
>>1086096 >твои сущности могут рисоваться в один момент, а в другой не рисоваться. >или рисоваться каждая десятая ecs жидко пукнет и умрет перестраивая индексы.
>>1086103 Я знаю, что никаких структурных изменений в этом не должно быть, более того у ецс есть разные варианты реализации, как дешевые для структурных измененийч так и дорогие.
>>1086103 ты чего-то по верхам нахватался и бормочешь про какие-то индексы нет в unity ecs никаких индексов тебе ли не всё равно, ты никогда не будешь их использовать
для твоей поделки на годоте это не нужно. я их тут видел как минимум три штуки, и они все одинаковые - моделька анимешной девки бегает по низкополигональному миру с хрюкающими волками, на этом разработка игры заканчивается
>>1086105 Ну смотри. Ты выключаешь свои сущности. Единственный способ это сделать по ЕЦСному, по хардкорному, это удалить компонент. Так как у тебя ЕЦС с архетипами конечно же, то это активирует копирование памяти всех компонентов в другой архетип. Потом система пропукивает список твоих сущностей, создает новый список компонентов рендера, сравнивает с предыдущим, находит удаленные компоненты (в bevy так, по крайней мере), и перестраивает свои внутренние структуры данных. Даже по этому описанию, как ты понимаешь, работы там не мало. Это совершенно точно не будет эффективнее простого сообщения об отключении объекта.
>>1086118 > Ну смотри. Ты выключаешь свои сущности. Единственный способ это сделать по ЕЦСному, по хардкорному, это удалить компонент. Нахуя, я совсем отбитый что ли так делать? Кто мне мешает в компоненте связанном с рендером флажок поменять на фолс?
>>1086125 В том. что это уже будет не ecs, а ооп, потому что этот флажок где то хранится (и флажочек скорее всего не один), а значит ты шатаешь кэш, а еще ловишь все удовольствие от промахов предсказателя перехода по if
>>1086126 > что это уже будет не ecs, а ооп Ты реально дебил
> потому что этот флажок где то хранится Да, в компонентах в ецс хранятся данные
> а значит ты шатаешь кэш, а еще ловишь все удовольствие от промахов предсказателя перехода по if А это хуже чем структурные изменения?
Проблема фильтрации любых сущностей есть везде в любом случае и есть разные варианты как с ней работать, и юзаешь ли ты ецс или нет тут абсолютно никакой роли не играет. Если я не прав - напиши как решить эту проблему так, что именно ецс тут мешает а иной подход не мешает. (Если что, я знаю, что никак)
В юнити ецс под капотом это старый добрый SOA, например, чего ты скорее всего не знал.
>>1086128 > вроде речь шла не про какой-то идеальный абстрактный ecs Идеальный абстрактный ецс допускает любые данные в компонентах, так что он вдвойне шиз.
А также допускает, что у тебя не вся игра игра на ецс.
Я хз вообще что за дебилиусы считают, что если ты применяешь для чего-то ецс, то должен обязательно абсолютно всё делать на нём, я даже тут вроде читал какого-то шиза который заявлял, что ецс говно потому что аниматор на нём получится говном а если я делаю его не на ецс то это уже значит что я делаю костыли и так непраивльно, надо делать на ецм. НАХУЯ. ПОЧЕМУ. ДЛЯ ЧЕГО. КТО СКАЗАЛ. КОМУ НАДО. ААААААА
>>1086130 Потомк что единстенный рнпльный плюс ецс был бы кэш локалити, а он убивается любым твоим смешением, и ецс стаеовится нинужнл. Подходит только видосиков про прыгающие 100000 кубикшв.
>>1086131 > Потомк что единстенный рнпльный плюс ецс был бы кэш локалити, а он убивается любым твоим смешением, и ецс стаеовится нинужнл. А ЧТО НУЖНО ТОГДА
Ну типа лол, напиши тогда как решить проблемы дырок с временно ненужными данными - эта проблема в любом случае есть, у неё нету единственного идеального решения.
В какой то ситуации линейная укладка в памяти с дырами нерелевантных данных будет лучшим варианьом, в какой-то может есть смысл группировать по чанкам в мире, в какой-то может есть смысл иметь отдельный геймплейный домен и графический и систему синхронизации между ними, в каком разделить это ещё на разные миры. Тут все ситуативно, и помножено ещё на все факторы скорости разработки - вряд ли ты будешь на практики всё это пробовать, если у тебя игра не за сотни миллионов долларов.
>>1086130 >А также допускает, что у тебя не вся игра игра на ецс. именно так - главная фишка екс - кеш френдли. все. А любой твой пук в рандомное место массива компонент - убивает это.
не надо рассказывать про какое-то там удобство, геймдизайнеров - это все жопа.
удобства нет - в дебаге это полная жопа - потому что у тебя поток каких-нибудь Transform и ты просто не можешь узнать почему конкретно этот Transform двигается вот сюда, а должен был вот туда. для дизайнера - миллион каких-то кирпичей - хуй знает как из этого говна собрать орка или сундук. Я уж промолчу про момент, когда компоненты начнут дублироваться - потому что какой-то программист не нашел нужное, и сделал копию.
>>1086133 >Ну типа лол, напиши тогда как решить проблемы дырок именно поэтому реальное екс так и остается чисто академическим и бывает двух видов: - это ООП с паттерном компонент, которое маркетологи обозвали ecs для повышения продаж - разраб - шизоид, у которого нет цели сделать продукт - у него цель сделать идеальное ecs
про маркетологов екс... вот например >>1086016 шизики говорят что без екс бы не сделали.. ложь-пиздешь и обман. Было полно игр с миллионами юнитов. и не в виде кубов, а с реальной анимацией - да теже первые total war. казаки. или игры где можно было устраивать баталии миллионов стикманов (они на юнити конечно - но еще древнем, где никакого реального екс не было, и даже все еще делали миллионы Монобехаверов)
>>1086093 >В годоте конечно есть нода для новичков, удобная для каких то разовых операций, но из скрипта есть удобный доступ прямо к физ.серверу через direct_space_state. Удобный и срущий пустыми variant словарями даже если не произошло коллизии, вот такая вот удобность. Юнити то 100000 рейкастов покажет, да даже годот их покажет, но с ньюансом - такие цифры может показать вызов рейкаста непосредственно внутри рантайма движка, а не через апи. В 4 ты либо рейкастишь нодой, либо пытаешься оптимизировать через raycastquery, за простой рейкастинг тебе быстро прилетят пропуки, как только количество рейкастов за кадр приблизится к 1000, а цпу вместо полезной работы все больше будет обслуживать аллокации
>>1086146 На 100000 рекастами и не надо пользоваться, там другие алгоритмы уже. Поля векторов, карты высот, отряды с лидерами, боиды, астары по клеточкам в конце концов. Можно сделать простенький свой райкаст по аналогии с вульфенштейновским - там очень простая математика рассчета пересечений с сеткой. Если уж никак без рейкастов, то батчить, кидать луч раз в 1-2 секунды.
>>1086133 ECS уже не столько актуально с точки зрения производительности. у современных процессоров и так больше кеши. любой, даже самый неоптимизированный ООП код, на современном процессоре будет выполняться быстро, если не нужно вычислять миллионы одинаковых операций. проблема производительности никогда не была в поведении игры, она в ядре движка. для того, чтобы оптимизировать ядро, не нужно заставлять пользователей переделывать все на ECS, нужно просто использовать data oriented дизайн для внутренних стуктур данных. то есть вместо массивов структур нужно использовать структуры массивов, линейность в памяти не имеет значения, тк кеш обновляется случайными страницами памяти, важно только то, чтобы в страницу кеша статистически больше попадало объектов.
>>1086149 >На 100000 рекастами и не надо пользоваться Очередной проход в "нинужно", никто не сомневался >Поля векторов, карты высот, отряды с лидерами, боиды, астары по клеточкам в конце концов. Ну конечно, ведь именно для этого существуют движки, чтобы ты писал сложные алгоритмы для починки уебанства, которое родили на похуй и не запариваясь, и изобретать которые было бы не нужно, если бы кое-кто не сделал из апи движка variant-нетипизированный пиздец. >Можно сделать простенький свой райкаст по аналогии с вульфенштейновским А можно просто починить апи (или использовать движок с нормальным апи) и не надо будет изобретать простенький рейкаст, реализовывая дополнительный физический движок для отслеживания столкновений. >там очень простая математика рассчета пересечений Если в этой "простой" математике не фигурируют деревья с быстрым поиском - то я сильно сомневаюсь что такое отслеживание коллизий будет дешевле по производительности вызовов direct space со всеми его аллокациями на мусорные variant словари, а если они там представлены - то такую математику простой не назовешь.
>>1086157 как раз octree можно сделать на компонентах и вынести его в unity job да ещё оптимизировать burst'ом - вот тебе и пример "невидимых сущностей"
>>1086157 Ну да, мне сложно писать все за автора движка. Я делаю игры, а не октодеревья для реализации того что и так блять встроено в физический движок(те самые деревья), обеспечивая аналогичную производительность кустарному решению, но с маленьким ньюансом в виде того что оно спрятано за ублюдочным, срущим аллокациями апи. При чем годот в этом плане абсолютно уникален, только он догадался превратить апи движка в вариант месиво только ради того чтобы любимая игрушка хуана под названием gds продолжала свой убогий жизненный цикл
>>1086164 Тебе и не нужно писать ничего за автора движка, автор писал движок общего назначения, у тебя уникальная ситуация 1000000 объектов, встроенными физ движками это не симулируется, значит пишется свой облегченный. К чему ты вообще годот приплел- непонятно, у тебя шиза какая то видимо. Кстати, тащи пруфы с профайлерами и отладчиками что аллокации занимают какое то значимое время, иначе пиздабол.
>>1086165 > 1000000 объектов В какой момент вызов рейкаста превратился в обьект? Ну не считая того что апи годота возвращает нетипизированный словарь в качестве результата, но это конечно половые проблемы исключительно годот-апи. Мы вроде как начали с обсуждения безобидной функции рейкаста, которая в нормальных движках создает структуру или линейный массив структур >К чему ты вообще годот приплел Ну так годотю ж обсуждали. У тебя контекстное окно переполнилось? >Кстати, тащи пруфы с профайлерами и отладчиками что аллокации занимают какое то значимое время, иначе пиздабол. https://sampruden.github.io/posts/godot-is-not-the-new-unity/ Советую ознакомиться, занимательнейший документ
>>1086169 >В какой момент вызов рейкаста превратился в обьект? У тебя лошадь и телега местами перепуталась. Очевидно, у тебя проблема X Y. Какую задачу ты пытаешься решить для 100000 объектов рейкастом?
>>1086174 Ну так это для юнитидаунов, их проблема. Им говорили не брать C#. Я вот думал а чего это вдруг аллокация чего то стоит, это же просто увеличение указателя на число. А потом вспомнил что в этом недоязыке же потом все нулями заполняют,даже если потом переменные это перезапишут, ололол
>>1086172 >Какую задачу ты пытаешься решить для 100000 объектов рейкастом Можно взять классическую буллетхелл проблему, и например и сделать каждой пульке коллизию на рейкастах, это достаточно удобно, а сами пульки рисовать средствами visualserver/renderingserver. Аналогично рейкаст-стрельба моментальными пулями без баллистики. В нормальном движке это делается без проблем упомянутым тобой апи, а в годоте это делается нодой, чтобы скомпенсировать уебищность апи движка в разрезе рейкаста от хуана. >>1086173 Затем что если бы ты делал игры на годоте, то знал бы что gdnative/gdextension - это единое апи для всех языков. Да, для с++, для rust, для c# и для gds - будут одни и те же проблемы с тоннами мусорных аллокаций
>>1086176 >Можно взять классическую буллетхелл проблему Можно. Но вот незадача, в буллетхеллах 100 пулек, а не миллион. >и например и сделать каждой пульке коллизию на рейкастах, это достаточно удобно, Зачем, если это делается элементарно через радиусы и distance_squared >Аналогично рейкаст-стрельба моментальными пулями без баллистики. Классно, но причем тут миллион? А если у тебя 100 выстрелов в кадр то ты хоть нодой можешь делать. > в годоте это делается нодой, чтобы скомпенсировать уебищность апи движка Но ты же шизофреник, потому что только что писал про апи raycastquery ))))
>>1086175 >>1086178 ты уводишь тему в сторону пытаясь найти в годоте хоть какие-то плюсы чтобы оправдать его перед юнити. нехорошо. займись чем-то одним
>>1086178 Я принес тебе пруфы. То что там используется с# - не имеет значения, потому что управляет аллоцированными variant массивами апи движка, а с# маршаллинг задействуется только в момент извлечения из variant словаря значения хита(чего в тесте нет). Если тебе мало - ну окей, чем больше пропукивающего говна на годоте будет, тем может быстрее дадут пизды хуану чтобы тот апи переделал
>>1086179 а кто тебе сказал что технология должна обязательно работать на пределе возможностей, иначе она "нинужна"? ецс отлично работает и с сотней объектов
но даже если взять среднюю 3d-сцену, там будут не сотни, а тысячи сущностей.
годот же на тысяче нодов уже начинает пропукивать и приходится придумывать всякие ухищрения типа использования рендерсервера, C++ библиотек и т. д.
>>1086175 >Ну так это для юнитидаунов, их проблема. Им говорили не брать C#. щас бы говорить про шарп, на фоне питонокалла, который вообще-то по своей философии самый медленный язык (вот нах вообще питон брали для скриптов? взяли бы какой-нибудь JS)
>>1086179 >Можно. Но вот незадача, в буллетхеллах 100 пулек, а не миллион. Ржомба >Зачем, если это делается элементарно через радиусы и distance_squared И сколько твои радиусы будут считаться с O(n²) сложностью, шиз? >Классно, но причем тут миллион? А если у тебя 100 выстрелов в кадр то ты хоть нодой можешь делать Почему именно 100? 100 выстрелов это перестрелка из 3 мобов, а на 20 мобах у меня игра будет превращаться в слайдшоу? Охуенно придумал бро >Но ты же шизофреник, потому что только что писал про апи raycastquery )))) Квери по итогу выйдет немного дороже нод при сопоставимой сложности организации пропускания всех игровых рейкастов через 1 квери, потому это конечно в некоторой степени компенсирующий выход, но я предпочел сделать на нодах в виду наибольшей оптимизированоости
>>1086185 >Ржомба тебе не нужно считать каждую пулю. тебе нужно считать направление пуль - иначе это не булетхел а хуита. Все пули в булетхелах летят по определенным игровым правилам чтобы игрок мог на них реагировать.
Так что на экране у тебя может быть тыща пуль, а в логике ты просто сложил два вектора, плюс добавил в вершинных шейдерах разброс
>>1086145 > - это ООП с паттерном компонент, которое маркетологи обозвали ecs для повышения продаж Какое реальное екс? Что это значит?
У нас есть ентити, компонентя, системы - екс, как это не является екс? Напиши почему это не попадает под реальное определение ецс, какое реальное определение ецс и где с ним можно ознакомиться.
>>1086150 > ECS уже не столько актуально с точки зрения производительности. у современных процессоров и так больше кеши. любой, даже самый неоптимизированный ООП код, на современном процессоре будет выполняться быстро, если не нужно вычислять миллионы одинаковых операций. Практика с тобой не согласна.
> проблема производительности никогда не была в поведении игры
> она в ядре движка. Каким образом? У нас запущен рантайм движка и жрет 0.1мс в кадр. Ты пишешь код, какой напишешь, столько выполняться и будет. Прчм вот натурально скомпилируется и будет слаться на проц, движок тут роли не играеи.
Из движкового ты можешь что-то использовать, а что-то не использовать. Что будет считаться ядром тогда? Если я физику движка не юзаю она ядром считается или не считается, является ли она проблемой? А если я из движка юзаю только рендер? Причем делаю это прямыми командами на отрисовку? Что будет тут ядром которое мне мешает?
> для того, чтобы оптимизировать ядро, не нужно заставлять пользователей переделывать все на ECS Кто кого что заставляет делать? Есть конкретный инструментарий, ты если хочешь можешь его использовать, а если не хочешь можешь не использовать.
Всё что у тебя по факту выполняется в игре - занимает процессорное время, тебе самому исходя из этого решать что и как оптимизировать. Если ты попробуешь поделать игру и запустишь профайлер, то ты довольно хорошо поймешь что происходит и сколько твой код занимает времени, и какие то выводы это позволит сделать, ты можешь что-то попробовать, поэксперементировать, и сделать окончательные выводы, например, что никакое абстрактное неведомое ядро говно в штаны не подкидывает
> то есть вместо массивов структур нужно использовать структуры массивов Ты такой умный, наверное никто не догадался и это делается не 1 промптом. Это всё, другие оптимизации не нужны? А как конкретно соа в какой то движковой системе мне поможет при юз кейсе что я описал?(из движка юзаем только прямые команды на отрисовку через минимальное апи)
>>1086183 >а кто тебе сказал что технология должна обязательно работать на пределе возможностей, иначе она "нинужна"? Мне это сказал Кодзима на GDC 2014 >ецс отлично работает и с сотней объектов Работает, но вот ецс-сектанты то носятся с ней как с серебряной пулей. >но даже если взять среднюю 3d-сцену, там будут не сотни, а тысячи сущностей. Да не, не будет, там обычно просто один меш склееный. >годот же на тысяче нодов уже начинает пропукивать и приходится придумывать всякие ухищрения типа использования рендерсервера, C++ библиотек и т. д. Ну то есть нормальное использование подходящих инструментов - это "ухищрения".
>>1086190 никаких ецс-сектантов нет, ты просто ущемился от того, что в юнити есть ецс, а в годоте его нет. я ецс вообще не использую, просто в курсе что он имеется
годот это не подходящий инструмент для чего-то более чем "аниме-девка бегает по склеенному мешу"
>>1086186 >тебе не нужно считать каждую пулю. тебе нужно считать направление пуль - иначе это не булетхел а хуита. Игрок перемещается - держу в курсе. Он может переместиться вовнутрь потока снарядов. Делать снаряды линиями, без возможности создавать сложные визуальные структуры - можно но неинтересно. К тому же ыя делаю шутан от первого лица, где генератор буллеттов не статичен и сам перемещается по сцене непосредственно в процессе генерации пуль, что смазывает поток и не дает возможности как-либо сгруппировать пули в единое коллайд-пространство. Используя ноды-рейкасты - я могу такое сделать с терпимой нагрузкой на цпу даже в браузере.
>>1086144 > >А также допускает, что у тебя не вся игра игра на ецс. > именно так - главная фишка екс - кеш френдли. все. А любой твой пук в рандомное место массива компонент - убивает это. Как это соотносится с тем на что ты отвечаешь? Я делаю мету на ооп, ии и аниматор своим шаманством в рамках функционального программирования. А вот геймплей на ецс. Причем тут пук в рандомное место?
> главная фишка екс - кеш френдли А чем тебе просто СОА не угодил без ецса поверх? Это тоже кэш френдли и без всяких ецсов поверх. Подсказка - ецс это архитектурный паттерн.
> не надо рассказывать про какое-то там удобство, геймдизайнеров - это все жопа. > для дизайнера - миллион каких-то кирпичей - хуй знает как из этого говна собрать орка или сундук. Каким оьразом инструментарий для геймдизайнера и ецс связаны? Ты можешь геймдизайнеру что хочешь выдать. Можешь и напрямую ецсные компоненты - разницы по сравнению с обычными компонентами никакой.
> удобства нет - в дебаге это полная жопа - потому что у тебя поток каких-нибудь Transform и ты просто не можешь узнать почему конкретно этот Transform двигается вот сюда, а должен был вот туда. Как жаль что никто об этой проблеме не думал и не догадался сделать нормальный дебаг(в юнити ецс есть ентити журналинг и инспекторы где все находится и позволяет быстрее найти причину, на проектах с другими ецс часто есть самописные тулзы)
>>1086185 >Ржомба Открой популярные тайтлы и проверь. >Зачем, если это делается элементарно через радиусы и distance_squared >И сколько твои радиусы будут считаться с O(n²) сложностью, шиз? Ты ебнутый? Ты пульку с пулькой коллайдишь в буллет хелле? Или таки с одним игроком? >Почему именно 100? 100 выстрелов это перестрелка из 3 мобов У тебя моб стреляет 30 выстрелов В КАДР? Ты ебнутый? Это даже визуально не отобразить чтобы игрок мог это воспринять. Даже если взять какой нибудь 6стврольный вулкан который делает brr brr, там логичнее целую очередь одним спрайтом и одним конусом обсчитать. Но даже там скорострельность 6000RPM, т.е. 100 выстрелов в секунду, то есть примерно ЕДИНИЦЫ выстрелов в кадр, карл! А обычные автоматы, пулеметы раз в 10 медленнее.
инструмент есть и им пользуются, и у него есть минусы - но не те, о которых ты говоришь. потому что ты не имеешь представления о том, о чём пишешь. так что лучше не пиши вообще
если в движке оптимизированное обновление трансформаций объектов, то какая разница как их обновлять, через ECS или нет. но в том то и дело, что unity предлагает только один быстрый путь обновления через ECS, а остальные пути - медленные.
>>1086195 >Ты ебнутый? Ты пульку с пулькой коллайдишь в буллет хелле? Или таки с одним игроком? Пулька коллайдится с 1. Окружением 2. Интерактивными обьектами которые держит игрок 3. С игроком Достаточно первого пункта чтобы понять где эта тема не выгорит любому кто хоть немного понимает в геймдеве. В системах частиц применяют кастомные гпу-солверы коллизий с специально подготовленной геометрией на сцене, а на цпу применяют функционал физдвижка, который даст наилучшую производительность (если не будет обосран хуевым апи, как в годоте) >Открой популярные тайтлы и проверь. Какие-то ноунеймы. Фури нет, шутерного соулслайка с плазменным оружем (забыл как называется) тоже нет. >У тебя моб стреляет 30 выстрелов В КАДР? Суммарно моб может сгенерировать до 30 буллетов за 2 секунды, выйдя на максимум в 70 +- с учетом того что буллеты продолжают жить в физическом мире пока куда-либо не попадут или не исчезнут по лайфтайму. В процессе их лайфтайма нужно у всех проверять коллизии, потому что обьекты двигаются и могут зайти в поток буллетов. Если выстрелов много, стрелок двигается а снаряды достаточно медленные - группировать их невозможно.
>>1086199 Ой, сорян, зря быканул >>1086209 , все же еще хуже, ты так и не понял почему создание потока буллетов невозможно, ведь ты не понимаешь концепции движения генератора частиц в мировых координатах
>>1086213 Сорян, но я в отличии тебя знаю что такое аналитическая геометрия, конус, сектор. А ты конечно продолжай брутфорсить рейкасты и греть атмосферу.
>>1086216 Какая разница кого ты как называешь. Проблема в том, что годоти отпетушили друг друга в своем треде, а теперь пришли сюда и опять раскидываются банами. В чем причина этого феномена?
>>1086223 это не было бы проблемой, если бы трансформации хранились в структуре массивов, потому что даже прыжки по иерархии подтягивали бы большинство данных в кеш.
>>1086229 Берешь 100 лифтов, а в каждом по 20 кнопок и обезъянка их нажимает. Ну вот и теперь смотришь что будет с трансформами кнопок, если каждый лифт едет со своей скоростью в свою сторону.
>>1086229 вот я изобразил разницу между локальностью и линейностью компонентов (так реализованы архетипы во всех ECS). линейность избыточна, не дает никаких преимуществ и сильно усложняет архитектуру. для локальности компонентов не нужно даже ECS, потому что она может быть скрыта в ядре движка и предоставлять обычный ООП интерфейс.
>>1086238 На 22 минуте есть еще один партикловый колизионный серун. И ты учитывай что у игрока тоже есть партиклы с коллизиями. Плюс в боссы не попали мобы, которые тоже нормально так высираются партиклами, я просто уже не найду нужный футаж, но по памяти припоминаю что срут они нормально. Бюджет в 2к активных партиклов проверяющих коллизию на сцене должен быть заложен. У меня в игре максимум партиклов около трех сотен, но у меня есть дополнительная рейкаст нагрузка (спрей аима, который наводит партиклы только когда враг видим, рикошеты партиклов от стенок), в нативном клиенте партиклам можно даже активировать освещение, три сотни омнилайтов годот тянет хоть и с каким-то умопомрачительным количеством dc
вообще пользоваться годотом и сидеть в годотреде /gd довольно сложно
нельзя обсуждать свои проблемы, потому что если недостаточно восторженно написать про годот, вахтёр отрепортит за "движкосрач". он вообще там круглосуточно сидит и репортит все посты кроме своих
поэтому вместо обсуждения движка годоти пишут пространные простыни об использовании синглтонов в мультиплеере или как устроен ецс и могут делать это месяцами
>>1086244 Ну нравится мне омнилайт, нихуя с собой поделать не могу. Можно конечно блум отрисовать, но мне омнилайт нравится больше. Было бы заебись, если бы наконец появился отложенный рендеринг, но а пока имеем что имеем.
>>1086236 > локальностью и линейностью Выдуманные тоьой термины.
Вернее локальность и линейность есть, но они не значат то что ты говоришь и даже пересекаются в олном месте, потому что линейность гарантирует локальность.
> линейность избыточна, не дает никаких преимуществ и сильно усложняет архитектуру. Ага, целый один индекс вместо плавающего количества разных(что в теории решается кодогеном, конечно, но все же это лишнее усложнение) заставляет хранить
>>1086254 в моём посте не было ничего про это - выдаешь желаемое за действительное
было про сумасшедшего вахтёра - вредного деда-красноглазика
почему-то сторонники опенсорса зачастую такие токсичные шизы, которые сами себе палки в колёса вставляют. а потом удаляют целые репозитории или собственные игры со стима когда в голову внезапно ударит
>>1086261 Верь в это. Вся такая вера основывается на незнании, какое же там гумно в этом закрытом коде. Кто видел закрытые колбасные заводы, колбасу больше не ест
>>1086249 >плавающего количества разных компилятор выражения обращения к массиву вида foo[bar] трансформирует в одну инструкцию, у которой эффективность такая же, как у обычного указателя.
кстати, до популяризации unity ecs, все ecs движки имели первую архитектуру. это именно unity популяризовал архетипы.
>>1086270 > компилятор выражения обращения к массиву вида foo[bar] трансформирует в одну инструкцию Причём тут инструкция, где я говорил про количество инструкций?
Я говорю, что система более сложная когда у тебя разные индексы и требуется эти индексы хранить и менеджить, и доверху еще и обертку как то генерировать чтобы ты из кода мог это дергать нормально.
> кстати, до популяризации unity ecs, все ecs движки имели первую архитектуру. Спарс сет: ну да, пошел я нахуй
>>1086275 так как индексы компонентов не меняются, в отличие от архетипов, можно в системах "регистрировать" нужные компоненты один раз. например, в системе движка отвечающую за рисовку можно сделать список struct EntityId { int transform_id, renderer_id } и заполнять один раз при изменении компонентов (в событии каком-нибудь).
это все легко реализовать поверх существующей компонентной архитектуры unity и получить производительность приближенную к архетипному ECS (ну может в искусственных тестах будет хуже).
Почему SetParent лучше add_child/remove_child У первого семантика динамического изменения дерева, у второго - добавления неоднородных элементов в коллекцию. То есть элементов, которые ничего не знают о контейнере, в которых их добавляют, но узлы знают что их добавляют к родителю, и у них есть свойство parent, поэтому семантика неоднородной коллекции в данном случае является неправильным дизайном. SetParent в одном методе заключает все операции с деревом. add_child/remove_child искусственно их разделяет на 2 этапа (что еще медленнее), и получается что-то вида this.node.parent.remove_child(this);
>>1086488 А как в Unity отделить объект от дерева сцены? Это вообще возможно? Я нашёл только один метод "DetachChildren()", но, кажется, он помещает всех детей под root, т.е. не выгоняет их из дерева.
>искусственно их разделяет на 2 этапа В Godot 4 добавили метод Node.reparent(new_parent: Node), которая сразу перемещает ноду (на которой этот метод вызывается) к указанному в аргументах родителю. Можешь воспринимать её как прямой аналог SetParent(), если хочешь... Исходников Unity у тебя всё равно нет, чтобы сравнить реализации.
Метод Node.remove_child() нужен для того, чтобы остановить обработку ноды в рамках дерева сцены. То есть нода вне дерева сцены не отображается, не влияет на физику, не принимает ввод с клавиатуры и т.д., но продолжает существовать в RAM и может отвечать на пользовательские запросы и пользовательские обработчики событий. Я даже не представляю, как реализовать что-то подобное в рамках API Unity...
По идее, Godot может иметь несколько деревьев сцены одновременно, но можно ли (и насколько сложно) сделать это на практике - не знаю, не пробовал. Т.к. у любой ноды есть метод get_tree(), возвращающий значение только пока нода в дереве, и, значит, ноды могли бы иметь разные деревья сцен в одном рантайме. Хотя, для по-настоящему независимых деревьев сцен нужно как-то избавиться от всех движковых синглтонов...
>this.node.parent.remove_child(this); Что это? Код Unity? Если тебя волнует >(что еще медленнее), То нужно смотреть в исходники Godot на GitHub, а не гадать по API Unity. Там они много чего меняли за последние годы, оптимизируя (ускоряя) взаимодействие с деревом сцены.
Я подозреваю, что "дерево сцены" в Godot и Unity вообще имеет разное значение. Как я понимаю, в Unity "дерево" касается только transform, а всё остальное от него никак не зависит. В Godot же, напротив, от "дерева" зависит вообще всё, за редким исключением (когда ты ставишь галочку top_level, например, или используешь CanvasLayer, и т.п.). Можно сказать, что дерево Unity - слабое, а дерево Godot - сильное. Тем более что в Godot нет понятия "компонента" - ближайший аналог "компонента" - это дочерние ноды в дереве. И ограничение "1 нода = 1 скрипт" - это тоже следствие сильного дерева...
Алсо, >элементов в коллекцию Дерево сцен в Godot под капотом разделяется на несколько независимых списков, которые обходятся движком в более эффективном режиме, чем если бы он постоянно бегал по дереву. То есть, например, физические ноды в дереве - это не то же самое, что реальные физические сущности в физическом движке. Аналогично с графикой, скриптами и т.д. Всё под капотом оптимизировано и "дерево сцен" - это только абстракция над внутренностями движка для удобства пользователя, а не реальная структура работы движка.
Но я, если честно, не сильно копался в исходниках, только поверхностно глядел когда-то.
>>1086507 >SetParent(null) В документации Unity данная фича никак не описана, а проверить я не могу.
Но ладно, а если нода сделает так сама с собой - кто её возвращать обратно будет-то?
Я забыл написать, что >>1086488 >this.node.parent.remove_child(this) На GDScript правильная запись выглядит так: >get_parent().remove_child(self) То есть "убрать себя из родителя".
Но! Так делать обычно не рекомендуется. То есть ноды обычно должны управляться своими родителями, не трогая методы родителей. Это родитель вызывает сам у себя: >remove_child(my_node) А потом продолжает работать с этой нодой по ссылке, остающейся в my_node. Совсем не обязательно добавлять эту ноду под какую-то другую ноду.
Поэтому новый метод будет выглядеть так: >reparent(new_parent) Только когда нода сама себя куда-то перемещает, а у её предка будет: >my_node.reparent(new_parent) В общем, не вижу в этом никаких проблем. Сама себя нода извлекать из дерева лишний раз не должна, ведь она может "потеряться" из дерева (если ни у кого нет на неё ссылки), но если она планирует сама себя куда-то переставить - ОК, можно использовать этот новый метод. Стандартные ноды не удаляются Godot автоматически, т.е. пока не вызовешь queue_free(), они будут висеть в памяти, даже если никто на них ссылки не имеет...
>>1086505 >Это вообще возможно? Нет. В unity нельзя создать объект/компонент не привязанный к сцене. Это ограничение движка. SetParent(null) меняет родителя на сцену.
>reparent Это обертка удаления, добавления. add_child, remove_child не должно быть публичным API. Это плохой дизайн. У узла уже есть родитель, если у тебя есть дочерний узел, то у тебя есть и родитель. Проблема в том, что в remove_child можно передать узел, который не является дочерним, это лишний источник проверок и ошибок. С SetParent это просто невозможно.
Мельком почитал недавнее обсуждение про пульки в буллет-хеллах на рейкастах (лол).
Стесняюсь спросить, но уважаемые движкосрачеры вообще в буллет-хеллы играли? Или хотя бы классические сайд-скроллеры с много пыщь-пыщь на экране. Мне просто очень интересно, как движкосрачер с миллионами пулек в секунду представляет себе игрока в свою игру про пульки. Или он не для игроков это делает, а просто чтоб было? Чтоб можно было написать "нашу игру невозможно пройти до конца" в промо материалах? Чтоб игрок отлетал на первой секунде после начала игры?
Я вот, честно, не люблю этот жанр(ы) и никогда всерьёз не играл в них. У меня тупо недостаточно быстрая реакция, и я слишком быстро раздражаюсь из-за своих ошибок. Короче, этот жанр не для меня и делать игру в этом жанре я никогда не буду. И я думаю, что чтобы рассуждать о технических моментах таких игр, нужно быть как минимум хорошим игроком в них, а лучше - быть фанатом жанра. Т.е. только с опытом игры в такие игры приходит понимание, что там должно быть и как. Чужие слова о том, как что-то где-то должно быть, без подтверждения на опыте, ничего не стоят.
Аналогично со всеми остальными gameplay-first жанрами игр. Если вы не умеете играть, не разбираетесь в играх жанра, не любите их как игрок - какой смысл что-то писать о технических нюансах? Вы не сможете сделать хорошую игру в этом жанре, даже если у вас будет бесконечная скорость выполнения кода, бесконечное количество оперативной памяти и бесконечное время на поиск алгоритмов...
Хуан применил семантику добавления элементов в коллекцию к типу данных "дерева", который не является просто коллекцией узлов. Это демонстрирует его несостоятельность как программиста.
>>1086515 >Это обертка удаления, добавления. Ну да, ты прав, в исходном коде так: >data.parent->remove_child(this); >p_parent->add_child(this); Но это не важно. Потом могут оптимизировать.
>что в remove_child можно передать узел, который... >>1086516 >если я вызову add_child с узлом, который... Зачем ты такими вопросами задаёшься вообще?
Накидал тебе схему в пейнте для понимания сути.
>>1086518 >к типу данных "дерева" "Дерево сцены" - это не тип данных.
>>1086517 Анон, у тебя с головой все норм? Рассказал про свою нелюбовь к жанру, потом ее спроецировал на меня (я тот кто рассказывал в деталях про рейкаст нодой), выдумал себе что-то и сидит довольный. Если что - я буллетхелл привел в качестве всем понятного примера, у меня в игре плазмоган с очень быстрой стрельбой есть как один из видов вооружения, который в виду того, что подразумевает большое число интерактивных проджектайлов, да еще и делается на годоте - требует особого подхода чтобы игра не косплеила хрюкающую собаку, когда таких стреляющих плазмоганов на сцене будет больше 10 штук. Ну а рейкасты это самый дешевый способ проверить коллизию, если нет возможности посчитать коллизию математически (а ее нет в моем случае).
>>1086519 >Зачем ты такими вопросами задаёшься вообще? Как зачем? Чтобы показать некомпетентность главных разработчиков годота.
Зачем нужно удалять часть дерева, и иметь все связанные с этим проблемы? Что это даст? В unity просто выключаешь флажок активности объекта и все, это то же самое.
>>1086520 >Рассказал про свою нелюбовь к жанру Я рассказал, что не понимаю этот жанр, потому что не умею/не могу в него играть.
>потом ее спроецировал на меня Никуда я не проецировал. Просто такое ощущение, что местные срутся об играх, в которые они не играли, не играют и не будут играть. Типа "а вот в симуляторе песка миллионы песчинок - как %движокнейм% это потянет (даже если потянет, делать не буду)?" - в чём смысл такого срача? Напоминает мерянье тупыми бенчмарками, где на реальное качество продукта всем насрать, пока у него больше попугаев на каком-то специально созданном бенчмарке.
>у меня в игре плазмоган с очень быстрой стрельбой >стреляющих плазмоганов на сцене будет больше 10 штук Ну вот тут возникает вопрос к тебе: а ты уже пробовал в это играть? Чтобы там было "больше десяти быстро стреляющих плазмоганов"? Или просто нафантазировал и теперь ищешь какое-то супер-оптимальное решение, не сделав даже одного, самого медленного плазмогана?
>рейкасты это самый дешевый способ проверить коллизию Главная проблема рейкаста в том, что он имеет бесконечно малую толщину. Тебе там нужен как минимум ShapeCast3D со сферой. Но если твои снаряды движутся медленно, то касты могут быть избыточными - они нужны для моментального определения пересечения, а не когда снаряд летит ползёт через пустоту минимум 30 секунд или больше...
>>1086526 >Зачем нужно удалять часть дерева, и иметь все связанные с этим проблемы? Зачем нужны молотки и гвозди, если можно случайно ударить себя по пальцу?
>>1086527 >Ну вот тут возникает вопрос к тебе: а ты уже пробовал в это играть? Чтобы там было "больше десяти быстро стреляющих плазмоганов" Скажем так, я не просто пробовал - я залипал в это говно большую часть детства и юности, я понимаю какой геймплей делаю >Или просто нафантазировал и теперь ищешь какое-то супер-оптимальное решение, не сделав даже одного, самого медленного плазмогана? Это супер оптимальное решение существует только потому что у годота супер неоптимальный рейкаст через апи. В других движках так ебаться не надо. >Главная проблема рейкаста в том, что он имеет бесконечно малую толщину Мне не нужна идеальная точность, снарядики не настолько большие чтобы это имело видимый эффект непопадания, да и шейпкасты достаточно дорогие, без возможности оптимизации относительно длинным лучом для предсказательного столкновения. >ползёт через пустоту Еще один. Снаряд не ползет через пустоту, в этой пустоте на пути снаряда в любую секунду может материализоваться обьект, который этот снаряд перехватит, и таких активных обьектов на сцене много.
>>1086509 > В документации Unity данная фича никак не описана, а проверить я не могу. Пикрил. У тебя не получилось в гугл написать?
> Но ладно, а если нода сделает так сама с собой - кто её возвращать обратно будет-то? Ну мы тут всё так проиграммисты, поэтому должны понимать, что это не "нода делает сама с собой", а процессор выполняет некий код. Можешь инициировать выполнение этого кода где угодно.
Например ну я не знаю someTransform.SetParent(null), где someTransform это ссылка на нужный нам объект - которыц ты можешь прокинуть через инспектор, или найти на сцене, или при кодов инстансе сразу вытащить из созданного объекта.
>>1086528 То есть в годоте нет флажка деактивации объекта, и чтобы выключить объекты нужны удалять поддерево и где-то его сохранять? Пока узлы являются частью дерева, их время жизни управляется сценой. А так тебе самому надо подчищать эти узлы. Очередная ошибка архитектуры годота. А все потому, что Хуан - некомпетентный самоучка.
>>1086547 >чтобы выключить объекты нужны удалять поддерево Всё зависит от того, что ты хочешь "выключить". Есть куча разных способов что-то отключить и обратно включить. Вырезание части дерева просто делает всё сразу, что удобно для прототипирования.
>их время жизни управляется Ну, в релизной версии ты, конечно, должен всем чётко управлять и не допускать никаких утечек. Но до релиза ты всё равно не доживёшь, а время жизни прототипа не позволяет ему насрать в оперативке слишком сильно. Все потерянные ноды удаляются из памяти после завершения процесса движка.
>>1086541 >Пикрил. Вот сначала кликни на эту ссылку, прочитай статью, а потом покажи, где там написано, к чему должна привести передача null. Или это такая фишка юнити - догадываться о недокументированном поведении? Которое могут произвольно сломать в следующей версии, ничего не обновив в документации (т.к. там и не было ничего написано до изменений).
>процессор выполняет некий код Умник, а почему не "электроны толкаются между атомами кремния"?
>Можешь инициировать выполнение этого кода где угодно. Это признак говнокодера, превращающего код в нечитаемую лапшу.
>>1086538 >неоптимальный рейкаст через апи Раз ты знаешь, что нужно исправить, почему не исправишь? Исходники открыты и лицензия допускает делать с ними что угодно. Бери и оптимизируй. Потом будешь хвастаться, как ускорил рейкасты в движке в десять тысяч раз и подарил эту оптимизацию всем юзерам движка...
>>1086549 >Раз ты знаешь, что нужно исправить, почему не исправишь? Потому что это невозможно. Я только иду на ухищрение чтобы значительно смягчить эту проблему, но полностью от нее избавиться невозможно, покуда апи такое смешное.
>>1086549 > Вот сначала кликни на эту ссылку, прочитай статью, а потом покажи, где там написано, к чему должна привести передача null. Или это такая фишка юнити - догадываться о недокументированном поведении? Которое могут произвольно сломать в следующей версии, ничего не обновив в документации (т.к. там и не было ничего написано до изменений). Всм? Тут абсолютно чётко написано что оно делает - устанавливает родителя. С картинками причем, пикрил.
Если родителем установить никого - значит родителем будет никто. Для дебилов: если родитель никто - например у MainCamera на скрине нет родителя.
> Умник, а почему не "электроны толкаются между атомами кремния"? Потому что уровень зависит от задачи и скоупа целей. Если мы занимаемся программированием игр на юнити серьёзно, то мы должны понимать что происходит с сишарп кодом в общих чертах, что такое mono и il2cpp, и что попадает на процессор(знание конкретных процессорных инструкций не обязательно).
Если бы у тебя оно было - ты бы не рассуждал сейчас абстрактно о вещах которых не понимаешь в контексте который отношенич к реальности не имеет. Какое нахуй "кто её возвращать обратно будет" - кто придумаешь тот и будет. Охуеть.
> >Можешь инициировать выполнение этого кода где угодно. > Это признак говнокодера, превращающего код в нечитаемую лапшу. Гений, тогда абсолютно все это говнокод потому что что угодно попадает под определение "что угодно".
У меня в 2022 году на Godot 3 без проблем получалось 1200 рейкастов (матрица 40x30) за один тик физики (30 tps) на ядре процессора 2007 года (около 3 ГГц). Использовал только одну RayCast ноду и двойной цикл for на GDScript. Интересно, сколько рейкастов можно сделать на современном ЦПУ в Godot 4?
>>1086554 В вебгл где-то 1300 в рамках одного тика 60фпс физики выжал до первых лагов. В нативном клиенте по ощущениям можно высосать раз в 5 побольше, но не проверял. Проц r7 6800h мобильный.
>>1086557 > Гугли "объектно-ориентированное программирование". Что угодно из ооп попадает под определение что угодно. Харош шизу нести, какой объект тебе надо тот пусть и вызывает код, что за тупые вопросы
> По-твоему, SampleScene - это null? У тебя в доках написано, что в юнити есть сцены и есть объекты на сценах. Объектов не на сценах нет.
>>1086549 > Раз ты знаешь, что нужно исправить, почему не исправишь? Исходники открыты и лицензия допускает делать с ними что угодно. Бери и оптимизируй. Потом будешь хвастаться, как ускорил рейкасты в движке в десять тысяч раз и подарил эту оптимизацию всем юзерам движка... Любой действие обуславливается экономикой.
Значит трудозатраты не стоят того, чтобы этим хватсаться и у себя применять - слишком малая награда.
>>1086565 >слишком малая награда Какая награда нужна в сфере развлечений, где движки делают потому, что это интересно и весело, и игры разрабатывают чисто чтобы пофлексить перед друзьями своими бесполезными творческими навыками?
Хаха, лол. Оказывается говнотский forward+, который Хуаня писал 5 лет, работает только на ПК! На всех остальных платформах старый рендер без фич. Даже и тут наебали.
>>1086582 >На всех остальных платформах старый рендер без фич. Вщет mobile это тоже forward+, просто это такой форвард который совместим по фичам с gles. За это можешь сказать спасибо говнофонам, которые до сих пор рабочего вулкана не имеют. Гарантированно вулкана нет только в вебе.
>>1086589 В статье которую ты скинул мои слова подтверждаются. Мобайл и глес уравнены по фичам, но при этом у вулкана свежее архитектура и он обходит глес по производительности, если есть поддержка этого апи. Все это создано чтобы покрыть побольше устройств (в части которых вулкан хуево или вовсе не реализован и там происходит фоллбэк на глес). Но тебе вообще никто не мешает собрать forward+ билд под любую платформу, просто есть риск что на части мобилок рендер отвалится или будет артефачить из-за того что разрабы конкретного чипа хуево внедрили апи вулкана.
>>1086598 что в словочетании "ПОДДЕРЖКА платформы" тебе не понятно? пердолька, которую надо компилировать, это не поддержка. по факту годот поддерживает одну платформу, остальное это поддержка уровня "у меня все 3 года назад работало, компилируйте и решайте проблемы сами".
>>1086644 >пердолька, которую надо компилировать Не надо там нихуя компилировать. Просто берешь и без задней мысли собираешь билд через экспорное меню forward+ на любую платформу с вулканом, включая мобилки. Даже фоллбек на глес будет работать. Впрочем, если ты ссышься компилировать годот - то тебе нужен баринский движок, в котором все уже есть и скомпилировано заранее.
>>1086637 нормальные (нормисоблядские) языки не нужны в геймдеве и больше вредны пример юнити это показывает там урезаный C# в годоте есть лучший язык (c++)
>>1086644 никакого словосочетания "поддержка платформы" в предыдущих сообщениях не было, ты начал маняврировать то что ты описал это обычное поведение любого софта буквально единицы софта в мире гарантируют строго математически какое то поведение через пруверы любая юнитя точно так же вывалит тебе какой то билд который однажды где то возможно запустился, а сколько в нем еще багов никто не знает. а если ты им напишешь они с большой вероятностью пошлют тебя с пометкой wont fix
>>1086658 ну тут как раз выступали в защита годот как раз из-за "поддержки" платформ, и что все будет просто работать. а теперь оказывается поддержка это не поддержка.
>>1086656 говняшку кинули microsoft, в виде взятки за добавление C# в годот. так как нужно было отрабатывать говняшку, то C# добавили самым тупым способом, какой легче было реализовать без переделки движка.
разработчикам годот всегда было пофиг на пользователей их движка, а сами они им не пользуются. для них всегда это было коммерческое предприятие. это движок, который на витрине выглядит вкусно, а в реальности продукт движкосодержащий
>>1086679 Хуан написал миллион строк кода и подарил человечеству, в чем скам? Ни разу не донатил Хуану, но обмениваюсь кодом с другими годотерами, богатеем вместе взаимопомощью
>>1086684 какая разница сколько там строк, если результат - никакой. разработчики движка и фанаты занимаются агрессивной рекламой, рассказывая что годот это лучший бесплатный движок, хотя это не так. из-за чего другие более достойные движки с более достойными разработчиками не получают поддержку. да, это обман в каком-то смысле. это типа как корпорация teranos, которая обманывала инвесторов. за такое судят.
>>1086688 пример с C# показательный. они поспешили добавить язык для галочки, чтобы потом трубить что у них в движке C#, как в unity. они где то говорят о производительности (вернее, ее отстутсвии), или о нюансах их реализации C#? конечно же нет. что это, если не обман?
честный разработчик не стал бы так поступать, не стал бы добавлять язык таким способом, который делает его непригодным для использования. они сделали это с одной целью: пустить пыль в глаза, обмануть пользователей.
пока честный разработчик полирует фичу годами, разработчика годота трубят "у нас есть фича А, у нас есть фича Б". а как реализованы эти фичи никого не волнует. это привлекает к их движку "инвесторов", которые верят в обещания разработчиков и спонсируют их.
>>1086688 Результат заебись, есть отличный движок который скачиваешь и делаешь игру через 5 минут. Это объективно лучший движок по совокупности. Искали всем тредом, никаких более достойных не нашли. Если в каком то движке одна фича лучше, то десять других отстутствуют и так далее.
>>1086720 >а что, там нет типа variant и нет пропуков? Вариант на данный момент смертельно может влиять только при рейкастинге апишкой. Есть еще кое-какое проблемное апи, но я его не юзаю. Формально - апи страшное с точки зрения аллокаций. По факту - если на горячем пути зная проблемное апи - не злоупотреблять им (инпуты с stringname, рейкасты, getnode/add/remove) - пропуков по вариант апи не будет. Но у godotphysics есть болевая точка - коллайдерную геометрию для активных ригидов нужно собирать из примитивных коллайдеров, если генерировать выпуклыши - при коллизии друг с другом они даютхрюкающую собаку (думаю именно это и было причиной тех ебейших пропуков на видосе). Но конечно можно юзать bullet/jolt и такой проблемы не будет, но мне нужна годотфизика. >>1086721 Увы, как раз наоборот - юи даже не начинал
>>1086724 >думаю именно это и было причиной тех ебейших пропуков на видосе Ты угораешь? Там у чела просто видозахват тормозит на некропеке 20 летней давности.
>>1086736 > Кстати советую тебе начать делать игры бтв Мне то зачем советы безыгорника с гта омск. А свои игры я уже все релизнул, мне уже можно и ничего не делать больше.
>>1086705 >у меня накопилась кодовая база на C# Если бы ты был настоящим программистом, то ты бы понимал, что переписать "кодовую базу" с одного императивного ЯП на другой императивный ЯП - это настолько просто, что даже тупая программа может справиться (называется транспайлер), то есть даже интеллекта для этого никакого не нужно. А уж в эру искусственного интеллекта твои жалобы на якобы неправильный язык кодовой базы вообще смешны.
>>1086746 Перепиши следующий код Classobject.gettype().methods.where(x => x.name.contains("zalupa")).foreach(x => x.invoke(Classobject)) На плюсы. Разрешаю использовать любые нейронки.
>>1086753 Тебя никто не заставлял хуевертить неоптимальный, медленный, раковый код, который еще и оказался неперносимым вендорлокнутым, кек. В разработке есть принцип использовать разумное подмножество языка, понятно что это в первую очередь выгодно в командной разработке и принцип появился еще во время c++, потому что там то как раз можно много DSL наплодить макросами и все друг друга перестанут понимать
>>1086754 >Тебя никто не заставлял хуевертить неоптимальный, медленный, раковый код, который еще и оказался неперносимым вендорлокнутым А еще каким-то образом частично оказался в 26 стандарте плюсов. Но ты продолжай свято есть устаревшее неудобное говно применять разумное подмножество функций языка, ведь писать вместо одной строчки пятьдесят - это разумно и переносимо.
>>1086737 там этот поляк собрал целую кодлу вышедших в тираж старых пердунов кто-нибудь, расскажите дедам про AI агентов и spec-coding. им пора на свалку истории достойную пенсию
у меня по задумке было неограниченное количество глаголов для взаимодействия с объектами, но в конце концов всё свелось к банальным "посмотреть", "взять", "открыть" и т. д.
но поздно переписывать, надо идти вперёд, как хуан
>>1086748 >Classobject.gettype().methods.where(x => x.name.contains("zalupa")).foreach(x => x.invoke(Classobject)) Я не разбираюсь в C# и не знаю, что ты называешь "Classobject", но вот код на GDScript: >for x in object.get_method_list().filter(func(x): return "zalupa" in x.name): object.call(x) Или можно сделать проще (читабельнее), т.к. мы всё равно не сохраняем массив: >for x in object.get_method_list(): if "zalupa" in x.name: object.call(x) На C++ такой код писать глупо, конечно. Попахивает лапшичной архитектурой твоего проекта.
>>1086754 >неоптимальный, медленный, раковый код А вдруг ему приходится работать с древним легаси? Тут скорость не важна - лишь бы работало... >оказался неперносимым вендорлокнутым Нет, создать что-то такое можно на любом языке, даже самом древнем. Но нужно ли?..
>>1086755 >писать вместо одной строчки пятьдесят А что ты там пытаешься сделать, что тебе нужно вызывать все методы, содержащие одно слово?
>"zalupa" in x.name Это, кстати, смешной исторический баг, который нашли в одной настолке в 2000-е. Там добавили способность, которая была сформулирована примерно так же - "если в названии чего-то есть zalupa, то ее мощность удваивается". По замыслу, это работало на tonkaya zalupa, tolstaya zalupa и т.д. Вот только, строгое прочтение, матчит все, как: vokzaluparka - теперь у игрока два воказала, linzalupa - теперь удвоенный бинокль Не используйте матчинг строк без нужды в геймдеве, господа.
>>1086748 Чел я в целом на твоей стороне в диалоге выше, но это полный пиздец. Такой код недопустим в реальной игре и с точки зрения перформанса и с точки зрегия поддержки.
Справдливо возразить - критикуешь- предлагай - а я и предложу - кодогенерацией абсолютно та же задача отлично решается без недостатков.
>>1086777 >не знаю, что ты называешь "Classobject" Инстанс обьекта некоего ссылочного типа >но вот код на GDScript: Анон, я отлично знаю как такие фокусы делаются в нетипизированном говне, где любой ссылочный "обьект" это по сути хэшмап, который можно перебрать. Но речь идет о нормальных языках, производительных, с настоящей типизацией. К которым сверху прикручена рефлексия, которая может сыграть некоторую роль в архитектурных решениях. И в этих языках - данные рефлексии можно кешировать (например на старте один раз выделить рефлексией разные группы методов, сохранить Method ссылки в коллекции, а затем их очень дешево инвокать, мотому что методы - часть типа, а не часть обьекта), в отличии от. >На C++ писать глупо, конечно. Поэтому я выбираю с# для скриптов, ведь на с++ писать глупо. Хотя, мейби с вводом в строй 26 стандарта - я еще разок к плюсам присмотрюсь, конечно, всех фич шарпа это не покроет, но некоторую критическую их часть - возможно. >А что ты там пытаешься сделать, что тебе нужно вызывать все методы, содержащие одно слово? Это просто пример. В боевых проектах я использовал рефлексию чтобы: Автоматически генерировать инстансы для типов, которые наследуют определенный тип. Прописывать данные в статические поля классов (костыль но работал). Свой deepclone. Для вызова конфигурируемого файловой конфигурацией поведения обьектов(пикрил) и ресолва методов. Бесчисленное Object.gettype для любых целей. Примерно такой список, который невозможно реализовать на плюсах. >>1086788 У меня нет задач под кодоген, так как я не использую рефлексию на "горячем" пути, либо кеширую ее результаты. Разумеется вот того кода у меня в рабочих решениях нет, но его некоторые части присутствуют.
>>1086797 > У меня нет задач под кодоген, так как я не использую рефлексию на "горячем" пути, либо кеширую ее результаты. Эквивалент того пиздеца что ты скинул пишется кодогеном.
>>1086813 >Эквивалент того пиздеца что ты скинул пишется кодогеном. Нахуя он им пишется, а главное зачем? Чтобы что? Ты экономишь один проход генерации кеша и ради этого ебешься с генераторами кода? Мысль конечно интересная, но мне не платят за строчки кода, даже хуже, мне ни за что не платят кроме работающей игры, а написание генератора кода на любой чих только отдаляет меня от релиза и генерирует сложность, которая мне без надобности.
>>1086815 > Нахуя он им пишется, а главное зачем? Для оптимизации и усложнения регресса(с рефлексией ты свое говно сможешь сбилдить и запустить даже если сломал его, а с кодогеном все компайл тайм)
>>1086821 >Для оптимизации Видимо оптимизации доступного мне времени на разработку, потому что перфоманс импакт мизерный по меркам поставленной задачи. >усложнения регресса Тесты писать заратустра не позволяет? И как меня спасет компилируемая природа генератора от ошибок генерации, когда генерируется не всё? А если нужно покрывать тестами в обеих случаях - зачем мне, как инди разрабу с крайне ограниченными ресурсами - платить больше?
>>1086823 > Видимо оптимизации доступного мне времени на разработку, потому что перфоманс импакт мизерный по меркам поставленной задачи. А ты проверял?
> Тесты писать заратустра не позволяет? >>1086815 > но мне не платят за строчки кода Nani!?
>>1086797 >Но речь идет о нормальных языках, производительных, с настоящей типизацией. К которым сверху прикручена рефлексия Твой высер с поиском по тсроке не имеет отношения ни к типизации, ни к производительности.
>>1086824 >А ты проверял? Что проверял? Что написать генератор это неоправданный гемор, высеры которого потом придется дружить с абстракциями кодовой базы? Конечно проверял. А если речь про закэшированные данные - единственный импакт это ресолв данных кэша по ключу, который можно дополнительно скомпенсировать используя frozen коллекции, потому что инвок methodinfo запакованный в делегат (через createdelegate) практически аналогичен прямому вызову.
>>1086831 > Что написать генератор это неоправданный гемор Я не понимаю и не умею = гемор? Так мб научиться можно.
> высеры которого потом придется дружить с абстракциями кодовой базы Чел у тебя буквально вызов метода по названию какие нах абстракции, это даже банальным интерфейсом решается.
>>1086832 Да, вот жаль его, вроде бы достаточно умный, еще немного бы подучился нормальным практикам - и делал прекрасные игры, а так, закапывает себя в багодром.
>>1086832 >Я не понимаю и не умею? Сам придумал сам разьебал. Да хочешь - пиши, я понял что ты сторонник вместо использования готовых инструментов - страдать хуйней ради непонятно чего. Мне такое не надо, я не для того использую лучший язык на планете чтобы вьебывать свое время на хуйню. >Чел у тебя буквально вызов метода по названию какие нах абстракции >это даже банальным интерфейсом решается. Интерфейс не абстракция? Как минимум обмазывать интерфейсами класс придется ручками, и методы вкидывать в интерфейсы тоже ручками. Добавить новый метод = добавь интерфейс с методом, накинь. Все ради того чтобы... ай блять, ведь мы же все равно будем резолвить нужный интерфейс через пару ключ-значение (строка -> интерфейс), надо же, мы сэкономили целое нихуя. Ну, еще получили немного компайлтайма, который опять таки гарантирует целое нихуя, если нет уверенности в корректности работы генератора.
>>1086834 > я понял что ты сторонник вместо использования готовых инструментов - страдать хуйней Как именно ты это понял? Я тебе говорю почему конкретная практика программирования говно. Готовые инструменты я использую по полной, если тебе интересно.
> чтобы вьебывать свое время на хуйню. Так ты его въёбываешь на поддержку говнокода.
> Интерфейс не абстракция? Как минимум обмазывать интерфейсами класс придется ручками, и методы вкидывать в интерфейсы тоже ручками. Добавить новый метод = добавь интерфейс с методом, накинь. Да что ты черт побери такое несёшь.
Нахуя писать вот это > Classobject.gettype().methods.where(x => x.name.contains("zalupa")).foreach(x => x.invoke(Classobject)) Если можно classObject.Zalupa()?
Если там несколько методов нужно у которых в названии zalupa, то почему бы не GetDolbloebskoeGovno<IZalupa>().zalupa(classObject) ?
При этом мы можем сделать место где будем регать разные имлементации IZalupa с методом zalupa принимающем наш тип, и соответственно все они будут вызываться по строчке выше.
И уже это будет более менее нормальный код с которым можно сделать игру, а не прототип про кубы.
Нахуя ты вообще берешь шарп со строгой типизацией еслт она тебе наэ не нужна? Бери жс тогда.
>>1086836 А, так ты другой анон, вообще отрицающий рефлексию. Я тебе уже все написал про 26 стандарт плюсов все написал. Тебе я тоже не запрещаю хуйней страдать, дрочи свои интерфейсы пока я написал 30 строчек с кешированием и пошел дальше.
>>1086838 >Твой пример юза - какой то кал. Сообщает мне это человек, который исполняет это >Если там несколько методов нужно у которых в названии zalupa, то почему бы не GetDolbloebskoeGovno<IZalupa>().zalupa(classObject) ? >При этом мы можем сделать место где будем регать разные имлементации IZalupa с методом zalupa принимающем наш тип, и соответственно все они будут вызываться по строчке выше. Мой пример использования рефлексии описан здесь >>1086797 То что я изобразил с поиском по вхождению строки в имя метода - просто пример, прикол, рофл, чтобы показать терпильность плюсовиков. Разумеется, таких подходов я не применяю.
>>1086797 > Автоматически генерировать инстансы для типов, которые наследуют определенный тип. Если активатор креейтинстанс то ок в каких то инфраструктурных штуках.
> Прописывать данные в статические поля классов (костыль но работал). Нахуя статические поля в классах? Нахуя туда прописывать рефлексией что то?
> Свой deepclone. Зачем для этого рефлексия, чтобы это супер доррго было? Что ты там вообще клонируешь клонировщикс?
> Для вызова конфигурируемого файловой конфигурацией поведения обьектов(пикрил) и ресолва методов. Где тут нужна рефлексия? Прост какая то структура данных сериализована, которые ты видимо десериализуешь рефлексией. Но рефлексия для этого не нужна.
> Бесчисленное Object.gettype для любых целей. Звучит супер сомнительно, я как тоже любитель упороться в метапрограммирование не юзаю почти никогда.
>>1086839 > То что я изобразил с поиском по вхождению строки в имя метода - просто пример, прикол, рофл Так а чё ты тогда споришь? Я говорю - это пиздец. Ты в ответ какую то шизу несешь вместо того чтобы сказать - это рофл просто демонстрационный пример.
>>1086839 Рефлексия это шизофрения, типа ты забыл какие типа у тебя в программе и что они умеют и пытаешься нащупать вслепую. Выдумали ее в кровавом интерпрайзе, какие то гении выдумали хуиту что один банк в другой присылает SOAP прям с неведомым кодом, и надо угадать что тот код вообще умеет. Короче совершенно ненужна в полностью контролируемом окружении в геймдеве.
>>1086839 >То что я изобразил с поиском по вхождению строки в имя метода - просто пример, прикол, рофл, чтобы показать терпильность плюсовиков Поэтому то тебе сразу и сказали что это надо выкинуть и переписать, а ты начал истерить про НИНУЖНО, так что молодец, ты наглядно опроверг терпильность плюсовиков.
>>1086840 >Зачем для этого рефлексия, чтобы это супер доррго было? Ну скажем так - бывает надо. Клонировщик на базе рефлексии просто самый простой в исполнении и позволяет делать кое-какую магию. >Нахуя статические поля в классах? Нахуя туда прописывать рефлексией что то? Чтобы например вшивать значения из атрибутов в статику конкретного класса. Типа, чтобы не опрашивать атрибуты типа в рантайме, а получить их сразу по статическому полю. Тоже надо. >Где тут нужна рефлексия? Прост какая то структура данных сериализована, которые ты видимо десериализуешь рефлексией. Проявил бы больше уважения к собеседнику. Я например твои высеры от и до читаю. И ты, если бы немного дольше удержал зрение на картинке, то заметил бы, зачем там может понадобиться рефлексия, в частности вызов методов по их имени и сопоставление типов с их строковыми представлениями. Вообще конечно пиздец, с кем я говорю, ты же даже yaml формат не видел никогда, иначе бы шизобред про десериализацию рефлексией не писал бы. >Так а чё ты тогда споришь? Я говорю - это пиздец. Ты в ответ какую то шизу несешь вместо того чтобы сказать - это рофл просто демонстрационный пример. Я это сразу сказал, еще в том посте, который кинул выше. Просто я думал претензии к моим рабочим применениям.
>>1086847 >лет через 10 Брух, уже лет через 5 я скорее всего даже иде открывать не буду, будет какой-нибудь AIDE, где я тупо через бота пишу спеки и оно мне рожает фичи, и раз в пару дней запускаю autorefactor чтобы зачистить техдолг. А может, буду вообще безработным бомжом, который будет просить милостыню под дроидпарком
>>1086843 > Чтобы например вшивать значения из атрибутов в статику конкретного класса. Типа, чтобы не опрашивать атрибуты типа в рантайме, а получить их сразу по статическому полю. Тоже надо. Статика это минус вайб плюс ограничения. Статики в коде быть практически не должно, только в медиаторах с движковой или сдкшной частью где она уже есть либо иначе никак. А также в инфраструктурных штуках, которые иначе не сделать. У тебя получается класс сразу подвзяан на какие то данные и нету 2 инстансов с разными данными. Куда ж это годится?
> Проявил бы больше уважения к собеседнику. Я например твои высеры от и до читаю. Я полностью прочитал все что ты мне написал и все на что сослался.
> И ты, если бы немного дольше удержал зрение на картинке, то заметил бы, зачем там может понадобиться рефлексия, в частности вызов методов по их имени и сопоставление типов с их строковыми представлениями. Вопрос всё тот же - почему рефлексия здесь необходима? Это точно не решается без рефлексии?
И всё также - нахуя брать строго типизированный сишарп и максимально отпиливать от него типизацию? Вызов метода по имени из конфижного текстового файла это пиздос и источник поломок на многие месяцы вперед. Причём неявных поломок, которые ты ещё хуй найдешь.
> Вообще конечно пиздец, с кем я говорю, ты же даже yaml формат не видел никогда, иначе бы шизобред про десериализацию рефлексией не писал бы. В юнити префабы и сцены не yaml? Как считаешь, то что с ними творится можно назвать сериализацией и десериализацией? Я считаю да, это она и есть в самом чистом виде.
> ты Кстати я выше хоть раз написал "ты"? По моему я комментировал только твои высказывания.
> Я это сразу сказал, еще в том посте, который кинул выше. Просто я думал претензии к моим рабочим применениям. Значит я неправильно тебя понял, потому что ты писал что его части присутствуют.
К твоим рабочим применениям вопросы тоже появились, потому что примеры что я увидел это не то что "ну хз может ок" а чето совсем куда-то не туда, как мне кажется. Слишком легко ломаемое, слишком плохой перформанс, ну если у тебя .net core вместо юнити то там рефлексия подешевле и признаю хз насколько.
>>1086849 >чтобы сэкономить 32 КБ памяти Меня не возьмут в бункер, в этом мире и так порядочно людей которые заслуживают эвакуации в убежище 101 больше чем я и многие другие, потому до твоего варианта я не доживу
>>1086852 Ну я вот с клодиком щас проектирую один любопытный бэк на джаве с хитрой rls, увы, чтобы довести диздок до ума и синхронизировать фичи - я потратил прям немало токенов, пару недельных лимитов прошки точно, с полным сопровождением с моей стороны. И это только на диздок. Так что пока не верю в такой расклад, но потенциал виден серьёзный. >>1086851 >Куда ж это годится? Мне годится, потому как эти данные это разного рода статические идентификаторы привязанные к конкретному типу, и очень удобно получить их без typeof. Полный плюс вайб. >И всё также - нахуя брать строго типизированный сишарп и максимально отпиливать от него типизацию? Где ты увидел максимальное отпиливание? Я углы срезал. >Это точно не решается без рефлексии C# настолько хороший язык, что можно хоть на каждый конфигурационный файл такого рода насрать кодогенерацией, или использовать il генерацию, или вообще деревья выражений ебануть, можно даже захардкодить все свичами, но я предпочитаю вариант попроще, попонятнее, побыстрее в реализации. >Вызов метода по имени из конфижного текстового файла это пиздос и источник поломок на многие месяцы вперед. Что именно ты видишь источником для поломок? Ну назови просто, при каком варианте я, если задамся целью обеспечить стабильность работы через механизм рефлексии - ну никак не узнаю что обьект не реализовывает метод, или что обьекта не существует? Валидация механизма умещается в 1 тест, который прогонит все конфиги. Конечно, ты можешь сказать - "рефакторинг сломает связь" и будешь прав. Но от рантайм беды меня убережет буквально 1 простейший тест, который прогонит конфиги и их зависимости. Это каким-то значительным образом отличается от компалйтайм ошибки, когда сгенерированный код ссылается на невалидное поле/метод? По моему-никаким значительным образом не отличается. А еще - я могу менять эти конфиги непосредственно при исполнении приложения, что выгодно их отличает от хардкода еще и в таком аспекте. >В юнити префабы и сцены не yaml? Как считаешь, то что с ними творится можно назвать сериализацией и десериализацией? Я считаю да, это она и есть в самом чистом виде. Я сильно сомневаюсь, что значения yaml сериализатор ставит рефлексией, по крайней мере net либа yaml сериализации использует деревья выражений, что по факту является кодогенерацией. >Слишком легко ломаемое, слишком плохой перформанс Который ты придумал и свято в него веришь. Еще раз - рефлексия применяется у меня единожды для каждого отдельно взятого случая применения. Затем - я использую кеш и скомпилированные делегаты, что приводит к тому что я не использую рефлексию ни для чего, кроме построения кеша, который затем является основой для отработки логики.
>>1086797 >в нетипизированном, где любой ссылочный обьект это хэшмап >нормальных языках, производительных, с настоящей типизацией Насколько я понимаю, C# (.NET) является языком наподобие Java (JVM). Т.е. у него все те же проблемы тяжёлой виртуальной машины с ненастоящей типизацией и ненастоящими объектами, которые есть в любой виртуальной машине. Unity Technologies создали свой форк C# с урезанным функционалом, чтобы костылями заделать эти проблемы, но вышло как всегда - "deprecated prealpha" или как они там свои технологии называют...
>в этих языках можно кешировать Кэширование доступно любому языку, это не зависит от способа выполнения (хоть камешками на песке выкладывай состояние виртуальной машины на 1-мерном клеточном автомате). >затем их очень дешево инвокать, потому что методы - часть типа В Godot 4 на GDScript тоже есть тип Callable, который можно хранить в переменной и очень дёшево вызывать (дёшево относительно поиска по строковому имени). Но это не касается темы.
>Поэтому я выбираю с# для скриптов Т.е. ты признаёшь, что C# - это скриптовая фигня? >мейби с вводом в строй 26 стандарта Внутренности Godot пока что на C++ 17 кроме одной папки с Windows, которая на C++ 20 теперь: https://godotengine.org/article/dev-snapshot-godot-4-7-beta-1/#windows >...this integration would’ve only been feasible in C++20, whereas the Godot codebase uses C++17 at time of writing. >...isolate the relevant Windows code to C++20, while keeping the rest of the codebase untouched. Я на 99% уверен, что они не обновляют версию C++ ради стабильности. Потому что новые версии, как обычно, нестабильное говно, которое некому всерьёз тестировать. Ну а Unreal Engine вообще не настоящий C++ использует, а какой-то там специально сделанный форк (как и костыль-C# в Unity).
>я использовал рефлексию чтобы: ... Примерно такой список Ты отдаёшь себе отчёт, что компьютерные игры создаются людьми более 60 лет, и всё тобой перечисленное в 99.9999% играх не требовалось и не использовалось? Тебе никогда не кажется, что ты делаешь что-то лишнее, избыточно усложняя то, что можно было сделать намного проще? Интересно даже, какие такие игры ты делаешь, что ты вынужден прибегать к подобным "трюкам" (фактически - грязным хакам, которые едва держатся и могут отлететь в любой момент).
>>1086858 > Т.е. у него все те же проблемы тяжёлой виртуальной машины Какие
> с ненастоящей типизацией и ненастоящими объектами, которые есть в любой виртуальной машине. Что это блять значит? Что такое настоящий тип и ненастоящий?
> чтобы костылями заделать эти проблемы Какие проблемы? Перечисли. Ах да сразу вкину - моно они взяли не чтобы что-то заделать, а для кроссплатформенности в те времена.
>>1086858 >Насколько я понимаю Плохо понимаешь, хз как там в джаве, но NET уже очень давно jit-компилируемый язык, прям супер давно. >ненастоящей типизацией Все настоящее. Можешь простые бенчи посмотреть, произвидительность на всяком бэнчмарк говне сравнима с плюсами. В реальных кейсах, с gc да со всякими баундсчеками конечно не то пальто будет, но сильно побыстрее интерпретируемого говна от хуана. >Кэширование Брух, ну куда ты лезешь. Ну не знаешь ты с# и о каком конкретно кешировании речь - зачем влезать в разговор со своим особо ценным >тип Callable Это годотовский делегат, и он к теме обсуждения никаким боком не относится >Т.е. ты признаёшь, что C# - это скриптовая фигня? C# настолько хорош что ты на нем можешь писать что угодно, лучшее тому доказательство - существование Xenko/Stride. Собственно и как скриптовый язык, у которого за спиной вагон библиотек для хайлоад энтерпрайза - он тоже отличный. >Тебе никогда не кажется, что ты делаешь что-то лишнее, избыточно усложняя то, что можно было сделать намного проще? Оно кажется сложным, только когда я подсвечиваю сложности. Код, который я пишу благодаря этим "грязным хакам" - получается очень простым, легко поддерживаемым, легко понимаемым, и не слишком сложно тестируемым. Я просто фокусник, который любит попиздеть о том как я на самом деле "распиливаю" человека или достаю кролика из шляпы.
>>1086859 >Какие Попробуй как-нибудь написать виртуальную машину на досуге. Только сначала почитай про устройство процессора, как он взаимодействует с оперативной памятью и т.д. Интересная тема, каждому программисту стоит ознакомиться, даже если ты веб-мартышка. Конечно, старые популярные виртуальные машины сильно оптимизированы, но есть фундаментальные проблемы, которые просто нельзя исправить.
>Что такое настоящий тип и ненастоящий? Почитай обсуждение. Там анон говорит, что C# якобы лучше, потому что он "настоящий".
>моно они взяли Речь про ill2cpp/burst или как оно там называется. Мутная тема. По сути это транспилятор "C# у нас дома" -> "C у нас дома", или что-то такое. Лучше бы они вернули в движок тот скриптовый язык, который у них был когда-то... как его называли, UnityScript? Что-то наподобие "JavaScript у нас дома". Большинству ассетфлипов на Unity нет никакой необходимости выходить за рамки JavaScript.
>>1086860 >jit-компилируемый язык Значение знаешь? JIT - "Just In Time compilation" - "компиляция в последний момент". То есть, представь себе паровозик, который укладывает рельсы прямо перед собой - сначала доски, потом обрезки рельс, потом болты вкручивает, проезжает 1.5 метра вперёд и укладывает новые доски - вот это и есть "JIT компиляция". Преимущество JIT в том, что один и тот же код выполняется на разных платформах - представь, что у паровозика разные типы досок и рельс, которые он выбирает в зависимости от грунта впереди дороги. Недостатки сам понимаешь.
>существование Xenko/Stride Да? И почему ты сидишь на гнилом (deprecated) Unity, а не на стильном-модном-молодёжном Stride?
>вагон библиотек для хайлоад энтерпрайза Это не для твоих игрушек написано...
>очень простым, легко поддерживаемым, легко понимаемым, и не слишком сложно тестируемым Придётся поверить тебе на слово, потому что доказать ты всё равно не сможешь (игор-тонет)...
>>1086861 > Попробуй как-нибудь Забавно, но это именно то, что тебе стоит посоветовать.
Тип - это чисто компайл тайм понятие. Рантайм мы просто читаем память по какому то адресу и чето с ней делаем. Разве что ссылка на vtable(и в случае c# более) в заголовке класса это единственный огрызок от типов что остается в рантайме.
Нет типов настоящих и ненастоящих.
> Почитай обсуждение. Там анон говорит, что C# якобы лучше, потому что он "настоящий". Я хз кто че говорит, я твое сообщение прочитал и ты термин юзал.
> Речь про ill2cpp/burst А это они взяли чтобы перформанс вытягивать, а не чтобы что-то там чинить.
> Большинству ассетфлипов на Unity нет никакой необходимости выходить за рамки JavaScript. Есть. Я слабо представляю даже простую игру на жс. Игры довольно сложные и важно чтобы кодовая база была устойчива к изменениям без поломки половины игры.
>>1086863 >Недостатки сам понимаешь. Недостатки, я так понял, заключаются в том что у jit есть адаптивная оптимизация, а у aot ее нет. Но это трудно назвать недостатком, я бы даже сказал наоборот, это полный достаток. Впрочем - у c# уже очень давно есть АОТ компиляция, для тех кто хочет честную производительность. >Да? И почему ты сидишь на гнилом (deprecated) Unity А вот и не угадал. Я сижу на godot 3.6 mono. Stride просто пример, где движок полностью c#, без плюсового ядра. >Это не для твоих игрушек написано... Это написано для тех, кто знает как применить то что написано >Придётся поверить тебе на слово, потому что доказать ты всё равно не сможешь Уже бегу показывать ключ от квартиры где деньги лежат двачерским дегродам, для такой аудитории ничего не жалко
>>1086864 >Тип - это чисто компайл тайм понятие. >Нет типов настоящих и ненастоящих. Сразу видно человека, который никогда не интересовался устройством процессора, не пытался писать код на ассемблере, и не разбирался, почему новейший быстрый процессор может оказаться медленнее в задаче, с которой легко мог справляться более старый, более медленный процессор. Сам концепт "типизации" возник лишь благодаря тому, что он глубоко зарыт в устройство процессоров и сказывается на их ассемблерах, а уже потом этот концепт был дополнен и расширен в новых языках более высокого уровня. Т.е. в реальности есть типы, с которыми работает процессор напрямую, а есть типы, которые твой язык конструирует из базовых типов процессора. "Язык с динамической типизацией" означает лишь то, что язык (интерпретатор или виртуальная машина) выбирает подходящие инструкции по определённым признакам. По-настоящему отказаться от типов на современных процессорах - значит нанести очень большой ущерб производительности, ведь абсолютное большинство нововведений связаны с конкретными типами данных, а потолок возможностей одного ядра "без типов" уже давно достигнут (т.к. просто не выходит повышать частоту процессора ещё больше).
>Я слабо представляю даже простую игру на жс Многие игры, которые мне в своё время очень понравились и даже полюбились, написаны на ECMAScript (либо JavaScript в браузере, либо ActionScript на Flash). И играл я в них на очень слабом железе, 1 GB RAM и 2 ядра 1 ГГц... Так что ты сильно заблуждаешься, если думаешь, что для хорошей игры нужен производительный язык. Для хорошей игры нужен хороший дизайн, хорошая графика, хороший сюжет и хорошая озвучка, но никак не производительность кода и даже не полное отсутствие багов в коде. Баги и тормоза игроки терпят, а плохие игры - удаляют.
>>1086866 >двачерским дегродам Вообще-то я тоже годосподин, и зашёл сюда просто потому что в Godot-треде активность упала, а мне сраться с юнити-детьми даже интереснее, чем свою игру делать. А ты тут что делаешь? Не желаешь вернуться в Godot-тред? Печально, что ты на старой версии и привязан к C#, но мы любим всех...
Ты же тот, у которого мобильная ММО-дрочильня? Тогда понятно, зачем тебе нужны те странные выкрутасы с поиском методов по строковым именам... Сочувствую тебе и желаю поскорее закрыть старый проект и начать что-нибудь новое. Лучше отпустить старое, которое причиняет тебе страдания.
>>1086869 > Сам концепт "типизации" возник лишь благодаря тому, что он глубоко зарыт в устройство процессоров и сказывается на их ассемблерах, а уже потом этот концепт был дополнен и расширен в новых языках более высокого уровня. Т.е. в реальности есть типы, с которыми работает процессор напрямую Мы говорим про языки, или не? Ясен хуй в проце есть "типы" но они привзяаны к конкретным инструкциям в проце, языку тут поебать.
4 байта в памяти это 4 байта в памяти и больше ничего.
От того что ты выполнишь команду "сложи 2 целых числа" закинув в один из регистров эти 4 байта - эти 4 байта не перестанут быть всего лишь 4 байтами в памяти. Которые ты можешь спокойно закинуть в операцию над флоатами.
У тебя и в С++ компилятор, и C# компилятор одинаковые инструкции сгенерит.
Поэтому никаких ненастоящих типов нет.
> По-настоящему отказаться от типов на современных процессорах - значит нанести очень большой ущерб производительности Это впринципе невозможно, если мы говорим про базовые инструкции проца, какой ущерб если вообще ничего не будет?
> ведь абсолютное большинство нововведений связаны с конкретными типами данных, а потолок возможностей одного ядра "без типов" уже давно достигнут (т.к. просто не выходит повышать частоту процессора ещё больше). Какой потолок, какие "без типов", если алу это первое что у тебя в проце появилось вообще?
> Многие игры, которые мне в своё время очень понравились и даже полюбились, написаны на ECMAScript (либо JavaScript в браузере, либо ActionScript на Flash). Это говорит о чем? О том что вприцнипе на этом можно сделать примитивную веб игру? Пожалуй можно.
Говорит ли это о том что это азебись для нормальных проектов? Это говорит о том, что это вариант покруче, чем например юнити?
>>1086854 >Это каким-то значительным образом отличается от компалйтайм ошибки А зачем изобретать велосипед на костылях, когда можно купить готовый?
>могу менять эти конфиги непосредственно при исполнении приложения Godot поддерживает hot reload для GDScript (на счёт C# не знаю) и также стремится обновить все tscn/tres данные в работающей игре. Не всегда успешно, почему-то, но это не важно (скорее всего я что-то не то нажимаю, лол). Из моего опыта: мне как-то проще перезапустить рантайм Godot с маленьким локализованным тестом игровой логики, чем сделать hot reload и надеяться, что это не будет отличаться от перезапуска. Потому что, как бы ты ни старался сделать подгрузку данных бесшовной, подгрузка данных по ходу игры - это не то же самое, что загрузка данных с нуля. Достаточно хоть одному биту памяти быть не таким - и всё поломается, а ты потом будешь сидеть и ломать голову, откуда эта ошибка взялась, если весь твой код написан безошибочно...
Короче: лучше запустить игру заново (или вторую параллельно первой), чем подгрузить изменённые данные в уже запущенную и надеяться, что ничего не сломается из-за какой-нибудь неуловимой ошибки "одного бита памяти". В особенности если у тебя не серверная платформа с ECC RAM, а обычный "геймерский" ПК.
>>1086873 >примитивную веб игру >нормальных проектов Ну вот опять началось: >кококо не хочу кликать мышкой на печеньку, не хочу видеть как numbers go up, нет доставляет мне это дофамина, ааааа дайти мне нормальную игру а не примитивную >оооо, вот это да, вот это рейтрейсинг, вот это тени, ммммм, струя 240 фпс в лицо, как приятно, прямо фонтан эмоций, дофамин заменил мне кровь, вот это да, ааааах, аааах
Может, тебе лучше было бы в кинематограф устроиться, а не играми заниматься?
>>1086871 >Лучше отпустить старое, которое причиняет тебе страдания. В четверке верстать интерфейс не сильно удобнее, это единственное что мне реально причиняет в годоте страдание и не фиксится никакими нейронками, более отвратительный UX редактора сложно представить, где-то на уровне гимпа
>>1086878 >Причём тут графон ваще? При том, что основная заслуга движков уровня Unity - это готовый пайплайн для реалистичной 3D графики и физики. Сделать более сложную 2D игру можно без такого движка, поддержка 2D в движках уровня Unity - это чтобы ньюфагов и прочих соло индюков заманивать. Даже в Godot поддержка 2D - это скорее побочный эффект реализации сложного GUI, которому необходимо 2D, а не основной приоритет: Godot изначально и всю дорогу был 3D движком для реалистичной графики, а 2D долго улучшали по запросам индюков. Можно сколько угодно ругать 3D рендерер Godot, но он всегда был и остаётся основным приоритетом движка.
Поэтому фразу "нормальный проект на Unity" я понимаю как "фотореалистичная 3D игра".
>Ты сам во что играешь Я во многое играл... Всего не вспомню, но было и 3D, и 2D, и ASCII, и чисто текстовые игры, и консольные на эмуляторах, и почти все жанры попробовал. Но я надолго в одной игре обычно не задерживаюсь, поиграл несколько часов/дней и уже как-то не хочется - ищу что-нибудь другое, даже если не прошёл до конца. Бывало и так, что затягивало, так что "игровая зависимость" я знаю не по наслышке... и про "эффект тетриса" тоже. И имея такой разнообразный опыт я могу сказать с полной уверенностью: для полноценной увлекательной игры не важен ни язык, ни движок, ни тип вывода информации на экран, но если тип вывода - графика, то графике нужно быть гармоничной.
Сраться за языки, за паттерны, за движки и прочие технологии - это весело, но к разработке игр как таковой имеет мало отношения. От того, что ты там под капотом используешь, игроку ни лучше, ни хуже не будет. Важно только то, по каким правилам ты будешь взаимодействовать с игроком и что будешь ему выдавать на устройства вывода. А играть можно и без монитора вообще, используя принтер для печати игровой информации на бумаге, выполняя код прямо на языке этого принтера: http://duckduckgo.com/?q=can+you+write+a+videogame+on+PostScript+and+embed+into+printer
>>1086881 >В четверке верстать интерфейс не сильно удобнее Тебе, наверное, понравятся нововведения в 4.7: https://godotengine.org/article/dev-snapshot-godot-4-7-beta-1/#gui В остальном же: если у тебя никогда не было опыта с WYSIWYG-редакторами GUI, то тебе просто нужно почаще читать документацию и больше экспериментировать, пока не откроешь для себя то, что тебе удобнее делать; а если ты переходишь с HTML/CSS или любого другого GUI, то придётся потерпеть, пока привыкаешь к особенностям нового. Система GUI в Godot реально мощная и покрывает все потребности большинства игр, а те, что не покрываются базовыми нодами - легко слепить с нуля на GDScript из базовых нод, но переходящим с других GUI, конечно, может быть непривычно.
>не фиксится никакими нейронками Возможно, твоя проблема в том, что ты пытаешься найти "фикс" (костыль) там, где тебе нужно просто привыкнуть к тому, как принято обращаться с инструментом. Представь, что тебе дали молоток забивать гвозди, а ты говоришь "это неудобно, хочу черпать молотком как ложкой" и начинаешь мастерить сложную систему их шестерней, верёвок и рычагов, чтобы преобразовать черпающие движения как у ложки в удары молотком по гвоздю; а потом приходишь к мастерам и жалуешься, что молотком неудобно пользоваться даже с системой из шестерней и рычагов. Не смешно ли? Если бы ты просто заставил себя несколько дней бить молотком как положено, ты бы привык и научился делать так, как удобнее всего. А не тратить время на лишние костыли, которые не решают проблему.
>более отвратительный UX редактора сложно представить Ну, не знаю. Я, наоборот, не встречал UI/UX лучше Godot. В этом Godot как Blender: при самом первом знакомстве ты можешь опешить от обилия непонятных кнопок, надписей, менюшек и субменюшек, но когда поработаешь в нём через силу и привыкнешь, начинаешь хотеть, чтобы во всех остальных программах было так же, как в нём.
>>1086885 Анон, я до годота работал с юнити и это не просто небо и земля, это блять мантия и геоцентричная орбита по разнице в уровне удобности редактора. В целом, терпимо всё, но верстать, особенно сложные интерфейсы со всякими рисованными рамочками и прочими найнпатчами - просто пиздец. И этот пиздец не передать текстом. Тем, кто работал с нормальными редакторами - будет больно физически. И привыкнуть к этому невозможно, только затерпеть. >нововведения в 4.7 Как были элементы интерфейса прихуячены гвозями, так и остались, если сравнивать с dockable интерфейсом юньки (с бесконечными дублями окон и фиксаторами на обьектах) это конечно смешно. Я знаю что это опенсорс, и в целом претензий не имею, но смешно коупить тоже не буду. Ну и да, в тройке к тому же эта проблематика только усугубляется, но не так чтобы я видел наглядный сдвиг в четверке, просто пофиксили часть бесячей хуйни и на этом все, а сам интерфейс как был хуитой непотребной, так ей и остался. Разве что среди прочих foss инвалидов годот наверное лучший.
>>1086889 >Анон, я до годота работал с юнити и это не просто небо и земля, это блять мантия и геоцентричная орбита по разнице в уровне удобности редактора Это правда. После годота срунити просто неюзабельное говнище, застрявшее в 90-х.
>>1086882 > При том, что основная заслуга движков уровня Unity - это готовый пайплайн для реалистичной 3D графики и физики. Это конечно заебись, но это не основная заслуга.
Основная заслуга - это экосистема для разработки. Там и редактор(сцены, объекты, конфиги) есть который можно расширять и кастомизировать легко, намного легче чем делать свои нативные тулзы.
Система сборки проекта под любые платформы.
Интеграция в целом графического апи, звукового, загрузка выгрузка ресурсов. Готовые системы вроде ui, партиклов, аниматора, поддердка всевозможных форматов.
И главное всё это достаточно хорошо отлажено, достаточно унивресально чтобы разраб с одного проекта в другой мог терпимо перекатываться.
> Сделать более сложную 2D игру можно без такого движка Зачем тебе всё что я перечислил выше писать самостоятельно, когда оно готовое есть?
>, поддержка 2D в движках уровня Unity - это чтобы ньюфагов и прочих соло индюков заманивать Миллионы 2д игр на юнити в проде, в том числе сложных и объемных: ну да, пошли мы нахуй.
> Поэтому фразу "нормальный проект на Unity" я понимаю как "фотореалистичная 3D игра". Ну это чисто твоя шиза. Абсолютно большая часть игр на юнити имеют стилизованную или 2дшную графику. Мобилки, инди сегмент - там доминирует югити, много там фотореалистичных игр. Для фотореализма берут анрил.
> Сраться за языки, за паттерны, за движки и прочие технологии - это весело, но к разработке игр как таковой имеет мало отношения. Так ты попробуй игры поделать лол.
Игроку правда поебать что внутри.
А вот у разраба - от того какие он решения по разработке будет принимать, какие инструменты использовать - от этого напряиую зависят сроки разработки.
Сделать игру быстрее наверное всё же лучше чем дольше, или ты не согласен?
>>1086894 Никаких 4000 ассетов у тебя конечно нет, а игру с парой сотен ассетов я делал и никаких проблем с папочками там нет, а кроме того есть легчайшие способы упростить это тул скриптами, часто готовыми аддонами.
>>1086894 Ах да, и конечно необходимость вручную куда то что то таскать есть только у тупых ассетотаскателей, в моей игре все это процедурненько подгружалось-генерилось
>>1086889 У меня не так много опыта в создании GUI, но перечислю:
1. HTML/CSS: я печатал весь код руками в текстовом редакторе и очень сильно мучился из-за того, что описанные в документации свойства либо не работают совсем, либо работают не так, как описано, либо с чем-то конфликтуют, что-то там перекрывают и т.д. Привязывать события GUI к обработчикам на JS тоже было крайне неудобно. Я слышал про множество GUI фреймворков поверх базовых возможностей и также слышал про WYSIWYG-редакторах, но не смог определиться с тем, что мне следует выбрать из этого зоопарка кривых костылей и тяжёлых велосипедов. Пытался вкатиться в это дело несколько раз на протяжении многих лет, если что, и сверстал кучу разных страничек.
2. Unity: в Unity я пытался вкатиться несколько раз, и каждый раз там не было встроенного GUI, вот совсем. Неужели наконец-то встроили? В любом случае, Unity всегда предлагала на выбор огромное количество ассетов для GUI, из которых непонятно, что выбирать. А базовая Unity без ассетов может только голый Label и Button сделать, да и те нужно через код на C# ковырять. Я так и не смог разобраться с GUI в Unity даже с туториалами, а рисковать, ища и устанавливая чужие костыльные велосипеды из ассет-стора мне не хотелось. Собственно, мой опыт подкрепляется огромным количеством инди-игр на Unity с абсолютно уродливым, кривым и глючным GUI, который часто ещё и тормозит сильнее, чем основная игра с фотореалистичной графикой, лол. Я вообще не понимаю, за что ты её нахваливаешь (какой ассет скачал?).
3. Delphi/Lazarus: это эталон WYSIWYG-редактора GUI под Windows и Linux как минимум, а то и под Android тоже. Лучше редакторов я не пробовал, кроме, собственно, Godot (но о нём потом). Позволяет с лёгкостью набросать именно то, что ты хочешь увидеть в своём приложении, и так же легко и быстро соединить события виджетов с обработчиками в коде. Также позволяет создавать свои собственные виджеты с уникальным внешним видом и поведением, наследуясь от стандартных - но с одним существенным для меня недостатком: поскольку Pascal - компилируемый язык, IDE не способна быстро подхватить разрабатываемый компонент или обновить его состояние. Как минимум Lazarus требует собирать IDE из исходников для встраивания нового компонента в палитру, а про Delphi не помню уже. Да, разумеется, Pascal очень быстро компилируется, и IDE пересобирается за секунду, но всё равно это раздражает и не даёт комфортно делать новые виджеты. Но достойной альтернативы Delphi/Lazarus (для нативного GUI на Windows/Linux) я не нашёл - везде какие-то проблемы.
4. Godot: это просто шикарно, как будто переписали Delphi с нуля, добавив возможность разрабатывать новые компоненты на живом движке - совсем без пересборки из исходников, без компиляции, даже без перезапусков. Ты просто берёшь, и делаешь какие угодно новые виджеты - буквально какие угодно. Реально. При этом твои нововведения, даже написанные на GDScript, органично интегрируются в уже имеющуюся экосистему Godot, словно они там всегда были. При этом нет никаких костылей и велосипедов как с HTML и Unity - нет необходимости качать какие-то заплатки от третьих лиц, ты просто сел за комп, открыл редактор и шлёпаешь свой интерфейс почти как в Delphi, точно так же легко и просто соединяешь события с кодом, но при этом в любой момент можешь взять, и собрать свой собственный компонент, не отвлекаясь ни на что, не выходя из состояния потока, и сразу же использовать свой новый компонент в работе над своим интерфейсом. Шикарно, просто шикарно. Я сомневаюсь, что кто-то смог сделать что-то лучше интерфейса Godot. При всём этом он и выглядит вполне элегантно. Небольшие косяки есть, конечно, особенно в плане взаимодействия с операционкой, но оно и понятно. Преимущества перешивают недостатки - неудивительно, что на Godot всё чаще делают GUI приложений, никак не связанных с играми. Если про Godot узнают больше людей, и разрабы начнут делать официальные "только GUI" сборки (чтобы не было лишнего 3D, физики и т.п.), может, мы увидим больше новых прикладных приложений, написанных на Godot... Хотя у него есть оверхед из-за того, что он не использует нативные виджеты ОС, но для некоторых приложений это не критично, особенно если важен одинаковый GUI на разных платформах.
>>1086900 > HTML/CSS: я печатал весь код руками в текстовом редакторе и очень сильно мучился из-за того, что описанные в документации свойства либо не работают совсем, либо работают не так, как описано, либо с чем-то конфликтуют, что-то там перекрывают и т.д. Привязывать события GUI к обработчикам на JS тоже было крайне неудобно. Я слышал про множество GUI фреймворков поверх базовых возможностей и также слышал про WYSIWYG-редакторах, но не смог определиться с тем, что мне следует выбрать из этого зоопарка кривых костылей и тяжёлых велосипедов. Пытался вкатиться в это дело несколько раз на протяжении многих лет, если что, и сверстал кучу разных страничек. Так это ты просто не осилил. Весь фронтенд на этом сидит, включая мобайл.
> Unity: в Unity я пытался вкатиться несколько раз, и каждый раз там не было встроенного GUI, вот совсем. Неужели наконец-то встроили? В любом случае, Unity всегда предлагала на выбор огромное количество ассетов для GUI, из которых непонятно, что выбирать. А базовая Unity без ассетов может только голый Label и Button сделать, да и те нужно через код на C# ковырять. Я так и не смог разобраться с GUI в Unity даже с туториалами, а рисковать, ища и устанавливая чужие костыльные велосипеды из ассет-стора мне не хотелось. И тут не осилил лол. Ты серьёзно аргументируешь своим неосиляторством лол? Если не знаешь что взять, не важно для какой цели - узнай от шарящих челов или сформулируй требования.
В юнити целых 2 юи системы - одной лет 10+, с версткой врчную якорями, другая - HTML/CSS-likeдаже 3 - одна легаси. Так, на всчкий случай)
> да и те нужно через код на C# ковырять. Верстка и программирование это разные вещи. Версткой занимаются не программисты как правило.
>Собственно, мой опыт подкрепляется огромным количеством инди-игр на Unity с абсолютно уродливым, кривым и глючным GUI, который часто ещё и тормозит сильнее, чем основная игра с фотореалистичной графикой, лол. Я вообще не понимаю, за что ты её нахваливаешь (какой ассет скачал?). Во-первых прямость гуи заивисит от прямоты верстки. Во-вторых это просто пиздёжь, хз.
> Delphi/Lazarus: это эталон WYSIWYG-редактора GUI под Windows и Linux как минимум, а то и под Android тоже. То-то вся индустрия с этого говна перешла на хтмл везде(кроме геймдева - и то даже в нем уже есть небольшая тенденция на переход). А надо было просто тебя слушать.
>>1086903 Бизнес захватывает эффективность. Если ты делаешь что-то эффективнее других - ты начнешь их выдавливать с рынка. Пока твои руки-крюки таскают кнопки по экрану и чинят полетевшую верстку в окне которое ты год назад делал или копипастят куски окошка в другое окошко а от оверлейных элементов общих для разных окошек последние волосы выпадают - базовички просто открывают код разметки и сразу видят всю картину.
>>1086904 Дооо, такое чувство что ты троллишь и в интернет не заходишь и не видишь как у всех этих эффективных пизнесменов везде верстка разваливается.
>>1086902 >Весь фронтенд на этом сидит, включая мобайл. Поэтому с вебом и мобилками всё очень плохо...
>аргументируешь своим неосиляторством Если твой инструмент настолько недружелюбен к новичкам, то это проблема инструментов и его разработчиков, а не новичков. Ты не можешь говорить "этот инструмент хорош" если для его комфортного использования придётся бегать по каким-то форумам и >узнай от шарящих челов Почему ты вообще написал "узнай у челов", а не "открой документацию"? Неужели чисто по документации не разобраться? Я с Godot по официальной документации разобрался. Это многое говорит о дружелюбности Godot к новичкам, и поэтому он хорош.
>Верстка и программирование это разные вещи. В энтерпрайзе и ААА - наверняка так и есть, специальный кабанчик на подскоке с какой-нибудь смешно звучащей специальностью вроде "кнопкомаляр" (меняет HEX-значение свойства color в классе Button и ничего кроме этого не умеет делать). А в маленьких командах и тем более если ты одиночка - ты делаешь всё сам, и тебе важно, чтобы твой инструмент не вставлял тебе палки в колёса лишними альт-табами, ожиданием, пока код скомпилируется, редактор перезапустится и т.п. Короче, ты должен чувствовать себя так, будто едешь на велосипеде, а не скачешь по минному полю.
>прямость гуи заивисит от прямоты верстки А прямота вёрстки напрямую зависит от того, как хорошо лежит в руке твой инструмент и насколько он стабилен. С хорошим инструментом работа хорошо идёт, тогда как с плохим ты больше времени тратишь на то, чтобы починить этот инструмент и заставить его работать так, как тебе нужно. Если большинство не справляются с инструментом, то он плохой. >это просто пиздёжь Ты просто мало тестировал чужие инди-игры на юнити.
>вся индустрия перешла Delphi платный и очень дорогой. Lazarus долгое время был глючным и малоизвестным. А преимущество HTML/CSS в том, что веб-сайтов наделали намного больше, чем людей на планете, и веб-макак тоже много - следовательно, любой кабан может взять любую из этих веб-макак и заставить делать своё приложение. Качество технологии, удобство IDE и прочие детали менеджеров в данном случае вообще не волнуют - им главное получить какой-то результат с минимальными затратами, желательно взяв наивных студентов вместо тех, кто знает цену своего труда. Аналогично и с геймдевом - если веб-макака устала делать веб-сайты под ключ, и хочет сделать игру, она будет искать движок с HTML/CSS/JS внутри, а не то, что принято использовать в геймдеве.
>>1086905 Такое чувство, что было бы странно, что куча людей юзаеют хтмлцсс и делают на нем проекты разного масштаба, причем успешно, и тут выходишь ты и говоришь, что вообще все они ошибаются.
Предположим. А как ты понял, что твой способ лучше? Ты пробовал в разных проектах применять, прикидывать затраты времени на разработку прототипа, итерации, поддержку, у тебя за плечами много опыта для сравнения?
Или просто потому что ты не осилил хтмл, поэтому?)
> в интернет не заходишь и не видишь как у всех этих эффективных пизнесменов везде верстка разваливается. Ну бля сложно все девайсы предусмотреть, особенно если сайт большой, бывают где-то недочеты.
Ты-то почему не сделал лучше и не научил всех? Не охота просто?) Влт если бы я знал как лучше - я бы уже монетизировал этот навык+знания, при том что это не моя область вообще.
>>1086904 >Пока твои руки-крюки таскают кнопки по экрану Ты против WYSIWYG в целом что ли? Вот это лол.
>чинят полетевшую верстку в окне которое ты год назад делал Если версию движка не обновлял - то вина в твоём говнокоде. Если обновлял - то о таком в ченджлогах предупреждают.
>копипастят куски окошка в другое окошко Ещё не открыл для себя кнопку "сохранить ветку как сцену"?
>оверлейных элементов общих для разных окошек Чиво? Это где ты в Godot нашёл? Опять твой костыль?
>просто открывают код разметки и сразу видят всю картину. Верстать через код - последнее дело, особенно в играх.
Ладно, открою секрет: ты можешь делать GUI... через код! Просто спавнить Control-ноды в дерево из своих скриптов.
>>1086907 > Поэтому с вебом и мобилками всё очень плохо... Что именно всё? На рынке веб и мобилки это доминирующая форма ПО.
> Если твой инструмент настолько недружелюбен к новичкам, то это проблема инструментов и его разработчиков, а не новичков. Ты не можешь говорить "этот инструмент хорош" если для его комфортного использования придётся бегать по каким-то форумам и Ты говоришь слово "проблема" и "хорош", но эти слова очень контекстуальные.
Для тебя наверное проблема, если у тебя бюджет на вкат в инструмент - 1 день - действительно, этого очень мало чтобы разобраться.
Для того, кто готов потратить ощутимо больше времени на изучение инструмента(в целом кого угодно кто занимается разработкой игр много, не по вечерам пятницы раз в неделю) - это не проблема, а сам инструмент хорош и даст огромный выигрышь на дистанции.
> >узнай от шарящих челов > Почему ты вообще написал "узнай у челов", а не "открой документацию"? Потому что инструмент это инструмент, документация объясняет как им пользоваться, а не что тебе делать в какой ситуации. На юнити делать игры по документации юнити ты не научишься вообще никак. На годоте тоже, и я могу это сказать даже не глядя в документацию. Что где на практике лучше - ты узнаешь ищ практики и ресерча чужих практик которые применяют.
> В энтерпрайзе и ААА - наверняка так и есть, специальный кабанчик на подскоке с какой-нибудь смешно звучащей специальностью вроде "кнопкомаляр" (меняет HEX-значение свойства color в классе Button и ничего кроме этого не умеет делать). А в маленьких командах и тем более если ты одиночка - ты делаешь всё сам Бред. Я когда в маленькой команде работал на 7 челов - мы джуна сделали верстальщиком.
> и тебе важно, чтобы твой инструмент не вставлял тебе палки в колёса лишними альт-табами, ожиданием, пока код скомпилируется, редактор перезапустится и т.п. Это важно для кого угодно в любой команде.
> Если большинство не справляются с инструментом, то он плохой. Где какое большинство не справляются с инструментом?
> Ты просто мало тестировал чужие инди-игры на юнити. Я и играл во много игр на юнити и делал.
> Delphi платный и очень дорогой. Это две копейки в масштабах проекта.
> А преимущество HTML/CSS в том, что веб-сайтов наделали намного больше, чем людей на планете, и веб-макак тоже много - следовательно, любой кабан может взять любую из этих веб-макак и заставить делать своё приложение. А прикинь - ты приходишь к кабану и говоришь - смотри кабан, я могу лучше сделать, разработка будет занимать меньше времени. Что тебе мешает? Или какому-то другому разумисту? Почему этого не происходит?
> Качество технологии, удобство IDE и прочие детали менеджеров в данном случае вообще не волнуют - им главное получить какой-то результат с минимальными затратами, желательно взяв наивных студентов вместо тех, кто знает цену своего труда. Каво нахуй, фронтедерам мало платят по твоему?
>>1086911 > Ты против WYSIWYG в целом что ли? Вот это лол. Довольно часто - да.
> Если версию движка не обновлял - то вина в твоём говнокоде. А причем тут код и верстка? Ну да ладно, просто практически говоря - когда ты делаешь приложение с гуи, рано или поздно у тебя будет такая ситуация.
> Ещё не открыл для себя кнопку "сохранить ветку как сцену"? Как ее потом вставлять куда то? Руками?
> Чиво? Это где ты в Godot нашёл? Опять твой костыль? Я не ебу вообще чем там в годот я его не открывал никогда. Задача - есть какая-нибудь панелька снизу, а по центру ращные окошки меняются. Надо чтобы верстка была согласована. Твои действия?
> Верстать через код - последнее дело, особенно в играх. Смотря какой код.
> Ладно, открою секрет: ты можешь делать GUI... через код! Какой именно код? Мне кажется хтмл тут ебет другие варианты по явности и наглядности и гибкости, особено тот ужас что ты поедлагаешь далее
>>1086909 Вообще ничего странного, бабло и маркетинг решают. А хтмл да, не осилил, ну написал базовый рендерер html с++, но там просто геморно все стандарты реализовать чтобы сделать свой браузер, который миллион макак в гугле каждый год дополняют.
>>1086912 >На рынке веб и мобилки это доминирующая форма ПО. Потому что большинство юзеров - тупое быдло с мобилой.
>если у тебя бюджет на вкат в инструмент - 1 день Не поверишь, но люди с СДВГ реально существуют. >готов потратить ощутимо больше времени на изучение инструмента Плакать, колоться, но продолжать жрать кактус (ради галлюцинаций)?
>как им пользоваться, а не что тебе делать в какой ситуации Лол? Если взять, например, огнетушитель, то там чётко написано, для тушения каких типов возгораний он предназначен. Если взять тюбик клея, то там чётко написано, для склеивания каких материалов он предназначен. Если взять Unity... то там deprecated experimental prealpha и куча гнилых ассетов за сотни баксов, которые только усложняют задачу, а не упрощают.
>На годоте тоже, и я могу это сказать даже не глядя в документацию. Так вот почему ты никак не можешь разобраться с GUI. Ясно-понятно.
>мы джуна сделали верстальщиком Жестокие люди, глумились над несчастным...
>разработка будет занимать меньше времени Без людей-специалистов это пока не работает.
>фронтедерам мало платят по твоему? Меня не интересуют их проблемы.
>>1086914 >>Ты против WYSIWYG >Довольно часто - да. Почему тогда Godot, а не какой-нибудь SDL? Чтоб без редакторов.
>А причем тут код и верстка? Не поверишь, но "вёрстка" - это тоже код, только декларативный.
>рано или поздно у тебя будет такая ситуация То, что ты не открывал целый год, не может просто так сломаться.
>Как ее потом вставлять куда то? Руками? Выбрал ноду -> Ctrl+Shift+A -> имя в поиске -> Enter. Но ты можешь и сделать скрипт для генерации (если это менюшка).
>годот я его не открывал никогда Ну и чё ты влезаешь-то, не с тобой спорили.
>Задача - есть какая-нибудь панелька снизу, а по центру ращные окошки меняются. Надо чтобы верстка была согласована. Твои действия? В Godot это можно сделать, например, так (если окна фиксированы): >BoxContainer >_ CenterContainer >_ _ Center1 >_ _ Center2 >_ _ Center3 >_ PanelContainer Потом просто скрываешь/отображаешь то, что тебе нужно. Всё будет автоматически растягиваться-натягиваться под размер и пропорции экрана. Можно даже настроить так, чтобы оно адаптировалось под вертикальное и горизонтальное положение экрана на мобилках, если твоя нижняя панелька может быть расположена вертикально сбоку (как в некоторых играх).
>Смотря какой код. Скорее "смотря какая задача". Заполнить меню одинаковыми кнопками - это да, лучше через код. А вот красиво и удобно расположить уникальные кнопки, которые имеют разные формы и разное предназначение - тут только через визуальный редактор. Для примера, основная панель GUI в The Sims выглядит слишком сложной для того, чтобы настраивать её полностью через код (хотя в те времена у них могло не быть редактора GUI), но вот списки предметов с иконками заполняются автоматически через код.
>Какой именно код? Императивный. Твой HTML - это декларативный код. Но можно сделать GUI полностью на императивном коде. Разница только в том, что декларативный код описывает "что должно быть", а императивный код перечисляет "что нужно сделать". Пример: <div> - это "где-то здесь должна быть какая-то коробка с чем-то" (и дальше движок пытается угадать, что с этим делать), а add_div() - это "добавить коробку с этим содержимым прямо сейчас и прямо здесь" (и движок напрямую выполняет этот запрос как он записан). У каждого подхода свои преимущества и недостатки, однозначно лучшего нет.
Файлы сцен (tscn) в Godot - это декларативный код (но не XML, а что-то вроде INI).
>>1086917 > Вообще ничего странного, бабло и маркетинг решают. Они дают трафик, а не реанимируют труп. В крупных компаниях есть ресурсы тестить новые технологие, стартапы могут со старта че хотят брать.
У нас например для новой игры взяли анрил, при том что вся компания на юнити работает.
>>1086919 > Потому что большинство юзеров - тупое быдло с мобилой. Ой, а ты у нас очень умный я смотрю. Вебмакаки - тупые. Юзеры - тупые. А кто умный-то, ты что ли?
Ты телефоном не пользуешься кстати? Я вот пользуюсь постоянно. Я даже на дваче с телефона только сижу.
> Плакать, колоться, но продолжать жрать кактус (ради галлюцинаций)? Какой кактус, какие галлюцинации? Прибыль и интерес определяет вектор движения, если это сложно - то найдутся те кто осилят, если оно того стоит.
> Лол? Если взять, например, огнетушитель, то там чётко написано, для тушения каких типов возгораний он предназначен. А у нас огнетушитель или движок или какой-то сложный инструмент? Точно ли на всём в инструкции должны быть описаны все кейсы и цели применения?
На карандаше написано для каких он целей? На ручке написано как ей войну и мир написать? На кирпичах написано какой ими дом строить и как?
Твоя аналогия саморазъебывается за 5 секунд размышлений. Так как ты этого не сделал - я правильно поримаю, что ты менее 5 секунд думаешь что написать?
> Если взять Unity... то там deprecated experimental prealpha и куча гнилых ассетов за сотни баксов, которые только усложняют задачу, а не упрощают. И сюда же сразу > Плакать, колоться, но продолжать жрать кактус (ради галлюцинаций)? Разработка игр это не простое дело, так уж получилось. Чтобы с нуля даже до уровня джуна которыц почти ничего не умеет дойти - нужен год упорной учебы и практики. И никто тебя за ручку вести не будет, нету едино правильного гайда.
> Так вот почему ты никак не можешь разобраться с GUI. Ясно-понятно. С каким гуи я не могу разобраться? Я на юнити через якоря умею профессионально верстать, пусть практики и не так много. Разбираюсь в гуи шейдерах. На хтмл на любительском уровне. На Qt тоже быдо дело, но это та же чкорная система что и в юнити.
С точки зрения программирования я занимался гуи любой сложности.
Так что не, сорян, в гуи я шарю хорошо.
> А можно открыть документацию и почитать рекомендованное разрабами: Я не знаю, насколько разрабы годота сами профессионалы в разработке игр, разработка инструмента как бэ не значит, что они шарят в прикладном применении, такие вещи как правило разрабатываются реактивно - есть запрос бизнеса и аудитории - есть решения.
> Жестокие люди, глумились над несчастным... Это стандартная практика, задачи по верстки часто пдаают на джунов либо на про верстал.
> Без людей-специалистов это пока не работает. Так у тебя во всяких гос парашах, заводах и нии сидят орды Qt-макак, и даже делфи там практикуют. Чем не устроят?
> Меня не интересуют их проблемы. Так ты сам сказал про них, что вот берут народ который не знает цену своего труда. На практике фронтендеры часто получают 2х-4х от того что получают делфи и Qt бояре.
> Почему тогда Godot, а не какой-нибудь SDL? Чтоб без редакторов. Довольно часто - не значит, что всегда. Сцены собирать практика показывает что лучше в визуальном редакторе.
> Не поверишь, но "вёрстка" - это тоже код, только декларативный. А как верстка может быть говнокодом тогда?
> То, что ты не открывал целый год, не может просто так сломаться. Да что ты. А то что ты сделал год назад - будет статичным и не будет более трогаться в процссе, не будет изменений которые косвенно на это влияют? Какую нибудь кнопку с ценой переверстали и вышла необходимость внести критичнеы зменения, везде где она есть - могут вылезти проблемы.
> Выбрал ноду -> Ctrl+Shift+A -> имя в поиске -> Enter. Так ее можно хоть засейвить так, чтобы её реальные инстансы оставались связаны с оригиналом? Один раз изменил - все окна подхватили?
> Ну и чё ты влезаешь-то, не с тобой спорили. Я увидел бред, я его прокомментировал.
> Потом просто скрываешь/отображаешь то, что тебе нужно. Слодность гуи большая, мне нужно отделить, а не скрывать.
>>1086927 Они берут анрил не потому что это какая то новая технология, а потому что видят что там много разрабов которых можно будет менять как винтики. При этом все знают, что играки ненавидят анрил 5