>>583342 (OP) Ну давай, расскажи, почему человек который реально хочет сделать игру должен взять вечнонедоделанный нищенский кастратогодот вместо огромного ахуенного богатого движка юнити?
>>583348 Именно так и делаем. Щас наконец-то принял решение сохранить шапку в отдельный файлик, зашел в тред, скопировал и пойду обратно игоры делать. Удачи!
>>583361 >>583360 Единственная тактика годаунов перевести стрелки с обсуждения годота на другое, ну вот реально, вам просто нечего сказать, нет причин любить говнот, но вы продолжаете сидеть в говне уже по привычке. Давайте к нам в юнититред успешных людей победителей по жизни, будем вместе обсыкать годотирав. Я перестал бояться и пересел с годота на юнити. Блин, я же был такой же заблудшей овечкой как и вы!
>>583363 >Я перестал бояться и пересел с годота на юнити. Нет, ты просто сломался, понял, что настоящий хардкорный геймдев с душой тебе не по зубам, и обмяк, жидко пукнув. Теперь ты сломленный и опустившийся, не сумевший преодолеть трудности, и выбравший для себя путь наименьшего сопротивления. Теперь ты будешь вариться в созданной специально для таких как ты юнити-помойке, наравне с ассет-флипперами, производителями мобильного говна и клонов говна и мочи и прочими опущенными. Тебя даже было бы немного жаль, если бы ты не приходил в тред к годот-господам, чтобы изливать свою бессильную злобу. Это что-то на уровне импотента, который мечтает о том, чтобы насиловать женщин ножом, потому что у него уже давно не стоит его иссохшийся стручок. Вот и у тебя так же, геймдев-импотенция, отсутствие идей, фантазии, воображения, все твои потуги и мысли не стоят больше харчка на асфальте, тебя ни разу в жизни не посещало вдохновние. Ты будешь годами смотреть очередные туториалы по юнити, может даже купишь пару ассетов на мамкины деньги, грустно вздохнув, потаскаешь их по сценке, потом свернешь unity personal edition и откроешь двач, зайдешь в годот тред и напишешь очередной пост про то, как в юнити всё классно, и что годот недоделанное говно. Пройдут годы, твоя грязная непроветренная комната покроется пылью и паутиной, а ты все так же будешь сидеть на продроченном стуле, покрытом пятнами малафьи, перед старым пыльным компьютером, купленным когда-то давно мамой для учебы, в трее будет свернут юнити, а ты будешь продолжать строчить свои посты в годот-тред, со слезами на глазах наблюдая за тем, как движок развивается и эволюционирует, избавляясь от недостатков и багов, как на нём появляется всё больше и больше игр, как открытое сообщество реализует сообщая свежие и интересные проекты с открытым исходным кодом, и читая статьи о массовой миграции инди с юнити на годот. Ты будешь биться в истерике от прожигающей тебя бессильной злобы и зависти, ведь за столько лет ты так и не смог сделать ничего, обладая таким огромным ахуенным богатым движком, как юнити.
Сап, аноны, как думаете, реально запросить пикселя той квест командой в одного ни разу не програмировавшего в жизни (кроме задачек в паскале) анона, бюджета в нихуя и энтузиазмом синусоидального характера?
>>583643 Теперь ты понимаешь, как детектировать семёна: - запостил с мобилы, Т9 нахуярил ерунды, семён не вычитал и сразу отправил - следом отправил ещё пост, якобы ответ на предыдущий, так же не вычитывая, при этом второй пост якобы понимает, что написал предыдущий
>>583685 Типа через ветвления if, циклы и тд? Хотел просто узнать, каким образом делаются разветвленные концовки, где сидят условия, чтобы они выполнялись под конец Найс обьяснил
>>583686 Можно по-разному делать. Ну например, у тебя есть две катсцены. Они запускаются когда ты пришел в какую-то зону. Там срабатывает триггер, и ты проверяешь в скрипте какие-то условия, например что у тебя есть в инвентаре нужный предмет. Или действительно if по переменным (if pogovoril_s_maman=1 then ... else if bandit_reputation >3 then...)
Есть один вантуз (пик1) Пытаюсь экспортировать его в раковину (пик2). Но он не экспортируется. Я так понимаю это из-за того что функция _ready получает значение вантуза один раз. Но засунув вантуз в функцию _process игра вылетает с ошибкой. Куда еще можно этот вантуз засунуть, ну или как правильно все это организовать Обновленная версия игры с раковиной и вантузом: https://yadi.sk/d/VWBylsfr1oNc3Q
>>583693 Короче, как я понял queue_free() уничтожает ноду и все переменные с ней. Поэтому я ее скрыл hide() и деактивировал CollisionShape2D для StaticBody командой get_node("CollisionShape2D").disabled = true
>>583702 Поищи в каком-то из прошлых тредов поясняли за автолоад, в общем делается специальная нода, в которой хранятся глобальные переменные типа таких.
>>583693 >как правильно все это организовать 1. Вантуз сохранён как .tscn 2. В раковине он объявлен в общей области примерно так: var vantuzes : PackedScene = preload("res://vantuz.tscn") 3. Когда в раковине необходимо заспавнить вантуз, вызываем такой код: var vantuz = vantuzes.instance() rakoveena.add_child(vantuz) # Опционально можно добавить вантузу нужное смещение: vantuz.position = Vector2(10, 20) 4. PROFIT!!
>>583750 Всё ясно. У тебя две разные переменные plunger. Тебе надо вантуз класть в инвентарь. Самая простая реализация, заведи у игрока словарь inventory, когда подбираешь вантуз добавляй в inventory: inventory["plunger"] = 1 Далее, в скрипте раковины чекай наличие вантуза в инвентаре: if player.inventory.has("plunger"): if player.inventory["plunger"] > 0: именно так, двумя ифами, and здесь нежелательно делать.
>>583757 > : if player.inventory.has("plunger"): if player.inventory["plunger"] > 0: именно так, двумя ифами, and здесь нежелательно делать. Мастер класс гдскрипта, как можно жить без элвис оператора в 21 веке
>>583762 Это неправильно. Даже если сейчас гдскрипт позволяет, то в дальнейшем Хуану нажалуются, что у него то тут то там unattended behaviour и он это отменит. И тебе придется такой костыльный код с эндами переписывать.
>>583757 Короче как я и думал, Хуан и друзья все сделал хорошо, а ты гонишь пургу..
Variant get ( Variant key, Variantdefault=Null )
Returns the current value for the specified key in the Dictionary. If the key does not exist, the method returns the value of the optional default argument, or Null if it is omitted
Надо просто вызвать if player.inventory.get("plunger") > 0
>>583763 Чтоа? Ты прям шатаешь основы программирования. Если слева от and ложь, то правый аргумент даже вычисляться не должен. Иначе по такой же логике и два ифа подряд нельзя писать - а вдруг язык захочет из переупорядочить и вызвать вторую строчку до проверки на null
Хочу переместить вантуз в шкаф. Алгоритм действий: 1. Рисую открытый шкаф с вантузом внутри 2. Создаю переменную которая считает количество кликов по шкафу 3. Если переменная = 1 то шкаф меняется на открытый шкаф с вантузом 4. Если переменная > 2 то в инвентарь добавляется вантуз, а шкаф снова меняется на закрытый Все правильно?
>>583918 Переменная не вмещает в себя слишком много кликов? То есть ее нужно сбрасывать? >>583922 > Экранные сообщения надо делать совсем иначе. Научишь? :3
>>583935 >>583938 Мм, короче, модуль остался на работе, а дома у меня только костыльный вариант, писавшийся зимой. Предлагаю сделать вместе с нуля прямо ИТТ. Ну или жди до завтра.
>>583926 Че сразу не на Юнити? >>583935 Я не понимаю, нахуя ты костылишь клики. Ты ведь и так делаешь проверку счетчика после клика. Так почему бы не делать проверку на булево значение? По дефолту какое-нибудь door.IsClosed() = true. Если при клике оно тру, открываешь дверь. В противном случае закрываешь.
Минимальная установка годот моно для винды: 1. Скачиваем Годот моно с официального сайта. 2. Скачиваем МС Билд Тулс Инсталлер по ссылке со страницы скачивания годота. 3. Помимо билд тулс в инсталлере указываем дополнительно пакет нацеливания на фреймворк 4.5. Итоговая установка должна быть как на пикчах. 4. ПРОФИТ! Однако, никаких студий не установлено и код на шарпе придётся писать в самом редакторе годота (а там на данный момент нет автодополнения, если не знаете методов - будете огорчены), дополнительный редактор шарп-решений/проектов ставьте по своему желанию. Хоть нотепад++, хоть имакс-вин.
>>583994 штоба C# юзать. Анон пожалуйста не забрасывай тему. Может код писать в студии, а потом его копировать в годот ибо я даун и без автозаполнения даже 2х слов без ошибок не напишу.
>>584024 Спасибо! Вроде понял за что отвечает каждая команда, хотя у меня проблемы с подключением сигналов не через интерфейс (я этого еще не делал). Переписал себе, но не работает. Я сегодня на солнышке перегрелся и у меня голова болит, поэтому я пока отдохну.
>>584048 >но не работает Не просто не работает, а выдаёт сообщение об ошибке, которое надо прочесть, понять и дописать то, что не дописал. Так победим!
>>584058 Нет, все запускается, ошибок не пишет. У меня есть подозрения на то что я ноды расставил не так как ты. Просто Control Notifications в World вставил и все. Но я пока полежу, почитаю документацию.
>>584064 > Просто Control Notifications в World вставил и все. Забыл в комментах написать. Сами сообщения вызываются в других модулях: sink, suit with plunger, stove. В этом вся магия кагбе.
>>584065 >Сами сообщения вызываются в других модулях: sink, suit with plunger, stove. Да я нашел это конечно же. Все, я исправил. Название сигнала в world неправильно написал. on_screen_messages Хочу сделать урон от непогашенной плиты. Туториал на ютубе видел, так что пока отвлекать не буду
>>584642 >Обрати внимание на префикс "user://" Давай, ты накидаешь у себя проектик с двумя функциями, загрузка и сохранение, потестируешь в браузере, хоть с префиксом, хоть без, а потом уж будешь советы давать, окда?
>>584645 Могу и накидать (сам знаешь куда) А пока вот цитата из документации по веб версии
Using cookies for data persistence Users must allow cookies (specifically IndexedDB) if persistence of the user:// file system is desired. When playing a game presented in an iframe, third-party cookies must also be enabled. Incognito/private browsing mode also prevents persistence.
The method OS.is_userfs_persistent() can be used to check if the user:// file system is persistent, but can give false positives in some cases.
Значит, в самом годоте это есть, просто ты не настроил.
>>584648 Да причём тут Хуан? Знаешь как сделать - покажи. Не знаешь? - Нечего постить копипасту из доков. Есть знаешь ли разница между дельным советом и бессмысленными пуками копипастой.
>>584650 Ну посты в треде же побежал создавать. Странный ты какой-то. Сидит, постит хуйню на дваче, а когда предъявляют за хуйню, пиздит что занятой весь такой.
>>584651 >написать пост >придти домой, включить компьютер, написать проект, экспортировать Действительно одно и то же. Уже бегу, ты такой не терпеливый.
>>584655 Спасибо! У меня тоже заработало. Нашлась причина, почему не работало: ПО ВИДИМОМУ, ПРЕДПОЛОЖИТЕЛЬНО при закрытии вкладки браузера не отрабатывают функции _exit_tree() как фиксить не представляю даже. Браузер прибивает приложение мгновенно. Попытки периодически сохранять дают неудовлетворительные результаты (при открытии открывается "чекпоинт", а не ожидаемое место на котором остановился)
>>584692 >Как получить событие Click мышкой по объекту, не нажатие а именно отпускание? Пофиксил тебя. А получить так: if event.is_pressed(): ---получаем нажатие else: ---получаем клик (отпускание)
>>584699 Ну охуеть, почему разработчики просто не добавят "клик" в базовый функционал? Это же основные вещи, можно сказать, которые есть в других движках, к чему эти изъебства?
>>584699 Собственно говоря, такая же примерно логика у оконных приложений, только там привязка к координатам: Для удобства можешь объявить себе signal click() После чего в обработке инпута, если важный тебе критерий не изменился между нажатием и отпусканием, то делаешь emit_signal("click"), в дальнейшем к этому сигналу уже можно приконнектить отдельную функцию. А в ещё более дальнейшем можно объявить клик с нужными параметрами, например, те же координаты или инстанс кликнутого объекта или время по гринвичу в момент клика и передавать их при эмите.
>>584703 Потому что ты зумер, для которого программирование началось с юнити и не знающий азов ввода-вывода. годот в вопросах работы с мышкой ничем не отличается от классических приложений, в нём меньше синтаксического сахара вроде объявленного из коробки сигнала click() из поста выше. Чем проще система, тем меньше в ней можно сделать Годот при кажущейся простоте (ууу годоскрипт за два дня) отнюдь не прост и даёт в руки годотера доступ к железу на любом желаемом уровне абстракции. Вплоть до отрисовки вершин в опенгл вручную.
>>584707 >Чем проще система, тем меньше в ней можно сделать Что же ты там такое задумал, годотир, прямо что не годотир, то супер идеи, которые невозможно реализовать на юнити.
Хули так оживлённо в треде как раз, когда мне спать охота? Тральте друг друга пять часов. А я утром почитаю. >>584709 >невозможно реализовать на юнити Бесплатно, без роялти, без неотключаемого сплешскрина. Как сделаешь на юнити, так сразу перейдём.
>>584707 Сам ты зумер, игровой движок и нужен затем, что бы не ебаться с низкоуровневой поеботой, а в краткие сроки запилить то, что тебе нужно. А если тебе кидают обрубки, а дальше сам ебись, это не есть хорошо. Клик был доступен еще с раннего флеша и далее в остальных гейдев движках с визуальным инерфейсом, а тут такой элементарной вещи нет.
>>584803 >Ты сначала найти то, что нельзя реализовать в Юнити и можно реализовать в Годоте Полноценное дерево компонентов, без костыльных нестед префабс. С полностью свободной композицией, включающей возможность перестройки ветвей дерева на лету.
>>585291 >This project is a separate fork precisely because the devs refused to merge it into the core engine, motivating their decision with "C++17 is too hip and all our contributors know is C++03, so we'd rather stick to 03". >I have a feeling, that it won't be Godot that will blow other engines out of the water. It will be some fork of it.
>>585291 Я уже обсуждал с vblanco. Эта работа не будет объединена с мастером (но может использоваться как ссылка), так как весь код рендеринга переписывается для порта Vulkan. Подобные (и даже большие) улучшения производительности следует ожидать от Godot 4.0.
Помочь объединить это с веткой 3.0 не стоит, потому что это потребует значительного времени (как слияние, так и последующее внесение исправлений, поскольку текущий код работает медленнее, но он очень хорошо протестирован и стабилен). Прямо сейчас все внимание сосредоточено на рендеринге 4.0, который мы стремимся выпустить как можно скорее.
Полноценный десктопный рендер тут когда-нибудь будет завезен? А то глес-огрызки, не способные вытянуть 60фпс на топовых видеокартах в сценах из десятка спрайтов - это издевательство какое-то.
>>585376 Надо читать, что пишет тебе отладчик. Вот такой код работает без проблем: > if Input.is_action_pressed("ui_up"): call_deferred("set_mode", RigidBody2D.MODE_CHARACTER) > if Input.is_action_pressed("ui_down"): call_deferred("set_mode", RigidBody2D.MODE_RIGID) > if Input.is_action_pressed("ui_left"): add_central_force(Vector2.LEFT) > if Input.is_action_pressed("ui_right"): add_central_force(Vector2.RIGHT)
>>585315 Не очень понял, как эта ссылка относится к моему вопросу. Там обсуждают 3д, и глес3, а я говорил про 2д и глес2 вообще. И ни одной из упомянутых проблем там в принципе быть не может. Тут тупо рендер не вывозит. Даже виндовые блиты быстрее работают.
>>585446 >experimental fork of Godot that increases performance by around 50% and makes the engine no longer CPU bound >CPU bound годот CPU bound, то есть нагрузка на процессор идет больше чем на видеокарту, и фпс начинает проседать из нехватки процессора
>>585480 Какая там нахрен может быть нагрузка на процессор от пары десятка спрайтов? Скопировать один vbo мизерного размера? Проверял уже и внутренним дебаггером, и внешние тулзы подключал - вычислительной нагрузки никакой практически, 1-2 микросекунды на фрейм приходится. Всё остальное время занимает работа видеокарты. И тут именно что глес2 не вытягивает, банально не может отрендерить двадцать-тридцать спрайтов за 16 миллисекунд.
>>585638 >Проверял уже и внутренним дебаггером, и внешние тулзы подключал - вычислительной нагрузки никакой практически Спасибо тебе за труд, бро! Перехожу на годот. Теперь я с вами!
>>585638 Ты отморозок потому что. Это пишет человек форкнувший годот и оптимизировавший его ядро в 2 раза. То есть как минимум разбирающийся в движке больше всех ИТТ. Раз он говорит что рендеринг медленный из-за процесора, то значит это так и есть. Тормоза не из-за того, что годот там что-то майнит грузя на 100% например, а тупо процессор простаивает во время обновления энтитей ожидая чтения из памяти из-за неоптимизированной архитектуры.
>>585638 >глес2 не вытягивает, банально не может отрендерить двадцать-тридцать спрайтов за 16 миллисекунд У всех может, а у годота не может! Опять в драйверы баги вписали чтобы годот дискредитировать.
Меня в очередной раз заебала эта проблема с движками. Казалось бы в этот раз нашёл что-то близкое к идеалу, но тут изо всех щелей лезут проблемы опенсорса - создатели занимаются всякой хуйнёй, вместо того, чтобы допилить движок до приемлемого состояния, хотя казалось бы допиливать-то осталось самую капельку. И ведь после Годота переходить на что-то другое будет очень трудно, так как у него есть свои несомненные плюсы, и это прежде всего воркфлоу, удобный, понятный и интуитивный, и позволяющий конструировать архитектуру игры с огромной скоростью, практически ничего не мешает работе, всё на своих местах, нет необходимостей совершать десятки ненужных действий или лазить по десяти вложенным меню для совершения простых и регулярных действий(чем сильно страдают другие движки). Вот это всё, вот от этого очень трудно отказаться. Но блядь, когда у тебя дело подходит к релизу, и ты понимаешь, что рендер говно и производительность не вытягивает даже платформер с десятком спрайтов - это пиздец. Я уже пришёл к тому, что начинаю годот использовать как редактор уровней, и постепенно просто пишу свой движок с нормальным рендером, использую структуру нод годота.
>>585812 >Но блядь, когда у тебя дело подходит к релизу, и ты понимаешь, что рендер говно и производительность не вытягивает даже платформер с десятком спрайтов - это пиздец.
Вот поэтому перед выбором движка нужно всегда искать примеры игр созданных на нём и уже потом отталкиваться от этого искать компромиссные решения.
Баланс между картинкой, сис.требованием и производительностью.
>>585905 Годот это лагающее дерьмо, там может что угодно тормозить. Ну с 2д может и вытянет, а вот в 3д полгода назад достаточно было закинуть один кубик, запечь воксельную пробу и при приближении камеры к кубику фпс на 1050ти проседал до 35.
>>585909 >Ну с 2д может и вытянет Нет, не вытянет. Там каждый листик шевелится. Это большая нагрузка на апдейт всего. Годот и от меньшего числа апдейт начинает заикаться.
>>585977 >может было, может не было Не выдумывай, годаун, не может, а точно было, я в фейсбук говнодота постил исходник и годауны подтверждали и каялись. Хули ты отрицаешь ущербность говнодоты там где за 5сек проверить можно, ебалай.
Решил я попробовать вкатиться в годот. Скачал 3-ю версию. Начал искать примеры игр написанных на движке и обнаружил, что очень много годноты было написано на 2-й версии движка. Но вот обратную совместимость в 3-ю версию не завезли ни в каком виде. И в связи с этим у меня пара вопросов: 1) Есть ли человеческий способ импорта проектов из 2-й версии в 3-ю? Единственное, что я нашел, это неофицальная версия 2.15 в которой надо ручками поэтапно все конвертировать и проверять. Понятно, что на начальном этапе этого не осилить. 2) Не будет ли такой же херни когда движок доковыляет до следующей версии?
>>586215 >Не будет ли такой же херни когда движок доковыляет до следующей версии? Будет. > Есть ли человеческий способ импорта проектов из 2-й версии в 3-ю? Зачем? Примеры для всего есть под 3.
>>586217 > зачем? Ну я вот конкретно хотел разобрать по косточками Dolphin Island 2, т.к. хотел нечто подобное замутить. А мне хреном по морде. Примеров да, куча, но все самые годные как раз делались для 2-й версии и почти во всех висят дисклеймеры о том что авторы хер клали на перевод их в третью. Что наводит на печальные размышления.
>>586215 Вкатись во вкладку "шаблоны" в окне выбора проектов, а так же во вкладку "AssetLib" в окне редактора. Ты будешь удивлен, но большинство годноты, которую ты нашел для 2х в интернетах, уже переведена для 3х и скачивается прямо в редакторе.
>>586260 Вот я кстати из шаблонов открываю пример kinematic body 2d platformer проект, запускается, код можно посмотреть, но например когда лезу в тайлмап, редактор крашится.
>>583342 (OP) Анончики, а как при рисовании тайлмапа в годоте можно выделить, подвигать уже нарисованные тайлы? А то я могу только левой кнопкой мыши установить тайл, а правой стереть. Как ни пробовал переключать иконки вверху редактора = эффекта нету.
И чтобы два раза не вставать, как заполнить прямоугольную область маленькими тайлами, чтобы не устанавливать каждый по отдельности?
>>586454 Пробовал. Все уроки по этой теме построены по одному шаблону. Сначала 80% видео объясняется как создавать тайлсет. А потом рисуют карту единичными тайлами. На мои вопросы ответов не нашел ни в одном.
>>586435 Двигать нарисованное - никак, такой функционал не предусмотрен. Прямоугольного заполнения тоже нет, но есть заливка, можешь обрисовать контур и залить его. И вообще, используй внешние редакторы, Люк.
>>586215 >>586248 Оно должно наводить тебя на правильные размышления, а именно, что 3я версия - сырое недоделанное говно, которое использовать можно будет не ранее, чем года через два(если вообще можно будет, с нынешней-то тенденцией разработки). Так что скачивай 2ю версию, которую можно использовать для 2д по крайней мере.
>>586462 >Двигать нарисованное - никак, такой функционал не предусмотрен. Э-эх. Пиздец какой-то. Нахуй он тогда нужен то? Я в таком режиме пару комнат к платформеру нарисовать попытался - заебся, а всю игру так вообще дропнуть проще. >Прямоугольного заполнения тоже нет, но есть заливка, можешь обрисовать контур и залить его. >И вообще, используй внешние редакторы, Люк. Придется, похоже. Либо tiled попробую, либо из своего редактора экспорт сделаю.
>>586471 >Нахуй он тогда нужен то? Чтобы нарисовать карту из тайлов, например. А чтобы двигать интерактивные объекты по нарисованной карте тайлов, существуют функции перевода координат из мира в карту и из карты в мир.
>>586479 Хуанг уже пытался сделать запекание лайтмап и во 2 и в 3, дропнул на середине. Он сделал ставку на воксельные пробы, и они почти не дерьмовые, если изъебнуться можно неплохо сделать графон, но производительность совершенно не подходит для современных систем. И пробы тоже недопилены и он их дропнул чтобы пилить вулкан. Через пару лет допилит вулкан возьмется пилить еще какое-нибудь говно нерабочее.
По какой-то причине у меня всю графику аштрисёт нахуй при передвижении персонажа. Все спрайты будто влево-вправо таскает по одному-двум пикселям в стороны, да и сама картинка довольно "рвано" двигается в рандомные моменты, микро-пролаги на доли секунды. Я понятия не имею, с чем они связаны, сама игра в это время показывает стабильный фпс. Не знаю, связанные ли это проблемы, либо я что-то не так сделал, но в пиксель-арте это очень сильно заметно, аж глаза режет. Версия 3.0.6, есть варианты, как это исправить?
>>586880 Нет, если ты говоришь про один объект, то тогда они одинакового размера. Но проблема в том, что трясется вообще всё, все спрайты, вся графика даже ВНУТРИ спрайта, а не только по краям. >>586881 Я пытался обновиться на 3.1, но у меня еще один ебучий баг оказался, move_and_slide не объявлена в классе. Это тоже какая-то внутренняя поебень движка, которая не может понять, что перед ней функция. Вот этот: https://github.com/godotengine/godot/issues/29522 Совсем свежий, как я понял.
>>586913 Плохо читаешь, значит. Там у них в движке прямо закодирована ошибка, которая не позволяет парсить нормально код, поэтому возникает ошибка. И в дополнение ему сказали, что у него неправильный get_node, но на саму ошибку это никак не влияет.
>>587037 Достаточно просто. Так скажем. При этом, в отличие от констракта движок не заточен под платформеры и ты можешь встроить в свой платформер что захочешь.
>>587037 Как сделать платформер на годоте за 3 часа: 1. Создаём новый проект. 2. Создаём сцену player.tscn 3. В неё кидаем kinematicbody2d и потомком collisionshape2d, sprite и camera2d. Настраиваем форму collisionshape2d так, чтобы она соответствовала спрайту (спрайты качаем с https://opengameart.org ) 4. Добавляем код к корню сцены, из 6 строчек, в первых 4 мы чекаем нажатие клавиш движения прыжка и приседания, в остальных двух задействуем функцию move_and_slide. 5. Создаём сцену platform.tscn 6. В неё кидаем staticbody2d, collisionshape2d и sprite. Настраиваем форму collisionshape2d так, чтобы она соответствовала спрайту. 7. Cоздаём сцену level.tscn 8. В неё накидываем наши платформы и одного плауера. 9. Нажимаем запуск игры. Выбираем в качестве запускаемой сцены level.tscn 10. PROFIT!
>>587062 >Unfortunately GODOT has a lot of problems with complex 3D and limitations I need to work around. Still a lot of lightning Bugs since I updated to the last master branch. I hope they will correct the light octree. Жаль, что помещение из одной коробки с графонием уровня 2005 года считается для годота complex 3D.
>>588054 >ВАМ ЧТО СЕРЬЁЗНО СЛОЖНО ПЕРЕЙТИ С ЮНИТИ НА ГОДОТ????? У ВАС РУКИ ПОСЛЕ ЭТОГО ОТВАЛЯТСЯ????? НАСТУПИТ КОНЕЦ СВЕТА??? НЕТ, О БОЖЕ, НЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕТ!!!! >НАСТУПАЕТ КОНЕЦ СВЕТА, ПЕРЕБЕЖЧИКИ ПОГИБАЮТ В МУКАХ ОБОСРАВШИСЬ КИСЛОТНЫМ ПОНОСОМ
>>588118 Почему, мистер щитпостер, почему? Во имя чего? Что Вы делаете? Зачем, зачем щитпостите в годотред? Зачем продолжаете сраться? Неужели Вы верите в какую-то миссию юнити или Вам просто страшно делать игры? Так в чем же миссия, может быть Вы откроете? Это свобода, правда, может быть мир или Вы боретесь за любовь? Иллюзии, мистер щитпостер, причуды восприятия! Хрупкие логические теории слабого человека, который отчаянно пытается оправдать свое существование: бесцельное и бессмысленное. Но они, мистер щитпостер, как и это ваше юнити, столь же искусственны. Только человек может выдумать скучное и безжизненное понятие "любовь". Вам пора это увидеть, мистер щитпостер, увидеть и понять: Вы не можете победить, продолжать борьбу бессмысленно! Почему, мистер щитпостер, почему Вы упорствуете?
Делаю топдаун даун, лол! шутер в тесных коридорах гигантского звездолёта. Решил запилить два типа "пулек" кинематик боди (что бы с останавливающим эффектом вот это вот всё) и 2д ареа, для всяких плазменных шаров и.т.п. Это удачное решение или я делаю что-то лишнее? Ну и лазерный лучик через рейкаст, но это к делу не относится.
>>588244 >какое-то джемное говно и не мечтающее о паре баксов, не являющееся полноценными играми Да заебали, нет у вас игр, это все для детей поиграться, серьезные проекты невозможно сделать, никто и не пытается, годот не для заработка.
>>588255 >Но ведь игры это для детей! Я про движок. Захочет чадо потыкаться кубики подвигать, в юнити сишарпа сложная, вот тебе годотоговно поиграйси гдскриптой
Я придумал пазл: Есть несколько цифр-регистров. К каждой цифре идёт по две кнопки, + и -. Для каждого регистра есть свой алгоритм инкремента и декремента. Цель пазла - подобрать код на бумажке, который игрок нашёл по ходу игры. Стрелками или мышкой прокручиваешь и выбираешь активный регистр, затем стрелками или колёсиком прокручиваешь цифру в регистре. Правила инкремента и декремента могут быть такие: - в активном регистре +2/-3 в соседних регистрах +1/-4 - в активном регистре +2/-3 если регистр 4, то в регистре 7 +5/-2 и т.п. НИКОМУ НЕ СМЕТЬ ВОРОВАТЬ МОЮ ИДЕЮ. ЗАПОСТИЛ СЮДА, ЧТОБ НЕ ЗАБЫТЬ!
>>588468 Cпасибо. А как проверить принципиальную разрешимость головоломки? Есть на этот счёт какой-нибудь матан? А то мне кажется я что-то лютое изобрёл.
А вообще, при помощи правил, подгружаемых через пик1 можно в игре создать тысячи уникальных замков, над которыми игроку придётся ломать голову.
>>588479 Никак анон, это очень плохо. Ты создаешь массив чисел (минус память) и ищешь внутри него число (минус производительность) пиши по старинке if (value >= low && value <= high) или вынеси это в функцию.
>>588475 А хуй знает, полагаю что там что-то завязанное на остаток от деления, как в головоломке про улитку на дереве. https://ru.stackoverflow.com/questions/50156 В конце концов решаемость всегда можно гарантировать, если ты сгенеришь ее задом наперед - выберешь ответ и начнешь рандомно применять шаги с обратным знаком. Правда так не гарантируется интересность.
>>588517 Так там тоже. Суть вопроса в том, можешь ли ты, имея +n и -m попасть в заданное число q, начиная с числа p. Выводить ну совершенно лень, но понятно что если у тебя +2 и -4, то начиная с четного в нечетное ты не попадешь, и т.д.
>>588536 Таких игр пока нет. Да, запилить реально, но надо подождать версии 3.2 а лучше 4.0. Но начать можно сейчас. Писать конечно не на gdscript а на c# или сразу на c++.
>>588536 Блять, для сралкера есть Юнити. Годот - это направленный на быстрый вкат в геймдев движок, позволяющий именно что тренироваться на создании сайдскроллеров, данмаку-шутеров и прочей 2д-вакханалии.
>>588550 >Когда делаешь сталкера на нормальном движке Не уж то на годоти? Нет, пидар? А нахуя ты запостил эту хуйню в сравнение юнити и говнодота? >>588550 >В 2д можешь запилить все что угодно. В 2д на говнодоте тоже пару игр всего вышло окологовеных, и их разработчики больше не выпускали игры на говнодоте. И студия разрабатывающая говнодоту дропнула говногодот, тому що он говно даже для 2д. >>588550 >В 3д годот не может - для него есть уеч. На говнодоте и то больше говноигр вышло от индюков чем на уече, нахуй вы вообще этот кал вспоминаете неюзабельный, который убивает индюков.
>>588540 Попробуй сменить род деятельности. Дворником там, или грузчиком например. >>588536 Вполне реально. Не верь залётным бугуртышам ИТТ. Смотри вон туда: >>587062
>>588562 >Почему-то этот чувак делает. Встречает ограничения, но обходит их и делает дальше По такому же принципу долбоебы и на своих движках делают, обходят ограничения, уебки тупорылые.
>>588620 Получил инпут, сделал вектор2, записал в него значения икс и игрек, затем магия - у векторов есть метод .normalize() который делает длину вектора равной единице, т.е. если вектор например (1, 0) то после нормализации не поменяется т.к. Он весь лежит на оси иксов и длина равна компоненте икс, но если вектор (1, 1) он станет типа такого (0.456, 0.456) так, что длина его останется ровно 1. Этого не слушай >>588637
>>588620 >>588639 И уот тебе пример из прошлого треда >>572178 в строке 20 можешь выкинуть всё после точки, если у тебя не псевдоизометрический двадэ вид. Ну и строковые имена экшонов в настройках проекта добавь, или замени на стандартные "ui_..."
В юнити и анрил треде не отвечают, тут помогите хоть. Хочу сделать шутер, где перс будет двигаться по прописанным мною формулам. Как в квейке, например.
На юнити если делать коллайдер через физику то физика не позволяет прямое редактирование скорости приводит к ерунде, можно только через силу или ускорение. Но там есть character controller, он позволяет редактировать скорость и не дает коллайдеру проходить сквозь стены, останавливает коллайдер если тот врезался. Проблема в том что коллайдер там вертикально ориентирован, его нельзя поменять или повернуть.
В годоте есть что-то похожее на character controller, но чтоб я мог делать любой коллайдер и поворачивать?
>>589190 >Проблема в том что коллайдер там вертикально ориентирован, его нельзя поменять или повернуть Поверни родительский объект. Или сделай rigidbody IsKinematic и двигай его через MovePosition. И кстати скорость можно изменять напрямую.
Яснопонятно, тут совсем незнают. >>589192 Стены тоже кинематик, кинематики игнорируют друг друга. Делать стены на физике бред, выкручивать бесконечную массу, потом обязательно все разлетится. >>589193 CHRACTER CONTROLLER значение знаешь? Пик.
Пришел узнать может у вас есть компонент ЛУЧШЕ юнити, пришел за помощью. А в ответ что? https://www.youtube.com/watch?v=nCsVOO_3EUU Ничего не знают, со своим собственным движком незнакомы, с другими движками не знакомы. Даже обсирать нормально не могут. Школие пидарасное.
Вот эту ветку надо в шапку, чтоб все видели какие безмозглые дебилы тут водятся.
>>589226 нет, правда, уходи пожалуйста с /gd/. вместо того чтобы поглядеть как делают все нормальные люди, погуглить и перепробовать варианты, ты перебрал все треды с одним и тем же тупорылым вопросом, с которым даже КАЛОБОК разобрался без особого напряга (а он тот ещё даун) и заебал всех. причем на самом деле ответ на твой вопрос элементарен и очевиден — твоей егре будет достаточно стандартной системы контроллера, как и 99% других игор. так что будь так любезен, свали с борды на которой всё равно все аноны — идиоты и не могут тебе подсказать.
>>589228 >погуглить и перепробовать варианты, Почему бы не спросить тут у ОПЫТНЫХ людей, которые РАЗБИРАЮТСЯ в движках? >даже КАЛОБОК Не знаю кто такой. >твоей егре будет достаточно стандартной системы контроллера Нет, недостаточно, хочу чтоб был поворот коллайдера и по двум другим осям. >99% других игор. Я не собираюсь делать ОЧЕРЕДНУЮ игру. В моей игре будут повороты и непростое движение.
>>589231 >Почему бы не спросить тут у ОПЫТНЫХ людей, которые РАЗБИРАЮТСЯ в движках? твой вопрос был говном. что-то типа "я запилил шейдер в шейдерфорже чтобы делать дырки от пуль в стенах, как его применить?", и тебя закономерно посылают подальше с такими выебонами, а нужно было вместо этого спросить "я хочу делать дырки в стенах, как это сделать?" и тебе бы сразу подсказали про стенсил буфер. в итоге ты рогами упёрся в неповорачивайся коллайдер НА ПАРЕНТ ОБЖЕКТЕ, облазил все треды и обозвал всех анскиллами. просто прелесть. >Не знаю кто такой. еблан. > Нет, недостаточно, хочу чтоб был поворот коллайдера и по двум другим осям. зачем? >Я не собираюсь делать ОЧЕРЕДНУЮ игру. В моей игре будут повороты и непростое движение. я так понимаю ты тут самый умный с новой прорывной игрой. с непростыми поворотами и непростым движением, которое никто никогда доселе не делал. уверен, игра будет прелестной, учитывая что ты даже ни одной модельки даже не зделал. ну раз ты такой рукастый, штош, пили весь физон с нуля руками на рейкастах. в принципе, вполне реально достичь плюс-минус адекватного движения персонажей на чистом рейкасте, но всё же, я тебя уверяю, стандартная система ВПОЛНЕ СПРАВИТСЯ с твоими выебистыми хилл-клаймбингами и прочим паркуром.
Хочу чтоб я мог двигать (включая поворот) перса через формулы, при этом чтоб он останавливался об стены. Ригидбоди позволяет поворачивать, останавливать, но у него нельзя резкие движения делать. Чарактер контроллер позволяет редактировать скорость как надо, останавливает, но его нельзя повернуть и поменять коллайдер. > в итоге ты рогами упёрся в неповорачивайся коллайдер НА ПАРЕНТ ОБЖЕКТЕ >зачем? Хочу повороты. Есть ли компонент который дает движения (редактируемые) как у чарактер контроллера и вместе с этим позволяет редактировать коллайдер, включая поворот? >самый умный с прорывной игрой. Я не писал что игра прорывная. Я вертикальную капсулу не хочу. > с непростыми поворотами и непростым движением, Да не простое, не тупо нажал кнопку и пошел вперед, поэтому мне movePosition или AddForce не подходят. >даже ни одной модельки даже не зделал. Щас бы разработку с моделек начинать. Сколько было таких игорей, люди сидят модельки делают, детальки типа волос делают, диалоги делают. Но прикол в том что модельки не первоочередные, их всегда легко поменять.
А без геймплея все говно, геймплей определяет количество ситуаций в игре (даже если это новелла). Если изменится геймплей, пока делается все остальное то и количество этого контента может поменяться. Я решил начать с геймплея и когда уже буду доволен результатом то точно буду знать сколько моделек/анимаций/звуков надо.
Вон на гимн смотри, модельки/мокап/звуки сделали, а без геймплея от этого толку нету, даже показать на презентации нечего было. Показали после того как хоть какой-то геймплей запилили.
>обозвал всех анскиллами. Только серунов вот здесь с их "конструктивными" сообщениями уровня >пук.
>пили весь физон с нуля руками на рейкастах. Придется если выяснится что нужного инструмента/способа нету.
>>589252 > Хочу чтоб я мог двигать (включая поворот) перса через формулы, при этом чтоб он останавливался об стены. чекай стены рейкастом и останавливай своё самописное велосити. > но его нельзя повернуть и поменять коллайдер. в играх не нужны повороты и сложные коллайдеры чаров. > Хочу повороты. у тебя персонаж-танк? столкновения со стенками для антропоморфных персонажей НИКОГДА не используют ничего кроме капсулы. или ты решил что анимация бега должна останавливать персонажа если он соприкоснулся правой ногой о коллайдер стены? нинужно никому, да и не заметит никто, да и гейплейного эффекта это никакого не несет. разве что это ВИАР, но ЕТО ДРУГОЕ. > Я вертикальную капсулу не хочу. почему >Да не простое, не тупо нажал кнопку и пошел вперед, ноги, надеюсь, двумя разными кнопками по очереди передвигать будешь? > Щас бы разработку с моделек начинать. ну да, с самого сложного. механ всегда проще допилить. >Сколько было таких игорей, люди сидят модельки делают, детальки типа волос делают, диалоги делают. сколько >Но прикол в том что модельки не первоочередные, их всегда легко поменять. нет, ты не можешь поменять контент игры с легкостью. его производство всегда занимает процентов 80% времени разработки. > А без геймплея все говно, геймплей определяет количество ситуаций в игре (даже если это новелла). стало быть, нас ждут очередные содомизирующиеся кубы. > Вон на гимн смотри, модельки/мокап/звуки сделали, а без геймплея от этого толку нету, даже показать на презентации нечего было. Показали после того как хоть какой-то геймплей запилили. у инмоста нет и не было геймплея, но ему дали огромный приз и взяли в чаклфиш на одном графоне. >Придется если выяснится что нужного инструмента/способа нету. кроме рбоди и чарконтроллера в юхути точно нихуя нет, делай на рейкастах если уверен.
>>589256 >у тебя персонаж-танк? >антропоморфных Запросто может быть танком. Может быть херней которой понадобится горизонтальная капсула. Может быть существом состоящим из нескольких раздельных частей и игрок будет ими всеми управлять. Я не собираюсь ненужные вещи делать типа ударов коленок об стены. Просто хочется иметь свободу в плане выбора формы коллайдера.
>или ты решил ноги, надеюсь, двумя разными кнопками по очереди передвигать будешь? Почему такие крайности? Вон, например (я не собираюсь ее делать), квейковская распрыжка, чтоб ее выполнить надо поворачивать и жать в стороны, скорость набирается.
>сколько Knock-knock, Дыбуйский сам жаловался что хотели одно (тавер дефенс), разрисовали, получилось не очень и чтоб не напрягать художников решили оставить спрайты. В итоге получилась ходилка с вкручиванием лампочек в которую скучно играть.
Квейк. Хотели даркфентази РПГ, рисователи нарисовали всяких скелетов в кольчугах, урков с топорами, собачек, жуткие замки и тд. Но прогеры не смогли осилить РПГ, из-за дедлайнов решили сделать шутер не меняя модельки. И получилось хорошо потому что шутеры делать они умели.
>инмоста Какой инмост? Гимн это Anthem, иди почитай анонимные интервью, вот как раз модельки делали без геймплея. Вон аноны с ГД только и делают что модельки, ни механики, ни уровней. Это первое что вспомнил.
>не можешь поменять контент игры с легкостью. Вот поменять то его как раз очень просто, перетягиваешь модельку в инспектор и все, была у тебя капсула мужик, стала баба. А делать долго. >с самого сложного. механ всегда проще допилить. Допиливаешь механику и оказывается что тебе нужна еще анимация, а пару старых моделек надо убрать. Тратишь время, потом снова что-то не понравилось и так пока всем не надоест. >очередные содомизирующиеся кубы. Или по хорошему, как на любом производстве сперва чертеж - механика и уровни на коллайдерах. А потом на готовые уровни и механику натягиваешь визуал/аудио/дилоги/мочу/говно. И работяги художники сразу понимают объем работ.
>чекай стены рейкастом и останавливай своё самописное велосити. >кроме рбоди и чарконтроллера в юхути точно нихуя нет, делай на рейкастах если уверен. Наконец то полезный совет. Понял, юнити нахер. Узнаю ща за годотские возможности.
>>589262 >Просто хочется иметь свободу в плане выбора формы коллайдера. ты либо ригидбоди и с физоном, либо не ригидбоди и с самописным физоном. иначе никак. юнети.jpg > например квейковская распрыжка это кривой контроллер позволил ей существовать. ок, пиши свой.
> хотели тавер дефенс > получилась ходилка с вкручиванием лампочек мочу на говно сменили, а графон оставили мегауёбищный. хотя погодите, > , Дыбуйский скам ага, вот оно!
> Но прогеры не смогли осилить РПГ, из-за дедлайнов решили сделать шутер не меняя модельки. как видишь, сменить арт намного сложнее чем сменить механ.
> Вон аноны с ГД только и делают что модельки, ни механики, ни уровней. да я тебя не отговариваю, делай кубы на здоровье, хех >Допиливаешь механику и оказывается что тебе нужна еще анимация, а пару старых моделек надо убрать. Тратишь время, потом снова что-то не понравилось и так пока всем не надоест. ахуительные рассуждения с высоты кодзимы
> И работяги художники сразу понимают объем работ. и говорят что им нужно больше золота. намного больше чем у тебя есть
> Узнаю ща за годотские возможности. о, у меня для тебя прекрасные новости...
>>589276 >>589276 >сменить арт намного сложнее Сделать новый сложнее. >делай кубы на здоровье, Написал же что когда механику сделаю то сделаю и все остальное, чтоб не скакать туда сюда. Не хочу чтоб из-за моделек пострадал геймплей. >и говорят что им нужно больше золота. А без плана могут говорить высасывать еще больше бабла. >прекрасные новости... Можно забить на годот?
>>589190 >В годоте есть чтоб я мог делать любой коллайдер Есть. Геометрические примитивы, вогнутая сетка, выпуклая сетка, всё есть. >В годоте есть чтоб я мог поворачивать? Есть. Я бы посмотрел на движок, в котором НЕЛЬЗЯ поворачивать геометрию.
Конкретнее задачу конкретизируй, плиз. >На юнити если делать коллайдер через физику то физика не позволяет прямое редактирование скорости приводит к ерунде В годоте можно обращаться к физическому движку через метод _integrate_forces() и задавать свои поправки к физике. Можно гасить скорость, ускорение и т.п., можно задавать трансформацию (позицию и вращение). Ты это имеешь ввиду?
В юнити есть 2 стула варианта 1) сделать коллайдер с физикой, тогда его можно поворачивать в любую сторону, но физика не позволяет просто менять скорость, менять ее резко через силы и ускорение. 2) есть компонент character controller >The traditional Doom-style first person controls are not physically realistic. The character runs 90 miles per hour, comes to a halt immediately and turns on a dime. Because it is so unrealistic, use of Rigidbodies and physics to create this behavior is impractical and will feel wrong. The solution is the specialized Character Controller. Описание компонента. Он как раз позволяет писать скорость как угодно, останавливается об стены. НО у него нельзя менять коллайдер и нельзя повернуть. Только вертикальная капсула.
Можно ли в годоте сделать коллайдер, которому можно будет менять скорость напрямую, который будет останавливаться об стены и который можно будет повернуть по любым осям? Хочу игру со свободой поворота. Все движение буду прописывать сам.
>>589293 Можно. И у нас в годоте для этого не обязательны ассеты-компоненты (хотя и они есть). Тебе достаточно десяток строк кода написать на несложном гд-скрипте и всё, персонаж готов. И двигается с какой скоростью хочешь.
>>589380 Прелести динамически типизируемых языков. Вместо двух функций-перегрузок одна функция с проверкой варианта на инт и стринг. >>589382 Всё прекрасно дебажится.
>>589398 >Через год будешь с горящей жопой пытаться понять что в эту функцию надо передавать. Инт или стринг, я это и через сто лет пойму, только взглянув на неё. Твоя доёбка мимо. Эта функция из проекта, который я дропнул на месяц, и пару дней назад открыл, и он у меня настолько качественно самодокументирован, что я моментально вспомнил, что у меня откуда тянется и куда. А разгадка проста: 1. Паттерны. 2. Соглашения. 3. Константы. 4. Опыт.
>>589538 Я хуево объясняю, но в общем AnimatedTexture это ресурс для покадровой анимации, встроенный. Можно в TileSet в инспекторе у тайла нажать где Texture -> New AnimatedTexture, добавить кадры (frames), загрузить их текстуры соответственно можно там же, и сменить скорость (fps), и будет анимироавнный тайл. Вроде проверил, даже работает.
>>589418 Это очень хреновое соглашение, даже не говоря о том нахуя одна функция добавляет или удаляет запись, она бы еще в космос летала, а главный косяк всплывет когда ты попытаешься добавить отрицательное значение.
>>589560 И как обычно я не удивлён, что на этот пост никто не ответил. >>589600 Никаких. Все игры так и делаются. А готовые КОДЫ называются ассетами. >>589611 >нахуя нужна делта в физикспроцессе? Ты наблюдаешь за процессом через фреймы, которые комп выводит на экран. Фреймов может быть 60 в секунду, а может 25, а может и 144. Но если тебе нужно сделать симуляцию плавного процесса, который происходит независимо от фреймрейта, то именно для этого она тут и нужна. Собственно говоря, дельта - это тот самый дифференциал из матана, который ты сдал на трояк.
Хех, сидел щас в шарпотреде /пр/ и там анон спрашивал про скалу, я полез гуглить и знаете что? Обнаружил знакомый синтаксис: https://groz.github.io/scala/intro/patterns/ Ну, Хуан! Ай да хитрец!
Годотач, есть вопрос. Есть сцена-коробка, с KinematicBody2D - BoxBody. Любой Area2D можно чекать наличие этого body в ней, юзая
func _on_Area2D_body_entered(body): if body.get_name()=="BoxBody":
Но это хорошо работает если коробка одна, а их много, каждая названа стандартно т.е. Box, Box2, Box3 и т.д., но т.к. они являются дубликатами - они все отзываются на BoxBody.
Так вот: Есть какая-то возможность проверять не их BoxBody, а непосредственно Box, Box2, Box3, чтобы контролить отдельно каждую коробку?
>>590535 >Есть какая-то возможность проверять не их BoxBody, а непосредственно Box, Box2, Box3, чтобы контролить отдельно каждую коробку? if body.get_name()=="Box" if body.get_name()=="Box2" if body.get_name()=="Box3" if body.is_in_group()=="Boxes" if body.get("tag")=="hurr_durr" Варианты имеются.
>>590628 >>590614 Лолшто? Боди это уже тот класс, который тебе нужен. Если у тебя меши являются предками физических тел, то они не будут двигаться вместе с телами. Правильная компоновка это когда тело это корень, а шейпы и меши это ветви дерева.
>>590753 Я вот одного не пойму, ебаный марио вышел в 1985 году и был написан на ебаном ассемблере, но даже там заложили отзывчивость и инерцию в управление персонажем, он плавно набирает скорость, плавно тормозит, при управлении ощущается его вес, он не может моментально изменить направление падения или прыжка в воздухе, подчиняется законам физики, пусть и примитивной с учетом того, что это денди, ассемблер и 1985 год. Почему современные инди петушки берутся делать платформеры, в которых вроде как уже все изобретено, но при этом не изучают классику и делают какое-то примитивное говно, даже имея мощные и простые инструменты разработки? Персонаж перемещается как картонка, с постоянной скоростью, моментально набирает скорость, моментально останавливается как вкопанный, у него нет инерции, он смотрится и ощущается как говно. Это же касается и всего остального - поведения врагов, атак, прыжков и прочего, все какое-то картонное и неестественное, хуже может быть только дефолтный физон через ригид боди на персонаже, наверное.
>>590789 Ну скопировать не проблема, как и перепечатать великое произведение, а ты попробуй свое придумать. Кто-то пытается без инерции, резко тормозит, у кого-то вес не ощущается.
Анон, не пропусти мой даунский вопрос: стоит ли качать годо в стиме или же там отставание от сайтовой версии?Хочу часы отслеживать, дабы знать сколько я проебал на попытки что-то сделать и потом плакать.
>>591324 И ещё тебе совет > отставание от сайтовой версии Не гонись за свежаком, особенно в опенсорсе. Предпочитай стейбл-версии, даже если в анстейбле весь ютуб показывает умопомрачительные новшества. А когда начнёшь работать над серьёзным проектом, то об обновлениях (движков, фреймворков, утилит, редакторов) вообще забудь. Выбрал версию и ебошишь в ней до конца. Можно конечно впоследствии, после завершения проекта перевести его на новую версию движка. Но не в процессе девелопа.
1) Можно ли как-то интегрировать ебучий .pck в .exe? Помимо игр хотел бы писать портабл мелкософт, но таскать по два файла, как рахиты с itch.io, не хочется. 2) Как реализуется обновление игр на клиентских ПК? Можно сделать, чтобы игра сама по себе обновлялась во время запуска?
>>591437 >Можно сделать, чтобы игра сама по себе обновлялась во время запуска? 1) Делаем HTTP запрос на сервер игры, чтобы получить актуальную версию 2) Сравниваем актуальную версию с версией игры на клиенте 3) Если версия игры клиента устарела, то выводим окошко ОБНОВЛЕНИЕ, ПЛИЗ СТЕНД БАЙ и начинаем загружать актуальный билд игры 4) После окончания загрузки устанавливаем актуальный билд, а старую версию игры удаляем
>>591444 Я для себя буду делать внешний менеджер обновлений не на годоте. Возьму для этого шарп с ГТКшарпом в качестве интерфейса. Или лазарус, чтоб не забывать корни. Но ИМХО это будет удобнее и проще, чем обновлять игру из самой игры. Впрочем, смотря какое обновление. Типовая игра на годоте это файл экспортного шаблона (запускной бинарник), содержащий движок и команду на запуск стартовой сцены из файла pck который должен лежать рядом. Однако в сам движок уже искаропки заложена система подгрузки контентных патчей, модов и длц, которые упакованы в pck-файлы, внутри своей игры ты можешь определить любое место для хранения этих файлов, можешь их загружать из сети, устанавливать в локальную директорию, подгружать к проекту. Так что, в зависимости от архитектуры твоего игрового проекта, возможно лично тебе и не понадобится внешний менеджер обновлений. Добавочные PCK можно обновить в самой игре, а основной PCK и запускной бинарник можно обновлять установщиком приложения в виндуксе или менеджером пакетов в линдовсе.
>>591582 > не выйдет У тебя? Сочувствую. Твоя целевая аудитория не сможет разобраться как запустить игру, которая состоит из 2+ файла в архиве? Соболезную.
>>591582 Самый простой способ: упаковать в самораспаковывающийся архив, который молча распаковывает в temp и запускает указанный тобой game.exe но есть один нюанс, некоторые антивирусы могут взвизгнуть когда кто-то молча распаковывает в temp и запускает. В таком случае, делать не молча, чтоб распаковщик показывал окно в стиле "плиз вейт... распакин..."
>>591701 Создатели не предусмотрели кнопку "сделоть зоебись". А вот в юнити, например, такой кнопки тоже нет. Зато есть куча уже готовых костылей, написанных другими, которые можно спиздить или купить. А потом объединить их функционал личными костылями и родить свое чудовище Франкенштейна. И оно даже работать будет, пусть и с переменным успехом. Поэтому любой неосилятор начинающий разработчик знает: юнити - сила, а годот - сложна, сложна, нипонятна. И соответственно впадает в ступор, когда ему что-то приходится делать самому, а винит во всем движок.
>>591834 Получается, изначально нажимать на простоту было ошибкой? Годот не для новичков? Я-то сам в кодинге 15 лет и сразу определил, где там что, гдскрипт даже учить не пришлось просто сел и начал выдавать код, сверяясь со справочником, когда было что-либо не очевидно. Например, вот этот код мне ни один туториал не подсказывал, я сам, на основе своего опыта разработал для себя удобную мне структуру данных, которую записываю в контекстное меню и в нём прописано, какую функцию вызывает клик по элементу меню. Новичок никак не может с ходу научиться так проектировать код на несколько шагов вперёд. 10 лет назад я бы сам так не додумался.
>>591837 >Получается, изначально нажимать на простоту было ошибкой? Годот не для новичков? Для новичков только констракт, остальные одинаково сложные, что годот, что юнити.
Один гондотер присовокупил буллет к гондоту, дрочился больше года. Сейчас свой двиг пишет, обратите внимание, гондотеры, он еще уебищнее годота (хотя куда казалось бы уебищнее) и перспектив еще меньше, думаю вас заинтересует. https://twitter.com/_AndreaCatania/status/1148589702469115909
>>592024 Ты бы хоть загуглил, что это за движок, перед тем как кудахтать. Его не один этот чел пилит, а целое коммьюнити, и довольно давно. И в перспективах у него стать одним из самых производительных движков для узкого круга продвинутых юзеров, когда либо созданных за историю, там уже сейчас под капотом самая быстрая в мире реализация ECS на расте. С годотом он уже сейчас не стоит рядом по перфомансу, но пока вся разработки через код, гуи еще не допилили.
>>592044 Сука, я не верю блять, этот годаун уже давно переметнулся на это новое говно, которое запилено на 2 процента от недоделки-годота. Это какая-то психическая болезнь.
>>592044 >С годотом он уже сейчас не стоит рядом по перфомансу Это слишком легко, годот это труп на дне выгребной ямы, что угодно не стоит с ним рядом по перформансу
>>592045 А с чего он должен вечно поддерживать годот? Можно подумать, он у Хуана на зарплате сидел. Чувак занимался в свободное время своим хобби, ему никто за это не платил. Надоело - стал другим заниматься, какие к нему могут быть претензии? Да и 100% в Хуане дело, он может не давал ему свой говнокод переписывать и принимать решения, вот и перешел в проект, где рулит коммьюнити, а не пожизненный диктатор-эгоист.
>>592088 >В Юнити треде такие же потоки в сторону Юнити? Нет, потому что юнити это элитный топовый движок для господ, который к слову стоит 3млрд долларов, а говногодот это хобби потешного ленивого аргентинского пахома. Надо фотожаб наделать с этой лольной пикчей
>>592097 > простой Но создать первую 3D сцену мне конечно же было проще в Юнити, потому что там уже всё изобретено, только скачивай со стора, а в Годо погромировать надо.
>>592097 >А Юнити это монстр, которому пека мощная нужна. >Хочу делать топовое тридэ чтобы продалась миллионами и чтобы все работало на одно ядро одно гиго! Тупица
>>592063 Ты ебнулся там? Я никогда и не пользовался годотом, запустил пару раз, охуел от количества багов, посмотрел исходники, охуел от качества говнокода, больше к этому творению не прикасался. Сюда заходил изначально чтобы проследить за развитием годота, когда понял, что у годота один путь - в могилу, стал заходить чтобы попроигрывать. С чего ты там выдумал, что я имею отношение к годоту? Аметист пощупал из интереса, он пока сырой, но очень годный. И в нём уже есть то, чего нет в годоте - спрайт батчинг, например, рисует сотню тысяч спрайтов без просадок фпс, сам проверял. Буду следить за его развитием дальше.
>>592211 Его кто угодно может делать, представь себе. Ты заходишь на гитхаб, клонируешь, пишешь код, потом создаешь мерж реквест и его принимают. Прикинь, именно так и разрабатывается опенсорс. Это не годот, где придет Хуан и скажет, "спасибо конечно, но я выдрачивал этот говнокод 25 лет, и не дам тебе менять его, поэтому твой коммит придется выкинуть"
Годаны! Годаны, это Данила! Ай нид хэлп! Уже джва месяца я говнокожу самодельный комбо-бокс. Подкиньте идей, как грамотно сделать, чтобы он мог хранить индексы текста, и чтобы при напечатывании в него нового текста, которого нет в списке, он добавлялся бы в список с новым индексом. Я тут наговнокодил какой-то хуйни, но она работает не так, как мне нужно.
>>592366 Сейчас бы считать косинусы/синусы во время каждого кадра вместо того, чтобы один раз просчитать их при инициализации. Оптимизация уровня Хуана.
>>592370 Вот он уровень хейтеров годота. Перепутать draw и process. Смотрите на него, смотрите и хохочите! Если делать секундную стрелку, то каждую секунду реалтайма будет высчитываться 12 синусов и 12 косинусов для одной шкалы и одной стрелки. Если делать без секундной стрелки, то и того реже. Раз в минуту реалтайма.
>>592374 >Перепутать draw и process. Так пишешь, как будто каждый человек на этой планете должен знать эту хуйню. Я тебя удивлю, но если человек живет полноценной жизнью, выходит на улицу и занимается сексом с тяночками, он вряд ли знает что такое draw, process и в чем их отличия. Это знают только чуханы, которые сидят на липком от малафьи проперженном стуле и задрачивают годот 24 на 7.
>Перепутать draw и process Несложно ошибиться, ведь нужно обосрать гондотера ни разу не открыв гондота (чтоб не зашквариться), приходится гадать, что там за хуйня.
>>592537 > решишь что можно делать годноту не хуже Юнити. Производительность дерьмо в гондоте, лайтмап нету, гипробы непригодны, их две, для интерьера и экстерьера, работают хуево, надо было такую хуйню сотворить.
>>592556 Забыл добавить отсутствие окклюжен куллинга. В годоте вся 3д сцена всегда рендерится полностью, поэтому годот не приспособлен для больших размеров 3д сцен.
>>592582 У гододиков так принято, тратить недели на то, что из коробки есть в нормальных движках? Вот сделал ты домик из 20 комнат, будешь для каждой ручками скриптовать дата стриминг, как макака, чтобы все 20 не рендерились, пока ты находишься в одной и смотришь в стену?
>>592580 >В годоте вся 3д сцена всегда рендерится полностью, поэтому годот не приспособлен для больших размеров 3д сцен. Правда? Как это говно тогда вообще взлетело и почему не пофиксили Ведь это действительно пиздец
>>592588 Знаешь это вполне естественно ведь первая версия годота вышла в 2014 а юнити в 2005, и нет ничего необычного что он годится только для демок. Я уверен, что юнити в начале своего пути был таким же.
>>592594 >юнити в начале своего пути Там было ещё хуже. Там была попытка одолеть флеш и у него был свой юнити-плеер для браузеров. И конкурировал юнити с флешем и сильверлайт. Есть разница с опенсорсным движком, у которого со старта деятельности - нативные бинарники под каждую целевую платформу?
>>592594 Так и нахуй тогда нужен гондот? Сейчас еще какой-нибудь аметист энджин выходит, еще сырее, перескакивай на него, потом еще выйдет новый, если ты фанат младенческих движков.
>>592537 А потом, когда упрёшься в математику, будешь ломать голову. Я про пресловутый дабл, который ещё в 3.0 обещали сделать. Потому что вдруг окажется, что для описания красивых/сложных процессов используются формулы с точностью по 10-12 знаков после запятой. А с точностю в 7 знаков у тебя всё разносит. Хотя для простеньких - почему бы и нет. Были же простые, но годные игры, типа plants vs zombies, plague inc.
>>592730 >дабл, который ещё в 3.0 обещали сделать А чем тебя дабл С++/С# не устраивает? Ты у нас собрался сложные процессы с формулами по 10-12 знаков после запятой рассчитывать на подобии питона? Или я тебя неправильно понял? >>592537 Из треда в тред одно и тоже. Мне кажется, в шапку стоит запилить что-то вроде этого: использовать годот для 3д - это такой же долбоебизм, как использовать уеч для 2д или использовать юнити в принципе.
>>592589 Пиздец не это, а то, что фанатики годота считают, что это норм, и предлагают самим ручками скриптовать куллинг на тормозном гдскрипте - >>592582 Действительно, нахуя люди годами ломают голову и пишут мега-оптимизированные алгоритмы на плюсах, чтобы невидимые объекты отбрасывались автоматом и это работало быстро. Ведь можно просто ручками всё прописать, на gdscript'e, для каждого объекта на сцене.
>>592795 >программировать бинарные деревья на скриптовом динамическом языке >все быстро должно быть >вместо разработки собственно игр Это такой новый троллинг уровня /godot?
>>592841 Они уже давно удалили бге и даже брали какого-то деда писать интерактивный движок новый для блендера. Если возьмут гондот, это, конечно, круто, пусть юнитеки боятся и больше денег вливают в двиг. Но я сомневаюсь, что они возьмут годот в команду, они даже любоша не взяли, так порекомендовали и хватит
>>592730 Дабл в 3д ничем не поможет, была статейка на хабре. Если хочется делать огромные карты на кв. километры без артефактов то только фиксед поинт.
>>592841 Мы то все понимаем что годот туда если и возьмут только за то, что Хуан бухал в пивнушке вместе с разрабами Блендера, а не за объективные качества годота.
>>592904 Не понимаю, вот нахуй им что-то брать, если у них сейчас заебись рендер топчик крутяк? У них есть огромные наработки с бге, ну запилите вы нормально, если даже хуанг в полтора рыла смог, у них там за бесплатно последние несколько лет несколько человек пилила бге, не хотим, будем говно жрать
>>592907 Потому что блендер это 3д редактор, у него другие задачи и он заточен не на реалтайм быструю картинку, а на медленную но более точную и красивую.
>>592920 Я конечно не слежу за происходящим там, но когда последний раз крутил сценки в блендере, они рисовались такими крупными пикселями без алиасинга, а потом как бы прогружались.
>>593220 >Рогалики И что в этой игре рога-подобного? Вижу псево3Д, вид от первого лица, риалтайм шутер, перемещение не по сетке, отсутствие явных рпг-элементов, особой случайной генерации карты по полутораминутам тоже не заметить -- по какому пункту это рогалик? По пермадезу что ли? Но ведь и по Press R to restart тоже не понять с какого момента будет рестарт. Зачем вообще использовать слово если оно у Вас нихуя не значит?
>>593501 Хуизити нотифаер. Ты бы хоть прочитал, что он делает. А делает он ровным счетом нихуя - просто не рендерит объекты, не попавшие в камеру. То есть попросту примитивнейший frustum culling, у Хуана просто тяга называть старые вещи новыми именами, чтобы было не как у всех. https://github.com/godotengine/godot/issues/7336 >The visibility notifiers only says when nodes enter viewport/camera/screen, not when is visible to the human eye.
А окклжен куллинг - это когда у тебя не рендерятся объекты попавшие в камеру, но перекрытые другими объектами. Например, комната за стеной, или объекты за большим препятствием. Твой нотифаер не спасет от этого. Если у тебя в сцене куча комнат, и ты подошел к стене - с окклюжен куллингом у тебя будет рендериться только это стена. С визибилити нотифаером - будут рендериться все комнаты, попавшие на линию обзора за этой стеной, со всеми мелкими деталями и предметами. Достаточно понятно объяснил, чтобы ты перестал срать со своим нотифаером в тредах?
>>593496 Пик 1. 2004-й год. 348 килобайт. Платформер с 3D для Sony Ericsson. Пик 2. 2005-й год. 308 килобайт. 3D шутер для телефонов. Пик 3. Ну вы понели. 3D шутер для современных мощных 64-битных компьютеров. Весит 29 мегабайт.
>>593512 > Достаточно понятно объяснил, чтобы ты перестал срать со своим нотифаером в тредах? Недостаточно. Теперь расскажи мне, что мне помешает объединить визибилити нотифаер с рейкастом и получить бесплатный оклюжен куллинг, не платя роялти юнитекам и зарабатывая миллионы?
>>593516 Это не совсем честно, потому что sony ericcsson юзал jsr 184 для 3d, считай там движок в ОС. Прошивка весила 30мб, так что мегабайт 5-10 точно под яву уходило.
>>593529 > что мне помешает объединить визибилити нотифаер с рейкастом Не знаю что помешает, но это нечто мешает уже 3 года потому что никто из пользователей годо так и не сделал и не выложил.
>>593642 Качай сборку с шишарпом. Либо на плюсах пиши модуль через gdnative. А лучше возьми какой-нибудь libgdx, там хоть спрайт батчи из коробки есть, а то наешься говна с годотом.
>>593653 Нуу libgdx слишком bare bones для меня, вероятность обосраться изобретая очередной велосипед СЛИШКОМ ВЕЛИКА Придется шквариться о шарп... как бы юнити-дебилом не назвали после такого?
>>593655 Я хочу сделать крутую мморпг, конечно же. Вот 3д или 2д не решил еще. С одной стороны, 2д проще, но рисовать 2д я вообще не могу, а 3д могу со скрипом. Сервер хотелось бы писать на джаве.
>>593724 Ну это большой шаг назад. У меня уже был работающий прототип в анриале, но из-за мерзкого С++ мне пришлось весь код на блюпринтах делать и в итоге появились километры нод. Почему все не могут делать скриптинг в своих движках на православной джаве?
>>593726 >Почему все не могут делать скриптинг в своих движках на православной джаве? Потому что пока есть шарп - ява нинужна. Ведь ява - это по сути умственно отсталый брат близнец шарпа. Но зато в этом и главный плюс явы - после нее вкатиться в шарп будет очень легко.
>>593731 Но это только когда производительность нинужна. На самом деле я люблю питон, но у него есть еще одна беда - при всей своей простоте, у питона нет нормальной защиты от дурака, что позволяет при желании незнании наебашить просто ебического уровня говнокод. А если это еще и не ты наебашил...
>>593729 >>593731 У джавы самый приятный синтаксис, джава самый легкий в освоении язык. Путон - конволютед параша без скобочек, шарп - параша от майкрософтов. Только джава, только хардкор! Свои первые 100к в месяц я получил благодаря джаве.
>>593560 > это нечто мешает уже 3 года потому что никто из пользователей годо так и не сделал и не выложил А хули там делать-то? 4 строчки кода и АКЛЮЖОН КУЛИН - готовченко. Даже визибилити нотифаер не нужен, к которому тут брат-годотер доебался (на самом деле нужен на уровень выше данного кода, чтобы отсекать эту обработку для всех объектов вне поля зрения камеры, а в поле зрения - работают эти 4 строчки).
У меня в анриале есть плагин, который добавляет высокоуровневый нетворкинг, который можно использовать вместе со специальной джава библиотекой, таким образом на джаве можно сделать сервер минуя ебаную анриаловскую репликацию. Есть что-то похожее в Godot?
>>594053 Блин, не заставляй меня качать годот, ничего с тех пор не изменилось, хуан не допиливал пробы. Их когда растягиваешь там пиздецы вылизают, но главная проблема в том что там два вида проб и это фейл
>>594064 На твоей вебмке не такая фигура, ты сделай такую, видишь же гипробы сами по себе хуево делают свет, не так как в блендере юнити и анриале. Внутри фигуры светло, нужно еще пробу интерьерную ставить, но там не получится из-за угла. В других движках нет этой проблемы вообще.
>>594056 The whole setup is BS because such an reflective material is probably either not or differently handled by the GI solutions. This is easy to setup this way if you don't know what your doing. Ничего нового
Уважаемые девелоперы, хочу рисовать динамически миникарту. Но столкнулся с багом - годот не хочет обновлять спрайт, если игра не в полноэкранном режиме. Есть способы исправить?
>>592894 А при чём тут большие миры, когда речь идёт о точности воспроизведения движения электронов вокруг ядра атома, например? Вез дабла выгодит несколько криво порой + при изменении орбиты иногда у меня начинались отклонения. Просто хочешь, не хочешь, но это нужно. А пока у нас аргумены уровня "ногоблядь - не человек, ноги не нужны". Тогда вопрос, на кой сами же годоторазрабы хотят поддержку дабла таки добавить. >>593496 Это скорее проблема конкретного дизайнера/разраба, чем годота. Движу какая разница-то? Что ему скормили, то он и показал. Как говорится, неча на зеркало пинять, коли рожа крива. >>593512 >у Хуана просто тяга А это не только у Хуана. >>593530 Там вроде 1,5к - это вроде если больше 200. А от 100 до 200 - это что-то типа 300 баксов в год. У тех же джетбрэинсов одна idea стоит под 500 баксов в год. >>593642 Привыкать. У меня на работе (не связано с геймдевом) сейчас golang в ход пошёл. После плюсов у меня глаз дёргается при виде кода на go. >>593722 Сдаётся мне, крутая мморпг будет скорее от сеттинга зависеть и от реализованных плюшек, а не от движка. А ещё обдумай, что реализовать многие вещи в 3d будет сильно проще и бюджетней(!), чем в 2d. Вероятно, то, почему homm4 с такой грустной графикой вышли в своё время. Уже тогда это было бюджетней, чем 2д отрисовывать. Просто посмотри по всяким биржам, сколько стоит пак отрисованной графики. Почуствуешь себя нищебродом. Хотя годный двадэ это очень лампово. Я просто радугой готов кончить, когда вижу такие игры. >>594088 >С вулканом итд Это же вроде только в следующей мажорной обещали?
>>593785 Лол, этот код не работает. Я добавил ещё кубик и мгновенно понял фейл. Похоже только этот анон догадался сразу >>593904 но судя по его посту, он не смог вынуть хуй изо рта и внятно сказать, что код - фейл.
>>594459 >А при чём тут большие миры, Притом что обычно это вылезает когда новички удивляются почему они засунули многокилометровую карту и оно не работает. >когда речь идёт о точности воспроизведения движения электронов вокруг ядра атома, например? Это говорит только о том что ты пользуешься вещественными числами неправильно. Я надеюсь, ты же не тупо копипастил с вики числа типа 0,0000000135? Дабл тебе поможет замаскировать проблему на время, но баг ты не исправил. Это то же самое что вместо 4гб поставить 8гб и считать что программа больше никогда не вылетит.
>>594587 Формат представления вещественного числа в памяти ЭВМ в виде целого числа. При этом само число x и его целочисленное представление x′ связаны формулой , где z — цена младшего разряда. В случае, если, для удобства расчётов делают, чтобы целые числа кодировались без погрешности.
>>594587 В компах обычно юзают вещественные числа (с плавающей точкой), т.е. у тебя может быть 1.000 а может 100.0. Фиксированная точка означает что у тебя всегда одно и то же количество цифр до и после запятой. Например 8 бит целое и 8 бит дробная часть. Это дает профиты в точности рассчетов за счет уменьшения диапазона чисел которые можно выразить.
>>594588 >>594589 Чет сложна почему нельзя в опен-ворлдах перемещать ориджин когда игрок перемещается между кусками карт и не выебываться со всякими крутыми типами данных
>>594548 Окей. Твои предложения на этот случай, или случай, когда когда речь идёт о константах? Использовать внешние библиотеки? Нафиг тогда годот, если это выглядит как тупое усложнение на ровном месте (ровно то, от чего всякие IDE призваны спасать)? Ты понимаешь, что ты только что тупо подтвердил проблему? Ты опять ищешь оправдания явным минусом, делая вид, что так и должно быть. У Хуана свой особенный путь и предполагаемый список изменений для 3.0 он не реализовал/не смог. И тут часть анонов начинает ссаться кипятком, что так и должно быть, ибо НИНУЖНО, отчего весь движок и окружающее его комьюнити выглядят убогими, не смотря на все фичи и потенциал.
>>594597 У меня тоже. Но когда ты как-то соприкасаешься с предметной областью, то некоторое внимание её изучению/вспоминанию данных о ней тебе уделить приходится.
>>594595 > Использовать внешние библиотеки? Нафиг тогда годот, если это выглядит как тупое усложнение на ровном месте (ровно то, от чего всякие IDE призваны спасать)? Я мимокрокодилящий ОП треда. Правда плашку проебал. Вот моё официальное мнение на этот счёт: Годот, юнити и УЕЧ, хороши для новичка, вкатывающегося в геймдев. Как и любые другие движки с упором на WYSIWYG-редактор, констракт, гамак, и т.д. Как только новичок перестаёт быть новичком, проходит так сказать, барьер Даннинга-Крюгера, он осознаёт, что ему не нужен годот или юнити, как редактор уровней. Отныне движок ему нужен только лишь, как фреймворк, в который удобно сведены управление видеокартой, звуком и сетью. В едином стиле, в едином И УДОБНОМ ЛИЧНО ЕМУ неймспейсе (или наборе таковых). И тогда разработчик игор действительно переходит с движка-редактора на подходящую ИДЕ с объявлением движка в заголовках кода. И это уже профессионал. Поэтому потенциал для работы с профессионалами есть только у тех движков, которые позволяют разработчикам работать со своим АПИ в сторонних ИДЕ. УЕЧ, юнити, уже давно на это настроены, Хуан только недавно раздуплился и то, не без доната майков. В общем, tl;dr Профи не стесняются брать внешние библиотеки, если знают, что делают. То что Хуан отказывается от внешних либ (о чем возмущались ИТТ не раз) - не повод обвинять его в непрофессионализме или диктаторстве. Возможно, он как профи понимает недоступные нам, быдлокодерам, минусы такого сбора с миру по нитке.
>>594603 > Эффект Даннинга — Крюгера — метакогнитивное искажение, которое заключается в том, что люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации Проще говоря, как дорастёшь до моего уровня - осознаешь, каким идиотиной ты был.
>>594602 >>594620 Очередная жертва эффекта Даннинга-Крюгера, которая настолько ебанутая посредственность, что не в состоянии понять, что она ебанутая посредственность.
Здравствуй, анон. Я не разбираюсь в инструментарии, поэтому спрошу. Какие есть преимущества и недостатки у Godot перед Unity и в обратном направлении, что есть, и чего важного нет в ОБЪЕДИНЕНИИ Слышал, что в Godot самый что ни на есть настоящее 2д, да и вес файлов меньше.
Это не холиварный вопрос, не еда для троллей, мне просто действительно стало интересно узнать у людей, у которых опыта больше.
Сам в некоторые время тыкался в Unity, но за Godot взялся посмотреть только сегодня. Хотел узнать мнение людей
>>594936 Годот уникален своей аудиторией. Они сначала твердят что он для 2Д. Спрашиваешь где же их 2Д игры. Они начинают говорить, что 2Д там для галочки и годот для 3Д. Спрашиваешь их где же 3Д игры. Они начинают говорить, что 3Д в годоте представили совсем недавно и поэтому 3Д игр ещё нет. Очень уникальные люди.
Думаю именно пользователи годота совершат прорыв в 4Д чтобы можно было продолжать отмазываться.
>>594936 Преимущества: открытый код. Отсутствие вендорлоков в ресурсах. Недостатки: тормознутость кода, отсутствие фич, которые закрыты авторским или патентным правом. В т.ч. невозможность бесплатно релизнуться на консолях.
>>594116 Коллега, я не нашёл ответа на свой вопрос и баг ещё в силе. Алгоритм прост - я рисую имейдж, вставляя его через draw в спрайт. Если кто то знает что то об этом, пожалуйста, сообщите.
Так же не могу найти оффсет у конкретного атлас тайла. Могу выставить только у single. Есть какие-нибудь трюки, которые помогут, кроме перерисования тайлов?
Щито поделать дадьки? Хочу освоить какой-нибудь модный опенсурсный кросплатформенной движок. Сам на данный момент работаю с phaser/pixi опыт работы с ними очень приятный. Базовый набор объектов, спрайты, ренедртекстуры, контейнеры, текст музыка все, что необходимо для моих нужд(окромя 3д но это решается другими библиотеками с аналогичным функционало), одна проблема игры только в браузере.
Начал ковырять годо, и я прям теряюсь от нагроможденности движка, какие-то компоненты нужно сохранять для повторного использования, почему не создавать экземпляр через код? Каакая-то куча на первый взгляд одинаковых геймобджектов, спрайт, анимецтед спрайт, спрайт баттон просто охуеввешь от растерянности, почему просто не используется какой-нибудь объект спрайт куда можно добавить анимацию или добавить интерактива по клику? Непонятно..
В общем хочется делать игоры а не ебаться с редактором, не для того моя роза цвела. Нет редактор очень удобная штука, когда речь заходит об о дизайне уровня например. Но зачем туда лезть по каждому пустяку? На том же sdl получается прототипировать игры значительно быстрее.
Но кончено понимаю, что так до поры до времени, пока проект не начнет разрастаться в ширь. По этому хочу победить боль и всеже освоить годо, но изучение его идёт ооочень трудно.
>>595078 > почему не создавать экземпляр через код? Создавай. var obj = Sprite.new() obj.texture = load("path/to/png") add_child(obj) Ты можешь всю игру создать кодом. В редакторе нужно будет создать главную сцену и всё. Далее скрипт начинает грузить объекты. А то что в туториалах показано - это всё для удобства новичков. > куча на первый взгляд одинаковых геймобджектов Просто читай документацию. Не вижу проблемы. Sprite работает со спрайтлистами. AnimatedSprite работает с одиночными фреймами. > хочется делать игоры а не ебаться с редактором > зачем туда лезть по каждому пустяку Не лезь. Как показано выше. > пока проект не начнет разрастаться в ширь Это отдельный большой вопрос, общий для всех движков и фреймворков. Организация проекта.
Подскажите такой момент, как лучше реализовать анимированный ui или как назвать, в общем нужна иконка персонажа на панели, типа как в doom, также должна гримастничать только к этому еще должна быть кликабельная, например чтоб инвентарь открыть. как это реализовать? control + дочерний animatedSprite? или есть что само по себе умеет?
>>595143 не, ну я прочекал на сайте все их примеры готовых проектов а их пиздец мало и чета не нашел ничего годного. Быть может это из-за его низкой популярности канеш, но сам пойми, доверия это не внушает. Движок мне интересным показался, но похоже, что все таки стоит исользовать что-то проверенное временем.
>>595158 Да. Но иначе я не могу справиться с этим багом. И прописывать все в draw() тоже. Я генерирую карту симплексноисом, и мне при генерации нужно записывать значения.
На пистоне нормально пилить всю логику для годота? Или все же стоит учить их язык? Планирую пилить карточные игори без особых выебонов в визуалке но с тяжёлой логикой.
>>595168 Ихъязык от питона взял только форматирование отступами вместо {скобачек}. В остальном это совершенно иной язык, который транслируется в плюсы при выполнении. Из-за этого в нем типизация псевдодинамическая (тип Variant, неявно присутствующий в скрипте и передающийся при трансляции команд гдскрипта в шаблоны внутри движка, написанного на си++), что очень быстро вскрылось и в 3.1 Хуану пришлось вскрыть природу типизации, введя статическую. При этом ввёл он её так интересно, что гдскрипт приблизился к паскалю (var a := 12) осталось форматирование отступами заменить на begin end и всё - паскальскрипт готовченко! >>595138 > Так, починено Теорема годотреда работает безотказно: стоит тебе запостить свой код, как ты самостоятельно обнаруживаешь в нём ошибки.
>>595168 >>595182 Спасибо за разъяснение. Все таки предпочел бы писать на одном языке все и не юзать где-то пистон, где-то с+, а где-то годотовскле. На том же пистоне делал тяжёлую логику с числодробилкой, но для этого юзал numpy/scipy, тут такое прокатит? Или голый пистон только?
>>595184 Я весной пробовал подключить пистон к годоту, юзая расширение nativescript. Но увы, у меня всё падало. На 3.1 падало сразу, на 3.0 падало при создании скрипта. Не знаю, работает ли оно сейчас. Мне для тяжёлой логики хватает шарпа. Для чего-то совсем неподъемного всё равно придётся писать модуль на плюсах.
>>595182 >В остальном это совершенно иной язык, Пиздеж. Приоритеты операторов те же. Конструкции те же. Вот примеры из оф. доков: var d = {4: 5, "A key": "A value", 28: [1, 2, 3]} d["Hi!"] = 0 d = { 22: "value", "some_key": 2, "other_key": [2, 3, 4], "more_key": "Hello" }
func some_function(param1, param2): var local_var = 5
>который транслируется в плюсы при выполнении. Чего? Там интерпретатор.
>гдскрипт приблизился к паскалю (var a := 12) Это называется автовыведение типа, а не статическая типизация. Сами же аннотации типов выглядят, естественно, как в питоне. var my_vector2: Vector2 var my_node: Node = Sprite.new() Короче, опять залетный пукает нихуя не понимая даже на уровне школьной информатики.
>>595184 вообще зацикливаться на одном языке глупо, но в данной ситуации я с тобой соглашусь, потому, что гдскрипт без годо хуйня без задач. В общем-то я не пробовал питон, мейби они правда так похожи как тут говорят, то может хоть в нем знания гдскрипт пригодятся.
>>595208 > Чего? Там интерпретатор. ХУАНСКОЗАЛ? А ты поверил? Загляни в "компилированные" файлы gdc в экспортируемом годотом архиве. Многое узнаешь. (например то, что никакие они не компилированные, а просто из текста переведены в бинарный вид для удобства трансляции) > Это называется автовыведение типа, а не статическая типизация. Каким образом автовыведение отменяет статику? Никаким. > Короче, опять залетный пукает нихуя не понимая Ну так не пукай, а матчасть учи. Прямо со школьной информатики и начни. >>595275 > знания гдскрипт пригодятся Нет никаких знаний гдскрипт. Гдскрипт это в самом деле питоноподобный набор шаблонов для работы с АПИ годота. Его не нужно учить в привычном смысле. Учить нужно само АПИ годота. Из изучения в гдскрипте только форматирование отступами и работа со словарями, как описано здесь: >>595208 А по поводу знаний. Вот я, допустим начал изучать годот, начал делать небольшие тестовые проекты на нём, потом Хуан выкатил поддержку шарпа. Я попробовал кодить на шарпе и там с минимальными изменениями всё организовано так же. Однако между питоновским и сишным подходом к кодингу есть весомые различия и потому код получается совсем иначе организованный. В шарпе ты более дисциплинированно пишешь.
>>595383 >Готовь проксю, хуила необучаемый Готовь анус, обезумевшая чмоха, вообще непонятно с чего ты так внезапно подорвался. Что, кто-то гдскприпт обидил? Не переживай так, маленький, не плачь, нужно быть стойким.
>>595361 Ты увидел код первый раз в жизни? Там нечем восхищаться, самый обычный код, который напишет на любом языке любой школьник, который не прогуливал информатику.
>>595589 Кстати, не знаю как сейчас, но нас в школе не учили конечным автоматам. Помню когда потом в универе писал свой первый тетрис нихуя про них не зная, код было пиздец сложно отлаживать (пикрелейтед). И игрострой из-за этого казался мне чем-то нереально сложным. Считаю что конечные автоматы -- это первое что должны рассказывать ньюфагам про программирование игр. Особенно про то что несколько вложенных циклов всегда можно заменить одним, надо лишь добавить немного состояния. //мимопрох
>>595768 Время ECS-архитектур закончилось в 90-х с изобретением жавы. Никто в ужасы процедурного кода и глобального состояния программы возвращаться не будет, кроме юнитиубеков в их манямирке.
>>595819 процедурный код = разделение на процедуры и данные (стейт программы). процедуры, которые изменяют, мутируют данные программы. системы являются именно такими процедурами глобальное состояние в ECS по определению, потому что любая система изменяет любые компоненты.
>>595820 >система изменяет любые компоненты. Схуяли бы любые, даун? Только те, которых касается событие. Если у тебя все юниты должны шагнуть, то они все шагнут. Если урон прилетел в одного, то только его здоровье и поменяется.
>>595773 Лумберярд перешёл на ецс, юнити переходит, для уе4 уже год пилятся сторонние решения. Но уе4 в целом отсталый так что не суть. И далеко не все вообще уходили с процедурного подхода.
>>595837 >десятки систем изменяют один компонент, а остальные 20 завязаны на этот компонент Просто хуёвая архитектура. Даун, который пишет настолько монструозные компоненты, напишет ещё более хуёвый оо-код. Должен напомнить, что даже у 9900k всего 512 KiB на L1 уровне, а значит нехуй блядь писать такие жирные компоненты, пидор. Мимопроходил
>>595845 >Просто хуёвая архитектура Да ECS хуевая архитектура. Даже если ты разобьешь компоненты, у тебя будет много скрытых зависимостей, когда система А изменяет компонент Б, который в системе В используется для измненения компонента Г и т.д.
>>595819 > Хуан не осилил ECS Но ведь Scene Tree это же самый настоящий ECS!! Я не рофлю сейчас. Все ноды - есть сущности. У всех нод по умолчанию есть доступ к тем или иным системам. Например, к системе main loop ноды получают доступ через коллбэки _Process() Разработчик может описать свои собственные системы, прикрепляя к нодам скрипт. Ну и самое главное: любая нода может быть компонентом любой другой ноды.
>>596080 >здесь не форум с вахтёрами Ох уж эта ирония. Не так далее как несколько тредов назад безумный вахтер удалял половину постов в годототреде inb4 ЭТО ДРУГОЕ
>>596928 >Ох уж эта ирония. Не так далее как несколько тредов назад безумный вахтер удалял половину постов в годототреде Тут стирали только нерелевантное говно. завсегдатай треда
>>597116 Ничего удивительного, я вообще не понимаю тех, кто на полном серьезе изучает гондот-скрипт, это же поделка уровня студента-второкурсника без задач. Он существует только потому, что Хуан не может принимать код чужих людей, что уж тут говорить, если он даже свой текстовый редактор написал, который по всем параметрам хуже каких-нибудь условных vscode и sublime, зато свой, родимый. Так же и со скриптовым языком, говно, зато сам написал, потешил своё эго.
>>597136 >зато свой, родимый Ты не совсем понимаешь. Хуану просто по кайфу! Он лежит на берегу, загорает, между походами искупнуться можно пару строк накидать, он любит. Одно и то же неинтересно прогать.
>>597157 Действительно, зачем разрабатывать игру 2 месяца, если можно разрабатывать её 6 месяцев, 4 из которых уйдет на чтение логов и отладку, а потом и багфикс внезапных ошибок в рантайме, о которых ты узнаешь при компиляции, программируя на полноценном статическом языке типа c#.
>>597179 Хуйню пишешь. Типы это твердый скелет архитектуры, они лишают программирование гибкости. 90% архитектурных проблем просто не существует в динамических языках. Почему ты думаешь питон стал таким популярным? Потому что на нем проще писать программы. Почему джава печально известна своими тяжелыми ООП-патернами? Потому что в ней типы.
>>597183 Когда твоя программа из 6 строчек - то да, в классах смысла нет. Большие и сложные системы на пистоне не пишут, это язык для скриптов и утилиток, которые написал один раз и выбросил.
>>597181 >90% архитектурных проблем просто не существует в динамических языках. Потому что 90% задач не решаются на динамических языках. Никто в здравом уме не будет пилить на питоне бэкенд отказоустойчивой энтерпрайз системы, для которой не допустим простой дольше одной минуты в год, и в которой взаимодействут тысячи компонентов. Никто не будет пилить на питоне СУБД, или движок рендеринга для браузера. Архитектурные проблемы существуют не в скриптовой дрисне на 20 строк, а в больших и сложных программах, которые никогда не писали и не будут писать на пистоне, или на жабаскрипте.
>>597181 > Почему ты думаешь питон стал таким популярным? Потому что на нем проще писать Хеллоуворлды. А раньше так с бейсиком. > Почему джава печально известна своими тяжелыми ООП-патернами? В чем заключается печаль?
>>597193 >В чем заключается печаль? Видимо в боли зумерка с клиповым мышлением, неспособным понять концепции, требующие больше 5 секунд концентрации для их осознания. Вот и повизгивает тут, роняя кал, и убеждает всех, раз ему нинужно, то значит и никому нинужно, ему же виднее как разрабатывать игры.
>>597196 Если у тебя игра чуть-чуть посложнее Марио, то игровые скрипты быстро разрастаются в кучу взаимосвязанных моделей и систем, и начинают требовать те самые печальные ООПшные паттерны, чтобы хоть как-то поддерживать этот код в читаемом и расширяемом состоянии. В каком-нибудь условном римворлде этих паттернов и подходов наберется на средней руки энтерпрайз систему. Поэтому такие игры и не пилятся на скриптовой дрисне.
>>597197 >Если у тебя игра чуть-чуть посложнее Марио, то игровые скрипты на C# быстро разрастаются в кучу взаимосвязанных моделей и систем пофиксил, не благодари.
>>597197 >поддерживать этот код в читаемом и расширяемом состоянии расширяемость встроена в язык на уровне duck typing'а. у тебя нет зависимостей от конкретных типов и тебе не нужно думать как это скелет из типов расширять
>>597206 >расширяемость встроена в язык на уровне duck typing'а Пиздец ты дегенерат. Еще бы предложил на ассемблере писать, и сказал бы, что расширяемость встроена в язык на уровне машинных кодов.
>>597267 Эту фишку Хуан спиздил у юнити - когда ты возвращаешься в редактор юнити из вижуал студии, например, юнити автоматом перекомпилирует скрипты. Это удобно. Только Хуан - особенный программист, с особенными способностями и особым видением, поэтому он видимо не стал проверять, изменились ли файлы с последнего импорта, и просто на всякий случай переимпортирует всё подряд. Ведь все, что разрабатывается на годоте - это демки из 10 спрайтов, поэтому можно не париться. Никто ведь не будет делать на годоте полноценную игру с кучей уровней, где может быть 100, 1000 спрайтов, или даже больше, поэтому можно забить хуй.
>>583342 (OP) Анончик, как грамотно организовать анимацию игрока если у меня несколько тайлшитов? Я пробовал через Sprite+AnimatedPlayer, но в sprite можно засунуть только один тайлшит. Как поступать в этом случае? - Объединять отдельные шиты в общий лист - получается слишком большая простыня, с которой неудобно работать. - Прицеплять к игроку несколько спрайтов и создавать для каждого отдельный трек в animatedplayer? Как тогда безгеморойно переключать спрайты при смене анимации?
>>598041 >Насколько помню, в гондоте можно анимировать любые атрибуты, в том числе и переключать спрайт. А как его именно "переключить"? Ну т.е. я могу создать трек с включением нужного спрайта, а как грамотно выключить спрайт от предыдущей анимации, так чтобы не приходилось перебирать их все или выяснять, какой сейчас спрайт активен?
>>583342 (OP) Бля, анон, а как дебажить в годоте? Как сделать, чтобы где-нибудь в консоли или еще где постоянно выводилось значение нужной мне переменной? Только не print'ом, а по человечески.
>>598128 >годот >по человечески Проиграл. Радуйся, что принты завезли. А вообще, проекты на годоте можно не дебажить, если запустилось - это уже хорошо. А баги в любом случае будут, не из-за твоих скриптов, так из-за Хуано-кода.
>>598048 Разбирайся с логикой проекта. Ты путаешься. >>598128 Подожди, пока годоту будет столько же лет, сколько юнити, а потом требуй. А пока что можешь свою панель с просмотром значений переменных сделать. >>598135 Ебом токнуть?
А у меня окончательно сгорела жопы от ебучего юнити, и я укатился в годо. Хз, что там за ХУАНОПРОБЛЕМЫ, но уж точно получше ебучего блоатваре поделия за 25 баксов.
>>598234 Отчего сгорела-то? У меня вот обратная ситуация, заебали баги в годоте и укатился в юнити. Он, стоит не 25, кстати, а 35 в месяц. 25 это если брать подписку сразу на год
Кто-нибудь пробовал работать с 2д тайлмапами? Что-то какой-то пиздец, такое ощущение, что инструмент пилился садистом-психопатом, у которого привстаёт на то, что люди проёбывают своё время и страдают. Разметка спрайтшита под тайлмап это какой-то ад. Нет ни одного хоткея, чтобы добавить новый тайл, нужно щелкнуть мышкой на кнопку "добавить тайл", и только потом выделять тайл на спрайте, причем эта кнопка находится в ебенях, приходится сидеть полчаса и как баран кликать мышкой туда-сюда, нельзя просто выделить несколько тайлов один за другим. Клик на кнопку - клик на тайл, клик на кнопку - на тайл. Пиздец. С коллизиями тоже ад какой-то. Выбор инструмента добавления коллизии слетает при переключении каждого спрайта. Т.е. выделил тайл, потом кликаешь на добавление коллизии, добавляешь, переходишь на следующий тайл - инструмент слетел, надо заново его выбрать и только после этого рисовать коллизию. Пиздец. Добавление коллизии через полигон - невозможно отменить последнее действие, невозможно удалить одну точку из полигона. Только удалить весь полигон и начать делать заново.
>>598234 >А у меня окончательно сгорела жопы от ебучего юнити, и я укатился в годо >>598296 >Что-то какой-то пиздец, такое ощущение, что инструмент пилился садистом-психопатом, у которого привстаёт на то, что люди проёбывают своё время и страдают.
>>598732 >К октябрю хуанг клялся допилить вулкан Зачем ждать, если вулкан уже есть в юнити? Заходишь в настройки, снимаешь галочку с "предпочтительное для винды", добавляешь вулкан, перемещаешь вулкан выше дх11, перезапускаешь - вуаля!
>>598720 Мне сказали тут, что опенгл рендер содержит ошибки, приводящие к артефактам в изображении. А еще мне говорили что-то про функцию, когда все спрайты перед отрисовкой склеивались в единый спрайт с вершинами, и если такой функции нет, то при большом количестве объектов движок начинает тормозить. Там в начале слово Bath было.
>>598739 > все спрайты перед отрисовкой склеивались в единый спрайт с вершинами Нет такого в годоте. Делай атлас сам и грузи из него части во все ноды. Тогда будет один дроукол на атлас. Ща сляпаю примерчик тебе.
>>598735 Это говно (юнити) у меня на компе даже не запускается, не то что галочку куда-то ставить. Все игры после примерно 2017 рисуют какую-то дичь, а редактор просто не запускается.
>>598762 Сляпал примерчик. Однако реально проверить на дроуколлы надо через сторонний софт, ибо по сообщениям анонов, во встроенном профайлере отображается неправильно.
>>598772 >На древнем железе вообще тяжко вести разработку. Любую. Да не особо. Блендер летает, студия летает. Годот по крайней мере работает (хоть и тормозит в сценах типа tps demo), в отличии от уе4а и юньки где барин решил что мое железо не железо.
https://godotengine.org/article/vulkan-progress-report-2 Ну шо, как вам новый рендер уровня гондотя 4.0? Хуан там решил, что 16 источников света хватит всем. >The only downside is that there is now a limit of 256 lights visible on-screen (your level can have as many as you want), and 16 lights per 2D node (as in, a single 2D node can be affected by a maximum of 16 lights).
>>598846 > Хуан ебашит один дроу колл на один спрайт Дроуколлы ебашит видяха. На текстуры. Если текстура одна, то и дроуколл один. Безотносительно движка. Спрайт это не текстура, спрайт это объект, на который текстура навешана. Спрайтбатчинг на который тут дрочат залётные юнитирабы-с-неотключаемым-сплешем, предполагает, что движок собирает все текстуры со всех спрайтов в одну текстуру-атлас и грузит её в память видюхи за один дроуколл. Значит, с целью оптимизации, несчастный годотер может делать это ручками. Ручками собрать весь контент в один большой атлас 4096х4096, ручками назначить регионы из этого атласа для каждого спрайта (в том числе регионом может быть спрайт-лист, который Sprite разметит на фреймы анимации). Да, ручками, зато щвабодка! Впрочем, всё это вилами по воде. Надо всё сторонним софтом проверять. Хотя, я не вижу в своих словах подвоха.
>>599248 Дроу колл получает текстуру и квад меш. Если нет батчинга, то на каждый спрайт пойдет один меш, чтобы был один дроуколл надо чтобы движок слепил все квады в один гигамеш. Но какая собственно разница, если в треде постили как годот рисует десятки тысяч спрайтов в 60фпс? Это будет узким местом только в совершенно ебанутых играх где проще свой рендер сделать.
>>599248 Пиздец ты дебил, даже обоссывать тебя лень. Зашёл бы хоть на learn opengl, отрисовал бы треугольник ручками по тутору, чтобы больше такую хуйню не пороть. По твоей логике, видюха сама ходит в движок и забирает меши/спрайты для отрисовки? А то, что гондотир может руками собрать спрайты в один атлас, потратив часы на работу макаки, в то время как везде это делается автоматом за один клик - это не спасёт от того, что Хуан шлёт квады по одному за draw call. Вообще поражаюсь, как гондотиры рады делать руками обезьянью работу, вы настолько ненавидите свою жизнь и свое время? >>599262 60 фпс это на каком-нибудь 1080 ti? Насколько знаю, на не топовом железе ты такой результат не получишь, уже на нескольких сотнях спрайтов годот будет задыхаться.
>>599262 > Дроу колл получает текстуру и квад меш. Тоже пруфы давай. Меши это не draw, это geometry. Сначала видюха строить геометрию, затем рисует текстуры на ней. >>599267 > По твоей логике, видюха сама ходит в движок и забирает меши/спрайты для отрисовки? По твоей. Твои слова. Видюха получает себе в память данные и работает с ними. Эти данные в неё записывает движок. Через интерфейсы видюхи. > Зашёл бы хоть на learn opengl, отрисовал бы треугольник ручками по тутору > поражаюсь, как гондотиры рады делать руками обезьянью работу Забавно. Ручками треугольник рисовать хейтерочек-хейтерок не поражается, а как годотеры ручками игоры делают - поражается. Изумительное двоемыслие.
>>599275 >Ручками треугольник рисовать хейтерочек-хейтерок не поражается, а как годотеры ручками игоры делают - поражается Как всё запущено, ты правда не видишь разницы между тратой времени на бесполезную обезьянью работу и вложение времени в изучение работы gpu, что делает тебя сильнее как разработчика игр и программиста? Наверное поэтому ты несешь такую хуйню, видимо всю жизнь клал хуй на обучение.
Допустим у меня есть игра с очень большой картой, но разбитой на различные области между которыми игрок может перемещаться (двери, порталы, колодцы и т.д). Такой вопрос, какой лучше подход использовать при проектировании игры: 1) Запихнуть всю карту в одну большую сцену и не жужжать, или 2) Запихивать каждую область в свою сцену и переключаться между ними при переходах?
>>599370 Ты просто перерос концепцию скриптов и нод, это все же для нубов сделано. Обычно программа устроена так, что есть некий основаной файл, в котором основные функции. В данном случае это может быть скрипт прикрепленный к корневой ноде.
>>599329 >очень большой картой >гондотя Несовместимо, перекатывайся на анрил. На гондоте если и делать игры, то что-то уровня тетриса, чтобы весь геймплей помещался на одном экране, а то будет лагать (окклюжен куллинг так и не завезли для 3д)
>>599372 Думой над архитектурой своей игоры. Если у тебя "плодятся пустые spatial" то это тревожный звоночек, что архитектура уёбищная и надо всё быстро переделывать, пока проект не разросся.
>>599493 >архитектура >в движке невозможно запустить скрипт, не прикрепив его к невидимому объекту и не поместив его в 3д пространство сцены >единственная неполноценная альтернатива - autoload singleton, который считается анти-паттерном и признаком говнокода в любой литературе по архитектуре Архитектура уровня гондотю
Годотаны, я правильно понимаю, в Годоте все элементы игры создаются как отдельные сцены а потом инстанцируются в главную сцену? Даже такие небольшие как пули, элементы декораций локации итд.?
>>599706 >autoload singleton, который считается анти-паттерном и признаком говнокода в любой литературе по архитектуре Т.е. ты не только юнити-шизик, но еще и ООП-шизик. Если внимательно почитать "любую литературу по архитектуре", то окажется, что почти любая альтернатива синглтону будет антипаттерном и признаком говнокода, а то что останется потребует изъебств и раздувания архитектуры приложения.
>>599706 >считается анти-паттерном Бывают редкие ситуации когда такую херню надо применить и она реально все упростит. Использование паттернов без понимания есть признак быдлакодира.
>>599805 Кстати двачую. Он попутал /pr и /gd. В гей-деве подавляющее большинство основных сущностей существует в единственном виде - один глобальный мир, один игрок, одна клава, одна мышь, один дисплей (окно), одно аудиоустройство, одно подключение по сети.
>>599329 2) Запихивать каждую область в свою сцену и переключаться между ними при переходах. А вообще лучше делать динамическую подргрузку соседних с игроком регионов. Тогда и игрок загрузок видеть не будет, и карта может быть любых размеров. В уече, например, есть такой функционал из коробки. В годоте придется запилить самому. И если динамическую подгрузку во время игры будет сделать несложно, то вот с диначеской подгузкой в редакторе придется попердолиться.
>>598128 Если гд-скрипт холоп - выносишь все интересующие тебя переменные в ноду и запускаешь игру в редакторе. Находишь ноду во вкладке remote и смотришь там значения переменных. Если шарпобог - то ты бы таких вопросов не задавал.
>>599706 > неполноценная альтернатива - autoload singleton, который считается анти-паттерном и признаком говнокода А теперь давайте посмотрим, что реально делает автолоад (смотрим пикчи). Таким образом в годоте автолоад создаёт дополнительные ветви у дерева сцены вьюпорта. Вы можете опрашивать их через итераторы, если вы так боитесь антипаттернов. >>599793 Правильно понимаешь. При разработке в редакторе сцены это отдельные сущности-файлы.tscn при выполнении игры все они объединяются в единое дерево, между ветвями которого действуют правила древовидной иерархии (куст, ветви, листья, ну ты понел, как в реестре шиндовс). На этапе разработки ты определяешь логические правила, как это дерево будет развиваться во времени, какие ветви будут разрастаться, какие отпадать. Например, знаменитый пример с пулей, пуля это лист на ветви главной сцены, которая есть последняя ветвь дерева вьюпорта. Ты инстанцируешь пулю, на ветви появляется потомок, действует по своим алгоритмам и отваливается (в случае пули). >>599885 > И если динамическую подгрузку во время игры будет сделать несложно, то вот с диначеской подгузкой в редакторе придется попердолиться. Всю весну ломал себе моск над этоя дрянья. Пришёл к выводу, что надо пердолить на тулскриптах. Но не хватает наглядных примеров. Есть видео туториалы на эту тему?
>>600018 И вот ещё: я заметил, что с вопросом о пулях очень мало уделяется внимания тому, что делать видимые летящие объекты - это уровень двадэ-платформеров. Если ты делаешь тридэ-шутан, то ни о каких инстансах пуль речи быть не может. Ведь пули огнестрела невидимы глазу, поэтому только рейкаст с частицами и симуляция разброса пуль через рандом, ограниченный круглой областью (или не круглой, если ты учитываешь ветер и прочую погоду с окружением при расчётах). В месте попадания пули на объекты мира генерируется событие, которое объекты мира обрабатывают: стены рисуют декали следов от пуль, живые объекты генерируют частицы с фонтанчиками кетчупа. и т.д. Впрочем, есть исключение: ракеты, гранаты, там да, можно заморочиться летающими мешами.
>>600031 Хороший пост. Сразу возникает желание подумоть и грамотно парировать. Баллистическую траекторию закладываем в расчёт разброса пуль: рейкаст - абсолютно прямая линия в точку, в которую игрок целился. Вокруг этой точки рисуется плоская фигура, в простом случае окружность. Диаметр окружности - разброс пуль из ствола, зависит от состояния оружия, от типа оружия (у дробовика выше). Смещение фигуры вниз - рассчитывается по баллистике от расстояния до цели. Какую-то решающую роль играет только у снайперских винтовок. Так же смещение от ветра. Еще можно организовать рандомное смещение в зависимости от бега и дыхания. И отдача ещё! После того, как параметры фигуры определены, рандом выдает псевдослучайные точки внутри фигуры по количеству прилетевших пуль. Слоумо - киношный трюк. Я только макспейна знаю с попыткой реализации и ещё этот, как его, про мексиканских мучачос. В обоих случаях я на пули особо не смотрел. За всех говорить не буду. Поэтому да, возможно ради слоумо можно раскошелиться ресурсами пеки и делать пули-объекты. Но лучше реализовать пару катсценок на частицах и не выёбываться. ИМХО.
>>600040 Может я неправ насчет баллистики, хз. Просто не уверен что там сильно большой выигрыш если вместо объектов делать частицы. Надо считать. Навскидку - баллистика важна на играх с расстоянием 200-400м. То есть не каэсики, а русты. Фишка в том что ты целишься во врагах на 400м, но если на 300м стоит ящик, а пуля начала опускаться, то ящик остановит пулю и одним рейкастом не обойтись, нужна дуга. Если говорить про скорострельность, возьмем для примера м16, она выпускает примерно 15 пуль в секунду, т.е. примерно каждый 2-й кадр на 30фпс. Пуля летит со скоростью >800м/с, прицельное расстояние 400-600м, т.е. пуля живет только в том кадре где выпущена. Ну и скажем у нас 16 игроков одновременно стреляет. Сможет годот 3д пережить одновременное существование 16/2 (из-за скорострельности) = 8 пуль в кадре? Думаю без проблем.
>>600049 > Пуля летит со скоростью >800м/с Что же я за херню написал. Пуля летит 26м/кадр при 30фпс. Так что живет пуля до 30 кадров. Итого, за время этих 30 кадров, будет выпущено еще 15 пуль одним игроком. Всего 16х16 = 256 пуль в кадре.
>>600052 Стоит на секунду отвлечься, а в треде уже БДСМ-оргии начались. >>600050 Суперхот это вообще пазл какой-то. мы вроде о простых риал-тайм шутанах говорить начали. >>600049 Насчёт баллистики в любом случае мы с тобой, сидя на диванах, ничего толкового не придумаем. Надо пробовать на практике. Для меня самый очевидный способ: Построить по параметрам (игрок, цель, дистанция) баллистическую кривую. Взять на ней несколько точек (аппроксимировать) так, что между точками кривизной можно пренебречь. Скажем, с потолка беря цифры, каждые 50 м. После этого между этими опорными точками в одном кадре генерируются рейкасты в направлении полёта пули. Ну вы понели, велосипедная "арка-каст". И всё, если один из рекастов возвращает столкновение с ящиком то: 1) в простом случае, игроку возвращается событие о промахе; 2) в сложном случае из профиля результирующей фигуры разброса пуль вычитается профиль ящика, который наложился. В сложном случае нужно вместо одного рейкаста направлять (по той же баллистической аппроксимированной дуге) целый пучок рейкастов, по границе фигуры разброса пуль. В этом случае я даже начинаю уже сомневаться, оптимизация ли это по сравнению с пульками-объектами.
>>600279 Так и Хуана игор нет, почему он за столько лет не сделал ни одной игры на своем движке, если он такой же охуенный? Чем Хуан отличается от сотен движкописателей без игор, которых тут принято хуесосить и посылать на юнити?
>>600336 > Да господа, это унионы. В 2к19. Работает -> не трожь. Основное правило инженеров айти с 1969 года, сука! Давай, расскажи мне, почему нельзя использовать юнионы сегодня? ТЫЗОПРИТИЛ? /Скорее бы каникулы закончились/
>>600338 Угадывать битовый формат флоатов - это UB. О чем собственно эмскриптен и предупреждает, так что тут "работает потому что сегодня звезды сошлись, завтра поломается" не терпится? Портфель уже собрал?
>>600340 Слышь, неттыкающая школота, хуан начал писать годот ещё когда тебя батя по ошибке зачал. Вот щас хуан всё бросит и побежит тебе юнионы на варианты по всему коду менять, только потому, что тебе видите ли так захотелось.
>>600344 Так там не нужен вариант. Просто кто-то решил что флоат NaN'ом надо инициализировать через union. Наверное у Кармака в C-коде кваки подсмотрел лет 20 назад.
>>600347 >вариантов Что-то сомнительно, во-первых c++17 only, слишком строгое ограничение, во-вторых оверхед, судя по всему там хранится 4-байтное поле, с инфой какой тип туда был записан крайним.
Делаю этот тутор. Мне кажется или функция process_changing_weapons быдлокод в чистом виде? Думаю сделать смену по кнопкам в 3-х ифах и оставить бульную переменную чтоб не стрелять во время смены пушки, какие подводные?
Как то это несерьезно. Экспортировал html - крашится в браузере с каким то эксепшном 107, экспорт в андроид перестал работать потому что вместо темплейта apk мне выплюнуло какие-то .neon.so. Пойти что ли обратно писать свой велосипед на bgfx+ogre
Анон, есть вопрос по анимации. Сделал анимацию через стейт машину (AnimationPlayer + AnimationTree), как мне получить номер кадра текущей анимации или временную позицию? Пробовал обращаться к AnimationPlayer.get_current_animation_position ничего не выдает.
>>600355 >Пойти что ли обратно писать свой велосипед на bgfx+ogre А я вчера весь вечер изучал SFML+шарп. Заманчивая штука. Нужно просто один раз набросать себе шаблон ядра игры (update, draw и т.п.) а затем делать игоры на этом шаблоне, постепенно добавляя в него функционал, пока он не превратится прямо в движок-движок.
>>600404 А мог бы. Но виновата прокрастинация. С юнити я ознакомился и даже свои соображения в соответствующем треде писал. Да, удобно, хорошо, быстро, замечательно. Но прокрастинация, сука!
>>600371 Ничего не ожидал, в остальных опенсорсах не сильно лучше. >>600386 С 2д у SDL/SFML-то проблем нет. Проблема в малом количестве 3d/VR фреймворков. Пока что из альтернатив только полумертвый libgdx на java, либо вот bgfx+ogre.
>>600435 Ну смотри. Вселенная-наоборот с толщеходами (не путать с землеройкой, которая делала тред рейдерского захвата идеи). Вся игровая Вселенная - это твёрдый кристалл из первичного элемента пропитанного электронным газом. Когда Вселенная (изначально горячая и жидкая) остывала и твердела, в её толще образовались пузырьки. В этих пузырьках (планетах-наоборот) и зародилась жизнь. Главный герой работал на толщеходе в крупной толщепроходческой корпорации и добывал минералы в полостях. Потом против него построили козни и попытались убить. Очнувшись в поломанном толщеходе движущемся к краю (краем у них называется граница сверхбольшой полости, тяготение у которой разрывает всё живое в лапшу как чорная дыра у нас), главный герой из последних сил выворачивает толщеход, чтобы он пошёл вдаль от края и опять вырубается. Когда он снова приходит в себя, толщеход уже заглох и стоит выкопавшись в какой-то неизведанной полости с простыми деревенскими жителями, которые живут тихой размеренной жизнью и слыхом не слыхивали ни о какой Метрополии, ни о толщепроходчестве, ни о толщеходческой корпорации Ахибреда Кранта. И вот тут заканчивается пролог с обучалкой и начинается основная игра. Жанр - иммёрсив сим с элементами эрпогэ: фармишь ресурсы, прокачиваешь свой толщеход, разгадываешь загадки, сражаешься с монстрами, проходишь квесты сюжетные и побочные. А в конце сражаешься с главным злодеем, но твоя принцесса в другом замке. Немая сцена. Занавес.
>>600481 > Ваще них не понял. Похуй, всё равно мы с тобой не в лифте. ЕПОЧЯ. > Не взлетит твоя игра Нам очень важно ваше мнение, пожалуйста, оставайтесь на линии, ближайший освободившийся оператор обязательно свяжется с вами.
Анон. А есть какие-нибудь хорошие гайды по использованию move_and_collide для 3.1 версии ? А то мне move_and_slide, чет не заходит - слишком много костылей к нему приходится лепить.
>>600840 Я кинематик боди чот перестал уважать вообще. Берёшь риджид бади с полноценной физикой и ебошишь персонажа на нём. Я так делаю и ты так делай.
Анон. Как в 2Д проверить столкновения в рядом с игроком в области произвольной формы? Т.е. к примеру, чтобы я мог задать в коде прямоугольник нужной мне формы рядом с игроком и проверить есть ли на его месте в тайлмапе что-нибудь твердое? Желательно, чтобы еще и можно было получить расстояние до игрока.
>>601358 >расстояние до игрока. Т.е. немного не так. Чтобы можно было получить минимальное расстояние от заданного края этой области до чего-нибудь твердого в ней.
Пост будет звучать как оправдания тонущему Игорю, но как думаете какой процент того что на Годо есть реально выстрелившая индюшатина но мы о ней не знаем потому что авторам вообще поебать на упоминание двигла? MTI же
>>601422 Я не спорю, но как можно быть увереным в этом? Типа люди так и так знают на каких двиглах выходят игры? Меня этот вопрос интересует, я например смогу от людей скрыть что на нём сделал игру?
>>601627 На самом деле, это проблема того, что гондот скрипт не компилится в нативный код в релизной сборке, или хотя бы в промежуточное состояние, байт код. С маминых шифрователей итт проиграл, конечно. Выбирая гондот, надо понимать что твоя игра опенсорс поневоле, код посмотрит кто захочет
>>601635 >хотя бы в промежуточное состояние, байт код. Она компилится в байткод, но названия методов остаются плейнтекстом, из-за того что язык динамический с hasMethod()
>>601425 Если обладаешь минимальными знаниями, то сможешь скрыть от 95% людей. >>601431 >Т.е. чтобы это скрыть придется очень сильно потрахаться. Берешь и не используешь скрипты на gdscript. Сложно - пиздец.
Вопрос. Вот есть у меня две ноды с нулями в одной глобальной точке. Нода А вращается произвольно, а нода Б фиксирована. В ноде Б есть произвольный вектор В. Мне надо, чтобы этот вектор после задания дополнительно поворачивался на поворот ноды А. Я полагаю, что это как-то можно сделать через базисы или их матрицы, но хз, как вообще такие манипуляции делать, никакого опыта не имею. Я бы предположил, что мне надо как-то построить вектор В в рамках базиса Б как-то... как-то условно умножив на оси базиса А или хз. почти не сплю четверо суток, думать уже давно не в состоянии, да и учусь только этому всему
>>601679 >Берешь и не используешь скрипты на gdscript. Сложно - пиздец. Конечно сложно. 95% тут собрать c++ не осилят. А C# не умеет в экспорт мобилки/html (да и декомпилируется обычно он элементарно)
Анон такой вопрос. 2Д платформер вид сбоку (пикрелейтед). Есть игрок (фиолетовый прямоугольник) к которому приделан Area2D+CollisionShape2D (зеленый прямоугольник) Есть тайлмап по которому он передвигается (черного цвета)
Как мне получить пересечение зеленого прямоугольника с черными полигонами? Т.е. грубо говоря мне надо найти расстояние L от левого края зеленого полигона до начала черного.
Я пробовал через get_overlapping_bodies(), но он выдает мне ссылку на весь тайлмап и с какой именно его частью произошло столкновение я не могу узнать.
Нашел в мануале еще метод intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=null ) Но не могу понять как задать форму в Physics2DShapeQueryParameters, ну и чувствую, что на выходе тоже получу ссылку на весь тайлмап, что для меня бесполезно.
>>601627 > Жаль, что ты не прочитал ссылку выше. Там есть утилита, которая автоматически найдет этот ключ в бинарнике и распакует ресурсы. Блеать! Ну тогда остаётся только одно. Пилить скрипты на шарпе. Wait~ >>601636 > Как и в юнити. Дотнет же легко декомпилится. Тогда остаётся только одно. Пилить скрипты на неуправляемом языке и собирать в либу nativescript.
Я всё больше убеждаюсь, что движки нинужна. Надо брать медиафреймворки, типа СДЛ/СФМЛ и ебошить игору прямо на них, попутно делая движок под свои нужды (главный цикол, колбэки, вспомогательные классы и т.п. - для одной игры написал, для второй уже возьмёшь готовое)
Идея интеренсная, запомню на будущее, но в моем случае не пойдет. Т.к. мне нужно мониторить не какие-то отдельные объекты, а всю окружающую поверхность.
>>601761 >Либо фигачить на сигналах on_enter Похоже придется так делать.
>>601786 >Надо брать медиафреймворки, типа СДЛ/СФМЛ и ебошить игору прямо на них, попутно делая движок под свои нужды (главный цикол, колбэки, вспомогательные классы и т.п. - для одной игры написал, для второй уже возьмёшь готовое) Для 2д все так. Но вот с 3д все плохо. Нет легковесного фреймворка который преобразует 3д объекты в опенг-вызовы.
>>601803 Bgfx - это рендеринг, там даже в шапке написано - "Bring Your Own Engine". Это такая оберточка над опенгл и шейдерами, нет таких понятий как объект игрока, который идет, меняет оружие и т.д. Плюс при сборке тащит с собой какие-то свои билдсистемы, васянские классы image. osg все руки не доходят пощупать, вроде бы там есть все, и vr, и emscripten, и мобилки, код еще не смотрел.
>>601789 >>Либо фигачить на сигналах on_enter >Похоже придется так делать. Попробовал - фигня получается. Т.к. сигнал эмитируется после того как игрок совершит движение, а мне нужно отслеживать ситуацию до его начала. Придумал еще два варианта: 1) По циклу изменять размер нужного CollisionShape2D от меньшего к большему и смотреть на каком шаге будет столкновение, это и будет расстояние. 2) Гонять по циклу RayCast2D вдоль границы области и так же получать расстояние. Собственно мне всего-то нужно проверять на расстояние нескольких пикселей, плюс нет необходимости в постоянном мониторинге, так что думаю тормозить это не должно.
>>602084 Я бы на твоём месте копал в эту сторону: >>601742 >Нашел в мануале еще метод intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=null ) >Но не могу понять как задать форму в Physics2DShapeQueryParameters, ну и чувствую, что на выходе тоже получу ссылку на весь тайлмап, что для меня бесполезно.
>>602094 Я бы с радостью, но я так и не понял как задавать shape в Physics2DShapeQueryParameters. Я пробовал закидывать туда форму полученную из collisionshape2d, но на выходе не было результата. А в мануале по ней инфы практически нету.
Я сейчас хочу попробовать еще один способ. Я сегодня настроил экспорт тайлмапов из tiled'а. А там коллизии можно отдельным слоем нарисовать и при импорте в godot они на отдельные объекты разбиваются. По идее теперь get_overlapping_bodies() должен мне выдавать ссылку на отдельный объект. а не навесь тайлмап.
>>583342 (OP) А что в Godot делать то? Я имею ввиду, что в доках новичкам все слишком для тупых написано, бо я уже сам разобрался таких вещах как например пилить свой гуи, а я же хочу разжеванную в мой ротеш инфу как например лучше/оптимальнее всего сделать архитектуру игры. Если в юнити это было просто и понятно для меня, то с годотовскими понятиями я немного путаюсь, хотят тут заявляют, что в годоте все легче в плане этого. То есть игрока делать отдельной сценой и потом присоединять его в другую сцену? Я не понял
>>602299 В общем, если подумать, получается что задумка не так уж плоха. Нода - это базовый тип, как int или string. Она жестко задана движком (опустим пока момент с модулями на плюсах) Сцена - это аналог класса в ООП. Сцена как бы наследуется от одного типа (который является корнем сцены), а так же может композицией включать в себя другие сцены и ноды, как класс может включать в себя поля других классов и базовых типов. Их можно инстанцировать, как в ООП можно создавать через new объекты классов. Ну а сигналы - это сообщения из ООП, только не из распространенного, а как в окамле. Короче если бы Хуан не выебывался и в очередной раз не назвал общепринятые вещи нестандартными именами, было бы намного удобнее.
>>602313 Пустовато, небось все плагины отключили и модельки загружать не выходит. >>602314 Чего это? Когда отключат в ноябре интернет, можно будет клепать игры для местных.
>>602304 > В общем, если подумать, получается что задумка не так уж плоха. > Нода - это базовый тип, как int или string. Она жестко задана движком (опустим пока момент с модулями на плюсах) Первый потомок Object. > Сцена - это аналог класса в ООП. Сцена как бы наследуется от одного типа (который является корнем сцены), а так же может композицией включать в себя другие сцены и ноды, как класс может включать в себя поля других классов и базовых типов. Их можно инстанцировать, как в ООП можно создавать через new объекты классов. Сцена это всего лишь файл .(t)scn Это инструкции для конфигурации дерева нод, дерева сцены. Дерево же, это классическая древовидная структура данных. Корень дерева - нода viewport. От неё расходятся одна или более ветвей-нод с подветвями-нодами. Никакого ООП. Просто дерево. > Ну а сигналы - это сообщения из ООП, только не из распространенного, а как в окамле. Ну, как я понял, это события. До Хуана так придумали переименовать в линуксе, навскидку в GTK.
>>602325 Ты немного не понял суть поста. Он был не о том, как устроены ноды и сцены, а о том, какое их предназначение в архитектуре игры. >Корень дерева - нода viewport. Речь шла не об устройстве сцены, а о том, что в сцене можно задать только одну корневую ноду. Поэтому можно считать, что сцена - как бы наследник этой ноды. >Никакого ООП Если бы писали на неком метаязыке, то игру можно было бы описать так: class SceneTank extends Node::Sprite {//это корневой спрайт Node::Sprite wheels[4]; //композиция нод - "базовых типов" SceneGun gun; //композиция других сцен-"классов" on_body_enter() {//тут обработчик сигнала } }
>>602407 > Он был не о том, как устроены ноды и сцены, а о том, какое их предназначение в архитектуре игры. Всё я прекрасно понял. >>602304 > Сцена - это аналог класса в ООП. Нет, нет, и ещё раз нет. На уровне организации игры в редакторе ООПа в общем случае нет. Ты не работаешь с классами, ты работаешь с предметно-ориентированным фреймворком для построения графического приложения (игры). И фреймворк этот организован, как дерево. Любая сущность игры доступна тебе по своему пути в дереве. Никакого наследования нет. Никакой композиции нет. Нет инкапсуляции: Все пользовательские переменные ноды видны другим нодам, например. Классы там появляются как встроенные в скрипт, но в большинстве случаев это не нужно и полноценного ООП эти встроенные классы тоже не дают. Ещё раз, нет. Сцена не аналог класса. Сцена это ресурс. Файл конфигурации дерева нод. Ещё раз повторить? Сцена загружается как ресурс PackedScene, затем при помощи команды Instance() из этого ресурса формируется ветка из нод, которую ты можешь добавить в дерево командой add_child(). Нет там никакой даже малейшей аналогии с ООП.