24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Годнота от анона: Для приверженцев опенсорца существует возможность распрострянять проекты в незапакованном формате. Просто скачай темплейт с оф.сайта и положи экзешник/эльфешник в папку с проектом, этого достаточно. Дополнительно можешь вшить свою иконку в экзешник. После этого, запустившийся файл темплейта обнаружит рядом с собой файл project.godot и начнет грузить проект из него и из файлов, лежащих в распакованном виде в той же директории. Редактор персонажей на основе makehuman: https://github.com/Lexpartizan/Go_MakeHuman_dot Все языки в одном месте: https://vk.com/topic-70467171_35982467 Тест-бенчмарк: Веб-версия - https://govdot.herokuapp.com Вишмастер для винды - https://govdot.herokuapp.com/4Anon.rar
>>635467 https://godotengine.org/qa/2239/what-is-the-best-way-to-do-object-pooling > There is no GC in gdscript so your game wont pause in random moments of time to free the memory, this is why there is NO NEED for object pooling in gdscipt. Если ты говоришь о пулах, как о парадигме, то эту функцию выполняет само дерево сцены. Создай ноду, но не включай её в дерево. Храни её в переменной (my_node_pool например), добавляй в неё ноды, которые требуется держать в памяти наготове, при этом у них не будут обрабатываться коллбэки. Добавляй и удаляй их путём репарента в основное дерево / из него. Репарент делай осторожно, через call_deferred, что обсуждалось в прошлом треде https://godotengine.org/qa/9806/reparent-node-at-runtime
Чем Годоти хорош именно для 3D? Платформеро-рогаликоунтерменш мнение знать не хочу, поэтому 2D мимо. Если порыться в гитхабе, то есть куча свободных 3D движков разной степени кривизны, в чем существенное отличие его от конкурентов? Что по оптимизации и простоте работы? Сцена из трёх кубов не будет выдавать 3 фпс? Есть ли готовые 3D игры на Годоти дабы посмотреть среднее по больнице или на Годоте сидят только сектанты 2D, а 3D "для галочки", как это было в Gamemaker 1? Почему именно годот тред, а не Lumix, Wicked, Armory, Xenko и т.д.? Или все отличия заканчиваются на финансировании Хуана, что позволяет вкладывать деньги в пиар?
> Чем Годотн хорош именно для 3D? Рабочим процессом. Движок требует минимум сторонних инструментов для создания готовой игры. Фактически, нужен только 3D-редактор. > в чем существенное отличие его от конкурентов? Зашкаливающая простота. В движок вкатываешься за день. В скриптинг за второй день. > Что по оптимизации и простоте работы? Есть проблемы с оптимизацией. Проблемы есть. Но над ними работают. > а 3D "для галочки", как это было в Gamemaker 1? Начиная с третьей версии триде уже не для галочки. > Сцена из трёх кубов не будет выдавать 3 фпс? Дело не в количестве кубов, а в количестве нормалмапов в материалах. Над этим работают.
>>635746 >Дело не в количестве кубов, а в количестве нормалмапов в материала А окклюжен куллинг уже завезли, можно делать локации размером больше одного экрана без просадок фпс?
>>635801 "Размером в экран" - это игра с фиксированной камерой, отсутствием движения камеры или скроллинга, весь игровой процесс которой происходит в рамках этого экрана. Например, тетрис, или бомбермен.
>>635805 А он в годоте есть? >>635804 Для приведенного тобой примера да, окклюжен работать не будет. Но если у меня вид из глаз и большая карта с домиками, в которые можно входить, а в домиках куча мебели, лежат вилки на столах, я правильно понимаю, что сейчас в годоте будут рендериться внутренности каждого домика, попавшего в кадр, если смотреть на них снаружи?
>>635822 >А он в годоте есть? Есть конечно. >Для приведенного тобой примера Это был приведенный тобой пример. Или ты другой анон? >например, тетрис, или бомбермен.
>я правильно понимаю Правильно. Будет через пол года. Если тебе надо раньше, придется самому отключать вилки-ложки, например, когда персонаж отошел за area рядом с домом. Для интерьеров есть https://github.com/lawnjelly/godot-lportal
>>635828 >Будет через пол года Лол. Это разве не базовая фича которая должна быть одной из первых вообще? Да хоть сраный з-буффер перебрать, долго чтоль
>>635873 Как видишь, этой базовой фичи в годоте нет, на том видео показан левый васянский модуль, с которым нужно перекомпилировать движок и шаблоны экспорта, и который криво работает.
Перекатываюсь со своими баклажанами и механикой из юньки в годотоцаря.
Ананас, я разобрался как делать подобие префаба. Теперь хочу напрограммировать коллизию, можно руками делать, см. пик. Но можно ли _create_collision_polygon_2d_node (ток в 3.1 появилось) вызвать как то с gdскрипта или городить свой велосипед. Коллизия нужна чтобы мышой кинематикбади2д двигать, через pickable.
И еще вопрос пока не забыл. Если я двигаю одну на другую коллизию, как из сортировать. А то сразу две\три\... двигаются.
>>636067 Тебе вот прямо совсем обязательно вручную из кода коллизии добавлять? Просто добавить к ноде физический объект с коллизией религия не позволяет? Потому что сделать это можно, конечно, но придётся дополнительно ебаться с регистрацией нового объекта в сервере физики.
>>636084 В идеале сделать префаб уровня, закинул картинку и всё. Остальное на лету, при старте сцены. Похуй можно и руками, на сцене предполагается порядка 60-120 таких объектов. Руками тоже можно протыкать каждый.
>>636067 Что еще за подобие префаба? Просто делаешь отдельную сцену characterZombie и туда в корень добавляешь кинематик, спрайт и коллижн. А потом всю сцену интсансишь в сцене игры.
>>636088 >Что еще за подобие префаба? забей юнити сленг, отвыкаю
>А потом всю сцену интсансишь в сцене игры. Это уже освоил. Но повторюсь у меня не 100 одинаковых зомби, а наоборот 100 разных по шейпу и вариативности спрайтов. Щас я как, делаю отдельную сцену item, туда только спрайт\скрипты\что угодно кроме коллизии, они все разные будут. Далее делаю 100 инстантов в сцене игры. Колизии как указал было бы заебок делать на лету, при старте. Пойду хуану метод предложу, чтобы не только в редакторе кнопку держал.
про порядок, там вообще оказалось ничего нет. народ велосипеды изобретает.
>>635427 (OP) Как передать следующей сцене параметры? Например я пишу get_tree().change_scene("res://scene2.tscn") И хочу, чтобы в этой scene2 был определенный текст. Как це сделотб?
>>636095 > Для нескольких десятков переменных сойдет? У игры должен быть как минимум один синглтон, олицетворяющий действующий инстанс игры, это игровой мир, если там мир, или игровое поле с расстановкой фигур и правилами. Так или иначе, есть некая структура данных, которую лично тебе выгодно держать в памяти от начала и до конца игровой сессии. Эту же структуру удобно использовать в качестве файла сохранения (сериализовать).
Поэтому самым "правильным" (ИМХО!) решением будет записать необходимые данные в эту глобальную структуру, а когда новая сцена загрузится, она прочитает эти данные у себя в коллбэке _ready()
>>636118 Эти встроенные классы говно. Мне гораздо удобнее нововведенная в 3.1. Команда class_name <> которая регистрирует скрипт как класс глобально. Классы становятся отдельными файлами и вызываются из других классов. Вот твой пример в таком варианте:
Совокупился с порядком ( не нашел как, через красивый пикабл кинетикбади решить. area2d и _unhandled_input только. Ну и жопа. А еще предлагали решение через кнопки О_о
Ну что вы, бэтманы? Появилась новая платформа для публикации игр на годоте! Все что нужно - просто запостить пак-файл. Даже экспорт не нужен. Хотя, для некоторых это может быть минусом. https://youtu.be/pathScTBsk0
нужно по нажатию кнопки сделать эффект размытия фона (т.е. одного конкретного слоя), и по нажатию другой кнопки отключать это размытие и делать картинку опять четкой. Желательно, чтобы размывалось не моментально, а постепенно в течение одной секунды, и потом также откатывалось назад.
Понимаю, что это по идее делается с помощью шейдеров, но что-то у меня ничего не получается. Помогите, пожалуйста
>>636737 >Загугли gonkee shaders Можешь ткнуть меня где у него именно про эффект размытия (blur)? На Гитхабе и на ютуб-канале нашел только про огонь, дым и всякое такое.
>>636743 > Можешь ткнуть меня где у него именно про эффект размытия (blur)? Бля. Не нашёл. Сорян. По памяти помню, что примерно как на твоём скрине >>636801 из скрипта обращаемся к юниформу и задаём радиус размытия. Поищу ещё может найду.
>>636159 > Насмотрелся на это в интирпрайз жабе. А я не могу наглядеться. Загляденье просто! Особенно, когда среда разработки осуществляет менеджмент этими файлами так, что ты можешь абстрагироваться от них. Однако, сам факт их наличия предоставляет широкие возможности для бэкапа.
>>636855 > плавный переход как-то настроить Просто скармливай шейдеру обновлённые значения радиуса размытия из _process или из корутины, не знаю, как тебе удобнее. Но вот этот мрак на скрине >>636801 это пиздец. Сеттер возвращает void и твой if бессмысленнен. Но даже если туда подставить геттер, чекать ифом значение юниформа бессмысленно в рамках твоей задачи. Ещё раз: просто скармливай новые значения шейдеру через сеттер. func blur_increase(): Mat.set_shader_peram("blur", wrapf(current_blur + blur_step, blur_min, blur_max))
>>637194 И кстати ещё сам редактор при разрезе на куски может смягчать кромки. Выбери жесткое попиксельное выделение в фоторедакторе, если импорт не поможет. При соблюдении обоих советов куски пикчи совместятся пиксель к пикселю. Но без сглаживания отдельные куски могут на краях выглядеть рвано. Тут три решения. 1. Резать под ровными углами, 1:2, 1:3, 1:4 и т.д. 2. Резать со сглаживанием а затем масштабировать вырезанный кусок на пару пикселов больше, чтобы края перекрывались. 3. Резать по кромкам изображённых объектов, пока не останется задний фон. Затем дорисовать задний фон, это лучше подходит, если у тебя многослойное изображение в формате psd, тогда просто слои сохраняешь в отдельные файлы.
>>637196 >Выбери жесткое попиксельное выделение в фоторедакторе Именно это и указал, АА был отключен в редакторе при экспорте.
В любом случае, приму инфу к сведению, про порезку. Пол игры на этом строится. Когда отключил filter на импорте, даже при скалирование окна игры, всё стало как по маслу, без разрезов. Годот сила.
>>637794 На самом деле, визуал водички оказался очень недоработанным (в плане отражений и прозрачности), да и автор его почти не развивает, так что не рекомендую для продакшна.
>>637861 > меня ток контроллер интересует Ща гляну, что там за контроллер. Ставлю бочку нефти, что там нет кроуча с автодетектом вентшахт. >>637805 > визуал водички оказался очень недоработанным Ща тоже глянем. Я делал водичку по туториалу ещё на версии 3.0 посмотрим, удалось ли этому её превзойти.
>>637904 Однако же замечу, моих постов из прошлого треда тебе не хватит, чтобы довести до ума. Вообще, всё зависит от потребностей твоего проекта. Тут уже стоит задуматься о модульном контроллере, чтобы можно было подключать и отключать фичи. С другой стороны, почему бы не поднять модульность на уровень компоновки персонажа и подключать контроллеры по мере надобности? Надо это обдумать.
Вкатываюсь в годо. Возник вопрос: Каким макаром лучше запилить в годо многомерный массив? Я пока вижу два варианта: 1) сделать одномерный с домножением индеков на число, типа N[i,j,k] эквивалентно N[i100 + j10 + k] 2) Сделать ноду N1 создающую массив нод N2, каждая из которых создает массив нод N3... ну вы пони. Но может есть менее упоротые варианты? Еще вопрос: логично, что в случае с ОЧЕНЬ большим массивом, во втором варианте будет просто адское кол-во нод. Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные?
>>637958 >Как это скажется на производительности если эти ноды будут иметь минимальный функционал и, по сути, будут только хранить данные? В том смысле - дергает ли годо ноды и имеющие свойства(переменные) но не имеющие никаких функций? Или они просто безболезненно висят не потребляя ресурсов компа кроме оперативы?
>>637980 Мда. Так и думал, что можно проще. Еще такой вопрос: при таком способе ведь не будет ограничения на кол-во измерений? 10-мерный массив можно так запилить? И есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно?
>>637995 Ты лучше пиши что ты хочешь сделать, потому что 10-мерный массив это очень странно. >есть ли ограничение на кол-во элементов в массиве, или оно условно бесконечно? Там int, 2,147 миллиарда, если выделилась память.
>>638008 >потому что 10-мерный массив это очень странно. Не, я понимаю что странно, лол. Хочу проверить работоспособность одного своего алгоритма, для одной утилитки на комп. Так что описать, что я хочу сделать в двух словах наверное не выйдет. Короче будем считать, что мне нужно запилить массив на много (около 10) измерений.
>Там int, 2,147 миллиарда, если выделилась память. Но, всегда ведь можно вложить в этот массив еще массив на пару миллиардов, так?
>>638018 Ты с арифметикой дружишь? Если у тебя первое измерение (ширина) 2 миллиарда, и в каждом столбце (высота) 2 миллиарда ячеек, то тебе надо чтобы в компе стояло 2 миллиарда плашек по 4гб (минимум)
>>638071 Все еще непонятно зачем тебе 10-мерность. Ты уверен что тебе нужно arr[3][14][59][265][5][35][89][793][23][846], а не скажем просто arr[x][y][10].
>>638080 Если кратко, и не вдаваясь в подробности - для скорости "индексации" - чтобы быстро переходить к нужному элементу, подходящему под заданные условия, а не ворошить каждый раз многотонный список. Хотя, конечно, возможно есть более простые решения, но, думаю вариант с разбиением списка на сотню тысяч (а мб и больше) частей тоже не так уж плох.
>>638095 > возможно есть более простые решения > с разбиением списка на сотню тысяч (а мб и больше) частей Именно так. Деревья. Все юзают их, а не многомерные массивы.
>>638114 Ты так спрашиваешь, будто я профи байтоёбства. Гугли октодеревья, бинарные деревья поиска и прочее такое найдёшь далее по ссылкам из нагугленного текста. Учись гуглить и курить матчасть. Без этого не станешь девелопером. И готовься к тому, что 99% инфы будет на английском.
>>638119 Реализуемо. Главное - пытайся и делай. Могу помочь с алгоритмом, если ты перестанешь строить из себя секретного спецагента и внятно объяснишь, что ты хочешь посчитать. Возможно, оно уже реализовано в движке, если ты правильно поставишь себе задачу и прошерстишь АПИ движка.
>>638769 Кстати да, хоть он и пишет, что данные будет собирать из игры, игру же можно реализовать в виде клиент-сервера, и собирать обезличенные данные о юнитах (без графона и так далее), игровое поле просто как массив объектов в любом ЯП.
>>635742 Годот хоршо только скоростью с которой ты будешь создавать, писать на гдскрипте намного быстрее и проще чем на си, если ты делаешь игру мальенкой кампанией(один), то на U или на U, ты за занчительный промежуток времени сделаешь нихуя, а на гд можно написать годную мобилку за 1 день
>>636070 Сделай не кинематик, а риджыд(в нем надо будет когда поднимаешь мод менять на кинематик, а когда кладешь обратно), еще чуть выше написал про то что инпут ловлю с тексутр ректа, если так делать то будешь мышкой брать ток 1 объект
Кто-то давно спрашивал, что будет, если собрать Годот только 2д. Со всеми откюченными флагами, пустой проект с одной картиночкой, вышло 6Мб под ведроид одна архитектура arm7eabi и 17Мб под винду. Запускается на телефоне около секунды.
Всем здоровья в этом треде. Хочу спросить, вкатываться мне в годот или нет, если я хочу рпг по шаблону фоллача 2, но при этом нихера не шарю в коде? 2д графон, пошаговые бои, диалоги разветвленные, вот это все. Пробовал РПГ мейкер, он не позволяет диалоги сложные строить, печаль. Гамак пробовал, он начинает в определенный момент просто виснуть от обилия файлов. Что делать, анон? Вливаться в ГОДОТ? Если да, подскажи, как облегчить себе жизнь?
>>638810 Годно. Однако в век терабайтов с гигагерцами интересно разве что в академических целях. Более-менее красивая игра с графоном, звуком, будет весить от 600 Мб. Экономия 5-7 мегов тут погоды не делает.
Отвечает Александр ДрузьАнонимOP25/01/20 Суб 14:16:24#125№638882
>>638848 Ты не сможешь сделать годной игры без навыков в программировании. Годоскрипт прост лишь для кодеров со стажем, увы. Если ты принципиально не понимаешь логики компьютеров, как персонаж тролля, набрасывающего в соседних Индия-тредах, то ты и в годоскрипте будешь как слепой котёнок тыкаться. У меня стаж кодинга 20 лет и то я целый год над одной только диалоговой системой работал, постоянно переделывая и отбрасывая неудачные варианты. А ещё бывает, натыкаешься на неочевидные вещи, никак не отражённые в документации. Например, есть кнопка, у неё есть сигналы. Есть диалог, у него есть сигналы. Это в доках есть. Так же в доках подробно описано, как вешать обработчики на сигналы. Но в доках не написано, что ты можешь получить ссылку на кнопки в диалоге и назначить обработчики на их сигналы нажатия, чтобы потом получать нажатие кнопки ОК в диалоге и действовать соответственно. Предполагается, что ты это уже понимаешь.
Короче говоря. Геймдевелопинг - это сложное и обширное ответвление от софтдевелопинга в целом. Наивно вкатываться в него с нуля. Поэтому я и много других анонов в очень многих тредах советуют новичкам начинать с общих курсов кодинга, чтобы хоть немного поднатаскаться в матчасти. А потом уже игры делать, уровня фолыча, с корованами и домиками деревянными.
>>638848 >но при этом нихера не шарю в коде Опиши свое "нихера". Если ты можешь отличить переменную от массива, а интерфейс от абстрактного класса - то можешь спокойно вкатываться.
Нужен человек который может нарисовать СВЕТЯЩУЮСЯ ЛИНИЮ и возможно объяснить как это сделать, а то я совершенно не могу в 2д графику, а делать через шейдеры в падлу, да и не производительно Нужно что-то как на картинке
>>638935 > питон Нет, не слышали. https://docs.godotengine.org/ru/latest/getting_started/scripting/c_sharp/ Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
>>638992 Ты втираешь что-то странное. Экспорт c# в андроид заявлен в 3.2 который еще не зарелизился. Экспорт в ios заявлен как не сделанный. Пруфы экспорта c# в ios какие нибудь имеются? https://github.com/godotengine/godot/issues/20268
Смарите че сделал, где-то за пару вечеров, если попросите кину апк, управление мышкой, для старта тыкните на иконку годо https://yadi.sk/d/n41WryoNBr-dhw
>>639168 > Звук, есть у меня играет, >>639167 > пожалуйста, переименуй все звуковые файлы, чтобы они были с мелких букв и переэкспортируй Да, это баг. Баг case-sensitive в линуксах.
>>639172 > Погодите а как вы ехе запускаете на лиунксе? Я свой ельф сделал, очевидно. Точнее просто взял от одной из своих игор. Заработало! И со звуком!
Тут другой вопрос. Музыка закончилась, я еду дальше в тишине. Нужно либо запускать шарманку сначала, либо уровень заканчивать.
>>639178 Я пока забил на эту игру и делаю другую, т.к. там проблема в шейдере на телефоне, при столкновении на компе шейдер работает отлично, а телефоне дергает картинку 1 раз в бок и обратно, почему пока не разобрался да и лень как-то, все равно еще 100000 фишек надо добавлять чтобы это стало играбельным. А по поводу той-же музыки, всё равно я не могу использовать этот трек, если буду выкладывать в гуглплей, сам я музыку писать не умею, есть один друг одногруппника, который умеет что-то, но не хочу его просить пока все настолько неготово
>>639179 Я знаю что такое ассет, но не умею их устанавливать, т.е. еще ни разу не получилось когда пытался, управляется стрелками т.к. управление на компе я вообще делал только для теста, эта игра не задумывалась для пк. По этому сначала я сделал на стрелки, но управление стрелками оч далеко от управления наклоном, по этому придумал сделать на мышку, максимально похоже на управление гироскопом.
>>639189 Кстати советую забекапить папку C:\Users\ИМЯ_ЮЗЕРА\AppData\Roaming\Godot У меня от экспериментов с шейдерами с падением драйвера видюхи, и от ковыряния с экспериментальными билдами, пару раз зависал комп целиком, и после ребута все настройки были проебаны.
>>639211 Практически, если речь о годоскрипте, то для него сторонние тулзы не нужны, а если речь о сишарпе, то мне, например, удобнее безо всяких тулзов открыть в студии сгенерированный годотом солюшен и не забывать сохраняться после написания кода.
Короче, анон, я тут подумал, и решил взять и добавить в годот блекдж и куртизанок
Что хочу переделать: - выкинуть их рендер, встроить vulkan/DX12/OGL (знаю что в 4 версии это тоже хотят сделать - но они там еще лет сто будут делать) - выкинуть их питон-скрипт, заменив нормальным скриптовым языком и доделать C# - выкинуть bullet, встроить physx - оптимизировать 3Д
Почему не контрибутить? потому что хочу многое переделать, они не пустят (и вообще у них ущербная политика контрибуции - доходит до того что пофиксив баг, надо потом им доказать что это был очень важный фикс бага)
>>639249 Если вулкан сделаешь, вообще заебись будет, а то этот ебаный жылет2 без гпу, а жилет3 вообще нихуя не работает. А если выкинуть питон скрипт то нахуй тогда овобще гд нужен, он же только для тех кому лень в си подобные
вместо питона думаю что-нибудь типа JavaScript/TypeScripts для ленивых и довести до ума C# для остальных. Плюс когда-нибудь хотелось бы и свои блюпринты
Ну а конкретно сейчас переделываю систему сборки (scons меняю на premake5) и обмазываюсь профиляторами (надо узкие места латать)
>>639253 Это вообще не проблема. Можно качать готовое. Можно делать лоуполи по гайдам. Можно рисовать пиксельарт по гайдам. Можно делать процедурную генерацию графона. Главное просто начать и делать. Вот тебе мотивирующий видосик https://www.youtube.com/watch?v=7TXEZ4tP06c
>>639201 Навигация по элементам есть, как можно заметить и в левом нижнем углу по списку, так и подчеркивание гиперссылок при наведении мышки +ctrl Ночной ПРОтип - чтобы автодополнение работало, надо подсказать ему кастом типа через "as ИмяТипа" как выделено строчкой выше. Динамический язык же.
>>639656 > Как кастовать не нашел. Как быть? Попробуй не использовать var. Прописывай тип явно. Spatial collider = raycast.GetCollider(); или Node2D collider = raycast.GetCollider(); Поищи, есть ли в сборке шаблонизированная GetCollider<T>? Если есть юзай её, выводя нужные тебе типы.
>>639659 Он даёт тебе ссылку на экземпляр базового класса, иначе говоря, он даёт тебе ссылку на данные, но не предоставляет интерфейса. Чтобы получить интерфейс, ты должен ПРИВЕСТИ базовый класс к желаемому тебе дочернему. В ссылке на МСДН выше это всё объяснено. >>639660 Пожалуйста! Обращайтесь в истинную веру!
Как экспортнуть игру БЕЗ pack файла с ресурсами? Чтобы спрайты лежали в папочках, можно было отредактировать их, перезапустить билд и они подтягивались. Хочу отдать билд художнику побаловаться.
>>639798 > думаю над решением проблемы Да что тут думать? В одном из первых тредов приводил пример, как создавать текстуры в рантайме из внешних пикч. Только зачем анону ебаться с этими велосипедами, если проще и быстрее научить художника открывать проект в редакторе. Не сложнее, чем открыть кино в видеоплеере. Охуеваю с зумеров. Просто пиздец!
>>639801 Но ведь поебаться с велосипедами это так по кайфу для бумеров. Я бы вообще взял класс image.cpp и на его основе сделал модуль-автоимпортилку при запуске, только времени нет
>>639805 Чем дольше живёшь, тем больше понимаешь, что именно ВРЕМЯ - твоя главная ценность. >>639796 > Слишком сложна Сделай ему ярлык для автозапуска проекта. Или погоди, ему сложно или тебе?
>>639861 на каком безрыбье? Ты можешь открыть саму статью и за пять минут все нужное прочесть. Ну или открыть получасовой видос чтобы посмотреть на эту же статью под гундявого картавого петросянящего тянущего диктора.
Мой выбор очевиден - я прочел статью... Но вот мир почему-то выбирает видосы (сейчас увидел такое же зачитывание патчноута по вышедшему юнити 2019.3 - прям в таком же формате - что-то там туда-сюда скросит в патчноуте)
меня просто шокирует эта мода на видосы.. Особенно по программированию - это же пиздец как уныло учиться программированию по видео: то что пишется за 5 минут, в видосе мусолится по полчаса (люди реально тратят 28 минут жизни на то чтобы узнать как писать цикл for на C#? они больные?
>>639872 >на каком безрыбье? Ну накинь еще каналов для индюков, про обзоры всяких юнити и пэйнтеров и годотов, даун. Увидел один ролик и начал недовольно пердеть ртом, уебок.
Посаны. Посоветуйте вариантов оптимальных. Есть одна программа на годоте, которую я пишу лениво уже второй год. Именно программа, не игра. Конструктор диалогов. Может, кто помнит? Так вот. В моём так сказать "роад-мапе" заложено, что выводить готовые диалоги программа сможет либо в жсон-файлы, либо в БД. И вот по жсон-файлам у меня возникла идея, как бы прикрутить к этому делу схемы? Мне не нравится, что сейчас у меня структура выходного файла прибита гвоздями к коду. Я хочу, чтобы у меня в отдельной панели настроек имелась схема, в которой описывались бы элементы выходного файла и их поля. Согласно этой схеме строился бы интерфейс ввода данных в диалог и конечно же строился бы сам выходной файл. При загрузке сохранённого файла, он бы загружался по схеме и предупреждал о несоответствии. Схемы предполагаю хранить в отдельных файлах в директории конфига программы. Я в принципе не вижу никаких непреодолимых препятствий сделать это всё, однако предлагаю обсудить паттерны и подходы для реализации этого. Ну, чтобы не изобретать велосипедов. Буду рад не только постам, но и полезным ссылкам.
>>639878 Занимаешься хуйней без задач уже два года. Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml, зачем тратить годы на визуальный редактор? Давно бы уже игру доделал за это время, и сейчас бы лежал в гамаке на Багамах.
>>639879 > Достаточно просто сделать загрузку диалогов из файла, и писать их ручками в json/yaml Я посмотрю на тебя, как ты будешь для эрпогэ на 50+ часов геймплея писать разветвлённые диалоги с несколькими концовками и перекрёстными ссылками, в зависимости от этапов игры. Ручками. В блокноте.
>>639876 >Видосы - это интернет-аналог лекций в вузике. не аналог: - преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает". - у них есть к этому способности и навыки - есть живое общение (ради которых лекции и существуют) - всё равно учатся по учебникам, а не маханиям рук преподавателя перед доской. преподаватель объясняет непонятные вещи из учебника, а не учит с нуля.
Видосы по программированию - это убийца времени, потому что любая тема тянется из-за формата видео (а еще и время на перепечатывание кода с экрана с попытками поймать нужную секунду кадра). Тратить один или два часа на тему которую можно было прочесть за пару минут.... В программировании каждая минута важна
видосы это телешоу, а не обучение. И те кто хотят учится по видосам - на самом деле не хотят, им нужно только зрелище (ну там поржать над шутками автора и т.д.)
>>639880 > Ручками. В блокноте. Именно так, только не в блокноте, а в vscode, с подсветкой, поиском, сворачиванием блоков и прочими фичами. И делать буду естественно не один файл на 100000 строк, а буду разбивать на отдельные маленькие файлы для каждого персонажа/катсцены. Я же не долбоёб. > для эрпогэ на 50+ часов Ты сначала сделай хотя бы игру на пару часов геймплея. У тебя за два года вышло 0 часов геймплея, ты с такими темпами 50 часов за остаток жизни не доделаешь.
>>639881 > преподаватели готовятся к лекциям а не "ну эм наверное тут вот так почему то не работает" жыды-квест готовится к своим видосам. Не равняй под одну гребёнку всех. Обидно, конечно, что русскоязычные ютуб-лекторы мычат. Селяви. > есть живое общение В комментариях. > всё равно учатся по учебникам Спорим об одном и том же. На лекции послушал общую инфу, обсудил. И идёшь учить матчасть по учебникам. Никто и не спорит.
>>639886 >что у него есть подробные уроки с разбором движков то что я у него на канале посмотрел - это не обзоры движков, это именно зачитывание чужих статей, плюс пара тыков мышкой иногда.
Анончик. Поясни, пожалуйста, что за беда с производительностью при экспорте под андроид. Честное слово, заебался уже экспериментировать. Беру простой чисто 2Д платформер, рисую карту в tiled экспортирую в проект как набор tilemap'ов. Далее, если экспортировать под пека, выдает стабильные 60фпс, почти на чем угодно. Если же экспортирую под android или html5, то получаю дикие лаги с падением fps до 20 и ниже. Если вместо тайлмапов, просто кидать большую текстуру (экспортирую карту из tiled'а как один большой png), тогда все работает почти нормально. В html получаю fps = 60 (проседания только если еще несколько страниц в браузере открывать), в андроиде же все равно fps не стабилен где-то в районе 50-60fps. Причем на разных устройствах по разному. Причем на более слабых иногда даже больше бывает, чем на более мощных. При том что дело именно в отрисовке, на рассчет одного физического фрейма уходит максимум 0.004с, даже если физику выкрутить на 120). Сразмерами чанков тайлмапов пробовал играться, ни на что не влияет.
Можно ли вообще добиться стабильных 60fps на андроиде и как под это дело проект оптимизировать?
>>640652 Андроидопроблемы. Не рекомендую делать игры для андроида. Делая игры на проприетарный гуглозондовый андроид, ты предаёшь своих пекабратьев. Отлучаю тебя от церкви ГНУ ЖОПАЕЛЬ, отступник. Пиздуй нахуй. Навсегда.
>>640671 Ну вообще изначально планировал пару слоев параллаксного бэкграунда. Плюс 3-4 слоя самой карты. Плюс слой фореграундного параллакса. Но смысл в том, что данная проблема появляется даже при наличии всего одного тайлмапа на сцене. Т.е. даже если я сделаю кучу слоев но большими текстурами/картинками - то производительность в принципе норм и держится близко к 60 fps (на одном слабом старом девайсе, даже, каким-то образом, показало 66fps при включенном vsynce, я х.з. как такое может быть). Как только заменяю хотя бы один слой карты на тайлмап, фпс тут же проседает до 20-ки. Даже на достаточно мощных устройствах.
>>640710 1) Для тех кто использует плагин для импорта тайлмапов из tiled'a. При переходе на godot 3.2 все ваши карты пойдут по пизде, но поправить это несложно. Ищете в вашем проекте следующий файл скрипт: \addons\vnen.tiled_importer\tiled_import_plugin.gd В нем находите строку: options.apply_offset = true и меняете на false Затем очищаете каталог .import и открываетет проект заново. Все должно быть нормально.
2) Так же если вы используете touchscreenbutton с текстурами на кнопках и какой-нибудь формой в свойстве shape с флагом centered, то будьте готовы, что выши контролы уедут в сторону. Т.е. shape будет отображаться по центру текстуры в редакторе, а вот реагировать она будет как будто она в левом верхнем углу. В бестекстурных кнопках такого не наблюдается.
Это то, что вылезло на моих проектах. Может есть еще какие-нибудь подводные камни, я хз.
>>640720 > Это то, что вылезло на моих проектах. Может есть еще какие-нибудь подводные камни, я хз. На моём проекте вылезло вот что: Я использовал неявный каст StreamTexture на ImageTexture и в 3.1. вопросов не было, а в 3.2. мне показало ошибку компиляции. Видимо, типизацию доработали.
>>640776 >>Обновляться во время работы над серьёзным проектом >Ну такое. А что такого. Проект все равно под контролем версий, миграция отдельной веткой идет, откатить назад вообще не проблема, тем более, что по факту изменения мизерные.
>А вообще, осенью интересовался тайледом, но не понял, чем он лучше встроенного редактора. Обесните плиз. Возможностей редактирования карты в разы больше. Намного удобнее встроенного редактора. Во встроенном редакторе можно накидать простенькую карту, но вот если захочешь ее изменить, то это будет боль.
>>640838 > Возможностей редактирования карты в разы больше. Намного удобнее встроенного редактора. Пойду ещё раз пересмотрю туториалы. Может я с наскока чего-то недопонел.
>>640730 Был 3.1 сейчас 3.2 - сэйм щит. Gles 2. Пробовал 3-й - результат был может быть на пару кадров лучше. Скрипты с картой ничего не делают. Только персонаж по ней гуляет туда сюда и все. Физика стандартная платформенная.
Завтра прогоню пару тестов с разными вариантами и подробнее распишу, что и как с цифрами.
>>640838 А еще по плагину поясни. Он экспортирует полностю готовую карту или мне всё равно придётся ебаться с настройкой коллизий, окклюзий света, навполигоном?
>>640841 > Физика стандартная платформенная. Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит. А клетки какого размера? Вообще про твою проблему пишут много, пробуй менять квадрант, они же чанки (начни с 16 или 32, или 8), ставить целочисленные camera zoom, подумай над увеличением размера клетки (меньше клеток на экране = быстрее), отключи Ysort если без него можешь обойтись. Пока не знаю что еще посоветовать. Можно включить сжатие тектур, но вряд ли поможет.
>>636581 Ну и нахрена это надо, когда есть б-жественный итч.ио, на который можно билды заливать по одному клику мыши и вдобавок тебе не будут тыкать пачкой говнорекламы в лицо сходу с главной страницы?
>>640851 >Коллижн шейпы у тайлов? Хотя вроде ты пишешь физика не тормозит. Все коллижен шейпы идут отдельным слоем, и не привязаны к тайлам. Формы у всех либо прямоугольники, либо трапеции с редкими закруглениями.
>Вообще про твою проблему пишут много, Пишут то много, а вот решения нет. Судя по github'у они просто пересылают друг друга от тикета к тикету и никто решением не занимается.
>пробуй менять квадрант, они же чанки (начни с 16 или 32, или 8), Пробовал, не дает эффекта при минмальном 8 и максимальном 128 эффект одинаковый. >ставить целочисленные camera zoom, Не использую, везде один к одному.
>подумай над увеличением размера клетки (меньше клеток на экране = быстрее), У меня размер тайлов 16 х 16, если делать больше, то проще сразу в одну большую картинку конвертить.
>отключи Ysort если без него можешь обойтись. не использую, слои просто разнесены по разным Z level'ам
>Можно включить сжатие тектур, но вряд ли поможет. Не пойдет - пиксельарт ---------------
Погонял сегодня разные варианты, получаются вот такие цифры:
1)Карта нарисована тайлмапами режим stretch 2D = 10...15fps режим stretch Viewport = 15...20fps
2)Карта сделана несколькими большими текстурами режим stretch 2D = 35...40fps режим stretch Viewport = 50...60fps (c периодическими падениями до 45) ------- Физика работает отлично, максимум на один физический фрейм уходит 0.005сек (при 120 фреймах в секунду), инпут лага нету. Т.е. затык именно в отрисовке. ------- На компе во всех режимах стабильные 60fps ------- Похоже придется делать по последнему варианту. Написать скрипт для tiled'а, чтобы он автоматом сохранял мне каждый слой карты в отдельную картинку, и из них уже сцену лепить. Плюс возможно сделать в настройках опцию для залочивания FPS на 40 или 30 (это кстати вообще возможно в годоте? ), чтобы не было рывков, т.к. насколько я понял добиться постоянных 60fps от андроида почти нереально.
>>640875 Погоди, я немного недопонел. А ты пробовал делать стандартные тайлмапы и тестить их в андроиде? Может там сами тайлмапы тормозят и tiled не при чём вообще?
>>640883 Мобильные процессоры какие-то странные. Вроде мощ есть. Но в ряде задач они дичайше тормозят. По видимому реализация тайлмапа как раз использует такие подходы, которые ОК для классической архитектуры пека и неподьёмны для мобильной. Я честно говоря, не особо разбираюсь в железе, так что могу посоветовать только отказаться от использования тайлмапов. Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.
УЖЕ, БЛЯДЬ, ДОГАДЫВАЛИСЬ ЧТО МОЖНО, СУКА ПОЛОЖИТЬ ВСЕ ТАЙЛЫ В ОДНУ ТЕКСТУРУ А К ВЕРШИНАМ КВАДОВ-СПРАЙТОВ ПРИДЕЛАТЬ, БЛЯДЬ, ТЕКСТУРНЫЕ КООРДИНАТЫ И ХУЯРИТЬ ВСЕ КВАДЫ СРАЗУ.
>>640936 Лучшее в мире советское образование, охоспаде. Оно было недоступно Хуану. Но на то и опенсорц - братушки из России подтянутся и пофиксят баги, а Хуанчик помержит.
>>640936 1. Это не опенжл 1.0. 2. Ты вырвал фразу из контекста, не понимая как работает движок. Мнение о том как вася написал бы хеллоу ворлд очень важно для нас.
>>640951 Вась, я понимаю что ты увидел знакомое по хеллоу ворлду слово дравкол, и возбудился, но тайлмапы и так рисуются одним квадом, а то что ты там себе выдумал это дело десятое, еще раз повторю, что ты нихуя не понял сути пулл реквеста, который просто кеширует на стороне движка больше данных, чтобы меньше времени тратить на переключении состояний.
>>640884 >Конструируй тайлмапы и конверитруй их в картинки. Юзай спрайт для помещения картинки целиком на игровое поле. Интерактивные объекты делай отдельными спрайтами.
Ну собственно я к этому решению и пришел. ---- >>640884 >И ещё к тебе просьба, попробуй собрать бенчмарк тайлмапов от анона из прошлых тредов под андроид и замерить фпс
Экспортнул проект 4anon под андроид в двух видах Один под разрешение 1440x720, второй под 720х360 с растягиванием через viewport (Проект не переделывал, просто в настройках изменил разрешение и передвинул контролы, чтобы они попадали в экран) Экспортировал с debug-keystore
Результаты на пиках: Для версии с меньшим разрешением рузультаты на 5-10 fps в первых двух сценах лучше, в сцене с тайлмапом - всего на пару кадров больше.
>>640928 >Ладно вот такой вопрос - а какой у тебя аппарат и сколько у него RAM (в идеале сколько свободной).
проц: Mediatek MT6739 - 4x ARM Cortex-A53 @ 1.30Ghz GPU: PowerVR Rogue GE8100 Разрешение 1440x720 Обьем встроенной памяти 16Гб (на момент запуска свободно >2Гб) Обьем оперативки 2Гб (на момент запуска свободно 880 Мб) Андроид 8.1.0
>>640932 >В общем, надо подождать, чувак сделавший порталы, уже делает батчинг
Я посмотрел его изменения в коде, и меня сомнения мучают, Судя по коду и комментам выглядит так будто он просто следит пришла ли команда на смену текстуры в opengl и сравнивает ее с предыдущей, и если новая текстура совпадает со старой, то просто отменяется смену. Я не спец в opengl и вообще, объясните кто разбирается - я правильно понял или я мудак и там что-то более толковое? А то если я все-таки правильно понял, то это как-то совсем костыльно выглядит.
>>641080 >Я не спец в opengl и вообще, объясните кто разбирается - я правильно понял или я мудак и там что-то более толковое? это называется кешированием стейта. И да, оно толковое. Любое изменение стейта дергает видеокарту - это дорого. И видеокарта настолько тупа что без этого будет менять стейт даже если он такой же как уже установлено
Поэтому сначала придумали батчинг - чтобы одинаковые стейты сортировать по пакетам
Потом придумали вот это кеширование стейтов - чтобы не отправлять то что и так есть. Кеширование + батчинг + сортировка - позволят еще и уменьшить количество дерганий
(ну а потом придумали что все стейты надо ставить один раз и больше не трогать, появился термин pipeline и родились вулканы и дк12, где это легко в основу философии)
>>641085 Твои подозрения обоснованны. Ты сам того не ожидая, вскрыл самую болезненную тему всего опенсорца в целом. Видишь ли, чтобы выкладывать исходники под открытой лицензией, надо понимать, что ты выбрасываешь на ветер труд, за который мог бы получать деньги. Мы, к сожалению не при коммунизме живём, и кушать за что-то надо. Поэтому в опенсорце есть два вида сорцев: спонсируемые и фанатские. Со спонсируемыми всё ясно. Разрабу платит бабло крупная фирма, он делает проект и ему помогает сообщество. Выгоду имеют все. Разраб имеет хлеб с маслом. Корпорация имеет бесплатный софт, на разработку которого может влиять. Сообщество имеет бесплатный софт и дополнительную денежку на хлеб с маслом ибо любимый софт бесплатен, и в этот софт можно вносить правки и фиксы. А фанатские сорсы часто пишутся фанатиками опенсорца, никем не спонсируются, фанатики живут на хлебе и воде (и бородавках с пяток). И частенько такие фанатии - поехавшие. И частенько они пишут костыли и на полном серьёзе считают их венцом творения.
Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков.
>>641088 >Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков. И к чему этот дурацкий вывод? Хуан всегда пилил годот профессианально за деньги.
>>641088 >Как мы видим по новостям, годот плавно перемещается от состояния поделки фанатика Хуана к профессиональному опенсофту под крылом майкрософта и эпиков. А кто возьмется переписывать тысячи строк Хуановского говнокода, которые уже сейчас делают годот непригодным для разработки игр?
>>641093 >пилил годот профессианально Ага, профессиональные 7 фпс запилил, охуеть просто >>641077 Такую сценку еще древние движки из нулевых типа HGE запросто выводили со стабильными 60 фпс, а годотя не может.
>>641097 У корпораций есть такой трудовой ресурс. Надо будет - пригонят индусов. Всё решаемо. Модуль за модулем с сохранением интерфейса перепишут. При этом новые модули будут с новым интерфейсом. Старый интерфейс пометят как deprecated и оставят для совместимости на пару мажорных версий. В большом бизнесе всё решаемо.
>>641098 Вопрос не в качестве кода, олень, а в том платят деньги разрабу или, нет. Хуангу и так платили, что должно измениться, он перестанет срать кодом?
>>641077 Анон, анооон! А попробуй ещё экспортнуть в хтмл5 и запустить на андроиде. Тоже так всё печально будет? Цель: выяснить источник тормозов на андроиде, аппаратный или софтварный
>>641141 В одном из issues попадалось, что тормоза тайлмапа возможно из-за неправильнного выделения памяти, соответственно если у него тайлмапы сжирают 400 метров, а всего на старте свободно 800, то возможно память просто закончилась совсем.
>>641141 Мне лень конвертировать 4anon и заливать его на сервак, поэтому я проверил на своем проекте >>640875 который у меня уже залит. Запускал на том же телефоне в хроме. С картой картинками - 10...15FPS, с картой тайлами 5...10FPS. Плюс очень долгая загрузка.
>>641441 Никаких хейтерков нет. Есть люди, которые хотят пользоваться движком, но недовольны низкой производительностью. Как движка, так и разработчиков.
>>641439 Наверное для тебя это будет открытием, но все люди мыслят по разному, есть те, кто действительно не представляют себе визуальные образы, а воспринимают все как логические цепочки.
>>641449 > недовольны низкой производительностью Дак пусть не делают эрпогэ с открытым миром и корованами. Рано ещё. Мини-игры пусть делают и не бугуртят.
>>641496 Блять, для тетриса не нужен высокий фрейм рейт. Ну по крайней мере на начальных этапах игры, когда скорость низкая. Но уж тайлмап точно не обязателен. Двигай фигуры по координатам, кратным длине квадрата из которого фигуры состоят. Мой Тетрис на тайлмапе, но исключительно по причине удобства. Можно и без него.
>>641499 Ну я же не только тетрис хотел, а вообще разные олдовые аркадки. Понятно что придется написать свой тайлмап на спрайтах, просто думал воспользоваться готовым, просто как массивом клеток. А так он просто место в билде жрет.
>>641502 Вообще, годот, как я понял, произрастает из аргентинского движка для казуальных игор под винду, уровня зумы, тривряд, для убивания времени в офисе, алавар ещё была контора, занимавшаяся подобным. Поэтому совершенно не удивительно, что оптимизация под винду там хоть какая-то есть (для казуальных кликалок), а под андроидом - сорян. Не завезли. Под линуксом я сейчас тоже натыкаюсь на редкие, но обескураживающие недоразумения (например в конфиг записываются имена файлов в нижнем регистре, несмотря на заглавные буквы в именах, отчего в экспортированном проекте аудио невозможно найти на охуительной файловой системе, чувствительной к регистру, и звука поэтому нет). Затянем пояса братие и ждём 4.0 с вулканом. Верим, ждём, надеемся.
>>641512 Можно считать что никакой преемственности нет. Все равно тормозит в данном случае только на андроиде. Было бы время поотлаживал бы, но пока некогда.
>>641518 Вот-вот. Время андроидо-игор в самом разгаре и даже, возможно, слегка на спад уходит. А они только нашли деньги, чтобы основное пофиксить. >>641521 Короче говоря, андроид пролетает. То-то я гляжу, Петя Сканер на ютубе, сначала с двадэ на тридэ перешёл, а потом вообще затих. Щас вот недавно анонс какой-то выкатил, попахивающий разводом на бабло. Видимо до него тоже дошло, что для андроеда годот пока ещё слишком сырой и решил стричь бабло на бессмысленных и беспощадных курсах, как это делают друзяшки Хуана.
>>641529 Для олдовых игор 200 даже много. Можно и в сотню уложиться. Например, тетрис. Ты посчитал площадь игрового поля 10х20, но большую часть времени заполнена треть-четверть поля. К 200 количество заполненных клеток приближается на грани проигрыша.
>>641546 Тогда предлагаю два хардкорных варианта: 1. Отрисовывать шейдером. 2. Отрисовывать на канве. Сам как-то хотел тряхнуть стариной и попробовать рисовать на канве, но поскольку я нацелен на пека, то оставил попытки и пользуюсь тайлмапами.
>>641557 Я не знаю. Давайте заглянем в исходники? >>641554 Ну, собственно, вот и всё. Полнофункциональная замена тайлмапа (в части отрисовки простейшего набора квадратных тайлов) пикрелейтед:
>>641560 Не. Я чай пил. И ещё в ньюсаче раковал. Если честно, я не вижу смысла заглядывать. Ведь в годоте всё, абсолютно всё выводится через ГЛЕС-драйвер, выбираемый в правом верхнем углу. То есть, как бы ты не извращался с нодами, в конечном итоге всё выведется на видеокарту и ею аппаратно отрисуется. Кроме ЦПУ-партиклов в ГЛЕС2, которые введены недавно и по сведениям документации, рисуются программно.
>>641564 Буквально в прошлом треде обсуждали и перетекли в этот тред. Треды читать полезно. Даю ссылку на последний пост в цепочке: >>635481 Мы правда не называли это чанками, но я думаю, терминология тебе не помешает разобраться. Речь о пуле чанков, реализованном через ветвь нод в памяти, отдельную от дерева.
>>641559 Добавил ещё один такой объект для пенели Next и начало помаргивать из-за того, что ради отрисовки одного тайла перерисовывается всё поле. Всё таки придётся реализовывать заложенную изначально вот здесь >>641554 интеллектуальную отрисовку только меняющихся тайлов.
>>641571 >интеллектуальную отрисовку только меняющихся тайлов. Правда что ли? Прям как на GDI или в первом pygame, только я на pygame я сделал тетрис без этой техники дидов. Значит, там нет аппаратной поддержки(((
>>641581 Он держит в памяти только то, что явным образом держишь ты. Полная свобода по менеджменту чанками в твои руки. Отдалённые выгружаешь через queue_free() самостоятельно. >>641573 >>641577 Короче говоря, интеллектуальная отрисовка по заветам GDI-дидов не потребовалась. Проблема оказалась тривиальнее, пикрелейтед.
>>641549 Я кстати не уверен что рисовать на канве быстро. Это ж либо опенгл-примитивы, а я слышал они сильно тормозят, поскольку не треугольники, тогда и рисовать надо треугольниками даже линии и подгонять всякие антиалиасинги. Или рисовать в картинку и гонять текстуру каждый кадр.
>>641586 Ну, тут только самому тестить, скорость мерять. Не стоит доверять слухам. >>641587 Ну, я своих целей только что достиг. Добился аутентичного лука энд фила из детства. Пикрелейтед.
>>641592 Да, было 10 на 20, а я пиздюком мечтал, вот бы выпустили модель тетриса побольше. И вот, когда китайцы не доставляют, идёшь и реализуешь мечту самостоятельно!
>>641595 >>641596 >>641624 Права на Тетрис сейчас принадлежат Нинтендо, и у них есть методичка со всеми строго расписанными параметрами, такими как размер поля, цвет фигур, особенности управления и т. д. Шаг влево-шаг вправо - расстрел. Впрочем, вы и сами это без меня знаете.
>>641624 Недавно видел соревнования по реалтайм шахматам. Выглядело очень забавно. Там можно двигать все фигуры одновременно, но у каждой фигуры есть куллдаун после каждого хода.
>>641630 > Права на Тетрис сейчас принадлежат Нинтендо
>В 1996 году он с Хенком Роджерсом (англ. Henk Rogers) создал компании The Tetris Company LLC и Blue Planet Software, пытаясь получить прибыль от бренда Tetris. The Tetris Company LLC (TTC) зарегистрировала слово Tetris как торговую марку. С тех пор несколько компаний купили у TTC лицензию на торговую марку, но законность игр тетрамино, которые не используют название Tetris, не оспаривалась в суде. По американским законам, игру нельзя защитить авторским правом (только запатентовать), поэтому основным имуществом компании является торговая марка Tetris. Несмотря на это, TTC преследует клоны игры под именами, непохожими на Tetris. В мае 2010 года юрист TTC послал[14] письмо в Google с требованием убрать с рынка Android Market все 35 клонов данной игры, хотя их имена не схожи с именем «Tetris». Впрочем, по сообщениям прес-службы корпорации Google, Сергей Брин послал Пажитнова нахуй.
Надо бы внести это в шапку ньюфаготреда, чтобы залётным неповадно было хуйню нести.
>>641661 Не читай советских википедий. Гугли суд 2012, там американский судья перечислил признаки Тетриса защищаемые законом, в том числе поле 10 на 20
>>641669 Загуглил. Там доебались до клонирования лука и фила. И действительно. Игры-клоны выпускать неправильно и подло. В этом вопросе я полностью поддерживаю сторону обвинения. Теперь встречный вопрос. Как упомянул анон выше >>641657 я делал клон аппаратного устройства. Насколько юридически законно использовать этот клон как вспомогательную игровую активность в тридэ эрпогэ с открытым миром, домиками деревянными набигающими и корованами за 1999 руб в стиме?
>>641671 В свое время, Pajitnov не смог запентовать свой invention потому что работал в Soviet Academy of Sciences, в которой все права передавались government сроком на 10 лет. А даже если бы и запатентовал, то срок 20 лет уже вышел.
как годот дружит со звуком? можно ли без задержек воспроизводить десяток звуков в одну долю секунды, несколько раз в секунду, чтоб ничего не пошло по пизде?
А, эти дурачки добавили галочку use as traction, но уведомили о ней только в жопе гитхаба и на вики пока не видно обновлений по этому поводу Надо галочку use as traction на колёсах пометить
>>641861 У меня примерно такое же было при переходе с 3.0 на 3.1 с анимацией частиц. Бомбил сильно. Вся анимация перестала работать и выводился спрайтлист целиком. И все связанные с анимацией настройки ИСЧЕЗЛИ!!! Как же я бомбил! Как же я проклинал Хуана! А потом методом тыка обнаружил, что анимация подключается отдельным шейдер-ресурсом и только в режиме GLES3. В документации наверное и по сей день не отражено.
Котаны. Есть некий код, который вытаскивает числа из массива, числа могут быть целыми и дробными. Почему-то целые числа он не видит в упор, считая все числа float'ом. Типизировать числа в массиве скрипт в данном случае к сожалению не может. Я имею ввиду что-то типа PoolTypedArray<[T1, T2, ... Tn]>
>>641977 Я обычно могу расшифровать любые непонятные вопросы, но ты победил, признаю. Какие то квадратные скобочки внутри угловых, массивы из разнородных типов, объясни нормально.
>>641979 <> - элемент типизирования по шаблону (быдляцк. "дженерик") примеры List<T> где List общий тип, Т уточняющий тип, List<String> означает типизировать общий тип списка до строкового. [] - элемент описания массива, пример [T1, T2, T3] массив уточняющих типов для шаблона выше. Gdscript позволяет создавать массивы из разнородных элементов. Но не умеет в типизирование.
Слоуфикс: >>641977 > Я имею ввиду что-то типа PoolTypedArray<T1, T2, ... Tn> Вот такое гдскрипт не умеет. Умеет шарп, но та задача, что я решаю в гдскрипте, в шарпе имеет готовые решения, тысячи их.
>>641982 Я знаю, что такое дженерики в C# (и в чем разница с шаблонами), но мне кажется ты пишешь про несуществующую фигню, что-то вроде Array<int OR float>. Ну да ладно. В любом случае PoolTypedArray нету, есть только PoolRealArray, с другой стороны обычный Array таки хранит тип объекта, ты можешь его проверять через typeof(variable)
Не хочу разводить срач, но как фиксить оптимизацию 3д-проекта, если на другом движке (не буду упоминать его здесь) на аналогичной сцене с 3д мешами больше фпс на мобильных устройствах? Выбрал годот из-за удобного языка, поэтому почему я не остался на том движке можно не спрашивать. Пока думаю, как менять разрешение на мобильных, ибо у меня смена разрешение работает только на десктопе
>>642048 Это довольно обширная тема, поэтому для начала опиши в общих чертах жанр, компоновку сцены и т.д., какие фичи используются. Разрешение выставляется где-то в настройках проекта -> window. Также можешь попробовать с/без vsync. Во-первых, думаю стоит переключиться в GLES2, понятно что отвалится довольно много фич. Среди них - частицы на gpu, текстуры глубины (останутся только нормали), HDR, продвинутые свойства материалов, как микрорассеивания, фильтр постпроцессинга цветовой гаммы, SSAO. Перестанут работать GIProbe, поэтому надо будет запекать тени, что тоже даст большой прирост. Также советуется уменьшать количество одновременно действующих источников света. Нельзя просто воткнуть 5 ламп которые светят на один куб. Вроде бы для GLES2 надо отключить сжатие текстур ETC2 и S3TC, и вместо этого включить ETC Подробнее тут https://docs.godotengine.org/en/latest/tutorials/misc/gles2_gles3_differences.html https://docs.godotengine.org/en/latest/tutorials/3d/baked_lightmaps.html Также надо будет проверить настройки неба. По-моему, я читал, что процедурное небо тормозит. Но точно не помню.
Так, что дальше. Если у тебя вид издалека, то придется сделать LOD. Он делается легко, надо добавить меши разной детализации к ноде, и скриптом переключать их видимость в зависимости от расстояния до камеры. Если у тебя коридорный шутан, можешь попробовать перекомпилировать движок добавив модуль https://github.com/lawnjelly/godot-lportal/ и расставив порталы между комнатами. Если у тебя много однотипных объектов - армии солдатиков, стаки кубов - то тебе надо воспользоваться MultiMeshInstance. В годоте пока нет окклюжн куллинга, поэтому если у тебя домик в котором тысяча бутылочек, то надо тоже воспользоваться какой-то оптимизацией, или портальной, или подобием чанков. Да, в случае таких оптимизаций, придется перенести коллижн шейпы уровня в отдельное дерево, а не детьми мешей. Чтобы объекты, которых не видно за стеной, не проваливались. Если у тебя какие-то сложные рассчеты будут, будет смысл смотреть в сторону C# (пока на айфоны) или сразу C++.
Общие принципы - надо уменьшать количество материалов и шейдеров, переиспользуя их повторно для разных объектов. Мобилки не любят прозрачность. Надо сводить количество прозрачных объектов к минимуму. Подробности тут http://docs.godotengine.org/en/latest/tutorials/3d/3d_performance_and_limitations.html Там также упоминается, что мобилки fillrate-bound, т.е. весь экран делится видеочипом на "квадраты" и мобилка не любит, когда много пикселей выводится в одном и том же квадрате. Т.е. не надо накладывать стеки спрайтов друг на друга.
Можно также почитать гайды мобильной оптимизации того другого движка. Это может включать в себя: побольше статической архитектуры с запеканием теней, поменьше источников света, особенно динамических, поменьше физических объектов, чтобы количество столкновений не росло в квадрате, заменять какие-то объекты на билборды (3д спрайты).
У Годота есть особенность прогрузки шейдеров и моделек при спавне. Чтобы этого не происходило, по видимости, надо делать по аналогии со Скайримом, в котором была комната куда складывались все трупы, а тут надо при загрузке уровня выстрелить всеми снарядами и заклинаниями скрыто от глаз игрока. Вот все что я вспомнил сходу.
>>642049 А, вот что забыл. Не надо делать архитектуру уровня одним цельным мешем, а надо нарезать на кусочки, иначе не будет работать frustrum occlusion камеры.
>>642051 Я возможно не очень удачно вываливаю такую инфу. Попробуй упрощенный план: 1. Включить gles2 2. Уменьшить количество источников света и теней, убрать процедурное небо 3. Запечь тени, не пользоваться gi probe 4. Поменьше перерисовок в одном месте экрана, учитывая что то, что скрыто препятствием, все равно рисуется 5. Снизить количество вершин в мешах, размеры текстур. 5. При необходимости добавить lod/чанки/порталы/мультимеши Также, прочитал, что в Годоте есть какой-то новый профайлер с синхронизацией, работает по usb-шнурку, суть такова - в редакторе отключаешь источники света, ноды с мешами, и тут же видишь что вносило вклад в тормоза.
>>641861 >>641897 Вот, кстати, да. Хуан бы на полученный грант, занялся приведением документации в нормальный вид. А то дохуя моментов которые в доках либо хреново описаны, либо вообще никак.
>>642049 Анончик, а можешь накидать подобных советов по оптимизации чисто 2Д проекта (пиксельный платформеро-квест) под мобилки?
А то из всех моих изысканий пока только подходит отказ от тайлмапов, заменой их на статичные пикчи (>>640875 ). И то, стабильных 60fps все равно не получается добиться, постоянно идут провалы.
>>642062 > постоянно идут провалы Возможно, у тебя по логике игры грузятся объекты, например, пули для оружия, у которых в _ready() что-нибудь долгое вычисляется?
Всё очень просто, с китайцев спросу нет, они не люди, с тебя будет, поскольку ты хоть и сноуниггер но по прежнему белый и географически по прежнему в европе.
>>642062 Да у тебя вроде и так все нормально было, просто телефон слабый? Пока слежу за прогрессом нового батчинга теперь тут https://github.com/godotengine/godot/pull/35957 Обещают 5х прирост на тайлмапах, сегодня соберу и погоняю.
>>642097 Сам полчаса составлял. 1 команда качает пулл-реквест 35957 и создает бранч под названием batch-2d. Черри пик мерджит коммит под указанным номером оттуда в мой мастер, только эти 4 измененных файла, иначе он мне весь годот 4.0 выкачает.
>>642100 >>642098 То есть, получается, у тебя весь движок 3.2, а эти 4 файла из 4.0 лично твой пека у себя хранит под бранчем с отдельным именем и в случае чего перекачает всё заново в этой же конфигурации?
>>642104 >у тебя весь движок 3.2, Да. > эти 4 файла из 4.0 Тут я сам не до конца понял, но думаю так: пулл реквест привязан к мастеру >lawnjelly wants to merge 1 commit into godotengine:master from lawnjelly:batch-2d А в годоте гитхаб организован так, что мастер - это текущая рабочая ветка преальфы 4.0 Во всяком случае, когда я попробовал сделать просто pull этого PR, он мне скачал 26789+ изменений файлов. Возможно, если я переключусь на этот новый бранч batch-2d, То у меня будет мастер 4.0 + эти 4 измененные файла.
>>642105 С нетерпением жду, чем всё закончится. Было бы круто подрубать фиксы из мастера в стабильную сборочку. И желательно, чтобы стабильность не херилась.
Снова вопрос про то, как лучше реализовать мою задумку. Дана одна сцена и меню выбора уровней. Необходимо, чтобы при нажатии, например, на кнопку уровня под номером "2" загружалась сцена с дополнительным условием, например расположение точки финиша на сцене. И ещё вопрос как лучше сделать вызов окна выигрыша. В моей реализации я просто включаю скрытую ноду окна выигрыша Короче говоря хочу меню выбора уровней как в Энгри Бердс и прочих подобных дрочильнях.
>>642068 >Возможно, у тебя по логике игры грузятся объекты, например, пули для оружия, у которых в _ready() что-нибудь долгое вычисляется? Вот именно, что нет. Просто статичный уровень, персонаж на нем и немного вывода на экран (НЕ в консоль) для дебага. И просто гуляя туда-сюда периодически получаю провалы на 5-10 fps. ------- >>642076>>642076 >Да у тебя вроде и так все нормально было, просто телефон слабый? вот конфигурация >>641078 не хайенд конечно, но в моем понимании тянуть, тянуть то должен. ------- >>642076 >Пока слежу за прогрессом нового батчинга теперь тут https://github.com/godotengine/godot/pull/35957 >Обещают 5х прирост на тайлмапах, сегодня соберу и погоняю. Анон, держи в курсе, пожалуйста. Если действительно хотя бы в 2-3 раза прирост будет, то тоже дерну эту ветку и попробую собрать. -------------
>>642125 > Дана одна сцена и меню выбора уровней. Необходимо, чтобы при нажатии, например, на кнопку уровня под номером "2" загружалась сцена с дополнительным условием, например расположение точки финиша на сцене. Сцены, которые ты грузишь кнопками - это игровые уровни. Каждый твой уровень должен иметь функцию, которая в качестве аргумента принимает координаты точки финиша. То есть иметь единый интерфейс. После этого в коде кнопок у тебя стоит вызов этой функции. Это только один из возможных вариантов.
>>642150 >>642106 Держу в курсе - пока успел потестить пример из ишью, и тест 4anon из шапки. Пример действительно разогнался, как и заявлено, а вот мой тайлмап - нет. Почему, пока не смог выяснить. Может получится настроить профайлер через кабель, сучий андроид все время связь теряет.
>>642125 Служебное меню, доступное в любой момент выполнения приложения должно быть синглтоном (великим и ужасным антипаттерном, за который не перезванивают). Добавляешь сцену с выбором уровней в автозагрузку, вешаешь на нее кнопку Esc например или Tab, по которой она появляется и скрывается. Из этой сцены кнопки выбора уровней задают параметр активной сцены в движке, которая есть игровой уровень, как написано выше. Второй вариант передачи параметров в игровой уровень: держать переменную в нём. Если загруженная главная сцена нуждается в параметре, она обращается к синглтону и берет эти данные у него. Я пользуюсь этим способом, у меня в авто загрузке всегда висит синглтон world, который, как видно из названия, держит в себе всю актуальную информацию об игровом мире (даже если это "мир" настольной игры). Этот же файл удобен как данные для файла сохранения. Способ я редко афиширую. Из-за антипаттерна в составе.
ЧЁ ЗА ХУЙНЯ С ТОРМОЗАМИ У VehicleBody Выставляю в редакторе силу тормоза (brake) 100500, а годот сбрасывает её до одного. Что блядь удивительного, так это то, что в оф. руководстве написано, что BRAKE ОКАЗЫВАЕТСЯ МОЖЕТ ПРИНИМАТЬ ЗНАЧЕНИЯ БОЛЬШЕ ОДНОГО, но как это сделать не уточняется. Только потом узнал, что значение надо менять не через редактор, а через К О Д
Или всё же выставляется, но редактор упорно продолжает показывать значение 1 у brake, хотя в самом руководстве рекомендуется опираться на значение 20-25 при 1000кг массы
>>642205 >>642204 Неадекватность документации в ряде вопросов - факт известный. Юзай треды на реддите через поиск в гугле для более полноценной инфы. Пока так. Держись там. Хорошего настроения. И успешных игор.
>>642167 Пару лет назад пользовался Nox, чтобы на компе играть в какую-то ферму, правда со временем он разбухал все больше и больше, да и скорее всего сливает все что на него устанавливаешь китайским авторам. Из забавного юзкейса - нашел в дампе памяти 3д модельку и выковырял ее. Искал чит энжином по примерному значению float. Правда, к этому времени хакеры вытащили ее то ли расшифровав сетевой трафик, то ли риппером с буфера opengl и выложили
>>642239 Так, ну на первый взгляд: 1. надо перенести это в _physics_process 2. В move_and_collide вектор надо домножать на delta (в move_and_slide не надо) 3. velocity который ты рассчитываешь, вообще никак не используется?
>>642239 Неправильно. Ты просто указываешь направление на пол единичным вектором Vector2.DOWN если пол внизу. И после этого у тела заполняется свойство is_on_floor() Другое дело, если тебе надо цепляться за стены. В таком случае тебе вообще лучше рассмотреть переход плеер-контроллера на полноценный RigidBody c полноценной симуляцией физики, чем ебаться с этим кинематическим велосипедом.
Бля, у меня уже мозги вскипели! Как может брекпоинт не срабатывать на 81 строке но срабатывать на 84? Притом, что по показаниям локальных переменных она (функция вызываемая в 84й строке) отработала. Если ставить брекпоинты внутри _type_selection, они срабатывают. И вообще, после 76 строки сразу перескакивает на 84ю. Как может срабатывать функция, если её ещё не вызвала функция уровнем выше? Если что я первым делом заподозрил глюк отладчика и перезапустил редактор.
>>642426 Управление в 3д редакторе: Пр. кнопка мыши - вращать камерой Ср. кнопка мыши - вращать вокруг выбранного объекта Шифт + Ср. кнопка мыши - перетаскивание камеры редактора Пр. кнопка мыши + WASD - движение как в шутере F - навести камеру на выбранный объект.
>>642106 >>642098 Потестил сегодня вечером немного, результат не то чтобы впечатлил, но около x2 прироста на простейшем примере мигания клеточками дает.
карта 40x80 клеток (тайл 8x8 пикс)
14 fps Debug, no batch 26 fps Debug, batch 17 fps Release, no batch 33 fps Release, batch
А помните, пару тредов назад анон жаловался, что нельзя на лету менять скелеты под анимации. Как с этим ситуация в 3.2? Можем ли теперь запилить убийцу скайрима с модами, которые в готовую игру кастомный скелет устанавливают?
Мне так стыдно, но я не умею по нормальному учится, только вот так, опытом. Но я уже день пытаюсь понять как эту камеру двигать. (Движение мышкой есть) Move_and_collide для камеры не работает. Я очень тупой но мне очень нужно.
>>642753 Опиши внятнее что ты делаешь. Если контроллер игрока - то, логично, ты можешь приделать камеру нодой к kinematicbody игрока, которое умеет move and collide. Если ты делаешь какую-то стратежку, то можно просто камере задавать translate. Если у тебя катсцена, то вообще вроде бы можно нарисовать путь для пролета камеры анимацией.
Котаны, ещё вопрос. Вот допустим есть у меня метка-триггер. Как сделать последовательность таких триггеров, чтобы после срабатывания первого срабатывал второй?
>>642761 Так а второй тогда как включать? Нет, ты не понял. Я хочу, чтобы оно всё автоматом шло. Я передаю сцене метки с координатами 1,2,3.., и они по очереди меняются
>>642785 Я все сильнее упростил, теперь можно просто прикрепить к ноде со скриптом список всех триггерных зон, и они будут срабатывать по порядку. А там уже рисовать их на карте как душе вздумается.
>>642709 До конца разобраться не вышло, продолжу завтра. Общая идея такая - импортируем одного персонажа, импортируем второго. Сохраняем анимацию первого в отдельный файл .anim. Загружаем второму. Он воспроизводит анимацию. Проблема с T-позами. Она начинает проигрываться с той позы, в которой был персонаж. Надо как-то их сначала в блендере приводить к T-позе перед экспортом, возможно.
>>642828 Спасибо за твой труд. Помни, что основная задача: прикручивать скелет без модели к модели без скелета во время выполнения игры в движке. Очевидно, что файл .аним будет жёстко привязан к определенным костям скелета. Собственно, это же мы наблюдаем при моддинге скайрима. Сначала мы ставим набор анимаций, ставим требуемый скелет, затем запускаем утилиту ФНИС, которая чототама волшебное генерирует, а по факту она генерирует именно аналог .аним-файлов. И остаётся главный вопрос: как быть с весами вершин меша?
Зачем годотя открывает cmd мне когда запускается? Я же не дебаг-билд блин скачал, при этом она зачем то еще и выводит то, что во встроенной в редактор консоли уже показывается.
Мое литсе, когда сделать систему сохранения и инвентарь получилось за несколько часов, а я думал буду несколько дней пилить. Однако шейдеры уже неделю учу, хотя думал за час управлюсь.
>>643021 А что бы и не постить, если в тему? Проект был написан за один вечер 3 месяца назад, выложен на итч и забыт. А тут ИТТ вскрылись новые данные, позволившие немного его пофиксить (перевести с тайлмапа на draw_texture). Что в свою очередь немношк пощекотало моё ЧСВ в том плане, что мой код настолько инкапсулирован, что мне было достаточно пары десятков минут, чтобы поменять способ отрисовки, не переделывая другие участки. В существующие реализации тетриса не смотрел принципиально. Знаю только что вся логика основана на проверках возможности поместить фигурку в новое расположение.
Коллеги, я бы где-нибудь хотел выложить андроидовский проект на годот на обсуждение и возможно получить негативные отзывы на этапе прототипа. Это можно сделать на gotm.io? Какое там отношение к таким экспериментам?
>>643075 Нихуя не понел, как играть. Начинается бой. Кораблики куда-то летят. Мышкой скроллится игровое поле. И? Кнопка документации в главном меню не работает. Экранных подсказок нет.
>>643077 Там тыкаешь мышкой на клетку, подсвечивается где можно строить здания. Строишь здания нажав на голубую кнопку с чертежами. Как мне сделать так, чтобы было понятно?
>>643081 > Как мне сделать так, чтобы было понятно? Ну, как минимум, написать мини-гайд в главном меню. Идеально же - делать всплывающие подсказки по наведению на объекты мышкой и при достижении ключевых этапов игры. И не забыть добавить отключаемость этих подсказок в настройках, для продвинувшихся игроков.
>>643075 Где-то на 9 ходу игра наглухо зависла (upd: ааа, видимо из-за этого >>643093 ) И ещё минус - очень медлительные ходы. Надо добавить пропуск отсчёта до следующего боя, либо конфигурировать его в настройках.
>>643094 Я добавлю пропуск ходов. Версию с долгим "ходом" поставил для того, чтобы было время покликать. Чем дальше по ходам, тем больше микроконтроля и начинаешь не успевать. Так что пропуск хода - идеален.
>>643095 Он имеет ввиду, как будто ты строишь здание, и если тебе не хватает денег - вылезает ошибка. Тоже самое с обучением - можно сделать, "если ход = 0 и уровень бота лоу - вывести подсказку на экран". Это действительно полезно. Потому что я завяз в разработке и не вижу пользовательского опыта, а уже кликаю по привычке и думаю, что все понятно.
>>643096 Ну и поскольку игра предполагает ПвП то идеальный вариант уже известен и юзается большинством настольных онлайн-игр: есть отсчёт, по окончании которого начинается матч, и есть кнопка готов у каждого из участников. Если все участники кликнули кнопку - отсчёт обнуляется и матч стартует. При игоре с ботом - бот очевидно тоже нажимает эту кнопку у себя, завершив свои действия.
>>643098 А я имею в виду, что подсказки в мобильных играх должны не вылезать в том месте, куда кликнули, а постоянно висеть, например, после выбора юнита.
>>643102 Да. Я добавлю это в ближайшие дни. Пока что меня очень дико раздражает тот момент, что я совсем забыл про подсказки. На данный момент ещё раз перебилдил. Теперь начало первого и второго хода оповестит Вас об основных двух возможностях - строить здания и изменять маршруты.
>>643110 Да, конечно. Я постараюсь поработать над этим.
>>643126 Основная концепция в трате ресурсов. Потеря здоровья главной базы до определённого числа наиболее выгодна, чем потеря ангара. Так что до 5 здоровья, вы стараетесь убивать вражеские ангары, а после защищать ими главное здание. Даже убийство 1 вражеского ангара даёт вам преимущество в 1 урон в ход, что позволяет полностью дефиться своими кораблями и наносить 1 урон, получая преимущество. Лоу бот использует раш тактику - все в мейн здание. Что и делает его лёгким.
>>643147 Ты их достроил? Довел до базы врага нажав на конечную точку или здание? Как мне сделать так, чтобы это не было проблемой? всегда устанавливать маршрут?
>>643147 Так же интересно, с какого устройства играл. Что значит "управление подглючивает"? Прям лаги? Или при нажатии не нажимается? Проблемы с выделением клеток или камерой?
>>643149 > Как мне сделать так, чтобы это не было проблемой? Индикация прокладки маршрута. Ячейка текущей конечной точки мигает, означая, что маршрут не проложен. При клике на ячейке со строением маршрут подсвечивается целиком, сигнализируя что успешно проложен. Если игрок бросил прокладку (или не успел) то маршрут докладывается автоматически по алгоритму бота.
>>643151 Сейчас маршрут зеленый, если не проложен. Красный - текущий. Единственный способ, чтобы маршрут сбросился автоматически, поставить новое здание на маршруте (корабль не может пролетать через здания и перестраивает его до главной базы). Я записал твои замечания. Спасибо, что делаете игровой опыт других игроков лучше.
>>641589 Анон, чтобы избежать любых лицензионных претензий в будущем, и при этом, чтобы добавить в свою тридэ-эрпогэ ностальгии по 90м, сделай вымышленный игровой гаджет с картриджами-экранами. Суть токова. Без картриджа девайс не работает. Картридж вставляется сверху и на его лицевой части имеется ж/к-экран с раскладкой для игры и чип-контроллер. У девайса есть только кнопки для управления игрой. На локациях игры можно найти картриджи с такими играми, как крестики-нолики, пятнашки, и т.п. 2х-3х игор-картриджей будет достаточно, чтобы вызвать у игрока за 40 стойкий приступ ностальгии.
Почему условие, повешенное на area не выводит true, если vehiclebody входит в area? Сам код у area: overlaps_body(get.parent().get_node('car_vehiclebody'))
>>643159 На первый взгляд никакой разницы, тоже сравнение строки со строкой, как и группы, но в случае изменения имён объектов, тебе придётся лезть в код и вспоминать, где у тебя имя захардкожено. Так что совет в силе - юзай группы. >>643160 Форматирование не поддерживается. Ебанутое ретроградство с поддержкой вакабамарк ещё и съедает звёздочки. Юзай пастебин или скрины.
>>643150 Я с винды мышкой. > Что значит "управление подглючивает"? Было неудобно. Другой анон прав, не вполне понятно что ты в режиме прокладки маршрута и он не закончен. Я думал, что маршрут закончен, нажимал на другой домик, а маршрут начинает прокладываться взад. Нажимаю на кнопку в углу, а она не отжимается. И вообще необходимость прокликивать каждый домик, потом кнопку, потом пару точек, привело к тому что я не успеваю с 5 домиками прокликать всем маршруты. Зависания были, не понял чем вызваны, улетают только первые корабли, задние стоят, при столкновении замирают, взрыв не показан, потом игра зависает. Сначала думал что это при повторной игре, но и при обновлении странички такое 2 раза словил. Зарашил среднего бота без всякого ресурс менеджмента, просто посылая 3-х в обход, и строя заводы в передних двух клетках.
Ещё вопросец. Я удаляю child ноды через queue_free, в списке нод она исчезает. Однако, когда я чекаю кол-во child нод, get_child_count() выдаёт мне число 1
>>643167 queue_free не удалаяет ноду, а только ставит ее в очередь на удаление к следующему кадру. Это надо, чтобы игра не упала, если нода используется где-то в списках внутре движка.
>>643172 Я не очень понял по описанию, но вроде суть примерно такая - в gdscript некоторые конструкции вида var a = Class1.Class2.func() теряют временный объект, поэтому надо разбить на var a = Class1 var b = a.Class2.func()
>>643163 Я не совсем понимаю, как мог забагаться взрыв. Я тоже тестил с винды, и такого у меня совсем не наблюдается. Как мне сделать "понимание" "прокладки маршрута" лучше?
>>643163 На данный момент пока что запиливаю, чтобы перепрокладывался только маршрут до точки, где его сбили зданием и складывался с куском, где его никто не трогал. Надеюсь, это облегчит участь игрока.
>>643185 > get_node(/root).add_child() Это делается через автозагрузку в настройках проекта. Только через это меню ты сможешь добавить чайлд руту. Покормил
>>643200 Насколько я помню, все очень просто - нельзя вызывать add_child из ready, потому что, собственно, parent node is busy setting up children. Как и написано, ты можешь вызвать call_deferred("add_child"... чтобы добавить в следующем кадре, либо вызвать add_child в первом вызове _process.
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то начат перевод официальной документации: 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/
Скажи "Годот круто!" https://github.com/Calinou/awesome-godot - подборка дополнений, модулей и минишоукейс от одного из авторов.
Годнота от анона:
Для приверженцев опенсорца существует возможность распрострянять проекты в незапакованном формате. Просто скачай темплейт с оф.сайта и положи экзешник/эльфешник в папку с проектом, этого достаточно. Дополнительно можешь вшить свою иконку в экзешник. После этого, запустившийся файл темплейта обнаружит рядом с собой файл project.godot и начнет грузить проект из него и из файлов, лежащих в распакованном виде в той же директории.
Редактор персонажей на основе makehuman: https://github.com/Lexpartizan/Go_MakeHuman_dot
Все языки в одном месте: https://vk.com/topic-70467171_35982467
Тест-бенчмарк:
Веб-версия - https://govdot.herokuapp.com
Вишмастер для винды - https://govdot.herokuapp.com/4Anon.rar
Предыдущий тонет там:
Архивы:
1 http://arhivach.ng/thread/207802/
2 http://arhivach.ng/thread/388500/
3 http://arhivach.ng/thread/388501/
4 http://arhivach.ng/thread/388502/
5 http://arhivach.ng/thread/388503/
6 http://arhivach.ng/thread/432708/
7 http://arhivach.ng/thread/433902/
8 http://arhivach.ng/thread/436355/
9 http://arhivach.ng/thread/455461/
10 http://arhivach.ng/thread/479963/
11 http://arhivach.ng/thread/489815/
12 http://arhivach.ng/thread/494513/