Шапка: https://hipolink.me/godothread
Предыдущий: >>1017767 (OP)
Архивный: >>1014044 (OP)
>Тебе неудобно - не используй.
Факт, но хотел попробовать. Никто так и не смог объяснить, нах они нужны. Какая-то бесполезная прослойка. Решил попробовать. Не вкатило
>Тебе никто не запрещает нахуярить сцен, настроить их индивидуально, а после этого использовать ссылки на сцены в ресурсах!
Зачем мне в таком случае вообще ресурсы, если у меня уже все настройки в сценах, и их можно просто добавлять в сцену уровня? Так и так это делать, что готовые, что с вложенными ресурсами

> Зачем мне в таком случае вообще ресурсы, если у меня уже
Я тебе писал в прошлых тредах неоднократно, но ты не хочешь слушать, не хочешь понимать.
Вот есть нода MeshInstance3D и у неё есть меш-ресурс, который нужно загрузить.
Теперь просто ответь сам себе на вопрос: зачем Хуану в таком случае вообще понадобился тип ресурс в этом месте? Почему там не нода? Почему этот тип вообще называется "ресурс"?
Теперь еще раз. Если ты не понял зачем тебе ресурсы - не используй ресурсы. Сделай всё на нодах.
Нормальный подход. Если тебе нравится - делай так.
У меня похоже (сама идея что вся игра и ее меню в одной корневой сцене), но детали отличается.
Зачем WIndow корнем? В годоте и так есть автоматическое окно и корневой вьюпорт. Так что это можно сделать просто Node2D.
Дальше. Зачем перехватывать ввод и перенаправлять? Это и так движок умеет делать. Кроме hide() вызывай set_process_input(false).
Гуй обычно у меня сделан так - CanvasLayer, в нем корневой просто Control на fullscreen у которого события mouse - ignore. Но тут я не помню, работает ли это если несколько подсцен со своими канвас лейерами.
Не уверен, что стал бы помещать всю игровую сцену внутрь зеленого контрола. С одной стороны, я и так это делаю с наэкранными кнопками-джойстиками, с другой, не уверен что не будет проблем (например с антиалиасингом) если вся пиксельная графика скалируется гуй-контролом.
Есть шансы? Полный ноль в программировании. Или уже всё? ИИ завтра будет делать игры, а мне лучше на заводе ебашить?
И вообще сколько времени займет ,чтобы разобраться как с аткими вводными змейку хотя бы сделать на Годо?
Есть шансы? Полный ноль в программировании. Или уже всё? ИИ завтра будет делать игры, а мне лучше на заводе ебашить?
И вообще сколько времени займет ,чтобы разобраться как с аткими вводными змейку хотя бы сделать на Годо?
Есть, конечно. Ебашь. Начни с официального 2д туториала - он даже проще змейки, или на ютубе что-нибудь простенькое найди если ты по видосам. Спрашивай итт если что.
https://docs.godotengine.org/ru/4.x/getting_started/first_2d_game/
Про ИИ не парься, сам он ничего не делает, это просто инструмент которым можешь руководить и ты, но понимать код, который он выдает - гораздо лучше чем не понимать.
Я просто боюсь еще краха видеоигровой индустрии на манер как в 1983 году, когда полки наводнили низкокачественные поделки и всех это остоебенило ,что перестали покупать игры.
Так и сейчас с развитием ИИ, каждый идиот или компания идиотов начнут тонны высирать низкокачественного кала, что все цифровые магазины утонут в нем и людям надоедят игры как таковые? Копаться среди тонны кала, чтобы найти хоть что-то нормальное.
Если я начну сейчас усиленно изучать годо и пытаться выпустить что-то сносное уйдет минимум лет пять у меня. Не умрет ли индустрия от ИИ к тому времени?
Годот не про индустрию.
Отмазки всегда придумаются. Я боюсь что мне на голову прилетит, и что гугл-плей обнаружит что я санкции обошел. Больше делай, меньше загоняйся. Лучше что-то делать и уметь, чем не.
Я тут смотрел один стрим три года назад, и там чатаны ехидно говорили стримеру, ну всё, на завод теперь пойдёшь. А он им в ответ говорит, мы стримеры максимум в пятёрочку на кассу, потому что стримеры - это бестолочи, а на завод берут толковых ребят.
Так вот, двачеры еще хуже стримеров, ты даже стримы не ведёшь. Какой тебе завод? Что ты на заводе делать будешь? Как ты вкатишься в управление ЧПУ станком, если ты даже гдскрипт простейший освоить не способен? И я такой же.
Не сравнивай индустрию до обзорщиков/твичпроходимцев + алгоритмов рекомендаций и индустрию текущую. Да, тесновато, но пока ещё нормально.
Сбежал монстра из гг.
Согипмфчьмвдсяд.
> Не умрет ли индустрия от ИИ к тому времени?
Так вариантов нет в любом случае. Умрёт индустрия, будем адаптироваться. Хрен знает, какие тренды будут в будущем. Ломать голову над этим сейчас и бездействовать - просидеть у разбитого корыта. А когда представится шанс, не будет ни скилов, ни опыта.
Перешел с анимашнплеера на твины и процедурную анимацию, не жалею, все сквишится, прыгает, отскакивает, пердит, реагирует на окружение и игрока. Охуенно. Еще и напрямую в коде все записано - легче комментариев навалить и понять что происходит.
Тричую, анимплеер нужен для совместимости с блендером и аналогами, чтобы модельки с готовыми анимациями удобно импортировать. Для мелких работ кодом прекрасно подходят твины.
су в любой момент может полететь в пизду вслед .io, абулик как всегда меняет шило на мыло.
Двачую твины
Прост уровень большой.
Хотя ты прав, до меня сразу не дошло о чем ты. В меш-ресурсах еще свои surface были загружены, которые мне не нужны - я использую материалы на меш-нодах, а не на меш-ресурсах. Выкинул их и посохронял меш-ресурсы в бинарные .mesh, стало лучше. Спасибо.
Еще могу сам уровень пересохранить из tscn в бинарный scn - сразу с 2.6мб до 200кб падает. Имеет смысл?
> Имеет смысл?
При экспорта все текстовики пересохраняются в бинарный формат. Так что с точки зрения экспорта смысла нет.
Угу только там все не так просто, экспорт только для текущего сайта, а на хк уже не зайти. Я попробовал поднять сервер и прописать в hosts, а лиса на него не заходит даже если всякие dns over https отключить. Так что дальше только менять сорцы куклы и надеяться что в фф нет какой то еще защиты что расширению не покажут бд для другого домена. Или разбираться как залезть в sql. Это и я и называю ковыряться.
Ну я предпочитаю оставить текстовым, вдруг надо будет что то поправить быстро в блокноте. Иногда даже генерировал какие то данные на питоне и копипастил в PoolArray.
Собственно ты можешь открыть в блокноте или другом текстовом редакторе, пойти попить чайку и увидеть что там не упаковалось. Как то давно я редактировал террейн и там была опция авторасстановки деревьев/кустов/травы, и сцена стала тормозить при сохранении в редакторе. Оказалось что их координаты хранились текстом (а я думал там просто "границы" областей хранились), но там было в разы больше данных чем надо, как будто глюкануло или аддон хранил все предыдущие расставленные до undo. Пришлось как то вычищать.
Ну вот ради интереса открываю сцену в Dumer, которая неприлично большая для такой игры, аж 31кб.
Во первых там много каких то Анимаций.
Во вторых тайлмап, это ужас. Там отрицательные значения означали какие то битовые флаги типа горизонтального флипа. А у меня там 3 игровых тайлмапа и 2 декоративных.
Еще у меня есть 3д "гта в ссср" условно. Там много ассетфлипов, а tscn целых 364кб.
Да, там пролезли некоторые меши
В Хоппе есть сцена для съемки кинематиков. Я туда тупо модельку с анимациями закинул. Аж 7 мегабайтов, включая портянки строк описывающих кости по одной, вершины модельки и анимации. Это конечно можно все скинуть в бинарное, но пофиг так как в экспорте сцена не используется, только для рендера ролика какого нибудь или выставления позы.
Во-первых, хк уже вернулся.
Во вторых, файл экспорта - банальный жсон. Проходишься по нему реплейсом в любом твоём текстовом редакторе и радуешься. Это на будущее.

Читай внимательнее - этот жсон неоткуда было взять.
Предлагаемый экспорт выглядит так, .hk в нем не присутствует когда ты сидишь на .life а .hk не грузился.
> неоткуда было взять
Можно было прописать айпишник в свои локальные хосты под именем 2ch.hk, и пробившись через 33 предупреждения браузера открыть сайт, и забрать настройки.
Ну да ладно. работает и ладно. Сделай бэкап сейчас. Я сделал.
Ты сделал мне грустно, не читав на что отвечаешь.
>>1022046 →
Спасибо
>>1022045 →
>Выглядит так, что они слишком мелкие, и просто успевают набрать большую скорость чтобы пробить коллайдер
Потестил - действительно, через CSGBox3D проваливаются мелкие коллайдеры, например цилиндр высотой 0.201 и радиусом 0.031. Но стоит увеличить радиус в 2 раза, как проблема пропадает. Ну или заменить CSGBox3D на StaticBody3D.
Короче, АБСОЛЮТНО, неочевидная какая-то хрень
Благодарю


>0.031 увеличить в 2 раза
Это мало, еще увеличивай, говорю стандартные размеры должны быть в районе 1, в крайнем случае 0.1. Если у тебя игра про людей, делай им 1-2 метра как в реале. Если игра про микрообъекты то им лучше задать искусственно завышенные размеры, вместо 1мм или 1см тоже 1м.
Может оказаться что у тебя уже работает, а на более медленных компах нет. Не уверен, но вроде это получится проверить, поставив более низкий physics tics per second
Это нелогично если не знать, но когда знаешь это логично.
Во-первых, как происходят упрощенно говоря рассчеты физики? Вот у тебя тело набрало какую то скорость от гравитации и подлетает к тонкому полу. В какой то шаг оно до него, а в следующий за ним, и физика такое не может отследить. Если бы скорость тела была меньше, или размеры больше, то оно бы столкнулось и было отмотано до точки где может стоять. Либо. как я писал надо включать галочку CI, тогда оно будет как то детально проверять путь по которому летит, но это может быть неоптимально тем более если игра не про физику например если игра RTS, то можно вообще без физик обойтись, тебе скорее навигация нужна
Во-вторых на это намекает свойство Margin у CollisionShape. Margin - это погрешность которая добавлена вокруг всех объектов чтобы определять столкновения раньше и быстрее. Так у тебя радиус объекта уже меньше этой погрешности! А уменьшать его сильно ближе к 0 не советуется.
>Если у тебя игра про людей, делай им 1-2 метра как в реале
Да, про людей. Но есть, условно, относительно мелкий объект, типа "бутылка". Ну ее никак до 1 метра не увеличить. Ну только если скейлить все объекты и игрока в 2-3 раза
В общем, в целом идея понятна. Буду тестить и править при необходимости
>Это нелогично если не знать, но когда знаешь это логично.
Ну это да
А что если юнит годота мысленно приравнивать не к метру, а к сантиметру, например. При импорте всё масштабировать в 10 раз. Получится много работы, но зато с лимитами имеющейся физики получим точнейшую симуляцию. Кто готов попробовать?
Увеличивать то можно, только тогда тостеры и браузеры перестанут вывозить.
>>2307
Я это и имел в виду:
>им лучше задать искусственно завышенные размеры, вместо 1мм или 1см тоже 1м.
Но важно именно соотношение размеров. Надо посмотреть какой у тебя самый маленький значимый объект и какой большой. Если ты все в 100 раз увеличишь, то и большие увеличаться, а это тоже может стать проблемой. Грубо говоря, если у тебя игра РТС и минимальный юнит это человек целиком, который ходит по авианосцу, то ок. Если у тебя иммерсив сим и человек взаимодействует с бутылками, то увеличиваешь масштаб и тоже все ок. Проблемы будут если ты попытаешься сделать взаимодействие бутылки и целой плаенты, или атома и авианосца, какие то такие разницы в размерах. Там уже надо большие объекты резать на более подходящие.
А шутка в чем? Публичный аддон был лет 5 назад еще.
А где смеяться? На том что в хуюнити до сих пор не NET Core и сокеты не обладают свойством не гадить в память? А в годоте 4.5 будет 9 неткор)
https://store.steampowered.com/app/3146520/WEBFISHING/
https://store.steampowered.com/app/2211170/Unrailed_2_Back_on_Track/
Держи. По первой все зумеры/альферы угорают, тянет до 200 игроков с модами. Вторая вообще с Юньки убежала. Обе с НЕТКОДОМ.
Бля, вебфишинг настолько популярен стал что я в ирл у школоты значок на портфеле видел.
лол
пока тут некоторые трясутся над графоном и шейдерами, васяны выпускают такое, лутают деньги и поднимают демографию
Вам давно про это говорили. Ваш идеальный код, выверенная мультиплеерно-кнопочная архитектура и отсутствие синглтонов никому не нужны. А игры нужны.
Так вот что Коджем спиздил на последнем ТВГ
Алсо, СтимДБ не детектит эту игру, а она была бы в топ 10.
А она точно на годоте.
А представляете сколько еще хидден гемов может там оказаться.
У меня больше десятка игр, и никому они не нужны. Это лотерея, что выстрелит. Поэтому лучше я буду дальше вылизывать идеальный код, потому что это дает потенциал делать фичи, которых у других нет, и за счет этого получить повышенный шанс игре оказаться замеченной.
И это не говоря о том, что в посте речь о том что "графон не нужен". Есть примеры игр с хорошим графоном, но плохим кодом, из за багов получающего негативные отзывы, например титановая гончая.

Успех делается не годами вычищений кода а годами итераций релизнутых идей. Идея может быть хороша, но с хуевой реализаций, или наоборот. Или идея может зайти лично тебе и никому другому. Или ты выкатишь идею не ее целевой аудитории, не с тем уровнем сложности, или не на той платформе. Или идея работает в паре с другой идеей, которой у тебя нет.
Это как ощупывать слона - чем больше щупаешь, тем ближе ты к пониманию слона. А вылизывать ему один-единственный анус годами не приведет тебя к пониманию того, что это слон. Только говна поешь.

Кстати чет текстур маловато, ПО-ДЕТСКИ!
Что ты вообще ждешь от геймдева? Впечатлить с игроков своими игровыми идеями? Или денег заработать? Или что-то еще?
Есть намерение в том что ты делаешь? Или просто плывешь куда течение понесет?
Принято, хоть я так и не понял кто эта ваша Хоппа. Доклад сам смотреть будешь, потом отрепоришь итт.
Блин, это не может быть дежавю, я точно такой же пост уже видел где-то...

> направьте меня на правильный путь
Например, это https://docs.godotengine.org/en/latest/classes/class_curve3d.html#class-curve3d
С некоторой периодичностью добавляешь текущее местоположение в кривую (если перс движется).
Затем с кривой можешь делать всё что захочешь.
> кто эта ваша Хоппа
Старшая дочь Ганса-Германа Хоппа. Является ключевым акционером фирмы ASML. В /b/ битарды одно время наяривали на неё, после чего их всех в /fag/ выперли.
Подробный ответ сейчас написать не успеваю, есть разные способы рисовать на текстуре
-Декали (встроенные в 4-ку, аддонами в 3-ке), проекция 2д на 3д
https://docs.godotengine.org/en/stable/tutorials/3d/using_decals.html
https://godotengine.org/asset-library/asset/670
-Сплат мапы
-Vertex Painting
Не помню в чем отличие этих способов
https://github.com/alfredbaudisch/GodotRuntimeTextureSplatMapPainting/tree/master
https://github.com/alfredbaudisch/GodotInGameVertexPaintingDirtEffect
http://erikamoya.com/paint-in-3d-in-godot-4-1/
Также посмотри
-Объемные следы в снегу, песке (емнип рендер всего во вьюпорт и потом использование текстуры как модификатора геометрии)
https://godotshaders.com/shader/car-tracks-on-snow-or-sand-using-viewport-textures-and-particles/
-SDF эффекты
https://godotshaders.com/shader/sdf-range-rings-3d/
Вот какой то туториал
https://www.youtube.com/watch?v=4DFpLnEnKFk
+ фишка с Overlay Material
Дмитрий Сергееевич.
Анон, а не подскажешь, как быть определением нарисованных фигур? Как определить, что игрок нарисовал круг, а не хуй или квадрат?
Я бы не заморачивался с хитрыми алгоритмами и сделал бы OCR на любой готовой популярной библиотеке, или вообще через локальную llm. Заодно сможешь не только круги-квадраты а, например, рукописный ввод или хуи.

Почитай про алгоритм $1 и его развитие $Q
Для 3-ки
https://godotengine.org/asset-library/asset/91
https://github.com/blurymind/1dollar_gesture_recogniser
Для 4-ки
https://github.com/angrychill/q-dollar-gesture-godot
https://depts.washington.edu/acelab/proj/dollar/qdollar.html
Обязательно перед генерацией надо один раз имена предоставить. И сколько у тебя имен для морфов, - столько и морфов должно быть в КАЖДОМ сарфейсе(поверхности). Хотя в оригинале сохраняются только те части морфа, которые подвержены изменениям. А в годоте нужно целые копии мешов хранить, да еще и для всех поверхностей, и ровного количества. При многих морфингах, наверное может иметь смысл отделять части мешей подверженные морфингу в отдельные мешы, чтобы не плодить пустые дубликаты.
Вот он пример.
func _ready():
․ ․ var mesh_instance = MeshInstance3D.new()
․ ․ add_child(mesh_instance)
․ ․
․ ․ var mesh = ArrayMesh.new()
․ ․ var arrays = []
․ ․ arrays.resize(Mesh.ARRAY_MAX)
․ ․ arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(1,0,0), Vector3(0,0,0), Vector3(0,1,0)])
․ ․ var arrays1 = []
․ ․ arrays1.resize(Mesh.ARRAY_MAX)
․ ․ arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(-1,0,0), Vector3(0,0,0), Vector3(0,-1,0)])
․ ․
․ ․ var blend_shape_arrays = []
․ ․ blend_shape_arrays.resize(Mesh.ARRAY_MAX)
․ ․ blend_shape_arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([
․ ․ ․ ․ Vector3(1, 0.5, 0),
․ ․ ․ ․ Vector3(0, 0.5, 0),
․ ․ ․ ․ Vector3(0, 1.5, 0)])
․ ․ ․ ․
․ ․ var blend_shape_arrays1 = []
․ ․ blend_shape_arrays1.resize(Mesh.ARRAY_MAX)
․ ․ blend_shape_arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([
․ ․ ․ ․ Vector3(1, -0.5, 0),
․ ․ ․ ․ Vector3(0, -0.5, 0),
․ ․ ․ ․ Vector3(0, -1.5, 0),])
․ ․
․ ․ mesh.add_blend_shape('bs')
․ ․ mesh.add_blend_shape('bs1')
․ ․ #mesh.add_blend_shape('bs2')
․ ․
․ ․ mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays, [blend_shape_arrays,blend_shape_arrays1])
․ ․
․ ․
․ ․ #mesh.add_blend_shape('bs2')
․ ․ #mesh.add_blend_shape('bs3')
․ ․ mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays1, [blend_shape_arrays,blend_shape_arrays1])
․ ․ mesh_instance.mesh = mesh
․ ․ mesh_instance.set("blend_shapes/bs", .5)
․ ․ print(mesh.get_blend_shape_count())
Обязательно перед генерацией надо один раз имена предоставить. И сколько у тебя имен для морфов, - столько и морфов должно быть в КАЖДОМ сарфейсе(поверхности). Хотя в оригинале сохраняются только те части морфа, которые подвержены изменениям. А в годоте нужно целые копии мешов хранить, да еще и для всех поверхностей, и ровного количества. При многих морфингах, наверное может иметь смысл отделять части мешей подверженные морфингу в отдельные мешы, чтобы не плодить пустые дубликаты.
Вот он пример.
func _ready():
․ ․ var mesh_instance = MeshInstance3D.new()
․ ․ add_child(mesh_instance)
․ ․
․ ․ var mesh = ArrayMesh.new()
․ ․ var arrays = []
․ ․ arrays.resize(Mesh.ARRAY_MAX)
․ ․ arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(1,0,0), Vector3(0,0,0), Vector3(0,1,0)])
․ ․ var arrays1 = []
․ ․ arrays1.resize(Mesh.ARRAY_MAX)
․ ․ arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(-1,0,0), Vector3(0,0,0), Vector3(0,-1,0)])
․ ․
․ ․ var blend_shape_arrays = []
․ ․ blend_shape_arrays.resize(Mesh.ARRAY_MAX)
․ ․ blend_shape_arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([
․ ․ ․ ․ Vector3(1, 0.5, 0),
․ ․ ․ ․ Vector3(0, 0.5, 0),
․ ․ ․ ․ Vector3(0, 1.5, 0)])
․ ․ ․ ․
․ ․ var blend_shape_arrays1 = []
․ ․ blend_shape_arrays1.resize(Mesh.ARRAY_MAX)
․ ․ blend_shape_arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([
․ ․ ․ ․ Vector3(1, -0.5, 0),
․ ․ ․ ․ Vector3(0, -0.5, 0),
․ ․ ․ ․ Vector3(0, -1.5, 0),])
․ ․
․ ․ mesh.add_blend_shape('bs')
․ ․ mesh.add_blend_shape('bs1')
․ ․ #mesh.add_blend_shape('bs2')
․ ․
․ ․ mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays, [blend_shape_arrays,blend_shape_arrays1])
․ ․
․ ․
․ ․ #mesh.add_blend_shape('bs2')
․ ․ #mesh.add_blend_shape('bs3')
․ ․ mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays1, [blend_shape_arrays,blend_shape_arrays1])
․ ․ mesh_instance.mesh = mesh
․ ․ mesh_instance.set("blend_shapes/bs", .5)
․ ․ print(mesh.get_blend_shape_count())
Чтобы радовать глаза раскрашенным синтаксисом?
Куда именно выкладывать?
Начал искать куда выкладывать и нашел нейронки специально заточенные чтобы генерировать гдскрипт:
https://workik.com/godot-code-generator
https://theresanaiforthat.com/@markwryte/gdscript-generator/
https://github.com/Xrayez/gdgen
https://godotplayground.com/
и еще что-то, видимо то самое:
https://gdscript.com/
https://gd.tumeo.space/
> Чтобы радовать глаза раскрашенным синтаксисом?
Не знаю насчёт радости, но я не могу воспринять портянку кода длиннее 3 строк, тупо wipe symbols для меня. Лучше уже скрин, чтобы прочитать о проблеме отдельно, а код посмотреть отдельно.

Ебать чувак дизайнер.
>специально заточенные чтобы генерировать гдскрипт
Сомневаюсь что они заточены лучше чем свежие клод/гемини.

Думаю это фрейм, в котором запускается garbage collector.
Я такой:
- Компьютер! Выдай мне полный анализ по приведенной функции! Есть ли там окто-деревья?
А нейронка такая:
- Вот исчерпывающая информация по этому коду... Но окто-деревья не обнаружены. Вместо них, обнаружены
следы того, что использовано разбитие на секторы.
- Компьютер! Разбитие на секторы?
Дальше она начинает обьяснять специфику и приемущества и недостатки по сравнению с октодеревьями...
Но радость от анализа кусков кода была немного омрачнена невиданной доселе ошибкой, - вы исчерпали ваши промты на сегодня, приходите завтра. Я и не знал что есть такое ограничение, видимо есть ограниченное количество баллов, которые тратятся быстрее если текста для анализа много.
Лишь бы игры не делать)))

>- Компьютер! Выдай мне полный анализ по приведенной функции! Есть ли там окто-деревья?
>- Компьютер! Разбитие на секторы?
КОМПЬЮТЕР: Новая информация. Капитан больше не на борту "Энтерпрайза".
Вся фантастика 60х это фантастика, потому что к ней невозможно прийти - команда стартрека не может существовать, потому что идиократия наступит раньше, чем полетят. Всё фантастика. Кроме Дюны. Ибо БЖ.
Спасибо, капитан.
Крок более головастый. Прям ссылки может кушать.
>Forget octrees. analize this https://github.com/Cai1Hsu/re3/blob/miami/src/core/Streaming.cpp
Выдал общий анализ. После чего попросил подождать всего 1час 47минут. Хотя бы не сутки. Короче с болшими возможностями появляется большая ответственность. Надо продумывать свои вопросы и чотко их выражать.
Надеюсь грок поможет с одной фантазией. У меня есть мечта сделать function detouring для пары игр, и переписать функционал в некоторых местах. Да знаю, это маленькая мечта для маленького человека. Пойду годот потрогаю...
Самый головастый на данный момент это claude.ai. Без денюжки 4 запроса раз в 3 часа. Если умеешь ставить задачи в одном запросе - самая охуенная бесплатная нейронка на данный момент. Не надо кормить нейронку ссылками или любой другой лишней информацией, ты ей перегружаешь контекстное окно лишней хуетой из-за чего получишь на выходе больше галюцинаций. Ты же при запросе в гугл не указываешь сегодняшнюю дату и скорость ветра? Тут то же самое. Все нейронки на данный момент - это аналог человеческой памяти без той части мозгов которая отвечает за анализ и логическую обработку информации извлеченной из памяти, а значит чтобы меньше говна получить - нужно меньше говна дать. Не ссы, копируй нужный файлик из гитхаба и хуярь его в поле ввода прямо так как он есть, я бы еще лишнее поотрезал типа обьявлений и прочих include, но можешь не париться по этому поводу, обычно сойдет и так. Тогда уж возможно ты из нее вытянешь что-то более осмысленное. Дач именно такова спицифика работы с нейронками если хочешь чтобы они стали помощником, а не таймкиллером.
Спасибо.
Насчет прямого текста вместо ссылки, Grok наоборот сказал что использовал функционал гитхаба чтобы понимать как символы и функции из файла взаимосвязанны вообще с движком. Так что не так однозначно. Теперь надо натравить его на исходники эмулятора cxbx, чтобы помочь мне сделать тоже что сделали авторы, они подменили прокладку взаимодействующую с системой и желнзом х-бокса на свою, я хочу тоже самое но на внутриигровом уровне, чтобы подменять менюшки на свои.
Извини тред за оффтоп. Надо было дискутировать это в другом треде.
Господи, "грок сказал")))) Ты с ебаным бредогенератором говоришь, ты можешь его заставить сказать что черное это белое при должном упорстве. "Правильно заданный вопрос - половина ответа" - это просто сейм всех нейронок. Все их измышлизмы - лесом, их предел - трансформация входных данных в выходные с погрешностью, а то что он тебе сгенерировал про функционал гитхаба - только означает что движок скормил ему полный хтмл со всей лишней парашей, и ссылками-референсамич которые дополнительно забили контекстное окно.
Понятно, что термин ИИ в контексте больших языковых моделей — маркетинг ебаный, но кодить с ними все же легче.
У меня все.
Правда.
Вообще, один из лучших левел дизайнов у первой half-life. В ней огромное кол-во интересных мест и геймплейных ситуаций, которые работают на нескольких базовых механиках. И до сих пор играется свежо, особенно если black mesa обновленную попробовать.
Просто как учебник можно брать, играть и изучать.
>Лучшее, что я вынес после ебли с левел дизайном - добавлять асимметрию, вертикальность, пересечения и странность.
И зачем это нужно если в твою игру все равно никто играть не станет?
>И зачем это нужно если в твою игру все равно никто играть не станет?
Не надо все свои шизы класть в одну корзину. Отделяй работу над игрой от желания стать властителем мира и оплодотворить всех самок. Проведи грань. Создание игры это вещь в себе.
>с ебаным бредогенератором говоришь
Ну хз. Вон гугловская нейронка делает открытия в математике, и находит решения для сильной оптимизации своего собственного кода. Может они скоро себя настолько оптимизируют что станут вменяемыми.
https://www.youtube.com/watch?v=jCTvblRXnzg
Ты не понимаешь, потому что тебе кажется что все делают игры чтобы захватить игровую индустрию. Потому что это единственный понятный тебе параметр который можно измерить. А молотку всё гвозди, ты проецируешь свои ценности на других, обвиняя их в том что у них не правильная система ценностей. Но самые финансово успешные стратегии для привлечения пользователей это тенцент и тикток. Абсолютный мусор, рассчитанный не на сознание а на вегетативную нервную систему, воспитывающий из людей овощей. Как будто они и сами с этим не справляются.
Имхо. Искусство это левацкое ремесло. Ты делаешь игры чтобы удивлять. А уже потом если захотят притащат тебе свои рубли.
Я делаю игры потому что мне это нравится, и делюсь итт потому что мне это нравится, а твой пост я дропнул после первого предложения - только время на хуйню тратить.
ты ебанат? леваки политизируют искусство, праваки эстетизируют политику. завали ебало кароч, иксперд
Школьник, угомонись. Наслушались своих блохеров и дуреют
4.4 и на 4.3 было тоже самое
Может интерполяция какая нужна, там в настойках проекта/камеры что-то было. Без видоса не поймешь чего там глитчит.
мимо ничего не знаю о гейдеве
Так я её и не собираюсь продавать. Либо выучу годот, либо она уйдёт со мной в могилу.
Что за глитчи?
Выучи 3д, научись в пиксель арт или 2д рисование, научись в анимации, текстурирование и освещение, научись работать со звуком, освой UI/UX, вспомни векторную математику, освой шейдеры, научись в левел дизайн, научись в хотя бы минимальную архитектуру, научись в маркетинг и нетворкинг, выучи английский чтобы читать документацию и пиариться, научись обходить санкции, научись ...
>3д, научись в пиксель арт или 2д рисование, научись в анимации, текстурирование
Да пока он будет учиться, всё это научится генерировать ИИ. Точнее он уже научился, но пока не в идеальном исполнении и с контекстом есть проблемы. Хотя Юпити вроде выкатил ИИ-генератор с контекстом, прямо в редакторе.
>Хотя Юпити вроде выкатил ИИ-генератор с контекстом, прямо в редакторе.
Вангую годот никогда не добавит ИИ прямо в редактор потому что опенсорс руководствуется мнением разработчиков лично, а девелоперы обычно ретарты и КАК ЖИ ТАК НАШИ ДЕНЬГИ ОТНИМАЮТ. Такие решения должны исходить от менеджеров, которые недольным додикам хуев в рот напихивают. А с годотом так не будет к сожалению, придётся копипастить до конца веков.
>Такие решения должны исходить от менеджеров, которые недольным додикам хуев в рот напихивают
>Менеджеры напихивают в рот недовольным разработчикам
>99% разработчиков увольняют
>Менеджерам больше некого менеджерить
>Увольняют 99% менеджеров
> А НАС ЗА ЩООО??!
А что мешает пойти и сделать плагин к редактору, который добавляет ИИ функционал? А форкнуть весь годот? Правильно, ничего, потому что опенсорс, а у тебя менеджеры головного мозга и разрешения-запреты от больших дядек. Выкидывай эту хуйню из своей головы, не актуально.
Годот не добавит ии в кор, потому что он придерживается принципов опенсорса, а ии во многом обучены на не опенсорсе, а тупо скрапинге статей в вебе, так что невозможно гарантировать что пользователю не создадут подставу Но нмкто не мешает тебе поставить аддон. Хотя я слышал, что редактор стоит рефакторить для более легкой интеграции (это полезно в принципе, например для языковых серверов для подсветки синтаксиса)
Безрукий что ли? Сам плагин напиши, тем более уже есть готовый плагин под совместное программирование по сети в одном редакторе, осталось подтянуть апи Клода/дипсика/прочих и готово. А в целом и похуй, копипаста кода за глаза хватает
Дедлуп тоже рогалик, только его годот скорее всего не вывезет. Ты стилистику конкретизируй, форму представления. Пиксели хуиксели, платформа, вид сверху, изометрия, 3д
Стандартный рогалик, хуле тут пояснять - грид-бейзд, топ даун, одновременно-пошаговый тайминг. Первое и третье самое важное, мне надо чтобы игра НИХУЯ не делала пока я не хожу, как в стандартных рогаликах. Можно просто бросить игру во время боя как на паузе.
Целевая платформа какая? Могилки/веб/стим/все сразу? Подводные следующие: годот 3 gles2 стабилен везде, но нужно вырезать из движка gles3 функционал (да, ручками), иначе есть риск падать на некоторых МТК устройствах, потому что инит графики под мобилу писали криволапые уебки. Годот4 - пока что только пк, веб и мобилка имеют проблемы на некотором железе. У годота нет нормального функционала для обработки спрайтшитов и формирования из них анимационных блоков, есть только atlas texture где тебе будет предложено вручную раскидывать каждый кадр из спрайтшита в отдельный атлас-ресурс и как-то блять их компоновать. Короче, нужен кастомный ресурс на такое. Рейкастить в годот 3 нужно создавая рейкастноду, перемещая её, задавая параметры и вызывая её функцию рейкаста, в 4 годоте - по максимуму использовать raycastquery, вплоть до сбора всех рейкастов в пул и их выполнение в конце кадра. Почему - гднатив срет в штаны слишком жирными аллокациями. Интерфейс как в юнити, более чем хватит. Больше подводных нет, как движок годот сам по себе хорошо подходит.
> У годота нет нормального функционала для обработки спрайтшитов и формирования из них анимационных блоков
Чекай аддоны, хз что конкретно ты имеешь в виду, но по слову sprite там пара десятков. Либо написать свой тул скрипт, который раскидает по таймлайну.
Если коротко - у меня есть спрайтшит и мне надо его нарезать на спрайтатласы автоматом. Это если совсем коротко. Если чуть длиннее - я автоматически его нарезаю на спрайтатласы, и согласно данным в кастомном ресурсе который его нарезает - нарезаю эти нарезанные спрайтатласы по массивам в словарь с анимациями, ключ - название анимации - значение - массив. И вот уже это - можно раскидывать по таймлайнам, но я на них забил хуй и написал свой аниматор, потому что люблю свои велосипеды. Анимаций очень много, вычленять их долго, алгоритм их извлечения учитывает не только прозрачность а и линию на которой они находятся (прыжки, приседания). В целом - я супер доволен, кастомные ресурсы это тема, но как в юнити функционала под такое нет, может конечно какие-то плагины и умеют нарезать, тут хз.
Продолжаю гнать на годот.
Реализация бленд шейпов в нем конечно своеобразная.
Модели из игры которые я пытаюсь импортировать, порезаны на части. Руки и ноги из трех сегментов, и жопа - торс - голова. Бленд шейпы на ладони, глаза+рот для головы, и сиськи у женских персонажей. Но у годота бленд дшейпы идут на весь меш. То есть не только та часть меша которая деформируется, и даже не весь сарфейс, а вообще весь меш... Для головы это будет не только лицо, а и волосы и головной убор и аксесуары. А я хотел на волосы еще физику импортировать. А для сисек это будет и одежда и рюкзаки и все что на нем. Хз почему так сделали. А если бы персонаж не был разделен на части то пришлось под каждый блендшейп повторять всю модель персонажа под каждую анимацию где у персонажа глаз дернулся. Сиськи - три морф-таргета, плюс 9 + 9 на каждую ладонь, плюс глаза 13, плюс рот 17. почти 40 полных мешей.
Если я сейчас выебусь и вырежу части подверженные морфингу в отдельные меши, то это может привести к дополнительным сложностям в будущем. Думаю сейчас лучше забросить, или сделать по тупому переключатель в случае если будет конфликт между блендмешами и физикой, чтобы можно было выбрать одно или другое.
Из процесса где я потихоньку пилю импортер, получился процесс где я потихоньку ною. Но ничего, думаю прорвемся.
Больше похоже на то, что ты не разобрался. Сколько раз импортировал gltf из блендера и никаких 40 дополнительных мешей не появлялось. Кури vertex groups. Либо, есть вероятность что в гдскрипте не весь апи из с++, раз ты можешь оперировать только целиком моделью.
Пооще всего тебе взять готовую модель или сделать самому в блендере, в которой еапример блендшейп это только рот, и посмотреть что реально импортируется, перечислить из гдскрипта все проперти и массивы меша.
>Больше похоже на то, что ты не разобрался
Не знаю если больше, но есть такая вероятность.
>никаких 40 дополнительных мешей не появлялось
не проверишь размер блендшейпов, - не узнаешь.
>посмотреть что реально импортируется
Этот импортер я практически копирую с блендер импортера который делал давно. Так что спасибо за подсказку. Надо будет действительно проверить. Тем более что там у меня все части сшиваются в один большой меш. Выгружу в годот, прошвырнусь по блендмешам поспрашиваю size().
https://pastebin.com/zJqLYiVp
Вот сам можешь поглядеть на приведенный выше скрипт. Для N блендшейпов, сначала N раз надо разные имена предоставить. Потом при каждой генерации сарфейса, обязательный массив из N бленд шейпов. Блендшейп это деформированный дубликат основного меша, но с меньшим количеством слоев данных, для меня это вертексы и нормали.
gltf загрузил через блендер
get_surface_count выдает 182
surface_get_blend_shape_arrays(surface_index) для любой из поверхностей возвращает array из 46 блендшейпов, как я и предположил, даже у поверхностей у которых нету блендшейпов, они появились в полном составе. Ну и в каждом блендшейпе, уже по три array, вертексов и нормалей такого же количества что и в сарфейсе, и также тангент которых в четыре раза больше и их наверное уже сам блендер добавил.
оригинальный файл - менее двух мегабайт. glb - 8 мегабайт. tscn - 18 мегабайт. И это даже не вся информация из оригинального файла. Я еще не выдрал оттуда физику для одежды, волос и прочего.
Но я никаких претензий ни к кому не имею. Все есть так как есть. Просто данность.
Такой вот уровень движкосрачеров, а чего ты ожидал. У него буквально в каждой фразе сквозит непонимание. "Просто данность".
Я передумал, сори, остаюсь здесь. Не выгоняйте пожалуйсто..
Если у вас есть нода-обёртка над классом-референсом, и у них дублируются сигналы, и вы не знали как передать коннекты из обёртки внутрь референса, то вот так:
> for item in obiortka.signal1.get_connections():
> > refclass.signal1.connect(item.callable, item.flags)
Не ори. Не дома. И дома не ори.

Сегодня узнал, что можно принтить из _процесса и не переполнять аутпут, используя:
if Engine.get_frames_drawn() % 60 == 0:
print("Zoom: ", current_zoom)
Будет один принт в секунду
Круто же!
Ранее какую-то хуйню велосипедил для этого
>Если у вас есть нода-обёртка над классом-референсом
У меня ее нет, ибо если понадобилась нода, то зачем вообще референс? Я все в ноду и помещу.
Чтобы любители всё делать кодом делали предлагаемый функционал через код, и не требовалось создавать ноды, которые не будут добавлены в дерево, потому что "создал - сделал - высвободил". Для этого будет рефкласс. Для любителей же настроить ноды в инспекторе будут ноды-обёртки, которые красиво расставляются в сцене, имеют свои иконки и прочие свистоперделки.
Нихуя не велосипедил, просто запускал годот с консоли и видел весь принт нормально
Неплохо.

Вот смотрите, обычный способ:
func _input(event: InputEvent) -> void:
if Input.is_action_just_pressed("toggle_tab"):
truba_shatat()
Выглядит нормально, но, НО, здесь используется синглтон Input и не используется event! Сингтон Input по идее предназначен для вызова из _процесс или еще откуда, но не для вызова из _input. То есть, если по уму, то внутри _input надо работать с event и делать все вот это вот:
func _input(event: InputEvent) -> void:
if event is InputEventKey and event.pressed and not event.is_echo():
if event.keycode == KEY_TAB:
truba_shatat()
Но чет как-то так себе это все выглядит
Короче, объясните, как православно обрабатывать инпут
Перво-наперво тебе надо вычистить годот от синглтонов. Как рекомендовал синьор-помидор выше в треде. А то ишь, чего удумали: Обработчик инпута загружается с движком и существует всегда как синглтон? Нужно срочно переделать. А то понимаешь, понадобится тебе хотсит с мышками, а синглтон!
Такшта вливайся в команду редот. Форкай. Чисти.
>У него буквально в каждой фразе сквозит непонимание
Да ну? И ты конечно же просто так это ляпнешь, и не поведаешь что с не так с моими фразами, чтобы не опуститься до уровня движкосрача.
>>3123
импоритировал с блендшейпами tscn 18 мегабайт
импортировал без блендшейпов tscn 1 мегабайт
Не понимаю что за сопротивление такое. Я же еще 4 поста назад расписал что за байда с этими блендшейпами в годоте. Все равно, факты не факты, и вообще посты сквозят. Пиздец какой-то.

Есть такая конструкция
mouseEvent := event as InputEventMouseButton
if mouseEvent and mouseEvent.pressed: ...
В данном случае если каст не прошел, то переменная будет null
Еще есть конструкция
match event.get_class():
_ "InputEventMouseButton": ...
(Не помню, возможно в 4ке можно и через &"Input..." для оптимизации - меньше сравнений со строками)
На пике более расширенная версия
Дальше уже наверное если только на наследовании что то мутить, а так гдскрипт это скриптовый язык, он и не подразумевает каких то аццких конструкций, а скорее что ручками if - elif - elif напишешь.
Загружается еще и ресурсы жрет, ай-яй-яй.
А чем тебе не угодил такой вариант:
if event.is_action_pressed("ya_tvoi", false, true):
_ truba_shatat()

А я на хую видал идею того что я должен дробить игровую логику только потому что ипнут блять видите ли обрабатывается только в функции инпута их обосраными ивентами. И написал аналог Input из юнити, где я откуда угодно могу запросить статус мыши и её кнопок/клавиши/последнего жеста на тачскрине (нажата, отпущена, стала нажатой, удерживается n времени) и передаю свой пламенный привет дебилу решившему что инпут функция заебись. Но да, это по факту инпут синглтон и для сплитскрина и двух гейпадов соответственно придётся что-то сочинять внутри этого синглтона.

Эм, чеел, тебе нажатая клавиша (нажатый экшен) аргументом прилетает. Просто используй аргумент.
Ты прав. Походу он заметил что мы туда давно не заглядываем и пришел байтить тут.
> для сплитскрина и двух гейпадов
https://godotengine.org/asset-library/asset/3503
Всё уже написано.
нерелейтед, репорт
Хуйню он строчит. Просто хороший халявный аналог копилота, а эти его генерации нахуй никому не всрались, грок и дипсик кратно лучше

>с корешем
Да у вас там сразу студия. Все индюки завидуют.
Инди: "Я начал разрабатывать игры"
Ты с корешем: "Мы основали свою студию"
Студия это просто квартира без стен. Хватит уже доёбываться до нищебро, словно ты сам не нищебро. Попустись уже.
Спасибо
>>3243
>Ты с корешем: "Мы основали свою студию"
Студию АналКарнавал, разве что.
Он в Ирландии чилится, я в ВСЖ.
Может кто имеет опыт разработки в паре накинет мне советов как распределять роли грамотно?
Вроде он музло пишет, я модельки ваяю. А ПОГРОМИРВОНЕ? Все умеют погромировать, а вместе погромировать как-то неудобно, наверное. Или кто-то должен отвечать за интерфейс, например, а другой за поведение мобов, или чо-то в этом духе?
Привет! уважуха... !!!
Сейчас многие официально оформленные инди-студии без офиса работают, по удаленке, так что все ок. В эпоху ковида так и ААА работали.
>Может кто имеет опыт разработки в паре накинет мне советов как распределять роли грамотно?
Разбивайте по областям так, чтобы они не пересекались. Если хотите код вместе писать то там уже куча детальных обсуждений каждой подсистемы-фичи-функции, гит и ревью кода друг друга, чтобы вы понимали куда едете.
>Может кто имеет опыт разработки в паре накинет мне советов как распределять роли грамотно?
Опыта не имею. Во первых вам нужен Git.
Во вторых, имхо, вы оба равны, но один из вас должен быть ответственным в рамках одного проекта. Можете чередоваться. Суть ответственности в том что принятые решения должны соответствовать определенному уровню качества. Чтобы не спихивали ответственность с одного на другого, и некоторые решения от этого страдали.
> А ПОГРОМИРВОНЕ? Все умеют погромировать, а вместе погромировать как-то неудобно, наверное. Или кто-то должен отвечать за интерфейс, например, а другой за поведение мобов, или чо-то в этом духе?
Можно кодить в компонентном стиле. Например: Вместо прикрепления скрипта к ноде CharacterBody, прикрепляется белая нода, а к ней уже скрипт, который через get_parent() работает с нодой выше. Таким образом, даже если два кодера одновременно напишут функционал для одного объекта, эти компоненты дополнят друг друга.
Ну в некоторых моментах он прав. Строковые литералы (магические строки) это зло. Одна опечатка и ты опечатался. И ходишь по коду, ищешь опечатку.
Но следует отметить, что в четвёрке группы тоже переработали и они уже почти-почти похожи на интерфейсы в больших языках.
Так это не шиз, он борется с плохими практиками, а не шиз который навязывает синглтоны доугим.
В каком месте бесплатно, три запроса и вынюхни если денег нет. У чата запросов 10 и пошел нахуй, мини это вообще пиздец, зачем он существует непонятно. Только грок с дипсиком меньше всего жадничают, дипсик так вообще сама щедрость.
Походу он места знает и хвастается.
нерелейтед, репорт
Ты ебобо? Аккаунты делаются на раз-два. Вот это анонимус пошел конечно, мдас хех, да еще в техническом разделе. Дрочеры в /b себе сотни наклепать могут, а этот, ПОХРОМИСТ, не может.
Жир потёк. Я историю чатов тоже могу носить между аккаунтами? Или буду перепривязывать windsurf из вскод аппы каждые 3 минуты выходя из нового и заходя в старый? А у гулоакков есть еще такой ньюанс что они могут внезапно начать требовать принять смс, который ты больше не примешь и опять пиздуй регай новый. Мне проще с одного акка сидеть в 4 нейронках и делегировать разным нейронкам разные задания, а не ебаться с профилями лисы или велосипедить куки сваппер чтобы послать 3 запроса клоду в час по пустяку.
>Жир потёк.
С тебя? Высосал из пальца гнилых отмазок, из чего я делаю вывод что тебе тупо не надо. Иронично что дрочерам с их нейрослопом нормальный ИИ оказался нужнее больше чем тебе.
Дальше спорить не буду. Сиди со своими технологиями 2020 года.

Теперь можно отдохнуть и браться за вещи посерьёзней, попробовать сделать что-нибудь с нормальным геймплеем. Вы тоже давайте, делайте игры. Раз-раз и готово.
https://fatum-game.itch.io/manuscript
>В этом треде обсуждаем движок Godot Engine
Эта болячка на долго. Надо создать тред по нейронкам в gd и посылать все вопросы и обсуждения по ним туда. Максимум оставив ссылку здесь.
Нейронки помогают многим повысить призводительность на порядок, так что они теперь часть антуража.
Выглядит солидно. И сроки у вас, вроде, короткие. Ща скачаю, под протоном запущу и почитаю ваши записки.
Спасибо, анонч

>Может кто имеет опыт разработки в паре накинет мне советов как распределять роли грамотно?
Опыта не имею, но в титрах игорей постоянно вижу хуйню вроде Enemy AI Programmer. Так что один может хуярить все что касается игрока, а другой врагов, например.
Ты бы вместо пустопорожнего пиздабольства по делу ченить сказал. Все нейронки +- одинаковы, потому что база одна и строится на той же технологии, просто где-то больше а где-то меньше параметров.
Поиграл. Второй раз помотал чтобы посмотреть еще раз на чудика. Немного интересно. Я сначала некоторое время тыкал везде, даже хватал бумажку, но не понимал что что-то схватилось пока не навел на сканер с зажатой кнопкой. Курсор слишком мелкий и очень неочевидный. Короче догадаться как поставить бумагу на сканер, уже квест. Звукового дизайна маловато. Хотя бы ручка покатилась бы по столу.
А вообще, историю надо было делать про то что с тобой общаются по имейлу. Ты посылаешь документы, и назад тебе присылают старые или странные фотографии сгенерированные нейронкой, и вырезки из газет. А саму расшифровываемую историю урезать вполовину.
Я бы сделал мод где ты просто выходишь в интернет чтобы посмотреть на порнуху. С подключением диалапа. И медленно прорисовывающейся порнокартинки, и разрыва соединения на самом интересном месте. А в конце в комнату заходит толстая жируха и душит тебя сиськами.
>Вапщета мы тут все братья-годотеры и общаемся исключительно на "ты".
Совершенно верно. Вы все братья годотеры, а я ваш папа годотер. Не достаточно что вы без спросу тут постите что в вашу дурную голову взбредет, так еще постоянно мне тыкаете. Ни капли уважения.
Там их двое прост.
![Группа Технология - Нажми на кнопку (1991) (Remastered 2025) [].mp4](https://2ch.life/gd/thumb/1022039/17483754733190s.jpg)
256x144, 4:14
Если релизнешь игру и она привлечет внимание - есть шанс что прилетит за копирайт или типа того.
>«Технология» — советская и российская синти-поп-группа из Москвы. Пик популярности группы пришёлся на 1991—1993 гг. В различных составах существует с 1990 года до нынешнего времени.
На похожую тему - я недавно набрал себе CC-BY треков в игру, а потом понял что есть подводный. Не получится использовать эту музыку в видосах, которые я раскидываю по соцсетям, потому что указывать под каждым видосом автора музыки смотрится дешево и кринжово. Теперь ищу хоть один приличный не заезженный CC0 трек.
>Дед, пей таблетки, а то получишь по жопе.
>>3364
О чем я и говорил. Вместо того чтобы брать пример с ваших более прозорливых братьев, и радовать своего папку ежедневно поделками на годоте, вы понахватались всяких глупостей с улицы, и тащите их все сюда. Посмотрите на другие движкотреды, там дети как дети, а эти... эх, в кого вы такие вышли?
Нет оставайся.
А мне вот например хочется обо всех аспектах игры только с годачерами говорить, т.к. тут все братушки
Мне тоже. Давайте только без этого вот тралевания. Не ок дизморалить братанов.
Для разговора обо всех аспектах игры ты можешь завести тред игры или спрашивать в новичковом.

> самый кучерявый и производительный способ добавления адового кол-ва травы в сцену?
Инстансинг.
https://docs.godotengine.org/en/stable/classes/class_multimeshinstance3d.html
Если ты это пробовал и у тебя на твоей пеке даже это тормозит, то ты наш брат, братишка.
https://godotengine.org/asset-library/asset/2369
Что? Зачем Rx? ReactiveX дают братишкам более декларативный стиль кодинга, работающий через подписочные(?) (observable) потоки данных. Так что мотивирует братишек писать высокоподдерживаемый и низкосвязный код, легче читаемый и расширяемый.
Godot Engine поставляется братишкам с неплохо продуманной системой событий (сигналов) а так же прикольной реализацией корутин. Благодаря им легко реализуется асинхронное выполнение кода (в смысле, код не выполняется в порядке его записывания). Подписчик (observer) прослушивает подписку на событие (observable event) и когда там активируется что-то важное, или происходит в программе что-то в результате внутренних эффектов для присоединенных экземпляров, то есть как бы это может быть, например, когда игрок атакует врага или предмет поднят им.
Rx расширяет эту идею, превращая все формы данных внутри программы (сигналы, события, колбэки, структуры, корутины, и т.п.) в подписочные потоки данных, излучающие свои элементы. Эти потоки данных, именуемые "подписками" ('Observables'), могут быть трансформированы с использованием функциональщины (привет мапам, редьюсам и остальной братве).
А вот это и правда стоит внимания. Возможно, станет первым аддоном, который установлю
Да я не сказал бы, что тормозит, просто у меня дроч на оптимизацию дикий. С мультимешем фпс падает с 600 до 200 где-то. Это неудовлетворительный результат. Я бы не хотел столько терять на одной только траве. У меня запланирована сцена с кучей растительности разной. Я не хочу въебывать все ресурсы в зелень. Не могу смотреть на всякие кигдом камы деливеренсы и не попытаться сделать похоже.
Чтобы оптимизировать игру, должна быть игра, а не тестовая сцена с мультимешем в вакууме. Игра есть? Нет? Ну так игру делай, а не преждевременную оптимизацию.
Попробуй отключить отбрасывание теней травой. (Прием теней тоже можно убрать, но наверное это уже не так красиво) Вообще трава у меня никогда не работала быстро, кажется всегда раза в 2 просаживала. Самый оптимальный способ был как в ААА играх, когда трава рисуется шейдером только вокруг тебя на каком то радиусе.
В закладках у меня был какой то олдовый дедовский способ, но я его реализовать так и не смог, да и не факт что он быстрее.
Как ловить нажатия с модификаторами, учитывая, что модификатор – это не контрол/альт/шифт, а, например, delete?
Delete не модификатор. Соответственно, тут только своя машина состояний.
(Но конечно ничто не мешает форкнуть движок и сделать их модификаторами. Я вот планирую бекпортнуть из 4 в 3 различиние правого и левого шифта)

> ренпай и пайгейм
> никогда не слышал
Как определить залетного движкосрачера с нулевым погружением в тему.
Зря говоришь о себе в третьем лице.
> больше игра чем на годоте
Кстати, напомнил.
Еженедельные 5 игорь.
https://www.youtube.com/watch?v=wTP7vtINp4g
Ты забыл посчитать итч, лол.
А еще выяснилось, что эти статистики не умеют определять некоторые игры, та же крупнейшая Webfishing не учитывается.
Забавно, что я так и писал еще года 3 назад, что автоматические определялки полагаются на .pck файл, а в годоте есть вариант экспорта всего в один .exe
Так что учи матчасть, старайся лучше, тут такое не прокатывает.
>а в годоте есть вариант экспорта всего в один .exe
Бля, я имею 3 опубликованных игры, и в каждой все в один бинарник пихал. Меня забыли посчитать!
У меня вообще десяток игр не на этих площадках, хех. а работают на железе индивидуальных заказчиков

Держись! Мы с тобой. Весь тред держит кулачки за тебя. У тебя всё получится!
Вот тебе лайфхак по скоупам.
Так это же кайф, постоянно находишься в процессе разработки, пользуешься годотом. Только представь какой ужас когда ВСЕ, закончил.

Там школьники познают мир, увидев в опенсорсе то, что обычно от них скрыто под капотом, а на самом деле работает +- одинаково везде.
Энд ретён ту воpк.
Точно! Вот я затупок - размер атласа во вьюпорте не менял. Ещё думаю, что раз в настройках проекта поменял, то он везде такой ставится. Спасибо большое.
Видимо так сделать нельзя, ожидает определение именно геттера, возможно в реализации оно чем то отличается от просто функции. Создай пропозал.

На скрине забыл, но отработал. Ошибка-то синтаксическая, никуда не девается.
Гет это не переменная, чтобы его к чему-то приравнивать, это просто ключевое слово, после которого описывается функция. Это функция должна отвечать требованиям:
1. Не иметь аргументов
2. Возвращать значение, по типу совпадающее с типом объявляемого свойства.
Если уж тебе так хочется обойтись без лишних запросов к дереву, то вариант 4 - самый адекватный и правильный. Но вообще, просто забей и пользуйся простым get_parent() вместо вотэтоговот. У тебя же не происходит тысяча таких запросов за кадр? Энивей, даже если происходит, то ты что-то делаешь не так.
> Гет это не переменная, чтобы его к чему-то приравнивать, это просто ключевое слово, после которого описывается функция.
В четвёрке синтаксис таков, что можно и приравнять. Смотри на строку 10 тут >>3645 из-за этого и весь сыр-бор. Анонимус ожидает, что встроенная функция без аргументов и с типом Node подойдёт в качестве геттера, но парсер скрипта её не видит. Поэтому в строках 10-15 анонимус втупую дублирует функцию.
В 2 строчки можно
А вот лямбду тоже не принимает, пишет что ожидает именно имя функции-геттера.
Поныл.
Бездуховно. Буду душевно страдать, как монах.

Ну как бы я так же поныл ещё в 18 году, когда осознал масштаб работ, которые делают индюки на изичах каким-то немыслимым усилием воли и мотивации. Ещё тогда я охуел и обпикрелейтился.
Не будьте такими как я.

Жиза. Но я обязательно доделаю эту, как заставил себя доделать предыдущую. А потом, да, перейду на идеи в разы меньше. И ты давай.
Попробуй самостоятельно понимать документацию, не делегируй роботу своё мышление.
А ты общайся с нормальными пацанами - Чатгпт, Гемини, Клод.
Я вот стараюсь сливать работу на чатгопоту только когда я уже в край заебался искать проблему в логике, либо когда мне интересно, есть ли альтернативные варианты, может более оптимизированные, моего кода.
Правда я программирую на гдскрипте и всего несколько месяцев, лул, и возможно я себе этим врежу, но я изначально не программист а тридэшник, так что я не вижу в этом особой проблемы.
Мимо-нищий-симуляторостроитель
>В четвёрке синтаксис таков, что можно и приравнять
Ну как бы да, но как бы нет. Это не присвоение. Нельзя туда запихнуть просто какую-то Callable фигню, потому что геттер задаётся не на этапе выполнения скрипта, а на этапе регистрации класса (а каждый скрипт - это класс).
Не, все правильно делаешь. Улучшать себя с помощью нейронок - верный путь, перекладывать на них все думоние и в итоге заиметь внешнее мышление - неверный путь.
Мне самое удобное просить гпт объяснить мне теорию и/или математику доступным языком. Или где какие методики применять, например в освещении.
Я базово не люблю читать документации/мануалы, потому что, как правило, это гумоз тот еще, они все написаны душно и скучно. Лучше уж курить туториалы на ютубе + форумы + запрашивать выжимку с конкретикой у нейронки
ИМХО
> Можно ли
Можно.
> и как, если да
В трёшке был аддон стелс-заготовка, там как-то определялось количество света, падающего на перса.
Изучай, вот сам скрипт оттуда: https://github.com/awnagel/Godot-Thief-Controller/blob/master/addons/thief_controller/scripts/player/light_detector.gd
Поймёшь принцип - сделаешь где угодно.
Не знаю верно ли я понял чего ты хочешь добиться. Попробуй выключить эмбиент освещение и поиграться с масками света.
Спасибо, ага, натыкался вчера на видос на ютубе про эту тему.
А тебе точно надо на основании освещения, а не просто какого то радиуса?
Я так понимаю ты пытаешься сделать сделать скрывающиеся стены. Ну вот тут с 29 минуты чел делает что-то типа рендера в вьюпорт и аналога стенсил буфера,
https://www.youtube.com/watch?app=desktop&v=0T-FMkSru64&t=1773s но думаю так можно и под твой источник света сделать (особенно если поставить его в другом слое и светить на максимум)
вот еще шейдеры делающие нечто схожее https://godotshaders.com/shader/fade-by-distance-to-character/ https://godotshaders.com/shader/3d-border-distance/
Спасибо за ответ. Да, мне точно на основании освещения надо. Принцип работы поля видимости персонажа примерно как в зомбоиде, если играл. Те места, куда может упасть источник света, который является имитацией взора игрока, должны быть видны даже за стенами. Видео, что ты посоветовал, я смотрел. И там не совсем то, что мне нужно. Такая фича у меня уже реализована была, но я долго игрался с ней, и по итогу решил, что это не то, что мне нужно. Не шибко гибкая реализация, вобщем.
И кстати, ещё вопрос близкий к теме - можно ли буфер глубины преобразовать в карту высоты? Допустим у меня есть саб вьюпорт, с камерой, которая смотрит от первого лица игрока, и по сути так же имитирует его поле видимости. У неё фов ещё 130 градусов, чтобы она охватывала такой же угол, как спот лайт. Так вот, я мог бы брать вьюпорт текстуру, с настройкой дебаг мода - буфер глубины, и, если возможно, преобразовывать в карту высот, чтобы потом использовать в качестве шейпа для HeightMapShape3D, который служил бы мне шейпом коллизии для ареа3д.Ну и там дальше я уже тоже продумал, но процесс весь описывать не вижу смысла. Или может я вообше шизу загоняю? Я пытался уже и разные вьюпорт использовать, и делать маски, но пока чот безрезультатно.
Нет, не играл, что-то типа зоны действия способностей?
https://godotshaders.com/shader/sdf-range-rings-3d/
https://godotshaders.com/shader/shaped-glow-post-processing-effect/
По скринам зомбоид это плоская игра, в таких играх такие вещи считаются простыми геометрическими фигурами типа круг на плоской земле.
Про глубину не уверен что так будет работать с таким ракурсом, и также не уверен что это будет быстро в реалтайме, если только ты не собираешься один раз при создании уровня это посчитать.
Да, напоминает зоны действия способностей, если так подумать. Кстати такая особенность есть во многих изометрических играх, надо будет погуглить как в том же рог трейдере реализовано, если найду. По глубине ну понял, думал в реалтайме вообщет чекать, но если и правда затратно так, то и хер с ним. Придумаю что нибудь другое.
https://www.youtube.com/watch?v=7mwvHeHjGjI
Разве? А, я понял, ты не туда ударение ставишь.
Некоторые из них это понимают и отражают в своём названии.
Вышел вышел!вышел третий урок по движку обработки ввода:
https://www.youtube.com/watch?v=RCKqouD9bPI
По двачерскому нейроакценту.

Тащемта я нативный китаец, нейронка мне и на инглиш и на русиш переозвучила.
вот допустим бг 1920 на 1080, по гайдам и советам нейросети она не скейлится до 1280 на 720.
казалось бы и похуй, но вдруг будут некроноуте играть.
даже ручками принудительно текстур рект не хочет уменьшаться.
проблема щас такая. размеры окна проекта 1280 на 720, текстура бг 1920 на 1080, по гайдам сделал, но текстура не хочет уменьшаться до 720.
Текстур рект старается сохранить четкость текстуры.
Но у него есть параметр scale которым можно уменьшить.
Кроме того можно уменьшить всю игру в настройках проекта
https://docs.godotengine.org/en/stable/tutorials/rendering/multiple_resolutions.html
Спасибо, оказалось достаточно было игнор поставить.
Новая бета. Расскажите чего там, а я пока посплю. Краем глаза видел про 20х к скорости компиляции шейдеров.
Действительно прикольно. Даже трейлер на асепритовский похож

Я вот это не понял. В чем суть? Ведь и так можно было создавать свои классы, которые подхватывались инспектором.
Суть в том, что теперь есть ключевое слово abstract, и объект такого класса НЕЛЬЗЯ создать.
Ну это, видимо, всякие синглтононенавистники наныли.
> Я вот это не понял. В чем суть?
Суть в том, что геймдев - это вершина айти. Имеет смысл приходить в геймдев когда более простые вещи изучены. Если в геймдев вкатываешься с нуля - возникают подобные вопросы. А чоэта такое - абстрактный класс? А потом еще в гдскрипт интерфейсы введут (а может быть сразу типажи), и вкатуны так же будут спрашивать, а чоэта такоэ - ынтырхейс?
> Этот коммент - наглядный пример, почему стековерфлоу сдох в пользу нейронок, берущих ответы со стековерфлоу.
Свали нахуй, мразота движкосрачерская. Ты гляди какой пидарас!
А, это ты писал выше что "документация душно", вопросов не имею.
Взаимопомощь - это не держать кого-то за ручку, это как минимум подразумевает что новички подтягивают свой уровень и становятся равными опытным.
Нет, не я, ты хуевый прорицатель.
мимо
>знаю, что такое абстрактний класс
Ты - молодец.
А вот шеймить тех, кто не знает - не надо, их надо просто научить.
Я вот не знал, когда этот термин впервые увидел. Но из контекста сразу же догадался.
Мне кажется, анона сбило с толку введение ключевого слова abstract и запрет на прямое использование соответствующего класса. Как по мне, это лишнее ограничение, которое не соответствует духу гдскрипта. Оно имеет смысл в компилируемых языках, потому что компилятор в этом месте может произвести какую-то оптимизацию; здесь же это ограничение ради ограничения. Я понимаю, что для многих это привычный элемент, он есть много где; и вообще, добавляет строгости в код. Но для вкатунов - плюс одна копеечка в копилку непонятной сложности. Да, я понимаю, что вкатуны могут просто не пользоваться ключевым словом; да, я поимаю, что криворукий вкатун может попытаться добавить абстрактную ноду, а его годот пошлёт нахер; и это хорошо, потому что новичок не зайдёт не в ту дверь; но это плохо, как куча запертых дверей в классических Сайлент Хиллах. Это маленькое поднятие порога вхождения. Хотел написать, что гдскрипт язык максимально вкатун-френдли, но по размылении всё-таки нет, он постоянно пытается усидеть на двух стульях и раздувается от фич, которые использовать не обязательно, но необходимо. Он позволяет творить лютый говнокод, но постоянно подталкивает к хорошим практикам.
Алсо, киньте в меня камень, кто ни разу не создавал абстрактную сцену, чтобы от неё потом наследовать сцены более реальные.
Лол, меня занесло.
У меня прямо сейчас есть абстрактные классы, но о том что они абстрактны движок не знает, а я в _init() прописал printerr("!Ты создал экземпляр абстрактного класса, притворись, что никто не видел!") В абстрактном классе я задекларировал переменные и функции, которые есть во всех потомках. Очень удобно. Причём, если кто-то захочет спросить, зачем мне иерархия наследования, когда есть более гибкая композиция, я заранее могу ответить. Это иерархия компонентов для композиции. То есть, абстракт класснейм КомпонентБазовик в котором сразу прописаны методы работы с хост-нодой, и прочие полезности.
Сами персонажи состоят из множества polygon2d, поэтому внутри них я там поиграл с z index, чтобы анимации норм игралисью.
https://kidscancode.org/godot_recipes/4.x/2d/using_ysort/index.html
Y sort сортирует точки origin, поэтому конечно надо чтобы они все делались единообразно, например на уровне стопы.
А, еще где то читал что z-index главнее y sort. Надо экспереминтировать. Может быть проще вручную считать z-index самому в зависимости от y координаты.
https://www.reddit.com/r/godot/comments/x15sjz/problem_with_ysort_node_and_z_index/
>Может быть проще вручную считать z-index самому в зависимости от y координаты
Вообще такие мысли есть, но я могу это только на таком просто уровне сделать, тип если попало в зону "это", поменять z index. А если и снизу и сверху будут неписи, в общем хз, буду думать.
Да я имел в виду более примитивный способ. YSort же работает наподобие self.z_index = self.position.y (чем больше y координата, тем объект ближе рисуется). Можно просто переделать на твои оффсеты для анимации: z_index = position.y + your_z_offset
Ну кстати так гораздо проще, а я чет в голове уже хуйню из всяких зон строил. Спасибо.
Толсто. Выглядит просто как стандартная 3д игра, ну ассеты он еще некоторые недомоделлил явно плейсхолдеры. Делалось тоже явно ненапряжно и легко за пару месяцев если посмотреть историю канала.
Попробуем конечно, но что то кажется смысла переходить с 3-ки в вебе все равно не появится.
Можно было бы посоветовать юзать трёшку, но после четвёрки на трёшке неудобно, реально как будто с иномарки на шоху пересел.
Сейм. Там еще 3.7 впереди.
https://www.youtube.com/watch?v=aRdiiWpA0AA
Надо сходить юнькам закинуть.
Что?

С самого начала было очевидно, что это какой-то эффективный менеджер из развалившейся галеры. Я постоянно говорил анонам, чтобы не кормили его и репортили. Но мы кормим его уже шестой тред.
я на данный момент делаю пиксельный 2д рогалик про подземелья, именно реалтайм, не пошаговый. годотом до этого в целом не владел, на данный момент около ~350 часов в нём провел.
проблема заключается в том что я не умею программировать, вообще, не даётся мне это и всё, лет с 12 пытался научиться, но то ли усидчивости не хватает, то ли мозгов, но в геймдев с детства мечтал попасть, поэтому раз с погромированием не получилось, начал учить 3д, рисование, и пиксель арт, и на данный момент очень и очень в этом неплох. но программировать так и не научился.
пытался работать на энтузиазме с друзьями программистами, но по итогу мои 3 месяца работы над игрой ушли в стол ибо оказалось что серьёзно к этому относился только я, поэтому принял решение во что бы это не стало, сделать игру сам.
так вот, вернёмся к игре, как первый проект специально не стал брать что-то прям замудрённое, взял то, где я смогу точно продумать все механики и так далее.
код пишу через ии к сожалению, в голове логикой я могу представить как должен работать скрипт, обьявить ему возможности, условия, переменные, и ограничения, но вручную это написать не могу вообще, поэтому пока делаю через ии.
на данный момент в игре уже реализован сам персонаж, инвентарь и взаимодействия с ним, hud, локации, 1 враг (делал как шаблон чтобы в будущем масштабировать на разные типы врагов) с базовым интеллектом, состояниями и навигацией, реализованы предметы с механиками (типа свитков, рун, оружия, брони, еды, зелий) а также взаимодействие их друг с другом. реализованы эффекты (которые могут вызывать как предметы, так и магия, и они связаны с другими системами, например горящий враг от магии может задеть бочку, и та загорится и т.д). реализован также туман войны, скрывающий нпосещённые места, и скрывающий обьекты и врагов в посещённых местах.
базово реализована процедурная генерация (основная фишка любого рогалика) уровни генерируются из заранее созданных сцен комнат и коридоров, которые потом скриптом рандомно собираются воедино в общих тайлмапах каждого уровня (подробнее обьяснять - слишком много текста выйдет).
и в общих чертах игра уже вроде имеет свой вид, многие механики работают либо полностью как надо, либо требуют незначительного вмешательства, что для данной стадии простительно, но:
как раз тут и сам тезис проблемы, ибо начав делать процедурную генерацию я понял что даже с ии и полным пониманием дела я либо буду очень долго мучаться и результат всё равно получится кривым, либо не смогу вообще ничего закончить.
я не понимаю как двигаться дальше, до этого прогресс шёл как надо, я 3 месяца рисовал графику, продумывал игру, а потом с начала мая сделал всё то о чем говорю, а на генерации всё встало. даже базовая генерация уровней выдаёт приколы 1 раз из 10, создавая рандомные коридоры к которым не прикрепляются комнаты, хотя в скрипте вроде должен работать ограничитель и проверка на такие коридоры и их удаления.
бля даже четко проблему обозначить не смог)) извиняюсь, неделю уже почти не сплю из-за этой всей мути.
короче, че делать то. как быстро научиться прогать хотя бы чисто для годота? ибо я понимаю что задалбливать людей о помощи постоянно при каждой неудаче это не кул и надо решать их самому, а я - увы этого не могу.
сам движок (годот 4.3) я вроде хорошо уже понял, что как и где взаимодействует друг с другом, и в интерфейсе разобрался (замудрённые программы и интерфейсы для 3дшника это херня) а вот в самом программировании увы - нет.
памагите, боюсь что если я не смогу реализовать это сейчас, то остаток дней проведу на дноработе 5\2 без сил к саморазвитию и реализации и так и сгорю там.
я на данный момент делаю пиксельный 2д рогалик про подземелья, именно реалтайм, не пошаговый. годотом до этого в целом не владел, на данный момент около ~350 часов в нём провел.
проблема заключается в том что я не умею программировать, вообще, не даётся мне это и всё, лет с 12 пытался научиться, но то ли усидчивости не хватает, то ли мозгов, но в геймдев с детства мечтал попасть, поэтому раз с погромированием не получилось, начал учить 3д, рисование, и пиксель арт, и на данный момент очень и очень в этом неплох. но программировать так и не научился.
пытался работать на энтузиазме с друзьями программистами, но по итогу мои 3 месяца работы над игрой ушли в стол ибо оказалось что серьёзно к этому относился только я, поэтому принял решение во что бы это не стало, сделать игру сам.
так вот, вернёмся к игре, как первый проект специально не стал брать что-то прям замудрённое, взял то, где я смогу точно продумать все механики и так далее.
код пишу через ии к сожалению, в голове логикой я могу представить как должен работать скрипт, обьявить ему возможности, условия, переменные, и ограничения, но вручную это написать не могу вообще, поэтому пока делаю через ии.
на данный момент в игре уже реализован сам персонаж, инвентарь и взаимодействия с ним, hud, локации, 1 враг (делал как шаблон чтобы в будущем масштабировать на разные типы врагов) с базовым интеллектом, состояниями и навигацией, реализованы предметы с механиками (типа свитков, рун, оружия, брони, еды, зелий) а также взаимодействие их друг с другом. реализованы эффекты (которые могут вызывать как предметы, так и магия, и они связаны с другими системами, например горящий враг от магии может задеть бочку, и та загорится и т.д). реализован также туман войны, скрывающий нпосещённые места, и скрывающий обьекты и врагов в посещённых местах.
базово реализована процедурная генерация (основная фишка любого рогалика) уровни генерируются из заранее созданных сцен комнат и коридоров, которые потом скриптом рандомно собираются воедино в общих тайлмапах каждого уровня (подробнее обьяснять - слишком много текста выйдет).
и в общих чертах игра уже вроде имеет свой вид, многие механики работают либо полностью как надо, либо требуют незначительного вмешательства, что для данной стадии простительно, но:
как раз тут и сам тезис проблемы, ибо начав делать процедурную генерацию я понял что даже с ии и полным пониманием дела я либо буду очень долго мучаться и результат всё равно получится кривым, либо не смогу вообще ничего закончить.
я не понимаю как двигаться дальше, до этого прогресс шёл как надо, я 3 месяца рисовал графику, продумывал игру, а потом с начала мая сделал всё то о чем говорю, а на генерации всё встало. даже базовая генерация уровней выдаёт приколы 1 раз из 10, создавая рандомные коридоры к которым не прикрепляются комнаты, хотя в скрипте вроде должен работать ограничитель и проверка на такие коридоры и их удаления.
бля даже четко проблему обозначить не смог)) извиняюсь, неделю уже почти не сплю из-за этой всей мути.
короче, че делать то. как быстро научиться прогать хотя бы чисто для годота? ибо я понимаю что задалбливать людей о помощи постоянно при каждой неудаче это не кул и надо решать их самому, а я - увы этого не могу.
сам движок (годот 4.3) я вроде хорошо уже понял, что как и где взаимодействует друг с другом, и в интерфейсе разобрался (замудрённые программы и интерфейсы для 3дшника это херня) а вот в самом программировании увы - нет.
памагите, боюсь что если я не смогу реализовать это сейчас, то остаток дней проведу на дноработе 5\2 без сил к саморазвитию и реализации и так и сгорю там.
> как быстро научиться прогать
Используй вот этот сайт https://snap.berkeley.edu/
Открывай имеющиеся там проекты.
Смотри как они работают.
Пробуй самостоятельно составлять блоки.
Когда дорастёшь до своего первого полностью самостоятельного проекта в этом снапе - попробуй вернуться в годот и осознать что блоки снапа были всего лишь словами, которые нужно писать, чтобы получилась программа. После этого начинай осваивать гдскрипт.
Поймать бы тебя, такого идейного, и загнать работать над моим проектом. У меня как раз тоже данжи. Но мы посремся из-за вижена.
>>5544
Подумал что это предок Скретча из-за визуальной всратости. А нет, оказался потомок. Функции первого класса - прикольно. Хороший совет. Скретч ему тоже докину, поскольку он проще и популярней: https://scratch.mit.edu
Когда не было снапа я советовал новичкам скретч. Сейчас уже в принципе вопрос вкуса.
Дохуя всего реализовал как для человека, который "не умеет программировать вообще". Наверное все-таки умеешь, потому что даже с нейронками нужно как-то все это править и объединять в рабочую систему. В общем, привыкай к мысли, что ты уже умеешь как-то программировать.
Я тоже не умею это делать так, как хотелось, но делаю, тоже с нейронками. Иногда тоже неделями не сплю, потому что не могу сделать какую-то простейшую, как кажется, хуйню. Просто просыпаюсь посреди ночи и мычу куда-то в пустоту от бессилия. Привыкай. Таков путь. Просто продолжай делать и через месяцы и годы у тебя будет получаться лучше.
Медленно, зато я полностью понимаю, что делает каждая строчка кода.
Вопрос следующий, что делать? Хочу полностью понимать движок годот и осознанно писать код.
Нужно сперва уйти в глубокое программирование, будь это питон или другой язык, или можно вместе с годот? Если да, то есть ли материал? Или одного целого материала нет, все разбросано хаотично?
Можно с годотом. Пройди официальные туториалы, для 2д и для 3д, дальше по накатанной базе разберешься.
Почитал, ты прям огромный молодец, не стоит опускать руки, но не стоит сильно загоняться, не получилось сделай отскок в сторону и отдохни на мелким проектом (напиши клинкер) .
>как быстро научиться прогать хотя бы чисто для годота?
Ну вот смотри какой вариант, если смотреть на этот вопрос именно в разрезе годота, то ответ на него будет следующим:
делая проект разбивай его на мелкий винегрет по задачам и решая каждую задачу изучай именно тот кусочек который тебе нужен в данный момент ( кстати ИИ в этом плане может толкнуть мысль куда двигаться ) и пытаться сшить эти куски вместе ( опять же ИИ в зубы ) - да, это по началу не будет получаться ( я про сшить), но это ведь и есть задача!!!
Смотри идея в общем вот какая - ты решаешь задачу пробуешь подход - не сработало, второй - не сработало, третий - сработало и вот 1й и 2й и 3й раз это и будет твое знание которое ты получил.
Усидчивости тебе и удачи..
з.ы. на одном известном трекере если набрать godot можно найти уроки по godot в том числе и уроки по автогенерации уровней, там можно подсмотреть идей
Делаю с нейронками быстрее обычного и понимаю что делает каждая строчка кода и моя и нейронки.
Официальный туториал это который про простенькую игру сделать? Прошел, а что должен был понять дальше? Там прям минимум минимальный будто бы
А я делаю без нейронок, медленнее тебя, зато я полностью понимаю, что делает каждая строчка кода.
Если что, нейронка генерирует такой же код как ты, а не ассемблерные вставки, и запретить их понимать если ты понимаешь остальной код может разве что религия
Дальше просто делай игры и решай проблемы по мере их возникновения.
На уровне написания читов в читэнжине, повышать не планирую
Не прописана твоя версия движка. Не прописана категория. Там честно говоря полная чехарда с ассетами. Поголовное большинство их запаковано вместе с прожект.годот и прочими служебными файлами, что делает неработоспособными без донастройки часть ассетов.
Например, скачиваешь контроллер персонажа, а он настроен на свои экшены, которые у него в прожект.годот прописаны, но этот файл игнорируется при установке ассета. Скачиваешь, ожидаешь, а он стоит на месте, и если ты не понимаешь что конкретно произошло - он у тебя без посторонней помощи нескоро взлетит.
Поздравляю, ты дал самый тупой совет что я видел за годы в гд.
В консоли красными буквами написано какие кнопко-действия запрашивались и не нашлись.
Ммм, нуу ладно, но анончик может оказаться ненаблюдательным, и не заметить сотни тыщи красных записей в консольке. Прям как я пару лет назад, да.
>сперва уйти в глубокое программирование
Ты хочешь кодером работать или игру сделать?
Если кодером - тебе не в геймдев - здесь денег нет.
Если игру сделать: роль программиста в 99% игровых жанров переоценена; 99% кода игр - т.н. "glue code", связывание уже имеющихся компонентов в нужной геймдизайнеру форме. Чтобы сделать игру не нужно изобретать гениальные алгоритмы и архитектуру приложения, т.к. даже лучшие из лучших игр часто опираются на говнокод и анти-паттерны. Глубокое погружение в код только замедлит разработку игры, особенно в одиночку, если ты хочешь сделать что-то относительно популярное (т.е. не ASCII рыгалик).
Вместо программирования рекомендую изучать:
1. Геймдизайн: что, как и ЗАЧЕМ нужно твоей игре. Популярные игры созданы в большинстве случаев геймдизайнерами, а не кодерами/художниками.
2. Визуал: геймплей важнее всего, но без красивой обёртки большинство игроков играть не захочет.
3. UI/UX: игра не должна вызывать агрессию игрока.
4. Маркетинг: как заставить человека купить говно.
5. Звук, музыка, сценарий и т.д. Не всем это нужно.
Когда начнёшь делать игру, быстро поймёшь, что геймдизайн и графика сложнее всех алгоритмов. Ну, конечно, если ты хочешь свою игру, а не копируешь существующую 1-в-1, как делают ассетфлиперы (фу).
>Делаю с нейронками быстрее обычного
>>6095
>нейронка генерирует такой же код как ты
Какая у тебя скорость печати на английском?
Здесь протестируй: https://monkeytype.com/
Вот у меня ≈350 знаков в минуту в среднем - конечно, медленно, по сравнению с другими людьми, но всё же достаточно для программирования. По моим личным наблюдениям я намного дольше думаю, перечитываю старые участки кода, разбираюсь с ошибками в коде, оцениваю задачу и т.п., чем набираю новый код. Т.е. навалить кучу текста - это вообще не проблема, т.к. реальная проблема - понять, как соединить эту кучу с совершенно другой кучей в нечто работоспособное и расширяемое в будущем, или найти ошибку в куче...
Так вот, LLM по моим впечатлениям способны легко навалить кучу кода, но им не хватает осмысленного планирования архитектуры и поиска ошибок в коде. Другими словами, LLM - как костыль для безруких, наподобие speech to text сервисов, чтоб вводить код собственным голосом, вот только всё равно нужно печатать, потому что LLM требует от тебя промпт, и качественный при этом, а не какой-то мусор (GIGO).
Короче, не вижу, как LLM может помочь мне в коде.
Может, я чего-то не понимаю? Как мне юзать LLM?
>Какая у тебя скорость печати на английском?
Я не кнопкодав ебаный а художник. Большая часть букв (80%+-) моей кодобазы сгенерирована интеллисенсом на основе ввода первых символов, а сейчас к ней еще добавился windsurf/copilot который позволяет накидывать строками бойлерплейт изредка угадывая правильное. Но ты правильно понял, превращение мысли/идеи в код зачастую занимает тонну времени, и вот от этого спасает ллм, и даже может подсказать что-то, до чего ты сам не дошёл. Накидал правильно задание, очертил применяемые алгоритмы и структуры данных - получил то что можно дорабатывать, той же нейронкой. Я недавно реализовывал достаточно сложную систему подьема сервисов, сделал всё на клоде, но близко к финалу код всё равно работал дерьмово. 30 минут на генерацию и 30 минут на отладку с фиксами (очень простыми, там нейронка просто неверно посчитала числа смещений) - и я получил косарь строк достаточно сложной системы, которую рожал бы сам весь рабочий день. Если сумеешь правильно подготовить задачу нейронке, дать нужные опорные точки - на неё можно будет сгружать приличные куски работы. Фейл описанный выше - стал следствием сложности задачи, обычно фейлов не бывает, если нужно накидать то что уже было накидано миллиард раз на гитхабе.
Тред про разработку, обсуждаем применение кодерских ллм, привыкай что они теперь часть инструментария любого формошлепа и даже профессионального ассетфлиппера.
В твоем набросе нет ничего специфичного для годота, поэтому получай свой репорт раз так напрашиваешься.
456 в минуту. А для программирования можно не печатать вообще - визуальный скриптинг давно есть, тыкайте мышкой. Для ГОДОТА был плагин, хз в каком он сейчас состоянии.

Playback can only happen when a node is inside the scene tree (45)
Loading time: 50 sec
Trollface
Ебал рот этого Годотино! Ты кто такой сука, чтобы вне сцены пытаться звук проиграть?
>Тред не про нейросети
Тред про разработку/кодинг на Godot. Сейчас все кодомартышки переходят на LLM, и в целом скоро большинство людей будут иметь персонального ИИ компаньона (если не робота-андроида, тогда новый "смартфон"), так что обсуждение в контексте Godot неизбежно (польза/вред/лайфхаки/проблемы/etc). Спецраздел /ai/ вообще не об этом (там нет Godot).
>>6185
>визуальный скриптинг
Он был официально в 3.x, и его выкинули из 4.x, ибо оказался бесполезен для большинства годотеров. Натыкивать код мышкой всё-таки хуже, чем печать: приходится прицеливаться в мелкие кнопки. Тут бы сенсорный экран пригодился... Но они не взлетели, большинство ПК-мониторов не имеют сенсора и операционные системы плохо с ними работают. Графический планшет не сильно удобнее мыши.
Алсо, учитывая бум ИИ/LLM, подозреваю, что весь визуальный скриптинг сойдёт на нет из-за того, что большинство задач решается нейронкой, а что не решается нейронкой, типичный юзер визуального скриптинга самостоятельно решить не сможет.
>>6182
>Я не кнопкодав
Ты же на форум печатаешь... Со временем печать становится более естественным делом, чем речь. Особенно когда ИРЛ не с кем разговаривать.
>позволяет накидывать строками бойлерплейт
Какой бойлерплейт тебе нужен в GDScript? Разрабы специально придумали свой язык, чтобы избежать избыточного бойлерплейта - всё делается быстро. Сомневаюсь, что кто-то кодит на Java в Godot...
>косарь строк достаточно сложной системы
Ты же понимаешь, что тебе эти 1000 строк читать и перечитывать ещё несколько лет, пока ИИ не станет полностью независимым и избавится от людей? Не перечитывая код легко пропустить глюк нейронки, а ответственность за её глюки нести будет кто? Ты. У нейронки пока что нет собственных прав, так что и наказывать её за ошибки в проекте невозможно; а с правами нейронки это будет уже не твоя игра, а её, и, соответственно, зарабатывать будешь уже не ты.
Вот в чём проблема. Нейронка может выдать 1000 статистически наиболее вероятных строчек, но не способна загрузить эти строчки прямо в твой мозг, чтобы ты мог с ними продолжать работу. Чтение и понимание кода занимает больше, чем генерация.
Короче, LLM == автодополнение, а не полноценный программист, поэтому ты вручную программируешь, несмотря на всё автодополнение, либо ты просто скопировал чужой код и не знаешь, как он вообще работает, но несёшь за него всю ответственность.
На видео сравнение... Свой код я набрал условно за минуту; код нейронки пришлось читать и править, и придётся дополнительно править чтобы привести к идентичному виду; как минимум нейронка забыла объявить типы переменных. Так что с нейронкой до идентичного результата явно больше минуты нужно. Вопрос, зачем было использовать нейронку? Чтобы вспомнить алгоритм? Чтобы выбрать имя функции? Особого преимущества от применения LLM не вижу.
Большая часть игрового кода - обращение к API: либо игрового движка, либо к твоему собственному API, о котором нейронка не знает (в контекст не уместится). Бойлерплейта как такого в игровом коде обычно нет. Поэтому обычного ООП автодополнения достаточно: большинство задач в коде сводится к "object.do(this)".
Алсо, для более-менее умной нейронки нужен либо актуальный игровой ПК с 48+ GB VRAM, либо плоти провайдеру, который все твои переписки читает и использует для чего-то как пожелает. В результате только 300кк наносеки могут себе это удовольствие позволить. Но стоит ли оно этого? Есть ли смысл?
Ну т.е. я понимаю, что на duckduckgo только самые примитивные нейронки, но для 70b нужно 48 гигов, поэтому на что-то лучшее надеяться бесполезно. А подписываться, сами понимаете, не хочется, иначе разрабатывал бы игру на платном игровом движке.
Да и прибыли с игр не получишь сегодня, так что это вдвойне невыгодно. От кодинга вручную хотя бы сам удовольствие получаешь, бесплатно по сути, а игру доделывать в принципе не обязательно/нет смысла.
>Тред не про нейросети
Тред про разработку/кодинг на Godot. Сейчас все кодомартышки переходят на LLM, и в целом скоро большинство людей будут иметь персонального ИИ компаньона (если не робота-андроида, тогда новый "смартфон"), так что обсуждение в контексте Godot неизбежно (польза/вред/лайфхаки/проблемы/etc). Спецраздел /ai/ вообще не об этом (там нет Godot).
>>6185
>визуальный скриптинг
Он был официально в 3.x, и его выкинули из 4.x, ибо оказался бесполезен для большинства годотеров. Натыкивать код мышкой всё-таки хуже, чем печать: приходится прицеливаться в мелкие кнопки. Тут бы сенсорный экран пригодился... Но они не взлетели, большинство ПК-мониторов не имеют сенсора и операционные системы плохо с ними работают. Графический планшет не сильно удобнее мыши.
Алсо, учитывая бум ИИ/LLM, подозреваю, что весь визуальный скриптинг сойдёт на нет из-за того, что большинство задач решается нейронкой, а что не решается нейронкой, типичный юзер визуального скриптинга самостоятельно решить не сможет.
>>6182
>Я не кнопкодав
Ты же на форум печатаешь... Со временем печать становится более естественным делом, чем речь. Особенно когда ИРЛ не с кем разговаривать.
>позволяет накидывать строками бойлерплейт
Какой бойлерплейт тебе нужен в GDScript? Разрабы специально придумали свой язык, чтобы избежать избыточного бойлерплейта - всё делается быстро. Сомневаюсь, что кто-то кодит на Java в Godot...
>косарь строк достаточно сложной системы
Ты же понимаешь, что тебе эти 1000 строк читать и перечитывать ещё несколько лет, пока ИИ не станет полностью независимым и избавится от людей? Не перечитывая код легко пропустить глюк нейронки, а ответственность за её глюки нести будет кто? Ты. У нейронки пока что нет собственных прав, так что и наказывать её за ошибки в проекте невозможно; а с правами нейронки это будет уже не твоя игра, а её, и, соответственно, зарабатывать будешь уже не ты.
Вот в чём проблема. Нейронка может выдать 1000 статистически наиболее вероятных строчек, но не способна загрузить эти строчки прямо в твой мозг, чтобы ты мог с ними продолжать работу. Чтение и понимание кода занимает больше, чем генерация.
Короче, LLM == автодополнение, а не полноценный программист, поэтому ты вручную программируешь, несмотря на всё автодополнение, либо ты просто скопировал чужой код и не знаешь, как он вообще работает, но несёшь за него всю ответственность.
На видео сравнение... Свой код я набрал условно за минуту; код нейронки пришлось читать и править, и придётся дополнительно править чтобы привести к идентичному виду; как минимум нейронка забыла объявить типы переменных. Так что с нейронкой до идентичного результата явно больше минуты нужно. Вопрос, зачем было использовать нейронку? Чтобы вспомнить алгоритм? Чтобы выбрать имя функции? Особого преимущества от применения LLM не вижу.
Большая часть игрового кода - обращение к API: либо игрового движка, либо к твоему собственному API, о котором нейронка не знает (в контекст не уместится). Бойлерплейта как такого в игровом коде обычно нет. Поэтому обычного ООП автодополнения достаточно: большинство задач в коде сводится к "object.do(this)".
Алсо, для более-менее умной нейронки нужен либо актуальный игровой ПК с 48+ GB VRAM, либо плоти провайдеру, который все твои переписки читает и использует для чего-то как пожелает. В результате только 300кк наносеки могут себе это удовольствие позволить. Но стоит ли оно этого? Есть ли смысл?
Ну т.е. я понимаю, что на duckduckgo только самые примитивные нейронки, но для 70b нужно 48 гигов, поэтому на что-то лучшее надеяться бесполезно. А подписываться, сами понимаете, не хочется, иначе разрабатывал бы игру на платном игровом движке.
Да и прибыли с игр не получишь сегодня, так что это вдвойне невыгодно. От кодинга вручную хотя бы сам удовольствие получаешь, бесплатно по сути, а игру доделывать в принципе не обязательно/нет смысла.
>Какой бойлерплейт тебе нужен в GDScript?
GDScript не нужен, родной.(ну ладно, нужен но очень редко в специфичных случаях и только на 4 из-за отсутствия оверхеда гднатив). Так что без дотнета мне годот не уперся. Бойлерплейт простейший - расставить экспорты, сгенерировать их инит. Я использую осебенный тип конфигурации приложения на базе иерархии директорий с yml файликами, считывание строчек из этих файлов и получение обьектов (число, массив, строка, обьект) тоже часто угадывает windsurf, так как работает с моей кодобазой + конфигами и видит пути к файлам. Иногда он просто угадывает правильные геттеры сеттеры, иногда правильную иф/цикл/свич конструкцию. Всё это экономия времени.
>Ты же понимаешь, что тебе эти 1000 строк читать и перечитывать ещё несколько лет
Полчаса. Просто написал тест, прогулялся отладчиком по брейкам и нашёл кривой оффсет за полчаса, ну ладно, даже пускай за час если в сумме (обнаружение + тест). Это всё еще гораздо меньше чем если бы я всё это придумывал и накидывал вручную, нейронка превратила мою мысль в код, а мне осталось только разглядеть мою мысль в ее коде.
>Не перечитывая код легко пропустить глюк нейронки, а ответственность за её глюки нести будет кто? Ты.
Аллах мешает перечитывать? Я даже код с ассетов и библиотек полностью перечитываю на случай засовывания в него rce и прочих радостей. Намеренную уязвимость я тоже могу увидеть по ансейфу и всяким сомнительным дллимпортам, генерациям кода и прочим вещам. Код годота я не перечитывал конечно, тут уже приходится принимать на веру, но в остальном - я не доверяю никому, ни нейронкам, ни людям, нейронкам по одной причине, людям по другой. Обычно нейронки мне генерируют достаточно простой код (юи эффект/контрол, движение камеры, кастомные ресурсы с допобработкой ресурсов моих - привет ублюдские атласы, которые не делают листинг атласспрайтов, а предлагают выклацывать весь спрайтшит руками в отдельные файлы спрайтатласов, я нанейронил себе кастомный ресурс нарезающий как мне надо спрайтшиты в самого себя с возможностью делить нарезанное на наборы анимаций, если задать сколько каждая из анимаций и в какой последовательности берет из общего набора) - код понятный, ошибки маловероятны. Делать сложное нейронками - редкость, но даже тогда работает +- нормально. Даже тесты на нейронку может писать нейронка и по их результатам находить ошибку. Ну и из недавнего - я могу заставить нейронку обмазать стопватчами каждую строчку и измерить ее длительность, что конечно тупо при существовании визуалстудии и райдера, но увы на линуксе и 8 гигах переносного ноута приходится довольствоваться малым.
>Чтение и понимание кода занимает больше, чем генерация.
У меня понимание кода занимает намного меньше, потому что мне в этом мире уже все ясно. Я потратил час на сложную задачу только потому что это был многопоток, а понимание многопотока и понимание синхронного кода это 2 разных понимания и разный подход к отладке. Был бы он синхронный - время уменьшилось бы вчетверо.
>Какой бойлерплейт тебе нужен в GDScript?
GDScript не нужен, родной.(ну ладно, нужен но очень редко в специфичных случаях и только на 4 из-за отсутствия оверхеда гднатив). Так что без дотнета мне годот не уперся. Бойлерплейт простейший - расставить экспорты, сгенерировать их инит. Я использую осебенный тип конфигурации приложения на базе иерархии директорий с yml файликами, считывание строчек из этих файлов и получение обьектов (число, массив, строка, обьект) тоже часто угадывает windsurf, так как работает с моей кодобазой + конфигами и видит пути к файлам. Иногда он просто угадывает правильные геттеры сеттеры, иногда правильную иф/цикл/свич конструкцию. Всё это экономия времени.
>Ты же понимаешь, что тебе эти 1000 строк читать и перечитывать ещё несколько лет
Полчаса. Просто написал тест, прогулялся отладчиком по брейкам и нашёл кривой оффсет за полчаса, ну ладно, даже пускай за час если в сумме (обнаружение + тест). Это всё еще гораздо меньше чем если бы я всё это придумывал и накидывал вручную, нейронка превратила мою мысль в код, а мне осталось только разглядеть мою мысль в ее коде.
>Не перечитывая код легко пропустить глюк нейронки, а ответственность за её глюки нести будет кто? Ты.
Аллах мешает перечитывать? Я даже код с ассетов и библиотек полностью перечитываю на случай засовывания в него rce и прочих радостей. Намеренную уязвимость я тоже могу увидеть по ансейфу и всяким сомнительным дллимпортам, генерациям кода и прочим вещам. Код годота я не перечитывал конечно, тут уже приходится принимать на веру, но в остальном - я не доверяю никому, ни нейронкам, ни людям, нейронкам по одной причине, людям по другой. Обычно нейронки мне генерируют достаточно простой код (юи эффект/контрол, движение камеры, кастомные ресурсы с допобработкой ресурсов моих - привет ублюдские атласы, которые не делают листинг атласспрайтов, а предлагают выклацывать весь спрайтшит руками в отдельные файлы спрайтатласов, я нанейронил себе кастомный ресурс нарезающий как мне надо спрайтшиты в самого себя с возможностью делить нарезанное на наборы анимаций, если задать сколько каждая из анимаций и в какой последовательности берет из общего набора) - код понятный, ошибки маловероятны. Делать сложное нейронками - редкость, но даже тогда работает +- нормально. Даже тесты на нейронку может писать нейронка и по их результатам находить ошибку. Ну и из недавнего - я могу заставить нейронку обмазать стопватчами каждую строчку и измерить ее длительность, что конечно тупо при существовании визуалстудии и райдера, но увы на линуксе и 8 гигах переносного ноута приходится довольствоваться малым.
>Чтение и понимание кода занимает больше, чем генерация.
У меня понимание кода занимает намного меньше, потому что мне в этом мире уже все ясно. Я потратил час на сложную задачу только потому что это был многопоток, а понимание многопотока и понимание синхронного кода это 2 разных понимания и разный подход к отладке. Был бы он синхронный - время уменьшилось бы вчетверо.
> (напиши клинкер)
Клинкер!
Новая игра в жанре клинкер-панк. Вы немецкий гончар, принимаете заказы на изготовление клинкерной плитки, изразцов и кирпича. Постепенно прокачиваете мастерскую до клинкерного завода.
Косяк-косяком, но идея про клинкерного магната - заебись. Уже зарабатываю свой первый миллион.
>CSG To Mesh
>плагина
Godot может любую сцену как gltf сохранить...
Не рекомендую юзать меши CSG "как есть", там очень косячная сетка даже с той новой библиотекой. Лучше импортировать в Blender, пофиксить и пересохранить. Впрочем, на статичной геометрии это не так заметно.
>>6291
>CSG to Geometry Nodes.
Геометри ноды поддерживают булевы операции? Я не разбираюсь в них, но раньше булевы операции Blender находились в модификаторах меша. CSG - это просто композиция из нескольких булевых операций.
>GDScript не нужен
Сам себе палки в колёса вставляешь. Ничто не может заменить сценарный язык, тем более что он здесь из коробки, полностью функционален и очень удобен. А производительность сценариям обычно не нужна. Для всего остального можно написать свой модуль на C++.
>оверхед
>дотнет
Если ты байты/наносекунды считаешь, то нужен C++. Исходный код можно написать на другом языке (я тут погуглил, Cython вроде позволяет писать C-модули на оригинальном Python для классических приложений; кто-то где-то пилит транспиллер из GDScript в C).
Алсо, привыкай, Godot не стремится к выжиманию производительности до максимума, у него там внутре варианты сидят на вариантах и погоняют вариантами. Дотнет тебе сверху навешивает сборку мусора твоего любимого C#, который не умеет сам за собой убирать.
>Полчаса
Если это одноразовая вещь. Но если пользоваться в будущем придётся? Суть в том, что не страшно взять и написать код. Страшно его потом каждые полгода-год переворачивать вверх дном под новые требования. И поэтому нейронка тут не особо помогает (пока что не позволяет сбросить всю ответственность за код).
Чем меньше у тебя кода, тем меньше поддерживать.
>предлагают выклацывать весь спрайтшит
AtlasTexture - это древний костыль, который давно собирались удалить. Для спрайтовых анимаций есть специальная нода, там вроде как особый редактор, позволяющий нарезать один спрайтшит сразу на все фреймы. Хотя только по прямоугольной сетке, т.е. не поддерживается оптимизация площади текстуры, но большинству 2D игр этого более чем достаточно.
>мне в этом мире уже все ясно
Ясно всё с тобой...
>полностью функционален и очень удобен
Абстрактный класс добавили в дев 4.5, дженериков/темплейтов все еще нет, про 3 которая сейчас в отличии от 4 реально stable вообще молчу, и это без каких либо упоминаний всуе ансейфов и кодогенераторов, что уж говорить про инструменты разработки и переносимость, о мертвых как говорится либо хорошо либо ничего.
>Дотнет тебе сверху навешивает сборку мусора твоего любимого C#, который не умеет сам за собой убирать.
Кто захочет - тот сам за собой уберет, в отличии от той же джавы. У гдс так-то тоже сборка мусора есть, хоть и неполная, и это не говоря о том что это интерпретируемый кал говна. Правда дотнет помимо этого еще миллиард вещей навешивает до которых гдсу как до Марса раком, потому ебитесь с гдсом, а я либо буду юзать нормальные языки, либо не буду юзать движки где нет нормальных языков. С++ модули тоже себе оставь на сдачу, пердолиться с скунсом под веб у меня нет ни малейшего желания, уже попробовал - ну его впизду.
>Если это одноразовая вещь.
Тяну по меньшей мере 15% нейровыхлопа в кодовой базе уже год, проблем нет. Я все еще не понимаю в чем проблема прочитать код нейронки блять. Видимо реально Аллах глаза застилает, ну, чем вас таких больше - тем мне лучше.
>Страшно его потом каждые полгода-год переворачивать вверх дном под новые требования.
А что страшного? Я через год и не вспомню что писала нейронка, мне ваще похуй что переворачивать, я такие кодовые говна разбирал, что выхлоп нейронки по сравнению с ними - образец читабельности. Плохо нейронка перевернет - перегенерирую, если в итоге будет хуево генерить - выберу лучший вариант и пофикшу ручками.
>AtlasTexture - это древний костыль, который давно собирались удалить. Для спрайтовых анимаций есть специальная нода, там вроде как особый редактор, позволяющий нарезать один спрайтшит сразу на все фреймы
Это всё очень круто, но 4 все еще говно ебучее, которое ломает обратку раз в два минора и докучи сама по себе 1 баг чинит - 2 добавляет, с# веб отсутствует, что для меня важно. Жду выхода в лтс, там можно будет посмотреть на неё.
>полностью функционален и очень удобен
Абстрактный класс добавили в дев 4.5, дженериков/темплейтов все еще нет, про 3 которая сейчас в отличии от 4 реально stable вообще молчу, и это без каких либо упоминаний всуе ансейфов и кодогенераторов, что уж говорить про инструменты разработки и переносимость, о мертвых как говорится либо хорошо либо ничего.
>Дотнет тебе сверху навешивает сборку мусора твоего любимого C#, который не умеет сам за собой убирать.
Кто захочет - тот сам за собой уберет, в отличии от той же джавы. У гдс так-то тоже сборка мусора есть, хоть и неполная, и это не говоря о том что это интерпретируемый кал говна. Правда дотнет помимо этого еще миллиард вещей навешивает до которых гдсу как до Марса раком, потому ебитесь с гдсом, а я либо буду юзать нормальные языки, либо не буду юзать движки где нет нормальных языков. С++ модули тоже себе оставь на сдачу, пердолиться с скунсом под веб у меня нет ни малейшего желания, уже попробовал - ну его впизду.
>Если это одноразовая вещь.
Тяну по меньшей мере 15% нейровыхлопа в кодовой базе уже год, проблем нет. Я все еще не понимаю в чем проблема прочитать код нейронки блять. Видимо реально Аллах глаза застилает, ну, чем вас таких больше - тем мне лучше.
>Страшно его потом каждые полгода-год переворачивать вверх дном под новые требования.
А что страшного? Я через год и не вспомню что писала нейронка, мне ваще похуй что переворачивать, я такие кодовые говна разбирал, что выхлоп нейронки по сравнению с ними - образец читабельности. Плохо нейронка перевернет - перегенерирую, если в итоге будет хуево генерить - выберу лучший вариант и пофикшу ручками.
>AtlasTexture - это древний костыль, который давно собирались удалить. Для спрайтовых анимаций есть специальная нода, там вроде как особый редактор, позволяющий нарезать один спрайтшит сразу на все фреймы
Это всё очень круто, но 4 все еще говно ебучее, которое ломает обратку раз в два минора и докучи сама по себе 1 баг чинит - 2 добавляет, с# веб отсутствует, что для меня важно. Жду выхода в лтс, там можно будет посмотреть на неё.
>Абстрактный класс добавили в дев 4.5, дженериков/темплейтов все еще нет, про 3 которая сейчас в отличии от 4 реально stable вообще молчу, и это без каких либо упоминаний всуе ансейфов и кодогенераторов, что уж говорить про инструменты разработки и переносимость, о мертвых как говорится либо хорошо либо ничего.
Ирония в том, что все это не поможет тебе делать игры. Деды на ассемблерах шедевры писали в одно ебало без нихуя, а ты с полным набором костылей так и продолжишь яйца полировать и отмазки лепить.
мимо проходил
Ирония в том что пока ты как и прочие деды без этих инструментов будете делать игру год, а потом еще и полировать полгода - я за это же время сделаю две игры и начну третью.
>а ты с полным набором костылей так и продолжишь яйца полировать и отмазки лепить.
хуйню назрел, помешай кофейную гущу лучше
спасибо бро, вдохновил. да, возможно ты прав насчёт того что как-то да умею программировать. логически понимаю что и как должно работать (на базовом уровне все эти условия, ограничения и так далее) просто синтаксис и чёткие формулировки самого кода меня очень пугают. а ещё очень задизморалило что вот то что я описал я написал и сделал грубо говоря за неделю, и что если бы я не прикручивал условную генерацию, а создал бы несколько вручную созданных уровней, то игра была бы готова уже недели через две-три после начала (без звуков разве что).

спасибо, приятно было это читать :)
да, я думал оторваться от этого проекта написав какую нибудь простенькую игру, просто ради фана.
насчет того что пробовать разные подходы - это я хорошо успел выкусить когда делал инвентарь) разные подходы, разные системы, по итогу всё заработало так, что от превьюшки выбранного предмета пришлось отказаться))) но идею уловил, спасибо в любом случае:)
вот если интересно, как это дело выглядит на данном этапе.
p.s. я видел на рутрекере гайды по годоту, но увы - английский для меня пока проблема на слух переводить, уровень не тот (знаю что английский для людей связанных с нашей темой просто необходим, просто не доходили руки пока что)
да друг, вероятнее всего посремся)) я если и смог бы работать с кем-то в команде, то как геймдизайнер и/или основной художник. работать над чьим то проектом я вряд-ли бы смог (если только не за большую денежную котлету) потому что везде буду пытаться вставить свои идеи.
Шпасибо.
Я уже и забыл вроде, что там советовали, проверять не буду, но вроде основной совет был на квадмешах все собирать. Что я и делал. Но! Попробовал 3 способа: квадмеш биллборд - уперся в выворачивающиеся нормали. Х-образных 2 квадмеша - выворачивающиеся нормали. И просто 1 квадмеш с радомным поворотом - та же хуйня. И так я и не нашел способа эти нормали как-то флипать в нужный момент, или хуй знает чего ещё с ним делать. Я не умею в шейдеры, а нейросетки, когда дело касается годот шейдеров, резко начинают косить под дурачков.
Так что претензий к прошлым советам, как таковым, я не имею. Но интересно, что вы ещё расскажете полезного.
>Эксперименты показали, что в принципе без разбивания ТРАВЫ на чанки всё хуйня и фепесы откусывает, т.к. со снижением дальности прорисовки теряется красота кадра. Вопрос! Подкиньте идей.
Размножение травинок через буфер кадра. Рендерится 10% травы, затем эта инфа многократно дублируется и смещается с небольшим рандомом. Но ты такое не осилишь. Я не осилю. Это надо быть С++ сеньором, чтобы такое смочь.
Еще тени обязательно скринспейсовые. Тоже через буфер кадра.
Просто не рви жопу и не пытайся в йоба ААА графон. Сделай хотя бы уровень скайрима с пс3 и успокойся на этом.
О, интересная хуйня. Впервые слышу.
>Просто не рви жопу и не пытайся в йоба ААА графон.
Как оказалось, мне веселее всего вот так вот рвать жопу.
> Это надо быть С++ сеньором, чтобы такое смочь.
Разве не GLSL-сеньором нужно быть? Разве не на шейдерах это всё делается?
>Разве не GLSL-сеньором нужно быть? Разве не на шейдерах это всё делается?
А разве глсл не частный случай сиплюсов?
я спишу это на техническую неисправность - мод тыкнул не туда и удалил мой пост с пометкой "шитпостинг" - вряд ли взрослый дееспособный человек, который обеспечивает себя сам, может посчитать это "шитпостингом" - вместо того чтобы почистить обсуждение нейрокала
теперь дублирую совет, другими словами:
не надо учиться программировать, если ты художник
бери деньги (зарабатывай, бери в кредит, бери у родителей) и нанимай людей
на энтузиазме для начала можно, но при условиях строгой дисциплины
задалбывать не нужно, нужно находить адекватов и ставить чёткие задания и сроки
всегда есть риск нарваться на неадекватов (вроде тех, что абу нанимает на модеров) - когда вместо цели СРУБИТЬ ДЕНЕГ, людям кажется важным вымещать свои личные обиды, хамить
>>6131
нет, смотри, вот действительно тупой совет: >>6080
>английский для меня пока проблема на слух переводить
Дам два совета. Хороший совет - учи английский, везде пригодится. Плохой совет - яндекс-браузер имеет встроенный нейропереводчик-озвучик видосов с ютуба, а на ютубе полно видеогайдов. На тех видео что я его проверял работал идеально.
>я такие кодовые говна разбирал
Ну то есть у тебя хорошо прокачан навык чтения кода. Это вообще у самоучек редкий навык, и он не качается у анонов, пилящих игры в соляну. Так что да, для многих задача понять, что же там нейронка высрала, может занять больше времени, чем написать код с нуля самостоятельно.
Конечно, если анон захочет работать кодером, ему придётся прокачивать навык чтения чужого говнокода.
>>6377
>А разве глсл не частный случай сиплюсов?
Скорее уж частный случай Си.
>>6343
На ютубе Acerola рассказывал, как сделать шейдерную траву. Конкретно его реализация была вроде бы на юнити, но общие принципы движконезависимые, тем более он там конкретного кода не давал. Какой-то один видос не скину, у него там несколько по теме; и вообще весь канал в целом о шейдерах.
>>6333
>на рутрекере гайды по годоту
Хуясе извращение.
Ты даешь хуевый совет, программирование это очень просто, особенно на гдскрипте, база осваивается за месяц, потом постепенно находятся материалы на все продивнутое. Если ты таким образом пытаешься прорекламироваться чтобы тебя наняли, то ты выбрал неверную тактику запугивания сложностью.
Ничего, в основном просто фиксят баги.

прекрасно сам понимаю что для лучшего результата кодингом нужно заниматься не мне, но влазить в долги не буду - принцип. либо своими ручками, либо уже никак. как я и писал, пробовал начинать работу с "якобы" погромистами, по итогу блять улетел гораздо дальше по прогрессу сам, без знаний о программировании в целом.
совет годный в общем, но вряд-ли я им воспользуюсь к сожалению. буду хуярить только на своей тяге

не думаю что он смотрится дорого богато потому что каждая вторая индюшка которая вырывается в стим (имхо) имеет либо такую же графику, либо ещё лучше и стилизованнее. но в любом случае спасибо)
мой инвентарь кста выглядит вот так, так и не смог сделать превьюху при перемещении предмета (я кажется уже писал про это лол) (кнопку use вывел для отладки, потом её заменит чисто клик правой мышкой)
Да шикарно смотрится уже и это я так понимаю не финал, думаю со временем будет еще лучше - опыт он такой ахаха имеет накопительный эффект.
Возможно тут описано нечто подобное
https://gamedev.ru/code/forum/?id=197755
Скринспейс трава используется в Farming Simulator и описана в книге GPU Pro 5
Здесь не читал, но чел вроде бы тоже говорит о траве как "пост процесс эффекте размазывания уже отрендеренной картинки" https://echoesofsomewhere.com/2023/02/19/very-experimental-grass-system/
Еще натыкался на технику из POE
https://gamedev.ru/code/forum/?id=243306
https://gamedev.ru/code/forum/?id=246320
Но она вроде подходит только для вида сверху. Хотя может можно скомбинировать используя для средней дальности.
На GDC есть какой то доклад как работает трава в Ghost of Tsushima: youtube.com/watch?v=Ibe1JBF5i5Y
Какие то индусы придумали рисовать траву нейросетью
Real-time View-Space Grass Generation for Video Games
Правда хз будет ли это работать в движении
Тут довольно подробная статья то что можно назвать "классический" рендер травы как обычно в годоте в аддонах, может что-то прояснит https://gpuopen.com/learn/mesh_shaders/mesh_shaders-procedural_grass_rendering/
а я все еще не нашел время водичку доделать
Ну 3.6 долго не было, 2 года что ли, было много бэкпортированных вусных фич и своих фич только для тройки.
авторские :) не хотелось в случае чего ебстись с лицензиями и прочим, поэтому просто вручную сделал в aseprite посматривая на те которые существуют, потом знакомому скинул, он там как-то из этого сделал именно шрифт.
а ваще пиксельные шрифты все друг на друга похожи, может если поищешь найдешь почти такой же по виду шрифт :)
спасибо бро) графика вся уже нарисована, вряд-ли я ещё буду что-то дорисовывать или типа того. возможно в следующих проектах действительно где-то получше будет, но в этой конкретно игре уже вряд-ли :)

Не он, а его знакомый, который из пикч шревты собирает. Вот это тру магия. Я как-то полез в древний шрифт Academy букву ё приделать (потому что сделан был неёделами в доёйные времена). Полез и охуел от сложностей и подводных камней.
я тоже охуел как это сложно, пытался сам, логически то это ничего сложного (для пиксельного шрифта по крайней мере) а оказалось что это пиздец какая залупа
GDScript очень хорош для задач, ради которых он был создан. Все "удобства", которых тебе не хватает - это излишества. Это как наесться до отвала кашей и жаловаться, что ты не мог нажраться пироженных. Голодным точно не помрёшь, так на что жаловаться?
>У гдс так-то тоже сборка мусора есть
Как работает GDScript:
1. Счётчик ссылок уменьшился до 0? Освобождаем.
Как работает C#/.NET:
1. Что, опять насрал в памяти? Молодец. Жди.
2. 5 hours later...
3. Откуда 16 Гб мусора на 8 Гб физической памяти?
4. Таааак... Какие-то ссылки недоступны... Хммм...
5. (Приложение не приложение, остановить?)
6. Всё, вычистил весь мусор. Я спать. Ты срать?
Да уж, и правда "удобство" дотнета. Киллерфича.
Даже аффтар C# сказал, что это было ошибкой...
>в чем проблема прочитать код нейронки
Проблемы прочитать код от нейронки нет.
Проблемы написать код как у нейронки тоже нет.
Есть проблема, что нейронка не решает реальные проблемы: проверку кода на очевидные (для мясного мешка) проблемы, обновление кода и т.д. Хайп вокруг "агентов" не внушает доверия, потому что под капотом по-прежнему Transformer, а это тупиковая архитектура, далёкая до реальной работы мясного мозга. Нужен искусственный человек, а не бредогенератор.
>с# веб отсутствует, что для меня важно.
Делаешь браузерную 2D ММО в стиле 00-х? Имхо, браузерные платформы умирают - большинство пользователей давно перешли на мессенджеры и в приложения социальных сетей, и большинство "игр" представляют собой общение с LLM чатботом... Из площадок для веб-игр кто остался? Яндекс? Лол.
>>6315
>сделаю две игры и начну третью
Ассетфлипные клоны существующих? Охотно верю.
Реально оригинальные, достойные игры? Вряд ли.
Вопрос: зачем делать клоны существующих игр?
Заполнят ли эти игры пустоту в твоём сердце?
Или тебя заботит только пустота в кошельке?
Понимаешь, уже давно люди могут делать по 100 игр ежегодно в соло, без каких-либо нейросетей и даже скачивания ассетов/библиотек кода. Это реально. Но наделяет ли эта деятельность твою жизнь смыслом?
GDScript очень хорош для задач, ради которых он был создан. Все "удобства", которых тебе не хватает - это излишества. Это как наесться до отвала кашей и жаловаться, что ты не мог нажраться пироженных. Голодным точно не помрёшь, так на что жаловаться?
>У гдс так-то тоже сборка мусора есть
Как работает GDScript:
1. Счётчик ссылок уменьшился до 0? Освобождаем.
Как работает C#/.NET:
1. Что, опять насрал в памяти? Молодец. Жди.
2. 5 hours later...
3. Откуда 16 Гб мусора на 8 Гб физической памяти?
4. Таааак... Какие-то ссылки недоступны... Хммм...
5. (Приложение не приложение, остановить?)
6. Всё, вычистил весь мусор. Я спать. Ты срать?
Да уж, и правда "удобство" дотнета. Киллерфича.
Даже аффтар C# сказал, что это было ошибкой...
>в чем проблема прочитать код нейронки
Проблемы прочитать код от нейронки нет.
Проблемы написать код как у нейронки тоже нет.
Есть проблема, что нейронка не решает реальные проблемы: проверку кода на очевидные (для мясного мешка) проблемы, обновление кода и т.д. Хайп вокруг "агентов" не внушает доверия, потому что под капотом по-прежнему Transformer, а это тупиковая архитектура, далёкая до реальной работы мясного мозга. Нужен искусственный человек, а не бредогенератор.
>с# веб отсутствует, что для меня важно.
Делаешь браузерную 2D ММО в стиле 00-х? Имхо, браузерные платформы умирают - большинство пользователей давно перешли на мессенджеры и в приложения социальных сетей, и большинство "игр" представляют собой общение с LLM чатботом... Из площадок для веб-игр кто остался? Яндекс? Лол.
>>6315
>сделаю две игры и начну третью
Ассетфлипные клоны существующих? Охотно верю.
Реально оригинальные, достойные игры? Вряд ли.
Вопрос: зачем делать клоны существующих игр?
Заполнят ли эти игры пустоту в твоём сердце?
Или тебя заботит только пустота в кошельке?
Понимаешь, уже давно люди могут делать по 100 игр ежегодно в соло, без каких-либо нейросетей и даже скачивания ассетов/библиотек кода. Это реально. Но наделяет ли эта деятельность твою жизнь смыслом?
Я в целом с тобой согласен, кроме одного, подсчёт ссылок не всеми считается сборкой мусора. Потому что сборщика мусора как такового нет. Однако сборщик мусора как таковой есть. И он реализован прямо в базовом объекте, реализующем высвобождение путём подсчёта ссылок. Таким образом лично я не считаю объекты с подсчётом ссылок реализующими шаблон сборки мусора. Они не действуют по расписанию, они действуют событийно: прошло событие "уменьшить счётчик ссылок" экземпляр проверился на ноль ссылок. Есть ноль? Экземпляр высвобождает сам себя, сразу же.
>>6435
Не, задизайнить качественный шрифт гораздо труднее чем его собрать. Дохуя глубокой теории, без которой читаемость шрифта будет на дне. А нарисовать хоть онлайн можно - https://www.pentacom.jp/pentacom/bitfontmaker2/ - половина пиксельных шрифтов сделана в этой штуке. Выбираешь буковку и рисуешь пиксели, потом указываешь спейсинги и скачиваешь ttf, все.
Только зачем конвертировать пиксельный шрифт в ttf? Есть аддоны чтобы выводить сразу пиксельные (а в 3 есть нативная поддержка fnt формата BMFont, по докам написано что и в 4ке тоже, не проверял - он довольно примитивный, я аж 5,5 лет назад писал инструкцию и скриптик https://2ch.life/gd/arch/2021-06-06/res/635427.html#639619
TTF универсальней, с ним проще работать в любом произвольном движке или не движке (например в aseprite). Если пройтись по итчу по пиксель шрифтам то почти все они ttf. Среди них и мой валяется, лол, заработал на нем аж 30 баксов.
Алсо, если нужен пиксельный с поддержкой кучи алфавитов, для локализаций, то посоветую вот этот как самый полный: https://poppyworks.itch.io/silver
В aseprite пользоваться шрифтами адский гемор. Битмапный и тут будет проще. просто копипастишь нужные буковки и все (если по сетке выделение то пара кликов). Честно говоря задача куда то наглухо вписывать текст, а не выводить его - настолько редкая, что даже не помню когда понадобилось (кроме экрана заставки один раз). Это еще и вредно для локализации. А выводится он элементарно, это буквально десяток строк кода после того как закодил вывод спрайтов.
На все твои тейки про мусор в шарпе я могу тебе посоветовать только читать документацию. Узнать например, что такое IDisposable, SafeHandle, (span + ref struct в 4 годоте), как с их помощью минимизировать работу gc, а не просто течь нахуй как этим любит заниматься гдс. Ты на шарпе можешь буквально косплеить с++ без макросов с соответственной производительностью, если есть желание, а если не хочешь косплеить - выше я написал куда смотреть. Мне похуй что там сказал автор с#, лучшего подхода к сборке мусора пока еще не придумали, либо сам чисти вилкой либо отдавай на откуп gc. Лучше бы про LOH набросил, куда более благодатная тема, правда не в контексте gds vs c#, первый слишком хуйня даже в этом случае.
>Все "удобства", которых тебе не хватает - это излишества.
Согласен, впизду этот сахар, будем терпеть варианты вместо аллокаций согласно типу, будем руками маппить данные, дублировать код потому что методов расширения нет, руками проверять типы, не иметь возможности гарантировать что у нас всё не пойдет по пизде потому что нет строгой типизации, терпеть, терпеть и еще раз терпеть. И в качестве вишенки - непереносимость за пределами годот инфраструктуры. Да не вопрос, кого такой расклад устраивает - скатертью дорога. Меня - не устраивает. Мой игровой фреймворк написан так чтобы работать и в юнити и в годот, а если будет надо - еще добавлю кого-нибудь.
>Есть проблема, что нейронка не решает реальные проблемы: проверку кода на очевидные (для мясного мешка) проблемы, обновление кода и т.д.
Бляяя. Вы меня шоколадным глазом читаете? Ну вот просто покажи где я сказал что нужно каждый пук нейронки немедленно коммитить в кодобазу без контроля. Что один пришел наманяфантазировал, что второй.
>Делаешь браузерную 2D ММО в стиле 00-х?
2д 3/4 вампайрсурвайвер, хочу прощупать пределы годота в вебе.
>Ассетфлипные клоны существующих? Охотно верю.
Реально оригинальные, достойные игры? Вряд ли.
Это такая шутка? Найди реально оригинальную игру в 2025. Любая игра вышедшая уже существовала в том или ином виде и пережила сотни клонов, у некоторых и вовсе клонов сотни тысяч, но ГПшных серунов это не останавливает и как показывает практика - не напрастно. Впрочем я этим занят пока не из-за денег, просто хобби, но надеюсь выйдет в итоге что-то интересное.
>Но наделяет ли эта деятельность твою жизнь смыслом?
Нихуя ты платон блять. Еще поди людей осуждаешь и ярлыки развешиваешь направо и налево.
На все твои тейки про мусор в шарпе я могу тебе посоветовать только читать документацию. Узнать например, что такое IDisposable, SafeHandle, (span + ref struct в 4 годоте), как с их помощью минимизировать работу gc, а не просто течь нахуй как этим любит заниматься гдс. Ты на шарпе можешь буквально косплеить с++ без макросов с соответственной производительностью, если есть желание, а если не хочешь косплеить - выше я написал куда смотреть. Мне похуй что там сказал автор с#, лучшего подхода к сборке мусора пока еще не придумали, либо сам чисти вилкой либо отдавай на откуп gc. Лучше бы про LOH набросил, куда более благодатная тема, правда не в контексте gds vs c#, первый слишком хуйня даже в этом случае.
>Все "удобства", которых тебе не хватает - это излишества.
Согласен, впизду этот сахар, будем терпеть варианты вместо аллокаций согласно типу, будем руками маппить данные, дублировать код потому что методов расширения нет, руками проверять типы, не иметь возможности гарантировать что у нас всё не пойдет по пизде потому что нет строгой типизации, терпеть, терпеть и еще раз терпеть. И в качестве вишенки - непереносимость за пределами годот инфраструктуры. Да не вопрос, кого такой расклад устраивает - скатертью дорога. Меня - не устраивает. Мой игровой фреймворк написан так чтобы работать и в юнити и в годот, а если будет надо - еще добавлю кого-нибудь.
>Есть проблема, что нейронка не решает реальные проблемы: проверку кода на очевидные (для мясного мешка) проблемы, обновление кода и т.д.
Бляяя. Вы меня шоколадным глазом читаете? Ну вот просто покажи где я сказал что нужно каждый пук нейронки немедленно коммитить в кодобазу без контроля. Что один пришел наманяфантазировал, что второй.
>Делаешь браузерную 2D ММО в стиле 00-х?
2д 3/4 вампайрсурвайвер, хочу прощупать пределы годота в вебе.
>Ассетфлипные клоны существующих? Охотно верю.
Реально оригинальные, достойные игры? Вряд ли.
Это такая шутка? Найди реально оригинальную игру в 2025. Любая игра вышедшая уже существовала в том или ином виде и пережила сотни клонов, у некоторых и вовсе клонов сотни тысяч, но ГПшных серунов это не останавливает и как показывает практика - не напрастно. Впрочем я этим занят пока не из-за денег, просто хобби, но надеюсь выйдет в итоге что-то интересное.
>Но наделяет ли эта деятельность твою жизнь смыслом?
Нихуя ты платон блять. Еще поди людей осуждаешь и ярлыки развешиваешь направо и налево.
Не кормим.
>без разбивания ТРАВЫ на чанки
А в чём проблема делить траву на чанки с LODами? Честно, сам я нормальную траву пока не делал, но в популярных ААА трава делится на заметные чанки...
Как я это вижу:
- 1 чанк травы == 1 мультимеш;
- чем дальше - тем меньше инстансов;
- анимация только у чанков вокруг игрока;
- самые дальние деградируют в ландшафт;
- цвет ландшафта совпадает с цветом травы.
Можно всё автоматизировать, но если у тебя карты статичные, то и вручную расставить не проблема. И главное не париться слишком сильно - игрок всё это проигнорирует скорее всего. Сделай тян с большими бидонами и булками - всем будет наплевать на траву.
Про что у тебя игра хоть? Про собирательство трав?
>посоветовать только читать документацию
Зачем что-то читать, когда можно копипастить? Как вайбкодер ты должен осознавать, что чтение - это уже прошлый век, нейронки читают всё вместо тебя. Как пример, сейчас все книги загоняют в нейронку, чтоб перечитывать труды древних хомо сапиенсов в более понятном формате твитов. Не отставай от прогресса.
>минимизировать работу gc
>буквально косплеить с++ без макросов
Зачем извращаться с затыканием дырок GC и всё без макросов, если можно с макросами и не извращаться?
>лучшего подхода к сборке мусора пока еще не придумали, либо сам чисти вилкой
А в чём проблема убирать мусор за собой? Пример:
>function ... // объявляем функцию/метод
>var thing: Thing; // заявляем, что нужно для работы
>begin // заходим в блок кода как к себе домой
>_ thing := Thing.create; // делаем новый объект
>_ result := thing.work; // используем объект
>_ thing.free; // избавляемся от нашего объекта
>end; // выходим из блока: ничего лишнего нет
GC избавляет тебя от ОДНОЙ строчки. Зачем? Забываешь вызвать ОДИН метод у объекта?
>Мой игровой фреймворк
Понимаю, о чём ты, сам что-то такое планировал, но в результате понял, что лучше Godot+GDScript ничего не предвидится в ближайшем будущем геймдева. Когда появится что-то новое, твой фреймворк скорее всего устареет точно так же, как и все игровые движки...
>вампайрсурвайвер
А ты не опоздал? Хайп, вроде, прошёл уже. Базовые механики расползлись по многим жанрам игр, но оригинальная 2D игра вряд ли кого-то привлекает. Аналогичная мутация произошла с рогаликами: все элементы рогалика людям нравятся и очень широко применяются, но классические рогалики не нужны.
>хочу прощупать пределы годота в вебе
Предел годота в вебе примерно равен пределу всех остальных мейнстримных движков: формально ты приложение сделал, но юзать его - мазохизм... Веб разработчик хуже ассетфлипера стимовского, имхо; ассетфлип ты хотя бы в нативном exe скачиваешь, а браузерная подделка едва работает, крашит браузер целиком и сдохнет вместе с хостером/интернетом.
Конпелируй на нативные платформы, если хочешь остаться в истории как разработчик какой-то игры.
>Любая игра вышедшая уже существовала
Пример тупого клонирования 1-в-1:
https://store.steampowered.com/app/2625420/
https://store.steampowered.com/app/1017180/
Вкратце, разработчик оригинала внезапно помер, но клонированная версия тупо 1-в-1 слизывает, тупо 0 осмысленных нововведений, как будто это какая-то автоматическая система. Что-то типа GTA Trilogy получается, только без разрешения автора.
По-твоему, это нормально? Это имеет смысл? Может, намного лучше было бы иметь опенсурсную GPL игру и поддерживать её силами комьюнити, а не высирать потешные ассетфлипы один за другим, которые потом забрасываются из-за нерентабельности или ещё чего?
Самое смешное, что разрабы клона хейтят моды. Лол. Наверняка планируют сделать нарезку тупых DLC по стоимости полной игры за 3.5 новых текстурки.
Вот из-за всего этого геймдев и умирает...
>Впрочем я этим занят пока не из-за денег, просто хобби, но надеюсь выйдет в итоге что-то интересное.
Молодец. Играешь в свою игру? Нравится играть? Интересно просто, ведь на код ты меньше времени (с твоих же слов) тратишь, значит, можешь играть чаще. Лично у меня плейтест занимает больше, чем код...
Ладно. Я сейчас в депрессии, не бери в голову...
>посоветовать только читать документацию
Зачем что-то читать, когда можно копипастить? Как вайбкодер ты должен осознавать, что чтение - это уже прошлый век, нейронки читают всё вместо тебя. Как пример, сейчас все книги загоняют в нейронку, чтоб перечитывать труды древних хомо сапиенсов в более понятном формате твитов. Не отставай от прогресса.
>минимизировать работу gc
>буквально косплеить с++ без макросов
Зачем извращаться с затыканием дырок GC и всё без макросов, если можно с макросами и не извращаться?
>лучшего подхода к сборке мусора пока еще не придумали, либо сам чисти вилкой
А в чём проблема убирать мусор за собой? Пример:
>function ... // объявляем функцию/метод
>var thing: Thing; // заявляем, что нужно для работы
>begin // заходим в блок кода как к себе домой
>_ thing := Thing.create; // делаем новый объект
>_ result := thing.work; // используем объект
>_ thing.free; // избавляемся от нашего объекта
>end; // выходим из блока: ничего лишнего нет
GC избавляет тебя от ОДНОЙ строчки. Зачем? Забываешь вызвать ОДИН метод у объекта?
>Мой игровой фреймворк
Понимаю, о чём ты, сам что-то такое планировал, но в результате понял, что лучше Godot+GDScript ничего не предвидится в ближайшем будущем геймдева. Когда появится что-то новое, твой фреймворк скорее всего устареет точно так же, как и все игровые движки...
>вампайрсурвайвер
А ты не опоздал? Хайп, вроде, прошёл уже. Базовые механики расползлись по многим жанрам игр, но оригинальная 2D игра вряд ли кого-то привлекает. Аналогичная мутация произошла с рогаликами: все элементы рогалика людям нравятся и очень широко применяются, но классические рогалики не нужны.
>хочу прощупать пределы годота в вебе
Предел годота в вебе примерно равен пределу всех остальных мейнстримных движков: формально ты приложение сделал, но юзать его - мазохизм... Веб разработчик хуже ассетфлипера стимовского, имхо; ассетфлип ты хотя бы в нативном exe скачиваешь, а браузерная подделка едва работает, крашит браузер целиком и сдохнет вместе с хостером/интернетом.
Конпелируй на нативные платформы, если хочешь остаться в истории как разработчик какой-то игры.
>Любая игра вышедшая уже существовала
Пример тупого клонирования 1-в-1:
https://store.steampowered.com/app/2625420/
https://store.steampowered.com/app/1017180/
Вкратце, разработчик оригинала внезапно помер, но клонированная версия тупо 1-в-1 слизывает, тупо 0 осмысленных нововведений, как будто это какая-то автоматическая система. Что-то типа GTA Trilogy получается, только без разрешения автора.
По-твоему, это нормально? Это имеет смысл? Может, намного лучше было бы иметь опенсурсную GPL игру и поддерживать её силами комьюнити, а не высирать потешные ассетфлипы один за другим, которые потом забрасываются из-за нерентабельности или ещё чего?
Самое смешное, что разрабы клона хейтят моды. Лол. Наверняка планируют сделать нарезку тупых DLC по стоимости полной игры за 3.5 новых текстурки.
Вот из-за всего этого геймдев и умирает...
>Впрочем я этим занят пока не из-за денег, просто хобби, но надеюсь выйдет в итоге что-то интересное.
Молодец. Играешь в свою игру? Нравится играть? Интересно просто, ведь на код ты меньше времени (с твоих же слов) тратишь, значит, можешь играть чаще. Лично у меня плейтест занимает больше, чем код...
Ладно. Я сейчас в депрессии, не бери в голову...
Я бы подумал что это нейронка отвечает, но даже нейронки не такие тупые.
>Зачем извращаться с затыканием дырок GC и всё без макросов, если можно с макросами и не извращаться?
Шиз, ты где макросы в гдс рассмотрел?
>А в чём проблема убирать мусор за собой?
Шиз х2, я тебе показал как за собой убирать в шарпе
>Когда появится что-то новое, твой фреймворк скорее всего устареет точно так же, как и все игровые движки...
За три года все никак не устареет, большое спасибо паджитам - и дальше будет только моложе.
>ты не опоздал? Хайп, вроде, прошёл уже.
Шиз х3, я написал что это хобби блять, не для денег. Я делаю игры не для денег (пока).
>Предел годота в вебе примерно равен пределу...
Шиз х4, ты нахуя это высрал? Примерности ебаные себе оставь, и пиши по делу. Я в браузере запускал годот бенчи, они там охуенно работали на машинах уровня печатная машинка. Есть вебфишинг в стиме, 3д веб игра на годоте, еще и онлайн.
Остальной понос даже комментировать не буду, попроси врача поменять таблетки, с текущими беда.
И что тебя смущает в большой Area? Тут налог за площадь не надо платить.
Если хочется обоптимизироваться, можешь считать координаты, чанки, или рейкасты в материал по которому ходишь.
Благословляешь меня на большой Area?
Анонимус разрешает. Делай.

>рогалик про подземелья, именно реалтайм, не пошаговый
Это не рогалик, а скорее всего hack n slash / action rpg. Рогалик по определению одновременно-пошаговый и клеточный.
Хуле спите, вам там биг фичерс везут, 4.5 уже в бете.

забавно, но если в .exe-шник будет встроенный PCK, то после сжатия через упомянутый upx, программа не запустится, ибо PCK просто удалится
что думает анон об этом? как ещё уменьшить размер билда?
Пересобрать движок или экспорт темплейты только с нужными тебе фичами.
На UPX вроде антивири возбуждаются.
>from sources across the web
В основном это порриджи раздают тэги "рогалик" в стиме, потому что слово модное, как десять лет назад "инди". По факту уже в первой игре в твоём списке от рогалика ничего нет: нет пермасмерти, нет пошаговости, нет вида сверху, нет привязки к сетке - обычный платформер с прогрессом. Почему он рогалик?

Ты буквально обосрался, приведя в качестве пруфа нейросетевой высер гугла. Напомню что он приписывает Clair Obscur к инди, при этом этот ответ находится прямо между выдачами где написано что это не инди.

Да норм. Я у себя для похожих областей еще большой меш накидываю с proximity fade, выглядит почти как объемный туман. Потом моросящий дождик через партикли, пару ассетов готовых и вот вам иммерсив сим/хоррор.
Одни и те же карты и одни и те же враги с побочной прогрессией. И что значит нет пермасмерти? При смерти теряется весь лут кроме скиллов и апгрейдов, это вполне себе пермасмерть. Если вообще не будет побочной прокачки как в классическом рогалике - удержание будет такое же классическое, то есть никакое, игрок убьет главного босса и просто дропнет игру. При чем в случае дедцеллса он это может сделать еще до исхода времени рефанда.
>playback can only happen when a node is inside the scene tree
Где я проебался? Ну заебало уже в щи
Хуя, человек который шапки читает.
Если ты создаёшь ноды в коде сделай простейшую утилиту-функцию, которая пихает ноду в дерево и конвеерно возвращает её же. Чтобы работали внутридеревянные свойства.
> func treefy(n: Node):
> > get_tree().root.add_child.call_deferred(n)
> > return n
И далее уже где-то в своём коде:
> var my_obj : MyClass = treefy(MyClass.new(a, b, c))
>Одни и те же карты и одни и те же враги с побочной прогрессией
Это что характеристика рогалика теперь? Path of exile и Zelda тоже теперь рогалики получается. В первом даже пермасмерть есть.
А пермасмерти в дед селлз нет, ты там литерали возвращаешься на старт с золотом и сохраняешь весь лут в конце каждого уровня.
Я создал трек в одной сцене, и копировал-вставлял в каждую сцену один и тот же трек audiostreamplayer с autoplay, и мне казалось что проблемка в этом, но походу нихуя...
Попробуй сменить браузер, у меня работает http://www.feineigle.com/book_reports/2023/godot_4_game_dev/Godot_4_Game_Development_Projects_-_Build_five_cross-platform_2D_and_3D_games_2ed_2023.pdf
Научись пользоваться компьютером. У тебя вечно что-то то не скачивается то не открывается.

Наверняка есть, это ж опенсорс. Найти место где загружается файл и загрузить сам exe но со смещением.
>кодить придётся много
Зависит от игры. Для визуальной новеллы без всяких сложных миниигр и анимаций SDL хватит. Для чего-то трёхмерного SDL вообще не даёт преимуществ - даже банальных теней нет, сам изобретай как хочешь.
>полный контроль под рукой
Godot такой же опенсурс, как и SDL.
Я имел опыт с обоими (SDL2, G3.X/G4.X), так что:
SDL - если нужна тонкая прослойка для общения с мультимедиа девайсами кроссплатформенно. Играм подходит только если это что-то очень простое, а для сложных потребуются многие другие библиотеки.
Godot - если нужен швейцарский нож на все случаи разработки, но при этом относительно компактный и относительно быстрый. Лучше всего подходит для прототипирования игр средней сложности, т.к. для простейших игр - оверкилл, а для сложнейших мало встроенных решений/наёмных специалистов.
Ту же визуальную новеллу на Godot имеет смысл разрабатывать только если хочется сделать её более необычной, чем 99% историй с картинками на RenPy.
>после сжатия от upx
Зачем сжимать exe? На ПК никого уже не волнует вес приложений, у всех >1 ТБ под игрушки даже на старых ноутбуках. Тем более что сжатие UPX детектится (false positive) некоторыми популярными антивирусами; как минимум в прошлом это был способ прятать вирусы.
>прикрепить pck
Зачем тебе это? Встраивание pck в exe не даёт никаких преимуществ, всё извлекается при желании. Как мне кажется, встраивание pck усложняет обновление игры, особенно если хочешь реализовать автообновление (маленький pck загружает несколько из интернета).
Благодарю за отзыв. В целом я изначально прицелился именно на годот, но мне кажется я пососу с производительностью, поскольку все подобные моей игры сделанные на движке сосут, а на фреймворках не сосут. Примерно так.
Может я попробую SDL и приползу к вам обратно.
Напомню ещё: как минимум на Windows все exe имеют лимит в 4 ГБ и обычно загружаются в RAM целиком:
https://superuser.com/questions/667593/
Думаешь, твоя 2D игра никогда не будет весить больше четырёх гигабайт? Качественные текстуры занимают довольно много, а в 2D анимация часто покадровая. Я видел много 2D игр весом больше десяти гигабайт.
Думаешь, тебе никогда не потребуется загружать твои ресурсы частями? Ресурсы в pck могут быть сжаты и разворачиваются в полноценные объекты в памяти, поэтому загружать их все нерационально. Если игра в сжатом виде весит 4 ГБ, в RAM может занять >8 ГБ. Т.е. даже для 2D игрушки может потребоваться стриминг ресурсов, если ты хочешь оптимизировать по памяти.
Так что упаковка pck в exe в принципе малополезна.
>поскольку все подобные моей игры сделанные на движке сосут, а на фреймворках не сосут.
Во-первых, что за игра? Жанр, графика?
Во-вторых, ты не учитываешь навыки разработчика.
https://en.wikipedia.org/wiki/Survivorship_bias
Чем больше попыток, тем чаще успех, но чтобы просто попытаться нужно сначала выкатиться в инструмент.
На готовом игровом движке намного проще делать собственные игры, т.е. порог входа ощутимо ниже -> большинство новичков начинают с этого и поэтому достаточно много примеров неудачных попыток.
Без движка игры делать сложно, т.к. приходится знать тонкости работы игровых движков и делать самому, а следовательно порог входа высокий -> мало попыток, большинство успешных у опытных разработчиков или чрезвычайно усидчивых и настойчивых. Не все смогут вытерпеть, дойти до релиза и стать популярными.
Т.е. мы видим много кривых поделок на движках от абсолютных новичков, но не видим миллионы папок с незавершёнными проектами без игрового движка.
Да, я пытался сделать свой движок/игру на SDL...
Также ты можешь провести быстрый стресс-тест, для примера, наспамить на карту несколько сотен юнитов. Естественно, самый простой метод, которому тебя в туториалах учат, будет самым медленным: тут нужны оптимизации. Но на фреймворке у тебя нет простого метода спавна юнита, ты сам делаешь оптимизации с самого начала... Или не делаешь и всё тормозит.
Или другой пример: воксели. Если ты просто будешь размещать MeshInstance + StaticBody + CollisionShape, естественно всё будет тормозить после всего лишь нескольких тысяч кубиков. Воксельные игры всегда требуют тонких оптимизаций рендера и физики. Эти оптимизации можно сделать и в рамках Godot (C++), однако, без движка ты даже один кубик будешь долго выводить, т.к. нужно написать все классы с нуля...
Т.е. движки дают инструменты для простого решения популярных и/или специфических задач (есть особые воксельные движки, хотя воксели непопулярны), но конкретные задачи могут требовать особых решений. Избавляться ли от движка ради особого решения? Это зависит от того, является ли оно единственным - т.е. пригодятся ли другие инструменты движка.
Лично мне Godot помогал достаточно, т.е. я сейчас не вижу смысла отказываться от его удобств ради некой потенциальной оптимизации... Кстати, оптимизации - всегда жертва чем-то в пользу чего-то: если ты что-то сжимаешь, ты либо теряешь качество, либо скорость; ускорение теряет либо место в памяти, либо точность; низкоуровневый код снижает читаемость; статичная типизация уменьшает пластичность кода и т.д. Проще говоря, тормозящая игра лучше несуществующей.
Да в чем твоя проблема? Баг не можешь найти?
>>6591
>Во-первых, что за игра? Жанр, графика?
>>6596
>Или другой пример: воксели. Если ты просто будешь размещать MeshInstance + StaticBody + CollisionShape, естественно всё будет тормозить после всего лишь нескольких тысяч кубиков. Воксельные игры всегда требуют тонких оптимизаций рендера и физики. Эти оптимизации можно сделать и в рамках Godot (C++), однако, без движка ты даже один кубик будешь долго выводить, т.к. нужно написать все классы с нуля...
Хех, почти. Не кубы, а квадраты как в террарии. И по прикидкам пара сотен или около тысячи юнитов с пасфайдингом, коллизиями и полной автономией как в дварф фортрессе. Думаю на годоте тоже можно, но это надо ЗНАТЬ все нюансы, а туториалы в основном такое не показывают, это надо знать что искать. И у меня такое ощущение, что в конечном итоге все равно придётся писать на C++ даже в годоте https://youtu.be/hZvCCvo3AHc
>придется area3d делать большими
Большая Area снизит производительность только если взаимодействует со множеством других физических сущностей. Чтобы Area игнорировала всё лишнее (т.е. ландшафт, мобов, транспорт и т.д.), достаточно будет настроить ей и игроку слои и/или маски, например:
>Игрок - слой: player; маска: ... (тут не важно)
>Area музыки, слой: нет (не нужна); маска: player.
Тогда эта Area будет следить только за игроком.
Вообще рекомендую сразу пларировать и настраивать соответствующие слои и маски, т.к. это может сильно повлиять на производительность в будущем. Пример: если тебе нужен подвижный мусор на карте, он должен контактировать с полом, но не с игроком, поэтому для игрока можно снять галочку с маски, соответствующей физическому слою мусора на карте, а с мусора - игрока.
Также замечу, что события входа/выхода в Area3D не всегда срабатывают когда ты их ожидаешь, там есть некоторые нюансы. Не помню точно, какие, но у меня получалось попасть внутрь Area3D без срабатывания. Возможно, это был баг и его уже исправили...
> надо ЗНАТЬ все нюансы
Могу рассказать тебе один нюанс, который узнал недавно. Так и соберём их все.
Так вот, нюанс. Есть огромная толпа с кучей ботов, каждый из которых двигается по своему пути, и все эти боты - один мультимеш, который просто инстансы одной модельки бота рисует за один дравколл. И движение всех инстансов рассчитывает по формуле один ИИ-агент (который может быть скриптом этого мультимеша). В итоге - куча народу, а нода в дереве по сути одна. И если один или несколько ботов из этой толпы нужен игроку для интерактива, он вычитается из мультимеша и в том же кадре создаётся отдельная нода-бот со своим ИИ.
Кто узнал описание, тот молодец, а кто не узнал - те узнают.
Че это, инстансинг?
>Не помню точно, какие, но у меня получалось попасть внутрь Area3D без срабатывания. Возможно, это был баг и его уже исправили...
Тоже бывало. Вроде из-за "телепорта", когда тупо меняешь объекту позицию, и новая позиция оказывается полностью внутри area3d.
Узнал. Спасибо.
>огромная толпа
>мультимеш
Имеет смысл только для стратегий с видом сверху.
>за один дравколл
На Vulkan у тебя в любом случае один дроуколл если использовать один материал для всех персонажей... Наверное... По крайней мере, для статики это так. С анимациями, как я понимаю, нужны LOD самих этих анимаций, т.е. уменьшать частоту кадров вдалеке.
Фатальный недостаток мультимеша: он рендерит всё одновременно с одинаковой плотностью сетки, т.е. в определённых ситуациях будет нагружать больше, чем банальный спам обычных мешей с LODами.
>>6605
>прямо цепочки костей в шейдере считались и IK
И как, сильно помогает такой шейдер на GTX 750 Ti (встроенной графике, мобильной графике и т.д.)? Наоптимизируетесь так, что игра не запустится... Отключаешь IK для своей толпы зомби и всё. Кому интересно наблюдать, как толпа зомби аккуратно выставляет свои ножки на камушки на дороге?.. Оптимизация должна быть как JPEG - терять то, что конечному потребителю как правило не нужно, а не перекладывать задачу на ещё более слабое железо.
>>6599
Что-то типа Oxygen Not Included? Она на Unity. Карта, насколько я понимаю, меньше, чем в Terraria, и число персонажей, кажется, ограничено парой десятков. Естественно, много чего придётся делать на C++/C# (симуляция жидкостей и газов в первую очередь; у персонажей достаточно примитивное поведение).
>квадраты как в террарии
Это несложно, TileMap достаточно оптимизирован. В худшем случае просто делаешь чанки из отдельных тайлмапов и подгружаешь/выгружаешь как сцены динамически (по мере движения камеры/игрока).
Вроде в одном из недавних обновлений 4.x они ещё больше оптимизировали физику TileMap. Также могу посоветовать определять "коллизии" не физикой, а проверкой нахождения точки на сетке TileMap.
Один из "секретов" Террарии в том, что 99% карты не обрабатывается никак. Каждый тик игра выбирает несколько клеточек в случайных позициях карты и выполняет их обновление: деревья растут, трава расползается и т.д. Обновлять всё сразу не выйдет. Подозреваю, что мир ONI ограничен по этой причине.
Реально сложные вещи: гладкое освещение и вода. Симуляция лучей света и жидкостей нетривиальна. Однако, Godot в этом никак не должен помешать - просто придётся выбрать что-то вместо GDScript.
>И по прикидкам пара сотен или около тысячи юнитов с пасфайдингом, коллизиями и полной автономией как в дварф фортрессе.
Поиск пути в мире с видом сбоку а-ля Террария имеет сложности, которые замучаешься решать... Поэтому большинство платформеров имеют тупых мобов. Тем более если ты хочешь симулировать жизнь, т.е. мобы обязаны выживать как можно эффективнее. В ONI управление персонажем не как в Terraria, если что; я имею в виду прыжки и физику падения/полёта. Ну, зависит от того, что ты хочешь реализовать...
Не знаю, как реализовано в DF, но обычно в играх с большим количеством автономных NPC симуляция значительно замедляется за кадром, а в достаточно больших мирах вообще становится абстрактной, т.е. отбрасывается физика, маршруты и т.д. Дальше всё зависит от того, сколько их у тебя одновременно на маленькой локации или в пределах обзора камеры. Симуляторы колоний часто делят мир на локации: отдельные участки мира или астероиды/планеты; полноценно симулируется только локация игрока.
>но это надо ЗНАТЬ все нюансы, а туториалы в основном такое не показывают
Так тебе в любом случае нужно знать, как всё это реализовать - независимо от инструментов. Как ты собираешься симулировать жизнь 1000+ людей в разрушаемом мире из кубиков с видом сбоку? Это достаточно сложная задача независимо от движка.
>что в конечном итоге все равно придётся писать на C++ даже в годоте
Одно дело - написать симуляцию жидкости на C++ и подключить к готовому движку. Другое - изобретать игровой движок и редакторы к нему...
Вообще, рекомендую пока не думать о масштабе и оптимизации. Сначала попробуй сделать маленькую локацию с десятком NPC так, чтобы она была 100% играбельной и доставляла удовольствие. Тут есть вероятность, что твоя идея в принципе фигня и не заработает, потому что огромный масштаб обычно не добавляет удовольствия если базовая игра скучная. Например, если тебе не доставляет водить грузовик, расширение карты на тысячи километров дорог не увеличит удовольствие от вождения грузовика.
Конечно, если твоя идея сработает как ты хочешь, масштабировать игру до большого мира и 1000 NPC придётся, скорее всего, переносом на другой язык программирования или движок... Но есть нюанс: переделывать существующее на другой язык/набор инструментов всегда проще, чем изобретать с нуля. Например, реальные инженеры/дизайнеры всегда создают сначала прототип изделия из дешёвых и ненадёжных материалов (типа пластилина), чтобы не тратить ресурсы на неудачные задумки.
Когда-то давно мне тоже хотелось симулировать 1000 неигровых персонажей и всего такого. В результате осознал... Мне просто нравится исследовать что-то и находить новое. Но симуляция 1000 жителей где-то за пределами камеры не играет роли, если я её всю сам разработал. Максимально тупой random() принесёт намного больше интересного хаоса, чем симуляция. А создавать симуляцию очень сложно, особенно если персонажи могут умирать. Поэтому большинство игр спавнят рандомных тупых болванчиков и почти всех удовлетворяет такое грубое решение.
Короче говоря, если делаешь что-то, чего ещё нет, для начала убедись, что это вообще имеет смысл делать. Готовый игровой движок типа Godot позволяет всё проверить намного быстрее, чем низкоуровневые API. Потом будешь думать, как это всё оптимизировать.
>огромная толпа
>мультимеш
Имеет смысл только для стратегий с видом сверху.
>за один дравколл
На Vulkan у тебя в любом случае один дроуколл если использовать один материал для всех персонажей... Наверное... По крайней мере, для статики это так. С анимациями, как я понимаю, нужны LOD самих этих анимаций, т.е. уменьшать частоту кадров вдалеке.
Фатальный недостаток мультимеша: он рендерит всё одновременно с одинаковой плотностью сетки, т.е. в определённых ситуациях будет нагружать больше, чем банальный спам обычных мешей с LODами.
>>6605
>прямо цепочки костей в шейдере считались и IK
И как, сильно помогает такой шейдер на GTX 750 Ti (встроенной графике, мобильной графике и т.д.)? Наоптимизируетесь так, что игра не запустится... Отключаешь IK для своей толпы зомби и всё. Кому интересно наблюдать, как толпа зомби аккуратно выставляет свои ножки на камушки на дороге?.. Оптимизация должна быть как JPEG - терять то, что конечному потребителю как правило не нужно, а не перекладывать задачу на ещё более слабое железо.
>>6599
Что-то типа Oxygen Not Included? Она на Unity. Карта, насколько я понимаю, меньше, чем в Terraria, и число персонажей, кажется, ограничено парой десятков. Естественно, много чего придётся делать на C++/C# (симуляция жидкостей и газов в первую очередь; у персонажей достаточно примитивное поведение).
>квадраты как в террарии
Это несложно, TileMap достаточно оптимизирован. В худшем случае просто делаешь чанки из отдельных тайлмапов и подгружаешь/выгружаешь как сцены динамически (по мере движения камеры/игрока).
Вроде в одном из недавних обновлений 4.x они ещё больше оптимизировали физику TileMap. Также могу посоветовать определять "коллизии" не физикой, а проверкой нахождения точки на сетке TileMap.
Один из "секретов" Террарии в том, что 99% карты не обрабатывается никак. Каждый тик игра выбирает несколько клеточек в случайных позициях карты и выполняет их обновление: деревья растут, трава расползается и т.д. Обновлять всё сразу не выйдет. Подозреваю, что мир ONI ограничен по этой причине.
Реально сложные вещи: гладкое освещение и вода. Симуляция лучей света и жидкостей нетривиальна. Однако, Godot в этом никак не должен помешать - просто придётся выбрать что-то вместо GDScript.
>И по прикидкам пара сотен или около тысячи юнитов с пасфайдингом, коллизиями и полной автономией как в дварф фортрессе.
Поиск пути в мире с видом сбоку а-ля Террария имеет сложности, которые замучаешься решать... Поэтому большинство платформеров имеют тупых мобов. Тем более если ты хочешь симулировать жизнь, т.е. мобы обязаны выживать как можно эффективнее. В ONI управление персонажем не как в Terraria, если что; я имею в виду прыжки и физику падения/полёта. Ну, зависит от того, что ты хочешь реализовать...
Не знаю, как реализовано в DF, но обычно в играх с большим количеством автономных NPC симуляция значительно замедляется за кадром, а в достаточно больших мирах вообще становится абстрактной, т.е. отбрасывается физика, маршруты и т.д. Дальше всё зависит от того, сколько их у тебя одновременно на маленькой локации или в пределах обзора камеры. Симуляторы колоний часто делят мир на локации: отдельные участки мира или астероиды/планеты; полноценно симулируется только локация игрока.
>но это надо ЗНАТЬ все нюансы, а туториалы в основном такое не показывают
Так тебе в любом случае нужно знать, как всё это реализовать - независимо от инструментов. Как ты собираешься симулировать жизнь 1000+ людей в разрушаемом мире из кубиков с видом сбоку? Это достаточно сложная задача независимо от движка.
>что в конечном итоге все равно придётся писать на C++ даже в годоте
Одно дело - написать симуляцию жидкости на C++ и подключить к готовому движку. Другое - изобретать игровой движок и редакторы к нему...
Вообще, рекомендую пока не думать о масштабе и оптимизации. Сначала попробуй сделать маленькую локацию с десятком NPC так, чтобы она была 100% играбельной и доставляла удовольствие. Тут есть вероятность, что твоя идея в принципе фигня и не заработает, потому что огромный масштаб обычно не добавляет удовольствия если базовая игра скучная. Например, если тебе не доставляет водить грузовик, расширение карты на тысячи километров дорог не увеличит удовольствие от вождения грузовика.
Конечно, если твоя идея сработает как ты хочешь, масштабировать игру до большого мира и 1000 NPC придётся, скорее всего, переносом на другой язык программирования или движок... Но есть нюанс: переделывать существующее на другой язык/набор инструментов всегда проще, чем изобретать с нуля. Например, реальные инженеры/дизайнеры всегда создают сначала прототип изделия из дешёвых и ненадёжных материалов (типа пластилина), чтобы не тратить ресурсы на неудачные задумки.
Когда-то давно мне тоже хотелось симулировать 1000 неигровых персонажей и всего такого. В результате осознал... Мне просто нравится исследовать что-то и находить новое. Но симуляция 1000 жителей где-то за пределами камеры не играет роли, если я её всю сам разработал. Максимально тупой random() принесёт намного больше интересного хаоса, чем симуляция. А создавать симуляцию очень сложно, особенно если персонажи могут умирать. Поэтому большинство игр спавнят рандомных тупых болванчиков и почти всех удовлетворяет такое грубое решение.
Короче говоря, если делаешь что-то, чего ещё нет, для начала убедись, что это вообще имеет смысл делать. Готовый игровой движок типа Godot позволяет всё проверить намного быстрее, чем низкоуровневые API. Потом будешь думать, как это всё оптимизировать.
Откуда же я узнаю, помогает ли метод для IK на 750ti, если его еще никто не реализовал для годота?
>огромная толпа
>мультимеш
>Имеет смысл только для стратегий с видом сверху.
Нет. Имеет такой же смысл и в зомби шутерах от первого/третьего лица. И в ГТА для пешеходов. (Хинт - можно сделать разные цвета одежды, кожи, можно и сделать разные отключаемые части типа кепок).
У меня и без того столько тасочек, что только через год если время найдется.
А я щас пилю приложуху (не игру) на SDL/ImGUI. Решил освоить эту связку технологий, потому что в геймдеве она супер популярная. Конечно, годоту имгуи не нужен (хотя биндинг сущетвует), своя встроенная система для гуёв очень даже хороша; но надо ж развиваться и осваивать разные технологии. Я вообще изначально думал чисто на годоте приложение делать, но получалось слишком громоздко, да и постоянная возня с пересборкой движка.
это когда берут концепт рогалика, но пытаются сделать интересную игру

Пикча барда в данже вдогонку.
Как прошедший через SDL и кучу других ящитаю наибольшая проблема с фреймворками, и тем более с их связками, это гемор их сбора под произвольную платформу, будь то внезапный веб или андроид. Какая-нибудь мелкая залупа в глубине проекта может все обломать, придется ее выковыривать и заменять на более дружелюбную к мультиплатформингу.
Годот обладает огромным преимуществом: встроенные шейдеры. SDL2 это надо или какой то васянский билд, или прикручивать OpenGL и развлекаться перекидыванием текстур оттуда туда. SDL3 пока непонятная штука, там для шейдеров надо создавать текстуры тоже в своем АПИ, и не факт что это заработает на любом устройстве, все таки у SDL2 была репутация работать от микроволновки, от малинки, до емскриптен веба.

>Откуда же я узнаю, помогает ли метод
У 750 Ti всего 640 compute ядер, а алгоритм IK будет примерно как на CPU, так что можешь сам прикинуть, сколько потоков/костей ты можешь обрабатывать...
Но лучше на встройки посмотреть. Там вообще всё ограничено. Но на встройке можно играть в очень большое количество "старых" игр (имхо, GTA SA даже сегодня топ ААА, а её тащит встройка 2 ядра @ 1 Ггц).
Короче, это ситуация из разряда "у меня на RTX 5090 работает в 30 фпс, значит и у всех остальных норм". Потом удивляются, откуда у них негативные отзывы.
>>6620
>и в зомби шутерах от первого/третьего лица
Мультимеш рендерит толпу целиком, даже когда единственный зомби из толпы в поле зрения игрока. Поэтому его не рекомендуется использовать внутри замкнутых пространств с видом от первого лица - а условная толпа зомби это замкнутое пространство (практически в любой игре они обступают игрока).
>И в ГТА для пешеходов
Если только гта уровня /б/... В GTA 5 можно изредка заметить переключение NPC между примитивным болванчиком и конкретной/реальной моделькой. Я подозреваю, что это единственный реальный способ оптимизировать пешеходов в такой игре. Поэтому и улицы там обычно выглядят слишком пустыми.
>разные цвета одежды, кожи
>разные отключаемые части типа кепок
Ты вообще мультимешем пользовался? Мультимеш рендерит единственный меш с одним материалом... Представь, что у тебя десять персонажей в кепке - мультимеш не даст ощутимого прироста скорости, а настройка и динамическое обновление - это траты.
Конечно, ты можешь настраивать меш в шейдере. Но количество работы необходимой для этого, как мне кажется, превышает потенциальную выгоду. Поэтому намного эффективнее просто ограничить спавн NPC.
Если твоя игра скучна с ограниченным количеством скопированных мешей, то ты делаешь что-то не так. Изобилие копипасты не сделает игру лучше других.
а вот чтоб это пиксельное месиво нарисовать, надо художником быть что ли?
все мы знаем, что в игре главное сюжет маркетинг
>развиваться и осваивать разные технологии
>изначально думал чисто на годоте приложение
>но получалось слишком громоздко
>постоянная возня с пересборкой
Попробуй это: https://www.lazarus-ide.org/
- бесплатный опенсурс, до сих пор шевелится
- WYSIWYG редактор для нативных приложений
- скорость кода почти как у C++ (чуть медленнее)
- код более читабельный, чем у многих потомков C
- компиляция за один проход, т.е. супербыстрая
- много встроенных компонентов, можно качать
- exe относительно мал (зависит от компонентов)
- event driven architecture - как сигналы в Godot
- кроссплатформа (write once, compile anywhere)
- девятое место среди языков, т.е. ещё живой:
https://www.tiobe.com/tiobe-index/
>там по факту нет игр
>Или геймплей не нужен
Есть там игры с геймплеем, плохо искал.
>артисты решили, что они теперь геймдевы
>одной и той же сцене пять лет подряд
Ошибка выжившего - видишь топ-посты от тех, кто решился что-то показать, из тех, кто что-то сделал.
Во-первых, похвастаться графикой в коротком видео значительно проще, чем геймплеем. Тем более что геймплейно многие игры однотипны: взять, скажем, фермерский симулятор, что интересного в том, чтоб показывать, как игрок собирает картошку? Какие-то механики могут быть растянуты на часы геймплея - строительство чего-то из кубиков, например, сложно продемонстрировать в реальном времени. Читатели вероятнее всего лайкнут простой и понятный пост с привлекательной графикой, чем с сырым геймплем.
Во-вторых, графика - одновременно очень просто и чрезвычайно трудозатратно. Можно за один день сконструировать статичную сцену из набора тайлов, нарисовать одного персонажа или написать шейдер. Однако, полноценная игра обычно требует графику, которую в соло ты будешь 5+ лет делать. Поэтому у многих весь прогресс уходит в улучшение графики. Геймплей же обычно либо тривиален, либо слишком сложен, поэтому многим особо нечем хвастаться.
И в-третьих, r/Godot больше всего подходит для демонстрации возможностей движка. Посмотреть впечатляющую 3D сцену или даже необычный 2D спецэффект интереснее и важнее, чем увидеть 9001 симулятор ходьбы по серым кубикам. Потому что симуляторы ходьбы на любом движке делаются, а графические возможности не настолько очевидны.
Алсо, как говорят, "be the change you want to see" - разработай свой гениальный геймплей и иди туда хвастаться - покажи пример, как нужно это делать.
Или ты просто завидуешь тем, кто что-то делает?
У меня dev5 и beta1 не запускается в версии x64 на Windows 10, краш с ошибкой/сигналом "4". Что самое интересное, x32 версия запускается без проблем и до версии dev4 никогда подобного не было... С чем это может быть связано? Несколько лет винду никак не обновлял, может, нужно обновиться до свежей?