Это копия, сохраненная 12 января 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
С изучения документации. Если не можешь в инглиш, и даже в гугл-переводчик, то начат перевод официальной документации: 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/
Годнота от анона:
Редактор персонажей на основе makehuman: https://github.com/Lexpartizan/Go_MakeHuman_dot
Все языки в одном месте: https://vk.com/topic-70467171_35982467
Предыдущий тонет там: >>583342 (OP)
Архивы:
1 https://arhivach.ng/thread/207802/
2 https://arhivach.ng/thread/388500/
3 https://arhivach.ng/thread/388501/
4 https://arhivach.ng/thread/388502/
5 https://arhivach.ng/thread/388503/
6 https://arhivach.ng/thread/432708/
7 https://arhivach.ng/thread/433902/
8 https://arhivach.ng/thread/436355/
9 https://arhivach.ng/thread/455461/
Бля ты даун что ли, я тебе говорю бери юнити, пожалеешь сука, короч тебя предупреждали, прибежишь с обосранными портками плакаться, жалеть не будем.
Написано более 10000 постов однотипного говносрача. Поздравляю.
>А ты пытаешься траллировать гондотеров в перерывах между прогулками и еблей тяночек? Я правильно понимаю?
>Почему годот такой бездушный?
>Это ты просто безрукий.
>Ну конечно, ЕСТЕСТВЕННО! Сижу на яхте, троллю гондотирав.
>Хотел тебя обоссать, а потом подумал что ты прав, ведь это Хуан называет все нестандартными названиями.
>Хочу вкатится, но мне интересно, а какие вообще игры были созданы на Годоте?
>Смотри в шапке треда.
>В основном уёбищные однотипные пиксельные платформеры.
Тем временем, в ньюфаго треде с обосранными портками бегают только юнитидауны, пока годаны спокойно пилят игры.
Какое отношение анимешные картинки имеют к гондОте? Вы там от совсем безыгорности обезумели?
Лолшто, агрессивный шизик. Я спрашиваю почему в ОП-постах игрового движка в гд аниме-картинки.
Придумал персонажа для новой игры: юнитипетушок-игропруфстер. Требует предъявить ему игры. Когда показываешь ему кейс, он кукарекает "ваши игры не игры!"
Давайте подумаем, возможно ли, чтобы студия хотя бы АА-класса выбрала годот в качестве движка для своей игры?
Тут в прошлых тредах проскакивали ссылки на чела, который брался пилить форк годота, ибо Хуан сделал какие-то там списки через кучу, а не массивы через стек, или что-то такое. Уточните, кто знает?
То есть, если профи залезет в сорцы годота с аудитом, то он предположительно охуеет и пошлёт нахуй?
Студия АА-класса будет писать свой велосипед.
https://www.executionunit.com/blog/2017/07/14/in-defence-of-writing-your-own-engine/
Не все. Далеко не все.
>Вот есть у меня две ноды с нулями в одной глобальной точке. Нода А вращается произвольно, а нода Б фиксирована. В ноде Б есть произвольный вектор В. Мне надо, чтобы этот вектор после задания дополнительно поворачивался на поворот ноды А.
Смотри какую штуку я нашел.
https://docs.godotengine.org/en/3.1/classes/class_remotetransform.html#class-remotetransform
То есть можно сделать так: у тебя есть нода А и нода Б, которые вращаются произвольно. Но в ноде Б ты заводишь промежуточную ноду Б' и переносишь туда ее остальной контент.
Потом добавляешь в ноду A RemoteTransform, в свойствах задаешь путь к ноде Б', и ставишь галочками переносить только повороты.
Сам не пробовал, отпишись если поможет.
>чела, который брался пилить форк годота
>если профи залезет в сорцы годота с аудитом, то он предположительно охуеет и пошлёт нахуй
Л - логика.
Да, за будущее годота можно быть спокойным - игр как не было, так и не будет, баги не поправят, зато каждый релиз будут новые модные фичи, как у юпити. Потому что багфикс потом сложно продавать. Ты же не выкатишь релиз, в котором список изменений будет состоять из "пофикшены глитчи физики, пофикшен редактор анимаций, который рандомно не сохранял изменения на выходе, пофикшены микрофризы и статтеринг". Тогда донатеры задумаются, "а что, годот был забагованным говном?" Они просто не в курсе, они ведь игры не делают на годоте.
А вот какой-нибудь НОВЫЙ МЕГА РЕНДЕР НА ПУКАНЕ хорошо продается.
Глядишь, скоро AR/VR подвезут, ECS и прочую модную шелуху.
> Глядишь, скоро AR/VR подвезут, ECS и прочую модную шелуху.
АР/ВР уже есть ващета. А ЕЦС уже вышел из моды.
Ну что ты горишь то. Баги фиксятся, игры делаются. Да и какая конкретно тебе выгода от количества игр? Благодаря рендеру на вулкане, годот сможет в 3д (лучше чем сейчас по крайней мере).
>Благодаря рендеру на вулкане, годот сможет в 3д (лучше чем сейчас по крайней мере).
Но зачем мне хуевое 3д, которое будет работать только на топовом железе последних лет, когда есть анрил и юнька, которые работают хоть на некроноуте 10 летней давности?
Хороший вопрос, хотя юньку ты зря упомянул. Там 3д хоть и лучше текущего годотовского, но тоже хуевое. Анрил же может не всегда иметь такую мягкую ценовую политику, как сейчас. Да и про сторонников опенсорса забывать не стоит. Опенсорсых движков с приличным 3д нет (ну или почти нет). Хуже от того, что годот попробует занять эту нишу, никому не будет.
Да пусть занимает, я к тому, что Хуан выбрал неправильный вектор. Надо вместо рендера на пукане было запилить нормальный рендер под десктоп на opengl 3.3, чтобы оно работало и на встроенных видюхах, и на десятилетних. Потому что если 3д и будут пилить на годоте, скорее всего это будет лоу поли индюшатина, и странно, что у таких игр будут системные требования уровня последних AAA игр.
>Надо вместо рендера на пукане было запилить нормальный рендер под десктоп на opengl 3.3, чтобы оно работало и на встроенных видюхах, и на десятилетних.
Возможно. Но что-то мне подсказывает, что на вулкане шансов запилить хороший рендер больше. А для 2д, лоу-поли и древних девайсов останется OpenGL ES 2.0 (по словам анона).
Вы заебали форсить этот опен сорс. Все равно Хуан не принимает пулл реквесты на изменение движка. Все равно и его шестерки пилят его, никого не подпуская, чтобы собирать донаты. Толку от этого опен сурса.
Карго культисты ебаные, для вас терми "опен сурс" обладает каким-то непонятным, магическим смыслом.
>Надо вместо рендера на пукане было запилить нормальный рендер
Надо было рендер вынести в абстракцию и подключать любые рендеры как модули. Хуйлан такое не умеет к сожалению. У него все захардкожено с зависимостями по всему движку. Почему ты думаешь он переписывает с gl es 2 на 3, потом опять на 2, потом на vulkan уже 4 года? Он ебанутый анскилльный велосипедист.
А нормальный разработчик бы просто взял bgfx.
Двачую. Я лучше выберу движок с фичами, чем движок без фич, зато опен сурс. Мне от этого опен сурс ни холодно ни жарко.
Больше достоинств у движка нет, вот и форсят опен сурс как что-то хорошее.
>Толку от этого опен сурса.
Ну как минимум: нет необходимости платить, можешь использовать как хочешь и менять исходники. Какой тебе еще толк нужен?
>нет необходимости платить
Я и так не плачу за юнити
Нет, смысл опен сурс в распределении работы. Вместо того, что каждая контора самостоятельно пишет весь свой код, код делается общественным. Теперь вместо дублирования одного и того-же кода, все конторы пилят и улучшают один общий проект. Эффективность налицо. Они все равно делают это из экономических соображений. Большинство коммитов во все опен сурс проекты всегда делается профессиональными программистами из больших корпораций. Просто совместная разработка для корпораций дешевле и эффективнее.
Никогда обычные пользователи не полезут в код опен сурса и не станут его переписывать. Это миф.
А от того что Хуан выложил исходники на гитхаб, не делает годот опен сурс проектом. Потому что он разрабатывается по классическому проприетарному принципу, где авторы пилят все сами.
То есть годот ничего не берет от опен сурса (не использует существующие опен сурс проекты) и ничего не дает опен сурсу (не коммитит в опен сурс проекты, не позволяет использовать части движка для каких-то других проектов, потому что движок - монолит).
Годот для мира опен сурс разработки как бы не существует.
>Нет, смысл опен сурс в распределении работы.
Ну это для тебя. Для меня - это как раз возможность легально не платить и менять под себя.
>А от того что Хуан выложил исходники на гитхаб, не делает годот опен сурс проектом.
Ладно, допустим, ты меня убедил. У хуана неправильно идет разработка и вообще его опенсорс не опенсорс. Но меня, опять же, как пользователя, волнует конечный результат. Назови мне движков с правильным опенсорсом, которые превосходят годот по возможностям. Я присмотрюсь.
У тебя серьезные проблемы с логикой. Ядро линукса тоже ничего не берет из оперсорса, и использовать его потом можно как монолит - линукс тоже не опенсорс?
>А нормальный разработчик бы просто взял bgfx.
Услышал модно слово и повторяет как попугай. Ты его попробуй собрать для начала, это такое же васянское говно. Сначала тебе надо скачать васянскую билдсистему. Потом васянские зависимости. Потом васянские классы имиджей. Потом писать все на васянском языке шейдеров, которые шаг влево шаг вправо крешатся на реальных видюхах.
>Все равно Хуан не принимает пулл реквесты на изменение движка.
Че еще спизданешь? Тебе хоть доплачивают за пеар юньки?
И вместо того чтобы двум васянам объединить силы, каждый пилит свое багованное говно отдельно. На выходе получаем вместо одного хорошего продукта две неюзабельные параши с одинаковыми функциями. Классика.
> менять под себя.
Ну и много ты там под себя изменил? Почему я на 99.99% уверен, что ты если и открывал код годота, то тут же его закрывал и больше не открывал?
Линукс это ядро. Небольшой компонент операционной системы. Тут как раз хорошо реализован принцип опен сурса за счет модульности. Это никакой не монолит Само по себе ядро вообще ничего ге делает. Линукс это что-то уровня bgfx как раз.
Я не про сами движки, а про игры на них. И игры на юнити прекрасно работают на некрожелезе, не надо пиздеть. У анрила похуже с этим дела, но тоже в целом неплохо, ему не нужны топовые видеокарты с поддержкой пукана, ему directx 10-11 за глаза хватает.
>а про игры на них. И игры на юнити прекрасно работают на некрожелезе
И я про игры. У меня на 10-летнем некрожелезе или греют видяху до 100 градусов (то есть неюзабельны), грузят уровни по 10 минут (на ssd), а игры примерно после 2017 года просто не работают (рисуют черный экран с глитчами). Так что идешь нахуй со своим пиздежом про швитой унете.
Ясно, ты просто демагог. По таким правилам я тоже умею.
Вот список переиспользуемых в годоте опенсурс библиотек: arkit, assimp, bullet, csg, enet, freetype, mbedtls, mono, opensimplex, tinyexr, upnp. Значит ты пойман на пиздеже раз.
Ты сирожа - это два.
А еще он использует опен сурс компилятор, чтобы билдить годот!
Я что писал, что в годоте нет ни одной опенсурс библиотеки? Сам что-то придумал, сам опроверг.
Хуан не использует опен сурс там, где его нужно было бы использовать.
Ты правда не понимаешь недостаток Хуановского подхода к разработке движка? Не понимаешь, какие преимущества опенсурс дает?
Ну подумай, что Хуан мог бы сделать за эти 4 года полезного для движка, если бы интегрировал bgfx, вместо своего ебанутого велосипедства с рендером.
Сирожа, успокойся, выпей отварчик и возвращайся в корневую директорию. Игры делать.
>Хуан не использует опен сурс там, где его нужно было бы использовать.
А определяешь где нужно у нас лично ты? Ты просто хейтер, если бы он делал bgfx ты бы говорил почему он не взял хуйнянейм вместо этого.
>если бы интегрировал bgfx
Да ты заебал уже с этим куском кала, я тебе все про него расписал
>Ты его попробуй собрать для начала, это такое же васянское говно. Сначала тебе надо скачать васянскую билдсистему. Потом васянские зависимости. Потом васянские классы имиджей. Потом писать все на васянском языке шейдеров, которые шаг влево шаг вправо крешатся на реальных видюхах.
И эти 4 года вместо доработки движка всем бы пришлось копаться в багах bgfx. А при каждом обновлении bgfx опять бы все ломалось.
>Да ты заебал уже с этим куском кала
Это самая популярная библиотека кроссплатформерного рендеринга.
Баги там ты сам выдумал? Ну давай сравним количество issues на гитхабе
>bgfx
>Issues 226
>godot
>Issues 5,000+
Конечно, это баги в bgfx мешают его использовать, ага.
>И эти 4 года вместо доработки движка всем бы пришлось копаться в багах bgfx
К твоему сведению, опенсурс разработка это не только пассивное использование кода, но и процесс общего вклада в разработку. Хуан мог бы исправить баги bgfx, и не только улучшить годот, но и помочь коммюнити bgfx!
Но у Хуана слишком больше ЧСВ, чтобы писать код чужому проекту. Зачем? Лучше свой велосипед писать 4 года. Свое говно, как говорится, не пахнет.
У меня ичип прожарен, и термопаста сменена. Причем тут это? В простое 50 градусов, в нормальных играх 60, в юнитикале - 95.
>Это самая популярная библиотека кроссплатформерного рендеринга.
Популярная среди твоих одноклассниках? Она нигде в серьезных продуктах не используется, это вещь в себе.
>Баги там ты сам выдумал?
Это отзывы тех кто ей пользовался.
>Хуан мог бы исправить баги bgfx
О том и речь. Вместо написания движка все бы сидели и занимались фиксами чужого говнокода.
Юнити с 2017.3 версии отменили поддержку железа десятилетней давности, отбросили DX9. На некропеках теперь только чёрный экран и звук, лол. Хотя DX9 это уже не "10 лет назад", а все 20, 10 лет это уже DX10 минимум.
Помню, было у меня такое на ноуте c корой дуба, горел тогда с чёрных экранов. Игры покупал, но те, которые не шли, откладывал на потом. Ясное дело, что я не был идейным нищебродом, просто ноутбук накладывает серьёзные ограничения на возможность апргрейда.
>Юнити с 2017.3
О, значит я довольно точно определил год.
> игры примерно после 2017 года просто не работают (рисуют черный экран с глитчами).
Еще возможно у тебя термопаста под крышкой чипа высохла. Сними крышку чипа и (только очень аккуратно) привинти радиатор напрямую к чипу. Я так делал на 560 гефосе. После этой процедуры на 20-30 градусов меньше греться стала.
>Причем тут это?
При том, что у тебя волосатый бублик не должен греть видеокарту до таких температур, если все в порядке с охлаждением. Что уж там про игрушки говорить.
Что-то я не туда воюю. Как бы за юнитидауна не приняли.
>Вместо написания движка все бы сидели и занимались фиксами чужого говнокода
А сейчас вместо написания движка все сидят и занимаются фиксами своего говнокода.
Или ты думаешь в Хуановском рендере не будет багов? Ты уже забыл любимую отмазку Хуана про баги в драйверах видеокарты?
>Она нигде в серьезных продуктах не используется
Лол. На этой этой библиотеки разработано игр больше чем на гондОти.
Ты бы хоть в описание заглянул https://github.com/bkaradzic/bgfx
Проблема не в багах хуановского рендера, а в том что по производительности этой хуйней невозможно пользоваться и сам по себе рендер дерьмовый, гипробы каловые. Это его потолок, он уже плакался, что никто не хочет рендер пилить и делиться знаниями, все грозится блог вести по разработке рендера, типо те кто сейчас хуйню допиливают проникнутся и станут рендер улучшать
Даже есть один коммерчески-успешный 2д рогалик https://store.steampowered.com/app/677120/Heroes_of_Hammerwatch/
Зачем нужен годот?
Не говорите "написаны". Игры не пишут, их делают.
Этот процесс включает в себя много не-кода. Левед дизайн, анимации, моделирование, создание сцен, придумывание сценария, геймдизайн, озвучка персонажей.
Ладно. Соскочу на том, что это все написан словами в диздоках, емейлах менеджеров и досках трелло.
> три игры уровня треугольнички
Маняотрицания пошли. Покажи игры из шоукейса гондоти такого же уровня.
Причем у bgfx нет шоукейса и это только малая часть известных игр на нем.
bgfx намного популярнее гондоти
А мне нравится. Я даже хотел сделать тему "Godot #11: Гондотю эдишон", но потом подумал, что могут забанить и не стал так делать.
>Банить за тему
Тоталитарная параша. Поэтому и не рождается новых мемов и вообще так тухло. Тоталитаризм убивает любые творческие проявления.
Это японский распидорасило-чан?
Больной ублюдок
1024x596, 0:08
Хочу понять что делать в скриптах дальше для дополнительных механик.
Например:
по нажатию кнопки взрывать первый выпущенный снаряд или вообще все снаряды,
по нажатию кнопки снаряды копируют направление взгляда и летят туда.
Как положено по документации у меня 3 скрипта:
скрипт игрока со всеми инпутами и движением, прицеплен на капсулу,
скрипт пушки в котором функции стрельбы и смены, прицеплен на ребенка камеры,
скрипт снаряда который двигает его вперед и удаляет.
Где именно прописывать поведение, скрипте оружия или снарядов? Если я хочу выборочно редактировать параметры снарядов то мне придется хранить их списке? Еще надо сделать кулдаун на выстрел, как проверить что прошла 1 секунда?
> по нажатию кнопки взрывать первый выпущенный снаряд или вообще все снаряды,
В скрипте пушки создаётся снаряд в какую-либо переменную, например, var snariad = snariads.instance()
Далее, он отправляется игроку: player.add_snariad(snariad)
В скрипте игрока снаряды хранятся списком: var snariads = [] нулевое значение соответствует первому выпущенному снаряду, крайнее значение (snariads.count - 1) - соответствует последнему. В _процессе скрипт игрока чекает этот лист от последнего к первому (это важно!) и удаляет из списка те снаряды, которые уже не существуют.
Теперь, когда всё готово, мы делаем одну простую вещь: по нажатию кнопки, посылаем команду snariads[0].set_boom_bada_boom() либо for snariad in snariads: snariad.set_boom_bada_boom()
> по нажатию кнопки снаряды копируют направление взгляда и летят туда
Аналогично. Список снарядов уже есть у игрока в скрипте. По нажатию кнопки посылаем снарядам: for snariad in snariads: snariad.look_at(my_gase)
https://docs.godotengine.org/en/3.0/classes/class_spatial.html?highlight=look_at#member-function-description
> как проверить что прошла 1 секунда?
func some_function():
print("start")
yield(get_tree().create_timer(1.0), "timeout")
print("PROSHLA ODNA SECUNDA")
https://docs.godotengine.org/en/3.1/classes/class_scenetreetimer.html
Анон. Есть два выпуклых CollisionPolygon2D которые пересекаются.
Как мне получить полигон их пересечения?
Писать ты это и так будешь в самой пуле. Просто тебе не надо будет самому изобретать велосипеды со списками. А вместо вызова функций будешь посылать сигнал.
То что ему нужно, никто, кроме него не определит.
Ну через группы тоже можно, хотя ящитаю, это (сорри за каламбур) как стрелять из пушки по воробьям. Группы нужны, когда есть множество разнотипных сущностей, которые самостоятельно создаются и уничтожаются разными источниками и логика определенной сущности не может их всех просчитать. Тогда проще завести группы и обращаться к группам. А тут твой потомок спавнит сущности одного вида, которые самостоятельно уничтожаются. Ты имеешь доступ к потомку, потомок имеет доступ к тебе. Проще и быстрее обмениваться ссылками на инстансы, чем ебаться с группами.
Только надо чтобы была функция (метод) "взорвать_ся()" и если через группы, то call_group("пули", "взорвать_ся") если через ВЕЛОСИПЕД СО СПИСКАМИ, то for пуля in пули: пуля.взорвать_ся()
Привет, Анон.
Есть PoolVector2Array с набором векторов. Нужно каждый его элемент скалярно умножить на один и тот же Vector2.
Это можно как-то одной командой сделать?
Или только пилить цикл, по всем элементам массива?
Скорее всего, только циклом. Шаблон обджект пула предписывает только организовывать пулы из объектов. Какие либо действия внутри них пул производить не обязан, только заниматься переиспользованием отработанных в новые.
Впрочем, всё возможно.
>Несколько индусов за стипендию гугла имитироаали бурную деятельность. Ни один за 3 месяца не сделал нихуя. Код в основную ветку естественно добавлен не будет
Я просто не понимаю нахуя юзать годот? Ну говорили же запилите какую-нибудь фичу которой нигде нет, про те же события констрактовские, нет они подпрягли еще какого-то индуса ноды полировать. Их никто не юзает, потому что это тот же гдскрипт только неудобный. Или если в события не можете сделали бы шаблоны, но чтобы реально годные, фпс, рпг, чтобы хоть кто-нибудь реально сказал - вот это говно облегчило мне жизнь. Дрочатся как ебанутые, одно и тоже переписывают. Зайдешь на гитхаб там коммиты сыпятся, движуха какая-то, и так годами, а не происходит нихуя, в каждой области сраная недоделка, говнокопия юнити.
https://github.com/godotengine/godot/issues/30915
Ты просто чмоня без игор, которая не может ни в кодинг, ни в арт. Постарайся смириться с этим.
Как же ты жалок, наивный гондотя.
А у тебя есть пулл реквесты в движок? Если нет, то эти студенты внесли больший вклад.
Использую Годо уже больше трёх лет, есть парочка законченных небольших игр, есть много мелких недоработок от джемов, и ещё пишу(писал) на нём большую полноценную игру(больше половины контента уже реализовано). И вроде бы всё хорошо и замечательно было, пока дело касалось только прототипов или совсем мелких проектов. Вот в чём с Годо никто не сможет потягаться - это со скоростью разработки. Тут вообще конкурентов нет, даже близко никто не валялся. Архитектура движка гениальна в своей простоте, позволяет за считанные минуты набросать костяк проекта любой сложности. Почему я никогда не прекращу пользоваться Годо окончательно, так как хотя бы даже для того же прототипирования равных ему нет.
Но как только ты выбираешься за пределы прототипов и игр больше чем из трёх сцен, начинаются проблемы. И проблемы серьёзные, особенно когда задумаешься о будущем.
1. Ориентация на мобилки. Как следствие - полное отсутствие рендеров для полноценных платформ. Даже банального OpenGL нет, это же охуеть вообще! Не ждите, что ваша игра запустится на старом железе, даже если у вас там пара содомирующих кубов в коробке и больше ничего.
2. Проблемы с производительностью, отчасти и-за первого пункта, подозреваю. Пока ты делаешь прототипы и маленькие игры для себя на своей йоба-тачке, которая покрывает всё это стократным запасом скорости, этого не замечаешь. Но как только начинаешь тестировать коммерческий проект на слабом железе(которого предположительно у 70-80% пользователей) - внезапно охуеваешь от 15фпс на сцене из двух спрайтов на фоне параллакса.
3. Опенсорс. От которого происходит целый ворох проблем, от мала до велика.
Первая - забудьте о простом релизе на консолях. Для этого нужно или самому движок переписывать, или нанимать стороннюю фирму.
Вторая - баги, баги, баги, которые никто не чинит, потому что все заняты добавлением новых ненужных фич, которые в свою очередь добавляют баги, баги, баги. И ладно бы мелкие, так ведь большие серьёзные баги никто не чинит. Я больше года назад завёл тикет на баг редактора, с которым столкнётся каждый, кто вздумает запилить более-менее серьёзный проект. Тикет приняли, разобрали, нашли причину, и... ничего не сделали до сих пор. А баг некисло так портит жизнь разработчику. Но, похоже, я единственный, кто собирался писать на Годо большой проект.
И с одной стороны - "почини сам, это же опенсорс". Но с другой стороны, а зачем мне тогда движок использовать вообще, простите? Мне проще самому писать на своём движке.
Вывод только один - при всех плюса Годо, что называется "not production ready". То есть на нём банально невозможно выпустить большой полноценный проект.
Итого - я переписываю свои мелкие проекты на юнити, а большую игру перевожу на самописный движок на SDL2.
И это очень обидно, потому что мне реально нравится использовать Годо.
Использую Годо уже больше трёх лет, есть парочка законченных небольших игр, есть много мелких недоработок от джемов, и ещё пишу(писал) на нём большую полноценную игру(больше половины контента уже реализовано). И вроде бы всё хорошо и замечательно было, пока дело касалось только прототипов или совсем мелких проектов. Вот в чём с Годо никто не сможет потягаться - это со скоростью разработки. Тут вообще конкурентов нет, даже близко никто не валялся. Архитектура движка гениальна в своей простоте, позволяет за считанные минуты набросать костяк проекта любой сложности. Почему я никогда не прекращу пользоваться Годо окончательно, так как хотя бы даже для того же прототипирования равных ему нет.
Но как только ты выбираешься за пределы прототипов и игр больше чем из трёх сцен, начинаются проблемы. И проблемы серьёзные, особенно когда задумаешься о будущем.
1. Ориентация на мобилки. Как следствие - полное отсутствие рендеров для полноценных платформ. Даже банального OpenGL нет, это же охуеть вообще! Не ждите, что ваша игра запустится на старом железе, даже если у вас там пара содомирующих кубов в коробке и больше ничего.
2. Проблемы с производительностью, отчасти и-за первого пункта, подозреваю. Пока ты делаешь прототипы и маленькие игры для себя на своей йоба-тачке, которая покрывает всё это стократным запасом скорости, этого не замечаешь. Но как только начинаешь тестировать коммерческий проект на слабом железе(которого предположительно у 70-80% пользователей) - внезапно охуеваешь от 15фпс на сцене из двух спрайтов на фоне параллакса.
3. Опенсорс. От которого происходит целый ворох проблем, от мала до велика.
Первая - забудьте о простом релизе на консолях. Для этого нужно или самому движок переписывать, или нанимать стороннюю фирму.
Вторая - баги, баги, баги, которые никто не чинит, потому что все заняты добавлением новых ненужных фич, которые в свою очередь добавляют баги, баги, баги. И ладно бы мелкие, так ведь большие серьёзные баги никто не чинит. Я больше года назад завёл тикет на баг редактора, с которым столкнётся каждый, кто вздумает запилить более-менее серьёзный проект. Тикет приняли, разобрали, нашли причину, и... ничего не сделали до сих пор. А баг некисло так портит жизнь разработчику. Но, похоже, я единственный, кто собирался писать на Годо большой проект.
И с одной стороны - "почини сам, это же опенсорс". Но с другой стороны, а зачем мне тогда движок использовать вообще, простите? Мне проще самому писать на своём движке.
Вывод только один - при всех плюса Годо, что называется "not production ready". То есть на нём банально невозможно выпустить большой полноценный проект.
Итого - я переписываю свои мелкие проекты на юнити, а большую игру перевожу на самописный движок на SDL2.
И это очень обидно, потому что мне реально нравится использовать Годо.
Ты просто чмоня без игор, которая не может ни в кодинг, ни в арт. Постарайся смириться с этим.
>Я больше года назад завёл тикет на баг редактора, с которым столкнётся каждый, кто вздумает запилить более-менее серьёзный проект. Тикет приняли, разобрали, нашли причину, и... ничего не сделали до сих пор.
А рассказать, что за баг или ссылку на тикет кинуть - западло?
Это какая-то паста?
>полное отсутствие рендеров для полноценных платформ
Вут? Почему у меня на железе 10-летней давности работает GLES2? Кстати, имей в виду что игры на юнити 2017+ года на старом железе не запускаются.
>забудьте о простом релизе на консолях.
Вут? Берешь и релизишь, просто сдк в комплекте никогда не выложат.
GLES2 - не полноценный рендерер. На встройках с ним проблемы, он банально не работает на половине, даже новых.
>Берешь и релизишь, просто сдк в комплекте никогда не выложат.
Ну-ка зарелизься-ка на свитч с пруфами. (у меня девкит свитча есть если что)
>>03835
Выбираю оба. Я это и имел в виду - когда игра технически закончена, всё дописано - и архитектура, и все модули, и интерфейс, и метагейм и т.д. Осталось только наполнение контентом - рисовать графику, строить уровни, скриптить врагов, режиссировать катсцены.
>На встройках с ним проблемы, он банально не работает на половине, даже новых.
Так на новых есть GLES3, и будет Вулкан. Чо ты тут клоунаду устраиваешь, лол?
> Я это и имел в виду - когда игра технически закончена, всё дописано - и архитектура, и все модули, и интерфейс, и метагейм и т.д. Осталось только наполнение контентом - рисовать графику, строить уровни, скриптить врагов, режиссировать катсцены.
Так не бывает в принципе в этой жизни. Любая разработка именно "большой" игры выглядит так - геймдизайнер придумывает фичу, левелдизайнеры добавляют ее на уровень, и идут к программистам, потому что средствами игры ее добавить невозможно или возможно только через костыли. И программисты меняют движок. То что ты описал - это фантастика, ну или очень-очень поздняя стадия поддержки ммо, когда ее уже 3 раза перепродали и разработчиков нет вообще, есть только пара срипткидди в поддержке.
В документации годота прямым текстом написано, к кому обратиться чтобы получить порт на свищ. https://godotengine.org/qa/30450/proposal-for-nintendo-switch-support-for-godot
> 1. Ориентация на мобилки. Как следствие - полное отсутствие рендеров для полноценных платформ. Даже банального OpenGL нет, это же охуеть вообще! Не ждите, что ваша игра запустится на старом железе, даже если у вас там пара содомирующих кубов в коробке и больше ничего.
Почему компы слабее мобилок?
> 2. Проблемы с производительностью, отчасти и-за первого пункта, подозреваю. Пока ты делаешь прототипы и маленькие игры для себя на своей йоба-тачке, которая покрывает всё это стократным запасом скорости, этого не замечаешь. Но как только начинаешь
В большинстве игор есть меню настроек графики, где можно подобрать себе параметры по своему железу. Почему ты так не делаешь?
> 3. Опенсорс. От которого происходит целый ворох проблем, от мала до велика.
> Первая - забудьте о простом релизе на консолях.
Чтобы релизиться на консолях, нужно заплатить деньги за СДК. Затем свою игру надо адаптировать к СДК. В прошлых тредах была инфа, что есть фирма, которая всё это сделала и продаёт уже готовые шаблоны экспорта, по цене: стоимость СДК + маржа за свою работу.
> Вторая - баги, баги, баги
> "почини сам, это же опенсорс". Но с другой стороны, а зачем мне тогда движок использовать вообще, простите?
Потому что починить это бысрее, чем пилить свой велосипед. Впрочем
> самописный движок на SDL2
Раз у тебя уже есть свой велосипед, тебе проще, конечно.
В итоге, что я могу сказать. Разработай себе универсальный подход, при котором ты клепаешь быстрый прототип на годоте, получаешь краудфандинг, а затем резко перебрасываешь весь контент в аналогичный проект на юнити и заканчиваешь игру на нём.
Впрочем, если изучил шарп, и минимально ознакомился с юнити, то кроме неотключаемого сплеша, у него минусов нет. Я недавно озвучивал свои мысли вслух в юнититреде по данному вопросу. Он делает годот по всем пунктам. Скорость разработки - это твой личный импринтинг. Набросать сцену с ебущимися кубами в юнити ничуть не дольше,чем в годоте. При этом, каждый куб может на себе носить несколько скриптов. И вообще, принцип списка компонентов уделывает принцип дерева: пока годот в дереве рекурсивно ветви обходит, юнити уже быстро пролетел по одноранговому списку компонентов и выдал результат.
Увы и ах. Самые удобные человеку вещи оказываются самыми неудобными машине. Это удобно, когда ты бросил риджидбади, ему в потомки бросил спрайт и коллижншейп, но не менее удобно, когда ты бросил геймобджект, ему в компоненты бросил риджидбади, коллайдер и спрайтрендерер. Разница минимальна, а выигрыш в скорости заставляет задуматься.
В годоте ты вынужден следить, чтобы не подвигать мышкой ноду коллизии относительно родительской ноды тела, в юнити этой проблемы нет. Компонент коллизии просто не имеет координат, они ему не нужны, он не существует в памяти как полноценный геймобъект (у которого одного как раз координаты есть), он только задаёт форму коллизии своему хост-объекту. То же самое и о спрайте.
> 1. Ориентация на мобилки. Как следствие - полное отсутствие рендеров для полноценных платформ. Даже банального OpenGL нет, это же охуеть вообще! Не ждите, что ваша игра запустится на старом железе, даже если у вас там пара содомирующих кубов в коробке и больше ничего.
Почему компы слабее мобилок?
> 2. Проблемы с производительностью, отчасти и-за первого пункта, подозреваю. Пока ты делаешь прототипы и маленькие игры для себя на своей йоба-тачке, которая покрывает всё это стократным запасом скорости, этого не замечаешь. Но как только начинаешь
В большинстве игор есть меню настроек графики, где можно подобрать себе параметры по своему железу. Почему ты так не делаешь?
> 3. Опенсорс. От которого происходит целый ворох проблем, от мала до велика.
> Первая - забудьте о простом релизе на консолях.
Чтобы релизиться на консолях, нужно заплатить деньги за СДК. Затем свою игру надо адаптировать к СДК. В прошлых тредах была инфа, что есть фирма, которая всё это сделала и продаёт уже готовые шаблоны экспорта, по цене: стоимость СДК + маржа за свою работу.
> Вторая - баги, баги, баги
> "почини сам, это же опенсорс". Но с другой стороны, а зачем мне тогда движок использовать вообще, простите?
Потому что починить это бысрее, чем пилить свой велосипед. Впрочем
> самописный движок на SDL2
Раз у тебя уже есть свой велосипед, тебе проще, конечно.
В итоге, что я могу сказать. Разработай себе универсальный подход, при котором ты клепаешь быстрый прототип на годоте, получаешь краудфандинг, а затем резко перебрасываешь весь контент в аналогичный проект на юнити и заканчиваешь игру на нём.
Впрочем, если изучил шарп, и минимально ознакомился с юнити, то кроме неотключаемого сплеша, у него минусов нет. Я недавно озвучивал свои мысли вслух в юнититреде по данному вопросу. Он делает годот по всем пунктам. Скорость разработки - это твой личный импринтинг. Набросать сцену с ебущимися кубами в юнити ничуть не дольше,чем в годоте. При этом, каждый куб может на себе носить несколько скриптов. И вообще, принцип списка компонентов уделывает принцип дерева: пока годот в дереве рекурсивно ветви обходит, юнити уже быстро пролетел по одноранговому списку компонентов и выдал результат.
Увы и ах. Самые удобные человеку вещи оказываются самыми неудобными машине. Это удобно, когда ты бросил риджидбади, ему в потомки бросил спрайт и коллижншейп, но не менее удобно, когда ты бросил геймобджект, ему в компоненты бросил риджидбади, коллайдер и спрайтрендерер. Разница минимальна, а выигрыш в скорости заставляет задуматься.
В годоте ты вынужден следить, чтобы не подвигать мышкой ноду коллизии относительно родительской ноды тела, в юнити этой проблемы нет. Компонент коллизии просто не имеет координат, они ему не нужны, он не существует в памяти как полноценный геймобъект (у которого одного как раз координаты есть), он только задаёт форму коллизии своему хост-объекту. То же самое и о спрайте.
А все потому, что объект с приделанным коллижншейпом должен быть отдельной сценой, тогда и проблем со сдигом мышкой не возникнет.
Нодеву-то виднее, конечно.
А вообще мне похуй. Я табличку возле разложенных граблей вывесил - и умываю руки. А наступать ли на них - ваше дело. Мне лично шишки набивать надоело.
Да вам и беспокоиться не о чём, впрочем, всё равно тут никто никогда до этих граблей не доберется.
Так-то да. Но даже бесконечно вложенные сцены юнили уже украл как нестедпрефабс. Проклятие опенсорса: наработки уносят в слозесорс и делают бабки.
Это как бы и так было всем очевидно. Ты думал что гондотиры сейчас прочитают твой и скажут "ммм, ты прав! все переходим на юнити, посоны!".
Им уже десятки тредов объясняют очевидные истины, но они продолжают жить в своем манямирке.
>В большинстве игор есть меню настроек графики, где можно подобрать себе параметры по своему железу. Почему ты так не делаешь?
Объясни, как сделать это на Годоте. Алсо объясни, как исправить настройками графики низкую производительность скриптов и пайплана рендерера?
> как сделать это на Годоте
Делаешь новую сцену с корнем Control и делаешь меню. Значения берёшь из ProjectSettings, всякие там антиалиасы и прочее. Сюда же помещаешь настройки ЛОД, размеров текстур и т.п. Это очень большая работа, но если мы говорим о большом ерьёзном проекте, эту работу делать надо.
> как исправить настройками графики низкую производительность скриптов
Шарпом, крестами.
> и пайплана рендерера
Переходом на юнити, в котом вулкан есть уже сегодня и ждать не надо.
Да просто мне реально обидно, потому что во всём остальном-то движок действительно хороший, и мне вообще очень нравится.
Но блджад, вот пилил я на нём два года игру мечты, и, когда впереди забрезжил свет окончания работ, начал потихоньку готовиться к релизу, собрал демку, пошёл тестировать на парке машин, и внезапно понял, что релизить-то не получится. И это пиздец.
> нодеву
Чувак, я какбе на EA еще 10 лет назад работал. Ну и потом ты оче упрощаешь картину, рассуждая о 2д онли. У 2д так то с опенсорс движками нет конечно.
Можно спиздить настройки из tps демо или какого тр другого примера, опенсурс же
У тебя всё на гдскрипте?
>ни разу за 2 года не давал знакомым или друзям потестить и поэтому не столкнулся с проблемами запуска
>за пару дней перевел все на юнити
Прохладно. Ты когда в следующий раз набрасывать будешь, попробуй сочинить что-то правдоподобное.
>Я это и имел в виду - когда игра технически закончена, всё дописано - и архитектура, и все модули, и интерфейс, и метагейм и т.д. Осталось только наполнение контентом - рисовать графику, строить уровни, скриптить врагов, режиссировать катсцены.
То есть в годоте муторно добавлять горы контента?
Никак ты их не исправишь.
Можно. Покажи как ты это делаешь на своём движке, а я покажу, как это сделать в годоте.
> скриптомакака
И снова мимо.
> отличие от одиночки
Ну так это ты начал про большие проекты затирать.
> своих проектов у тебя нет
Ох уж эти проекции.
Да там фантазер залетный из юнити треда. Конкретных багов он так назвать и не смог.
Ты лучше разберись с полигонами. А точнее у тебя в 99% будет один rectangle.
Вообще-то я подразумевал код показать. То, что на гифке я бы делал через one way collision
https://godot.readthedocs.io/en/latest/classes/class_collisionshape2d.html?highlight=collisionshape2d#member-variables
Так считают все, в общем-то, кроме упоротых фанбоев этого дерьма, дрочащих на ascii-символы и процедурные кулстории.
А какое отношение имеет Dwarf Fortress к твоему проекту? Да и говорить про DF смешно, во-первых его давно обогнали всякие успешные rimworldы, во-вторых с точки зрения gamedev это полная противоположенность того что ты описал, в DF вообще считай нет графики уровней и моделек, а именно код там постоянно пишется.
>во-первых его давно обогнали всякие успешные rimworldы
Римворлд - бездушный выблев на юнити, в котором нет и 5% от фич и интерактивностей из dwarf fortress.
"Обогнать" df этот кал может только в фантазиях пикрилейтеда, видимо ты на него чем-то похож.
Как иронично. DF это игра, которую пилят годами прямо как гондотиры, она не вышла даже в ёрли-аксесс. А РимВорлд на юнити просто взяли и запилили, да еще и с графоном сразу, и давно продают за $35 баксов.
Так там уже сколько возможностей
Графон уровня римворлд это скорее минус чем плюс, вырвиглазное ноу-скилл говно без анимаций. Уж лучше ascii арт, чем такой кал.
>А РимВорлд на юнити просто взяли и запилили, да еще и с графоном сразу, и давно продают за $35 баксов.
Просто взяли и запилили унылое говно, в попытках срубить бабла на фанах df, и это говно даже близко не стоит с оригиналом. То, что продают - молодцы, но это не делает игру лучше и глубже, чем df.
А если для тебя финансовый успех - единственный критерий для оценки игры, то можешь не переживать за df, их авторы вполне себе безбедно живут на донаты от фанов уже не первое десятилетие.
>Уж лучше ascii арт, чем такой кал
Нет, лучше нормальные читабельные иконки, чем кодированные символы, для понимания которых нужно заучивать таблицу кодировки в памяти. Это лишнее препятствие для игрока, негативный UX.
> лишнее препятствие для игрока, негативный UX
Спец по юзер экспириенсу? Можешь накидать примеров качественного интерфейса?
Сложный вопрос. Тебе нужно использовать широковещательные пакеты, но есть ли их реализация в годот? Это гуглить надо.
Охуенно же, самая настоящая лампота.
Ну да, каша ещё та, но у df-щиков cвоя атмосфера, зря ты к нему доебался. О вкусах не спорят.
>>03979
Это читал?
https://docs.godotengine.org/ru/latest/tutorials/networking/high_level_multiplayer.html
Конечно читал, для этого и ищу как бы IP подслушать, чтобы приконнеститься
Ты совершенно прав, мой юный друг.
Финансы - совершенно не единственный критерий успеха. На мой взгляд, главный критерий - сколько игроков играет.
Ну, прямых цифр нам никто конечно не выдаст. Но мы можем косвенно оценить по движухе вокруг.
Тем на реддите с нового года о RW - 24,156, df - 4,221 (в 5 раз меньше)
Постов о RW - 326,654, df - 68,857
Каналов на твитче о df - 3 штуки с 30 просмотрами, RW - 8 c 340 просмотрами, и так далее. Можно долго продолжать, но картина ясна.
И главное, мне все еще непонятно, зачем было приводить df как пример "игрового проекта".
>Godot
Пиздот, этих чмошников еще с борды не попёрли? Какого хуя, админы, куда вы смотрите? Ебать
Короче, разобрался. Спасибо огромное >>03986 что сказал, в какую сторону гуглить. Короче, вот:
Хост:
Хост в ready делает массив IP-адресов для трансляции:
for address in IP.get_local_addresses():
var parts = address.split('.')
if (parts.size()==4):
parts[3]='255'
var tempIP=parts.join('.')
if tempIP!="127.0.0.255":
IPs.push_back(tempIP)
Тут я исключил 127.0.0.1(255) потому что он вызывал какие-то проблемы (уже не помню какие)
Далее в process() хост создаёт PacketPeerUDP и отправляет пустой PoolByteArray - "data" поочерёдно на все свои IP-адреса, которые подготовил ранее. 4242 в данном случае - порт, но он может быть любым:
var udp= PacketPeerUDP.new()
for IP_ad in IPs:
udp.set_dest_address(IP_ad, 4242)
udp.put_packet(data)
Клиент:
Клиент ТОЧНО ТАК ЖЕ собирает массив всех своих IP адресов (на мобилках он обычно всего один, помимо 127.0.0.1) с 255 на конце в ready(). Тупо используйте тот же код.
И в process() клиент тоже создаёт себя как PacketPeerUDP и слушает по всем своим IP из массива отосланный пакет, при получении которого записывает IP хоста в переменную. 4242 - опять порт, может быть любым. 65536 - дефолтное значение размера буфера.
var client = PacketPeerUDP.new()
for IP_ad in IPs:
client.listen(4242,IP_ad,65536)
client.get_packet()
HostIP=client.get_packet_ip()
Ещё раз большое спасибо >>03986 за наводку.
Короче, разобрался. Спасибо огромное >>03986 что сказал, в какую сторону гуглить. Короче, вот:
Хост:
Хост в ready делает массив IP-адресов для трансляции:
for address in IP.get_local_addresses():
var parts = address.split('.')
if (parts.size()==4):
parts[3]='255'
var tempIP=parts.join('.')
if tempIP!="127.0.0.255":
IPs.push_back(tempIP)
Тут я исключил 127.0.0.1(255) потому что он вызывал какие-то проблемы (уже не помню какие)
Далее в process() хост создаёт PacketPeerUDP и отправляет пустой PoolByteArray - "data" поочерёдно на все свои IP-адреса, которые подготовил ранее. 4242 в данном случае - порт, но он может быть любым:
var udp= PacketPeerUDP.new()
for IP_ad in IPs:
udp.set_dest_address(IP_ad, 4242)
udp.put_packet(data)
Клиент:
Клиент ТОЧНО ТАК ЖЕ собирает массив всех своих IP адресов (на мобилках он обычно всего один, помимо 127.0.0.1) с 255 на конце в ready(). Тупо используйте тот же код.
И в process() клиент тоже создаёт себя как PacketPeerUDP и слушает по всем своим IP из массива отосланный пакет, при получении которого записывает IP хоста в переменную. 4242 - опять порт, может быть любым. 65536 - дефолтное значение размера буфера.
var client = PacketPeerUDP.new()
for IP_ad in IPs:
client.listen(4242,IP_ad,65536)
client.get_packet()
HostIP=client.get_packet_ip()
Ещё раз большое спасибо >>03986 за наводку.
Ебать странное заявление. Тред школьников, про школьный движок, и эти школньики называют взрослых людей школьниками, за то что хотят потереть их филиал скрэтч мит
Школьник, от того что ты сыплешь матом, ты взрослее выглядеть не начнешь.
> я исключил 127.0.0.1(255) потому что он вызывал какие-то проблемы (уже не помню какие)
Это же loopback интерфейс, который если попытаться перевести "петлевзадый". Он настолько локальный, что не выходит за границы компа (устройства). Следовательно, сети на нём быть не может. Кроме такого варианта, когда на 127.0.0.1 сидит программный прокси-сервер (антивирус обычно), который подглядывает в пакеты и затем их перенаправляет в нормальную сеть 192.168.255.255 или 10.255.255.255
А это во что можно превратить?
http://docs.godotengine.org/en/3.0/tutorials/3d/fps_tutorial/part_two.html скрипт animation player'а
func animation_ended(anim_name):
# UNARMED transitions
if current_state == "Idle_unarmed":
pass
# KNIFE transitions
elif current_state == "Knife_equip":
set_animation("Knife_idle")
elif current_state == "Knife_idle":
pass
elif current_state == "Knife_fire":
set_animation("Knife_idle")
elif current_state == "Knife_unequip":
set_animation("Idle_unarmed")
# PISTOL transitions
elif current_state == "Pistol_equip":
set_animation("Pistol_idle")
elif current_state == "Pistol_idle":
pass
elif current_state == "Pistol_fire":
set_animation("Pistol_idle")
elif current_state == "Pistol_unequip":
set_animation("Idle_unarmed")
elif current_state == "Pistol_reload":
set_animation("Pistol_idle")
# RIFLE transitions
elif current_state == "Rifle_equip":
set_animation("Rifle_idle")
elif current_state == "Rifle_idle":
pass;
elif current_state == "Rifle_fire":
set_animation("Rifle_idle")
elif current_state == "Rifle_unequip":
set_animation("Idle_unarmed")
elif current_state == "Rifle_reload":
set_animation("Rifle_idle")
Тут только меняются названия пушки, действия одинаковы euqip, unequip, idle, fire, reload везде.
3 оружия с пятком анимации еще можно так расписать, но с каждым новым добавлением код будет расти в геометрической прогрессии. А после добавления кучи пушек поменять какую то фигню будет муторно. И я хочу в своей игре кучу пушек и больше анимаций для них.
А это во что можно превратить?
http://docs.godotengine.org/en/3.0/tutorials/3d/fps_tutorial/part_two.html скрипт animation player'а
func animation_ended(anim_name):
# UNARMED transitions
if current_state == "Idle_unarmed":
pass
# KNIFE transitions
elif current_state == "Knife_equip":
set_animation("Knife_idle")
elif current_state == "Knife_idle":
pass
elif current_state == "Knife_fire":
set_animation("Knife_idle")
elif current_state == "Knife_unequip":
set_animation("Idle_unarmed")
# PISTOL transitions
elif current_state == "Pistol_equip":
set_animation("Pistol_idle")
elif current_state == "Pistol_idle":
pass
elif current_state == "Pistol_fire":
set_animation("Pistol_idle")
elif current_state == "Pistol_unequip":
set_animation("Idle_unarmed")
elif current_state == "Pistol_reload":
set_animation("Pistol_idle")
# RIFLE transitions
elif current_state == "Rifle_equip":
set_animation("Rifle_idle")
elif current_state == "Rifle_idle":
pass;
elif current_state == "Rifle_fire":
set_animation("Rifle_idle")
elif current_state == "Rifle_unequip":
set_animation("Idle_unarmed")
elif current_state == "Rifle_reload":
set_animation("Rifle_idle")
Тут только меняются названия пушки, действия одинаковы euqip, unequip, idle, fire, reload везде.
3 оружия с пятком анимации еще можно так расписать, но с каждым новым добавлением код будет расти в геометрической прогрессии. А после добавления кучи пушек поменять какую то фигню будет муторно. И я хочу в своей игре кучу пушек и больше анимаций для них.
Впрочем, дам подсказку. В дополнение к коду этой функции (anim_transition) я бы создал файл json, в котором описал бы правила работы конченого аппарата конечного автомата переключения анимаций. Например:
[
{"anim_from" : "pistol_equip", "anim_to" : "pistol_idle"}
]
В дальнейшем я бы не трогая код, редактировал файл правил.
У меня другая идея появилась. Сплитить строчку по нижнему подчеркиванию. Лучше чем быдлокод, но потом придется его заменить потом чем то более быстрым.
Заменил кашу с тутора на это.
var cur_s = current_state.split("_",false, 1)
if current_state == "Idle_unarmed":
pass
elif current_state == cur_s[0] + "_equip":
set_animation(cur_s[0] + "_idle")
elif current_state == cur_s[0] + "_idle":
pass
elif current_state == cur_s[0] + "_fire":
set_animation(cur_s[0] + "_idle")
elif current_state == cur_s[0] + "_alt_fire":
set_animation(cur_s[0] + "_idle")
elif current_state == cur_s[0] +"_unequip":
set_animation("Idle_unarmed")
По идее должно работать, но проверить смогу когда все доделаю.
var cur_s = current_state.split("_",false, 1)
if current_state == "Idle_unarmed":
pass
elif current_state == cur_s[0] + "_equip":
set_animation(cur_s[0] + "_idle")
elif current_state == cur_s[0] + "_idle":
pass
elif current_state == cur_s[0] + "_fire":
set_animation(cur_s[0] + "_idle")
elif current_state == cur_s[0] + "_alt_fire":
set_animation(cur_s[0] + "_idle")
elif current_state == cur_s[0] +"_unequip":
set_animation("Idle_unarmed")
Это я понял, но по какой-то причине, если в массиве вообще есть такой адрес - всё ломается к хуям и for-цикл тупо виснет на нём, не слушая ничего по другим, правильным адресам.
А может, это моя локальная проблема и её надо как-то иначе решить, но мне проще одну строчку для проверки добавить
Обновись до 3.1 и используй AnimationTree, Люк.
https://docs.godotengine.org/en/3.1/tutorials/animation/animation_tree.html
Оп, пасиба
Хмм, а в этой ноде можно будет сделать такую же универсальную конструкцию как в коде? То есть чтоб структура анимаций оставалась та же а пушки менялись.
With AnimationPlayer, Godot has one of the most flexible animation systems that you can find in any game engine. The ability to animate pretty much any property in any node or resource, as well as having dedicated transform, bezier, function calling, audio and sub-animation tracks, is pretty much unique.
Найс самоотсос Хуана. Спиздили все из юнити.
Сомнительно что в унити можно анимировать любое свойство. Впрочем, даже если так, придумали это уж точно не в унити, даже в дремучем флеше подобное было.
Открываешь https://docs.unity3d.com/Manual/animeditor-AnimatingAGameObject.html
@
Ищешь по странице - "You can animate any property"
@
Сасаешь потный хуец Хуана
Тащемта, Хуан много чего пиздит из взрослых движков, новый animation tree почти один в один из анрила спизжен, только более кривой, глючный и с уёбищным интерфейсом, в отличие от анриловского.
> спизжен, только более кривой, глючный и с уёбищным интерфейсом
это обо всём хуановском можно сказать.
редактор материалов? васянка под юич.
анимируй свойства? васянка под юнети.
анимейшн три, ну ты уже сказал тут всё.
что там ещё, а, да, ECS который на самом деле не ECS, тоже с юнети спизжен, и конечно же криво, не даст вешать свои скрипты куда угодно, и вообще НИТО.
>В лучшем опенсорсном движке Годот используется интерфейс лучшего в мире движка УЕ4
>А ВОТ У НАС В ЮНЕТЕ ТОЖЕ ЕСТЬ ГОВЕНИНА
Юнитигной, у вас там реально все так плохо, что вы каждый раз пытаетесь примазаться?
> не даст вешать свои скрипты куда угодно
Тебе не даст. Мне даст. Не твоя - вот ты и бесишься.
>новый animation tree почти один в один из юнити спизжен
пофиксил
в юнити можно анимировать любые поля компонента, которые отображаются в инспекторе
https://www.youtube.com/watch?v=Q41FQT6_LxQ
> реально на Годо создать нечто похожее на вот эту игрульку.
В теории - да. Но никто пока не смог этого сделать.
А учитывая
>опыта в разработке не имею
Скорее всего, ты не сможешь сделать даже один домик из этой игры в блендере, что уж говорить целиком об игре.
Ну, в бляндере я уже работал, и это, пожалуй мой единственный опыт около геймдева, какие-нибудь убогенькие домики понастроить смогу, чтобы в итоге спрятать подобие игры и никому не показывать.
заменить лягушку на годотного йобу
> Суб 04:52:07
Я в такое время сплю.
>>04378
Вполне реально.
Если ты новичок, начни с видосов Сканера
https://www.youtube.com/watch?v=1igO4n4vWoI&list=PLf0k8CBUad-uBels10n74EIGQ45natifs
>Вполне реально.
Почему тогда на гондотю нет ни одной 3д игры?
Ответ очевиден - без окклюжен куллинга невозможно создать что-то масштабом больше стандартной 3д демки. Для полноценной игры это несерьезно.
А анимировать слабо?
Оппик следующего треда
Там заодно 27 из 39 вышедших выпусков американского посольства.
>Хуан не простил годотерам их своеволия. Сурово наказал он их. Беспрерывно делают годотеры игры. Напрягая все силы, разрабатывают они их и, кажется, вот-вот уже сделают игру, но каждый раз годот обновляется и ломается проект. И опять приходится годотерам начинать все сначала. Люди узнали об этом, и с тех пор любую бессмысленную и бесконечную работу называют «годотов труд».
Что это за аутизм? Ты понимаешь, что ты поехавший? Нахуя ты это делаешь?
Какие-то игры для тех, кто тебя обоссывает, какие-то игры для борды из 15 человек. Ты совсем ебанутый? Выйди на улицу, друзей найди и для них хотя бы делай, раз ты такой аутист.
Спасибо за два подписчика дарагие фанаты
Ш - твоя мамка
> а можно в годоте пиксельные коллизии замутить по битовым маскам?
https://www.youtube.com/watch?v=UZu8NwlkXcU
https://www.youtube.com/watch?v=FEiNBVVCq_A
Ну как рекомендует... говорит что его плюсы это, что быстро загружается и не надо устанавливать, поэтому можно таскать с собой на флешке.
Очень интересно.
Уже 100 раз обсосано, окклюжн куллинг в 2к19 никто не использует, потому что он не работает в современных условиях, он работал только в 2000-х в коридорных шутанах, где еще делали S-образные стыки между уровнями чтобы не видно было следующий кусок карты. В годоте будет репроекция глубины, которая на основе предыдущего кадра и сдвига камеры определяет по маске что осталось скрытым и не надо рисовать, это топовая технология для опенворлда и прочего.
В рогаликоподобных играх интерфейс - это клавиатура.
Ну так и великую 3д игру мечты не один год делать
Еще бы. Пилить большую половина движа за бесплатно, пока Хуан собирает все сливки по 12к$ в месяц и нихуя не делает кроме переписывания рендера раз в несколько лет.
Это нужно быть или святым и ебанутым (что одно и то же лол), чтобы писать код годоту.
Это статья за 2017
Опен сурс по аргентински: получать донаты за чужой труд.
Серьезно, какой уважающий себя человек станет слушать мнение каких-то нонеймов с камерой.
У меня вообще автоскрытие постов с ютабом. А ты что, кликаешь по всем ссылкам которые кидают? Хм, это легко заабьюзить.
А ну, рискни.
https://youtu.be/VsORkaq9MRo
Тут встает более глобальный вопрос, можно ли считать данное интерактивное 3д приложение игрой.
Ведь даже куб без текстуры на пустой сцене, на который навесили скрипт перемещения стрелочками, технически можно назвать игрой на годоте.
Ты чего какой злой? У тебя тоже отсутствие игр уровня гондотю?
1024x600, 0:27
>>03162
Сделал через группы, потому что хз как чистить списки.
Какие в группах есть способы выбора конкретного элемента?
>>03084
Сделал кулдаун через таймер, потому что стрельба в скрипте пушки одноразовая и этот илд исчезает, а помещать его в общий скрипт не хочу, вдруг весь инпут встанет.
Что не так с поворотом у камеры? Чтоб снаряды поворачивались по взгляду пришлось добавить
camera_rot.x *=-1
camera_rot.y += deg2rad(180)
Без этого поворот был в обратную сторону.
Я менял в инспекторе поворот, эффекта ноль. Камера смотрит по оси z, снаряд тоже.
Что за симулятор летучих хуев ты делаешь?
Не, я не спорю, для гондота игра в самый раз, просто непонятна лично твоя мотивация.
Иди нахуй.
Это будет шутер. А эти штуки это ракеты, я их просто замедлил чтоб легче было проверять работу.
Tckm Есль цель сделать ракету, как в халфе второй, когда ракеты летят, куда ты ракетницей указываешь, то нужно не мгновенно менять направление, а интерполировать от старого к новому положению вектора.
> в годоте "if нода" проверяет объект на существование?
if expression возвращает тру, если expression не null для ссылочных типов, не ноль для числовых, не пустая строка для строковых.
>Вообще-то я подразумевал код показать.
Забей. Смысл был в том, что есть ли в годоте _встроенные_ средства для построения побитовых масок из спрайтов-объектов и возможность работы с ними. Если их нет, то написать на шарпе или плюсах я подобие своего движка я и сам смогу.
>>03908
>То, что на гифке я бы делал через one way collision
Это только частный случай. Там дофига других необходимых вещей есть, которые через полигоны жопошно определять. Ну и плюс это работать должно в разы быстрее чем через полигоны.
------
Но я собственно уже сделал пока свой костыль через Physics2DDirectSpaceState и массив лучей. Потом что-нибудь получше придумаю.
------
Это совсем не то. То что ты принес, это просто маски слоев для коллизий. Я имел ввиду спрайтовые маски, с которыми можно совершать разные побитовые штуки, как минимум проверку на пересечение по AND.
Он хочет pixel perfect collisions, но ведь сейчас не 1980, это создаст игроку больше неудобств чем улучшений.
>Где об этом почитать? Я конкретно не понимаю, о чем ты.
Говорю же забей. Если не знаешь, что это, то оно тебе и не нужно.
Я честно говоря даже не знаю где-бы это нормально описывалось, так чтобы понятно было.
Если вкратце. То берешь спрайты из которых у тебя тайлмап строится и делаешь с них черно белую маску, обычно через альфу, но есть и другие способы. Со спрайта игрока так же делаешь такую-же маску, либо в большинстве случаев лепишь простой AABB и коллизии проверяются побитовым сравнением этих двух изображений или прямоугольника с маской. Если часть маски попадает в прямоугольник вот это и есть твоя коллизия.
Если реализовать механизм правильно, на низком уровне, то работать будет быстрее чем, через полигоны. Ну и всякие плюшки, вроде тотальной разрушаемости ландшафта (типа как в игре Worms), проще работа с кривыми поверхностями (конкретно кривыми), проще рабоать если нужно, чтобы игрок проходил внутрь поверхностей и т.д.
---------
>>04941
>Он хочет pixel perfect collisions, но ведь сейчас не 1980
К сожалению да.
>>04941
>это создаст игроку больше неудобств чем улучшений.
Игроку вообще похуй будет, он даже знать не будет, что и как у меня там реализовано будет.
Игроку будет не похуй, когда он будет застревать в совершенно нелепых местах, и умирать от совершенно левых столкновений, даже в 1980х это начали понимать и научились проверять прямоугольные хитбоксы до того как отработает хардверный спрайт.
1024x600, 0:14
Это не проблема механизма коллизий, это уже вопрос гейм- и левелдизайна. Можно и в полигонах нахреначить такого, что игрок охуеет.
Надо просто маску коллизий создавать не фактически со спрайтов, а как дублирующую подложку где заложены нужные для коллизий формы с обрезанной шелухой.
> Говорю же забей. Если не знаешь, что это, то оно тебе и не нужно.
Судя по описанию, писечка вкусная.
Есть пруфы, что это быстрее полигонов и, главное, быстрее параметрических коллизий, типа капсулы, круга, шара?
А какой смысл делать пиксель перфект? У тебя гигантское простанство? Разрушаемость? Если у тебя обычный платформер то ты разницы с квадратными коллизиями не заметишь
>Разрушаемость?
Была идея, но я уже забил.
>>05089
>Если у тебя обычный платформер то ты разницы с квадратными коллизиями не заметишь
Заметил. То что раньше делалось простой проверкой на глубину проникновения или расстояния до поверхности, приходится делать через жопный костыль с массивом рейкастов. Но это похоже косяк годота, т.к. в нем метод intersect shape в direct_space_state похоже вообще не рабоатает. По крайней мере мне не удалось его заставить, вообще хоть что-нибудь выдать.
> дешевле вычислений с плавающей точкой
Я вас умоляю, коллега. В век 8-ядерных штеудов заниматься байтоёбством? Ради чего? Ради кого? Ваш личный загон - уважаю, ничего не имею против. Битовые операции вложены в гдскрипт, дерзайте, велосипедьте. Но не советую требовать подобный функционал искаропки.
И даже они будут в разы дешевле, операций с плавающей точкой.
-----------
Но опять же это все болтология. Если это не реализовано на низком уровне, то пытаться сделать это на том же gdscript - гиблое дело, будет медленнее
>Но не советую требовать подобный функционал искаропки.
Да я не особо и митингую по этому поводу. Просто грусть-печалька по поводу проебанных возможностей. Ясен пень, что я на полигонах смогу приспособиться (вернее можно сказать уже).
-------------
Так вперед, модуль на c++ пишется за полдня.
Чушь пишешь. Чтобы проверить AABB коллизию? тебе нужно сравнить несколько чисел. Для пиксельных коллизий тебе нужно перебирать все пиксели.
Не, ну так то он может и прав быть. Для того чтобы проверить AABB там вначале отработает несколько if-ов в ООП, чтобы узнать что у нас именно AABB а не произвольный многоугольник под произвольным углом, и математика действительно будет во флоатах, а не интах. А для пикселей не нужно перебирать все, можно сравнивать например целые байты, а то и слова, по and. А может и в опенгл есть какая-то функция, узнать о наложении уже постфактум после рисования? Правда, это может создать неудобства в логике (надо будет откатывать обратно если с чем то столкнулся)
Вокруг ААББ в годоте сооружён целый класс, может там есть методы для чека пересечений?
Нет, для пиксельных коллизий тебе придется перебирать все не пустые пиксели по площади спрайта, получать мировые координаты этого пикселя, выбирать значения из массива-маски по этим координатам и сравнивать. Чем больше площадь спрайта, тем тормознее будут твои коллизии.
Для AABB тебе всегда нужно просто сравнить несколько чисел. float, byte, не имеет значения. Ты думаешь что современные долго считают флоаты? Для современных процессоров боттленеком является невозможность распаралеллить инструкции для пайплайна, и миссы кеша.
>для пиксельных коллизий тебе придется перебирать все не пустые пиксели по площади спрайта, получать мировые координаты этого пикселя, выбирать значения из массива-маски по этим координатам и сравнивать.
Нет, не придется, кто тебе внушил такую чушь? Работает это, например, так. У спрайта делается битовая маска, 00111100 и так далее. В 32битной архитектуре, соответственно, в регистре у нас сразу горизонтальный скан целого 32-пиксельного спрайта. Битовая карта мира, естественно, храниться в массиве, и координаты определяются один раз, а не на каждый пиксель - у тебя это аналог вычислений внутри цикла, которые надо делать один раз до цикла, а потом просто инкрементить на шаг. Так что, если говорить совсем упрощенно, то мы накладываем маску спрайта 01100... на уровень 1111000... и если and дает ненулевой результат, то есть пересечение. В реальности там чуть сложнее, потому что надо делать не одно сравнение, а два - учитывая сдвиг не кратный 32 битам, то есть примерно так
(spr << xShift) & levelMask[i-1]
(spr > (32-xShift)) & levelMask
Плюс там еще надо немного математики над , но тут мне вообще лень думать. Но я сразу сказал что я вообще против этого подхода.
>Плюс там еще надо немного математики над ,
Спасибо Абу, съел кусок - над вычислением координаты
Там была речь о том, что это быстрее обычной AABB проверки что-то уровня пикрелейтед.
Зачем ты мне пишешь? Я это и так понимаю. Еще раз повторюсь что это надо бенчмаркать.
У тебя написано 12 операций (abs это xor и вычитание, <= это вычитание). Сколько будет в пиксельных мне считать лень. Минимум 2 за каждую строку спрайта в 1пикс высотой.
1024x600, 1:08
А мой покак смотивировал тебя на пропук.
>Нет. Но по логике даже пачка битовых AND будет дешевле вычислений с плавающей точкой.
>гондотитя
Какая разница, если ты разрабатываешь на движке, который находится на дне выгребной ямы по перформансу?
Ты хоть усрись, но все равно не получится сделать так, чтобы не тормозило, число draw call'ов будет расти пропорционально кол-ву спрайтов на экране и твой 2д платформер уровня марио будет грузить процессор и видеокарту как крузис.
>музыка
Добавь видосики через видеоплеер.
Делаешь его невидимым и с него читаешь текстуру одной строчкой и вешаешь видео на спрайты или 3д модели.
> с него читаешь текстуру одной строчкой
Вюпорт плюс вьюпорттекстура, а в качестве источника плеер, так?
> число draw call'ов будет расти пропорционально кол-ву спрайтов на экране
Это только в том случае, если каждый спрайт будет создавать себе инстанс текстуры (что в редакторе годота делается по умолчанию). Мы это ещё в прошлом треде разобрали. Просто берёшь и вешаешь на одинаковые спрайты ссылку на один инстанс текстуры. Затем берёшь и слепляешь все текстуры в одну текстуру-атлас, загружаешь один её инстанс, затем спрайтам назначаешь его и указываешь координаты кусочка текстуры, который нужен. Это дольше, запарнее, но будет тебе перфоманц.
Ты наверное прошлый тред жопой читал, спрайт батчинг это еще и объединение всех четырехугольников в один меш, без этого у тебя все равно один дроу колл на спрайт.
Оче сомнительно что из текстуры можно читать с высоким фпс
>если ты разрабатываешь на движке, который
>число draw call'ов будет расти пропорционально кол-ву спрайтов на экране и твой 2д платформер уровня марио будет грузить процессор и видеокарту как крузис
Кстати, поправьте если не прав, но по-моему единственный способ сделать чтобы число draw call'ов не зависело от кол-ва спрайтов это использовать буфер-текстуры (ARB_texture_buffer_object, это минимум OpenGL 3.1) вместо полновесных обычных, что для 2D в принципе может прокатывать ибо там без мипмаппинга и фильтрации можно обойтись в отличии от перспективного 3D. Интересно, какие-нибудь из популярных 2D движков их юзают?
А при простом спрайт-батчинге-то draw call'ы тоже растут пропорционально, просто с меньшим коэффициентом.
От порядка при обходе дерева. Сначала корень, потом ветви, потом листья.
Не советую на это закладываться, считай что порядок не специфицирован.
>А при простом спрайт-батчинге-то draw call'ы тоже растут пропорционально
Нет. При спрайт батчинге у тебя будет один меш, в котором все координаты спрайтов. И один дров колл. А на видяхе уже на ее 1000+ ядрах все квады нарисуются параллельно.
Погоди, разве я тебе уже не рассказывал все это в прошлом треде?
Но если все спрайты не поместятся в одну текстуру, то тогда нужна будет вторая, а не поместятся во вторую -- нужна будет третья и т.д. Итого число дроу-коллов всё ещё увеличивается с числом спрайтов, просто медленнее.
Анон, а ты уже задонатил, чтобы еще одному Хуановскому дармоеду не нужно было работать?
https://twitter.com/godotengine/status/1165949802175225860
960x540, 0:29
Пускай Субботу Звонких Голосов в шоукейс добавят а там и посмотрим...
Раньше я немного работал в гамаке, там тоже скрипт - гмл. Прокатило
Суть токова: в годоте компонент emission не излучает свет. Сэд бат тру. Пришлось велосипедить. Позади квада с эмиссией установлен SpotLight, в _process я хочу вычислить средний цвет текстуры и сделать его цветом светильника. Как я только не делал, вот пикрелейтед вариант кода, а видеорилейтед вариант хуиты, которая получается. Слишком дёрганный свет получается, как будто свеча горит на ветру.
сначала я брал матрицу източек текстуры с шагом 10 пикселей, потом я стал брать из центра. Добавлял десатурацию. Пробовал задавать разные шаги интерполяции в зависимости от яркости. Ни-ху-я.
Вообще, можете на пальцах объяснить, что у меня не так?
Можно. И даже на гдскрипте ты быстрее закончишь, чем на шарпе. Шарп ещё не до конца впилен в годот. Полноценного дебага не будет.
Можно, но не нужно. Шарп же лучше питоноподобной лесенки.
Что ж спасибо. Я конечно понимаю что нужно читать всю шапку, но можно сходу пример 3д игры на этом движке, выпущенной и продаваемой?
Это опенсорс, тут принято дарить и раздавать.
1280x720, 0:45
>но можно сходу пример 3д игры на этом движке, выпущенной
продаваемой пока нет, но есть про твою мамку
https://www.youtube.com/watch?v=pXctms1b82g
> Нет
Юнитека ответ.
Донаты - вещь непостоянная и существует как приятный бонус. Реально же они работают на галерах простых ентерпрайзных.
>Донаты - вещь непостоянная и существует как приятный бонус. Реально же они работают на галерах простых ентерпрайзных.
Заткнись, тупая дура, не знаешь не пизди.
В тесламоторс. Сам спроси у него в твиттер, если не веришь.
Зачем ты срешь в годототреде? Зачем выдумываешь хуйню? Ты моржепидар?
Вообще-то это ты начал срать в треде. А проецируешь отчего-то на меня. У тебя проблемы с головой?
Берешь N пикселей с картинки (твоя сетка подойдёт)
суммируешь R G B каждого из них
Потом делишь на N (количество пикселей) вот тебе и типа примерно средний цвет
Чтобы резко не моргал только его и интерполируешь с прошлым значением.
Ты начал срать, ты должен прекратить
Я так делал. Получается чёрное. Не понимаю, почему. Формулу среднего арифметического знаю: s = (a1 + a2 + ... aN) / N
Главное не пытаться такое сделать с картинкой разрешением выше 2K, в инт не влезешь, "программист"
Один draw call - это один вызов функции отрисовки, glDrawArrays или её производных.
Чтобы был один дравколл для спрайт батча - нужно ручками собрать вертексы всех рисуемых спрайтов в один vbo и отрисовать их за один вызов функции отрисовки.
Для текстур при этом есть несколько вариантов. Можно собирать все спрайты в одну мега-текстуру, и конвертировать локальные текстурные координаты в глобальные. Можно создать массив текстур, GL_TEXTURE_2D_ARRAY, это что-то типа стопки отдельных текстур, наложенных друг на друга, таким образом можно передать в шейдер хоть сто текстур и использовать их в рамках одного драв колла, выбирать нужную в шейдере. Есть еще 3д текстуры, можно так же билдить текстурный куб из спрайтов и использовать в качестве текстурных координат не 2д вектор, а 3д.
>Интересно, какие-нибудь из популярных 2D движков их юзают?
Спрайт батчи есть почти в любом движке, на котором делают коммерческие 2д игры. XNA/monogame, libgdx, cocos, юпити.
Кроме гондотитя, естественно, Хуан не понимает, зачем это нужно, он загружает один спрайт на сцену и у него всё летает, значит и так сойдет.
Если интересны детали реализации - посмотри исходники monogame какого-нибудь, там опенсорс.
>Можно собирать все спрайты в одну мега-текстуру
Но у обычной 2D текстуры сильные ограничения на размер. Поэтому я и заговорил о texture_buffer_object, который ограничен по сути только памятью видюхи.
>Можно создать массив текстур, GL_TEXTURE_2D_ARRAY, это что-то типа стопки отдельных текстур, наложенных друг на друга, таким образом можно передать в шейдер хоть сто текстур и использовать их в рамках одного драв колла, выбирать нужную в шейдере.
>>по-моему единственный способ сделать чтобы число draw call'ов не зависело...
А, значит я был неправ, он не единственный. Спасибо за инфу, про такой вариант буду тоже знать.
>>Интересно, какие-нибудь из популярных 2D движков их юзают?
>Спрайт батчи есть почти в любом движке
Я не в общем про спрайт батчи спрашивал, а про мега текстуру реализуемую в виде texture_buffer_object. В tbo просто нету мипмапов и фильтрации. Хотя если цель -- тупо блитить из текстуры на экран, то они и не нужны.
Донаты с патреона. Сейчас хотят нанять еще одного программиста, надо еще тысячу в месяц дотянуть.
https://www.reddit.com/r/gamedev/comments/cvsq6a/godot_is_within_1000_on_patreon_of_being_able_to/
Анон, у меня встал вопрос.
Есть сцена, на ней есть Label в котором bitmap font'ом пишется какой-нибудь текст.
Можно ли сделать так, чтобы на эту Label не влиял размер окна и текст в ней всегда был в масштабе 1:1 ? Т.е. к примеру, если у меня базовое разрешение игры 320х240, а игра запускается в окне x4 (1280x960), то чтобы текст в этом Label рендерился, без учета масштаба
Нет, будет влиять на весь проект. А мне нужно, чтобы НЕ масштабировался только один (ну или несколько) Label-ов (ну или отдельная сцена)
Вобщем вот так сделал, результат меня устраивает.
>>05762
Сначала: var arr : PoolColorArray
Потом: for x in range(0, pict.w, 10): for y in range(0, pict.h, 10): arr.append(get_pixel(x,y))
Затем: for pix in arr:
- sum_red += pix.r
- sum_gre += pix.g
- sum_blu += pix.b
И в конце:
final_color = Color(sum_red / arr.size(), sum_gre / arr.size(), sum_blu / arr.size())
Получается чорный
Годный тайтол.
>>05707
Нахуя вы там пиксели руками суммируете в гондотитя-скрипте, вы ебнулись? Да еще и каждый фрейм, как я понял.
Просто делай ресайз твоей пикчи с билинейной фильтрацией в размер 1x1, он автоматом даст тебе среднее значение. И работать будет побыстрее, потому что в реализации ресайза перебор пикселей будет на плюсах реализован, а не тормозном гондотитя-скрипте.
http://docs.godotengine.org/en/3.0/classes/class_image.html#class-image-resize
> Просто делай ресайз твоей пикчи с билинейной фильтрацией в размер 1x1
Это первое, что я делал всё было так же.
Самое быстрое будет, скорее всего, влезть в исходники кодека и там найти какое-то значение по блоку еще до того, как его распаковали, ведь суммируя пиксели ты по сути выполняешь двойную работу.
Тебе нужны пруфы того, что код на С++ быстрее, чем на гондот-скрипте? Ты ебанашка?
Цвет отресайзенной пикчи явно не соответствует. И продолжает бешенно мерцать, как на видосах выше.
Чтобы не мерцало, меняй цвет не каждый фрейм, а раз в 0.2 секунды задавай desiredColor, цвет, к которому стремится текущий, а actualColor (который назначается источнику света) высчитывай через линейную интерполяцию - actualColor = lerp(actualColor, desiredColor, deltaTime).
Тогда меняться будет плавно.
А насчет цвета, хз что еще посоветовать, по идее можно определять доминантный цвет через алгоритм типа такого - https://github.com/BlueCocoa/mashiro, но это придется спускаться на уровень плюсов, на гондотитяскрипте попиксельные вычисления не лучшая идея. Хотя, если делать их не каждый фрейм, в раз в 0.2 секунды или даже секунду - то в принципе можно попробовать.
Когда в годоте будет нормальный импорт мешей? Импортирую .obj - материалов нет, импортирую .dae - материалы есть, но сам меш виден как сцена. Можно ли как-то обойтись без этого пердоллинга?
Все посаны уже давно импортируют .GLTF тебя даже вчерашний щитшторм не разбудил.
Пытаюсь сделать шейдер, задаю команду:
vec4 color = textureLod(SCREEN_TEXTURE, SCREEN_UV);
получаю в ответ:
Unknown identifier in expression: SCREEN_TEXTURE
-------
Что не так, это ж вроде встроенная текстура, не? Может там где галку какую чекнуть надо в настройках?
А, все, отбой. Я в названии функции fragment ошибку допустил. Сорян за беспокойство.
Мерцает же, говорил тебе интерполяцию заюзать.
Видео-то хоть с ютубчика стримишь, или прямо файл скачал в проект?
Мне в женшени и тис100 больше всего не нравилось то, что вся сложность сводиться к тому, что тупо не хватает места для команд. Была бы игра с симуляцией нормального компьютера.
Может тебе стоило бы по Arduino угореть? Там и практический смысел будет. Сможешь себе программировать роботов федоров.
1280x720, 0:03
Швабодный вижок понимает только швабодный формат. Сконвертил в вебм, но там чот видеопоток не выводится. ХЗ, ЧЯДНТ.
onready var state_machine = $AnimationTree.get("parameters/playback")
state = state_machine.get_current_node()
В той же теме где ты видел есть ссылка на https://github.com/Superwaitsum/GDSercomm
Удачной компеляции конечно.
Капец чел спасибо, чёб я без тебя делал. Документацию писал пидор, хрен найдешь этот метод не зная конкретного названия.
Хуаноназвания. Тут всегда все называется не так как принято.
Есть ли какие-нибудь гайды по особенностям разработки в GODOT (и не только) под андроид и под веб? Какие отличия от разработки под win? Что можно и что нельзя делать? Какие разрешения и аспекты исползовать?
------
А то вот сделал я допустим прототип. Под виндой запускаю все нормально играет. Экспортирую в html вроде бы играет, но на половине браузеров шейдерную воду не показывает. Экспортирую в андроид, играет, но наэкранное управление начинает туда сюда скакать (хотя в веб версии на том же андроидном браузере рабоатет нормально).
Не могу тебе помочь, т.к. я пилю игоры только под пека. В качестве поддержки вот тебе няша.
Опять своего скамерсофта скидываешь? Скамерговно, ты?
Есть же гораздо более информативные каналы по годоту, где не говорят медленным темпом какую-то хуйню как для восьмилетних даунов по 20+ минут
Ладно, я погорячился, если поставить быструю перемотку то конкретно это видео смотреть можно и в целом пока-что неплохие видео выпускает не то, что раньше
> Есть же гораздо более информативные каналы по годоту
Нету. А если ты постулируешь наличие - доказывай ссылками. Отсутствие же в доказательствах не нуждается.
Да, я петя скамер и это - мой любимый тред на дваче.
Я, короче, решил окончательно, что буду пилить свой Ундертейл с блекджеком и шлюхами в Годоте, а не GMSе. Воть.
> пилить свой Ундертейл с блекджеком и шлюхами
Пилить игру-фанфик - это заведомо провальная идея. Что у тебя своих идей нет? Делай игру по сеттингу вселенной-наоборот с толщеходами.
Там даже сюжет похож. ГГ как и в Андертейле хитрыми кознями сброшен вниз, чтобы остался там навсегда, но игроку придется пройти цепочку заковыристых квестов, чтобы выбраться и отмстить.
И естественно, по пути к финалу ГГ накопит силу и скиллы, обзаведётся множеством новых друзей. Поучаствует в умопомрачительных событиях. Например, в одной из полостей, он побывает на фестивале небесной рыбы! Что это? Как это? Узнаем на релизе!
Да не, игра никоим образом не будет связана с Подхвостом (возможно, позаимствую кривожопый стиль рисовки и расположение юнитов на поле боя, как в Дельтаруне), просто именно она вдохновила меня на то, что в одно жало можно сбацать что-то охуенно цепляющее (хотя я и до нее переиграл в десятки индюшни, смастеряченных в одиночку) на готовом двигле.
> сбацать что-то охуенно цепляющее
Сможешь прямо сейчас выдумать короткую, но цепляющую историю? Что-то вроде "каждую ночь мне снится тяночка моей мечты, она милая и приятная. Мы занимаемся вместе кучей интересных вещей (и сексом тоже, разумеется). Мы ходим в походы. Вместе делаем игоры. Катаемся на байке. Иногда занимаемся простыми домашними делами, уборкой или стиркой. но всегда это все весело, хорошо и с любовью.
А потом я просыпаюсь одинокий и больной лысый карлан, и кашляю в своей засаленной постели.
> все что мы тут пишем, идет в лор??
Охуенно!
Записки Аркадия. Том I.
Выйдя из башни на воздух, я полной грудью вдохнул аромат пятипалого гриба, которым поросла вся тыльная сторона башенной стены...
..., и приступил к своему привычному утреннему ритуалу. Как всегда я первым делом вытащил из потайного кармана в рукаве своей мантии позолоченную подзорную трубу, некогда украденную у своего наставника. Старый хрыч поначалу справедливо подозревал меня в воровстве, но так и не смог доказать моей вины, поскольку эта тончайшей работы вещица словно влитая поместилась в моей прямой кишке, куда я ее спрятал на время повального обыска моей скромной обители. Сейчас же это искусное творение гномьих рук наведено линзой на окно четвертого этажа Солнечной Башни, где с минуты на минуты должен появиться объект моей неуемной похоти. Правая рука привычно потянулась к промежности, потирая вовсю набухающий бугорок...
Итак, тест.
Дано, типичное для мариво-игр:
-Сколлящийся задник
-Пара надписей
-Спрайты, летающих по синусоидам
-Анимация по 4 кадра
Конфиг: некропека 2007 года (e8500, 4GB, gtx260 <1GB)
Пик1: gd script, 850 спрайтов@60fps
Пик2: gd script, 1900 спрайтов@30fps
Сказки про перегрев идут нафиг. В годоте 53°C, в простое у меня обычно 51°C.
Это не 95°C, как в некоторых карточных играх на юнити
Пик3: cpp, 1900 спрайтов@30fps
BREAKING NEWS: на моем компе в данном тесте С++ НЕ ДАЛ УСКОРЕНИЯ.
Неожиданный эффект: Хром, запущеный в фоне, -5 FPS.
Пик4: веб версия. 700 спрайтов@30fps
в вебе переключение gdscript/cpp неактуально, поскольку все равно все транспилировано в js.
Веб версия - https://govdot.herokuapp.com
Вишмастер для винды - https://govdot.herokuapp.com/4Anon.rar
з.ы. если не хотите запускать вишмастер - не запускайте.
Это весь проект для годота, просто экспортируйте его, или скопируйте туда свой экзешник. Просто на c++ не переключайтесь, потому что у меня он встроен в экзешник как модуль.
На каждый сцену со скриптом.
То есть вообще ноль оптимизации, железо 10-летней давности, 2000 спрайтов на комфортном fps, этого за глаза для типичных инди-игр.
А если это все еще оптимизировать, то и уровень факторио наверняка достижим.
Да, так можно задушить процентов 15.
Поменял на линейное движение (+dx/+dy), вообще не поменялось, даже как будто на 1 фпс хуже стало.
>BREAKING NEWS: на моем компе в данном тесте С++ НЕ ДАЛ УСКОРЕНИЯ.
Почему breaking? Вроде любому очевидно, что если спавнить ноды из с++, то на графический пайплайн это не повлияет и отрисовка будет по прежнему работать по-Хуановски.
>Пик2: gd script, 1900 спрайтов@30fps
Такое себе, ты доказал, что на гондоте невозможно сделать игру уровня террарии, в ней на full hd экране будет одних тайлов около 8к, не учитывая персонажей и окружение.
> Почему breaking?
Потому что каждая нода выполняет свои рассчеты даижения по синусоиде
> Такое себе, ты доказал, что на гондоте невозможно сделать игру
А вот и ничего подобного, я показал что на железе 10-летней давности, замечательно все работает вообще без всяких оптимизаций.
Террария это другой жанр, в ней никто не будет делать каждый тайл независимо анимируемым спрайтом в своей фазе и частоте, там будет тайлмап, у которого анимируется текстура целиком, то есть все тайлы огня меняются синхронно. Может быть вообще кастомный шейдер. Я привел только отправную точку, откуда можно ускорять минимум в 5 раз.
> игру уровня террарии, в ней на full hd экране будет одних тайлов около 8к
Хотел написать, что можно рисовать графику на канве (в функции draw()), но потом подумал, что это выглядит, как оправдание.
Так в террарии же спрайты разбиваются на чанки или типо того, я так в юнити делал
Там даже видео на ютубе на тему оптимизации в террарии было, вот там это объяснялось
Разбиваться-то они может и разбиваются, но отрисовываются они через спрайт батчинг, одним draw call'ом.
Эта фича есть и в xna, на котором изначально пилили террарию, и в юнити. А в годоте нет, тут хоть разбивай, хоть не разбивай, каждый тайл будет отдельно рисоваться. Ты ничего не наоптимизируешь в итоге, упрешься в рендер.
>>06919
Это еще медленнее будет, тут уже отрисовка упрется в процессор, получится 2д рендер без аппаратного ускорения.
>>06918
>откуда можно ускорять минимум в 5 раз.
А что не в 10?
>Может быть вообще кастомный шейдер
Хуйня без задач в плане оптимизации, если нет возможности задать свой формат пикселей и описать свой пайплайн.
>там будет тайлмап
Насколько помню, тайлмапы в гондоти только статические и не подходят под разрушаемый мир, поправь меня если неправ.
Ну все, тебя уже понесло, конечно любая ячейка тайла редактируется, и непонятно с чего ты решил что тайлмапу нужен спрайтбатчинг, спрайт батчинг это объединение независимых отдельных спрайтов в дроуколл, кто тебе сказал что цельный тайлмап не идет одним дроуколлом сразу? Короче выдумал новой хуйни, ну ничего и на нее тест напишем.
> ну ничего и на нее тест напишем
Этого он и добивается уже второй тред подряд, чтобы аноны доказывали ему, что они не верблюды, писали тесты с бенчмарками, вместо того чтобы делать игры. В итоге на юнити куча игор от анонов, а на годоте куча тестов и срачей.
Неужели так сложно игнорировать и репортить срущего юнитуха?
Так тестики и не для него, а для анонов, которые не делают игры на годоте, потому что наслушались всякого вранья, будто годот не подходит для 2д, или не подходит для некропека, или греет видяху. А тут бац - и ссылочка на тестик, второй раз его делать не нужно.
>-Сколлящийся задник
>-Пара надписей
>-Спрайты, летающих по синусоидам
>-Анимация по 4 кадра
Музычку еще на фоне добавь.
Спасибо вам за краткое описание годота и его возможностей
Чего агрессивный-то? Увидел возможность подловить анона на детской подьёбке и не переминул вскекнуть. Хули вы тут такие серьёзные?
Немного не так понял или я криво пояснил.
Я хочу при нажатии на кастомную кнопку закрывать окно в котором эта кнопка находится.
К примеру:
Открыл меню настроек, нажал "Выход" в этом меню и меню закрылось.
Тогда тебе помогут сигналы с биндингами.
Хуан сделал гениальную вещь: к любому сигналу можно дополнительно прикрутить любое количество переменных. Например, есть сигнал hide, мы его коннектим так connect("hide", self, "on_hide"). Сам сигнал объявлен без аргументов, поэтому функция on_hide должна быть также без аргументов. И тут появляются биндинги! Пишешь: button.connect("pressed", self, "on_pressed", [menu_frame]) где меню_фрейм это и есть то окно, которое ты планируешь закрывать. Далее, описываешь функцию-обработчик уже с параметром: func on_pressed(frame): frame.queue_free()
Таким нехитрым образом ты можешь на одну кнопку повесить универсальный обработчик, обрабатывающий разные объекты. В момент излучения сигнала в обработчик передаётся разный бинд.
Если у нас сигнал с параметром, то биндинги добавляются в конец:
connect("signal_with_param", self, "on_swp", [bind1, bind2])
func on_swp(param, bind1, bind2)
Можно и без биндов, при условии, что в каждом окошке кнопка является вложенным потомком, тогда кладёшь в кнопку однострочный скрипт:
func _pressed(): get_parent().queue_free()
Моноверсии на шарпе нужен установленный моно. Больше ничего из пререквизитов не требуется.
Если на компе запускается редактор годота, то запустится и экспортированная игра.
Не, да, у меня то все запускается. Но на какой-нибудь XP пользователю ничего не придется доставлять? Годот не использует какие-то ебы, которые не были встроенны в то время?
У меня случилось это https://github.com/godotengine/godot/issues/13163
Причём, по ссылке ЭТО случается в открытом проекте, при совершении некоторых действий. У меня же ЭТО происходит сразу при запуске.
Я уже неделю гуглю, и ничего.
Некоторое время меня спасала моно-версия, я там редактировал свой проект не пользуясь шарпом. Но для моно нет шаблона экспорта в хтмл5, если я правильно понял.
В общем, жизнь боль, чот приуныл, посаны.
Видимо придется, чет не вижу ответа в гугле. Спасибо.
Ну это классно, хорошо прям сделали.
>directx
не нужны, там же opengl.
>.net
Он и так у всех стоит, спасибо нвидии и прочим, пихающих его в драйвера и контрольные панели!
Может быть какой нибудь vcredist понадобится.
>move_and_slide(linear_velocity, floor_normal ... )
>floor_normal is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of Vector2(0, 0), everything is considered a wall. This is useful for topdown games.
>на туториал-видосе чувак ставит floor_normal=Vector2(0, -1), чтобы фигурка прыгала, отрываясь от палки под собой
Я тупой и нихуя не понял. В интернете текстового пояснения не увидел. Как это работает, памахите?
> floor_normal
Это нормаль пола. Этим вектором ты указываешь, в какую сторону в игре пол. Это нужно для работы метода is_on_floor() который будет возвращать тру, если персонаж стоит на полу, который задан этим вектором.
>Дотнет нужен только шарповерсии. И то там ещё моно в довесок придётся ставить.
Ебом токнуть? Моно поставляется вместе с годотом, ничего отдельно его ставить не надо. Dotnet годоту не нужен.
Немного годноты про сигналы. В этом выпуске: Синглтон для сигналов. Сигналы с биндингами.
https://www.youtube.com/watch?v=S6PbC4Vqim4
Тебя же предупреждали, что годот написан дилетантами и состоит из багов чуть более, чем полностью. Нахуй ты в него полез?
Более того, от этой хуйни не застрахован и билд твоей игры, потому что билд игры и редактор это в целом одинаковые приложения на рантайме годота. Так что если каким-то чудом ты релизнешься со своей гондотной игрой в стим, вполне можешь увидеть в отзывах, что у 50% игроков она просто рандомно крашится при запуске или в процессе игры, и ты ничего не сможешь с этим поделать. Даунята с двача посоветуют тебе пересобрать движок из исходников, веря, что это магическим образом устранит баги из кода, а Хуан ехидно улыбнется, снимет с карточки очередные 12к долларов донатов и поедет отдыхать на море.
>>07675
Ну да, с 2017 не пофиксили, но скоро всё будет, не сомневайся.
Боюсь, что года до 2030 Хуан будет переписывать по кругу рендеры, скоро вот допилит вулкан, поймет, что написал хуйню, а донаты нужны, вспомнит про bgfx, еще пару лет будет на него переписывать. А потом опять на opengl, потому что bgfx хуйня. А там глядишь и новое графическое апи выпустят.
Вот интересно, ты все так кукарекаешь с дивана о том, что ни разу в своей жизни не пробовал сделать? Или только когда речь касается сборки годота с .net?
Потому что если бы ты попробовал написать хоть один скрипт на C# без sdk, ты бы увидел, что билд просто крашится. А в комплекте с годотом идет только рантайм, сдк надо ставить самому.
>Даунята с двача посоветуют тебе пересобрать движок из исходников, веря, что это магическим образом устранит баги из кода
Анон, тут нет никакой магии. Просто у него линукс, а это такой зоопарк, что проще собрать самому и узнать чего не хватает, чем выяснять что там у него отличается.
Как пересборка из исходников поможет тебе выяснить чего не хватает и что отличается?
Ну пересобрал ты, ту же версию, запустил, там точно тот же краш. Потому что ты собрал точно тот же код с теми же багами. Ничего не изменилось. Пересборка внезапно не выведет тебе окошко с сообщением "ебать, да у тебя тут Х не хватает в системе". Она не поправит баг в коде. Будет точно тот же краш с тем же сообщением об ошибке.
Слинкуется с либами которые у него стоят в системе, а не с теми на которые рассчитан бинарник; соберется под нужную архитектуру, хз что там в линуксе, в шинде бывает не та битность, не тот тип многопоточности, не тот вид либы.
Сейчас бы собирать мастер для работы над игрой. Он же нестабильный, там еще больше крашей и косяков. Туда сливают пулл-реквесты Васянов и потом разгребают баги.
>>07981
Это так не работает, из-за косяков с линковкой программа бы в принципе не запустилась. Если она запускается и крашится уже в рантайме, это баг рантайма, кода самого движка.
Это не баг кода самого движка, жиробас, там написано kernel sigreturn, это ошибка ядра линукса.
>Он же нестабильный, там еще больше крашей и косяков.
Постоянно собираю, никаких крешей и косяков, наоборот одни фиксы.
Понимаешь, мы же не знаем вообще откуда тот линуксоид скачал годот - из стима ли, с сайта ли, из какого нибудь репозитория пакетменеджером, какая там версия, какие зависимости.
> там написано kernel sigreturn, это ошибка ядра линукса
Во, шарящий чувак! Погоди, постой!
Короче, у меня дебиан, недавно обновился на 10й, когда 9й из стейбла в олдстейбл перешёл.
Годот скачан с официального сайта.
Архитектура 32х разрядная.
Далее вот какая хуйня произошла: у меня все бинарники годота лежат на сетевом диске, подключаемом (монтируемом) вручную через самбу. Я ж говорю, колясочник я. Через фстаб не удалось настроить монтирование. Каждый раз ручками ввожу пароль от сетевых дисков.
И в тот раз я по запарке забыл подключить диски и запустил ярлык. Ничего не произошло. На экране. Но внутри дебиана, я полагаю хрустнуло колесо моей инвалидной коляски. Ну я запустил скрипт, ввёл пароль, диски подключились. Но годот запускаться перестал. Выдаёт пикрелейтед. Первой мыслью было перенести бинарник годота в \home и запустить оттуда. Но нихуя. Инвалидная коляска уже сломалась.
Щас у меня есть мысль, что надо какой-нибудь кэш где-нибудь почистить. Но ничего подобного не гуглится.
> никаких крешей и косяков, наоборот одни фиксы
Сможешь навскидку сказать, что пофикшено, по сравнению с 3.1.1?
И ещё, ответь плиз, собирал ли ты кастомные шаблоны экспорта с вырезанными неиспользуемыми модулями? Я, например, хочу собрать кастомный шаблон экспорта, в котором вырезана вся физика, всё тридэ, вырезано двадэ от Node2D оставлено только то, которое от Control, на котором, собственно и сделан весь проект.
R A N D O M
int randi_range ( int from, int to )
Generates pseudo-random 32-bit signed integer between from and to (inclusive).
float randf_range ( float from, float to )
Generates pseudo-random float between from and to, inclusive.
Хотя я почитал https://github.com/godotengine/godot/issues/27094
И вот что я скажу, лучше изобрести свой велосипед. ТОчнее взять готовый сделанный правильно, а не через остаток от инта.
Я имел в виду какое-нибудь готовое решение, типа как в питоновском Random:
a = choices(["Хуй", "Пизда", "Джигурда"], [10, 20, 70])
Метод choices придется изобретать самому, как я понимаю?
Да, целую строчку придется изобрести.
list[randi() % list.size()]
(если тебя устроить неравномерное распределение)
>Потому что если бы ты попробовал написать хоть один скрипт на C# без sdk, ты бы увидел, что билд просто крашится. А в комплекте с годотом идет только рантайм, сдк надо ставить самому.
Написал несколько тысяч строчек кода. Ничего не крашится. Сдк не стоит, стоит только MsBuild. Где твой бог теперь?
>>07932
Признаю, не учел линуксоводов с маководами. Им и правда скорее всего нужен MonoSDK. Пользователи же самой популярной ОС просто ставят MsBuild, а не засирают свой пк кучей ненужной хуйни ради утилиты, которая идет в комплекте.
> Сдк не стоит, стоит только MsBuild
А он у тебя с годотом ставился в комплекте? Нет? А что пиздишь тогда?
А сам велосипед чё не заскринил?
Пришлось нагуглить и перевести из шарпа с джавой:
https://gamedev.stackexchange.com/questions/162976/how-do-i-create-a-weighted-collection-and-then-pick-a-random-element-from-it
А теперь то же самое для питонщика с утиной функцией:
Блять, быстрофикс, пока никто не видит!
А хули там показывать, велосипед как велосипед
В целом, норм, хотя я для понятности кода, делал бы через словарь ключ-значение:
var common_chest = { items = ["хуй", "пизда", "джигурда"], chances = [3, 3, 4] }
и далее
choice = Choices.choices(common_chest.items, common_chest.chances)
Но это если бы я был питонщиком с синдромом блаба. Так-то вижу, что данная функция неудобна. Лучше сразу передавать в "мешок" подготовленный словарь с элементами ключ-значение. Потому что эти элементы не я ручками буду подавать, а сама игра будет формировать элементы. Причем не сразу, а в зависимости от состояния игры списки лута будут дополняться или урезаться игровой логикой. Хранить ключи отдельно от элементов в двух разных массивах это - НУ ТАКОЕ.
Поэтому мой велосипед работал бы либо как там >>08348 либо как-то так:
var common_chest = [ {item = "хуй", chance = 3}, {item = "пизда", chance = 3}, {item = "джигурда", chance = 4} ]
и далее
choice = MyRandomSubclass.get_item_from(common_chest)
При этом в реальной игре common_chest получал бы актуальный список элементов у синглтона игровой логики приблизительно так: var common_chest = Game.get_actual_items_list_for(CHESTS_COMMON)
Создавать рандомгенератор как объект (RandomNumberGenerator.new()). И у него будет метод randfn()
https://docs.godotengine.org/en/3.1/classes/class_randomnumbergenerator.html#class-randomnumbergenerator-method-randfn
О, круто. Пасиб.
Почему копрокуб не двигается при нажатии на кнопку? Вроде всё правильно сделал
Нуу, ты завел локальную переменную и увеличил ее, а где ты выставляешь самом объекту-то координаты?
А теперь копрокуб движется, даже если оптустить кнопку. Чую, что где-то что-то не так.
Ну так ты в переменную при нажатии выставляешь "ускорение", на которое потом сдвигаешь. А при отпускании ты его не обнуляешь. Переменная глобальная же (в рамках файла). Может тебе ее в функцию перенести?
И вообще, пройди туториал или почитай в прошлом-позапрошлом треде, как делать управление.
Перевёл в функцию и теперь всё работает. Но вопрос теперь в другом, а как прикрутить коллизию? МАой kinematicbody-копрокуб стоит в воздухе, а не падает, move_and_collide чёто не работает
Так вроде всё также делал.
Тогда можно весь тред закрывать, иначе на каждый вопрос здесь можно ответ в интернете найти
/thread
Одно дело интересный вопрос про то какая производительность у годоти или как написать оклюжн куллинг, а другое пошагово проходить с новичком туторы.
Спасибо
Я надеюсь, это ловкая эмуляция ренпая в годоте. Иначе это стыд и срам - кудахтать на конкурентов в их движке.
... тем более, что в годоте то, что показано на видео, эмулируется за полчаса максимум.
Не получится.
В юнити можно к одному объекту прикрепить несколько скриптов. Кроме того, игровой объект содержит в себе только трансформ и ещё парочку базовых предметных вещей. Весь остальной функционал вешается на один игровой объект компонентами, скрипты тоже вешаются, как компоненты.
В годоте же есть куча разнородных потомков общего объекта с намертво прибитым функционалом. И к каждому такому можно привесить только один скрипт, прибитый гвоздем к типу ноды (я имею введу директиву extends).
В юнити доступ к функционалу через бинарный поиск шаблона<компонента>.
В годоте доступ к функционалу через "строковые/мать/его/пути".
При всём уважении к гению и отваге Хуана. Он создал мертворожденное тормозное говно, которое by design не сможет быть оптимизированно и догнать по скорости хотя бы жидовский юнити, не говоря уже о таких мастодонтах, как УЕЧ или плачдвижок.
Sad but true. Deal with it.
С того, что обработка строк (массивов символов) всегда была медленнее, чем побитовые операции с числовыми типами, а с вводом юникода стала ещё медленнее.
И причём тут ецс? Поиск по шаблону это самостоятельный паттерн. Geterics, do you know it, bitch?
var sprite = Sprite.new()
var texture = StreamTexture.new()
texture.load_path = "path/to/stex/file" # вот тут тормознёт опять
sprite.texture = texture
self.add_child(sprite)
Тебя никто не заставляет обращаться в годоте по строке, делай getNode() кешируй результат в переменной и все.
>>08902
Хз причем тут дженерикс, это просто синтаксический сахар, если у тебя мешок компонент типа TA, TA, TB, TA, TC, TB, TA, TA, вызов getcomponent<TA> никак тебе волшебным образом поиск не ускорит.
Тьфу ты, я имел в виду get_child(int).
>КАК СОЗДАТЬ ИГРУ 100% БЕЗ СМС И РЕГИСТРАЦИИ БЫСТРО БЕСПЛАТНО МАМАЙ КЛЯНУСБ!1!1!
я бы за это пиздил за слабоумие
> Вот все летает на старом компе
На моём амуде фх-4200 тормозит. Там, где у тебя 30, у меня 15 ФПС.
Ты вебверсию запускал или проект? Веб версия вдвое медленнее.
Спасибо, забрал на будущее.
Я сам пока вот этого товарища смотрю, пока понятно объясняет:
https://www.youtube.com/watch?v=wETY5_9kFtA
На самом деле Skaner неплохой контент делает, но у него многие видео для новичков и вкатывальщиков.
А, да, тут что-то с Local трансформом похоже
1280x720, 0:31
https://www.youtube.com/watch?v=rFAyFeqYPFM
Сейчас я погляжу англоязычные туториалы по фильтрации ввода мыши и любезно переведу тебе, гордый руССич.
Ну а почему тогда по оси x все нормально? Мне кажется дело в повороте самой камеры, вот сижу-пержу
Нужна фильтрация ввода мыши, повторюсь. Как-то так: lerp(mouse_old_vector2, mouse_new_vector2, mouse_filtering_option)
Никогда в жизни не слышал чтобы в играх мышь интерполировали как-то специально. Откуда ты такое взял?
Сделай отдельно какую-нибудь "точку взгляда" перед мордой игрока и по движению мыши поворачивай ее, а не камеру. А камерой просто догоняй эту точку с ускорением/замедлением (в зависимости от расстояния между "точкой взгляда" и "точкой камеры")
(то что в кавычках примерные названия, я х.з. как это правильно по научному называется)
>Если ты об этом не знал, то теперь знаешь.
Какие же годотеры фантазеры. Ну тогда тебя не затруднит ссылка на исходник в quake3 или source engine, где происходит интерполяция мышки?
Я не сторонник mouse filtering'a в FPS. Он больше подходит неспешному кинцу для плоек. Но оно существует:
https://hardforum.com/threads/what-exactly-does-mouse-filter-do.1387030/
Хорошо, признаю, я обосрался, mouse filter существует. Просто его все котлеты отключают в конфигах.
С другой стороны может проблема не в фильтрации все же у того анона? Должна камера и без нее нормально работать.
Этого я как раз не забыл, но это влияет на все игры одинаково, и тогда такое поведение не воспринималось бы им неправильным.
km
А вот и нет, в других играх всё нормально (даже проверил на двух мышках).
На том видео плохо видно, но дело в том, что по оси "x" в центре поворот происходит медленее, чем ближе к -90 и 90 градусам, там поворот идёт быстрее. Это как камеру в редакторе в локальном пространстве по "x" поворачивать, такой же эффект происходит. Не знаю как такой эффект объяснить, может я наркоман уже.
Фикс: по оси "x" у меня проблема (поворот сверху-вниз)
1920x1080, 0:07
А скинь проект или покажи код. Такое чувство что или угол считается по неправильной формуле, или игровой цикл неправильный.
https://pastebin.com/0KFHw6yn
код с годот доков, только кнопки и clamp камеры под проект изменил. Моя реализация fps управления была похожей, но там нечего смотреть, такая-же проблема была. Вот и думаю, может в самом проекте что-то.
>или угол считается по неправильной формуле, или игровой цикл неправильный
Всё проще, движок неправильный.
1920x1080, 0:27
Не использовать move_and_slide, а делать что то свое? Такое возможно?
На видео код с примера FPS, который в доках.
Алсо, прыжок во время вот этой вибрации не работает... Очень неприятный на управление персонаж получается ;-;
Колижены на Source мои любимые...
P.S. Игрок вибрирует даже при столкновении с обычным углом в 90 градусов
Только если с физическими объектами вроде, а не с brushами в уровне, если не ошибаюсь
Таблетки прими, нервяк.
>У одного тебя, бедненький, не работает. Ну так возвращайся на свой сорс, хули ты в треде срёшь, мразина?
Что я сру, мразина? Я просто задал вопрос, почему у меня поворот камеры кривой, скинул код и сидел думал. Я решил этот вопрос, меш игрока кривой оказался.
И зачем ты смешал меня с двумя анонами, я вообще тот анон (>>09210), который примеры моей (а не движка) проблемы с годота скинул, сравнив с тем, как это должно быть (на сурс вообще похуй, самая левая игра, которая скачана была).
Да не обращай внимания, это юнитиманька срач разводит.
СТАТТЕРИНГ
Т
А
Т
Т
Е
Р
И
Н
Г
В гондотите с этим ничего не сделать, Хуан отмазался, что у нвидии дрова кривые.
Надо ждать рендер на вулкане и молиться, что там этого говна не будет.
У меня проблема уже решилась, как уже процитировал анон выше проблема была в кривом меше (точнее в его шейпе коллизии).
Юнитиманька слышит звон, да не знает где он. Ведь статтеринг был в 2д, а не в 3д.
А что еще надо в Годоти сделать самому? Инб4: всё
Ремейк халвы на годоте?
Но зачем для этого годот? Какой то движок тесея прям, в котором надо переписать все части
Только это и нужно, эх.
Да.
Пиздец, короче, ёбаный.
Ебать ты нежный. Люди годами въебывают, изучают, по курсам, туториалам, через сотни и тысячи часов практики. А ты скачал и думал, что сразу нарисуешь шедевр? Или упорно учись, или иди нахуй, третьего не дано.
> Качай с opengameart
Там ничего стоящего нет, одни заманухи от платных артистов.
> делай 3д лоуполи
Вот это поддерживаю.
>>09868
Анон, лепи игоры из кубов! Представь себе: говорящие кубы!
Сделойте мне игру, экшон-эрпогэ, суть токова: Можно играть кубами, а можно играть шарами. И если играешь кубом, то грани параллельные, кругом плоскости и ты олзаешь по ним. А если играешь шаром, то можно кататься туда-сюда. Диалоги со скиллчеками - конусам в диалогах доступно угрожать другим фигурам, что посадят на остриё. Прокачка. Можно родиться кубом и постепенно прокачаться до цилиндра или до тора. И если поверхность повредят, то катаешься вприпрыжку. Визуально в игре три зоны: плоскость с простыми фигурами. Рубленная поверхность для округлых, там в центре есть старый чертёж, в котором сидит злой додекаэдр. И графон такой, чтобы фигуры вдалеке двадэ, а когда приближаешься в тридэ.
Можно грабить матеманы.
Ньюфаг Вкатился в годот из кастрата. Сейчас постигаю туториалы по простейшим играм и ГДС. Объясните пожалуйста, грубо говоря, вот допустим различные ноды выражают моего гг - его куклу и анимации, его коллизии, его платформерный объект который движется - так вот, всякие моменты вроде запрета контроля если мы получаем урон, через переменные - пишутся в одном скрипте? То есть - управление анимации, управление инпутом, и т.д. или все группируется и выглядит как несколько нодов?
В догонку выкрикну - инклюд нод используют для того чтобы объединить 2 скрипта и они оба выполнялись для объекта?
Какой аналог в годоте условия every x seconds?
А мужики то и не знали, знай себе делают приложения для навигации да калькуляторы.
> Привет, подстилки)
Здравствуйте, Господин!
> всякие моменты вроде запрета контроля если мы получаем урон, через переменные - пишутся в одном скрипте? То есть - управление анимации, управление инпутом, и т.д. или все группируется и выглядит как несколько нодов?
Есть несколько способов, каждый из которых является применимым/допустимым. Выбирай в зависимости от твоего стиля кодинга и личного удобства для себя.
>>09909
> инклюд нод используют для того чтобы объединить 2 скрипта и они оба выполнялись для объекта?
Не только. Не совсем. Ноды вкладывают в ноды для достижения комбинированного эффекта (например, нода коллизии должна быть вложена в ноду физического тела, чтобы задать ему форму).
Объединять скрипты можно несколькими способами. Самый привычный это var script = load("/path/to/script.gd").new() но опять же есть еще пара способов, в зависимости от твоих предпочтений.
> Какой аналог в годоте условия every x seconds?
Есть несколько способов... Эммм... ну ты понел. Есть ноды-таймеры, которую ты можешь добавить в свой объект-сцену и сделать, чтобы он срабатывал эвери Х секундс. Есть корутины, есть сцентритаймер, работающий на корутинах. Можешь создать кастомный счётчик в коллбэке главного цикла (_process()), можешь создавать таймер кодом, чтобы не ебаться с нодами (в рантайме всё равно он будет как нода в дереве, но то уже мелочи).
>>09914
> Примеры приложух?
Один из годотеров пилит приложуху "конструктор диалогов" и иногда постит скрины. Можешь поискать в тредах. Сейчас что-то он затих. Наверное ниасилил.
>>09929
Талант это 5% предрасположенности и 95% титанического труда (с)
>>09984
О да, ИТТ тоже калькулятор постили.
> Один из годотеров пилит приложуху "конструктор диалогов"
тоже какое-то время назад запилил чисто для себя подобное, вот только из-за того что подобного говна много, но все они работают через хуй пойми что и имеют слабую документацию
скажите, что сделал очередной велосипед, но я на нем хотя бы катаюсь теперь
Тащемта всё очень просто
Держу в курсе - проапгрейдил видяху на 750ti (б/у с али, как известно топ за свои деньги, минимальная видюха для современных игр).
Итого результаты для конфига (e8500, 4GB, 750ti 2GB)
gd script, 985 спрайтов@60fps
gd script, 1980 спрайтов@30fps
cpp, 1000 спрайтов@60fps
cpp, 2075 спрайтов@30fps
Заметил странную штуку, иногда при добавлении пачки в 500 спрайтов fps просаживается и не восстанавливается, а если добавлять по 5 штук, то может тянуть и большее количество без просадок.
Спасибо, благодаря тебе видно что годот это чуханский движок, не способный ни на что.
Удали его нахуй при закрытом годоте.
Спасибо за труд, напоминаю, что говдот.херокуапп уже добавлен в следующую шапку.
Не за что, обращайся!
>gd script, 1980 спрайтов@30fps
Хуёво, это примерно в 5-10 раз меньше, чем в условной тераррии, которая выдаст стабильные 60 фпс и на более слабом железе.
Под неиспользуемым шлаком ты подразумеваешь ассеты игры, создаваемой на годоте?
А причем тут террария?? В террарии тайлы, а не независимые спрайты у каждого из которого своя логика.
>>10321
Коллеги, напоминаю, что это пример умышленно неоптимизированного кода, который просто накидали и работает. Причем он работает в окне (не фулскрин), с аэро прозрачностью, каждый спрайт тут это сцена. И если под террарию в любом случае придется писать свой движок или оптимизировать готовый, то для нормальных инди игр типа Hollow Knight или Braid этого движка хватит за глаза. Будем честны с собой, террарию вы никогда не сделаете. А найти пример игры, которую нельзя сделать, можно для любого движка, это не так сложно, лол.
>>10350 (Del)
>Каждый спрайт со скриптом и двигается там?
Именно так, там есть песок, который движется, вода, которая движется, у каждого тайла есть здоровье и логика поведения, они зарастают зеленью, и т.д, тайлы уничтожаются, взрываются, и т.д.
>Hollow Knight
Тут соглашусь, он технологически примитивный, даже опенворлд не запилили, как в salt and sanctuary.
>Braid
А вот это вряд ли, насчет перемотки времени уровня брейда на гондотитяскрипте есть большие сомнения.
>>10354
>ряя, ваши спрайты не спрайты
Ваше мнение очень важно для нас, оставайтесь на линии.
В террарии блоки - это динамические элементы, для них прописана логика, у них есть атрибуты, такие как здоровье, помимо просто положения в тайлмапе.
А рисуются они XNA-шным спрайт батчем, такой рендеринг невозможно реализовать на годоте, не перепиливая куски движка на уровне плюсов.
Я спорить не буду, потому что во первых не интересуюсь террарией, а во вторых мне похуй.
Но очевидно что это все делается тайлмапом, в котором сами тайлы анимируются, то что у них логика и здоровье это дело десятое, это может быть операция над массивом чисел. А уже отдельные эффекты какие-то могут спавниться спрайтами, и тут уж запаса в 1000 хватит за глаза.
А этот шарит.
Хуёпочки. Если ты ты посмотрел доклад разраба брейда, то знал бы, почему это не подошло для игры и почему он хранил состояния всех сущностей за прошедший час и изъебывался с хитрыми алгоритмами сжатия, чтобы такой объем данных помещался в память консолей.
Потому что он неосилятор, выясняли уже.
> это все делается тайлмапом, в котором сами тайлы анимируются
Ты представляешь, какой будет гемор - анимировать годошный тайлмап? Тебе придётся заготовить тайлы-фреймы для анимации и менять их в каждой ячейке тайлмапа, где у тебя планируется анимация. Либо заготовить атлас-текстуру и анимировать выбранный регион для тайла.
В любом случае будет заёбисто.
https://godotengine.org/qa/11223/is-it-possible-to-change-animate-tilemap-cells
Проще собрать уровень на объектах. В том числе, используя тайлмап как матрицу для расстановки объектов: в дизайн-тайме ты расписываешь тайлмап. В рантайме у тебя функция _ready расставляет объекты по уровню, используя map_to_world затем выгружает тайлмапу.
> то знал бы, почему
почему? да потому что лентяй он. хуле там даже мозги включать не нужно, берешь дату, пишешь ее в память.
> хитрыми алгоритмами сжатия
интерполяция это хитрый алгоритм, так и запишем
>Проще собрать уровень на объектах.
Проще-то может и проще, да фпс начнет стремительно падать в ноль, как только у тебя будет больше чем 30 на 30 тайлов.
> как только у тебя будет больше чем 30 на 30 тайлов
А я им вручную текстуры из одного атласа раздам и увеличу фпс. Главное не делать это преждевременно. Преждевременная оптимизация - антипаттерн. Сначала игру сделай, а потом задумывайся, как батчить спрайты.
>а потом задумывайся, как батчить спрайты.
Смысл думать о том, что в принципе невозможно делать в гондотите?
>А я им вручную текстуры из одного атласа раздам
Так вся фишка в том, что рендер Хуана все равно будет рисовать по одному кваду за draw call, в этом и заключается отсутствие спрайт батчинга, от которого у всех встают волосы дыбом.
Так ли много игр ты видел, где 1000 одинаковых спрайтов на экране? Это бесполезный бенчмарк. Возьми хотя бы десяточек спрайтов, и назначь их рандомным образом, посмотрим что будет.
Переключение текстур дорогая операция в opengl, если Хуан не догадался в рендере сделать сортировку спрайтов по текстуре, то будет еще бОльшая просадка, т.к. на каждый draw call будет переключение текстуры.
> фишка в том, что рендер Хуана все равно будет рисовать по одному кваду за draw call
Пруфов ты так и не привел.
Хотя у твоего оппонента говдот-куна есть целый бенчмарк, где всё работает в 60 ФПС.
ОНИ ОДНАВО ЦВЕТА РРЯЯЯЯЯЯЯЯ!11!!1!!1! НАДА МНОГА ЦВИТОВ НА ИКРАНЕ ТАДА БУДИТ ВИСНУТЬ
Точно, спасибо что напомнил, хотел потестить динамический реколоринг.
>ТАДА БУДИТ ВИСНУТЬ
Не понял, к чему твой визг, демка и так виснет на непозволительно маленьком кол-ве спрайтов и сосёт по перфомансу у любого другого движка, от гейм мейкера до юпити.
1024x600, 0:30
Годаны, помогите плиз красивую гранату сделать. Настроек частиц подкиньте. У меня какое-то говно получается.
Напомнило в анекдот: ну мы тут джентельмены и принято верить на слово. И тут у юнити перформанс как попер, как попер!
ДЛЯ ЖЕЛАЮЩИХ ОБОССАТЬ ГОДОТ
Тест под юнити с двумя сценами, "оптимизированной" и "неоптимизированной". Можете наглядно сравнить производительности этих движков.
Скачать тут https://www114.zippyshare.com/v/xyvZnE26/file.html
Не томи, сразу скажи, кто пасасал, а кто падебил.
Я так понимаю, там билды под шин? Пользователи божественной ОСи все равно не смогут запустить.
Надо сделать так - запустить на твоём компе бенч годота, заскринить результат, сколько спрайтов, сколько фпс. Потом юнити и тоже заскринить. Чтобы была видна разница на одинаковом железе. Сделай плиз, если нетрудно.
1920x1080, 0:28
Следующий популярный миф - мол, ладно, а вот Терраррию не сделать, якобы неправильно работает тайлмап, через спрайты.
Проверяем. Не знаю что там в Террарии, в моем тесте сейчас так:
120х68 карта, 256 разных тайлов 16х16 пикселей.
На самом деле два слоя тайлмапов, просто чтобы смотрелось лучше. Обсчитывается только один.
Плюс статический задник-картинка
Два вида анимаций тайлов
Первый - циклическая смена текстур через AnimatedTexture. Так делается огонь, вода и т.д.
Второй - собственно изменение конкретных клеток. В качестве теста написал коротенькую реализацию игры Жизнь Конвея.
Плюс накидал спавн спрайтов, в определенных условиях. В террарии ведь должны быть еще герои и спецэффекты.
Результат - 60 fps на 750 ti, коллеги. Кстати я разобрался как на ней записывать видосики. Проект будет лежать там же, на govdot. Указал лицензию - CC0 public domain, и код и картинки.
>развеяно немало мифов - о том что якобы годот не годится для некропека
Вроде же наоборот, были подтверждены, не?
Не. Там где юнити не запустится вообще или будет рисовать кашу из за изменений в шейдерах с 2017 года , или греет видяху до 95 градусов, Годот летает с 2000 спрайтами.
Зачем нужен годот, если есть юнити?
Консольное качество!
>не запустится вообще или будет рисовать кашу из за изменений в шейдерах с 2017 года
Шиз, плес, юнити компилит 500 конфигураций каждого шейдера при билде для охвата всех видюх. Чухану конечно это неизвестно так как он юнити близко не видел, зато он имеет уверенность рассуждать что там где не запустится и сколько градусов будет у видяхи. Типичный годото чуханоид.
Анон, плес, мы это выяснили несколько тредов назад, в 2017 унити отпилило поддержку некропека, не знаю что там у тебя в голове компилится, а на практике там просто черный экран с белыми пятнами.
И вообще ты дочь офицера, да. Про разработку на некропеке речь вообще не шла, лол, там сама студия не запустится.
У меня с железом какая-то хуйня. Или шындовс засран. Но ФПС падает до 20 уже на 1500 спрайтах.
Да, это очень странно, у тебя 1060? И процессор по бенчам на 70% быстрее моего e8500. Странно, может надо делать какую-то спец сборку экзешника для AMD?
Сам говорил что годот для некропек. Чем лучше конфигурация тем ниже фпс.
>Всяко лучше ползающего червя-юнити
Что ты несешь, шизик? Уже обоссывали сто раз, что годот юнити никогда не догонит из-за спрайт батчинга.
https://github.com/godotengine/godot/issues/1527
>Второй анон и написал что у него летает
Второй анон написал что у него результаты как у тебя, целых 2000 спрайтов при силки смуз 30 фпс)
Во дебил. Юнити никогда не догонит годот там, где юнити просто не запускается и не работает.
Да, надо бы им почистить ишью, а то там одни вопросы ньюфагов в основном.
то ли дело в проприетарных движках, где твои репорты багов менеджер просто в мусорку отправляет не читая
Я не тот анон, скажи плес что именно у тебя не запустилось? Проверю на своем пк для учебы.
Я уже всего не вспомню, сразу стирал что не работает. Kingsmaker рисовал черный экран, Plane Mechanic Simulator рисовал черный экран с белыми и розовыми засветами, Project Warlock и MtG Arena грели gtx260 до 95 градусов.
Странно, какой то слабый результат на первом тесте хотя у меня видюха существенно слабже, старая нвидия. Неужели амуда вместо процессора не вытягивает?
Л-И-Т-А-Е-Т!!! Я СКОЗАЛ, ГОНДОДИТЯ ЛИТАИТ! 20 ФПС ДОСТАТОЧНО ДЛЯ ЛЮБОЙ СОВРЕМЕННОЙ ИГРЫ!!
Годот выдает 20 фпс → 20 фпс норм для пошаговых стратегий → стратегии для илиты → годот двиг для илиты
Шах и мат, юнитипидор!
Да, что-то конкретно не так с моей системой. Давно подмечаю какие-то лаги и подтормаживания. Надо как-нибудь заняться большой уборкой. И ещё проц помощнее хочу купить. Держу в курсе.
Сначала запустил 10к спрайтов и там и там, классический стресс-тест для 2д рендера. Юнити выдает стабильные 60 фпс, годот всего 10.
Потом замерил на 2к спрайтах, т.к. у годоти к этому моменту фпс падает до 50. У юнити на 2к - 400.
И это на железе, на котором все игры последних лет работают на ультра настройках без просадок.
Причем, у юнити (видимо из-за спрайт батчинга) фпс падает не линейно, а все медленнее и медленнее, чем больше спрайтов на экране. У годота падает линейно, каждое добавление 500 спрайтов роняет фпс на одинаковое значение.
Так что делаем выводы, посоны.
>Так ты сначала придумай игру, где нужно будет 2000 спрайтов
>НИНУЖНО
Ок, если буду делать порт игры от атари 2600, обязательно возьму годот.
>Ну скажите им, что много спрайтов НИНУЖНО, ну скажите, что 20 фпс это более, чем достаточно для современных игор! Годотя литает, я скозал! Литает!!!11
Тут проблема не столько в конкретных 2к спрайтах на конкретном железе, а именно в линейной зависимости фпс от кол-ва спрайтов.
Для моего не самого слабого железа 2к это предел. Для чьей-то некропеки это может быть уже 1к, 500 или даже еще меньше.
В юнити фпс падает так - добавил x спрайтов, фпс упал на y. Добавил еще x спрайтов, фпс упал на y/2. Добавил еще x, упал на y/4, добавил еще - упал совсем на чуть-чуть. Эта нелинейность достигается как раз за счет батчинга и прочих оптимизаций, сортировки по текстурам/шейдерам, чтобы уменшить переключение контекстов, и т.д.
В годоте на каждые x спрайтов всегда падает на y, и это станет проблемой для некоторых жанров игр, типа той же террарии, факторио, римворлд и т.д, где спрайтов на экране побольше, чем в клоне супер марио.
>Сам только что придумал?
Нет, еще издревле 2д рендеры так бенчмаркали, если смог преодолеть 10к спрайтов и удержать стабильные 60 фпс - значит, сделал годный рендер.
Ради интереса загуглил - в Touhou кап в ... 2000 спрайтов.
При этом они не независимые, как в бенчмарке, а двигаются по связанным траекториям, а значит очень легко оптимизируются инкрементом в цикле.
А вот Казаков с его 64000 юнитами просто так не сделать, да. Но такое где угодно оптимизировать
> легко оптимизируются инкрементом в цикле.
Не понял, как ты собрался инкрементом в цикле оптимизировать draw call'ы годота, расскажи подробнее.
1920x1080, 0:15
>типа той же террарии, факторио, римворлд
Ты опять начинаешь, жиробасина?
В этих играх не будут использоваться спрайты для всего. А будет использоваться ТайлМап, для которого написан второй бенчмарк, и там тоже нормально все будет.
Как говорят на собеседованиях и экзаменах, это не окончательная оценка, а лишь начало для долгого разговора.
Ну а то, 30 ФПС ДОСТАТОЧНО ЛЮБОЙ СОВРЕМЕННОЙ ИГРЕ!
На аврках и ардуинке com-порт по дефолту является единственным способом общения пк с мк. А так я хотел для одного своего проекта (не ааа убийца-бестселлер в стиме, другое) сделать внешний джойстик-контроллер через uart
на китайских клонах юсб по дефолту. а брать оригинал, ничем не отличающийся кроме одичавшей из-за хайпа цены я не стану
Usb на ардуиньке работает как последовательной порт. Зря я его com портом обозвал, но суть та же, т.к usb порт на ардуиньке это не полноценный usb, взаимодействие идёт через Serial.
Копипаста: Все платы Arduino имеют, по крайней мере, один последовательный порт (также известный как UART или USART): Serial. Он связан с цифровыми выводами 0 (RX) и 1 (TX), а также используется для связи с компьютером через USB.
В дополнение скажу, что это относится и к твоей ардуинке уно, которая работает только с Serial и эмулируют какой-то там последовательный порт, новые же модели пердуины умеют работать в нативном режиме usb (SerialUSB) с большей скоростью передачи данных.
Но нативный режим вроде как тоже работает через последовательный порт, просто скорость больше.
>Годот
>На ардуине
Дурачок, мы обсуждаем возможность связи ардуинки с годотом, а не возможность запуска на ней, для этого есть распберри.
Я бы поиграл в экшон-эрпогэ, для которой нужен внешний модуль на ардуине, собираемый самостоятельно, подключающийся к игровому пека по ЮСБ и выполняющий функцию взламывателя игровых замков, например.
Пойди погугли, что такое кинект.
А насчёт без задач - это же ардуино. Завтра перепаяешь под другие задачи.
У ардуино сотни задач без задач, это правда.
Неважно
Покажи свои игры, пукан.
Что это? УЕ4 знаю.
Комп:
проц: i7-4790
видео:NVIDIA Quadro K620
разрешение: 2 монитора по 1920х1080 (рабочий стол расширен на 2 монитора)
Win7x64
---------------
Проект: любой 2Д платформер со скроллингом.
Когда включены оба монитора, то происходит такая штука:
К примеру если разрешение проекта 384х216 и я его запускаю в окне любого размера вплоть до максимального (1920х1080), то все двигается и скроллируется максимально плавно, без задержек и рывков.
Если же я включаю режим Fullscreen или делаю borderless окно 1920х1080 (что по сути тот же фуллскрин) начинаются рывки при скроллинге и перемещении)
Если же отключить один из мониторов, либо сделать дублирование рабочего стола на оба монитора, то рывки и прочая хрень пропадает и все опять становиться плавно.
Есть идеи как это можно пофиксить?
Ну или хотя бы можно ли из кода узнать, сколько у юзера мониторов, чтобы предупредить его про возможность таких косяков в случае если их больше одного?
Спасибо. Чет я в глаза проебался когда этот раздел справки смотрел.
>>11112
>У тебя оба монитора подключены к нвидии или один от встройки работает?
Оба к одной видяхе, один через HDMI, второй через VDI. На обоих одинаковое разрешение и частота 60 выставлены.
Открой на втором мониторе диспетчер задач на вкладке с мониторингом ресурсов (ой, у тебя некросемёрка, тогда на вкладке с процессами отсортируй по ЦоПе) и смотри, кто нагружает систему: только годот, годот и ещё кто-то, кто-то другой. О результатах отпишись.
Чем тебя встроенный редактор не удовлетворяет?
Как что-то хорошее. Лучше бы Хуан над оптимизацией работал, спрайт батчинг запилил бы.
У меня для тебя две новости, плохая и плохая.
>Fullscreen
>делаю borderless окно
В годоте нет нативного фуллскрина, то что ты называешь fullscreen и есть бордерлесс окно. Потому, что он Хуан решил, что это тупо - делать полноценный фуллскрин в 2к19.
https://github.com/godotengine/godot/issues/14542
>Godot does not understand fullscreen video modes. It is kind of silly to support that nowadays, given that monitors all have fixed pixel densities.
>начинаются рывки при скроллинге и перемещении)
СТАТТЕРИНГ
СТАТТЕРИНГ
СТАТТЕРИНГ
СТАТТЕРИНГ
>Если их в один 3840х1080 объеденить через настройки нвидии (если конечно у тебя такая опция есть) твоя проблема остаётся?
Они у меня в один общий рабочий стол объединены. Т.е. можно перетаскивать окна туда сюда, но при включенном фуллскрине, окно растягивается только на один монитор.
Попробовал задать в проекте разрешение 3840х1080 и borderless, так чтобы растянулось на два монитора. Дерганья остались хотя и чуть меньше чем просто в фулскрине.
Причем самое забавное, что даже когда игра дергается, FPS показывается стабильные 60.
Если один монитор отключить или сделать его обычным дублем первого то проблем вообще нет, в любых режимах игра идет плавно.
>Лучше бы Хуан над оптимизацией работал, спрайт батчинг запилил бы.
Зачем? Вроде бы пришли к выводу всем тредом, что 20 фпс более чем достаточно для любой современной игры.
> Вроде бы пришли к выводу всем тредом, что 20 фпс более чем достаточно для любой современной игры.
Тролли и демагоги могли к чему угодно прийти. Ты либо один из них, либо вообще не можешь в сарказм, с которым они "пришли к выводу".
Либо у тебя сарказм и я в него не смог только что, кек.
Позакрывал все лишнее, запустил только проект (экспортированный, без редактора) на годоте и диспетчер задач.
1..2% - диспетчер задач
7..8% - годот
остальные 90% идут на system idle process
Да тут не в cpu дело, очевидно же, что не хватает пропускного канала видюхи.
Попробуй другие игры погонять, если там тоже статтеринг - значит в целом видюха не тянет такое разрешение и не успевает обновить кадр. Если только в гондотите - то можно только посочувствовать, опять Хуанорендер свинью подложил, неэффективно использует пропускной канал, что неудивительно, учитывая как он рендерит 2д (draw call на каждый спрайт).
>В годоте нет нативного фуллскрина, то что ты называешь fullscreen и есть бордерлесс окно. Потому, что он Хуан решил, что это тупо - делать полноценный фуллскрин в 2к19.
Ну если и так работает, то нахрен бы он и нужен был полноценный фуллскрин?
Перфоманс, полноценный фуллскрин позволяет работать процессу напрямую с видюхой в нативном режиме, и выжимать из неё больше. Грубо говоря, в нативном фуллскрине вывод видюхи маппится напрямую на монитор, при бордерлессе - на окошко операционной системы. Поэтому нативный фуллскрин до сих пор остался во всех основных движках типа юнити, анрила, и юзается в большинстве игр, особенно с крутыми графоном, типа ведьмака какого-нибудь.
Но Хуан посчитал что это глупо, видимо по той же логике, по которой 20 фпс хватит всем.
> (draw call на каждый спрайт)
Пруфца бы. А то по дукументации опенгл - дравкал выдаётся на инстанс текстуры, а не на программную абстракцию "спрайт".
Таким образом, если запихнуть все текстуры в один атлас, мы ручками сделаем тот же самый батчинг, который делает этот надоедливый платный движок с неотключаемым сплешскрином.
Блядь, вы необучаемые что ли? Уже обоссали и разжевали сто раз, что годот рендерит каждый спрайт отдельным драв коллом независимо от текстуры, даже если ты сто раз рисуешь один и тот же спрайт, будет сто драв коллов.
https://github.com/godotengine/godot/issues/1527
Нет, они до сих пор продолжают маня-фантазировать про атласы какие-то, что там само всё объединится и отпимизируется по велению левой пятки Хуана.
> мы ручками сделаем тот же самый батчинг,
Угу, совсем тот же самый, настолько тот же самый, что у годота 10 фпс там, где у юнити 60.
>>10719
> годот рендерит каждый спрайт отдельным драв коллом независимо от текстуры, даже если ты сто раз рисуешь один и тот же спрайт, будет сто драв коллов
Не пизди. По твоей ссылке бенч без атласа. И загляни в код, там как-то вообще тупо идёт присвоение в цикле вижуалсерверу нового инстанса текстуры. Ясен хуй там будет 100500 дрочкалов.
>Да тут не в cpu дело, очевидно же, что не хватает пропускного канала видюхи.
Похоже, что нет. Сейчас перекинул один моник на встроенную видяху, точно такая же фигня. С одним монитором (любым) все гладко, с двумя - дерганья. Загрузка ЦП всегда одинаковая.
>Попробуй другие игры погонять, если там тоже статтеринг - значит в целом видюха не тянет такое разрешение и не успевает обновить кадр. Если только в гондотите - то можно только посочувствовать, опять Хуанорендер свинью подложил, неэффективно использует пропускной канал, что неудивительно, учитывая как он рендерит 2д (draw call на каждый спрайт).
Попробовал несколько разных игр, результат 50 на 50. В некоторых такой проблемы нет и все гладко, в других дерганья при двух мониторах и гладко при одном. Причем движки у всех разные.
Т.е. дело тут не в количестве дроу колов, а в чем-то другом, либо в винде, либо в опенгле.
Попробую поэкспериментировать на других компах и системах.
Реально не всрался. Годотеры игоры делают. Большинству игор не нужно столько спрайтов. Поэтому годотеры спокойно работают и зарабатывают, не упираясь в производительность. Одни пердолики безыгорные ИТТ копротивляются за свой батчинг.
По идее такое в ассете не сделаешь, там же надо кишки самого движка менять.
Хуан как всегда будет переписывать уже существующее
https://marketplace.visualstudio.com/items?itemName=geequlim.godot-tools
>>11174
Ага. Попробовал тот моник который подключен через встроенную видяху назначить основным и запускать игру через него - все стало ровно и дерганья пропали и в годоте и в других играх. Так что похоже видяха тут тоже причастна или софт от нвидии.
Годот это движок для нищих с квадратными мониторами, чего ты от него хотел хз.
>все стало ровно и дерганья пропали и в годоте и в других играх.
fix: пропали даже при двух подключенных мониторах
>В годоте нет нативного фуллскрина, есть бордерлесс окно
И слава богу. Сейчас 2к19, уменьшение фпс практически незаметное (доли процента), зато alt-tab будет мгновенным без секундного мигания, и будет превью окна на таскбаре.
Ну, пару тредов назад залётные унитидебилы хихикали над высказываниями Хуана, о баге в драйверах нвидии. Дескать непогрешимые, неполживые разработчики ПЕЧей не могут ошибаться. Сверхлюди же.
>типа ведьмака какого-нибудь
Тут 50/50, у половины народа борделесс окно лучше работает.
https://steamcommunity.com/app/292030/discussions/0/613958868351211325/
Я же тебе уже 3 раза пояснял в треде, не? Дравкалл - это отправка меша на видяху по шине, и если не объединять все меши спрайта в один мегамеш, то и вызовов из движка будет по количеству спрайтов.
>Поэтому годотеры спокойно работают и зарабатывают
Орнул. Покажешь хоть один проект на годоте который заработал? Не 10 баксов а хотя бы 10К.
>без секундного мигания
Ты свои два гига два ядра то обнови, нищенка. Мигание у него при переходе с фуллскрина 320х200 на 1024х768 рабочий стол, кек.
Лол, то есть чтобы альт-табалось, надо покупать новый комп? Ты только что худшую антирекламу юнити.
Лол, так в годоте и не будет проблемы с альт-табом, ты же сам пишешь что там только борделесс виндоу.
Я не писал что там бордерлес виндоу. Факты про годот пишут другие, а я только рофлю над примитивностью движка и над ущербами, которые им пользуются.
ТЫ НИМАНИМАИШЬ!! ЗАТО СВОЁ, РОДНОЕ! САМ НАПИСАЛ, А НЕ ПРОСТО КАКОЙ-ТО РАНДОМНЫЙ ЧУВАК ИЗ ИНТЕРНЕТА, ЧТО ОН МОЖЕТ ПОНИМАТЬ В ПРОГРАММИРОВАНИИ?
@
ПОСТИШЬ ШАРИК НА ФОНЕ ФОТОГРАФИИ
@
ХОМЯКИ В ВОСТОРГЕ ВИЗЖАТ ОТ НОВОГО ФОТОРЕАЛИСТИЧНОГО РЕНДЕРА
Проиграл что-то.
Зачем мне такой графон если я игру даже в фулскрин развернуть не могу? Мне в очке играть или фулхд окошке которое наполовину за края экрана вылезает?
Хуан словно аналоговнет в СССР - 1в1 выглядит внешне и работает также как забугорный аналог, но на своих (скомунизженных и реверсинженернутых конечно) радиодеталях.
60 фпс внешне получше выглядит.
https://github.com/godotengine/godot/issues/21244
Говнодот может в подключение дллок? Если да то какие проблемы?
Покажи другой свободный опен сорс с таким же покрытием платформ, работающий из коробки. cocos2d-x - нет 3д редактора. ogre3d - такая же сегментация на 1 и 2 версии, как у Хуана с gles2. urho3d - говно мамонта, выглядещее как 90-е. Год назад я тоже проигрывал - чего это на Godot все так наяривают, почему он в топе гитхаба по звездам. А потому что так и есть по факту Хуан свое дело знает, тише едешь дальше будешь. Вот сейчас перепишут на Вулкан и производительность вырастет, что тогда придется выдумывать хейтерам?
>Вот сейчас перепишут на Вулкан и производительность вырастет, что тогда придется выдумывать хейтерам?
К тому моменту, как зарелизят 4.0, выйдет графическое апи нового поколения, условно назовём его Хуйкан.
После выпуска 4.0 все охуеют от количества багов, от того, что у части пользователей всё будет глитчить и статтерить, у другой части будет просто черный экран вместо рендера, у немногих счастливчиков всё будет кое-как работать. Поддерживаться, разумеется, будут только топовые видеокарты последних лет, т.к. на старые видюхи вулкан не завезли. Т.е. о поддержке некропекарен и старых ОС, чему сейчас радуются пользователи гондоти, можно будет забыть.
Хуан выступит с заявлением, что разработчики драйверов под вулкан некомпетентны, нахуячили баги в драйвера, всё сломали, поэтому гондотя и не работает, и что проблемы с рендером можно решить только переписав его полностью на Хуйкан. Будет запущен новый этап сбора донатов на новый рендер на Хуйкане, после сбора денег Хуан снова пропадет на пару-тройку лет. Когда проест все донаты, выкатит еще один кривой полурабочий рендер, без спрайт батчинга для 2д и без окклюжен куллинга для 3д, и скажет, что у графического апи Хуйкан слишком много внутренних проблем, разработчики выкатывают забагованные драйвера, да и поддержка оставляет желать лучшего. Поэтому, единственный способ исправить все недостатки рендера на Хуйкане - переписать всё на принципиально новое графическое апи под названием Защекан, выход которого анонсирован в 2035 году. Разумеется, для решения столь амбициозной задачи необходимо будет запустить новый этап сбора донатов на реализацию рендера на графическом апи Защекан.
Я это к чему всё. Отсутствие вулкана не помешало разработчикам запилить кучу годных игр за последние 20 лет, и в 2д, и в 3д. Сейчас бы думать, что вулкан решит все проблемы годота, в том числе самую главную - научит Хуана программировать и решать проблемы.
Ну да, годотеры-то об играх не говорят, их движок же не для создания игр существует.
Да.
>К тому моменту, как зарелизят 4.0, выйдет графическое апи нового поколения, условно назовём его Хуйкан.
Зачем нужны эти фантазии? Закон Мура давно остановился, ничего особо нового в ближайшую пару лет не будет. Иначе все бы уже об этом трубили во всю.
>у части пользователей всё будет глитчить и статтерить, у другой части будет просто черный экран вместо рендера
Прям мой опыт с юнити описал.
>Т.е. о поддержке некропекарен и старых ОС, чему сейчас радуются пользователи гондоти, можно будет забыть.
Даже если это случится, ничего не мешает продолжать использовать Godot 3 для такого.
>Отсутствие вулкана не помешало разработчикам запилить кучу годных игр за последние 20 лет, и в 2д, и в 3д.
Естественно, многие написали in-house движки для этого.
Совок разваливается и остается только хуй во рту и трусы с чиркашом. Самое смешное что типичный годотер так выглядит и сейчас.
Лучше быть школьником чем годотером.
Дак делаем же.
Распидор безвылазно сидит в годоте и смешно то что даже он ни одной игры на нем не смог сделать.
>Даже если это случится, ничего не мешает продолжать использовать Godot 3 для такого.
Для какого такого? Такого, когда 10 фпс на не самом слабом железе, а про некроту и подумать страшно?
Извини но не все тут нищие как ты, чтоб отличать 30 фпс от 10. Главное что нет 60фпс.
Как будто кроме годота и юнити больше не на чем делать игры.
на юпити не запускается на некропека, так что там 0фпс. => Годот в бесконечное число раз быстрее юпити.
Надо в lim считать.
Мне надо поставить 0.075сек. А редактор позволяет выставить только 0.07 или 0.08
0.075 2 = 0.15 = 0.075 0.5
Я предлагаю следующий костыль: задаёшь шаг 0.15, а саму анимацию запускаешь на скорости 0.5.
Обычно после таких громких заявлений оказывается что анон сам там не того наколхозил, а в Годоте все работает.
Не-а. Там действительно есть проблема когда к AnimationTree цепляешь AnimationPlayer, чтобы гонять его через стейт машину. Там не идут сигналы и свойства не поменять из кода:
Вот например.
>AnimationPlayer signals are not emitting when animations played from AnimationTree
https://github.com/godotengine/godot/pull/30390
Такое ощущение, что AnimationTree создает где-то свой экземпляр плеера и его гоняет, а тот который в дереве сцены висит мертвым грузом.
Сорян не та ссылка (но она тоже имеет отношение).
Вот которую я сначала хотел написать:
https://github.com/godotengine/godot/issues/28311
Дай ссылку. Только там где он делает стейт машину именно для анимации, а не для перемещения игрока.
Не завезли, и не завезут. Позиция Хуана такая - пока терпите, ждите версию 4, рендер на пукане.
Но и там спрайт батчинга не будет, просто пукан пошустрее чем opengl, да и работает только на топовых видеокартах последних лет, поэтому тормозов там никто не заметит, можно будет и дальше спокойно проедать донаты и не запиливать оптимизации в рендер.
> Только там где он делает стейт машину именно для анимации, а не для перемещения игрока.
Он делал комбинированную. Переключение состояния "ходьба" означает одновременное включение анимации "ходьба" и перемещения модельки.
Неужели ты из примера не можешь вычленить нужное тебе?
И так понятно, что слабо. Мог бы и промолчать, неосилятор.
>топовых видеокартах
Ох уж эти топовые джифорсы 600 серии. Особенно какой-нибудь GF 645 - прям самый топ в 2019.
Какие же юнитипидоры нищеброды, пиздец просто.
Дык у ОПа-хуя игры на юнити не запускаются, и годот 4 тоже не запустится))))) Он скажет что годот 4 нинужен и на всё хватает третьего с его 20 фпс)))))))))
>Он делал комбинированную. Переключение состояния "ходьба" означает одновременное включение анимации "ходьба" и перемещения модельки.
Не, не пойдет. У меня две отдельные стейт машины, одна для игрока, вторая для его анимации. Мне так удобнее.
>Неужели ты из примера не можешь вычленить нужное тебе?
Не люблю видеотуториалы смотреть. Слишком большая потеря времени пересматривать все и искать где и что там кто делает.
Зачем мне форкать гондот, чтобы что-то там запиливать? Хуан все равно не принимает пулл реквесты, затрагивающие его кормушку (рендерер, который он переписывает несколько лет подряд на донаты, относится к их числу).
А так я уже давно пилю свой собственный двиг со своим рендером на opengl.
Продолжаем кормить срущего троля-пидора вместо игнора с репортом? Ну-ну. Земля тебе пухом, братишка.
>Физика в Godot довольно ограничена, и начинает сильно уменьшать FPS уже при десятке активных объектов
Взвизгнул. У гондодиков появится новая мантра, БОЛЬШЕ 10 ОБЪЕКТОВ НИНУЖОНО!!
В чем комический эффект? Это тебе в любом движке скажут, что надо не делать стенки объектами, а надо делать их статиками.
В том, что пока в 2004 году во втором халф лайфе на одной сцене могли быть сотни физических объектов, в гондотите в 2к19 без просадки фпс можно использовать не больше десятка. Не находишь это комичным?
Какие еще сотни объектов? Там как раз валялся мячик и пара ящиков плавала, как раз десяток. Ну и да "находиться" конечно может сколько угодно. Помню как там фризило на уровне с машиной.
Там лицензированный и дохуястоящий Havoc использовался, мань
>в качестве доказательства что не тормозит скидывает видос где тормозит
Годотодауны как всегда, думаю в доках годота есть секция с мантрами для заучивания, чтоб вера помогала не видить тормозов.
Пачаны, подскажите. Сижу на Конструкт2 и не делаю игры уже несколько лет. Есть ли смысл перейти на Годот и не делать игры на нём? Там и 3Д есть.
Вообще хотелось бы на Юнити ничего не делать, но Годот меньше объёмом и говорят простой, удобный, саврименный не хуже Юнити...
Мне все твои распидорские высеры шерстить в поисках момента где годот не будет тормозить что характерно видосы в 30фпс)))))))? Можете этим всем годотокомьюнити заниматься, мне и так уже все понятно.
> закон Мура касается ПРОЦЕССОРОВ и он работает
Закон Мура НЕ работает. Отсутствие явления (работа закона мура, существование боженьки, сотоны и ангелов с бесами) - в доказательстве НЕ нуждается. В доказательстве нуждается именно наличие явления.
Ты посмел кукарекнуть, что закон Мура всё ещё работает (несмотря на то, что имитацию его работы делают за счёт наращивания ядер (де факто количества процессоров). Так что будь любезен доставить пруфы твоего вскукарека, иначе твоё очко переходит в зрительный зал.
Так, спокойно! Ты как и положено местным аутистам понял все буквально. Когда говорят о законе Мура, не имеют в виду тупо уменьшение транзисторов в 2 раза (впрочем и тут скоро упрутся в физику), а еще и сопутствующее уменьшение тепловыделения и рост производительности. Есть правда еще многоядерность, но она упирается в то, что мало какие алгоритмы можно легко параллелить.
Поэтому и ответ на твой вопрос - причем тут годот - если бы ты читал внимательней был бы тебе ясен - я отвечал на предположение что прям вот сейчас появится новый прорывный api. Предпосылок к его появлению нет, вулкан был просто эволюцией того, что вместо фиксированных шейдеров можно писать код, который на том же железе позволит считать только то что хочет программист, а не только то, что заложил инженер в видяху. Вот и вся магия роста перформанса.
Хотел согласиться но погуглив выяснилось что он все же работает. Просто, как пишут, не в intel процах общего назначения, а у тайванцев. https://medium.com/predict/moores-law-is-alive-and-well-adc010ea7a63
Ну смотри, по сравнению с констрактом, годот предоставит тебе более низкий уровень программирования игор. То, что в констракте (конструкторе игор) делал одним кликом, как само собой разумеющееся, в движке (годот, юнити, уеч) потребует от тебя либо написание определенной логики, либо скачивание уже написанных кем-то ассетов.
Например, в констракте ты просто, без задней мысли кидаешь на сцену спрайт, говоришь констракту - это топдаун персонаж игрока. Констракт говорит - окей - и всё, ты уже можешь ходить персонажем. В движках тебе придется описать ручками логику передвижения. Скомпоновать с физикой. Ну, либо скачать кем-то написанное.
И так во всём. В конструкторах тебе даётся готовая логика уровней. Ты можешь наполнять уровни контентом, настраивать переходы между ними. В движках будь любезен сначала сам организовать логическую структуру уровней, спроектировать каким образом уровни будут наполняться контентом, как будут осуществляться переходы, а уж потом наполняй контентом.
Есть сцена с тайлмапом, несколькими нодами-спрайтами и нодой-игроком. У игрока в скрипте создается дефолтная Camera2D, без smoothing. Во время движения по сцене ноды-спрайты начинают дрожжать (тот самый jitter?), а между тайлами тайлмапа иногда проскакивают вертикальные полосы.
Не знаю что там с драйверами Nvidia, про которые тут что-то писали, но от видеокарты это вроде не зависит т.к. проверял и на Nvidia и на Intel встройке, то же самое все.
Что это может быть, и как фиксить? Может ли это быть связано с CanvasLayer (у инстанснутых нод-спрайтов добавил у каждой, чтобы выводить попапы, которые они могут выводить, по центру экрана, а не относительно начальных координат камеры или чего-то там)?
Да, без камеры такого не было.
Не знал про эти настройки.
С Use Pixel Snap вертикальные полосы между тайлами пропали.
Но дрожжание спрайтов осталось.
Со второй галкой что-то делать стоит? У меня проект GLES3 лол. И проявляется-то и на Nvidia и на Intel (gt650m/hd graphics 4000 лол).
Я понял в чем дело. При расстановке нод со спрайтами по сцене я не включил прилипание к сетке, поэтому у них были координаты с дробной частью, и видимо поэтому их так трясло.
найс интроспекция, красиво ты вскукорекнул, но мимо, т.к. неважно каким образом мощность процессоров растёт. поэтому закон Мура работает, а твоё развальцованное очко переходит в кунсткамеру.
А тебе уже не терпится переделывать поломанные обновой проекты?
(два дня переделывал сломавшиеся двадэ частицы и это нихуя не смешно, в документации не обновили, как теперь делать анимацию фреймов частиц, кое как методом тыка нашёл, что надо особую текстуру добавлять в ресурс и настраивать там)
https://github.com/godotengine/godot/issues/29576
растёт твоя развальцованная дыра в жопе )
>It's the damn kernel! For some reason, kernel 4.19. is causing processes to stall while running. I just got things working on a 4.9. kernel. facepalm
Ну Хуан не виноуат, что дрочер использует древнее ядро. Или погодь. У него на 4.19 не взлетело, а на 4.9 зороботало? Я нипонел.
З.Ы. Ванильная Бобрунту 18.04.3 с ядром 5.0, только что включил стимгодоту 3.1.1, все робит. Давно пора привыкнуть, что дистры это ебаные суповые наборы, где-то что-то есть, где-то чего-то нет и распространять вместе со всем, что надо - через ебаные снапы.
Я серьезно интересуюсь. Т.е. в чем твой профит, если какая-то часть людей бросит годот и пересядет на юнити?
> Какова твоя мотивация
Обычный разрыв пердака, когда я INSTALL GODOT форсил. Жаль, конечно, что форс не взлетел. Щито поделать.
Кто это? Твой протыклассник?
А, ну то есть for lulz, тогда ок.
https://github.com/kyzfrintin/Godot-Mixing-Desk
Да ты совсем дурак? Закон Мура работает! Просто сейчас технологии достигли предела возможностей физически.
Уже в 2007 году сам Мур заявил, что действие этого закона больше невозможно из-за фундаментальных причин — атомарной природы вещества и ограничения скорости света, которое не позволяет процессорам работать еще быстрее.
Понял? Но это не значит, что мощности компьютеров перестали и перестанут расти. Они продолжают расти и будут расти, только другими путями.
Да не работает он. Кстати вспомнил еще причину, почему он фуфло - нанометры то сейчас не настоящие, а маркетинговые! Транзисторы по сути не уменьшаются уже почти, а только дорожки проводящие между ними. https://habr.com/ru/post/423575/
А какова была мотивация миссионеров в африке, когда они несли просвещение вшивым пигмеям с немытой задницей?
Обычный разрыв пердака, когда папа римский УВЕРУЙ В ИИСУСА форсил. Жаль, конечно, что форс не взлетел. Щито поделать.
Вообще-то христианство это юнити, а годот - это ислам, относительно новая религия.
Ну так всё правильно.
Был задан вопрос про мотивацию юнитисеруна.
Был сравнён с мотивацией христианских миссионеров.
Был дан ответ.
Не вижу ничего плохого в обсуждении недостатков нашего любимого движка. У нас же нет цели обелять его ура-шапкозакидательством. Он медленне юпити? Допустим, хотя тормознутость юпити известная проблема, к любой игре отзывы на стиме почитать. Его производительности достаточно для большинства игр? Да, это наглядно показали бенчмарки. Ускорится ли он? Да, работы уже ведутся, надо просто подождать.
Конечно.
1. Тыкаешь редактировать тайлсет
2. Плюсиками добавляешь сколько надо текстур
3. Кликаешь с какой текстуры хочешь тайл
4. Тыкаешь добавить одиночный тайл
5. Помечаешь тайл на текстуре
6. Вы великолепны.
Нужно кликом мышки указывать точку на карте. Карта двигается камерой за игроком. Всё в двадэ.
Я получаю event.position - он мне рисует координаты в окне, где я мышкой ткнул.
Гугел подсказывает, что надо event.position - position, делаю так, но координаты всё время разные для одной точки на карте, в зависимости от положения камеры.
Подскажите правильную формулу.
Я пошёл дальше гуглить, позже почитаю ответы.
ну то есть ты слит вместе со своим рузке языком, свинья лишнехромосомная. жаль вам обезьянам открыт доступ к достижениям. сидели бы вы как в Северной Корее на калькуляторах в чебурнете и там бы воняли. А то сидят лишнехромосомные с вражеских чипов не развивающихся во вражеском интернете и воняют что-то доказывают )))
Спасибо!
Не знаю, как так вышло, что в первый раз, когда я скопипастил эту функцию, мне выдало ошибку что не найдена.
То, то! Уже усё работает.
Можем. В окне проектов есть вкладка с примерами и шаблонами. Скачиваешь - устанавливаешь - изучаешь.
>Его производительности достаточно для большинства игр? Да, это наглядно показали бенчмарки
>20 фпс хватит всем
Проиграл с мантр гондодиков.
Как при использовании анимэйтед спрайт в коде выбирать нужную мне анимацию?
self прописанный в скипте сцены, которая была инстанцирована будет ссылаться на тот нод, к которому прикреплен скрипт?
> отдельная сцена = класс
Нет. Отдельная сцена - файловый ресурс, который подгружается в дерево сцен и по инструкциям этого ресурса в дереве сцен создаётся поддерево (ветвь).
На этом уровне классов нет, есть ноды, которые все - единый класс Node. А уж какой потомок класса Node, это задаётся либо ресурсом либо скриптом и влияет только на него самого и его ветвей в дереве.
Ещё раз, в дереве сцен нет ООП, нет наследования.
> Инстанцирование = создание объекта этого класса.
В ООП = да. На том уровне, на котором ты создаёшь инстанс из класса. На уровне дерева сцены есть только добавление ветвей: add_child() - что будет у тебя в скобках - зависит только от тебя.
> self прописанный в скипте сцены, которая была инстанцирована будет ссылаться на тот нод, к которому прикреплен скрипт?
И тут, не зная всего вышеописанного мной, ты скрестил ежа с ужом.
Скрипт сцены - это скрипт-расширение класса, указанного после директивы extends! Если в ресурсе TSCN указан тип (класс) Sprite и указан скрипт my_sprite.gd, то при создании инстанса из PackedScene будет создан класс-потомок Sprite c расширенным функционалом. Посмотри, как это выглядит в рантаймовом дереве (во время выполнения проекта нажать вкладку "удалённый" в панели с деревом сцены).
Поэтому, в выполняющемся проекте не будет никакого нода, на который должен ссылаться инстанс спрайта, все методы будут в нём, как рсширения, self, как и положено будет ссылаться на сам инстанс.
ИДИ НАХУЙ ТУПОЙ ДОЛБОЕБ
ТЕБЕ УЖЕ СТО РАЗ ПОЯСНЯЛИ
В РАМКАХ ПРОЕКТИРОВАНИЯ СЦЕНА = КЛАСС, ИНСТАНС = ОБЪЕКТ
ВОТ ОФИЦИАЛЬНАЯ ДОКУМЕНТАЦИЯ
https://docs.godotengine.org/en/3.1/getting_started/workflow/best_practices/what_are_godot_classes.html
ИДИ НАХУЙ ТУПОЙ ДОЛБОЕБ
ТЕБЕ УЖЕ СТО РАЗ ПОЯСНЯЛИ
В контексте инстанцирования речь идёт о времени выполнения, в котором существует только дерево сцен.
ТУПОРОГАЯ ИДИОТИНА, БЛЯДЬ, САМ ЖЕ НЕ ЧИТАЛ СВОИ ССЫЛКИ
> User-created types are not technically classes. Instead, they are resources that tell the engine a sequence of initializations to perform on one of the engine’s built-in classes.
Блять как же я с тебя сгорел.
ДЕРЕВО - ЭТО ПРОСТО ДЕТАЛИ РЕАЛИЗАЦИИ ВНУТРЕННОСТЕЙ ДВИЖКА!
С точки зрения ПОЛЬЗОВАТЕЛЯ движка (разработчика игры)
Сцена = класс
Инстанс = объект класса
Сигналы = методы
С тобой говорить просто невыносимо
Это примерно как если бы кто-то сказал:
Я хочу сделать в ООП-Хуитоне класс, который наследуется от другого класса
А ты бы начал доказывать:
Никакого ООП не существует!
Есть только запись в структуре HuitonObject! И там указатель на другой HuitonObject! А никакое это не наследование!
Да всем насрать как это технически сделано, блджад!
>User-created types are not technically classes
И че блять!
А еще там написано первой же строчкой
In Godot, scripts and scenes can both be the equivalent of classes in an Object-Oriented programming language.
As a result, many best practices in Godot boil down to applying Object-Oriented design principles to the scenes, nodes, or script that make up your game
Вот когда начнёшь читать дальше первых строчек, тогда и появятся у тебя игры.
Ты не проецируй, я себе скачал еще УЕ4- лучший из проприетарных движков. Так что я могу сравнивать с лучшим из опенсорс движков - Годотом. И что такое "выбрали не тот двиг"? Это не семья, движок всегда можно сменить. Для одних задач один, для других другой.
Правда юпити уже в пролете, это да.
Они там вообще не собираются чинить косяк 2017+? Хуево это.
Классный уход от темы, одобряем. Это как на личности переходить, но в среде анонов.
>>12135
>>12117
Ну вот смотри. Я создаю отдельной сценой нод. Назовем его UnityFag. Повесим на него скрипт. Запихнем несколько переменных Honor, Hp, и Agressiveness. Напишем пару функций отвечающийх за что-нибудь.
Это по-сути, готовый экземпляр, как я понимаю. Но мы его воспринимаем как класс, ибо далее:
_Динамически_ начинаем инстанцировать одного за другим UnityFag-ов в количесте N штук в нашу главную сцену, которую назовем, скажем GodotThread. Пусть методом add_child(). Но при инициализации вызываем условный сторонний метод, который начинает колдовать с характеристиками. Итого получаем кучу экземпляров условного класса.
Я думаю, методом костылей можно реализовать и инкапсуляцию, и полиморфизм, и наследование - если все это понадобится.
Да, я пользуюсь утиным методом определения сущностей. Если что-то хрюкает, имеет пятачок и сидит в луже, то это вполне возможно будет свинья, хоть под это определение подходит куча анонов, засирающих этот тред срачем.
Вот Lua блядь нихера не поддерживает из коробки ООП. Его там блядь нет. Но его можно сделать на Lua. И ни один хуй - ни разу ни под одной статьей на хабре из десятка посвященных реализации принципов ООП, не написал "это нихуя не ооп, потому что вы все хуи, а не разработчики."
Выше в тред кидали бенч на i7 / 1080 ti, там у гондоти 10 фпс, у юнити 60. Тоже некрожелезо?
>играй в 800 на 600
Я бы может и поиграл, да гондотя не поддерживает нативный фулл скрин, расширение в игре в на годоти совпадает с расширением рабочего стола
Я так делал, но там в основном все демки с одной сценой в которую уже добавлены все элементы игры. Есть несколько где используется инстансинг, но меня больше интересует как правильно удалять объекты из сцены, то как я пробовал удалять они удаляются, но всё равно, как я понял, остаются в памяти.
Уделал хейтера, там 20 фпс а не 10.
Поиск по странице по слову i7. Как ты дожил до своих лет с таким интеллектом? Впрочем, неудивительно, учитывая что ты пользователь годота.
РЯЯЯ СТОЛЬКО СПРАЙТОВ НИНУЖНА, ТОЛЬКО ВЫИГРАЛИ! через 5.. 4... 3.. 2.. 1..
>у гондоти 10 фпс, у юнити 60.
Уникальная архитектура от программиста-самоучки. Он по-ходу запилки годота узнает о том, что рассказывают на 1-2 курсе универа.
Опа, а вот и первокур вылез, который думает что все знает об архитектуре, только почему-то ничего не создал, в отличии от автора Годота, известного во всем мире.
Так и ты ничего не создал общественно значимого, чтобы твое положительное мнение о годоте что-то значило.
Классно ты меня приложил. есть страница моего кода, которая используется в 90% девайсов на планете, но тебе виднее что я создал общественно значимого
Линус, залогинься.
Ну в таком смысле, да. Согласен.
Если хочешь, как в юнити, делай пикрелейтед. Но есть один нюанс. Два. Жёлтеньких треугольных нюанса. Поэтому, совсем как в юнити не получится. Пикрелейтед2.
> но всё равно, как я понял, остаются в памяти
Через пару фреймов их сжирают лангольеры сборщика мусора.
А ты что думал? Не удивлюсь что и Джон Кармак юзает годот!
Вдогонку вариант скрипта из пикч выше:
Вы можете коротко ясно сказать на чём проще сделать и быстрее игру 2д и 3д на Годноте или Юнити?
Одинаково, но у юнити больше плюшек.
Переведено с английского языка.-Allegro - это польская платформа для онлайн-торговли. Управляется Allegro.pl Sp. Z O.O. которая была образована в 1999 году и впоследствии приобретена онлайн-аукционом QXL Ricardo plc в марте 2000 года. QXL Ricardo plc изменила свое название на Tradus plc в 2007 году и была приобретена Naspers в 2008 году. Википедия (Английский язык)
Вот так бы сразу, пентюх.
Нет, украл у Хуана Годот и ни копейки ему не плачу.
В настройках проекта ввинти максимум графон.
И вот наконец я самостоятельно нашёл решение (когда придумывал название методу-велосипеду, который теперь удалю):
snapped_vector = unsnapped_vector.normalized().snapped(Vector2.ONE)
да ты серьёзно тут ищешь какую-то помощь? лол. тут двачедауны сидят порофлить. а информацию надо черпать на гамедевелоперских форумах, ёпта. уже всё до тебя написано и на форумах и сайтах расписано.
Не помню, если бы заметил, обязательно помог бы. В этом треде всегда помогают. Кроме юнитисерунов, конечно.
Я везде ищу.
>>12342
Помоги ещё вот с чем. На радостях от обнаружения snapped() я кинулся ещё один свой велосипед переписывать и удивился тому, что мой велосипед работает так как мне надо, а метод выдаёт хуиту. Пикрелейтед закомментирована попытка перевести с велосипеда на метод.
Задача: Имеем виртуальную сетку с заданной величиной ячейки. Нужно вернуть вектор, описывающий центр ячейки, ближайшей к исходному вектору. Или, проще говоря, округлить входной вектор до размера ячейки.
Так ты и ни одной игры еще не сделал. Загрузить одну модельку на пустую сцену и получить 60 фпс - охуеть достижение.
Приходи как будет готовая игра.
Хотя кого я обманываю, мы оба понимаем, что этой игры не будет. Верить в возможность создания полноценной законченной игры на годоте - это как верить, что из жидкой дрисни можно построить небоскрёб
Законченных игр не бывает, нюфажина. Бывают только те, над которыми остановили разработку.
Ну тогда ладно, будем считать, что ты сделал игру, загрузив в пустую сцену модельку, скачанную с сайта с бесплатными ассетами.
Прямо как типичный юнитипидор с ассетом за 200$ на передвижение модельки?
Ловите школьника, который о разработке ПО ничего не слышал.
- есть (условно) тактическая стратегия
- она требует соответственно многооконность/многоэкранку. Ну то есть, не наличие нескольких мониторов, а возможность переключаться с одного на другой экраны. Например, 1) глобальный экран 2) графики 3) торговля 4) что-то еще.
- нужна именно многоэкранка, а не "всплывающие окна"
Я планирую реализовать это как инстансы отдельных сцен, корневыми узлами которых будет canvasчто-тотам. Все содержимое их будет обновляться при вызове конкретного окна, которое будет "выплывать" наверх.
Управлять всеми процессами будет отдельный нод engine так:
1) Game
2) UI, Engine
3a) UiTrade, UIGraph, UIGlobal, 3b) EnEconomics, ... etc.
Я правильно все делаю, или велосипед изобретаю?
я написал, что у меня IQ близкое к гению, а ты написал, что ты даун с отрицательным IQ и порвался
Дополнительный вопрос:
коем хуем можно сделать пиксельно-точную высоту прыжка? Есть какая-нибудь формула уровня: Сила прыжка - (гравитация*дельта) чтобы посчитать насколько высоко эту силу нужно выставить. Ибо я заебался делать десятки тестов, чтобы тупо найти десятичное значение силы для прыжка.
PS: Всё время речь шла про KinematicBody2D
А как годот обрабатывает тайлмап'ы? Это я к моменту о оптимизации и производительности в 2Д
Допустим есть карта уровня для платформера. Пускай будет только графика, без коллизий.
Можно поступить двумя способами:
1) Создать карту как тайлмап, и закинуть его в сцену как "Tilemap"
2) Создать один большой png спрайт карты и закинуть его в сцену как "TextureRect" или "Sprite"
По затратности создания эти варианты приблизительно одинаковы, а вот какой будет лучше по производительности?
Правильно всё делаешь, только имя Engine уже занято.
А в целом годно. У меня так юзеринтерфейс построен: в корне его нода со скриптом, содержит метод ShowUI(PanelIndex) при вызове метода панель, которая указана, отображается, остальные скрываются. Ты ещё можешь дополнительно при скрытии делать им стоп-процесс.
> Есть какая-нибудь формула уровня: Сила прыжка - (гравитация*дельта) чтобы посчитать насколько высоко эту силу нужно выставить.
Боюсь, тут придётся открывать учебник по кинематике. Ну или статью в википедии. https://ru.wikipedia.org/wiki/Кинематика
>>12509
> какой будет лучше по производительности?
Тайлмап заявлен как более производительный. Только вот проблема в том, что на картах нвидия он моргает как сучка.
> Только вот проблема в том, что на картах нвидия он моргает как сучка
в таком случае, использовать сразу спрайт всего уровня будет более универсально? Карт нвидиа же больше, чем амуде и встройки интел.
другой кирилл
Благодарствую. Возьму на вооружение.
Я пошёл другим путём. Откатился на ГЛЕС2. Уж больно тайлмапы удобны. Но тут сам решай.
>Тайлмап заявлен как более производительный.
А можно подробности, где заявлено?
А то все что я нашел в мануале это: "they are optimized for drawing large numbers of tiles", а это вполне может быть "оптимизед" по сравнению с закидыванием кучи спрайтов на сцену, а не с рисованием одной большой текстуры цельным куском.
> Только вот проблема в том, что на картах нвидия он моргает как сучка.
У меня не моргает на нвидии. Кроме тех проблем с двумя мониторами и фуллскрином, что я выше по теме отписывал, проблем с отображением нет.
> У меня не моргает на нвидии.
Везёт тебе.
> А можно подробности, где заявлено?
Ой... В том мануале, да...
Неосилятор-ложкоблядь, зачем ты проецируешь свои юнитипроблемы на нас? У нас игры есть, тормозящие, моргающие, но есть. А у тебя нит игор, только коллекция ассетов. Вообще, чем больше юнитимрази срут ИТТ (пока годотогоспода игоры делают), тем больше я убеждаюсь в гениальности юнитеков: создали платформу, на которой можно делать ассеты и продавать их. И уже который год тянут бабло из школоты.
>>#UNDEFINED
Классная игра! Спасибо, Абу!
Зачем тебе? Каких то питоновских либ в гдскрипте не хватает или че?
Я так понимаю что единственный способ добавить модуль - пересобрать сам годот. Ну соответственно надо установить питон 3.5, pip, scons, студия/mingw Не знаю какая у тебя ОС, я собираю батником на основе этих
https://gist.github.com/Calinou/6cd0c45f994b31f281eec66f0eeb401d
https://gist.github.com/Calinou/44edbd5d9c4a2ac0dbc8f165b8b7f0ce
https://gist.github.com/Calinou/4a5eded8c811193e4618ebe77f750b7f
Смысл думаю понятен
Подробные инструкции тут https://docs.godotengine.org/en/3.1/development/compiling/index.html
>>12393
По вашему всякие ГТА, майнкрафты - незаконечнные игры же выходит.
Там постоянно пилят новый контент, новые моды, новые механики.
Даже старые игры когда их еще записывали на болванки или картриджи, там были ревизии и патчи, а теперь их начали переиздавать тоже постоянно дорабатывая что-то.
Игры по типу Скайрима вообще выпускаются голыми недоделками, чтобы их сами пользователи доделывали.
В дрочильнях то же самое, новые уровни, новые персонажи, новые абилки. Даже если не упоминать сам контент (который, как утверждают на гд, важнее программирования), то абилки то требуют чтобы их накодили.
В общем, единственное что может остановить разработку - это когда директор проекта скажет все, мы его закрываем.
И то это не гарантирует, что люди не начнут сами дорабатывать модами, как к ToEE до сих пор Circle of Eight выходит, или например фанаты сейчас переписывают эмуль сервера давно закрытых City of Heroes и Dungeon Runners
>Там постоянно пилят новый контент
Покупай новое длц за 9.99$
>новые моды
Моды это личная инициатива рандомного челика
>а теперь их начали переиздавать тоже постоянно
Купи любимую игру еще раз за 49.99$
>В дрочильнях
А в не дрочильнях?
Тетрис это законченная игра или может надо модами ее допилить? Или марио? Нахуй проследуй короче, чухан безигорный.
Дурачок, в Легаси Майне нет длс, но каждый месяц по девять лет новые обновления выходят
Кубачер
В чем суть твоего возражения? Какая разница, доделывал игру рандомный челик, или оффициально? Было это длц платное или бесплатное? Если что-то доделали, то значит оно было незаконченным.
Тетрис постоянно доделывают, всякие новые механики, какой то режим где больше 4 линий можно удалить если накопить бонусы, мультиплеер, спамить противнику мусором и мешать.
В марио каждый день новые "невозможные" уровни добавляют.
Законченность игры определяет только менеджер, который говорит: релизим так как есть! Это все произвольое деление на тайтлы.
>Если что-то доделали, то значит оно было незаконченным.
В голос с этого философа. Где еще встретишь философа, как не в годот-треде - игр нет, а попиздеть хочется.
>Тетрис постоянно доделывают, всякие новые механики, какой то режим где больше 4 линий можно удалить если накопить бонусы, мультиплеер, спамить противнику мусором и мешать.
>В марио каждый день новые "невозможные" уровни добавляют.
Господи какой ты тупой. Опять приравнивает высеры васянов к "допиливанию" игры.
Падажжи. Но оФФициальные марио и тетрисы выходят каждый год. То есть, получается, дядя из фирмы заверял тебя, что марио точно-точно законченная игра, а потом брал и дорабатывал.
А фильм Терминатор 2 это доработка Терминатора 1. Хуль не всё получилось сделать в первой части, накатили патчик так сказать, с длц в виде жидкого Роберта Патрика. Ты такой тупой что уже даже не смешно
Тогда не получилось, а сейчас получается, и с Хоббитом, и с Мстителями: Финалом. боже какой же ты еще ребенок
Бери выше, конец любого фильма или игры это доработка его начала. Соснули все! на самом деле соснули только годотеры
Твой младший брат-дебил это доработка тебя.
Вот именно, сначала юнитидолбаебы, а потом это.
:3
Я уечепровокатор. Среньк в тред.
Название сайта как бы указывает годотодетям на их место.
"ета другое!!1!!11!1",- с обосранными штанами сейчас заявит чмоня, но его обосрамс было уже не спрятать.
>название сайта
ебать аргумент. А знаешь, что в школе изучали двадцать лет назад? Плюсы. Давай, говори теперь, что на плюсах пишут только школьники, мистер-охуительная-логика
Пришли к тому что годот это русский движок, найс.
Я жду
>что там с взрослыми играми на годоте?
Вот какая то на патреоне. Инб4 взрослая игра не взрослая.
>на патреоне
Демка, которая никогда не будет доделана, в том числе и из за ограниченности движка.
Кстати видел там еще одну игру на годоте, и она тоже была про фуррей. То есть годот в основном юзают больные извращенцы.
Да да я, а что такого?
Только инфантильный долбоеб будет дрочить на рисованную девочку с ушками и хвостиком тем более в игре на годоте. То есть это игра для прыщавых уебанов которые остановились в развитии на отметке 15 лет.
Падажжи, но вопрос был не про недоделанность на этот раз. Ты снова сдвигаешь ворота.
Взрослые доделывают игры, а тупые школьники нет.
Про взрослые игры писал я, и пояснил в скобочках: это профессиональные коммерческие релизы.
Так, слово релиз ты только что добавил, это раз.
Коммерческие - человек зарабатывает на ней
Профессиональные - человек зарабатывает не ней.
Или у тебя для этих слов тоже альтернативные определения?
Мы наблюдаем обычные манявры юнитипидарков
>ЭТИ ПЛАТНЫЕ ИГРЫ НЕ ИГРЫ! ПАЧИМУ НЕДЕЛАЮТ ГТА НА ГОДОТИ??
То есть эти манявры будут продолжаться бесконечно, потому что даже игра похожая на ГТА не будет являться ГТА.
И снова ты, пытаясь маняврировать, обосрался.
Толстое мнение.
Эти "манёвры" будут продолжаться пока на годоте не появится ХОТЯ БЫ ОДНА ИГРА.
Игра, это не поделка школьника на коленке, который запустил годот и по тутору сделал за неделю на коленке хуйню уровня какого-нибудь юнитековского асетфлипа, который делается за 3 минуты, а действительно продукт.
Что-то хотя бы уровня сабнавтики, холлоу найта, харстоуна, капхеда, да или хотя бы дарквуда, зе форест, римворлд, ну на крайняк файявоч или аутер ворлдс.
ХОТЬ
ОДНА
ИГРА
НА
ГОДОТЕ
> Что-то хотя бы уровня сабнавтики, холлоу найта, харстоуна, капхеда, да или хотя бы дарквуда, зе форест, римворлд, ну на крайняк файявоч или аутер ворлдс.
Я смотрю, на юнити у тебя каждая первая игра не браузерная параша типа БАТЛЫ.
Юнити - не движок, а конструктор, причём, строго определённого жанра игр - поиска записок в лесу со слендерманами и анубисами. На этой параше даже два дэ графика реализуется через жопу, а не как у всех.
> эти "маневры" будут продолжаться пока жив хоть один тугосеря, которому нечего делать, кроме как СРАТЬ В ЧУЖОМ ТРЕДЕ.
>Срать, это вам не мешки ворочать. Это надо найти время, место, придумать как и обо что триггернуть собеседника, это вам не пукнуть в лужу.
>Что-то уровня полыхания пуканов, взрыва пятой точки, дымления ануса.
>ИГОР
>ДЕЛАТЬ
>НЕКОГДА
>СРАТЬ
>В ЧУЖИХ
>ТРЕДАХ
>ВРЕМЯ
>ЕСТЬ
Давным давно. Годоточухан даже такую простейшую хуйню воспринимает как дар небес, лол.
На годоте много игр, больше одной. Так что твое утверждение уже ложно.
>асетфлипа
Откуда на годоте ассеты? Вы ж говорили там самому все писать надо.
>Что-то хотя бы уровня
В чем определяется уровень? Формализуй. Иначе ты продолжишь маневрировать "это не игра Х, поэтому несчитово".
Привыкай. Тут если ты не вылизываешь лохматое очко Хуана, автоматом становишься толстяком.
Толсто.
На Itch.io весь список
Когда-нибудь. Зачем за нас бедных переживаешь?
А кстати да, где хотя бы одна ГТА на годоте? На юнити сотни ГТА-клонов разной паршивости, но они хотя бы существуют.
> Че когда в годот батчинг спрайтов завезут?
Не завезут, международным консорциумом уровня гондотитя было постановлено, что 3 спрайта на 20 фпс достаточно для любой современной игры.
А еще на юнити вереница майнкрафтов разной паршивости.
Знаешь, странная манера - выставлять детские рисунки из начальной школы как какое-то достижение. Лучше уж ничего не выставлять.
Как твоё ёрничество создало ХОТЬ ОДНУ ИГРУ НА ГОДОТЕ?
Никак.
>>12928
А ты можешь годот обсужать отдельно от юнити или годот не существует отдельно от юнити?
Ответить про годот на вопрос про годот хотя бы в теории возможно?
>>12929
А ты можешь годот обсужать отдельно от юнити или годот не существует отдельно от юнити?
Ответить про годот на вопрос про годот хотя бы в теории возможно?
>>12933
>На годоте много игр, больше одной.
Тогда наверное тебе не составить труда показать хотя бы одну настоящую игру на годоте. Чтобы это была действительно игра, законченынй коммерческий продукт, а не недельная поделка школьника по тутору, которые выставлен в потешном шоукейсе.
>Откуда на годоте ассеты?
Насколько часто тебя ебошили по голове, что ты прочитав это
>хуйню уровня какого-нибудь юнитековского асетфлипа, который делается за 3 минуты
задал самый уебанский вопрос в мире, которым можно было на это ответить?
Когда тебе клиент говорит "Бургер, одну картошку фри и колу" а будем честны, годотеру другой работы не найти, ты тоже начинаешь ёрничать вопя на весь макдак АТКУДА В КОЛЕ КАРТОШКА?
>В чем определяется уровень?
Я тебе привёл примеры игр. По ним ориентируйся. Я понимаю, чтоб для твоего уровня интеллекта это очень сложная задача, но ты всё же постарайся.
>хотя бы одну настоящую игру
Ваши игры не игры, ясно.
>законченынй коммерческий продукт
Мы уже разобрали несостоятельность законченности. Коммерческие продукты выставлены на итчио, стиме и т.д.
> недельная поделка школьника по тутору, которые выставлен в потешном
Это ты сейчас 99%юпити "проектов" описал.
>Я тебе привёл примеры игр. По ним ориентируйся.
Ты не сливайся, а формализируй критерии, там, в количестве объектов, текстур или геймплейных выборов, а то когда тебе приводят ты отвечаешь что ваши игры не игры. Зачем мне тратить на тебя время? Сначала ты потрать на формулирование своего тезиса, тогда будем с ним разбираться.
>недельная поделка школьника по тутору
И даже такие на Юнити выглядят лучше, что за зрада такая...
>пук пук пук пук А ВОТ ЮНИТЕЕЕ
Так ты хоть одну игру приведёшь или так и продолжишь ртом газы пускать и про юнити кукарекать?
Пиши формальные критерии, хуесосина. Где посмотреть "хоть одну игру" я тебе написал, если твоих куриных мозгов не хватило открыть сайт - твои трудности.
Жиробасина, годот в одной лиге с уе4ем по визуалу, с юпити тут сравнивают только залетные горящежопые ассетовозякатели.
А что формальные критерии?
У коммерческих игр, сделанных на Годоте, есть эти критерии. Доволен?
Это копия, сохраненная 12 января 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.