24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
1)Простота освоения - есть редакторы сцен, GUI не такой приевшийся как в unity, встроенная поддержка физики, игра скейлится под любое разрешение экрана. Ну и самое важное - он использует Python-подобный язык для программирования с Python на GDScript можно переучиться за час. Python признан во всем мире самым простым языком для начинающих, поэтому если ты считаешь программирование чем-то невероятным или тебя воротит от скобочек (C#, Java, C++ и т.д.), выбирай не задумываясь.
2)Кроссплатформенность - поддерживает Windows, OSX, Linux, iOS, Android, PNaClВеб-приложения от Гугл, PS3, PSVita. На данный момент имеется нестабильный экспорт в Windows Phone, BlackBerry 10 и HTML5.
3)Бесплатность - тебе не придется платить за сам движок, покупать pro версию чтобы разблокировать различные функции, не придется выплачивать проценты с продаж жадным разработчикам. К тому же код движка открыт и даже ты можешь вносить в него изменения.
4)2д - Наиболее сильной частью движка является именно 2д. Имеется отдельный редактор сцен, скелетной анимации как Spine, частиц, физон, паралаксы, полигоны и т.д.
5)3д - Крузис тут не сделаешь, но если собрался делать что-то под мобилки или какую нибудь ouya, то будет в самый раз. По графике примерно как Unity4. Впрочем уже сейчас имеются интересные фишки - визуальный редактор шейдеров как в blender или в каком нибудь платном ассете из того же unity ну и импорт из любого 3d редактора, разумеется.
А так-же куча различных фишек вроде разветвленной анимации, охуеннейшего дебаггера с графиками и статистикой, подсветка синтаксиса прямо в редакторе с автодополнением не хуже sublime text, поддержки интернет протоколов и многое другое, о чем я еще не знаю.
С чего начать?
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то есть варианты русскоязычного перевода части доков на ресурсе конкурирующей фирмы: http://c2community.ru/forum/viewforum.php?f=119 Но вообще, будь мужиком и изучи английский: https://godot.readthedocs.io/en/3.0/index.html Постижение основ займет совсем немного времени. Я не предлагаю изучать пайтон, это не обязательно. Освой GDScript для начала, там нет ничего сложного. Но если вдруг ты решил, что тебе мало фич движка, то начиная с третьей версии, Годо предлагает несколько вариантов скриптинга, включая визуальный (блупринты) и нативный скриптинг. Нативный скриптинг позволяет тебе скомпилировать библиотеку на своём любимом языке и экспортами вбросить в годо функции, которых тебе так не хватает. Подробности в документации. Так же имеется версия движка с поддержкой си-шарпа через моно-фреймворк. Занимайся практикой для закрепления знаний. Дальше уже сам поймешь в каком направлении тебе нужно двигаться.
И рейкасты есть! Кстати, потскажите, ЧЯДНТ? Делаю рейкаст, добавляю его к кинематик боди, прописываю ему вектор, скажем (0, -1.5, 0) и ожидаю, что он будет смотреть в пол на 1.5. Затем в скрипте я вызываю эту ноду: onready var feet = get_node("RayCast") Точно так же, как это делается в скрипте из примеров. Затем я пытаюсь вывести в переменную, видит ли он коллизию с полом (после move_and_slide офкос): var can_jump = feet.is_colliding() И нихуя!!! Вообще даже после точки не появляется подсказка, словно нода не кастуется правильно. Причем в аналогичном скрипте из примера появляется подсказка с интерфейсом. Что за хуйня? Я ж один в один копирую!
>>477944 >Делаю рейкаст, добавляю его к кинематик боди, прописываю ему вектор, скажем (0, -1.5, 0) и ожидаю, что он будет смотреть в пол на 1.5. >Затем в скрипте я вызываю эту ноду: А ты на рейкасте галочку "влючён" поставил?
>>477965 Я чот передумал уже. Вот, четыре строчки кода превратились в ЭТО. Да ещё и неправильно, там должно вызываться get_global_transform у предка камеры, а выбрать это никак нельзя. И в скрипте тоже, кстати, подсказка не появляется, надо вызов метода вручную прописывать. Короче, хуйня. Эксперимент считаю завершенным. Результат отрицательный. Биндить события этой лапшой тем не менее удобно.
>>477972 Прости, что я пиарил годо в Юнити-треде. Давай остановимся, пока не поздно и разойдемся по своим тредам? Иначе колесо срача не остановить. Я проиграл, я слился. Ты победил. Юнити - лучший движок. Чмок-чмок, отсасываю у тебя, Повелитель. А теперь пиздуй в свой тред.
>>477911 (OP) Бля, как я не увидел это раньше. Уже год пилю игру своей мечты на бумаге. 700 страниц лора, все механики прописал, спрайтов наебошил но так никогда и не смог вкатиться в погромистование. Тут вроде выглядит более менее легко, спасибо, анон.
>>478018 Это тебе еще хорошо, а у меня самописный движок "почти работает" уже год как, а на годо пока пустота и логика совершенно алиенская (для меня, костылеписца).
>>478160 Внки на чем угодно можно делать. Хотя конечно игры параша что на годо что на бге. Лучше бы этих игр не было совсем, они как антиреклама для движков.
Каким образом можно отобразить ряд объектов вдалеке, чтобы те не исчезали из поля зрения, но и в то же время имели минимальную нагрузку на фпс (насколько это возможно)? Возьму в пример тот же Far Cry, где можно лицезреть очертания островов издалека. Есть какой-нибудь хитрый хак на эту тему в Годо?
>>477993 Итак, финальный результат. Вы давно хотели узнать, почему лапша-ориентированное программирование сосёт? Я принёс пруфы. На первой пикче функция в GDScript, на второй же - аналог в новомодной лапше. Полагаю, для других движков результаты будут сравнимые. И это я еще производительность не мерял.
>>478242 Кароч, запустил это говно и оно не работает. Виснет наглухо с завершением работы. Как это дебажить - ума не приложу. По брекпоинту останавливается только один нод! После которого весь код перезапускается. Кароч, сырое ещё. Возвращаемся к гд-скрипту.
>>478246 Ни-ху-я. Почему-то вектор direction обнуляется посреди кода и вызывает ошибку при попытке его умножить на скалярную константу. Нихуя не понимаю.
Посоны, годот не умеет в oclussion culling, што делать? Говорят что надо карту на чанки пилить и тогда все будет, но я хз как это делается в принципе! Обяснити же!
>>479044 В теории каждый чанк - это отдельная сцена. Предположительно у перонажа должен быть скрипт, который загружает чанки с диска и добавляет их к основной сцене, по мере твоего приближения к ним и выгружает при удалении от них. На основной сцене располагается низкополигональный террейн со всей картой. В непосредственной близости он у тебя закрывается чанками, а вдалеке ты его видишь как дистантлэнд.
>>479147 1)Менять регион на атласе (скриптом, animationplayer ...) 2)иметь кучу спрайтов с разными текстурами и показывать только 1 3)скелетная анимация (тоже варианты как) 4)спрайт из кучи слоёв
>>479148 А какой из них позволяет двигать анимированный спрайт по пути произвольной длины, проигрывая с подливой анимацию и меняя её, например, если персонаж повернул мордашку? Скриптами, блджад, надо, но долбаный гуй отвлекает от православного кодописания.
>>479175 У меня законов физики не завезли, я изометрическое говно пилю. Ну вот в манулах что я нашел,предлагается и движение узла, и анимацию спрайтов пилить через один и тот же animationplayer, со всеми вытекающими последствиями. Ну ладно, у меня просто мозги в кашу сварились от того, что я с писания костылей в первый раз пытаюсь пересесть на стул с пиками. Надо методично напилить тысячу сцен и всё будет работат.
>>479485 Какие же дегенераты ИТТ. Неужели так трудно понять, что ссылка на Ютуб это лишь наглядный пример? То что он посоветовал, он предлагает загуглить.
>>477911 (OP) Посоветуйте чего посмотреть/почитать, чтобы разобраться с движком.
Ранее сайты пилил на django, узнал, что у этого движка похожий язык, да и сам движок попенсорсный, но от уровня абстракции сцен аж голова идет кругом. Хотелось бы разбор разработки на конкретном примере, начиная от набросков на бумаге и диздока, и заканчивая готовым проектом. Пускай он будет дико маленький, мне бы главное логику понять, что нужно прогать, а что есть готовое, и вообще как вести разработку
>>480242 >Кал говна >Эти степбайстепы - не степбайстепы. Скажи проще - ты пришёл сюда обсирать годо за его новизну и связанную с этим скудную обучающую информацию.
>>480243 >Скажи проще - ты пришёл сюда обсирать годо за его новизну и связанную с этим скудную обучающую информацию. Нет Я уже обозначил свою позицию. Гайд неплохой, для человека который пересаживается с другого движка, но в качестве пособия "с нуля" не годится. Пара ошибок в коде встретилась, и в целом гайд не дает представления о том как сделать игру. Вроде бы, степ-бай-степ, а конечного результата - нет
>>480612 >Я погуглил, и нихуя не нашёл. Ха-ха! А ещё игры делать собрался, а в банальный гугл не может. Небось ещё и по русски искал? Ахаха! Посмотрите на этого гейдевелопера! Смотрите и смейтесь!
>>480695 >Именно так выглядит парадигма без ООП-хуйни, да Кому ты пиздишь. Лень doxygenoм строить иерархии классов вашего годота, а то бы я вам показал!
>>480659 Не хочу в ассет стор. Мне хочется понять, какие части игры нужно прогать, а какие нет. Надо поискать обзор возможностей движка, но не на готовом результате хуй я чего найду
>>480698 > понять, какие части игры нужно прогать, а какие нет В 2018 году практически ничего прогать не надо вообще, кроме банального if true then _api_func1 else _api_func2; Все велосипеды изобретены. Тебе нужно просто грамотно собрать вместе все велосипеды, чтобы получить веломобиль. В основном нужно рисовать, моделить, текстурировать, сочинять тонны текста для диалогов, подбирать подходящую музыку и озвучивать персонажей самому, либо нанимать актёров озвучки.
Хай, прошу помощи. Скачай Godot ласт версии с Mono. Скачал ласт версию Mono с офф сайта. Всё вроде норм, но когда пытаюсь создать C# Script, крашит Godot. В окне на 100% показывает "Генерация проекта C# \ Создание решения" что-то такое. Поможете?
>>480901 >>480893 Надо собрать годо из исходников и забустить его с дебагом в ИДЕ. Потому отдебажить возникающие ошибки и тогда запустится. Но ненадолго. Если тред наберет 400 постов - покажу пруфы.
>>480922 > вижуалстудия Нахуй это монструозное говно с анальной регистрацией ненужно. Поцаны ставят вижуалстудиякод, который легкий как пёрышко и надежный как швейцарский нож.
Но вообще говоря, разрабы годо, ящитаю, завернули не в ту степь, погнавшись за хайпом. Я конечно анонимное хуйло без авторитета, чтобы им что-то советовать, но моё ИМХО таково, им нужно было поставлять среду, которая использует преимущества опенсорца и пересобирает сама себя. А то у них опенсорц на словах, а на деле бинарники, а чтобы попенсорц у себя на пеке собрать, надо кучу красноглазой хуиты осиливать. Для примера хочу привести Фрипаскаль-лазарус, эта система спроектирована именно так, как я описал выше. Устанавливая даже предварительно собранный бинарный пакет, даже на винде, ты получаешь комплект исходников и встроенную утилиту для пересборки среды. Не нравится какая-то внутренняя фишка в самой среде? - Полез в исходники, сделал как тебе надо, пересобрал - вуаля! Всё работает. Без красноглазия и прочей хуеты, все параметры компиляции прописываются автоматически. Разрабам годо нужно было сделать так же. Никаких нативскриптингов, никаких внешних компиляторов: есть гдскрипт и есть прямой доступ к исходникам прямо из годо, в которых ты можешь переписать функции гдскрипта на более быстрые, либо добавить свои. Получаешь быструю как феррари и гибкую как змея систему. Если скилл есть. А если нет - нехуй лезть. Жди новых версий.
>>481125 А что ты хотел от красноглазиков? Я вот съездил на Годоткон в начале месяца, посмотрел на всю эту компанию, и вот что я тебе скажу - разработчики ВСЕ поголовно красноглазые. В девелоперской комнате я не увидел ни одного ноутбука на винде, вообще.
>>481128 Лазарус/фрипаскаль тоже красноглазики пилили, но у них почему-то продукт для людей получился, который на любой системе вынимается за полсекунды, как швейцарский нож. А у годо-глазиков только на линуксе >>481126
>>481138 Ах ты ж педрила демагогская. Ну давай я тебя носом в доки потыкаю:
>Requirements
>For compiling under Windows, the following is required:
> 1 Visual C++, Visual Studio Community (recommended), version 2013 (12.0) or later. Make sure you read Installing Visual Studio caveats below or you will have to run/download the installer again. > 2 Python 2.7+ or Python 3.5+. > 3 Pywin32 Python Extension for parallel builds (which increase the build speed by a great factor). > 4 SCons build system.
Целых 4 левых хуиты нужно, чтобы собрать это говно. Где принцип KISS, stupid?
>>481144 Алсо я не смотрел, но вангую, что этот скунс работает на уёбищном цыгвине. А тот же лазарус, не сочтите за рекламу - продукт самодостаточный, полностью собирает сам себя с помощью своей предыдущей собранной версии.
>>481125 Пока нормальные люди режут колбасу, красноглазые дети в очередной раз разбирают-собирают свой свободный, удобный, отлично оптимизированный и инновационный швейцарский нож.
>>481178 >Какие-нибудь говноигры из /gd/ были еще обозрены каким-нибудь американским господином? "Игры /gd/" которые выходили в стиме (список в faq ньюфаготреда) обычно имеют видосы от англоязычного коммунити. Но они не на годоте, поэтому писать в тред не буду.
насколько производителен годот? Например, я для теста собрал скелет из полумиллиона объектов и заанимировал три сустава из первой десятки в иерархии. fps упало в пределах погрешности. А годот?
>>482394 Как c++ господин годот учил. Скомпелировал из исходников Написал на плюсах каштомный модуль движка Узнал, что его нельзя собрать отдельно При каждом изменении пересобирать весь движок минут 15 Плюнул Почитал про NativeScript Перепробовал десяток устаревших туториалов С помощью метода тыка и правки питонового скрипта заработало Нельзя экспортить в wasm/html "Пользуйтесь каштомными модулями" Да пошло оно все.
>>482554 >Написал на плюсах каштомный модуль движка >Узнал, что его нельзя собрать отдельно >При каждом изменении пересобирать весь движок минут 15 Этот неосилятор порвался. Несите нового. Смотри как собирается движок у нормальных людей (в самом начале виден клик на запуск): https://www.youtube.com/watch?v=0k8RWmt6TBo
>>482572 С мобилы не видно. Он там именно меняет что то перед пересборкой? Если нет, то это не считается. Алсо, это не студич. Можно конечно пользоваться костыльными блокнотами под линуксом, но это такое.
>>482598 >c++ господин >Алсо, это не студич Ты что несешь, алё? Какая разница в каком блокноте ты пишешь? Сборкой занимается scons и компилятор MSVC вне зависимости от редактора. алсо студия - дерьмо собачье. на видео Qt creator >Он там именно меняет что то перед пересборкой? Если нет, то это не считается. Нет, конкретно в этом видео не меняю, но даже когда меняю на время сборки это не сильно влияет. Стабильно 10-20 секунд так как собирается только измененная часть кода. Пересборка всего движка с нуля конечно долгая, но она нужна только если ты скачиваешь последние обновления из репозитория.
Команда для сборки такая: p=windows target=debug tools=no -j4
>>482572 Подскажите, существуют ли реализации воксельных террейнов без кубов? Я подозреваю, что это ресурсозатратная вещь, поэтому и кубы в подавляющем большинстве воксельных алгоритмов. Но быть может, если делать простое сглаживание видимых вокселей подразделением хотя бы на 3 части - может и потянула бы средняя пека?
>>482609 Неужели так сложно попробовать забубенить клон geomod из Red Faction 1-2? Или совсем потерянные технологии предков уже? Там вопросы уровня 1го курса по аналитической геометрии стоят всего лишь.
>>482647 Удивительно! Это же наш шанс, анон! Надо пилить разрушаемый мир.
Алсоу, вопрос всем. Я что не могу на лету менять параметры материала? Пишу в скрипте: var Mat = get_node('MeshInstance').get_surface_material(0) Затем иду в справку. А у этого Material нихуя нету! Ни альбедо нипоменять, ни металлик.
>>483013 We are not abandoning the current OpenGL ES 3.0 backend right now: as outlined in the post, we will start working on a Vulkan backend, which will eventually coexist with the OpenGL ES 2.0 and 3.0 backends - and eventually we might deprecate the OpenGL ES 3.0 backend if Vulkan cuts it. Когда, если, возможно.
>>483052 а до этого было не понятно? мертворожденный движок с древней как говно мамонта корявой архитектурой на самописных скриптах от каких-то грязных латиносов. когда запустил их говно и увидел nag скрин с какой-то биткоин пирамидой, скривился от омерзения и сразу удалил. проект тупо срубания бабла с лошков на патреоне и со спонсоров.
>>483071 > самодельный скриптовый язык И байндинги к плюсам и шарпу > все захардкожено в редакторе Вут? Редактор показывает игровые объекты. Анимируй их как хочешь, и в редакторе они будут анимированы. >>483079 > к каждой ноде прибивается один скрипт Не хочешь не прибивай, лё, пиши одну портянку и гоняй сигналы или бегай по дереву вручную.
>>483079 >ну лично меня коробит от решения, кто к каждой ноде гвоздями прибивается один скрипт Так ты делай сцену с 1м скриптом и её добавляй в главную сцену.
>>483136 Удваиваю реквест! Мне пока что видится так: Есть главная сцена, на которой ничего нет, кроме главной ноды. К этой главной ноде гвоздем прибит главный скрипт. Из главного скрипта по мере развития игры подгружаются различные сцены. У них свои скрипты, которые обрабатывают их поведение, при этом эти скрипты меняют состояние прибитых к ним нод, а главный скрипт читает эти состояния в _process() и предпринимает нужные действия. При необходимости ноды посылают сигналы, которые динамически аттачатся в главный скрипт, такое вообще возможно в годо? Или аттачить сигналы можно только статически, как это показывают в туториалах?
Если хочется чтобы объекты обменивались инфой, то можно всякими getchildren и прочими getnode. Или, самое простое, завести глобальный нод в прелоаде и через него гонять нужную инфу.
В распидорасило4 игрок шлёт свои координаты в скрипт глобального узла и каждый монстр его оттуда считывает.
Так же в глобальный-прелоадед нод(сцену) неплохо помещать менеджер-переключатель сцен, интерфейс консоли и прочее.
>>483236 >Какой смысл учить gdscript А зачем его учить? Или ты, вообще, не очень в программирование можешь? Если что и учить, то API самого годота, если влом изолировать или держать открытую вкладку на доки.
>>483240 Этого двачую! функция объявляется func, после объявления функции - двоеточие, тело функции отмечается табуляцией в каждой строке, аналогично с языковыми конструкциями вроде if. Всё, обучение закончено, грамоту в интернете скачай. >>483243 https://godot.readthedocs.io/en/3.0/classes/ юзай гуглпереводчик, люк. >>483247 Что-то около 30 мегабайт. Если загуглить, обнаруживаются интересные топики на форумах, где люди приятно удивлены "хули тут так мало?"
Чет поломали в мастере, экспорт в wasm не работает, сначала там был какой то sprite editor который притащил clipper.cpp внутри которого логика на исключениях, руки бы оторвать, его я выпилил, так какой то модуль срет simd инструкциями, как их отследить пока не придумал. Из изменений openssl на mbedtls сменили, может из за этого. Так что 3.1 пока не вариант.
>>483465 Это неуважение к пользователям, держать нестабильную версию там, где она качается по инструкции с git clone. Заводили бы себе скрытую dev и хоть в жеппы ебитесь.
Ахуительный движок. 3Д не работает на Андроиде на чипсете, который в половине устройств в мире, включая владельцев XIAOMI. Баг открыт с января - ответ разрабов ждите следующую версию без GLES3. А - архитектура.
>>477911 (OP) Вот мне все понравилось, но при попытке запуска первой тестовой сцены с двумя кубами (один куб должен был упасть на другой куб) - он вылетел нахуй, и это я даже скрипты не писал. Простите, но вернусь на анальную юнити, хоть она меня и доебала.
>>484040 Нет, я C# версию скачал, потому что с C# у меня неплохо, а в питоноподобной мути неохота кодить. может в этом проблема. >>484037 юнити такой же лучший движок, как айфон - лучший смартфон. То есть не для людей, которые хотят понимать как устроен их инструмент. Годот мне гораздо больше понравился своей... организацией, что ли. На нем удобно велосипедить. А на юнити удобнее всего ассеты таскать.
Пока ты тут кривляешься, показывая как в годо не работает недоделанный сишарп, профессионалы делают красоту на, как ты выражаешься "питонообразной мути" https://www.youtube.com/watch?v=skln7GPdB_A Я уверен, что залётные юнитидети не знают английского, поэтому поясню, что происходит в видео: Чел перевел на gdscript опенсорсную либу по генерации ландшафтов (2k строк кода, 2d, 3d, 4d симплексы), в приведенном видео он загружает этот скрипт в рантайме и генерирует чанки для процедурного 2d-террейна. Всё летает. Твои возражения, прохессианал?
>>483959 >ак сделать, чтобы главный 2d объект вращался по часовой в центре экрана Animation Player > а дочерние вокруг него по кругу? Создаешь пустой 3д или 2д нод в цетре вращения и его тоже вращаешь animationplayer-ом, а в дети своё объект пихаешь с нужным тебе смещением.
Можно конечно ещё руками расчитывать координаты для каждого кадра, но вродебы годот-стайл стоит и всё такое...
>>484313 >затрулили, что в годоте плохая нод-система Не верь. Нод-систему сложно сделать плохой. Всегда спрашивай у троллей, по каким именно критериям она плохая? Тут-то они и сольются.
>>484327 Тебя этим затроллили? Скажи им, что ноды - это не ООП. У нод не бывает множественного наследования. У ветвей - только одно дерево. Но у дерева - много ветвей.
Анончики, подскажите с тригонометрией, я чёт затупил. Решил набросать на этот пост >>483959 >Как сделать, чтобы главный 2d объект вращался по часовой в центре экрана, а дочерние вокруг него по кругу? Пример на скриптах. Вращение чайлд-спрайта вокруг парент-спрайта я пытаюсь сделать так: var cx = 0 var cy = 0 var angle = 0
Я ожидаю "орбитальное" движение по кругу вокруг парента, но он сука движется кругом только в одном направлении, приближаясь и отдаляясь, как будто его орбита смещена в сторону. ЧЯДНТ?
>>484093 >профессионал выбирает инструменты, с которыми ебатни по минимуму. У него просто нет времени на пердолинг Так тебе именно про это и говорят, дебил. Уткнуться в неизвестный баг движка, два часа перерывать все интернеты в поисках решения, чтобы его в итоге не найти, завести багрепорт, два дня ждать движения по тикету и потом ещё неделю ждать хотфикса, чтобы наконец продолжить свою разработку - вот это пердолинг. А уткнуться в баг, потратить два часа на то, чтобы разобраться в исходниках, почему он происходит, починить его, пересобрать двигло и продолжить разработку - это ни разу не пердолинг. А времени на пердолинг у профессионалов обычно нет. Так что они вряд ли выберут юнити.
>>484373 Всё, погуглил. Нет, set_pos тут не поможет. В моём случае это не требуется, у меня всё в рамках одной статичной сцены без инстансов и подзагрузки. >>484377 Не пизди. Пикрелейтед. set_pos у сцен.
>>484385 get_node это как операция на мозге через жопу. Ну ладно, попробую вызвать сам себя через get_node, чисто чтоб показать тебе, что не в этом дело. Translate прекрасно подходит для моей задачи, он даёт офсет относительно точки, которой является парент-спрайт. Синусы-косинусы должны мне давать весь набор положительных и отрицательных оффсетов в диапазоне 0-360. Всё. Я просто чего-то очевидного не вижу.
>>484385 Похоже, я не в годоте программирую. Скрипт extends Sprite Строка get_node('.').set_pos(Vector2(cx, cy)) Ошибка та же nonexixtent function. Мало того, у меня даже в справке нет этой функции. ЧЗХ?
>>484408 Что за технология, гугл ничего не говорит о связке godot + webrtc, значит, как минимум это очень разные технологии, настолько разные, что применяются в разных сферах. Не могу погуглить за тебя, у меня сейчас тригонометрия в голове. >>484411 По факту у меня сейчас чайлд вращается вокруг некоторой точки в локальных координатах, например (0, 2), а мне надо сделать, чтобы вокруг (0, 0) вращался.
>>484413 > Что за технология Ну по сути мне нужен выход сетевой выход/вход функций из годота собранного под хтмл. Подключение сторонней сетевой либы, во!
>>483959 >Как сделать, чтобы главный 2d объект вращался по часовой в центре экрана, а дочерние вокруг него по кругу? Короче, наконец-то победил годо и тригонометрию. Вот, держи скрипт для главного объекта: %%\t = табуляция, • = звёздочка (умножение)
Я добавил Node2D в центр планеты, спутник поместил в неё, добавил экспорт на переменную rot_speed и прибил скрипт к планете, ноде и спутнику, назначил скорости вращения. И вуаля! Видеорилейтед!
>>484567 Годаны, посоветуйте, гуглю, не могу понять, что не так? Я сделал слайдер сбоку и приконнектил от него сигнал в скрипт сцены: func _on_HSlider_changed(): {tab}get_node('Sprite/ChildCenter/Child').rot_speed = get_node('HSlider').value {tab}print(get_node('Sprite/ChildCenter/Child').rot_speed) Я ожидаю, что при изменении значения слайдера, будет излучён этот сигнал и rot_speed установится в новое значение. Но ничего не происходит. Я добавил print, но даже он не печатается в консольку. Сигнал просто не излучается, когда я двигаю слайдер. ЧЯДНТ?
>>483967 >>484686 Хуле делать теперь? Они же через два-три месяца не выпустят обнову, да и через полгода не выпустят. Какая замена годоту, чобы такой же няшный был?
>>484826 Хуй знает. Я сегодня попробовал импорт 3д моделей в годоте. Это пиздец. Одна валит его в крешдамп. Охуенно. Вторая импортировала только одну анимацию, причем кости проткнули тело и вылезли аки чужой, а руки завязались узлом за спиной.
>>484828 >>484827 В гд хоть какой-нибудь гайд по движкам есть? Заебался тыкать. UE4 норм? У юнити какая-то лицуха сильно ебанутая, не хочу связываться.
>>484831 >У юнити какая-то лицуха сильно ебанутая 1. Для тебя юнити бесплатный 2. Если ты заработаешь миллионы далларов на своем поделии (нет), просто берешь подписку если не хочешь проблем.
>>484836 Энжой ёр продакшн стабилити енжин. Если с плюсами хочешь пердолиться и и нужен стабильный монструозный двиг с кучей фич, то это к анрилу >>484839 И как ты предлагаешь посчитать? 3.1 может выйти после 3.0.3 или 3.0.4. Цифра в версии ни о чем не говорит. Я думаю в течении пары месяцев уже будет 3.1
>>484840 > Энжой ёр продакшн стабилити енжин Стабильно проебывающий кадры, ололо. Не ну мне перформенс вообще дохуя важен. Прям вообще дохуя. Хочу версию на хтмл5 сделоть же. И даже под сонсоли.
>>484847 Так так так. И что ты нам принес? Ссылку на баг еще бы сфотографировал экран на телефон и скинул word файл с этим фото, ага. Открываем, читаем. Говорят что баг с OGL3 и в OGL2 не будет. Ииии все. Где хоть слово о релизе? Прекращай жидко серить под себя.
>>484866 Йобом токнуть? Цитату хоть одну приведешь или дальше будешь кидать скриншоты гугла? Вот что говорит автор хаков: >You can launch on Adreno 3xx now >Do not use vertex lighting >Do not use SCREEN_TEXTURE >Do not use ViewportContainer >Or better wait for GLES 2.0 renderer >F.. you, Qualcomm Ничего о лагах нету. https://github.com/godotengine/godot/pull/14902
>>484868 О лагах?? У тебя глюки = лаги? Тебе 13? И да, там в других ветках написано и про задержки сроков, и про другие проблемы с быстрым патчем. Кстати, откуда я могу знать, задействует ли движок viewportcontainer?
>>484881 Каким образом мифическое "использование" починит баги с импортом 3d моделей и работой на половине андроидов? Которое разрабы обещают починить когда нибудь, через полгода?
>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. Все что нужно знать о квалификации создателей godot
>>485941 >>485942 Годо был бы говном, если бы не внушительный шоукейс из стима, опубликованный в начале треда. Никакого фанатизма. Просто у меня есть аргументы в виде реально существующих игор, а у тебя только кукареки неосилятора про баги.
>>485951 > а у тебя только кукареки неосилятора про баги НЕ БАГИ А ФИЧИ А ВЫ НИАСИЛЯТОРЫ а НУ ТАК ВЫКЛЮЧИ ВСИНК ЧТО ТУТ ТАКОГО а ПРОСТО ВОЗЬМИ И КОСТЫЛЬ СДЕЛАЙ а ВОТ ТУТ НУЖЕН ПАТЧ а ФАЙЛЫ ДВИЖКА ОТКРЫТЫЕ - ПЕРЕПИШИ ЕСЛИ ТАК НУЖНО а ДА И ВООБЩЕ АНДРОИД НЕ НУЖЕН, Я ТОЛЬКО ПОД ЛИНУКС ИГРЫ ПИШУ!
>>485951 >шоукейс Только жаль, что половина населения планеты, сидящая на встройках и андроидах, может посмотреть его только на видео. Годо - движок для солидных людей.
>>485959 Двиг пилят человека 3-4 на постоянке и еще с десяток основных волонтеров. Глупо удивляться, что он не дотягивает до монстров вроде юнити и уеча. Но в то же время для среднестатистического двачера этого движка более чем. Нечего выебываться.
>>486350 Ну мне вот например нахуй не нужны. Всегда считал и буду считать мобилкогейминг самым днищем, в которое скатываются только люди, полностью лишённые самоуважения(не всегда в силу изначального его отсутствия, увы). Потому мне для моих 2д игр Годо вполне ок.
>>486470 > у меня 30k объектов ООП-дебил, тебя уже и в юнити-треде, и в уеч-треде, и в ньюфаготреде обоссали. Ты и сюда за порцией прибежал? Не нужны играм объекты и ооп. Всё прекрасно реализуется нодами и списками. Пшёл нахуй, псина!
>>486583 Но зачем? Достаточно лишь загуглить: https://www.reddit.com/r/godot/comments/47j49k/gdscript_is_very_slow/ Для не знающих языка Хозяев, поясню: встроенный говноскрипт мееееедленный. Для игор сложнее инди 2д платформера - не подходит. Шарп ещё не стабилен. Думайте сами, решайте сами, вкатываться в движок-новичок или еще год-другой на юнити посидеть. Я решил вкатиться. Для моих задач 60фпс нинужна.
Что не так со встройками, кстати, я не понял? Все мои игры на Годо летают на интеловских встройках, специально проверял на работе на самых слабых машинах(игры на юнити там безбожно тормозили, если вообще запускались).
Аноны, насколько безумна идея сделать тетрис на базе карты тайлов? Смотрите, удобно же. У карты есть ячейки, я могу реализовать move через задание индекса тайла, а canmove так же смогу реализовать через проверку - не ноль ли в индексе у целевой ячейки?
>>486933 Не сильно. Большинство реализаций тетриса сделаны на двумерных массивах, а карта тайлов по сути оно и есть. Я сначала хотел сделать на физике, на риджбади, рейкастах, коллизиях, но пока не освоил этот матан.
>>486983 Иногда не стоит гнаться за самым новым. Судя по аватарке, ты тот, кто пилил на годо версии 2 некую ненавидимую всеми игру. А значит, ты в совершенстве знаешь именно версию 2. А раз так, то продолжай работать в ней. Трёшка станет более менее работоспособной не ранее чем через год.
>>487259 Мне надо будет разбивать потом на части. Очевидно для чего. Пикрелейтед пока рассыпухой наваливаются не соединённые блоки. Пока что идея токова: создаю фигурку динамически, динамически же назначаю ей составную коллизию из примитивов (весь вечер пробовал конвексы и они чот ломают физон нипадецки, проваливаются сквозь коллизию на статиках и бешенно ускоряются там внутри, поэтому пикрелейтед хитрый набор коллизий из ромба и четырёх кругов вписанные в размер спрайта). Однако мне нужна цельная фигурка тетрамино, на которую мне нужно будет динамически навесить тело с коллизиями. Затем, когда фигурка остановится, скрипт должен уничтожить тела у блоков и создать новые, но уже статик. Затем по стакану пробегает рейкаст и считает блоки по рядам. Если найден заполненный ряд, уничтожаются все блоки и все что сверху сдвигаются на высоту блока вниз. Выглядит несложно. Но быть может я что-то не замечаю очевидное? Где тут можно упростить?
>>486985 >не ранее чем через год. Учитывая, что 2D во второй версии допиливали до приемлимого состояния больше двух лет, я бы не рассчитывал, что и 3D, и вообще трёшка станут юзабельными раньше, чем через два-три года. Даже при существенно увеличившемся количестве контрибуторов - там дохуища работы ещё.
>>487292 Просто и то и то - последнее с чем ты должен мучиться-изучать. Движок как-бы сам всё делает. Тебе просто свои желанки на его язык перевести и всё.
>>487322 Да во все он может. Это именно что движок, который тебе базовые возможности дает по типу графики, звуков, сборки, жизненного цикла, физики, интерфейса, ноды, ну и иде + редактор сцен. Все остальное сам с этими инструментами реализуешь.
>>487318 >мб функционал движка ограничен, хер его знает, чел Падажжи. Давай обсудим это. Что ты подразумеваешь под ограничениями? Что именно в движке должно ограничить возможность сделать РПГ? Я ж надеюсь, ты не подразумеваешь под ограничениями отсутствие шаблонов с готовыми типами игор и кнопкой "зделоть зоебись"? Ибо в этом случае я не вижу разницы между подобным деланием игры и деланием модов на уже существующую игру. Один хуй автор игры не ты, а авторы шаблона и ассетов. Что именно тебе нужно от РПГ? Изометрический тайлмап? Он есть в годо. Возможность вызывать диалог при нажатии на кнопку Е? Тоже есть. И возможность создания экранных надписей, и возможность назначать действия на кнопки. Инвентарь? Тоже есть. Ты просто программируешь инвентарь, как и в любом другом движке/языке. Подсчёт урона согласно правилам D&D? Конечно, как и на любом другом движке ты должен либо написать свою реализацию, либо купить/украсть чужую. Что ещё? РПГ каждый понимает по своему.
>>487297 Окей, я тебя понял. Тем не менее, у меня есть пробелы в матчасти. Это не зависит от движка. Например матрицы. Теоретически я понимаю что это такое, но на практике применять не могу. И с векторами такая же хуйня. Смотрю уроки, там говорят мэйк выриэбле виласити. Пласэкуал уан. Я сижу и думаю почему он так сделал? Как он так легко все это придумывает? Скопировал его код у себя. У меня все дёргается и трясется. Читаю документацию и цитирую каринустримершу. Сложно блять, сложно, непонятно!
>>487497 >Тебе платят за форс годота в именных тредах петушиных движков или ты бесплатный долбоёб? Зачем годот форсить? Он сам по себе впереди уже гниющих юнити, уеча и.т.д.
Векторы и матрицы - смотри аналитическую геометрию (1 курс универа). Да и движок всё за тебя делает. Даже если и решил руками веторы взять, просто открываешь документацию типа http://docs.godotengine.org/en/3.0/classes/class_vector3.html и выбираешь то что тебе хочется и нужно.
>>487550 Для физики хватит простейшей линейной алгебры. Даже преобразования матриц можешь не смотреть. Тебе нужно понимать геометрический смысл этих вещей и понимать что оно из себя вообще представляет, чтобы ты мог хотя бы интуитивно что-то связанное с физикой делать сам: тригонометрия(без хуйни, только синус косинус тангенс котангес и обратные им функции, ну и ясное дело знать про) + скалярное произведение + векторное произведение.
>>488188 Точно так же, как и на всё остальное. Рядом с инспектором объектов есть вкладка "нода", а там есть вкладка "сигналы". Выбираешь нужный сигнал и коннектишь к нужному скрипту (скрипт должен принадлежать самой ноде или любому её родителю). Если нужно прикрепить сигнал в рантайме, смотри в документации соответствующий раздел по сигналам.
Может ли абсолютный ноль в разработке реализовать графон как у первого Far Cry на этом движке? Ну или хотя бы как у пэйнкиллера? Ну или как в вульфе 2001 года
>>488343 Важно не то, какой ты ноль на помент постановки задачи. Важно, насколько быстро ты сможешь самообучиться до ненуля. В игре типа фаркрая первого нет ничего сложного: Модели, анимации - блендер. Материалы, постобработка - движок. Скрипты - целых 4 вида на выбор. Основной функционал гдскрипт, критические участки в шарпе/крестах. Теперь ты идёшь в гугл и начинаешь расти. Изучаешь, как организовывать движение, столкновения, учишься обрабатывать события, изучаешь варианты хранения данных. Начинай с самых азов, как я. Я в 30 начинал. Сейчас публикую игоры в стиме, пруфоф не будет.
>>488360 >А с "самых азов" - это откуда? Я предлагаю тебе простое правило: Берёшь рандомный урок или статью. Начинаешь смотреть/читать. Натыкаешься на непонятное. Прекращаешь чтение и открываешь урок по непонятному. Нам натыкаешься на непонятное - прекращаешь просмотр и повторяешь цикл до тех пор, пока не начнёшь понимать. После этого возвращаешься на шаг назад и повторяешь просмотр того, что не понимал. Если опять непонимание. опять цикл вниз по статьям объясняющим матчасть. Например: смотришь урок по движению персонажа. В уроке говорят. Сейчас мы возьмём вот этот вектор, заменим им вектор в базисе матрицы... Ты такой ЧООООБЛЯ? останавливаешь и идёшь изучать векторы и матрицы.
>>488363 Ты хоть на даты смотришь? Он пилит курс прямо сейчас. Включайся. Хотя, у него не особо толковые уроки, как у большинства русских ютуб-учителей. Но кто не может в язык хозяев - выбора не остаётся. Смотрите на языке рабов, пока я смотрю туториалы Джимми Баллока и почитываю официальную документацию.
>>488764 >на моём некроноуте Не такой он уж у тебя и некро, если видео с поддержкой рендера GLES3.0. Не прибедняйся. Если тебя останавливает от перехода гдскрипт, компиль движок из сорцов, итт выяснили, что это несложно, компиль с поддержкой шарпа и вперёд. Хотя я не вижу необходимости в шарпе, да, он быстрее 9000 зайчиков нарисует, чем гдскрипт, но в большинстве случаев такая нагрузка не требуется.
>>488803 Проблема годота лишь в том, что он сырой. К примеру есть одно окошко в редакторе годота, в котором надо прокрутить вверх. Однако из-за неизвестно чего эта полоса прокрутки куда-то укатилась вправо за интерфейс на моём ноутбучном экране, а стрелками, PgUp или WASD прокрутить вверх невозможно.
>>488807 Кто хочет - ищет возможности - и публикует игоры на годо в стиме (выше в треде смотри). Кто не хочет - ищет причины - и жалуется на полосу прокрутки.
>>488818 >подскажи мне тогда другую мобильную ОС кроме ios и андроид!!! названные тобой движки настолько качественно скакнули в техническом плане, что побирушки даже если 50 лет будут побираться, никогда не достигнут такого уровня. эпоха движков-энтузиастов прошла
>>488819 проблема лишь в том, что godot не нагружен всякой хернёй как Unity или UE4. Как отметил анон выше, на его некроноуте годотыч запускается и работает быстрее, нежели юнити.
>>488817 Нормальные движки не требуют никаких отчислений, отдают сурсы и никак не ограничивают их использование. >с майнером внтри Намайнил тебе за щеку. Проверяй
>>488882 Профессиональные попрошайки освоили технологии интернета. Вместо протягивания руки на улице, они делают порно-игры и движки - это куда выгоднее.
есть джва уровня, в одном три яблока, в другом пусто, персонаж собрал яблоки на первом и пошел на второй уровень, как сделать чтобы при возврате на первый уровень там яблок уже не было?
>>489263 Я знаю о двух вариантах: через синглтон и через сохранение. 1. Синглтон. >>489264 уже примерно описал, только я не вижу смысла целую сцену держать в памяти синглтоном. Достаточно завести в автозагрузку скрипт с количеством яблок на уровнях. 2. Сохранение. Держать количество яблок на уровнях в файле на диске. В обоих случаях сцены уровней не содержат в себе яблок изначально, а берут количество из 1. или из 2., после чего создают их в функции _ready()
>>489279 Тут вспомнил ещё одну вариацию техники с синглтоном. Допустим, у нас есть игровой персонаж с инвентарем, уровнем, навыками. Он переходит из сцены в сцену. Очевидно же, что он должен сам быть синглтоном. Глупо создавать каждый раз персонажа в новой сцене и копировать ему данные. Гораздо эффективнее один раз загрузить данные из сохранения и держать их в памяти постоянно. Поэтому все собранные яблоки можно держать у него. Соответственно алгоритм загрузки будет таков: 1. Получить ссылку на персонаж игрока. 2. Установить его в точке спауна. 3. Получить у него инфу о поднятых им на этой локации предметах. 4. Создавать предметы по маске, в которой параметром является поднятость персонажем (поднятое не создаётся, пропускается). Ну опять же это зависит от целей и жанра игры. И от количества предметов. А то может получиться слишком тяжёлый персонаж. Если предметов очень дохуя, и особенно если планируется возможность персонажем выкидывать предметы, то у локаций должны быть свои инвентари, которые при загрузке поднимаются из файла сохранения. Вот тогда самый оптимальный вариант. Взял меч сумрака в инвентаре локации данж поместил в свой инвентарь, перешёл в локацию рынок, поместил меч сумрака в инвентарь локации торговец. Меч однозначно прописан в одном определенном списке.
>>489293 Нахуя вообще пихать инвентарь и навыки в самого перса? Код персонажа для управления и анимаций, все остальное в глобальных объектах, где основной код игры.
>>489368 >Нахуя вообще пихать инвентарь и навыки в самого перса? Ну мало ли, вдруг у него игровая механика такая, что персонажа удобнее объявить глобальным объектом? >Код персонажа для управления и анимаций, все остальное в глобальных объектах, где основной код игры. Кажется у нас возникло небольшое недопонимание. Персонаж - это не экранный спрайт/меш. Персонаж - это математическая сущность в игровой логике. К нему как компонент (годо-сцена) добавлен (помимо прочего) спрайт с управлением и анимациями.
>>489376 Ну у меня обычно такой подход: есть просто спрайт\меш со скриптом управления, а ссылка на него и всякие переменные (хп, инвенатрь), и всякие функции, не относящиеся к непосредственно к управлению аватаром - в главном синглтоне "game".
>>489263 Очевидно сохранить куда-то в файл состояние уровня и при заходе на уровень посмотреть записана ли инфа о состоянии в файл, если да то распарсить инфу.
>>489881 Двачую. Он думает, мы тут в английский не можем. Учитывая, что десятком постов выше запощен туториал на английском как само собой разумеющееся.
>>490195 Там как-то хуёво реализован roughness в материалах. Либо я ещё не разобрался в настройках environment. Получается говно. Вот скайбокс тоже говно.
>>492268 Свой ум гораздо круче любого движка. Я имею ввиду, если знаешь алгоритмы, умеешь производить декомпозицию задачи, алгоритмизировать её и решать наиболее оптимально - ты на самом якобы парашном движке сделаешь красоту. Напротив, если всего вышеуказанного не умеешь, то на самом крутом движке наебенишь тормозного быдлокода. Возражения?
>>492275 > гений, сверхчеловек, пишешь на чистом си > 7 лет потратил на переписывание годота > ИДЕАЛЬНО > ue11 стримит картинку прямо в мозг > RRRREEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
>>492299 >заебала та сцена с атриумом(?) и тряпками
та сцена это классическая бесплатно-свободная тестовая сцена для проверки алгоритмов освещения/затенения. Sponza называется. К бенчмаркам отношения не имеет. Еще скажи что тебя чайник с кроликом заебали.
>>492460 Ну почему же у меня? Вот, например, прямо сейчас челик на ютубе пилит игрушку на годо под мобилы и сразу тестирует на мобилах же. https://youtu.be/WaYCh9kQTA8
>>492531 https://www.youtube.com/watch?v=Oh89tZvIWW8 вот что-то вроде этого, только я хз как триггеры делать, насоздавать камер и таких кубов без текстур и коллизии, а вот как на этих кубах уже триггеры сделать я хз
>>492687 > триггеры сделать я хз Ты это серьёзно щас штоле? Первое на что натыкаешься, когда смотришь уроки по движкам (не только по годо) - это как делать триггеры. Вот тебе аж с привязкой по времени https://youtu.be/NMMX2eTIJiU?t=149 Если ты и в инглиш не можешь, то просто внимательно смотри на его действия и на код.
Философский бамп. В юнититреде анон хотел сделать джвадэ игру в юнити и слился. Ибо сложна-сложна-нипанятна. А был бы у него годотоствол - всё могло бы сложиться иначе.
Тут кто-то интересовался как сделать, чтобы персонаж двигался без рывков при резком нажатии вправо/влево и вверх/вниз? Нашел прикольную технику реализации. Посмотрите на код. Здесь по сути двумя строчками кода реализованы т.н. оси.
>>492969 Физика, школьный курс. Тело получает импульс и ускоряется бла-бла!
Ты ускорение забыл. У тебя должно быть 2 вектора : 1) как ты хочешь чтобы он был 2) стремится (интерполируется замедленно) к первому с некой скоростью, он то в физический движок и идёт
Твой же код даже массу объекта не учитывает.
В 3д например, есть apply_impulse(или как там его, не знаю насчёт 2д), им ништяк работать.
>>493269 Где годо-эксперты? Проясните, правда ли это? Есть ли в годо автоматический способ держать общие поля для всех экземпляров класса, или нужно вручную делать ссылку на общие данные при инициализации каждого экземпляра?
>>493583 > Есть ли в годо автоматический способ держать общие поля для всех экземпляров класса Выше был пример сеттера-геттера. Что тебе мешает написать обработчик. И годот не мыслит классами, а узлами вроде.
>>493619 Иначе говоря, годо предлагает новичкам парадигму узлов, но когда профи смотрит на всё это, он видит, что узлы это классы, что можно написать свой класс, что можно наследоваться, есть полиморфизм. И так далее.
Пилю пиксельную 2d игру в разрешение 360x640 потом растягиваю на весь экран. Но спрайты движутся не попиксельно а отдельно. Как сделать чтобы растянутые пиксели вели себя как настоящие?
> но когда ваннаби-интырпрайзоблядок смотрит на всё это, он видит, что узлы это классы, что можно написать свой класс, что можно наследоваться, есть полиморфизм, абстрактные фабрики абстрактных фабрик, да еще и клиенту потом с корешем под это дело топовые супермикры за откат толкнуть, мммм.
А в годоте нормальная ECS с композицией во все поля, каждая система на своем месте, и фрактал отсоса AbstractFabricGenerator<FabricGenerator<HuiPizda>> устраивать не нужно, нужно делать игры.
>>493798 >и фрактал отсоса AbstractFabricGenerator<FabricGenerator<HuiPizda>> устраивать не нужно Но заметь, можно. Начиная с третьей версии годо не ограничивает игроделов в подобном мазохизме (позволяет кодить скрипты на шарпе).
>>495818 У меня на рабочем столе милая и удобная папка, в которой я хочу хранить свои проекты чтобы потом можно было быстро на флешку скопировать. Т.к. я только учусь, новые проекты плодятся буквально каждый урок. Поэтому, да, создаю каждый день.
Пацаны, вот мне приглянулся годот для создания платформера. Но я, блять, не понимаю чесслово, что за мода писать движкам собственные языки? Нахуя мне учить тот же GDScript или GML под Game Maker Studio, если я знаю кресты и привык на них писать? Нахуя эти извращения? Почему разработчики движков вечно хотят изъебаться? Ну и сопутствующий вопрос: можно ли в годоте каким-нибудь образом писать на чистом с++? Я что-то слышал про NativeScript, поясните за него вкратце. Как с ним связаны другие языки?
>>495840 > можно ли в годоте каким-нибудь образом писать на чистом с++? Можно. Для этого надо... Скачать исходники движка и компилировать свой цпп-код вместе с движком >Я что-то слышал про NativeScript, поясните за него вкратце. Вкратце это библиотека с экспортируемыми функциями, которую ты цепляешь к процессу игры.
Товарищи. Есть ли в годоте нормальное масштабирование? Т.е. чтобы при растягивании окна, изображение масштабировалось в целое количество раз, а не на дробные значения. А то к примеру получается такая хуйня как на 2м пике. Пробовал use 2d pixel snap - on stretch mode - viewport (или 2D) stretch aspect - keep один хрен такая хуйня происходит. ----------
>>495975 >>495976 У тебя есть физическиеразмеры окна - сколько оно занимает на экране.
Так же у тебя есть параметры твоего проэкта - его типа виртуальные размеры. Во всяких нодах вроде камеры и вьюпортов (я мало в 2д шарю) так же прописываются размеры.
Попробуй заскриптовать второе когда первое меняется.
Посоветуйте: Мне надо переключать музыку со спокойной на боевую при столкновении с врагами. При этом, надо чтобы текущая музыка начинала играть ровно с той же секунды, на которой перестала играть предыдущая.
>>496227 >синхронно проигрывай оба, меняя громкость Похоже на какой-то костыль. Нет способов толковее? >сделать такие треки, чтобы плавно переходить между ними Именно это и предполагается: будут треки level-N-ambient и level-N-fight.
Хочу сделать простенький платформер чисто на визуал скрипте, но нигде не нахожу хоть минимального примера работы с ним. Сегодня склепал Kinematic Character по официальному гайду, http://docs.godotengine.org/en/3.0/tutorials/physics/kinematic_character_2d.html но видимо что-то упустил, ничего не заработало. Грешу на последнюю строчку примера, потому что остальное более-менее просто. Из всего, есть несколько вопросов:
Является ли VisualScript полнофункциональным GDScript-ом или есть какие-то ограничения?
В последней строчке примера: move_and_slide(velocity, Vector2(0, -1)) Чем является второй параметр и где его можно выставить в VScript?
>>496322 >Является ли VisualScript полнофункциональным GDScript-ом или есть какие-то ограничения? Это говно ради моды. Не забивай им свою голову. Посмотри начало треда. Я там пытался малюсенькую функцию на вижуалскрипт переводить. Ху-и-та!
>>496322 Впрочем, кто я такой, чтобы запрещать тебе ебаться? >move_and_slide(velocity, Vector2(0, -1)) >Чем является второй параметр константой >и где его можно выставить в VScript?\ в константах.
>>496325 Щелкни на визуальнуюноду CallNode и в инспекторе уменьши параметр Use Default args до нуля или до нужного тебе числа, получишь вот это (я, правда для триде пример накидал, но для двадэ всё аналогично, только вектор двумерный). И да, тогда тебе константа будет не нужна, точнее опциональна. Можешь её соединить с нужным пином, а можешь просто задать значения в дефолтном поле пина.
Перебрал таки код, что вчера визуал-скриптил. Проблема оказалась в другом. В строчке: velocity.y += delta * GRAVITY стоит не просто =, а +=. Поэтому, опять вопросы: Что это плюс-равно значит и можно ли его притыкнуть в визуалскрипте?
>>496480 Зачем такой геморрой поверх её выращивать?
В идеале, предположу, в апдейте кадра просто вектор2д с виртуального геймпада (геймпад с аналогом круче клавиатуры) добавляешь к скорости (апплай импульс?) и всё. А уже сам физическое боди уже всю гравитацию и трение об воздух считает.
>>496487 Алё! Во всех движках так. Либо выращиваешь код вокруг физики, который у тебя применяет задуманную тобой игровую логику к физике движка, либо качаешь готовые ассеты, где добрый Джон или Мигель уже всё вырастил за тебя. >предположу Нет, ты сначала слезь с дивана, изучи матчасть и не крякой о том, в чём не разбираешься.
>>496491 >изучи матчасть Начнём с того, что юзер инпут не изолирован выше а там уже и дойдём до того что ты дебил. >выращиваешь код Деревошизик, это ты?
в годоте даже оклюжн куллинга в 3д нет, это же зашквар, хотя хуан говорил что добавит его в 3.1, юнити еще больше зашквар из-за лицензии и Made with Unityh.
>>496500 опыт unity - это опыт, который всегда пригодится в жизни, уча юнити, ты влаживаешь в свое будущее. потому что юнити будет всегда и станет еще только лучше. уча godot, ты просто проебываешь свое время. вот и делай выводы.
>>496500 >в годоте даже оклюжн куллинга в 3д нет Тридэ подсистема годота начнёт тормозить гораздо раньше, чем ты дойдёшь до необходимости обрезать рендеринг объектов за кадром. Годо не для тридэ. Оно там есть, но пока что в зачаточном состоянии. Таким образом, годо - движок для двадэ. Таким образом годо не конкурент юнити.
>>496502 ололо щас да? возьми тот же ice pick lodge, они пилят переосмысление мор утопии, так вот если ты смотрел интервью и доклады, в чем я сомневаюсь, они пилят на юнити и успешно рассказывают как они перепиливают его внутренние системы под опен ворлд, такое ощущение что он им нахер не нужен, так как многое они уже сами перепелили. И да, годот тоже зашкварен в том состояниее которое у него сейчас.
У меня временами складывается ощущение, что в юнити-треде дежурят вахтёры и когда видят, что в годотреде зарождается дискасс, налетают срать. Годаны, почему бы вам их не игнорировать? Это же так просто. Я вас научу. Анон спрашивает > как сделать то или это Это нормальный вопрос. Исходим из предположения, что это ньюфаг, пытающийся разобраться. Отвечаем. В ответ на ваш ответ начинаются придирки > а нахуй это? а почему не то? А что это есть, а того нету? В этом месте напрягаемся и предлагаем ему запилить самостоятельно то, чего ему не хватает. Если в ответ начинают литься помои на тебя или на годо - игнорим и идём заниматься своими делами. Это просто. Главное, никакого баттхёрта. Я-то на двачах не первый год, мне это легко, но прозреваю, здесь может быть много новичков, которые могут купиться на троллинг юнитимразей.
>>496508 Задел на будущее. Пофиксят текущие баги, которыми трекеры завалены, и перейдут к реализации остального. Тут вот шарп подвезли, например, уже можно не заморачиваться с тормозным гд-, вижуал- -скриптом, а сразу на шарпе писать. Который достаётся за пару секунд и в руке как влитой.
Просто годоту нужен киллер-тайтл. Типа игра которая станет популярной по различным графикам, и потянет за собой движок вперёд. Прикиньте какого это будет, если эту игру разработают в /gd/?
>>496639 Лол, ты хоть понимаешь смысл написанного, когда отдельные слова подчеркиваешь? Там говорится о техниках и особенностях вообще, без привязки к конкретному движку. Особенно смешно когда ты подчеркиваешь фразу о том, что "прописывать вручную параметры каждого материала для каждого объекта слишком медленно".
>>496649 о, триггер сработал! но поговорим о особенностях официальной документации этого поделия >прописывать вручную параметры каждого материала похоже, что смысл написанного не понимает мой собеседник, но я не удивлен ТУТ БЫЛО ВСЕГДА ТАК и переведу это специально для тебя следующим образом: >конфигурация свойств каждого материала для каждого объекта, который должен быть отрендерен, также медленна. для решения этой проблемы объекты сортируются по материалам, чтобы снизить трату процессорного времени, но в тот же самый момент процессорное время тратится на эту же самую, блять, сортировку
>>496652 Ок, может быть я ошибся в малом, но на главное ты не ответил: нахуя ты наподчеркивал текст про общие проблемы производительности, не относящиеся конкретно к движку?
>>496655 ну все честно жи, какбэ сразу предупреждают, с чем придется столкнуться нищебро и да, я видел текст про общие проблемы производительности питона да и вообще всех интерпретируемых языков. отсюда вопрос: неужели очередной интерпретатор интерпретатора, слепленный васянами на коленке, сможет прыгнуть выше хуйца?
У меня временами складывается ощущение, что в юнити-треде дежурят вахтёры и когда видят, что в годотреде зарождается дискасс, налетают срать. Годаны, почему бы вам их не игнорировать? Это же так просто. Я вас научу. Анон спрашивает > как сделать то или это Это нормальный вопрос. Исходим из предположения, что это ньюфаг, пытающийся разобраться. Отвечаем. В ответ на ваш ответ начинаются придирки > а нахуй это? а почему не то? А что это есть, а того нету? В этом месте напрягаемся и предлагаем ему запилить самостоятельно то, чего ему не хватает. Если в ответ начинают литься помои на тебя или на годо - игнорим и идём заниматься своими делами. Это просто. Главное, никакого баттхёрта. Я-то на двачах не первый год, мне это легко, но прозреваю, здесь может быть много новичков, которые могут купиться на троллинг юнитимразей.
>>496750 У меня на стимовской версии не взлетело. Крашится рандомно. Но у меня и нет потребности на шарпе кодить. Поэтому забил. >>496775 Игровой движок это не игровой редактор (типа Creation Kit от беседки) и он не обязан предоставлять конструкторы уровней. Максимум, что тебе могут предложить игровые движки общего пользования (не только годот, но и унити/уеч) - это трехмерные тайлмапы ака гридмапы: https://www.youtube.com/watch?v=jD04Tua191Q В остальном ты сам, как разработчик игры должен создать уровень, придумать инструменты для его конструирования. Еще ты можешь использовать сторонние плагины/ассеты для конструирования уровней. И это именно плагины/ассеты, потому что как я сказал выше, общеигровые движки не обязаны предоставлять тебе готовые игровые абстракции. Еще есть вариант скачать шаблоны, в стандартной поставке есть шаблон изометрической игры на тайлмапе, но в двадэ.
>>496908 УЕЧеребенку надо чтоб из коробки тормозная БСП-геометрия поставлялась. А юнитидауну надо обвешаться аддонами и молиться, чтобы совместимость при обновлении не похерилась. Для прототипирования уровней в годо всё есть - геометрические примитивы, тайлмапы. Но это ж ручками надо делать (в том числе тулскрипты). Детям проще же накачать говна из маркета. Дазодауны, блядь.
>>497139 Главное, что там есть искаропки усё. Юнитиребёнку плевать, что оно работает в 10 раз хуже проверенных тридэ-редакторов, он всё равно ассеты ворует. Главное, видишь, можно бегать по тредам движков конкурентов и доказывать анонимусу, что движки-конкуренты - не конкуренты швитой юните.
>>497204 Покажи первую часть кода. В гдскрипт динамическое типизирование. Это значит, что пока ты не присвоил переменной значение типа "вектор2", у неё не будет ни икса, ни игрека. О чем тебе отладчик и сообщает. Но кроме этого, любую переменную можно на ходу переобуть из вектора в скаляр, присвоив ей скалярное значение, после чего у неё опять не станет ни икса, ни игрека.
>>497211 >а как ты понял из дебага это? Главный секрет моего успеха в том, что я не знаю шарп и кресты не знаю, но вполне могу прочитать и даже как-то конвертировал функцию на крестах в паскаль, который знаю. Но паскаль морально устарел и поэтому приходится переходить на другие языки, но даётся с трудом, старого пса новым трюкам не научишь, но я научился тридэмоделингу в блендере за два месяца! Воот. Nil - это Null.
>>497211 > нахуй эта динамотипизированная хуйня нужна вообще Вообще, для удобства. Вычислительные мощности современных печей позволяют не экономить на типизации. Загрузка и обработка ресурсов на уровень (мешей, текстур, звуков) всё равно пожрёт больше мощностей, чем динамические типы. Поэтому смысл байтоёбствовать статической типизацией сошёл на нет. Поэтому расцветает подход с вебпрограммированием, процветает скриптинг. Это реально удобно. Я как вспомню, что для того, чтобы написать пару строчек кода со скрина, мне в паскале приходилось вручную городить ещё две страницы интерфейсного кода, так меня оторопь пробирает.
>>497215 ХЗ, спроси у них самих. Возможно это у них такая пасхалка, а может в память о ком-то. Догадаться можно, если кругозор шире одного языка. Без обид.
>>497211 >чо такое Nil Это значит, что объект, к которому обращаешься через переменную, не существует, nil - это объект-заглушка, виртуальное ничто. В твоем случае переменной screensize не было присвоено значение, т.е. она ссылалась на объкт nil. Дебагер сообщил об отсутствии свойства x у этого объекта.
>>497218 >мне в паскале А при чем тут паскаль? Паскаль всё - мертв нахуй. Возьми тот же шарп, где байтоебство? Ровно столько же пришлось бы кода написать. >>497221 Да мне как про null написали, я уже понял это. >>497232 Нахуя мне знать про пустой указатель в паскале? Вообще, кстати, Null Exception в шарпе более детально сообщил бы мне об ошибке, в частности, точно указал бы, что не существует screensize Но это дело привычки, я согласен, со временем прохаваю
>>497262 А вообще нет, пизжу. В случае с годо - столько же. (Я полез в документацию, чтобы скринами показать, что больше будет, а однако там увеличение количества строк только за счёт скобачек)). Но количество кода эквивалентно только в этом случае, потому что АПИ удалось сделать максимально компактным.
Анон, подскажи. Вот допустим есть спрайт, как сделать так, что бы его координаты начинались не из центра спрайта, а из левого верхнего угла, например? И можно ли как-то поменять координаты, что бы начало XY было в левом верхнем углу, а не в анусе?
>>497340 Хорош троллить! О координатах спрайта выше в треде было. А координаты вьюпорта и так в левом верхнем углу. Ахаха, ну прекрати! Что ж ты делаешь?
Чтож, я пытался, но видимо, тщетно. Однажды ты спросишь меня, годот или юнити. Я отвечу годот. И ты уйдёшь, так и не узнав, что на самом деле УЕЧ. Плыви тредик.
>After years of discussion on how to implement CSG, Godot finally gets suport for it. This implementation is simple, but makes use of Godot's amazing architecture to shine. Хуан какой-то ЧСВшный мудачек.
>>497698 >Я написал лудший движок! >Я написал лудший скриптовый язык gdscript! >Я написал лудший алгоритм CSG (правда он криво работает, но зато он лудший!) Не удивительно, что godot никому не интересен.
>>497703 Пока что его высказывания это пустые вскукареки. Достаточно почитать главную сайта: супер инновационый движок, крутое 3Д. Такой-то манямирок. Вместо того, чтобы думать о пользователях, они пишет велосипеды и хвалится этим как чем-то хорошим. Для него движок - это средство поднять свое ЧСВ и получать донаты.
>>497769 никто не пользуется визуалом, потому что это ущербное дерьмо на всех движках. Проще самому натыкать две-три строчки, чем делать километровое полотно стрелочек и квадратиков
>>497778 нет, я просто хуй с горы. Но если ты мне покажешь хоть один действительно облегчающий метод использования визуал скриптинга вместо обычного быдло коддинга, то с честью награжу медалью "Доказал какому то анону какую то хуйню"
>>497780 В общем посмотрев видосы с этим вижуал скриптом, чёт как-то расхотелось с godot работать. И даже если язык программирования знать, там это дело через жопу реализовано, смысл в вижуле не сильно меняет дело, если только не добавят встроенные решения, сейчас это как собирать замок в майнкрафте, для того что бы сдвинуть объект по нажатию кнопки, лол.
Пиздец, как же просто в fusion и construct1/2 скриптами работать, да даже галимый юнити c playmaker и uscript намного проще.
>>497780 >облегчающий метод использования визуал скриптинга Ну, слепить вместе несколько других компонентов, наверное.
В какой-то момент, я уверен, стаёт эффективнее связывать графически. Например, при визуализации музона. Не пробовал ещё. Типа у тебя N спектров и M всяких динамических параметров. Ты довесил всяких LFO для кучи. Кодом бы это выглядело соединять жутко, но макаронами бы склеить было бы самое то.
>>497852 Это просто рандомная вебемка с форчана. Надеюсь ты не подумал что я афтор?
Если внезапно нужны анимации, то как и анимации, так и модели к ним (тыщи их) есть у даже у ММД-коммунити и много в интернете всего. Даже в легко экспортируемой форме.
>>497850 >А мог бы игры делать! ГД-реликвия ещё не зарядилась.
>>498041 В блендере свой некий "animation player" со списком анимаций, да и форматы моделек скорее поддерживают списки анимаций. Я,надеюсь, ты же better collada export plugin установил с сайта годота?
>>498203 Посмотри тут где-то тред анона, пилившего убийцу майнкрафта на годо. У него вполне получалось. Тебе понадобятся исходники движка и твоя любимая ИДЕ.
Всем привет. Экспериментирую с Годо, пилю управление с тачскрина: одно из действий - кликом, другое - драгом вверх/вниз/вбок. Правильно ли я понимаю, что единственный нормальный способ это сделать, это повесить таймер на нажатие по InputEventScreenTouch и ждать отпускания или истечения таймера (если первое - это клик, второе - начинаем обрабатывать драг)? Фигово, что в этом случае драг фризится на время работы таймера.
Ещё вопрос: как правильно определять направление драга? В основном всё движение должно быть влево/вправо, т.е. не должно быть ложных срабатываний вверх/вниз. Я использую InputEventScreenDrag, думал смотреть на speed.angle() и speed.length(), но, как оказалось, speed на андроидах нулевой (старый баг, похоже). Считать его по relative, сохраняя время предыдущего InputEventScreenDrag? Как часто срабатывает InputEventScreenDrag, не будет ли ложных срабатываний на очень коротких, но очень быстрых перемещениях пальцем? Может, это как-то проще решается?
>>498261 >Правильно ли я понимаю, что единственный нормальный способ это сделать, это повесить таймер на нажатие Неправильно. События же клика и драга есть, сам же ниже пишешь. Включай логику. Как обработать оба события? Если сам не догадаешься, гугли обучающие видосы. По второму вопросу тоже видосы, лень их искать и пересказывать, но я их видел.
>>498272 >Неправильно. События же клика и драга есть, сам же ниже пишешь. Включай логику. Как обработать оба события? Да, можно ещё на release проверять были ли события drag между прошлым нажатием/текущим отпусканием. Так, наверное, лучше. Спасибо!
>>477911 (OP) Представь себе на секундочку, что ты не разработчик игр. Теперь ты шеф-повар! Смени свой хипстерский прикид на поварский колпак и двубортный китель. Теперь вместо создания игр ты создаешь новые и вкусные рецепты для твоих гостей.
>>498453 Итак, как шеф-повар создает рецепт? Рецепты делятся на две части: первая - это ингредиенты, а вторая - инструкции для приготовления. Таким образом, каждый может следовать рецепту и наслаждаться вашим великолепным творением. Создание игр в Годо очень похоже на это. Использование движка похоже на пребывание на кухне. На этой кухне узлы напоминают холодильник, полный свежих ингредиентов, из которых можно готовить игры блюда. Существует множество типов узлов. Некоторые показывают изображения, другие играют звук, другие узлы отображают 3D-модели и т.д. Их десятки.
>>498482 Но давайте начнем с основ. Узлы являются фундаментальными строительными блоками для создания игры. Как упоминалось выше, узел может выполнять множество специализированных функций. Однако любой данный узел всегда имеет следующие атрибуты: • У него есть имя. • Он обладает редактируемыми свойствами. • Он может получать коллбэк для обработки в каждом кадре. • Он может быть расширен (чтобы иметь больше функций). • Он может быть добавлен к другим узлам в качестве потомка (Это самое важное. Узлы могут иметь другие узлы в качестве потомков. Когда они расположены таким образом, узлы становятся деревом). В Годо способность упорядочивать узлы таким образом создает мощный инструмент для организации проектов. Поскольку разные узлы имеют разные функции, объединение их позволяет создавать более сложные функции. Не беспокойтесь, если пока ещё не дошло. Мы продолжим изучение этого в следующих нескольких разделах. Самый важный факт, который нужно запомнить на данный момент, это то, что узлы существуют и могут быть организованы таким образом.
>>498484 Теперь, когда концепция узлов определена, следующим логическим шагом является объяснение того, что такое Сцена. Сцена состоит из группы узлов, организованной иерархически (по древовидной схеме). Кроме того, сцена: • всегда имеет только один корневой узел; • может быть сохранена на диск и загружена обратно; • может быть инстанцирована (подробнее об этом позже). Запуск игры означает запуск сцены. Проект может содержать несколько сцен, но для начала игры одна из них должна быть выбрана в качестве основной сцены. В основном, редактор Годо является редактором сцен. Он имеет множество инструментов для редактирования 2D и 3D-сцен, а также пользовательских интерфейсов, но редактор основан на концепции редактирования сцены и узлов, которые ее составляют.
>>498485 >scenetreeexample.png Было бы неплохо начинать из node2d/spatial чтобы было где респавнить ясно без дополнительного скриптинга. Да и отдельные ноды, которые видно только в редакторе не помешали бы. Не самый прикольный пример, имхо.
Короче тема такая. Хочу запилить игру. Программирование для меня темный лес. Подойдет для моей цели этот годот? В стиме уже скачал его, начинаю потихоньку курить мануалы, через месяц представлю Вам первые наработки, здесь же все мои друзья.
>>499405 Возможно и подойдёт. Проще гд-скрипта только скрипты в гамаках/рпгмаках. Ты конечно смотри туториалы, но на русском их мало, без минимального знания инглиша на уровне "читаю без словарика" тебе будет тяжко. Вкратце суть годо (да и суть любого современного движка) вот в чём: Поверх выбранного языка программирования поставляются модули/классы/библиотеки, реализующие векторно/матричный математический аппарат, физические функции (скорость, ускорение, гравитация, тела и их столкновения), а так же программную абстракцию для доступа к графике, звуку, опционально к сети. Всё это добро организуется в древовидную модель языковых сущностей (классов, типов, нодов или т.п.). Это стандартный минимум к которому сегодня приведены все игровые движки. Какой ни начни изучать, во всех последующих ты будешь натыкаться на то же самое. В любом (из известных мне) языков программирования нет искаропки всего перечисленного, есть только функции/классы для прямого доступа к железу, а так же базовая математика, без векторов, например, достаточная, чтобы написать калькулятор и дополнительный матан нужно либо подключать отдельно, либо велосипедить самому. Казалось бы, что проще завелосипедить вектор? Берёшь структуру, ебашишь туда икс, игрек, зэт, ебашишь туда операторы сложения вычитания - готово! Но я тут на днях открыл исходники. Там всё есть. Нормализация, продакция, хуякция, транспонирование матриц. Всё готовенькое. Зачем всё это велосипедить с нуля? В академических целях? А игоры-то когда делать?
Вчера смотрел видосы про autotile. Прикольная штука. Ты задаёшь набор тайлов, прописываешь в этом наборе маску, согласно которой отделены кромки от наполнения. И после этого одной кистью рисуешь полностью обведённые кромкой платформы. Быстро. Удобно. Есть ли в других 2д-движках подобный функционал? Или это можно выносить в шапку как уникальную фичу?
Скажите нуфагу сколько нужно времени чтоб изучить этот годот? Что то очень сложно мне это даётся, особенно моменты со скриптами и кодом. Может в гейммейкер перекатиться? Там будет с этим легче?
>>499649 >Там будет с этим легче? У тебя должно быть понимание основ программирования, без него ты даже гамак не освоишь. Нужно понимать, как вообще программируется компьютер. Циклы, переменные, функции, хуё-маё!
>>500109 руки из жопы вытащи. все меняется >>499922 >мертвого движка Нихрена себе мертвый. У нас даже на работе столько коммитов и закрытых задач не бывает за неделю
Потому что ты петух, не умеющий в программирование и не осиливший даже XNA/Monogame, которые умеют выводить спрайты не хуже чем драг-н-дроп говнодвижки.
>>499649 Если есть желание, можем вместе потыкать этот движок.
И олсо, скачал сам годот недавно по советам с реддита. Мне многого не нужно, тем более зарабатывать не собираюсь на геймдеве, потому что основной доход идет с клиент-серверных мобилок. Если кто хочет вместе потыкать этот движок - можем вместе это делать. Попилить какой-нибудь 2д игрушку раннер или еще чего-нибудь.
Имеется, значит, 2d-моб, который любит стрелять 2d-стрелами из 2d-лука. 2d-cтрела, значит, летит по параболе, 2d-физон, ригидбоди, вся хуйня. Вопрос: как этому мобу целиться, дабы стрела прилетела куда надо? По геометрии у меня двойка.
>>477911 (OP) >GDScript можно переучиться за час. Python признан во всем мире самым простым языком для начинающих Какая разница, там 5к функций всяких почти без пояснений, в этом говне хуй разберешься. Вот не пойму долбоебов, ну вот ты написал функции, ну ты же тестишь их, ну оставь рядом код, паскуда хуанская.
>>501302 >Какая разница, там 5к функций всяких почти без пояснений, в этом говне хуй разберешься. Вот не пойму долбоебов, ну вот ты написал функции, ну ты же тестишь их, ну оставь рядом код, паскуда хуанская.
>>501319 Там в поиске этих анимаций и текстур миллион будет. Мне нужно было просто узнать координаты мыши, час искал, а они оказываются во вьюпорте. Там вообще все нелогично, понятно, что прогер легко разберется, но про начинающих не пиздите, огромное запутанное апи без примеров. В констракте если нужно что-то связанное с мышью, щекаешь на иконку мыши и видишь все нажатия, и координаты. А в годоте одно в инпуте, другое во вьюпорте, третье где-то среди оставшихся 5к функций. И все сука вместо констрактовских событий прикручивают ноды обоссанные из-за анриала, а у констракта ни одного конкурента нет. И 3д нет, пидарасы. Один чел пытается уговорить разрабов, но тщетно все это. https://github.com/godotengine/godot/issues/17795
>>501326 >Мне нужно было просто узнать координаты мыши, час искал Ты, вероятно, не очень умный. За минуту в гугле находится. Ты небойсь и в официальных чатиках движка (на офф сайте есть) не сидишь.
Тебе просто главное заебать себя, а не продуктивно работать.
>>501332 >За минуту в гугле находится. Это было просто как пример, вообще инфы по говноту очень мало, и он постоянно меняется. Выпустили какую-то книгу, нахуй она нужна, если в 3.1 все изменится и много нового будет. >>501332 В том то и дело, что я хочу продуктивно работать, а нахуй делать так, что без няньки не разберешься. Я, конечно, ни в чем никого не обвиняю, хорошо, что он есть, просто крик души.
>>501338 >вообще инфы по говноту очень мало Сам ты говняшка. Научись справочными материалами пользоваться. Страшно подумать, что у тебя с остальным контентом творится.
Внимание! Важная инфа! Похоже, юнитидебил сменил тактику и косит под дегрода в подобных постах >>501302 дискредитируя годосообщество в глазах 3,5 мимокрокодилов. Пожалуйста, воздерживайтесь от срача, не ведитесь на толстоту. Так победим!
>>501374 >Похоже, юнитидебил сменил тактику и косит под дегрода в подобных постах >>501302 Ты ебанутый что ли? Сам дискредитируешь годот своей тупизной
>>501381 Зац ма бой! Продолжай в таком же духе и тебе непременно удастся затралить паручку нубцов. >>501382 Внимательно читаю твои советы. Кроме шуток.
>>501385 >Ты сам на себе спроэцировал Не было такого, нубец просто накинулся на меня с обвинениями в дискредитации и обзывалками, пришлось охладить его траханье.
>>501996 >Гугл выпиливает приложения на Годоте из маркета, потому что они неправильно запрашивают разрешения. Ты статью почитай вначале. Её еще несколько днями раньше постили в тред. Просто переэкпортнуть проэкт следует вроде.
>>502168 >Есть такой мем как юникс-философия. Помню, это когда ничего не работает, не совместимо и на выходе один монолит. >Ты ж шаблоны отдельно скачиваешь, забыл? В статье написаньо, что скачать можно только шаблон без пермишнов совсем, в остольных случаях перекомпиляй из исходников.
Стоит ли перекатываться с гейммейкера на этот ваш самый Годот? И насколько GDScript будет отличаться от гейммейкерского GML? (ну хоть там, как и в GMS, блюпринты есть, уже радует)
>>502195 Перекатываться стоит уже хотя бы потому, что помимо гдскрипта там уже можно сишарп и эфшарп прикручивать и делать полноценные игры с ЛЮБЫМ геймплеем.
Обнаружил, что в гдскрипт нет функции, которая возвращала бы логическое значение, является ли число целым, наподобие такой: > bool is_integer(float argument) Написал такую самостоятельно. Код простейший: > if argument == int(argument): return true; else: return false Но мне нужен этот функционал в нескольких скриптах. Чтобы избежать индусского кода (копипаста), я сделал автолоад-скрипт с этой функцией, но теперь мне не нравится какой длинный получается вызов: > global_functions.is_integer(enemy_position/cell_size) Хотелось бы обойтись без имени синглтона, просто: > is_integer(enemy_position/cell_size) А в идеале хотелось бы, как в питоне: > result = enemy_position/cell_size > return result.is_integer Подскажите, ЧЯДНТ?
Есть желающие попахать на дядю за кэш? Нужно запилить апи для моддинга к весьма кривой игре (заодно перехерачить большую часть кривизны, чтобы совсем стыдно не было).
>>502306 >Обнаружил, что в гдскрипт нет функции, которая возвращала бы логическое значение, является ли число целым, Чем тебе typeof(foo) == TYPE_INT не угодил?
Следующий вопрос знатокам: Чтобы анимировать нарезанного на куски болванчика не обязательно же делать кости? Ну типа шевелишь на каждом кадре как надо и все. Вопрос второй: Сделал я кости, все красиво, добавляю кинематику, кости желтеют, но кинематики нет, все равно отрывается все друг от друга.
Годаны, я правильно понимаю, что конструкция: if variable in dictionary: do_something - означает, что если переменная variable совпадает с одним из значений в словаре dictionary - тогда условие срабатывает?
>>503243 Нет, не со значением, а с ключом. По аналогии с тем как оно работает в for: https://github.com/rdcklinux/godot-docs/wiki/gdscript#for >var dict = {"a":0, "b":1, "c":2} >for i in dict: > print(dict) # loop iterates the keys; with i being "a","b" and c" it prints 0, 1 and 2.
>>503280 >var dict = {"a":0, "b":1, "c":2} >for i in dict: > print(dict[i]) # loop iterates the keys; with i being "a","b" and c" it prints 0, 1 and 2.
>>503280 Бля, вот почему у меня фигурные скобки ошибки выдавали. У меня, получается не словарь вообще. Я сделал приблизительно такое: > var fb = [2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610] > if x in fb: ... В принципе, я уже потестировал и оно работает как мне надо. Но такая запись, видимо не словарём называется. Наверное, это просто список.
>>503706 >>503710 Давай я тебе наглядно объясню что ты сейчас спрашиваешь: >- У кого-то есть инфа по инструментам? Мне нужно прибить доску четырьмя гвоздями. >- Молотком не пробовал? >- Сейчас попробую молотком, но я уверен что есть более гуманный способ.
>>503756 Мы не знаем инглиша, слышь!!! Да и ничего интересного они не скажут. Пока рендер годоту не оптимизируют и гипробы не улучшат никто его юзать не будет. Все пилят дополнительных фич, а рендер говно, три модельки закинешь и лагает.
>>503808 >Бро, расскажи, что там Хуан вещал? УровеньГД попросил его потрясти и его ведущий тряс. А под конец ведущие всем порекомендовали поиграть в Дорогу Правопорядка.
>>503993 >а не в говно уровня гд Ну так не делай говно уровня гд. Можно подумать, если ты не умеешь в стиль, в моделинг, в озвучку (банально нет друзей/знакомых с хорошими голосами), то ты на любом движке накропаешь говно уровня гд. А со скиллом ты сделаешь годноту даже без движка вообще. Что такое движок? Это всего лишь готовая математика и физика, которую тебе, игроделу, не надо велосипедить самостоятельно. Редактор в игровом движке - вещь опциональная.
>>503996 > Редактор в игровом движке - вещь опциональная. С годотом можно дальше пойти. Игровой движок в игровом движке вещь опциональная. Можно сразу же кучу багов пофиксить, попутно написано собственный.
>>504379 >А давайте допишем GLES2, чтобы Годот заработал на половине мобилок мира, на встроеных видяхах >ДА НУ НАХ, ДАВАЙТЕ ЛУЧШЕ МЫШКОЙ ФОТКУ НА СТРИМЕ ШАТАТЬ
>>504395 Не был бы ты юнитидебмлом, срущим в годотреде, ты бы просто сделал верисионнонезависимый код и компилировал свои игоры на 2-й версии годота для старья и на 3-ей для состоятельных парней со свежим железом.
>>504395 >ДА НУ НАХ, ДАВАЙТЕ ЛУЧШЕ МЫШКОЙ ФОТКУ НА СТРИМЕ ШАТАТЬ Ты просто не в теме. Сверху двое - типа стримеры-ютуберы толкающие платные курсы по юнити и всё такое. Из готода только Джуан вроде снизу был.
>>504403 >ПРОСТО ПОДДЕРЖИВАЙ ДВЕ ВЕРСИИ ИГРЫ, ВЕДЬ ДВИЖКИ ДЛЯ ЭТОГО ДЕЛАЮТСЯ Кек. >>504408 >Два юнитибога колеблят неработающую картинку годота А, тогда все сходится.
Ладно. Придется на годот перекатываться. Юнити говно, анриал тяжелый и непонятный, кокос в нормальное триде и большие игры не может. хейтер забаговонного говна
Разве что эти уебки собирают бабло на педреоне, а работать не хотят. Сукиблядь!11
>>504630 >в годоте лайтмапы говно У тебя в голове говно, юнитидаун. Настрой сначала размер лайтмапов корректно, а потом видосики снимай. а то заебись так хуйню творить, в говнюнити лайтмапы настроил, а в годо и уече - нет. Затем снял видос и на ютуб выложил. Смотрите, мол, какие лайтмапы говно у бажествинава юните. >производительность хуже У любого скриптового языка производительность хуже. И у gdscript и у unityscript (от которого отказались). Для этого вводят поддержку сишарпа, клоун, блядь.
>>504650 >У любого скриптового языка производительность хуже. Производительность рендера хуже, чушман тупой, в 4-5 раз хуже юнити. Лайтмапы в годо введены для галочки за неделю, хуан не стал их доводить до ума и они не учитывают свет неба. Ты только позоришь годот своей тупостью, даун.
>>504660 > Лайтмапы в годо введены для галочки за неделю, хуан не стал их доводить до ума и они не учитывают свет неба. Ты только позоришь годот своей тупостью, даун.
А нахера вообще вы дрочите на встроенные лайтмапы, если любой профрендер вроде октана отрендерит их вам гораздо пизже?
>>504660 >Лайтмапы в годо введены для галочки за неделю А юнити сама собрана за неделю. Хуякс! Парируй, мразь! >>504663 Ты на профрендере в игоры играешь? Ну-ну. >>504664 Запустить юнити можно, только тебе придется заново изобретать кучу велосипедов. А мог бы игры делать, на годоте.
Годотаны, допоможите ньюфагу. Существует ли какая-нибудь константа, обозначающая любую клавишу инпута (или вообще любое действие)? Я пилю отмену анимации, которая должна срабатывать, в моём воспалённом сознании, в тот момент, когда во время проигрывания анимации нажимается новая клавиша. То есть нужна строка типа if Input.is_action_just_pressed(ANY_KEY) , которая срабатывает по нажатию кнопки, но не срабатывает, если её держат до начала анимации.
>>504765 >>504761 А, стоп. Ты меня таки дуришь. Тут мы проверяем, что клавишу отпустили, а нужно — что её нажали. Но вообще если что-то нажали, значит вызвался _input, поэтому надо просто проверять, что event — это не отжатие клавиши, я тупой.
А-а-а, блджад. Если были нажаты джве кнопки, а потом одна отпускается, вторая перестает вызывать _input. Это сраная подстава. Пойду верну как было по-колхозному, потом мануалы повкуриваю.
>>504821 Ну смотри. Пусть у тебя есть, например, WSAD. Соответственно есть _input, в нём задается пустой вектор, дальше мы пробегаем условия if event.is_action_pressed("W") добавляет (-1,0), "D" добавляет (0,1) и т.д. Ну ты понел. Потом условия на отжатия клавиш. И я не придумал ничего умнее, чем написать if event.is_action_released ("W") or —//— "S" or —//— "A" or —//— "D" и занулить вектор.
И всё хорошо, но потом ты начинаешь стрейфиться, нажимая WD. Отпускаешь одну из кнопок — останов очка, хотя вторая нажата. Теоретически после этого должен снова постоянно вызываться _input, так как одна из клавиш нажата. Но винда так не считает и говнится, и ввод пропадает. Я проверял, выводя на экран, сколько раз вызывается _input, да и вообще этот эксперимент можно повторить в блокноте.
Пока забил и пишу в _process через Input, может потом дополнительно повкуриваю, когда буду нормальную очередь ввода писать, пока костыликами подопру.
>>504852 Ну, во-первых, задай имена экшонам в конфиге проекта, или юзай дефолтные. То что ты юзаешь прибитые гвоздями к коду имена клавиш - сыграет тебе дурную службу в дальнейшем, когда проект разрастётся. во-вторых, контроллер движения можно реализовывать по разному. Как я понял, у тебя стоят одиночные ИФы. А ты сделай через ИФ - ЭЛИФ - ЭЛИФ -ЭЛИФ - ЭЛЬС Вот, как реализован контроллер движения у меня в текущем проекте (пикрилейт). Константы типа "ui_..." - это дефолтные, означают стрелки, однако в параметрах проекта я могу их переделать в ВАСД без изменения кода.
>>504868 Ах да, чтобы по диагоналям не бегало в два раза быстрее, то между 17 и 18 строками можно добавить нормализацию вектора input_axes. Хотя в такой реализации ускорение на глаз не различимо.
>>504820 А не пиздишь? А што если я начну работат, а он нихуя не сможет в туман и такой примитивный графон? Ты понимаешь как будет печально? Меня аштрисёт!111
>>504864 Ну это тоже через _process, то есть он на каждом тике сканирует инпут. Мне, как почётному костылеписцу, от такого страшновато, но раз работает, то и ладно. В принципе у меня сейчас так и написано, только без elif, пушо незнакомая для меня (была) конструкция, пофикшу.
Экшоны настроены и стандартные, и свои, просто я на работе был без исходников и писал прямо так для простоты. Примеры я тоже читаю в больших количествах.
>>504858 А вот опыты показали, что иногда он считает, что должен, а иногда — что ему и так норм. Вот сам попробуй написать такой _input, поместить в него итератор и каждый раз выводить. Он ведёт себя как полный свинтус.
Анон, нужен совет. Стоит ли начинать с годо? Пока что в плане простейшие 2д игрушки, матч3 и прочие перделки-переделки для набора опыта и практически гейдеве. Но встал вопрос, стоит ли тратить время на годо, или лучше сразу обратить внимание на другие движки (например unity).
>>504909 >В чем годо сильнее юнити, например? Проще. Стоит начинать с него. Юнити это как фотошоп, когда тебе надо всего лишь пикчу обрезать. Поэтому для простых экспериментов лучше годо.
>>504915 В чём толстота-то? У унити хороший 3д движок, а у годо наоборот 2д неплох. Анон хочет делать 2д. Очевидно, что ему проще вкатиться в годо, чем в юнити.
Так, годаны, возникла серьёзная проблема. Моё кинематик-тело должно спавнить статик-тело по своим координатам, причем оно должно иметь возможность выйти из под заспавненного статика, а после уже войти нельзя. Если спавнить просто так, срабатывает коллизия и кинематик мгновенно отпрыгивает из области коллижншейпа. Я пока прикрутил костыль в виде таймера, который через секунду включает изначально выключенный коллижншейп, но это пиздец какой говнокод, бля.
Начинать естественно с 2д буду, но в будущем возможно и 3д попробую. Весь вопрос состоит в том, стоит ли тратить время на годо, или продолжать разбираться и изучать unity?
>>504949 >добавить исключение коллизии Загуглил. Добавление исключения (на время выхода игрока из области заспавненного предмета) выглядит так же костыльно, ну или я что-то неправильно понял. Курю дальше. Но всё равно спасибо за помощь. Хоть кто-то ИТТ реально помогает, а не срётся.
>>504951 Я сам за годот, но советовал бы взять юнити из-за того, что в нем уже все готово, а у годота нужно улучшать рендер и непонятно когда хуан этим займется. Но сишарп суперсложная штука, поэтому ничего у тебя не получится, дропай сразу, не трать время.
>>504954 Ну или можно опять-таки спавнить его с хитбоксом на другом слое, а потом возвращать на тот же слой по выходу из коллизии. Или временно перемещать кинематик на другой слой, если может понадобиться коллизия с чем-то еще (хотя это тоже может привести к багу).
>>504961 >>504941 Ох, блядь, как же ЭЛЕГАНТНО я решил эту проблему! Аж прибежал похвастаться. Поведение получается именно такое, как нужно. Заспавнил под себя - можешь двигаться. Вышел - зайти обратно не можешь. Всего-то нужно было одновременно с коллижоншейпом поставить эрию. Колижоншейп выключается в редакторе. Затем на эрию навешиваем сигнал _on_body_exited() в котором проверяем, если тело == игрок, то включаем выключенный коллижоншэйп. Никаких исключений, никаких слоёв, групп и прочих сложностей. Красиво, сука!
>>505089 А, я писал про _on_body_exited, но как-то не обозначил явно. При этом у тебя static body прозрачное, пока в нём папка сидит, если что-нибудь туда может прилететь, придётся всё-таки совать нос в слои. Вообще по-царски было бы все коллижоны поместить на 2 слоя, кинематик на один, а статик сначала на другой, а по выходу — тоже на оба. Тогда еще и лишних проникновений куда попало не будет, например. Ну это если у тебя там вообще есть кому куда проникать.
>>505108 >все коллижоны поместить на 2 слоя, кинематик на один, а статик сначала на другой, а по выходу — тоже на оба И как, по твоему, отработает body_exited, если тело на другом слое? Пробовал уже, не работает. Ну или я чего-то критически недопонимаю.
>>505133 Досадно, значит сделать всё по уму с учетом всех возможных коллизий без костылей не получится. Ну и ладно, это уже для запущенных случаев, когда оба тела должны сталкиваться с другими, вряд ли у тебя всё так плохо.
>>505156 Всё не так плохо, тела врагов по гемплею не могут находиться поблизости (ибо съедят игрока), спавнящееся игроком тело статик, кругом статики. От заспавненного тела надо быстро убегать за угол. В общем, сойдёт.
Смотрите, чо придумал! Делаем несколько сцен, каждая из которых с помощью скрипта манипулирует родительской нодой. Сцены эти прикрепляем к игровым сценам-объектам. Таким образом получим систему прикрепляемых поведений. Можно будет рекомендовать этот способ беженцам с погибающего юнити.
Годаны, подскажите. Спавню бомбы. У каждой бомбы переменная can_blast. Так же у каждой бомбы таймер на 3 секунды? в событии таймера can_blast включается и начинается взрыв. При взрыве у бомбы начинает расти коллижнполигон и детектировать входящие тела. Если тело = бомба - включает в ней переменную can_blast (быстрее, чем её собственный таймер). Происходит цепная реакция, всё взрывается. Всё работает. Теперь я хочу детектировать стены и ограничивать рост коллижнполигона. Я добавляю рейкаст. Он растёт вместе с полигоном. Детектирует стены и останавливает рост. Казалось бы, что может пойти не так? Но блять, это только у первой бомбы в цепочке! Остальные как будто игнорируют рейкаст и снова взрываются сквозь стены. Где у меня проёб? Стены - тайлмап. Может из-за него?
>>506507 Да вообще по любому движку это можно сказать. Я ещё ни разу не видел, чтобы в этом треде обвиняли годо в проблеме, причиной которой был бы сам движок, а не прокладка между стулом и монитором. Я вот, разрабатывающий уже больше года довольно большую игру на годо, знаю почти все вполне конкретные проблемы этого движка, но ни одну из них ни разу в треде не упоминали. А всё, о чём орут неграмотные школьники и юнитидети, является следствием их собственной тупости и ограниченности, а не проблемами движка.
>>506582 >знаю почти все вполне конкретные проблемы этого движка, но ни одну из них ни разу в треде не упоминали. Да почему же. Все знают, что он не работает на половине андроидов и слабых встроенных видяхах. /sarcasm А у тебя какие проблемы?
1)Простота освоения - есть редакторы сцен, GUI не такой приевшийся как в unity, встроенная поддержка физики, игра скейлится под любое разрешение экрана. Ну и самое важное - он использует Python-подобный язык для программирования с Python на GDScript можно переучиться за час. Python признан во всем мире самым простым языком для начинающих, поэтому если ты считаешь программирование чем-то невероятным или тебя воротит от скобочек (C#, Java, C++ и т.д.), выбирай не задумываясь.
2)Кроссплатформенность - поддерживает Windows, OSX, Linux, iOS, Android, PNaClВеб-приложения от Гугл, PS3, PSVita. На данный момент имеется нестабильный экспорт в Windows Phone, BlackBerry 10 и HTML5.
3)Бесплатность - тебе не придется платить за сам движок, покупать pro версию чтобы разблокировать различные функции, не придется выплачивать проценты с продаж жадным разработчикам. К тому же код движка открыт и даже ты можешь вносить в него изменения.
4)2д - Наиболее сильной частью движка является именно 2д. Имеется отдельный редактор сцен, скелетной анимации как Spine, частиц, физон, паралаксы, полигоны и т.д.
5)3д - Крузис тут не сделаешь, но если собрался делать что-то под мобилки или какую нибудь ouya, то будет в самый раз. По графике примерно как Unity4. Впрочем уже сейчас имеются интересные фишки - визуальный редактор шейдеров как в blender или в каком нибудь платном ассете из того же unity ну и импорт из любого 3d редактора, разумеется.
А так-же куча различных фишек вроде разветвленной анимации, охуеннейшего дебаггера с графиками и статистикой, подсветка синтаксиса прямо в редакторе с автодополнением не хуже sublime text, поддержки интернет протоколов и многое другое, о чем я еще не знаю.
С чего начать?
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то есть варианты русскоязычного перевода части доков на ресурсе конкурирующей фирмы: http://c2community.ru/forum/viewforum.php?f=119
Но вообще, будь мужиком и изучи английский: https://godot.readthedocs.io/en/3.0/index.html
Постижение основ займет совсем немного времени. Я не предлагаю изучать пайтон, это не обязательно. Освой GDScript для начала, там нет ничего сложного. Но если вдруг ты решил, что тебе мало фич движка, то начиная с третьей версии, Годо предлагает несколько вариантов скриптинга, включая визуальный (блупринты) и нативный скриптинг. Нативный скриптинг позволяет тебе скомпилировать библиотеку на своём любимом языке и экспортами вбросить в годо функции, которых тебе так не хватает. Подробности в документации. Так же имеется версия движка с поддержкой си-шарпа через моно-фреймворк.
Занимайся практикой для закрепления знаний. Дальше уже сам поймешь в каком направлении тебе нужно двигаться.
Вместе с движком обязательно смотри примеры, там есть все - от платформера до чата. Примеры качаются прямо в движке через свой магазин.
Скачать движок: https://godotengine.org/download/ или http://store.steampowered.com/app/404790/Godot_Engine/
FAQ: https://godot.readthedocs.io/en/3.0/about/faq.html
Игры, созданные глобальными кириллами: https://godotengine.org/showcase