24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
>>565341 Там на выбор: 1. Легкий и простой гдскрипт, для питонщиков. 2. Сишарп для сишников. 3. Лапша-вижуалскрипт-как-в-УЕ4е-модно-молодёжно, для совсем новичков. 4. Си++ тоже возможен двумя путями, но тебе, я полагаю этот пункт не понадобится.
>>565341 >Ничего не умею, но хочу научиться. Главное - мотивация. Я Уже более года назад тоже не умел нихуя, к марту месяцу 2018-го я уже мог делать вот такое:
>>565321 Форков нет потому, что бесперспективно. Поддерживать форк некому, вся движуха, багфикс и апдейты будут на мастер-ветке. А изменения из форка обратно в мастер-ветку не пропустит диктатор Хуан, ему ведь важно писать все костыли своими руками, не дай бог кто-то напишет лишний класс за него, его очко тут же сожмётся до размеров молекулы.
>>565340 >Примерно такое В такое умел еще blitz 3d году эдак в 2005ом. Даже если закрыть глаза на графон (не всем нужен фотореалистичный PBR как в анриле), главная причина, по которой годот непригоден для разработки 3д - отсутсвие окклюжен куллинга, пока не впилят, можно даже не пытаться сделать что-то сложнее сценки из 3-4 примитивов.
К сожалению, в последних бетах все настолько поломали, что пока разочаровался в годоте, буду ждать месяц-другой, пока пишу свой велосипед. переписывавший туториал на плюсы-кун
>>565387 Окклюжн куллинг уже много лет никем не используется. Времена S образных стыков между уровнями давно прошли со времен коридорных шутанов. Сейчас в моде, прости господи, баттл рояли на опен ворлде. И там попросту нечего куллить. Наоборот, куллинг даст ненужную просадку фпс, когда ты высунешься из-за камня за которым прятался. Хуан обещал портальную систему написать, но когда еще ее дождешься. Сам я портальную систему вряд ли осилю, а вот чанковый грид, думаю, тут любому под силу. Суть в том чтобы разбить все на сетку, добавлять все ноды в ячейки это сетки, и делать видимыми/невидимыми только те, которые не дальше какого-то расстояния.
>>565571 Почему не хранить отдельными полями в таблице? У всех, у кого что-то из двух слов, например, фамилия, или какой-нибудь лупас де сильва хуилья омега - то тоже все хреново. Поэтому по стандарту международному - отдельными полями.
>>565572 Я ещё думаю над этим. С одной стороны да, стандарты предписывают хранить в отдельных полях, с другой стороны, хочется предоставить (себе? команде разработки? моддерам?) простой интерфейс с одним полем в текстовом файле, куда просто записывается строка из слов с пробелами, из которой система выберет по одному слову на имя.
>>565577 Что одно поле, что несколько - от этого команде разработки не становится проще. Проще сделать гибкую систему, где ты указываешь сколько тебе нужно полей в конкретной реализации, по которым система сама будет искать нужное. t = { name = "name", surname = "surname"} Потом просто добавляем/убираем поле в таблицу и пользуемся в любом месте нужными данными.
>>565622 >команде разработки не становится проще Не согласен. Гораздо удобнее дизайнеру текстов/квестов/диалогов, когда он вообще не имеет дела со структурами данных, типа t = { name = "name", surname = "surname"} и когда программист ему выдал тулзу, в которой просто, без задней мысли вписываешь несколько ФИО в текстовый контрол через запятую, а не ебашишь через табу или интер в грид. Потом в соседней вкладке у тебя удобно выпадает выпадающий список с именами, выбранными из списка ФИО.
>>565639 Так программист и выдает ему тулзу, где есть эти поля в нужном количестве с нужными названиями. По желанию выдается еще кнопочка по добавлению/удалению полей.
>>565656 Программист сделал таблицу в ядре программы keys = {} и вынес: 1) интерфейс конфигурирования реализации кнопка "добавить", кнопка "удалить" и текстовое поле "attribute" Пользователь настраивает систему, например, ему нужно только имя и фамилия в этой реализации. Он пишет в поле attribute слово "name", нажимает кнопку "добавить" и к таблице добавляется новый ключ name. keys = {name} То же самое со вторым. keys = {name, surname} 2) интерфейс ввода данных По таблице keys создается нужное количество полей ввода. В данном случае два поля. Он заполняет их и добавляет в какое-то хранилище данных.
Почему move_and_slide() имеет такое странное поведение: создал плоскость StaticBody, сделал KinematicBody с капсулой. Задал кинематику func _physics_process(delta): move_and_slide(Vector3(1, -1, 0), Vector3(0, 1, 0) ) Падает вниз и вбок. Но при попадании на плоскость перестает двигаться.
>>565708 Да по названию по моему понятно что оно задержку делает. Я написал, что оно нормально работает вне _process и выдает все правильно, но в нем код во время нее все равно продолжает дальше выполняться. Глобалварс - просто синглтон.
>>565692 Они добавляют побольше фич, чтобы хомяки визжали от восторга. А про критические баги хомяки не в курсе, они не делают игры на годоте, просто запускают его время от времени, чтобы почувствовать себя причастными к миру геймдева. Эти же хомяки везде пиарят годот и советуют его всем. А потом у тебя случается разрыв шаблона, когда ты запускаешь его и пытаешься запилить даже что-то совсем простое - физика глитчит, рендеринг статтерит, проседает фпс на двух спрайтах в кадре, редактор анимаций время от времени решает потроллить тебя и не сохраняет внесенные изменения. И ты сидишь и охуеваешь оттого, насколько реальность не соответствует радостным визгам хомяков на форумах.
>>565662 Пока что у меня такое: В отдельной вкладке вписываются полные имена в свободной форме в текстбокс. После чего в основной вкладке заполняется краткими именами из этого списка. Список парсится построчно. Если строка непустая - вызывается гет_фёст_нейм. Всё. Зачем городить огород из отдельных полей?
Я модератор вашего треда! Начиная с этого момента вы будете говорить только тогда, когда к вам обращаются, и первым и последним словом, выходящим из ваших поганых глоток будет слово «Сэр!» Это понятно, мрази! Если вы, девчонки, выберетесь из /gd/, вы станете разработчиками, молящими о том, чтобы началать делать игру! Но до этого дня вы просто блевотина! Вы низшая форма жизни на земле! Вы вообще нихуя не люди! Вы всего лишь неорганизованная стая скользких вонючих жаб! Я строг и поэтому я вам не понравлюсь! Но чем больше вы будете меня ненавидеть, тем большему вы научитесь! Я строг, но я справедлив! У меня здесь нет дискриминации движков, мне насрать на unity, на уеч, на гамак и на годот! Они все здесь одинаково никчёмны! Моя задача – избавится от тех, кто неспособен делать игры! Вам это понятно, мрази?
>>565342 >4. Си++ тоже возможен двумя путями, но тебе, я полагаю этот пункт не понадобится. А меня вот как раз этот пункт интересует больше всего. Может кто объяснить как использовать плюсы и насколько широко они тут могут применятся? Ищу небольшой движок для обучения плюсов.
>>565834 >насколько широко они тут могут применятся? Максимально широко. Весь API движка доступен. >Может кто объяснить как использовать плюсы Где то в прошлых тредах поянял. Либо пишешь либу и подключаешь ее в настройках проекта. Либо пишешь модуль и компилируешь его вместе с движком.
>>565896 Непонятно зачем было релизить сломанную версию. Инвесторы не торопят, живи себе на донаты. Конкурентов у движка нет, ни в опенсорсе ни в проприетарщине.
>>565965 Так он видимо и жалуется, что слишком мало. Одноклассники не оценят. Сам подумай, одно дело пакмэн весом 30мб, другое дело 120мб. Очевидно больше лучше, в нем какие-то волшебные штуки засунуты, не иначе.
>>565916 > Конкурентов у движка нет, ни в опенсорсе ни в проприетарщине. Если бы ему дать на маркетинг половину денег маркетинга юнити, то затмил бы юнити к хуям.
RayCast работает только когда у него enabled включено? Вроде бы не должно. Но, например, на нажатие кнопки делаю что-то такое: set_enabled(true) is_colliding() set_enabled(false) то коллайдинг не срабатывает.
Нихуя не шарю в шейдерах и прочем говне. Хочу чтобы относительно статичное освещение замутить сделать тайлмапу вторым слоем и хуячить полупрозрачные пиксели на нее. Хуевая идея?
А в чем отличие Kinematic от Static Body? Просто для внутренностей движка, чтобы знал какого типа данные в буфер видюхи отправлять, или есть что еще полезно для разраба?
>>566108 Для внутренностей движка, только для обсчета физики. Static это стены, которые никогда не двигаются, Kinematic - это то, что ты типа кинематографично двигаешь, например двигающаяся платформа или примитивный персонаж который ходит влево-вправо, Rigid- это симуляция физики с массой, ускорением и т.д. просто Area - область взаимодействия для определения коллизий.
>>566159 Читал, не понял. И что это за вектор origin? Translate-то все равно в basis лежит. Оно конечно можно извлекать basis.x.x, basis.x.y, basis.x.z, но может что уже готовое есть для этого. И если уж ты не знаешь ответа на задаваемые вопросы, то лучше промолчать и ничего не писать.
>>566164 Так и в чем разница-то у Kinematic и Static ? Ну сделаю я персонажа Static и также буду его двигать. Разница в наличии методов move, которые проверяют соударение, а при движении статиков такого нет?
Годотовасики, помогите, плз. Я чего-то затупил с питон-стайлом кодинга. enemylist = $SpotArea.get_overlapping_bodies() это нормальный способ создавать список мобов, которым я иду бить морды (не на каждом тике, офк). Потом я этот список чищу, но если цикл писать как for body in enemylist: то я потом не могу вызвать enemylist.remove(body) чтобы не бить морду себе. Как поступил бы правильный пацан? for по индексам от нуля до .size()?
>>566205 Так. Русский у меня сегодня тоже как gdscript. Первый тезис — это тоже вопрос, но я уже понел на него ответ, так как SpotArea наследуется от чего ни попадя, она почему-то не стала огромной для потомка, и туда не попали мобасы.
>>566216 Нулевой? Ну это решает проблему только с мазохизмом, а ведь тел в кадре предполагается немало. Я уже сделал итератор числом и чувствую себя очень тупым.
>>566223 Можно и так (кстати, нужно, чтобы не обрабатывать агрессию по отношению к деревьям и стенам). Надо записать это в какой-нибудь файл «костыли.txt» и время от времени туда залезать и смотреть, что я опять сделал не так.
О-МАЙ-ГАТ! Сигналы с биндингами это такая СИЛА! СИЛИЩА! Рассмотрим на примере ноды MenuButton. У неё есть потомок PopupMenu, но в редакторе не вынесены ссылки на этот потомок. Однако, мы можем обратиться к экземпляру менюшки в рантайме, вызвав у кнопки get_popup() И вот нам надо организовать такой часто применяющийся контрол как текстбокс с кнопочкой-меню, иначе говоря, комбо-бокс. Если пошастать по вкладкам сигналов в редакторе, мы не увидим способа сделать это.
Но давайте напишем в _ready() вот что: var popup = $".../MenuButton".get_popup() var textbox = $".../TextEdit" popup.connect("id_pressed", self, "popup_menu_pressed", [popup, textbox]) [popup, textbox] - вот это биндинги и это главная СИЛИЩА! Далее мы напишем процедуру popup_menu_pressed(ID, menu, control) в которой ID - это обязательный аргумент длелегата-сигнала, а вторые два - наши биндинги, которые передадутся в процедуру при каждом вызове сигнала. Таким образом тело процедуры полностью инкапсулировано от остального кода, при этом имеет всю необходимую инфу для обработки меню и передачи выбранного пункта в текстовый бокс: control.text = menu.get_item_text(ID)
>>566301 >проводить бенчи >годот Gdscript лучше не бенчить, чтобы не расстраиваться лишний раз. Юзая годот, ты должен быть рад, если твой код просто запускается и кое-как работает.
>>566471 поможет, разумеется. как и дроч UE поможет. даже если языки имеют разный синтаксис и в разной среде, но общие знания вроде "как повернуть вектор", "как сделать чтобы камера красиво сзади летала", "как написать менеджер" и прочее разумеется останутся.
но я бы на твоём месте сначала полез в юнити а потом в годот.
>>566537 > Опыт в виндоус как то помогает опыту в линукс? Бля, ну вообще то я думаю, что человек, сидевший на винде разбирется в линуксе быстрее, чем моя бабка, которая компом никогда не пользовалась.
>>566554 >Помешать эти знания точно не могут. Парадигмы могут мешать. Вот тут большинство знает одну парадигму ООП, две выучить уже тяжелее. Но им похуй, они и на этой игры делают.
А как правильно организовать изометрическую мапу со стенками? В примерах я видел, что вроде бы корректно работает, если всех юнитов забросить дочерними нодами от тайлмапы, изображающей стены. YSort нужен в такой ситуации? (А то по-моему он всё портит.)
Решил в годотчину вкатиться. У меня вот с ходу возникли вопросы, на которые ответ не могу найти уже в течение часа. 1) Как изменить дистанцию отрисовки сцены? У меня не отрисовывается целиком то, что должно быть видно (кусок планеты) + не отрисовывается источник света. 2) Как отключить фоновый свет и серую подложку на сцене? 3) Как выбирается позиция, относительно которой вертится сцена по нажатию колеса? Можно ли сделать несколько якорей, относительно которых буду вертеть сцену? >>566857 На самом деле у тебя всё состояние сцены хранится в каких-то переменных. Вот их и надо записать правильно в простейшем случае. А потом считать и восстановить сцену.
>>565976 В билд можно напихать гиг ресурсов.>>566945 >1) Как изменить дистанцию отрисовки сцены? У меня не отрисовывается целиком то, что должно быть видно (кусок планеты) В настройках камеры. >2) Как отключить фоновый свет и серую подложку на сцене? В настройках мира. >3) Как выбирается позиция, относительно которой вертится сцена по нажатию колеса? Можно ли сделать несколько якорей, относительно которых буду вертеть сцену? Ух, ответом на этот вопрос будет волшебный мир векторов, матриц, квартенионов.
>>567011 Ну давай по пунктам разберем твои придирки: >1) Как изменить дистанцию отрисовки сцены? У меня не отрисовывается целиком то, что должно быть видно (кусок планеты) >В настройках камеры. Конкретно здесь что не ясно?
>>566945 >На самом деле у тебя всё состояние сцены хранится в каких-то переменных. Вот их и надо записать правильно в простейшем случае. А потом считать и восстановить сцену. Я это понимаю, но у меня там дохуя состояний у даже самой маленькой сцены выходит, переменных дофига, и если что-то забуду, то потом баги чувствую полезут. Надо на свежую голову заняться.
>>567017 >у меня там дохуя состояний у даже самой маленькой сцены выходит, переменных дофига Определяем, какой объект должен сохранять свои переменные. Пишем в коде такого объекта таймер, который периодически пишет свои данные в глобальную структуру, которую видно всем. Я такую структуру называю просто, без заморочек - GameWorld. Таким образом, в этой структуре мы всегда имеем актуальное состояние всего игрового мира (даже незагруженных в данный момент локаций, объектов и т.п.) И функция сохранения просто сериализирует (записывает в файл) эту структуру. Функция загрузки наоборот, читает из файла и записывает в память эту структуру. После чего всем объектам направляется широковещательное сообщение о том, что мир загружен. И они сами делают нужные дела: кто-то самоуничтожается, кто-то меняет позицию, кто-то создаёт дочерние объекты, а они в свою очередь загружают себе дочерние объекты. Всё выполняется рекурсивно, от большего к малому.
>>567019 Звучит мммкасимум криво, годот не дает гарантий в каком порядке прилетят сообщения о загруженом мире, как следствие ты будешь ловить при одной загрузке одно состояние, а при другой из этого же файла краш или тихие глюки. Так же таймер никак не гарантирует что он не сработает во время обновления, когда половина объектов уже поменяла положение а половина нет. Ты хоть игру на паузу то ставишь? Хотя очевидно что нет.
А godotdevelopers.org всё, ушёл в историю? Много гугла выводит туда, а ресурс не подаёт признаков жизни. >>566945-чел. >>567004 Не совсем понял, как влияют настройки камеры, если даже в редакторе у меня пикрил.
>>567021 >годот не дает гарантий в каком порядке прилетят сообщения Ты дай гарантии. >>567021 >Ты хоть игру на паузу то ставишь? У меня КА переходит в состояние записи в файл и отвергает новые данные от объектов. >>567021 >Хотя очевидно что нет. Ой, всё.
Как задать объекту координаты, ориентируясь на координаты основных осей? Только получить могу через transform.origin, но даже об этом в доках на 3.1 ничего.
Почему когда трогаю rotation, у меня translation просто в Вальгаллу летит? Объект (а вместе с ним и камеру) начинает дико закручивать и уносить прочь от предполагаемой траектории движения. Их как-то можно изолировать? KinematicBody, если что.
>>567119 Просто применяю к KinematicBody, а у меня камера и это тело относятся к spatial, в итоге и камера тоже начинает вращаться, отсюдав меня посетила мысль, что трансляция происходит видимо и на spatial, раз камера к нему относится, поэтому, вероятно, стоит применять трансляцию к spatial в целом? Но опять же. Столкновения обрабатываются через KinematicBody, значит надо получать ноду или spatial, или всё же применять к KinematicBody.
>>567123 Если делаешь обычного персонажа из примеров, то делай кинематика, у него дочерние коллижен шейп и камера. Камеру можно тоже отдельной сценой, тогда при создании нпс, которому камера не нужна, просто будет удаляться со всеми скриптами, но оставляя логику движения и поворота самого шейпа. Вращаешь сам кинематик, камера движется с ним. Дополнительно на мышь повесить движение камеры по вертикальной оси. В простейшем случае будет примерно как на пике. Соответсвенно что плеер, что нпс будет модульно собираться из нужных кусков.
>>567072 >когда трогаю rotation, у меня translation просто в Вальгаллу летит? Объект (а вместе с ним и камеру) начинает дико закручивать и уносить прочь Потому что ты трогаешь rotation у себя под одеялом в радианах, не переводя в градусы. А радианов в круге всего 3 целых штуки и ещё попугайское крылышко в виде 0,1415927! Поэтому, когда ты пишешь например, rotation = 90, годот честно проворачивает объект на 90 радианов. А это 30 полных поворотов вокруг своей оси, плюс попугайское крылышко. Соответственно, когда объект так дико вращается (быстрее фреймрейта между прочим), он, как электрон в атоме, не имеет точного местоположения. На экране ты его видишь в случайной позиции, на том моменте, где его застала отрисовка. Соответственно и двигаться он будет не по траектории, а рандомно, у том направлении, куда он повернулся на данном шаге просчёта физики. Просчёт физики по умолчанию имеет такую же частоту, как и отрисовка, но можно сделать пореже в настройках. НО ТЕБЕ НЕ ЭТО ДЕЛАТЬ НАДО Тебе надо либо подставлять значения градусов переведенные в радианы, либо использовать rotation_gedree где углы принимает в градусах.
Кто-нибудь может объяснить с координатами? Объект движется по орбите радиуса R. Если я меняю радиус (опускаю или поднимаю объект на орибите, то у меня начинает сдвигаться центр окружности, т.е. не относительно координат (0, 0, 0) радиус растёт, а относительно текущего положения, что приводит к тому, что центр откружности сползает от цента планеты. На втором пике примерный результат. Если сперва радиус увеличиваю до R1, а потом уменьшаю до R2, то это приводит к сползанию центра, что в случае R2 приводит к тому, что орбита начинает проходить сквозь планету, что неверно. При использовании to_global большой разницы не вижу. Координаты на окружности вычисляю по известному радиусу и углу поворота.
>>567296 Делаешь структуру как на пике. Т.е. у тебя есть планета допустим в нуле координат, далее создаем spatial и его тоже засовываем в нули координат. Спутник засовываем в spatial. Translation твоего спутника - это радиус, меняешь его как нужно. Для вращения меняешь rotation у spatial.
>>567307 По такой формуле в моем примере спутник летает вокруг планеты по синусоиде. Т.е. при изменение радиуса полета от планеты никаких искажений не происходит. Проверь свою формулу, по которой считаешь.
>>567319 >Ты вообще о чем? Я вообще о том, что ты, как мне кажется, ебашишь код от фонаря, не разбираясь в тригонометрии. Давай сделаем так. Что ты вообще хочешь сделать? Опиши вкратце одним постом, или нагринтексть из своих постов выше. А мы с аноном подумаем, как это тебе будет проще реализоват.
>>567315 >>567313 Я, в общем, сам дурак, изменял позицию самой ноды через translate. Формула X = RxCOS(угол) оказалась верна. Повторил подвиг профессора Фарнсворта. Видео релейтед получается. >The engines don't move the ship at all. The ship stays where it is and the engines move the universe around it. https://www.youtube.com/watch?v=1RtMMupdOC4
Посоны, а как вы реализовываете катсцены? Я пока додумался только до отключения обработки инпутов и зон во время катсцены, и функций типо иди на лево столько-то шагов, проиграй такую-то анимацию (и то пока не заставил их работать). Это норм реализация?
>>567569 Вспоминая баги, что я видел за 25 лет игр, полагаю, что именно так и делалось большинство катсцен. На это явно намекают баги, когда ракурс меняется, а управление игроку не отдаётся нормально. Ну или пререндер сцены, как в каком-нибудь вове.
>>567569 >и функций типо иди на лево столько-то шагов Зачем, если можно заанимировать через animation player? Через него можно анимировать все свойства нод.
>>567691 А я б вот тоже послушал. Меня интересует, насколько реально писать на нем непростой ИИ для стратежек например, сетевой код для шутеров и что там с мультиплатформой на практике.
>>567697 Зависит от сложности проекта и величины команды. Пишешь основные состояния поведения, саму логику можно дать на откуп дизайнерам или кто у вас там будет самой логикой заниматься. Заму FSM пусть делают на нодах, если им привычнее. https://docs.godotengine.org/en/3.0/_images/engine_design_fsm_plugin.png Пример сетевого шутера где-то вроде был в ассетах, можно оценить сложность. Если mmo пилишь или социалочку, то как и на других движках будешь улезать в низкоуровневое на native. Если есть бюджеты на красивости для шутера, то лучше взять UE4, он под него лучше заточен из коробки. Мультиплатформа работает, не проверял много только на маке и айфоне.
>>567697 >Меня интересует, насколько реально писать на нем непростой ИИ для стратежек например, сетевой код для шутеров и что там с мультиплатформой на практике. >насколько реально нереально
>>567705 Открой список багов на github. И вскукареки хуана, что это все нвидиа, годот ахуенный.
Поддержка мульты требует постоянных больших усилий, для этого нужен целый штат программистов, которые никаких фич добавлять не будут, а только поддерживать мульту.
>>567703 Юнити с его шарпом и моно это совершенно не вариант для иоса, учитывая какие там костыли используются. Плюс, мне нужно норм 2д, а не 3д подрезанное.
>>567725 Я пишу только про себя. А таких багов на любом движке есть до хрена. Просто в закрытых ты всего этого не видишь, потому что это все уходит в техподдержку. >>567731 Да, ИИ вполне себе хорошо пишется средствами движка без натива. Вот сложные алгоритмы поиска путей для кучи юнитов в RTS уже надо тестировать, возможно их уже стоит и в нативе писать и дергать из скриптов.
>>567755 >Как в годоте с цветокоррекцией? Ну, цветокоррекцию там видно сразу, как только первый меш на сцену положишь. Он отображается синюшным, хотя альбедо у него белое. Вопрос, является ли цветокоррекцией эта цветокоррекция? Как получить доступ к настройкам этой цветокоррекции и сделать дефолтный куб белым? Ответ прост: в настройках окружения. Этого достичь можно двумя путями. 1. Если не планируется динамически менять цветосветовые настройки окружения, то просто щелкаем двойным щелчком мыши файл default_env.tres в корне папки проекта и в инспекторе отразятся все его свойства, где можно вдоволь насладиться возможностями цветокоррекции. Нас интересуют свойства (ambient light, tonemap, exposure) и т.п. 2. Если по задумке игры планируется часто менять окружение, например, входить в пещеры, выходить из них в подземелья фортов, затем подниматься в сами форты, потом снова выходить на улицу, а на улице уже дождь пошёл, пока ты исследовал пещеры, то тогда нужно создать несколько таких файлов. И этот файл-ресурс подгружается в камеру, у ней есть специальное свойство, на пикрелейтеде я показал, как в камеру загрузить дефолтный файл. Ещё пример: можно сделать файл-окружение с настройками вида под водой, сделать воду, состоящую из меша с поверхностью и Area у которой 1) гравитация настроена на выталкивание объектов, 2) при попадании в неё объекта-камеры, она присваивает Environment камеры наш "подводный" файл, при выходе камеры - возвращает ей тот файл, что установлен текущей сценой/картой/уровнем.
>>567771 Анончик, может ты знаешь. Утрированный пример: есть у меня город, а в нем автобусные остановки. На весь город я кидаю систему частиц с каким-нибудь снегом, но они проникают сковзь все. Как оптимальнее сделать так, чтобы частицы не проникали в какие-то зоны? Только через шейдерную систему частиц? Или есть все же хитрый способ.
>>567778 Ну я и писала, что через шейдерную систему частиц, а не через обычную, хотя может через шейдерный материал еще. Ладно, спасибо, видимо нет простого способа пока, буду этот пилить.
>>567781 Но ведь >These nodes do particle processing using the CPU (and draw using the MultiMesh API). They are quite efficient for lesser amounts of particles and work on all hardware. Additionally, these nodes open the window for adding features such as physics interaction, sub-emitters or manual emission >physics interaction https://godotengine.org/article/godot-3-1-released#cpu-particles
>>567794 Да какая разница сколько снежинок, просто метод подскажи как ограничить партиклы в какой-то области.
Тут может не знаю, разрабатывалась сто лет назад на сайте геймдев игра хруст снега, вот там как раз через шейдер создавали такие частицы и через пересечения и нормали прерывали падение и оставляли след вроде еще. Так что если метода нет в движке пока такого, то буду этот способ пользовать.
>>567802 >через шейдер создавали такие частицы и через пересечения и нормали прерывали падение и оставляли след вроде еще Дай ссылку, плиз. Звучит, как годнота!
>>567815 Не, пока ничего не вышло. Там была настройка Visibility AABB но она как-то ни на что не повлияла. Видимо, все таки шейдер. Если надо до усрачки и только над одним навесом остановки уменьшить, то я бы сделал в лоб - разделил на несколько эмиттеров, и подобрал в средней части параметры чтобы сыпалось короче.
>>567818 Ну к сожалению в проекте там особо не разделишь, потому что таких мест будет много: дома, навесы и прочее, да и конкретной привязки их нет, чтобы дизайнеров таким обременять.
Есть еще ру-канал на ютьюбе, автор там упомянул мельком, что вроде как это просто избавляться от частиц внутри дома. Задала этот же вопрос, но мой коммент он проигнорировал)
>>567825 Ты так говоришь, будто современные эрпогэ не фёст-пёсн. Чем любой современный НЕшутер отличается от шутера? Просто интерфейс сложнее. В шутере надо только аптечки и патроны подбирать, а в эрпогэ еще есть диалоги, прокачка, лут и крафт.
>>567831 > всегда перпендикулярно экрану А если в фпс посмотреть вверх? А если проверю? >>567830 То что ты называешь олдскульным рпг - тот же тайкун, только с чуть большим количеством таблиц и ещё парой механик. >>567829 >появилась одна мысль, завтра попробую реализовать Запихнуть листинги шейдеров в годотовский шейдерматериал?
>>567832 >> Запихнуть листинги шейдеров в годотовский шейдерматериал? нет, обойтись вообще без шейдеров, проверю насколько идея жизнеспособна, ночью как раз обмозгую еще, пока засыпать буду
>>567833 Вот ещё костыльный вариант, нашёл по форумам. Для остановок не годится, а для многоэтажек может подойти. Суть на пикрелейтеде. Описываем плоский меш произвольной формы в любом тридэредакторе. Импортируем меш в годот. Нажимаем кнопачку на пикрелейтеде. Получаем результат: осадки выпадают из эмиттера сложной формы, соответственно в местах, где стоят дома, частицы не излучаются. Однако если добавить смещение (ветер), то всё это тоже будет с артефактами.
>>567848 Надо просто брать и делать мозговой штурм. Всё равно подберёшь вменяемый вариант. Вон, я три дня бился только над траекторией вокруг планеты. А там в итоге всего несколько ифов и одна система уравнений. Перекопал тригонометрию, системы координат, полез в геодезию. А всё в итоге решилось сидением с листком бумаги и рассуждением логически с последующими записями на бумаге. Просто не в первый раз сталкиваюсь с таким. Когда-то пилил на юнити сцену игрового стола. Тоже всё решилось вариантом "хорошо посидеть и пораскинуть мозгами на предмет вариантов". Правда почитав тебя, немного ужаснулся, т.к. частицы тоже хочу.
>>567848 В принципе, менее костыльный вариант, это если сцена не меняется и все такие здания - статическая геометрия, то после создания из сцены получить текстуру с картой высот и от нее уже создавать. Но тоже ни ветра ни изменения какого-то.
>>567933 Мне вообще попадалось объяснение, что они бы сделали на глес3/вулкане, но им же пришлось глес2 для инвалидов добавлять, а не нем не получится компьют шейдер.
>>567938 Нихуя не понял в чем наебался, но починил уже. Засунул в словарь просто строку к текстуре и сделал load с этой строкой на стадии обновления инвентаря.
Целый день ебусь с экспортом релизного апк файла. Сделал хранилище keytool -keyalg RSA -genkeypair -alias zalupagame -keypass zalupapassword -keystore release.keystore -storepass android -dname "CN=Kirill Kirillov,O=Kirill GameIndustry,C=US" -validity 9999
Указал в в поле экспорта Release путь до файла хранилица, в поле username указал zalupagame, в поле пароль zalupapassword. И при экспорте появляется ошибка jarsigner' returned with error #1.
>>567962 Вангую, что там шейдер чекает цвет канвы в точке отрисовки, и если цвет != черный, то отрисовывает попадание капли на поверхность. Если так, то для триде это не годится.
>>567819 В любом случае, не вижу сейчас способа сделать это по другому. Как пишет анон >>567848 ты можешь создать меш, который излучает. То есть логика такая - ты хочешь получить зоны, в которых НЕ излучается. Но тебе доступны только зоны, в которых излучается. Значит, ты можешь написать утилиту. Дизайнеры рисуют зоны, где снег не идет. Или назначают какой-то материал. Пофиг какой. Твой инструмент или скрипт перед запуском создает меш-инверсию. То есть вычитает из полного объема уровня помеченные меши.
>>568010 Тащемта, если wesnoth перенесут на годот, то это будет пруфом того, что он пригоден для разработки полноценных игр, как минимум в 2д. Ибо там достаточно всего - много геймплейной логики, прокачка юнитов, боевка, ИИ противника, плюс игра по сети есть.
>>568017 А какая у вестнота архитектура? Если как в FreeCiv, то это не будет пруфом вообще ничего. Потому что там бэкенд логики отдельно. Если там будет просто рендер на годоте - вообще ни о чем.
>>568017 Эта хуйня умеет выводить спрайты и в ней есть скриптовый язык. Разумеется на ней можно сделать игру. Вопрос лишь в том, нужно ли это делать и стоит ли игра свеч? нет
>>568025 Без понятия, можешь сам посмотреть, опенсорс же. https://github.com/wesnoth/wesnoth Но как я понял из комментов в твиттере, они хотят полностью портировать с С++ на годот, не только рендер. >>568026 Ну, разработчики веснота видимо считают иначе, раз решили портировать. Я не думаю, что они совсем дебилы, все-таки смогли сделать такой масштабный проект, при этом довольно качественный для опенсорса. Раз пробуют - значит, на то есть причины и годот может дать какой-то профит.
>>568028 >они хотят полностью портировать с С++ на годот Надо чтобы им кто то сказал, что там и на C++ все работает. >Раз пробуют - значит, на то есть причины и годот может дать какой-то профит. Например пеар.
>>568017 >пруфом того, что он пригоден для разработки полноценных игр, как минимум в 2д Кто-то сомневался? Меня больше напрягают перспективы и странный способ разработки Хуана
>>568036 Ну я тоже на юнити смотрел как на странного звверька до выхода HS. Хотя даже то, что это близзы были не спасало игру от каких-то дурных багов первые года 1,5 даже после релиза. Например, когда все текстуры объектов начинало пидорасить непонятно как, что те временами вытягивались в сторону камеры. Пофиксили же. Теперь юнити только ленивый не хвалит. А года через 4 и Хуан, думаю, немало вещей запилит. Надо всго несколько популярных релизов на годоте и он пойдёт развиваться с нарастающей скоростью.
>>567988 >>568028 Странно, что они решили ее еще куда-то переносить, хотя там по сути уже все готово, только допиливать контент. >>567979 Это -да, но это все равно не решает проблему изменения угла падения осадков. >>567975 Если такой, то точно не подходит) >>567974 АГа, не вижу причин скрывать такое. Что ты такой хмурый)
>>568036 >Кто-то сомневался? Залетные юнитеки вон сомневаются. >Меня больше напрягают перспективы и странный способ разработки Хуана Есть такое, я уже не верю, что однажды годот сможет потягаться с тем же уечем на поле 3д. Но для 2д его можно считать вполне полноценным и пригодным к использованию, как статтеры починят
>>568038 >Странно, что они решили ее еще куда-то переносить Могли напороться на труднопреодолимую проблему.
Народ, а помогите по дельте. Я же правильно понимаю? Есть тележка, едет со скоростью v=2 м/с. Расстояние она пройдёт за s += v x t x delta = 2 м, если func _process(delta): будет происходить секунду?
>>568042 >При переносе они и lua-машину сделают в godot? Либо так (ибо годот открыт и новые языки/среды исполнения прикручиваются только в путь, как показал тот японец с тайпскриптом), ибо перепишут на gdscript. Выгода? Может, legacy код начал мешать жить, а рефакторить уже тяжко, проекту ведь лет 15, если не больше. Может, что-нибудь с кросс-платформой, у них там полно низкоуровневого кода, который надо поддерживать и допиливать время от времени, чтобы всё работало четко и на линуксе, и под шином, может хотят переложить это на движок и сосредоточиться на игре.
>>568045 >Либо так (ибо годот открыт и новые языки/среды исполнения прикручиваются только в путь, как показал тот японец с тайпскриптом), ибо перепишут на gdscript. И снова все отлаживать.
>>568050 Ну хуй знает, остается только ждать дальнейшего развития событий, они обещали написать о причинах перехода. На самом деле - звучит как какой-то сюр, портировать стабильный проект на годот в тот момент, когда активная разработка уже завершена и идет насыщение дополнительными фичами - это странно. Это как если открываешь новости, а там пишут, что Кодзима решил перепилить свой death stranding на годот, поэтому в ближайшие лет пять релиза ждать не стоит.
>>568045 >и новые языки/среды исполнения прикручиваются только в путь, https://docs.godotengine.org/en/3.0/getting_started/scripting/gdscript/gdscript_basics.html >In the early days, the engine used the Lua scripting language. Lua is fast, but creating bindings to an object oriented system (by using fallbacks) was complex and slow and took an enormous amount of code. After some experiments with Python, it also proved difficult to embed.
Посоны, я понял. Это должна была быть первоапрельская шутка, но чуваки проебались с таймингом и запостили на неделю раньше.
>>568054 Так это Хуан просто велосипедист, он не может нормально работать с чужим кодом. Представь, сколько времени и сил было потрачено на тот же ебучий текстовый редактор внутри годота, который в итоге все равно сосёт у какого-нибудь visual studio code по всем параметрам? Любой нормальный человек спросит, а почему бы не использовать сторонний текстовый редактор, в котором есть миллион фич и плагинов, им пользуется куча народа, все к нему привыкли, тем более - он бесплатный. Надо только запилить плагин для подсветки и автокомплита, что не так уж и сложно. Но у Хуана не возникало такого вопроса, он вместо фикса багов и доработки движка готов тратить месяцы на разработку текстового редактора с нуля, пусть хуёвого, кривого, с функционалом блокнота из windows 98, но зато своего. Вот и с gdscript та же история. Медленно, ага. Угадай, кто соснет, если бенчмаркать luajit и gdscript. В команде веснота достаточно нормальных сишников, которые луа тебе куда угодно заэмбеддят, и всё это будет летать быстрее некуда.
>>568038 По частицам и остановкам идеален был бы вариант, чтобы в ноде Area/Area2D была опция absorb_particles и просто загородить этой площадью все остановки, дома, и все частицы вне зависимости от смещения по осям просто пропадали бы, поглощаяясь этими площадками. Хуан, сделай!
>>568054 Кстати, непонятно почему Хуан описал, что они отказались после исследования от луа и питона и написали свой. Что оно дало - непонятно. Многопоточность реальная там вряд ли есть в gdscript, строгая типизация - ну ок, но тоже не повод отказываться от луа.
>>568059 Да хотя бы просто в пайплайн бы запили возможность вписывать в уже готовый функционал шейдеров compute и этого бы уже хватило для начала, это вот делается неболшим дополнением в код, но это не плуреквестят, поэтому многие пока сами себе вписывают и компилят движ. >>568058 ну с luajit пока еще никто не сравнится)
>>568060 >Что оно дало - непонятно. Хуан кончил несколько раз, дроча на свой код - точно так же, как и со своим редактором кода, своей самописной физикой, своим личным классом для работы со строками, своей кросс-платформенной абстракцией вместо стандарта индустрии в лице SDL.
>>568062 >поэтому многие пока сами себе вписывают и компилят движ Так и знал, что рано или поздно мы в это окунёмся. Пришло время скомпилировать движок.
>>568039 >для 2д его можно считать вполне полноценным и пригодным к использованию >как статтеры починят Даже самые упоротые лизуны рыжей волосатой жопы Хуана соглашаются что годот неюзабельное говно
>>568072 Интересно, сколько им еще времени понадобиться, чтобы наконец-то осознать что годот это движок без перспектив и они просто тратят на него свое время: месяц, год? В любом случае конечный результат будет неизбежным: все ИТТ пожалеют о потраченном времени и начнут учить уже другой движок.
>>568094 Сейчас разбираюсь в архитектуре, читаю код на гитхабе. Если мысли уже на пару реквестов, хотя может еще не до конца понимаю задумку, к выходным, наверное, управлюсь. Многое кажется странным, да, и это с учетом того, что движок сначала использовался как внутренний в компании у них.
>>568097 >Если мысли уже на пару реквестов, Тебя на хую провернут, Хуан не допускает мимо-крокодилов к разработке новых фич, максимум можешь пофиксить какой-нибудь старый баг. Весь новый код может писать только Хуан.
>>568113 Я не он, но скажу, что применительно к годоту можно ввести один простой критерий - полноценная игры это игры выше уровнем чем "васян сделал на коленке за неделю." По какой-то странной причине на божественном аналоговнет годоте таких игр нет. Даже в том шоукейсе из шапки все игры это именно такой мусор, который было бы стыдно показать даже на недельном геймджеме.
Вас самих не удивляет, что это главный вопрос, который вам все задают и почему его на задают по отношению к другим движкам? Ни на какие мысли такая странность не наводит?
>>568120 >Ни на какие мысли такая странность не наводит? Наводит на мысль, что на Годоте можно делать действительно хорошую игру, как ты верно заметил, на за неделю. А например за год-за два. Oh wait, 3д только год назад появилось. Значит и игры не за горами.
>>568135 >Значит и игры не за горами >Игр полно Лол. Я-то уже успел подумать, что встретил среди фанатиков адеквата, но нет, похоже у него просто мозг на секунду включился, но затем сразу же включилась привычная мантра, выключая сознание.
>>568112 Это у годотовцев называется игра? А я думал это видео где какой-то хер стоит в школьной аудитории и уныло о чём-то пиздит.
Ладно ладно, не изображай из себя мегамозг. Я, не без труда, науглил этот Интерпид. Оказалось, что это стандартный Эскейп зе рум, коих несколько миллионов на флэше, на который натянули какие-то 3д модельки уровня ассетов юнити. Этот хуй, понимая какое же это неполноценное говно, даже денег за него постеснялся просить и раздаёт в стиме бесплатно. То есть он ещё и заплатил стиму, чтобы вы могли в треде говорить, что ОДНА ИГРА ЕСТЬ. Ну поздравляю, у вас теперь есть ОДНА игра. Такую на юнити можно сделать за дня два, может быть три если будет очень лень. Лучше уж продолжайте Самосбором Ребелион себя характеризовать, это хотя бы не так стыдно. Там хоть постиронией можно попробовать оправдаться.
>>568154 Читай слайды и слушай, что мужик говорит. >>568152 Если ты выяснил, что для твоего проекты и команды не подходит годот - не используй его. Если ты фанатеешь от юнити - используй юнити. Иди уже создавай игры, будут вопросы по существу - возвращайся.
Каждого персонажа нужно создавать как отдельную сцену, если делать их локальными, то файл с парой персонажей будет весить чуть ли не гигабайт.
Тут показано куда что крутить, чтобы настроить персонаж. Делать как в видео не надо, это для тех, кто хочет вырезать лишние ключи формы, но там показано, где настройки персонажа. https://www.youtube.com/watch?v=cPVjNh2Ki4I
Лицензия свободна в том числе для коммерческого использования как и самого MakeHuman с моделями.
>>568156 Так вопрос всегда один - если это такой лучший в мире движок, то где хоть одна полноценная игра?
Смешно конечно когда вы виляете, говоря что годот это прежде всего 3Д, а 2Д там лишь для галочки, поэтому полноценных 2Д игр нет, но при этом когда спрашиваешь про 3Д игры, выясняется что оказывается-то 3Д завезли всего год назад и 3Д игр оказывается тоже нет. Но давай смех и виляния отложим в сторону и ты покажешь действительно полноценнуюпо твоим критериям игру на годоте. Не важно сколько Д, пусть это будет даже пиксельная параша. Но ты сможешь сказать, что вот он, флагман мира Годот, вот она полноценная игра на лучшем в мире движке.
>>568195 Во второй версии триде в зачаточном состоянии. Организация нод немного другая, нет того, что нужно и есть в 3х. Придётся изобретать много велосипедов. В целом версия 2х осталась в нулевых.
"Godot is good, but it's scene-graph-based, and even has no Sprite Batching. Xenko is just like XNA, and does Sprite Batching like DirectX, which is all better than Godot for my game."
>>568205 В годоте есть батчинг, хуй знает что этот хуй несет. Rastering is done via another opaque interface, Rasterizer, which, in Godot 3.0, was further optimized to take batches of objects instead of having to call one by one to render (which hurts performance).
>>568212 Каким образом повтор поста какого-то неосилятора, не разобравшегося как работает годот, или вообще платного пиарщика, из какого то левого репозитория, что-то пруфает? Я скинул текст из документации годота, батчинг есть.
>>568215 Имеется в виду scene graph. В xenko просто immediate mode, где ты вызываешь функции отрисовки спрайта в нужном месте, а в годоте тебе надо создать объекты спрайтов и настроить их, лишняя абстракция усложняющая простые игры.
>>568222 >> В xenko просто immediate mode, где ты вызываешь функции отрисовки спрайта в нужном месте Для слабых устройств это затратнее и жрет больше батарейку.
Товарищи, поясните за два пункта, кто копался в коде: 1) occlusion culling Оно всегда работает, когда просто кидаешь камеру? 2) threads когда в скриптах делаем var thread = Thread.new() и все такое прочее, то как оно под капотом работает: участок кода скрипта в самом движке на c++ кидает в параллельные потоки, или оно как корутины в Lua работает?
>>568254 А для тех кто сидит в уечетреде подходит уеч, ага. А вы сидите в этом треде потому что делаете коммерческий проект на годоте, а не просто маетесь хуитой передвигая кубики
>>568258 >бегая по доске с горящей жопой Но я не бегаю по доске, я захожу в годотред унижать безыгорных уебков сознательно севших на стул с хуями дрочеными от Хуана.
>>568255 > А для тех кто сидит в уечетреде подходит уеч, ага. Ну да. А зачем еще заходить в тред своего движка? > А вы сидите в этом треде потому что делаете коммерческий проект на годоте А причем тут коммерция?
>>568266 Нет, ничего не определяет, есть только frustrum culling, чтобы не рендерить что за спиной (не попадает в угол обзора камеры). Но если у тебя объекты за стеной они все равно рендерятся.
>>568265 >А зачем еще заходить в тред своего движка? Воображать себя игроделом, очевидно же. 99% уечедебилов - это шкальники, которые выбрали уеч из-за блюпринтов. У них даже в уме не укладывается идея выучить программирование. Нет, они стараются найти такое решение, чтобы игра как-то тама сама по себе сделалась, где не нужно прилагать никаких усилий.
Такие ролевые игры в разработчика. Не знаю зачем вы это делаете. Только серите в моем /gd/ ей богу.
>>568270 Не можно, ты ебанутый что ли? Если бы был один участок кода, где это можно было бы легко впилить, Хуана бы давно завалили пулл реквестами. Тебе придется перелопачивать лапшу из десятков файлов из многих тысяч строк, лучше просто забей и не лезь в исходники этой параши.
>>568336 Жди бэкенд на вулкане, ибо что gles2, что gles3 - для десктопа хуйня собачья и то и то, запиленное ради общей кодовой базы с мобилками и поэтому закрывающее годоту путь в качественный графоний уровня анрила.
>>568342 >что gles2, что gles3 - для десктопа хуйня собачья и то и то, запиленное ради общей кодовой базы с мобилками Блять, я и забыл об этом. А ведь действительно. А мы тут весь день обсуждаем, как зделоть снег из частиц не пролетающий сквозь крыши.
>>568342 Не, ну я не YOBA пилю, а стилизированное 2д говно, мне на графон пофиг. Интересно просто было может там с железом у одного меньше чем у другого проблем или еще какие-то плюсы. >>568338 Смотри выше.
>>568381 Если бы gles2 был запилем так же качественно как 3, то без вопросов его. А сейчас у тебя два стула: хреново запиленная двойка, но идет под большим количеством устройств и без таких шейдерных шейдеров, либо тройка более стабильная, но устройств меньше, т.к. старые мобилки отсекаешь.
>>568385 >Если бы gles2 был запилем так же качественно как 3 Зря Хуан полез глес2 пилить. Один хуй таким как ты не угодишь. Не было 2ки - хуёво. Есть 2ка - хуёво, недоделано.
>>568396 У меня пекарня 10-летней давности, еще какая разница. gles3 разогревает комп до 90 градусов цельсия. >>568393 Хуево было релизить 3.1 в данный момент времени, с недоделанным рендером. Но судя по обилию фоточек с конференций, теперь все понятно. Тысячи кириллов будут епаться с багами глес, потому что Хуану хотелось покататься по миру.
>>568409 >У меня пекарня 10-летней давности, еще какая разница. gles3 разогревает комп до 90 градусов цельсия. Окей, значит буду креститься и на 2-ке пелить.
>>568393 Мне угождать не надо, просто говорю как есть. Это естественно, что gles3 пилят с основания движка и там все пофикшено более-менее, а второй только запилили и еще не обкатан. >>568396 Если пилишь под десктоп, то особо никакой. Даже мой некроноут имеет gl 3.3, так что можешь спокойно и третий брать, ничего он там не греет на компах. Второй может даже больше будет, т.к. отрисовывает эти ваши модельки/спрайты через begin/end в опенджиэлях, а не через буфферы.
Пытаюсь я вставить шрифты и они все выглядят как говно, ну думаю, может они для таких маленьких размеров просто не предназначены, но нихуя, годот по какой-то причине на линуксе их рендерил как говно, открыл тот же проект в винде и шрифты заебенскими стали.
>>568428 >gles3 пилят с основания движка лол. gles 3 Хуан пилил для годота 3. А потом охуел от того говна что получилось, и стал пилить gles 2 обратно с нуля(!).
>>568431 >охуел от того говна что получилось Получилось не говно, картинка довольно крутая, я тестил на пизженных модельках, но производительность говно, тут он обосрался по полной как мудак.
>>568434 Нет, тыковка, просто у Хуана нет цели переписать андроид на всей планете и вставить всем в старый мобильник gtx2080 чтобы в нем появился глес3.
>>568439 Это, конечно, пиздеж, потому что сообщество может перестать донатить, а значит над Хуаном постоянно висит этот домоклов меч, который его подгоняет
>>568443 >висит этот домоклов меч, который его подгоняет Который его подгоняет растягивать работу и пиздеть как все сложно.
Да-да, это только в порнотреде одни уебки, наебывающие патронов, а хуан не такой.
У фанатиков всегда так - наша хуйня не такая, как похожие хуйни, а получше; наш лидер не такой, как другие лидеры, а лучше; мы сами не такие, как остальные.
>>568445 >Уже на github в подписях к issue пишут "i am patron". Не помогает Пусть не донатят, что вы за пидарахи ебанутые? Вы годами будете здесь сидеть и постить каждый день одну и ту же хуйню, как кто-то кому-то донатит, кто-то что-то ленится.
>>568443 >который его подгоняет ничего не делать. если Хуан сделает новый рендер за месяц, что он будет делать все следующие месяцы? Вот и растягивает простые задачи на год, вот он и велосипедит, вот он и переписывает одно и то же по десятку раз. Патреон для разработки мотивирует растягивать работу и имитировать ее деятельность. Если ты донатишь на патреон за разработку - то ты дегенерат.
>>568446 Причем тут пидарахи, шизик? Неприятно осозновать что Хуан это на самом деле заурядный кидала, а годот - бесперспективное говно без задач, да? Хуя ты себе там построил воздушные замки.
>>568447 >если Хуан сделает новый рендер за месяц, что он будет делать все следующие месяцы? Ну во-первых, ты пишешь хуйню, по такой логике можно топ двиг за год в одно рыло написать. Во-вторых, если люди видят, что хуан медленно делает и растягивают, пусть просто перестанут донатить. Не перестают, значит им нормально, отчего бомбежка то, пидрила? Он может вообще ничего не делать, написать в твиттер я перестаю, и все равно могут найтись люди которые продолжать донатить за красивые глаза и душу хуана, что ты рвешься то от этого? >>568447 >Если ты донатишь на патреон за разработку - то ты дегенерат. Ну и пусть, и притухни. >>568449 > а годот - бесперспективное говно без задач, да? Ну люди донатят, им нравится юзать годот, это ты себе что-то придумал.
>>568446 >Пусть не донатят Как показывает практика, это не так работает. Люди все равно будут донатить, писать в подписях что они патроны и надеятся на что-то. Донаты по своей сущности есть явление иррациональное. Донатят на эмоциях, чтобы почуствовать себя частью чего-то. Донаты на патреон в этом смысле ничем не отличаются от донатов на стримах твича.
Кароч, я понял. Люди учатся только на своих ошибках. Им рассказываешь о своем опыте, как проебывался с движками, а они считают, что их случай не такой, что они умнее и таких дебильных ошибок не совершат. Приводишь факты, аргументы, а им похуй. Уверен, для большинства пользователей годот это первый движок, который они начали серьезно изучать.
>>568517 Ну одно дело писать на таком для анализа данных, прикладного использования лично для себя, для души, вне коммерции. Мы же находимся на гд, где эту программу ещё другим показать надо, плюс сомневаюсьб, что на такое говно мамонта найдётся лишняя упоротая команда разработчиков (годот не в счёт, у него синтаксис схож с довольно популярным и простым питоном).
>>568536 А давай их сразу на c++ или посадим, ахуенно же! Потому-что на питоне сдавать ЕГЭ быстрее всего, да и основы основ усваиваются в нем быстрее, а потом можно и на другой язык переучиться дебич
>>568538 Основы логических операций and or not, циклов, ветвлений, процедур и функций, ветвлений, а также тренировка всего этого на базовых алгоритмах по типу нахождения простых чисел, работа с различными типами переменных и прочее. А уже в вузе идёт переход на различные юнити с сисярпами и прочую дичь.
>>568539 чем ближе к железу, тем понятнее. питон это абсолютнейший говноязык полный магии, который даже опытный сишник не поймет сразу. ньюфагам питон вообще мышление сломает. получатся скриптоинвалиды ничего кроме скриптовых языков неспособные понять.
>>568539 А если мухосранская школа находится на базе яндекс лицея (зато бесплатно) то к 10 классу там вроде уже идёт уклон в веб, телеграмм боты и подобное. Просто имел дело со всем этим (нет, не школьник) и узнал, что оказывается не всё так плохо за МКАДом.
>>568545 а в паскале что, if else какие-то другие? учить надо от простого к сложному, а в питоне слишком много хитро выебанных абстракций непонятных школьнику. тут происходит тупо заучивание без понимания принципа работы. это не обучение, а зубрежка
>>568548 Представь пример такой абстракции, попробую разобраться Паскаль в школе не учат ещё и потому-что, про него уже забыли и кроме легаси кода у него почти нету применения. Питон принялись учить из-за его популярности среди индусов любителей говнокода, обработки данных, и веба. Насчёт вопроса почему не взять тот же Си, этого я не знаю. Если мы говорим о с++ или сишарпе, то наверно потому, что среднестатистическому Васе во время ЕГЭ будет быстрее и понятнее набросать говнокода на питоне.
Встретился с какой-то странной проблемой. Годот повисает иногда, если долго сидишь в редакторе, а потом переключаешься в 3д и ПКМ каком-то из ассетов делаешь. Хорошо хоть проблем кроме перезапуска не несёт.
>>568561 win7-64 godot 3.1 тоже такая штука есть, подвисает иногда, хотя ресурсы есть. Есть подозрения на партиклы на шейдерах и материалы через шейдеры. При их отключении вроде перестает подвисать.
>>568588 ты ещё на инфомате такое посоветуй. Приходит такой школьник после инфомат школы в вуз на геймдев направление и уже от вида сишарпа или с++ у него в заднем проходе начинают возникать вопросы: ЯЗЫК ПРОГРАММЕРОВАНЕЯ НА АНГЛЕЙСКОМ???7? НА НЁМ МОЖНО ДЕЛАТЬ ИГРЫ?77??
>>568537 Я начинал с С++ в кружке Дворца пионеров. Дома была книжка по Паскалю. Паскаль - отличный язык для обучения, понимания основ программирования, плюсы посложнее. Некакие питоны и луа брать, естественно, в начале нельзя. После них в голове останется полный фарш, без строгой статической типизации, без понимания что как работает. Лучший способ словить шизу - начать знакомство программирования с какого нибудь джаваскрипта или питона с их отношением к конверсии строк.
>>568600 Ничего страшного, в универе их всё равно переучат. Зато С++ не каждый поймёт (2/3 детей идут в шараги на автомехаников и поваров, а не на вышку), так что pascal и пистон это идеальные компромиссы
>>568600 Я ещё помню когда в местном ДК микроконтроллерам и прочим няшкам в радиокружке учили, вот там С был и прочее, но из-за кружка РОБОТОСТРОЕНИЯ0))0), где программировали лего копрокубы каким-то аналогом констракта для детей, его закрыли из-за непопулярности . Теперь понимаешь, что такое массовость?
>>568609 Меньше, чем пистон Доков на пистон гораздо больше Те же нейросети быстрее и удобнее построить на пистоне, а в луа докуменации на это хуй найдёшь В луа неявная типизация, хуита Даже в пистоне ооп ближе приближено к языкам си, чем ооп у луа
Пистон это мощный комбайн для прикладного использования, луа же (хотя и питон тоже) в основном встраиваемая для всяких игр, скриптов и прочего.
>>568616 Да в луа там все тошнотное, по крайней мере было в 2006 когда я с ним познакомился.
Может сейчас получше, но тогда приходилось писать уморительнейшие портянки, да еще это все без подсветки в IDE.
function num_to_char ( number ) return ( string.char ( math.mod ( math.mod ( number, 256 ) + 256, 256 ) ) ) end
local isok,asname = mappy.fileRequester (".", "Font files (.FIN)", ".fin", mappy.MMB_SAVE) if isok == mappy.MMB_OK then if (not (string.sub (string.lower (asname), -4) == ".fin")) then asname = asname .. ".fin" end
>>568597 >ЯЗЫК ПРОГРАММЕРОВАНЕЯ НА АНГЛЕЙСКОМ???7? Да ладно тебе. Я когда в аспирантуру пришёл (а у нас были безопасники, программисты, математики и прочие около-it), то для всех это был действительно АНГЛЕЙСКИЙ, из 15 человек английский знали только 2 человека (я в их числе), остальным хорошо даже если чтение давалось. Средний уровень группы был чтение по слогам. Что там происходило дальше - хз, после первой пары пришёл только уже на экзамен. >>568616 И почему я не удивлён. Когда в каком-то году 2008 у меня на очередном аддоне игры метелицы умер простой аддон с портохами, реши было свой аналог запилить, но луа настолько мне не понравился, что я решил перетерпеть. В сравнении с ним gdscript просто верх изящества и удобства. >>568630 Он же написал, что было то в 2k6. Я о npp впервые только году в 2007 услышал.
Алсо вопрос. А примерный роадмап с примерным временем у годота есть? На сайте висит >## Coming Soon. На гитхабе просто описалово типа >ну надо сделать это
>>568632 Не, на 3.0 и 3.1 были сроки, но они на полгодика промахнулись. Дальше должна была быть 3.2, но везде срочно меняют на 4.0. Дай человеку отойти от поездок на конференций, может потом распланирует. Но там будет опять полгода-год.
Аноны, halp! print (cos(deg2rad(270))) Эта конструкция показывает, что значение равно -0 (минус 0). Wtf? Это вообще нормально?
Есть Vector3(). Результат вычислений - пикрил.
Условие kek.y == 0 не выполняется после таких вычислений. Если же я ручками сделаю -0 == 0, то условие выполняется. Как так? Причём такая хуйня происходит при углах 270+/-360. https://github.com/godotengine/godot/issues/3221 Тут говорят, что -0 - это часть стандарта IEEE, но получается, что в вычислениях -0 и тот -0, который я в условии прописал бы руками - не одно и то же?
>>568656 >Math.abs() В смысле? abs(kek.y)? Такая конструкция не работает. Равно как если и абсолют от радиан или самого угла в 270 градусов. Проверял. Зато вот из тестов выходит, что cos(deg2rad(270)) меньше 0. Ощущение, что в памяти он хранит где-нибудь 30 знаков после запятой, а для вывода на экран до злополучного -0 округляет. Пока костыль в виде ручной проверки на 270 написал. Чувствую себя болваном.
>>568665 с эпсилоном все сложно, потому что он зависит от размеров самих чисел. Например при твоем эпсилоне все числа < 1e-5 будут равны, что может быть не то что нужно.
По хорошему нужно что-то вроде: if (fabs(a - b) < epsilon * max(fabs(a), fabs(b)))
>>568671 А почему у него должен быть хороший перфоманс? Ты в этот говнокод вообще заглядывал на гитхабе? Загляни как-нибудь, чтобы отпали такие вопросы.
>>568677>>568678>>568687 Аноны, вы что серьёзно не понимаете, что при в 25 раз большей нагрузке, на Gamemaker вы даже не увидете разницы, в то время как на Godot с 12 FPS играть станет совершенно неприемлимо.
>>568694 Что еще за нагрузка, лол? Это игровой движок, а не паровой двигатель. Тут не будет такой линейной зависимости. Алсо мы не знаем что он там бенчмаркил и как. Вообще 2000 фпс звучит как баг подсчета.
>>568694 А что ты планируешь такого высоконагруженного на годот вешать? Всему свой инструмент. Если индюшатина способна угрузить машину до 12 фпс на таком движке, то это очень большой вопрос, а не загрузит ли она до такого же уровня на каком-нибудь более зрелом движке. >>568700 >Тут не будет такой линейной зависимости Из-за всего виденного мной, боюсь, что ситуация может быть хуже, чем линейная, и производительность вообще может по гиперболе падать.
>>568809 Первое что приходит в голову: периодически объект сообщает свой трансформ, эти координаты складываются в массив, потм из этого массива строится сплайн, по которому выводится кривая.
>>568809 Вот тебе простенький урок для 2д, в 3д всё так же https://www.youtube.com/watch?v=_lJ0jbahbjw Тут показано, как двигаться по созданному в редакторе пути. Тебе же нужно построить путь в игре, добавляя к нему точки.
>>568671 А что ты хочешь от GLES2/3, простите? Этот стандарт на перформанс в принципе не рассчитан, и загнётся даже на десятке спрайтов, если ты захочешь рендерить их в 4к. Вообще давно уже надо сделать тикет, чтобы Хуан запилил нормальный огл рендерер помимо мобилкоговна. ДиректХ был бы лучше, конечно, но я понимаю, что его не будет никогда. Но блядь, движок вообще без рендерера для полноценных видеокарт - это пиздец.
>>568966 >According to this test, Direct3D 12 is faster than OpenGL when the number of triangles is low. AMD Radeon cards are particularly fast! Around 80K polygons, Direct3D offers the same kind of performance than OpenGL. Above 80K polygons, OpenGL is faster. Ну такое. По современным меркам 80К полигонов это 1 персонаж или босс + какой-нибудь базовый террейн.
>>569002 В андроидо-планшетах настоящего дня вулкан? Период появления обновлений прошивок планшетов обычно не больше полгода, срок службы планшета больше двух лет.
>>568993 >а толку с вулкана, если он будет идти на небольшой кучке устройств Даунеха, для твоей сраной видюхи в годоте уже все есть. Без запекания пбр в годоте заебись, и по производительности, я чекал. Он только с вокселами обосрался.
>>569022 >и по производительности, я чекал. Нет описания теста, чтобы можно было проверить самостоятельно или оценить качественно-количественно @ Научный подход
>>569023 Я для себя проверял, тебе надо, закидываешь ассеты в двиг, крутишь там, бегаешь, так же в юнити, создаешь пока фпс не просядет. Я создавал модельку скелетную, в анриале больше всех моделек влезло, в юнити с годотом почти одинаково. Но в анриале там освещение заебись, а в годоте без гипроб
>>569002 В строю еще куча ноутов/компов, где вулкан не завезли и вряд ли завезут. У меня только на одном из трех ноутов есть вулкан и GL4.6. Про телефоны и говорить нечего, что все старенькие смарты идут лесом, а значит с вулканом ты будешь ориентироваться на аудиторию, которая ходит с крутыми, а это, сам понимаешь, какие ограничения накладывает на твою игру кликер
>>569034 >движок заточенный под этот жанр Поясните вот это. Я уже который год смотрю на подобные посты и не могу понять. Например, крайдвиг считается заточенным под шутер. Как это? Почему там нельзя поместить камеру сверху и сделать псевдоизометрический вид? Что, нельзя создать интерфейс инвентаря и диалогов для эрпогэ? Почему-то у тройкагеймс получилось сделать эрпоге про вомперов на "шутан"-движке сорс. Почему-то на УЕЧе, который тоже якобы шутерный, можно без задней мысли пилить платформеры. Что вообще подразумевается под заточенностью под жанр?
>>569041 Да ничего это не подразумевает, заточенные двиги только у студий, которые пилят конкретные проекты и двиги под них. Анриал, юнити, годот это универсальные двиги, пидар просто выдумывает хуйню для подкрепления своей точки зрения.
>>569043 openroscha >>569045 >пидар просто выдумывает хуйню для подкрепления своей точки зрения Ну это мне было ясно сразу. Я не теряю надежды, что он наконец вынет хуй изо рта и попытается внятно объяснить свою точку зрения.
>>569041 Заточенность проявляется в том, что на движке X все из коробки настроено под конкретный тип игр. Почти на любом движке можно делать любую игру и все будет работать и так и делают, потому что почти ни один разраб не скачет с движка на движок. Если взять к примеру УЕ4, то в нем заточенность проявляется для создания экшонов с кооперативом: он тебе выдаст крутую картинку (если конечно художники тебе предоставят модельки с текстурками), кооператив для шутера тоже будет хороший с блекджеком и лагокомпенсациями. Но вот когда ты начинаешь пилить на УЕ4 платформер под мобилку, то эта заточенность тебе удлиннит время разработки, потому что большинство это заточенности надо будет убрать руками и перенастроить. Да, есть готовые шаблоны, но они тоже своеобразные.
>>569046 >пидар просто выдумывает хуйню для подкрепления своей точки зрения >Ну это мне было ясно сразу. Я не теряю надежды, что он наконец вынет хуй изо рта и попытается внятно объяснить свою точку зрения. Жаль не заметил сразу этого сообщения, не метал бы бисер, не тратил бы время.
>>569052 Так ты поясни за разницу заточенности юнити и анриала для скелетных моделек, а не анриал для 3д и 2д. Просто пиздишь и никаких тестов сам не проводил.
>>569041 >движок заточенный под этот жанр >Поясните вот это. Поясняю. Это высер местного шизика, которого уже обоссали 100 раз, но он продолжает форсить этот манямирок.
>>569063 Но ведь ссыш здесь только ты. Под себя. Заточенность движка - это его функции. В движке физически не могут быть реализованы все функции, поэтому его разработчики осуществляют определенную выборку наиболее важных на их взгляд функций, это и определяет заточенность движка.
Сделать можно что угодно на любом движке, так как в любом движке можно рисовать и писать код. Вопрос только в том, что тебе придется писать самому и сколько времени это займет. Не в этом ли суть движка, чтобы вместо велосипедства полагаться на уже написанную библиотеку функций?
>>569010 >Годотяне, когда будем визуалскриптом давить уечекаличей? Давили уже в первых тредах и выяснили, что хуита выходит. То что текстом пишется в двух строчках, нодами вяжется в тарелку лапши на два экрана. И нахуй такое надо, спрашивается? Графноды хороши при конструировании анимация с блендспейсами и шейдеров. В 3.1 всё это есть (только нахуй оно там, тоже неясно, все уже ГЛШЛ выучили, пока ждали возвращения вижуалшейдеров в трёшку). Кроме того, можно с лёгкостью написать плагин, в котором графнодами будет конструироваться твоя кастомная логика (хотя тоже неясно нахуя с этой вижуалпоебенью ебаться, когда можно просто конфигами и скриптами всё настраивать)
>>569091 Ну тут не поспоришь. Сися изучается за неделю. Я неделю почитал просто учебники на мсдн и с лёгкостью заработал на сисе. Написал свой хеллоуворлд. Перенёс пару десктопных своих тулз с других языков на сисю. Собрал пробный проект годота с сисей. Но вот интересный нюанс: несмотря на поддержку сиси в годоте, желания писать логику на ней всё ещё не возникает. Рискну предположить, это оттого, что я подсознательно понимаю, что когда придёт время оптимизировать игру, сися не поможет и критические куски кода нужно будет ебошить на крестах.
>>569091 сися - это такое же йентерпрайзовое макакоговно как js. В геймдеве исключительно для того, чтобы любой школьник мог въехать и пилить свою убивцу жта. Ему неизвестны оптимизации и алгоритмы, он просто накидывает модельки, ржет, говорить "ух бля круто" и жмет компочку компайл.
>>569088 Вот так делается перемещение на уече в тридэ. На годотовских вижуалнодах пришлось бы гораздо больше лапши мотать. Это я к тому, что в УЕЧе это реально круто реализовано и никто не сравнится с блупринтами уеча. Сейчас попробую для сравнения реализовать этот алгоритм на вижуалскрипте.
>>569096 >Сейчас попробую для сравнения реализовать этот алгоритм на вижуалскрипте. Короче я заебался. На пикрелейтеде примерно треть скрипта из ФПС-туториала годо. Основное неудобство в том, что нужно конструкторы-деконструкторы отдельными нодами выкидывать тоннами, а в УЕЧе правый клик по ноде и в контекстном меню выбираешь, в каком виде выдать результат? Вектор? Или на компоненты разложить?
>>569115 А есть опция чтоб при драг-н-дропе ноды в код название без кавычек было если слитно? Просто увеличивает размер строки без причины. И так в _процесс частенько адовая вермешель из битовых выборов получается.
>>569117 Есть замена драг-н-дропу. Пишешь знак $ и тебе выпадающим списком предлагают выбрать ноду из потомков. Если там нет пробелов, то выборы будут без кавычек.
Привет. Я хочу делать крутую двумерную игру на Годо. Сразу возникла несколько вопросов: Как сделать проекцию, типа вот такой https://en.wikipedia.org/wiki/Isometric_video_game_graphics#/media/File:LootHunter_Tileset.png ? Ну я тупой, да, не знаю... Кто-нибудь пользовался конвертером из Tiled редактора карт? Чтобы делать много уровней -- удобнее будет это или в Годоте сцены лепить? * Стоит ли пользоваться встроенной локализацией или как оно? Я еще не смотрел даже, можно ли в GDScript перключать из игры локаль или оно системную всегда берет. Или может проще свой костыль сделать? Надо два языка поддерживать всего - тексты, картинки менять.
>>569230 Вот тебе совет. Есть вижуалнода Expression. В ней можно компактно ужать много хуаноцирка с вижуалнодами вроде бесконечных деконструкций, занимающих место. Пик релейтед. Но при этом вижуалскрипт превращается в почти-гдскрипт. >>569231 Двачую этого >>569232 а ещё можно быстро смотреть какие аргументы есть у встроенных функций и наглядно (пере-)подключать. Ну, это для тех у кого с образным мышлением траблы. У остальных и чтение документации выполняет ту же функцию.
>>569218 >Стоит ли пользоваться встроенной локализацией или как оно? Я еще не смотрел даже Судя по описаниям в документации, пользоваться стоит. Там очень плотно подошли к вопросу. Там тебе и наборы строк и привязки к локализованным пикчам.
в gles3 нет поддержки компуте шойдеров. Они только в 3.1 добавились. А тесселяцию и геометрический аж в 3.2.
Посему или идешь нахуй, или форкаешь, запиливаешь рендер под 3.1/3.2, называешь свои форк HuigotYobaGrafon, сам в жало его майнтейнишь и разрабатываешь и не ебешь мозги своими шизофантазиями про функционал.
У них в планах говно мамонта и некромобилочки, дауншифт аж до gles 2.0, а ты к ним с компуте полез. Вот года через 2 и закатывайся, когда они некроговна нажуются.
>>569336 ЧСХ, никакой иронии. Именно народ весь прошлый год кудахтал, что не запускается на некровстройках и некромобилах. вот народу и запилили глес2 вместо 3.2. Аж трисёт, суки.
Дополнительные ресурсы загружаются простой командой > ProjectSettings.load_resource_pack("/path/to/mod.pck") После чего содержимое файла pck оказывается в виртуальной папке проекта так, как если бы было там изначально. Если в файле мода есть файлы с совпадающими именами, они заменяют файлы оригинального проекта. Таким образом с лёгкостью можно делать патчи, чтобы игроку не пришлось переустанавливать игру, достаточно установить патч. Еще более легко делаются моды. Не нужен оригинальный проект, нужно только знание метаданных, так, как задумал автор игры: куда положить сцены, куда скрипты, чтобы игра проанализировала и подхватила. Например, внутри виртуальной папки res:// есть папка mods, в которой должна лежать как минимум сцена mod_init.tscn которая уже подключает к себе весь остальной контент мода. А автор написал внутри основной игры скрипт, который перебирает моды и добавляет найденные сцены в общее дерево игрового мира. Вся эта система очень сильно напоминает широко известный в узких кругах ModOrganizer, В котором тоже оригинальные файлы объединялись с файлами модов в виртуальной папке, которая подсовывалась игре. При формировании папки использовался порядок загрузки и в конечный результат шли файлы с наивысшим приоритетом. Годот делает то же самое а) искаропки, б) без виртуализации хардкодом (который детектится антивирусами или блокируется обновлениями венды). Слава Годоту! https://docs.godotengine.org/ru/latest/getting_started/workflow/export/exporting_pcks.html
Годотаны, а как бы вы сделали прожектайлы? Через кинематик и с маской на слой стрелка, или послали бы всё и сделали летящий спрайт/область/палку-детектор-коллизий-как-там-её? Прожектайлов в кадре планируется немного, примерно как в средней эрпоге. Есть ли команда, быстро удаляющая из маски слои указанной ноды?
В общем попробовал сделать как в демке из темплейтов (Isometric Game). Сначала тайл, который "перед" стены рисовался поверх кота, но интуитивно поменял их порядок в Scene и стало как есть, видимо оно там с Z-index чего делает? Но он рисуется поверх задней части аналогичного тайла для "сзади", хотя в Isometric демке тролль может заходить за колонны и блоки, не понимаю, как там это сделано. В ТайлСет нельзя добавить AnimatedSprite похоже. Еще, случайно очистил тайлест, посое этого undo не восстановило в сцене расставленные блоки. Придется что-либо мигающих ламп делать спрайтами отдельными. Кстати, где лучше выполнять скрипт, чтобы у таких спрайтов случайным образом анимацию включать, чтобы лампы мигали, и как их все на сцене перебрать? Where should I execute a script to randomly start blinking lamps animation and how to go through them all in a scene? No idea...
Еще подумалось - а как для 2D игры на Godot системные требования узнать? Под Win/Linux/Mac.
>>569411 >> Еще более легко делаются моды Для модов, к сожалению, эта система все так же подходит не очень. Большинство мододелов не будут разбираться с новыми программами. Им бы просто написать диалог в каком-нибудь json, засунуть это дело в в папочку или архив. То же самое с теми, кто текстуры перерисовывает. Для упоротых и тех, кто делает большие моды - это подходит, но пока все еще отсекает многих других. Поэтому пока параллельно в дополнение советую писать парсер для подхвата файлов из просто конкретных папок.
>>569420 Оценить сколько твоя игра предполагает жрать оперативки, также в зависимости от того, каким рендером пользуешься. Это и будет задавать минимальные требования к устройству.
>>569424 >Большинство мододелов не будут разбираться с новыми программами. Им бы просто Написать для них аналог CreationKit, собирающий файлы в pck, остальные будут делать в годоте.
>>569456 можно и CreationKit, но это какие дополнительные трудозатраты.. просто бы ресурсы парсить из произвольного каталога годот давал из коробки, ,чтобы мододелы просто пихали свои png да json в своем проводнике
>>569460 >просто бы ресурсы парсить из произвольного каталога Я сначала тоже так думал. Даже начал уже писать загрузчик сцен из user://. Но потом почитал статью из доков, ссылка выше, и понял, что принцип модульной подгрузки пак-файлов гораздо круче. Во-первых, ты работаешь с одной папкой res:// она универсальна и все ссылки между скриптами корректно обрабатываются. Во-вторых, игроки же тупые, представь себе на секундочку форум поддержки игры и миллионы однотипных комментов "я положил файлы обж в папку дата\моделс и у меня ниработаит, памахити!" >>569457 Тот же код в гдскрипте. Делайте выводы.
>>569467 >> "я положил файлы обж в папку дата\моделс и у меня ниработаит, памахити!" Форум того же Minetest этим не завален, а моды делаются на коленке в блокноте и пейнте, как и переводы.
>>569671 У тебя в папке проекта создаётся автоматически файл default_env.tres у него в свойствах есть ambient_light_sky_contribution выставленный в 1. И синее небо. И всё на сцене контрибутится небесной голубизной. Зачем Хуан так сделал - не нам судить. Сделай этот параметр 0 и будет тебе нормальный цвет.
>>569728 >Можно ли прямо в годоте делать ландшафт https://godotengine.org/asset-library/asset/231 >>569729 Вот в чём я уверен, так это в том, что данный код успешно обновляет содержимое виртуальной папки res:// Если ресурсы в твоём моде будут корректны для алгоритмов твоей игры, то не вижу препятствий, что может пойти не так?
>>569729 Только что проверил такой расклад: В оригинале сцена с простым меш-инстансом и камерой, в моде меш-инстанс с материалом и скрипт, который крутит меш перед камерой. Всё загружается и корректно работает. Сейчас попробую сделать мод, в котором скрипт обращается к данным в оригинальном проекте. Алсо, в упакованном файле скрипты компилированные! Хуясе! Интересно, всякие баннимарки учитывают это при замерах скоростей гдскрипта? И вообще эта конпеляция даёт прирост скорости?
Делюсь экспириенсом от тестинга гугл сервисов. Если у вас раньше нормально логинилось, а в один день перестало.Знайте - для тестинга допустимо не более 100 входов. Потом надо создавать новый OAuth2
ЭТО ЖЕ ОЧЕВИДНО ДА БЛЯДЬ!? ЕБАННЫЙ ГУГЛ. ПРОЕБАЛ ВЕСЬ ДЕНЬ ДУМАЯ ЧТО ГДЕ-ТО В КОДЕ ОБОСРАЛСЯ
>>569738 >Сейчас попробую сделать мод, в котором скрипт обращается к данным в оригинальном проекте. Да. Подтверждаю. Чтение-запись данных работает. Подгрузка внутренних сцен к внешнему моду тоже работает (например, мы делаем мод с другим скином оружия, но внутри мода мы подключаем стандартные анимации стрельбы и перезарядки (при этом мод не знает, что анимации могут приходить из другого мода, но на то есть порядок загрузки, каждая уважающая себя игра должна грузить моды по порядку загрузки из специального конфига, да Тодд?)
Ребят, моды, серьезно? Сейчас что 2002? Моды верный способ навсегда утратить контроль над инт.собственностью. Контр страйк, Дота2, это все моды укравшие прибыль у основной игры.
>>569852 Нет материалов, по гдскрипту тоже нет, только время потратишь. Бери юньку и через не могу учи сишарпу, материалов море, рано или поздно усвоится.
>>569852 >по визуальному скриптингу Не лезь, она тебя сожрёт! Ну анончик, неужели скрины анона для тебя не убедительны? >>569457 и >>569467 Визуальный скриптинг - хуйня, на которой ты даром потратишь свой потенциал. Выучи гдскрипт, он учится за неделю. Если что неясно - спрашивай у меня.
>>569929 >>569934 >>569944 Ключевые слова одинаковы для всех языков. Подходы к программированию в реальном секторе экономики, так сказать, делятся на два больших шалаша: си-подобный и паскаль-подобный. Первый победил в современном кодинге. Даже питон с его отступами тоже си-подобный. Есть еще хаскель и лисп в отдельном скворечнике паскаль-шалаша, но они слишком в стороне от практического игростроя. И вот луа где-то между ними трётся. Поэтому ваши кукареки про гдскрипт - это бессмысленные кукареки ньюфагов. А визуальное программирование - это банальные блок-схемы. Они научат ньюфага логике, но не позволят ему перекатиться на настоящий язык (кресты) а гдскрипт - сможет. Визуальное программирование тоже делится на два больших шалаша: блок-схемы (уеч-блупринт, блендер, годот) и таблицы (скрэтч, констракт). И даже таблицы ближе к нормальным ЯП, хотя тоже не сильно помогут перекатиться на кресты. >>569944 Луа - помесь паскаля и лиспа: 1) длинные кейворды, в которых стыдливо убрали begin, оставив остальное, 2) списки, списки, всё есть списки! ЧТД.
>>569929 Гдскрипт брат близнец питона. Питон используется везде, начиная с искуственного интеллекта заканчивая научными рассчетами. Без работы не останешься.
>>569978 >Питон используется везде, начиная с искуственного интеллекта заканчивая научными рассчетами. Только не в официальном годоте. >Гдскрипт брат близнец питона Зачем нужно было придумывать велосипед, если питон и гдскрипт не отличаются?
>>570013 >Питон используется везде, начиная с искуственного интеллекта заканчивая научными рассчетами. Даун, язык это ничто, главное библиотеки. Юзая питон, ты ознакомишься с библами на питоне для искуственного интеллекта, научных расчетов, узнаешь их фичи и нюансы.
>>570019 Так а я с этим и не спорю, чего ты обзываешься-то? Но мы же другие тезисы обсуждали. Не писать игры на гдс vs писать нейронки на питоне. А писать игры на гдс vs питоне. С гдскрипта на питон ты переучишься за день. И когда будешь проходить обучалки по созданию нейросетей, уже будешь все понимать, синтаксис ты уже знаешь.
>>569807 >Контр страйк, Дота2, это все моды укравшие прибыль у основной игры. Несешь хуйню. Это моды, принесшие прибыль непосредственно ИХ создателю и дополнительную популярность игре. Схуяли основная игра должна получать прибыль за то, что левый чувак потратил кучу времени на создание мода? Плюс, для игры в мод нужна лицуха игры, так что игра в любом случае остается в плюсе.
>>570024 >С гдскрипта на питон ты переучишься за день. Нет, потому что > Юзая питон, ты ознакомишься с библами на питоне для искуственного интеллекта, научных расчетов, узнаешь их фичи и нюансы.
>>570059 По техническим причинам - гдскрипт уже встроен в архитектуру движка, в ноды. По политическим - никто не сможет визжать - а вон у вас в питоне хуйнянейм не работает.
>>570064 Вроде как Хуан вилял на тему, что он попробовал питон и луа, но ему не зашли, потому что не хватало чего-то и он решил сделать более крутой. Ага, круче луа, уже скоро лет 20 как все пытаются.
>>570064 Мм, когда манька разбирается лучше хуана >In the early days, the engine used the Lua scripting language. Lua is fast, but creating bindings to an object oriented system (by using fallbacks) was complex and slow and took an enormous amount of code. After some experiments with Python, it also proved difficult to embed.
>>570073 Про луа уже тут поясняли - >>568058 Хуан просто неосилятор, не может работать с кодом, написанным профессиональными программистами, вот и городит кривые велосипеды.
>>570073 Ммм, когда манька обрывает цитирование прямо перед неудобными фразами >Godot embeds scripts in nodes, most languages are not designed with this in mind. >Godot uses several built-in data types for 2D and 3D math, script languages do not provide this, and binding them is inefficient. >Godot uses threads heavily for lifting and initializing data from the net or disk, script interpreters for common languages are not friendly to this. >Godot already has a memory management model for resources, most script languages provide their own, which resulted in duplicate effort and bugs. >Binding code is always messy and results in several failure points, unexpected bugs and general unmaintainability. Итого - байндинг медленно и не оптимизировано, гдскрипт - встроен в движок и осведомлен о его устройстве.
>>570082 Угу, у всего мира луа нормально эмбеддится и работает быстро, только у Хуана все медленно и неоптимизировано. WoW с его тысячами одновременно подключенных игроков в одной локации как-то умудряется работать со скриптами на луа, а у Хуана все медленно. Десятки других движков юзают луа, у всех всё нормально эмбеддится и быстро работает (недаром luajit считается самой быстрой реализацией встраиваемого языка на планете), у всех, кроме Хуана, у него всё медленно и не эмбеддится нормально. Так может проблема в Хуане?
>>570084 >WoW с его тысячами одновременно подключенных игроков в одной локации А что там за скрипты? Считать сколько волков из 10 по квесту ты убил? Пфффф. >быстро работает (недаром luajit считается самой быстрой реализацией встраиваемого языка на планете) Ало, что ты там не джить, у тебя все равно будет лишняя прослойка абстракции. Вот ее и у странили.
>>570087 Любой скриптовый язык это слой абстракции, включая gdscript. А gdscript - еще и хуёвый слой абстракции, написанный программистом средней руки, не являющимся профессионалом в разработке скриптовых языков и виртуальных машин. Что собственно и показывают баннимарки, на которых годот начинает захлёбываться быстрее любого другого движка, авторам которых хватило мозгов не изобретать свои языки. >Вот ее и у странили. Устранили скорее здравый смысл, но хомякам пофиг, и так схавают.
>>570087 > у тебя все равно будет лишняя прослойка абстракции. Ебанашка, если код не транслируется в инструкции железной машины, то значит его исполняет виртуальная машина. Третьего не дано. Просто пиздец.
>>570093 Ебанашка, ты мог бы и не подписываться. Тебе понятна разница между абстракцией и еще одной лишней абстракцией? Тебе придется дублировать весь API в виде прокси-объектов на этом языке, гдскрипт может обращаться на прямую.
>>570108 Будешь каждый вызов к api через ffi писать? Серьезно? local ffi = require("ffi") ffi.cdef[[ int MessageBoxA(void w, const char txt, const char *cap, int type); ]] ffi.C.MessageBoxA(nil, "Hello world!", "Test", 0)
>>570108 Не, ffi это прослойка через прокси-объекты/прокси-функции, а у гдскрипт не так, "он встроен и может обращаться на прямую". Но и не бинарная линковка. Кароч, хуан изобрел что-то абсолютно новое.
>>570114 >К каким структурам К внутренним. >ты вообще код годота открывал перед тем А ты? >>570115 Так если все так просто, напиши по быстрому байндинг к питону и покажи бенчмарк, где твой ffi быстрее гдскрипа.
>>570140 Сам нагуглил >Грэм является автором так называемого «Парадокса Блаба» («Blub paradox»), ссылки на который нередко встречаются на тематических ресурсах, посвящённых обсуждению новых и ограниченно популярных языков и механизмов программирования. «Парадокс Блаба» описан в очерке «Побеждая посредственность». Его сущность состоит в том, что программист, знающий некоторый язык («Блаб»), «думает на Блабе» — выражает решение любой задачи в средствах Блаба, а имеющиеся в более мощном языке дополнительные средства в его глазах ничего не стоят, так как он не умеет их применять. Только когда программист по каким-то внешним, дополнительным причинам изучит более мощный язык, он получит возможность смотреть на Блаб «сверху вниз» и увидит его ограниченность. Таким образом, ограниченность Блаба сама по себе не может стать стимулом для изучения более мощного языка, так как для осознания этой ограниченности необходимо уже знать такой язык. Этим Грэм объясняет то, что программисты обычно не желают изучать более эффективные инструменты программирования, чем те, которыми они уже владеют (в частности, непопулярность Лиспа). Хуан, сделай скриптинг на Лиспе!
>>570155 В сишарпе так. Только там это называется using Godot; >>570154 >Мечты Вот, ты уже вижу давненько отвечаешь за базар свой гнилой. Весь прогнил насквозь. А всё не каешься.
>>570157 >Вот, ты уже вижу давненько отвечаешь за базар свой гнилой. Весь прогнил насквозь. А всё не каешься. Нет, я был святым и здоровье начало потиться, но как только я начинаю указывать общественности на пидарскую сущность таких как ты, выздоравливаю. Это мой крест.
>>570172 >Он не находит там ffi поэтому обзывает код непонятным. Чиво? Строка 1145 >case PARSE_JSON: { ... проверка аргументов, блаблабла ... вызов метода: > Error err = JSON::parse(*p_args[0], r_ret, errs, errl); Это и есть ffi. И у луа такой же.
>>570184 Ну ты ведь пишешь неправильные вещи. Выдумываешь хуйню на ходу, думая, что никто не принесёт опровержение твоего пиздежа. Ты неправ. И должен это признать.
>>570186 Если это не ffi, то дай название этого метода. Это же абсолютно новое изобретение хуана и оно еще не попало в учебники cs? И proof-of-concepts документа тоже нет?
>>570179 >>case PARSE_JSON: { >... >проверка аргументов, блаблабла >... >вызов метода: >>\tError err = JSON::parse(p_args[0], r_ret, errs, errl); Почему эту прокси-процедуру годото-дети не считают прокси, а называют "обращением на прямую"? Такая же распаковка, упаковка, подготавливание аргументов для стороней функции/метода, а потом и ее вызов. >Color color((float)p_args[0] / 255.0f, (float)p_args[1] / 255.0f, (float)p_args[2] / 255.0f);
>>570196 >рокси-процедуру годото-дети не считают прокси Потому что это не прокси процедура, а вызов библиотечной функции. Плюсовой. Напрямую. Error JSON::parse(const String &p_json, Variant &r_ret, String &r_err_str, int &r_err_line) >Такая же распаковка, упаковка, подготавливание аргументов Ты реально не понимаешь, о чем идет речь. Это - необходимые действия, которые будут в любом случае. Речь идет о ДОПОЛНИТЕЛЬНОМ оверхеде, который есть в случае байндинга с другим языком.
>>570203 >Потому что это не прокси процедура, а вызов библиотечной функции. Плюсовой. Напрямую. Ты, наверное, фантазировал, что в ffi не вызов сторонней ф-ии? Да ты просто уебок.
>>570203 >Речь идет о ДОПОЛНИТЕЛЬНОМ оверхеде, который есть в случае байндинга с другим языком. Ну, расскажи, какой доповерхед, по-твоему, дает ffi. Ведь у тебя не ffi же, да?
>>570219 Я делаю игоры. Вот сегодня написал задел под будущее наследование сущностей. Вот подскажи, как правильнее организовать? Я пока что замыслил такое: базовый класс-предок называется Character и наследуется от RigidBody. В нём реализовано движение через apply_impulse с параметром, который берётся из внутренней переменной move. Далее, от этого класса наследуются классы Player и NPC, в первом переменную move дергает инпут через экшоны, во втором переменную move дергает функция get_next_move_by_AI()
>>570238 Не забыл. Но не агентным программированием единым жив программист. Наследование предполагаю юзать в скриптах, а древовидную композицию в нодах. Во, погоди, щас схему нарисую. Во, нарисовал. Сцены собираются деревом, но при сборке нужным нодам назначаются определённые скрипты. Если мы собираем персонаж игрока, ему назначается скрипт игрока. Как я и писал ранее, в скрипте игрока реализован только специфичных для игрока функционал, общие вещи, как перемещение объекта, реализованы в общем скрипте. Если собираем врага, назначаем скрипт врага, в котором реализованы выстрелы. Если собираем горожанина, назначаем скрипт горожанина, в котором реализованы диалоги. А в классе НПЦ реализован лут-контейнер, перемещение по точкам внутри навигационного полигона, которое дёргает функцию передвижения из базового класса.
>>570287 Впрочем, я понимаю, что наследование соснёт с проглотом у композиции, когда мне понадобится сделать, например, собаку-горожанина без контейнера, но с диалогом, после которого собака превращается во врага и атакует. Поэтому, пожалуй, нахуй-нахуй.
>>570409 Бля, ну что непонятно, какие же вы тупые. На годоте не может быть игр, это невозможно. Тут и декомпилировать ничего не нужно, юзай логику, есть игра, значит не на годоте, а скорее всего на юньке, фсе.
>>570409 Что ты там называть собрался, даун? Пользователь юнити не контролирует дистрибутив своей игры, юнити всегда высирает его по одному и тому же принципу, поэтому игры на юнити в два счета детектятся - по папке игранейм_Data, внутри дистрибутив mono и т.д
>>570457 питон.. топовый.. хех.. >> Блядь пиздец нахуя мне учить еще один питон если я его и так знаю так если знаешь, то игры делай, а не хуйню тут пиши
>>570471 Классические, тебе понадобится какая-нибудь фича, ты спросишь - пацаны, как вот так сделать - а тебе скажут - в годоте пока такое нельзя, хуан обещал запилить, нужно немножко подождать. А в юнити это уже давно сделано.
>>570471 Если ты еще не владеешь ни одним движком, а планируешь писать 2D игру, то и выбирай сначала простой 2D движок под нее. >> Не очень мне нравится этот юнити да далеко не тебе одному
5) ECS и многококочность на джоб системе искаропки (тут смело уже ссым в ебло юнитидаунам, которые даже с главным по дрейкфейсам нимогут уже который год в релиз)
При всём этом это любительский манядвижок. не уеч, не юнька и не круйзисосопилка.
Лучше обмажемся дружно некроговном, еще большим чем было, как велит хуан.
Алсо, главный обосрамс тут как раз в том - что это недопиленный манядвиг, пилимый одним упоротым, который по фичам уебывает поделие хуанга.
Да, он не тог что гвоздями к ДХ/WIN10 прибит, автору даже впадлу было смакелистс/сконс вместо проектов студии запилить и исходы структурировать по каталогам.
>>570488 Но он ничего не уделывает, лол. Ты вообще представляешь, сколько придется перехуяривать архитектуру этого двигла, чтобы оно запустилось на android/webassembly/linux/ios/vr? Кто-то разве ставит под сомнение возможность накидать говнокода который у тебя на компе будет рендерить что-то там в DX12? Это делается за неделю по туториалам. Я даже не уверен что в этом движке есть pathfinding например. Физика какая-то вроде есть, спрайты есть. А вот можно ли задать тупо путь, чтобы NPC прошел из одной точки в другую?
У него с архитектурой все в полном порядке, кек, разве что (из прибитого) использует векторную либу из DX, что, в целом логично, не велосипеды же писать и не хеллоуворлдную GLM использовать.
drawPath - это вид рендера с определенными техниками, у него их там несколько.
Все, к слову, унаследованы от общего интерфейса и ты можешь вполне выбрать один, а затем ебошить через каст к общему интерфейсу и графоний будет запиливаться сам.
Вот как генерировать карту? Как настроить файлы игры? Почему нихуя не понятно и так сложно? Я правильно понимаю, что движками пользуются аутисты, а нормальные люди пишут всё сами потому что это быстрее и проще?
>>570610 >Вот как генерировать карту? Всё просто. Сначала создадим колоду: >var Koloda = [] >func Sozdati_Kolodu(num_of_cards = 36): >>for card in range(num_of_cards): >>>Koloda.append(card) Затем сгенерируем карту: >func Generirovati_Cardu(): >>return randi() % Koloda.size() >>570610 >Как настроить файлы игры? В окне импорта. Пикрелейтед. >>570610 >Почему нихуя не понятно и так сложно? Потому что в детстве мама не была ласкова с тобой. >>570610 >Я правильно понимаю, что движками пользуются аутисты, а нормальные люди пишут всё сами потому что это быстрее и проще? Совершенно верно. Ты попал в тред аутистов. Беги отсюда скорей.
Зацените защиту от дурака, няши. У дурака будет доступ к файлу mods.json, поэтому он может туда вписать, как твою мамку ебал, или схоронить туда бинарные данные вместо json-формата.
>>570787 Пожалуй стоит уточнить. Top-down-игра, ИИ чувака, который бегает за персонажем если видит, его можно отвлекать там, прятаться за укрытиями, короч все как в говнохоррорах из директа.
>>570787 1. Навмеш. 2. Местоположение игрока. 3. Вычисляешь расстояние до игрока. 4. IF расстояние меньше, чем расстояние, которое ты определил, как расстояние детектирования, THEN установить точку назначения. 5. Повторять периодически.
Ну вот как так? У меня 1080 Ti, а мне годот говорит сходить нахуй и купить нормальную видеокарту, чтобы он мог на ней раскочегарить свой охуевший gles2 рендерер.
>>570933 Ну это хорошо, спасибо. Правда я пока вообще не представляю как всякие пути работают и как реализовать обход препятствий, надо будет поразбираться как время появится.
>>570942 Если игра на сетке - алгоритм a-star, если в непрерывном пространстве - какой-нибудь понравившийся навигационный граф. Если в годоте делаешь, то там уже есть нужные классы для подобного.
>>571033 Ну вот я пытался делать подобное последнему, и знаю что в движке из коробки для этого нихуя нет. То есть они демонстрируют самописную систему кликанья по клеткам.
>>571049 Нет онклика на спрайтах, надо приделывать area Когда делаешь свой онклик, узнаешь много интересного о устройстве годота, он посылает события не в порядке z-order на экране. https://github.com/godotengine/godot/issues/24259 https://github.com/godotengine/godot/issues/23051 То есть тебе нужно дублировать еще раз кишки годота, держа свой список прорисовки. >>571052 Это и называется самописный. Тебе придется к простой формуле приделать как минимум учет масштабирования и скролла поля, и кучу других мелочей. >>571057 >>571058 > скачай васянство неизвестно запускающееся ли на свежей версии годота > искаропки Значение знаешь? >>571056 О, значит конструкторы стоят выше в иерархии чем двежки, вау.
>>571069 Я с мобилы сейчас, поэтому не могу развернуто ответить. Скажу вкратце, ты неправ. Ты требуешь, чтобы движок делал игру за тебя. На предложение пользоваться конструкторами, в которых игра уже сделана за тебя, ты начинаешь разводить демагогию с писькомерством иерархий.
>>571075 Я просто отмечаю, что в движке нет нод для игр такого жанра, спрайты кликаются не в порядке отрисовки (нельзя кликнуть самый верхний), поэтому приходится дублировать еще раз устройство движка. Такое чувство что годот затачивали сугубо под платформеры.
>>571153 Ах ты ж больной ублюдок. Используй встроенный питон, который назвали гдскриптом. Обычный питон работал через костыли и благодаря ним он даже у гдскрипта по скорости сосать умудрялся. Или у тебя челендж сделать игру на самом тормознутом языке в природе?
>>571076 А в каком движке тебе будут ноды искаропки для такого жанра игр? Даже в юнити этого не будет, тебе придется качать из маркета, если не можешь написать сам.
>>571170 Я прост слишком старый и привередливый чтобы жрать что дают. Встроенному обрезку не хватает выразительности. Хочу хуячить list comprehensions и прочий сахар. На тормоза похуй, не я же играть буду.
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то есть варианты русскоязычного перевода части доков на ресурсе конкурирующей фирмы: http://c2community.ru/forum/viewforum.php?f=119
Ещё начат перевод официальной документации: https://docs.godotengine.org/ru/latest/
Но вообще, будь мужиком и изучи английский: https://godot.readthedocs.io/en/stable/
Вместе с движком обязательно смотри примеры, там есть всё - от платформера до чата. Примеры качаются прямо в движке через свой магазин.
Скачать движок: https://godotengine.org/download/ или http://store.steampowered.com/app/404790/Godot_Engine/
FAQ: https://docs.godotengine.org/ru/latest/about/faq.html
Игры, созданные глобальными кириллами: https://godotengine.org/showcase или https://steamcommunity.com/app/404790/discussions/0/412448792354265655/
Предыдущий:
Архивы:
1 https://arhivach.ng/thread/207802/
2 https://arhivach.ng/thread/388500/
3 https://arhivach.ng/thread/388501/
4 https://arhivach.ng/thread/388502/
5 https://arhivach.ng/thread/388503/
6 https://arhivach.ng/thread/432708/