24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Godot #37

 Аноним OP 28/07/23 Птн 13:21:23 #1 №890164 
1690539683815.jpg
Добро пожаловать в тред любви, взаимопомощи и сверхкороткой шапки!

Шапка: https://hipolink.me/godothread

Предыдущий: >>882096 (OP)

Архивный: >>873235 (OP)
Аноним 28/07/23 Птн 13:24:30 #2 №890166 
>>890164 (OP)
Как-то в этот раз неудачно перекатил. Ну да ладно.
Аноним 28/07/23 Птн 13:29:22 #3 №890169 
Игры-то делаете?
Аноним 28/07/23 Птн 13:35:51 #4 №890171 
>>890169
Ну дя....
Аноним 28/07/23 Птн 13:46:39 #5 №890174 
>>890169
Да.
Аноним 28/07/23 Птн 14:12:27 #6 №890178 
>>890009 →
>Ты уверен, что сеттинг "тян в армии" будет популярен у твоей целевой аудитории (дрочеров)? Или ты сам дрочишь на тян в униформе? Иначе не понимаю, зачем нужен именно такой сеттинг...
Да "дрочерам" только дай подрочить, сеттинг не так и важен, хотя, конечно, хороший и проработанный хоть чуть-чуть будет плюсом. Моя целевая аудитория это - преимущественно я сам, так-как делаю говно, а не игры. А мне интересно над таким поработать, так что тут проблем нет. Уж лучше работать над чем-то интересным мне, так-как если оно не получится хорошо, то будет не так обидно за потраченное время.
>Не вижу в нём "шлюхосим". Секс-то будет вообще?
Да.
Аноним 28/07/23 Птн 14:47:45 #7 №890190 
>>890178
>Да "дрочерам" только дай подрочить
Это было бы верно в 90-х с распространением порноигр на дискетах среди знакомых, а не в эпоху неограниченного доступа в интернет...

>Моя целевая аудитория это - преимущественно я сам
Тогда ладно, просто любопытно было.
>так как делаю говно, а не игры.
С таким настроем развиваться тяжелее.

>Уж лучше работать над чем-то интересным мне, так как если оно не получится хорошо, то будет не так обидно за потраченное время.
Тут полностью согласен.
Аноним 28/07/23 Птн 15:34:23 #8 №890204 
>>890190
>Это было бы верно в 90-х с распространением порноигр на дискетах среди знакомых
Кринж
>а не в эпоху неограниченного доступа в интернет...
Толку от этого, если информации стало больше, но не очень? Все любители порноигр только и ждут обновления игр и скучают по новенькому.
Аноним 28/07/23 Птн 15:56:54 #9 №890207 
Хуй с порноигрой прав. Востребованный жанр, особенно если интерактив и сюжет накинуть, то и качество самой порнухи не так важно. Кумеры эт пиздец.
Аноним 28/07/23 Птн 17:49:05 #10 №890234 
>>890207
А как заработать на этом если сейчас ни патреона, ни даже стима?

Кстати, моральный вопрос: я бы постеснялся выкладывать порноигру в стим со своего основного аккаунта. Типа там же мои данные, имя и связанный счет.
Аноним 28/07/23 Птн 17:53:52 #11 №890237 
>>890207
Самый пиздец это фурри, там основные деньги
>>890234
Выкладывать порноигру это в принципе задачка, учитывая законы
Аноним 28/07/23 Птн 21:58:18 #12 №890288 
>>890204
>информации стало больше, но не очень
При чём тут информация? Зайди в любой поисковик, выключи фильтры и набери "порно". Молодец, теперь можешь обдрочиться до потери пульса как тот хикка из Японии, откинувшийся с 42 оргазмов из-за того, что выкончал из себя все запасы воды.

>Все любители порноигр только и ждут обновления игр и скучают по новенькому.
Что там "новенького"-то?
>Ого, эту default_woman_01.obj натягивает на свой дрын default_man_01.obj, охренеть, дайте две!!
Так, что ли? Банальщина...

Я и сам считаю себя кумером, у меня прямо как в том мемесе дрочильная левая рука сильнее ведущей правой, лол. Рекорд был, наверное, раз 6 в день? Не помню точно, я обычно не считаю. Короче, я видел некоторые вещи, о которых ты, вероятно, даже не мог подумать. И даже их в интернете избыток, не хватает разве что совсем уж нишевых вещей. Всякой банальщины столько, что на всё дрочить некогда.

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

Так что мне очень сложно представить себе того человека, который ждёт очередной банальной порноигры, в которой нет ничего нового и дрочить тупо не на что, просто одно и то же в 100500-й раз.

Лол, повторяют одни и те же позы из раза в раз, хотя казалось бы - открой Камасутру и выбирай что-то наименее заезженное, нет, выбирают самые банальные, затраханные до дыр позы...
Аноним 28/07/23 Птн 23:59:38 #13 №890311 
Че по визуальному программированию в годо?
Аноним 29/07/23 Суб 02:19:00 #14 №890326 
>>890311
Удалено за ненадобностью - судя по статистике оно нахуй никому не нужно оказалось. Возможно переработают и вернут однажды, но это не точно.
Аноним 29/07/23 Суб 03:24:54 #15 №890330 
Как же сложно делать игры.
Аноним 29/07/23 Суб 03:53:12 #16 №890337 
>>890330
Упрощай.
Аноним 29/07/23 Суб 04:38:25 #17 №890340 
Еще 2 дня проебал не открывая туториалы :((((
Аноним 29/07/23 Суб 14:53:12 #18 №890467 
>>890326
Жоско. Придётся учить не понятное пограмирование. Ну хотя бы все остальное в движке довольно просто освоилось
Аноним 29/07/23 Суб 15:40:34 #19 №890479 
>>890467
GDScript максимально прост, два шага от псевдокода.
Аноним 29/07/23 Суб 15:46:13 #20 №890481 
>>890479
А если вообще нет опыта
Аноним 29/07/23 Суб 18:35:16 #21 №890552 
Была инфа, когда на 4 билд в мобилки подвезут?
Аноним 29/07/23 Суб 18:49:47 #22 №890562 
>>890552
Завтра в 3
Аноним 29/07/23 Суб 22:22:04 #23 №890665 
>>890481
Даже визуальное программирование - всё равно программирование, ты по сути всё равно описываешь что откуда взять и что с этим сделать.
Оно не делает получение результата принципиально проще.
Аноним 29/07/23 Суб 22:49:42 #24 №890679 
>>890665
Этого двачую. У меня тут есть соседний тред визуального программирования для детей (scratch/snap) и там я начинал делать транскомпилер, который бы выдавал код на гдскрипте из блоков визуального кода ( >>833827 → ), но лень матушка помогла мне осознать, что занятие это бессмысленное и безблагодатное (ну еще анон мудрый обрисовал мне грамотно весь фронт работ предстоящих). А так-то у меня пакрасате было. В специальный блок накидываешь блоки и формируешь готовый скрипт одним кликом мышки.

Карочи, не усложняйте себе жизнь и учите ЯПы. Визуальный кодинг - это игрушка дьявола, ежжы.
Аноним 30/07/23 Вск 02:55:23 #25 №890713 
>>890665
Ладно, хуй с ним. С чего начать учение языка?
Аноним 30/07/23 Вск 02:59:09 #26 №890714 
Снилось что у меня живет Годоття, и я ее гладил по ее шестеренкам.
Аноним 30/07/23 Вск 03:26:37 #27 №890718 
>>890467
Я когда на рпгме работал просто ахуел от невозможности понимать js. Представляю какая каша в визуале. Код свой нужно от и до понимать (практически), а то заебёшся новые фичи вводить и дебагать.
>>890679
>Визуальный кодинг - это игрушка дьявола, ежжы.
Двачую.
>>890713
Я так учил. Есть гайд на ютубе "Пилим свою акшин рпг", там практически вся база и для тренировки само то. Потом начинаешь уже свои хотелки кодить. Если что-то не понятно, то гуглиш и спрашиваешь в этом треде. Сам гдскрипт не сложный и из моего опыта не столько нужно сам язык знать, сколько как его применить. Я в программировании около нулевой, но пока что работать в годоте довольно приятно и без всяких вижуалов.
Аноним 30/07/23 Вск 05:55:09 #28 №890727 
>>890164 (OP)
Можно как-нибудь в годоте установить фокус на ноду через код, будто я кликнул на неё мышкой?
Аноним 30/07/23 Вск 08:12:54 #29 №890736 
>>890727
Типа как на кнопку? У кнопок есть grab_focus.
Аноним 30/07/23 Вск 18:21:44 #30 №890985 
>>890718
Спасибо, почекаю
Аноним 30/07/23 Вск 19:35:08 #31 №891001 
>>890164 (OP)
Здравствуйте, я Кирилл.
Хочу создать ТДшку со подачей стори ВН-стайл.
Там должен бегать рабочий и строить башенки, а злые будут набигать и убивать рабочего и башенки. Причем злые должны быть заскриптованы - одни в приоритете убивают рабочего, другие - башенки.
А еще там должна быть охрана дворца, которая помогает защищать строящиеся башенки. И техдрево для рабочего и злых.
Накидайте туториалов, джвадцать лет жду такую игру.
Аноним 30/07/23 Вск 22:43:26 #32 №891049 
Почти все нравится в годоте, но зачем они скопировали синтаксис для gdscript из ебучего питона? После жс, котлина и шарпа это такая поебота. Каждый раз ебусь с этими отступами когда надо скопипастить блоки кода, каждую строку приходится перепроверять чтобы там что-нибудь не ебнулось с иерархией. Удаляешь один иф - и все по пизде пошло. Переносишь логику в отдельный метод - будь добр пересчитать невидимые табы. Когда есть {} то вообще похкй на такие недопроблемы. В питоне так сделали потому что изначально это был недоязык для маленьких скриптиков.
Аноним 30/07/23 Вск 23:00:37 #33 №891056 
>>891049
Вы получаете первое предупреждение.
Движкосрач в отдельном треде.
Аноним 31/07/23 Пнд 14:16:24 #34 №891197 
Чем принципиально отличается понятие "визуальное программирование" от того что в годоте сейчас? Типа в годоте ты же визуально видишь классы (которые заранее за тебя сделаны) в дереве, видишь что к чему прицеплено, визуально видишь что где наследуется...
Аноним 31/07/23 Пнд 14:46:22 #35 №891209 
>>891197
Визуальное программирование это когда не пишешь ни одной строчки кода, не надо даже знать что такое класс, это хорошо реализовано в UE5 на блюпринтах. VisualScript из годота выпиливают и правильно делают, поддерживать это говно слишком дорого и профита минимум.
Аноним 31/07/23 Пнд 19:11:45 #36 №891358 
Делаю игру, вижу на реддите или просто где-то игру в моем же жанре, но просто которая сделана нормально и не уебищно как у меня и расстраиваюсь.
Аноним 31/07/23 Пнд 22:42:09 #37 №891389 
1690832528898.png
>>891197
Визуальное программирование - это когда блок-схему рисуешь вместо печатания слов.
Аноним 01/08/23 Втр 02:35:58 #38 №891452 
99010da9c625d2c9e7efedf1d48boriginal.png
Снимок экрана (592).png
Снимок экрана (622).png
Снимок экрана (624).png
Привет, ребята. Начал делать свой крутой иммёрсив сим шутер от первого лица. Вот то что пока сделано(естественно это всё не финальные варианты) и то что ещё делается. Сегодня уже сделал скрипт игрока но не разобрался как сделать шоб камера крутилась когда мышкой крутишь и из-за этого ходить назад можно только вслепую. И ещё не знаю как прыжок реализовать.

Я очень хочу создать эту игру потому что её сюжет будет раскрывать тему которая коснулась лично меня и возможно даже очень многих двачеров. Если кого-то интересует подробнее - пишите в телеграм @MarganecRPG(я стесняюсь при всех на дваче писать а то вдруг засмеют за идею истории). Очень приветствую 3д модельеров, программистов(я сам в этом деле ну просто очень плох, вернее, у меня лучше идут дела с С# в Юнити чем с ГДскриптом), ну и дизайнеров интерфейса(я вроде бы и сам могу, а вроде бы и... ну на скринах можете видеть).
Аноним 01/08/23 Втр 11:57:11 #39 №891469 
Сап, движок подойдет для стратегии в реальном времени, аля стелларис?
Аноним 01/08/23 Втр 12:42:52 #40 №891476 
>>891452
Наес. ГДСкрипт попроще шарпа. Все получится.

>>891469
Вполне. В 4 заебатую навигацию еще сделали.
Аноним 01/08/23 Втр 13:02:25 #41 №891482 
>>891476
В шарпе некоторые вещи удобнее, например те же несколько классов в одном файле
Аноним 01/08/23 Втр 16:58:10 #42 №891515 
>>891482
> несколько классов в одном файле
Гдскрипт может. С оговоpками конечно, но может.
Аноним 01/08/23 Втр 19:13:27 #43 №891557 
>>891482
Сколько раз сталкивался, в итоге все равно приходилось выносить класс в отдельный файл. Просто потому, что обычно это сущность которая нужна и из других классов.
Но как написал анон выше, в гдскрипте тоже можно ограниченно писать классы в одном файле.
class_name MainClass
extends Node

bla_bla

class ClassA:
_var a: int
_func methodA(): ...

var objA: ClassA
Аноним 01/08/23 Втр 22:21:41 #44 №891582 
Надо сделать игру: ничего не знаю, просто по очереди гуглю вообще ВСЁ:
Как сделать так чтобы ходить, как сделать так чтобы спавнился прожектайл, как решить то, сё. И все гуглится. И игра сделалась просто по гуглу каждого момента. В чем минусы такой стратегии?
Аноним 01/08/23 Втр 22:30:35 #45 №891584 
>>891582
В том, что однажды не найдешь готовых решений, либо не сможешь склеить их в кучу.
Аноним 01/08/23 Втр 22:53:46 #46 №891591 
>>891584
А если я учусь и не добавляю код, если четко не понимаю, что он делает?
Аноним 02/08/23 Срд 10:33:40 #47 №891745 
>>891557
> обычно это сущность которая нужна и из других классов
Всю ночь размышлял над примером гарантированно локального класса, который уж точно нигде не потребуется и не придумал ничего, что нельзя было бы оспорить.
тот анон выше
Аноним 02/08/23 Срд 10:36:38 #48 №891746 
>>891591
> А если я учусь и не добавляю код, если четко не понимаю, что он делает?
Если я учусь, я создаю учебный проект, который не жалко стереть. Добавляю в него код, который я не знаю что делает, смотрю, что он делает, и после этого знаю, что код делает.
Кроме того, в большинстве случаев код самодокументируем, одного взгляда на него достаточно, чтобы узнать, что он делает.
Аноним 02/08/23 Срд 14:18:03 #49 №891841 
>>891049
>зачем они скопировали синтаксис для gdscript из ебучего питона?
Затем, что это база. Просто, удобно, лаконично.

>После жс, котлина и шарпа это такая поебота.
А мне после Паскаля физически больно видеть "{}".

>Каждый раз ебусь с этими отступами когда надо скопипастить блоки кода, каждую строку приходится перепроверять чтобы там что-нибудь не ебнулось с иерархией.
Копипастить код категорически вредно, не важно, копипастишь ты чужой код из интернета или свой собственный. Если ты чувствуешь необходимость в копипасте - знай, ты делаешь какое-то говно, которое потом несколько раз в ногу выстрелит и граблями по затылку ударит в любом проекте сложнее hello world. Помни это и избегай копипасты.

>Удаляешь один иф - и все по пизде пошло.
1. Выдели блок кода и нажми shift+tab, чтобы убрать отступы на один уровень. Чтобы добавить отступы на один уровень, выдели блок кода и нажми tab.
2. Твои функции/методы не должны содержать в себе больше 7 смысловых единиц. Если у тебя проблемы из-за одного if, тогда у тебя там, скорее всего, портянка на три экрана - срочно разделяй её на более короткие подпрограммы. Гугли Forth.
3. Godot разрешает иметь лишние отступы. Если твой if не имеет else, можно сделать так:
>func do_something(arg):
># if arg is something:
>_ _ actually_do(arg)
Как видишь, здесь есть лишний отступ из-за того, что if был удалён, но Godot ругаться не будет.

>Переносишь логику в отдельный метод - будь добр пересчитать невидимые табы.
Перенос в отдельный метод крайне прост:
1. Выделить блок кода.
2. Нажать shift+tab необходимое число раз.
3. Нажать ctrl+x и ctrl+v в другом месте,
- либо перетащить выделенный код мышкой,
- либо добавить новый func () перед блоком кода.

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

Наконец, если тебе слишком часто приходится пересчитывать отступы, это значит, что у тебя там огромные портянки говнокода. Не проблема языка.

>Когда есть {} то вообще похкй на такие недопроблемы.
Ага, только код отвратительно выглядит и плохо читается, скобачки занимают лишние строки или визуально теряются на фоне остальных команд. Фигурные скобки - самый отвратный спецсимвол. Слишком похожи на () и [], в большинстве шрифтов слишком тонкие, "соски" размером меньше пикселя.

Единственный плюс операторных скобок - IDE может отформатировать твою портянку говнокода вместо тебя, но большинство говнокодеров даже не могут найти шорткат для этой функции.

Тоже раньше с подозрением относился к значимым отступам в коде, но теперь понимаю их важность.
Аноним 02/08/23 Срд 14:29:28 #50 №891843 
>>891841
Алсо, добавлю, что GDScript позволяет записывать код в одну строчку через точку с запятой:
>if something: do_1(); do_2(); else: do_else();
>for node in nodes: node.do(); node.queue_free();
>func do(x) -> int: var y=x; return x+y;
Так не рекомендуется делать из-за того, что такой код сложнее читать, но фича в языке есть и в некоторых случаях удобнее переноса каждой команды на отдельную строку с отступом.

>>891056
>Движкосрач
Ты чего так легко триггеришься? Возмущение особенностями незнакомого языка нормально. Я предполагаю, что тот анон просто не знает всех настроек и шорткатов редактора.

Особенно это касается новичков, которые только научились код печатать, но не шарят во всей теоретической базе программирования.
Аноним 02/08/23 Срд 14:37:33 #51 №891844 
>>891841
> Если ты чувствуешь необходимость в копипасте - знай, ты делаешь какое-то говно, которое потом несколько раз в ногу выстрелит и граблями по затылку ударит в любом проекте сложнее hello world. Помни это и избегай копипасты.
Решительно двачую. Копи/пасте должно работать только на уровне файловой системы. Ранее написанный код всем файлом целиком копипастится в нужную директорию и там подключается, и не требует каких-либо внутренних переделок. Это и есть модульность, а не эти вот копипастинги портянок кода из метода в метод.
Аноним 02/08/23 Срд 14:54:22 #52 №891850 
>>891557
>выносить класс в отдельный файл.
>сущность которая нужна и из других классов.
Если не ошибаюсь, к "локальным" классам можно обращаться извне скрипта, создавать их и т.д.

Прямо сейчас проверить не могу, но я когда-то экспериментировал с этим и у меня получалось.

Это, вроде бы, похоже на обращение к enum.
Аноним 02/08/23 Срд 15:04:37 #53 №891851 
>>891582
>В чем минусы такой стратегии?
1. В уроках из интернета часто грубый код, не оптимальный, годный только для обучения.
2. Конкретно твоя игра может требовать некие оптимизации, тогда как учебный код сделан для максимально общего случая.
3. Как уже сказали, ты можешь придумать то, чего в интернете в готовом виде нет. А у тебя нет навыка самостоятельного решения задач, потому что ты не создаёшь своим умом, а копипастишь.
4. Даже если ты понимаешь свою копипасту и запоминаешь все функции API движка, у тебя не формируется навыков решения задач в общем случае. Сейчас ты выучил только "если есть проблема, нужно загуглить и скопировать код".

Ну и по мелочи, вроде устаревшего кода в старых туториалах, вопросов лицензирования в случае достаточно крупных фрагментов кода и т.д.
Аноним 02/08/23 Срд 15:05:34 #54 №891852 
>>891850
Кстати да, модификаторов доступа тонет. Теоретически ничто не мешает сделать инстанс внутреннего класса из инстанса родительского класса, а может даже и из имени класса даже без инстанса.
Аноним 02/08/23 Срд 15:14:34 #55 №891854 
1690978473395.png
1690978473411.png
1690978473412.png
>>891852
Усё работает!
Аноним 02/08/23 Срд 15:21:41 #56 №891856 
>>891854
Нашёл вот такое обсуждение, где это упоминают:
https://github.com/godotengine/godot-proposals/issues/240#issuecomment-555785392
Аноним 02/08/23 Срд 16:37:24 #57 №891874 
screenshot.png
>>891389
>Визуальное программирование - это когда блок-схему рисуешь вместо печатания слов.
Нет, блок-схемы - это визуальная версия императивного программирования.

>>891209
>Визуальное программирование это когда не пишешь ни одной строчки кода, не надо даже знать что такое класс
Нет, в визуальном программировании тоже приходится много печатать, и тоже нужно хотя бы интуитивно понимать различные концепции, связанные с программированием.

>>891197
>Чем принципиально отличается понятие "визуальное программирование" от того что в годоте сейчас?
VisualScript и ему подобные языки - это императивные языки с визуальным интерфейсом. Они не нужны, потому что слишком избыточны. А вот сцены с нодами Godot - это декларативный язык программирования с визуальным интерфейсом. Ты можешь создавать сцены с помощью ручной записи декларативного кода в .tscn и .tres файлы через блокнот, но это нерационально, потому что визуальный интерфейс проще для понимания и делает всю сложную рутину вместо тебя, избавляя от ошибок вроде неправильно поставленных скобочек.

Если ты заранее создашь все необходимые ноды (напишешь скрипты с class_name), тогда многие игры можно будет создавать исключительно декларативно, размещая и комбинируя разные ноды и сцены, создавая для них ресурсы и настраивая параметры, аналогично тому, как ты можешь создать новую физическую симуляцию, используя только базовые ноды RigidBody и CollisionShape, не написав ни одной строки кода - если бы не было визуального редактора, тебе пришлось бы вручную описывать сцену текстовой записью (где была бы куча вызовов .new() и трансформаций объектов).

Разумеется, декларативные языки обычно имеют ограничения по сравнению с императивными (поэтому, например, нельзя написать большинство программ на одном только HTML), то есть они не полны по Тьюрингу. Но используя GDScript для создания кастомных нод - то есть расширения базового языка сцен, теоретически, можно создать систему, полную по Тьюрингу, которую можно будет использовать исключительно операциями с нодами через визуальный редактор.

Главная проблема здесь в производительности - Godot не рассчитан на слишком большое количество нод и операций над ними, в документации рекомендуют минимизировать количество нод и использовать низкоуровневые API вместо нод. Что-то оптимизируют в 4.x, нужно тестировать.

На пикриле ответ поисковика на базе ИИ. До чего дошёл прогресс!
Аноним 02/08/23 Срд 17:07:33 #58 №891884 
Можно ли пихать функцию сохранения в _process? Не взорвется ли компьютер играющего от того что каждый фрейм сохраняется игра? Делаю мобилку.
Аноним 02/08/23 Срд 18:35:21 #59 №891912 
>>891884
В процесс слишком часто. Каждые пять-десять-шестьдесят секунд не вариант?
Аноним 02/08/23 Срд 19:00:36 #60 №891917 
>>891912
У меня было 3 секунды и модер не пропустил на яндексе, типа он обновил и у него сбросились 3 секунды прогресса.
Аноним 02/08/23 Срд 19:11:10 #61 №891918 
>>891884
>Можно ли пихать функцию сохранения в _process?
Очевидно, что нет, потому что тогда 60+ раз в секунду будет происходить обращение к функциям ОС для записи на диск, что в принципе медленно и глючно даже с SSD, не говоря уж о медленном чипе памяти на мобилках. Кроме того, ты впустую расходуешь ресурс накопителя пользователя, что особенно существенно на мобилках, где зачастую нет возможности балансировать износ ячеек, а ещё сохранение в твоей игре рискует испортиться 60+ раз в секунду, т.е. тебе каждый раз нужно создавать резервную копию и делать операции создания, удаления и переименования файлов. А если у пользователя дисплей выдаёт 120 кадров в секунду (такие бывают даже на мобилках) или он отключит у себя вертикальную синхронизацию, то твоя операция сохранения будет происходить ещё чаще.

Тут очевидна проблема XY:
https://ru.wikipedia.org/wiki/Проблема_XY_(Ошибка_молотка)

З А Ч Е М ты хочешь сохранять игру 60+ раз в секунду на мобильном устройстве? Так не делают даже ММО, которые, по идее, должны сохранять достижения игрока непрерывно - но на практике можно столкнуться с откатом данных на несколько минут назад из-за каких-то проблем.

Если ты хочешь побороть сейв-скаминг, во-первых, доступ к файлам приложения на мобилках и так сильно ограничен, а пользователь с рутом сможет легко обойти твою защиту. Во-вторых, это бессмысленно, потому что если у тебя, допустим, данные достижений передаются в интернет, кто-то обязательно изучит API сервера достижений и запишет себя с результатом 4294967296, ни разу не запуская игровой клиент.

В первую очередь заботься о том, чтобы было интересно играть (геймдизайн), во вторую - чтобы играть было приятно (не было тормозов и багов), а все эти хитрожопые костыли можешь выкинуть.
Аноним 02/08/23 Срд 19:24:45 #62 №891919 
54884original.jpg
>>891917
>модер не пропустил на яндексе
>у него сбросились 3 секунды прогресса
Напиши этому школотёнку с модеркой, что ты передумал публиковать свой шедевр в их гнилой помойке, ведь ты загрузил им все необходимые файлы, а они не смогли пропустить их через свою дырявую модерацию за 3 секунды. Там такой шлак публикуют, жуть...

Возможно, у тебя просто функция сохранения совсем не работает и ты неправильно понял ответ модератора.
Аноним 02/08/23 Срд 20:36:32 #63 №891926 
>>891917
Сохранять прогресс нужно не по таймеру, а по событиям. Каждый "прогрессирующий" объект в игре должен уметь испускать сигнал (порождать событие) при котором игра автосохраняется.
Аноним 02/08/23 Срд 20:48:48 #64 №891930 
>>891926
>Каждый "прогрессирующий" объект в игре должен уметь испускать сигнал (порождать событие) при котором игра автосохраняется.
Это работает только если таких событий мало, а все остальные события сохранять не нужно. Если событий для сохранения много каждую секунду, рациональнее сохранять по таймеру.
Аноним 02/08/23 Срд 21:34:26 #65 №891942 
1691001266902.jpg
>>891930
> Если событий для сохранения много каждую секунду
Ну тогда наслаждайся отказами.
Аноним 02/08/23 Срд 22:47:21 #66 №891959 
>>890164 (OP)
Кто-нить итт вообще создал хоть что-то на голове готовое на продакшн?
Аноним 02/08/23 Срд 23:19:04 #67 №891970 
>>891959
Кто-то наверняка создавал, но нужно быть титаническим олдом типа гологеймса, чтобы осмелиться показать свой релиз двачерам.
Аноним 02/08/23 Срд 23:22:35 #68 №891971 
>>891959
Смотря какого уровня. Я делаю мобильные кликалки и зарабатываю ими себе на пивас. На днях, надеюсь, третью рожу.
Аноним 03/08/23 Чтв 01:14:06 #69 №891982 
НАТКНУЛСЯ НА СЕКС-МОД НА МАЙНКРАФТ
@
ЗАХОТЕЛ СДЕЛАТЬ СВОЙ МАЙНКРАФТ
@
С ГОДОТОМ И ШЛЮХАМИ


>>891926
>прогрессирующий объект в игре
>>891942
>наслаждайся отказами
В майнкрафте будешь перезаписывать весь чанк на диске после каждого добавления/удаления блока?
Аноним 03/08/23 Чтв 01:38:04 #70 №891983 
эх.jpg
>>891959
>создал хоть что-то в голове
В голове - создал. А что?
Аноним 03/08/23 Чтв 05:45:11 #71 №891994 
Как же много времени уходит на геймдев. Если ты соло разработчик, то натурально приходится ебашить практически всё свободное время и при этом один хрен ДОЛГА. Вот сейчас мне нужно ассетов нарисовать (картинок в сцены) и тут просто по времени выходит адово, при том, что сами картинки получаются "ну такое себе". И это "ну такое себе" около 6 часов занимает. Как я должен и работать и игру делать одновременно? Конечно это занимает миллион времени чисто до прототипа дотянуть и понять, что это говно.
Аноним 03/08/23 Чтв 06:34:32 #72 №891996 
>>891994
Почему не брать ассеты бесплатные с итч.ио? Они же по открытой лицензии.
Аноним 03/08/23 Чтв 06:41:40 #73 №891997 
>>891996
Музыку беру (я сам пробовал писать, но только две бшки выдавил и понял, что + музыка и я просто не потяну всё это по времени). Остальное там не получится взять из-за того как графически выглядит игра (задники и ростовые спрайты персонажей). Заказать кому-то тоже не вариант, так-как я нищий бомж. Да и не хочу деньги тратить на то, что 90% не окупится. Плюс художник может помереть или ещё что и тогда вообще пиздец.
Аноним 03/08/23 Чтв 08:06:48 #74 №892003 
>>891994
Ну а ты думал, почему всякие Тоади и Крисы Ханты десятилетия делают свои проекты?
Аноним 03/08/23 Чтв 12:02:27 #75 №892025 
>>891982
> В майнкрафте будешь перезаписывать весь чанк на диске после каждого добавления/удаления блока?
Буду.
А что конкретно тебя смущает? Операции добавления блоков делает игрок ЗНАЧИТЕЛЬНО МЕДЛЕННЕЕ, чем компьютер обновляет экран.

Хорошо, я уточню ещё один момент, неочевидный, который вроде как не упоминался в этом дискассе (но мы его не раз обсуждали в прошлых тредах).
Сохранение состоит из двух частей:
1. Формирование массива данных для сохранения игры, производится в памяти, точнее в переменной. Множество автономных агентов сохранения отправляют свои данные в этот массив, через событийную (сигнальную) модель/парадигму, и это легко обрабатывается движком.
2. Запись актуального массива данных в сейв-файл на диске. Эта операция дорогостояща и выполняется по таймеру, раз в секунду, например. Менеджер сохранения должен уметь блокировать или приостанавливать запросы на добавление данных по п.1. во время записи файла.
Аноним 03/08/23 Чтв 12:05:44 #76 №892026 
>>891994
> при том, что сами картинки получаются "ну такое себе". И это "ну такое себе" около 6 часов занимает. Как я должен и работать и игру делать одновременно?
Рисуй не просто "ну такое себе", рисуй примитивное говнище уровня детсадовских каракуль. И лабай на этом прототип. Потом если прототип окажется годный, привлечёшь спонсоров с баблом, на бабло наймёшь художника.
Аноним 03/08/23 Чтв 12:33:07 #77 №892034 
>>891994
Снижай масштаб своих идей. Лучше сделать 3-4 законченных минималистичных игры, каждая из которых лучше предыдущей, чем 1 долгострой, на который никто не посмотрит.
Аноним 03/08/23 Чтв 12:52:09 #78 №892036 
>>892003
Так вот в том-то и дело. Я знаю что разраб Stardew Valley, по моему, чисто сидел на шее у своей девушке и игру делал.
>>892026
Да я знаю, но. Во-первых с таким прототипом как я делаю инвесторов хуй будет. Да и потенциальная прибыль как бы такая какая планируется никого не заинтересует. Во-вторых да нужно было бы с каракуль начать, чтоб чисто код потрогать и геймплей обкатать, но я уже покодил менюшки, устал от кода чуть-чуть и мне захотелось на что-нибудь другое переключится. Переключился на рисование картинок. И вот если каракули буду рисовать, то удовольствия мало.
>>892034
Да я и так уже. Решил просто мини-игру пока сделать для игры, а там дальше посмотрим.
Я на прошлом проекте обосрался по полной с амбициями своими. Думал всякого сделаю, оказалось на всякое нужно миллион времени. В итоге случился лютый обосрамс. Но хоть опыт получил. Я же был совсем ещё нулёвый, а сейчас нулёвый +. Планирую разбить всю разработку на такие вот мини-игры и пилить потихоньку.
Аноним 03/08/23 Чтв 16:48:41 #79 №892082 
загруженное.png
>>891452
>крутой иммёрсив сим шутер от первого лица
Ясно... Нет, что ты в это понятие вкладываешь? Иммерсив - это, вроде, ААА-реализм про погружение на вагонетке в роль какого-нибудь бомжа, который что-то там делает по линейному сюжету с киношными катсценами, в мире очень избыточных статичных декораций...

А почему TrenchBroom? Не проще ли делать всю геометрию в Blender, а прототипирование уровней делать в Godot с помощью CSG нод?

>как сделать шоб камера крутилась
Есть разные способы, в зависимости от того, что тебе нужно получить в результате.
>не знаю как прыжок реализовать
Почти в каждом туториале по чарактер контроллеру прыжок подробно разбирается.

>Я очень хочу создать эту игру потому что её сюжет будет раскрывать тему которая коснулась лично меня и возможно даже очень многих двачеров.
Отец бросил мать и ушёл из семьи, а сына-сычина вырос девочкой внутри с характером избалованной принцессы? А в чём шутер? Стрелять спермой в потолок, лёжа на кровати и двачуя капчу?

>Если кого-то интересует подробнее - пишите в телеграм (я стесняюсь при всех на дваче писать а то вдруг засмеют за идею истории).
Это троллинг? Ты стесняешься анонимно рассказать историю игры, которую тебе рано или поздно придётся опубликовать на всеобщее обозрение, а палить свой сравнительно публичный аккаунт вот так вот сразу не стесняешься?

>лучше идут дела с С# в Юнити чем с ГДскриптом
GDScript удобнее, чем C# (и в Godot, и в Unity).

>дизайнеров интерфейса
Ты сначала игру сделай, дизайнер. Зачем тебе меню с настройками размера экрана (полнейший атавизм в современных играх, не считая труъ-пиксель-ретро дроча на Ъъъ-разрешение 320х240 в окошке), если у тебя игры даже в зачаточном состоянии нет? Да даже грубого прототипа основных механик нет. Алсо, модели с текстурами ты тоже раньше времени начал пилить, у тебя даже чарактер контроллера толком нет, а ты уже какие-то домики лепишь, зачем? В тренчбруме, лол, ты в кваку 20 лет карты пилил, прежде чем решил игру сделать? Не обижайся, все делают подобные организационные ошибки в самом начале, пытаясь делать декоративные детали раньше фундаментальных. Сделай сначала играбельный прототип на уровнях из CSGBox без текстур, только потом поговорим о том, какие модели тебе нужны.
Аноним 03/08/23 Чтв 17:28:14 #80 №892093 
>>892025
>Операции добавления блоков делает игрок ЗНАЧИТЕЛЬНО МЕДЛЕННЕЕ, чем компьютер обновляет экран.
При чём тут экран? Игрок может спамить блоки со скоростью несколько блоков в секунду. А динамит уничтожает сразу десятки блоков. Даже если ты сделаешь всего одно сохранение на взрыв одного динамита, игрок просто наспавнит сотни блоков динамита и взорвёт только один, а остальные будут взрываться с интервалом в доли секунды. Ещё есть поршни, которые меняют блоки в чанках, и способны давать нагрузку больше динамита. Рельсы можно переключать, дверьми хлопать и т.д., всё это можно назвать "прогрессом" и всё это может происходить много раз в секунду.

Майнкрафт просто помечает изменённый чанк, а сохраняет весь мир позже, когда наступит время. Да, ты можешь потерять 5 минут игры, если у тебя вырубился электричество или крашнется ОС или сама игра, но зато шанс получить испорченный чанк или весь сейв в несколько раз меньше, а игра не делает лишних обращений к ОС и диску.

>Формирование массива данных для сохранения игры, производится в памяти
Массив данных в готовом для записи на диск формате, я так понимаю? Тогда это дорогостоящая операция, потому что хранение на диске отличается от формата, с которым игра работает в памяти.

Скажем, в том же Майнкрафте может быть трёхмерный массив чисел. Но на диск может записываться не весь этот массив, а сжатая его версия. Просто потому что нерационально хранить тысячи нулей, идущих подряд, это быстро раздувает сейв мира на гигабайты.

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

Даже SSD диски спотыкаются и тормозят, если у тебя огромный поток коротких файлов. Они быстры только если у тебя файл весом сотни МБ. В современных SSD запись вообще очень медленная, они быстро пишут только в специальный кэш.

Допустим, на HDD твоё избыточное созранение слабо влияет, но SSD и flash-память мобильных устройств это будет избыточно изнашивать. Особенно флеш-память, у неё нет выравнивания износа.

Ну и т.к. мы говорим про мобильные игры, я уверен, что лишние операции с диском излишне нагружают процессор, повышая температуру и ускоряя разряд аккумулятора. Слишком большая цена для игрока ради 1-5 минут геймплея в какой-то гиперказуалке.
Аноним 03/08/23 Чтв 17:37:47 #81 №892098 
>>892082
>GDScript удобнее, чем C#
Лол, чем?
Аноним 03/08/23 Чтв 18:09:15 #82 №892116 
GDScript есть в Юнити?
Аноним 03/08/23 Чтв 18:24:25 #83 №892122 
>>891994
>Как же много времени уходит на геймдев. Если ты соло разработчик, то натурально приходится ебашить практически всё свободное время и при этом один хрен ДОЛГА.
Жалуешься на время - значит, геймдев - не твоё.

Сравни с игрой в игры. Одни люди жалуются на гринд в какой-нибудь игре, другие молча заносят тысячи долларов, чтобы избежать этого гринда. А третьи просто тысячи часов гриндят и получают удовольствие. Если тебе не нравится делать игру, зачем себя заставлять? Это ведь не твоя работа, как я понял, а хобби.

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

Дело тут не только в том, что неудачная задумка может поставить крест на десятках и сотнях часов рисования графики. Дело ещё в том, что интересная графика может скрывать под собой скучный геймплей. Ты легко можешь спутать интересную графику с интересным геймплеем. Чтобы избежать этого заблуждения, нужно сделать игру интересной даже с цветными квадратиками вместо полноценных спрайтов (или цветными кубами вместо сложных 3D моделей), а только потом уже заниматься раскрашиванием игры. Скучные провальные игры с качественной графикой так и рождаются - художник сразу сел и нарисовал кучу спрайтов, а игру так и не сделал. В то же время есть очень увлекательные игры на ASCII "графике", то есть без иллюстраций совсем, только с очень простыми символьными обозначениями для того, чтобы отличить один объект от другого.

Кстати, беда ассетфлипов отсюда же: ассетфлипер берёт готовые красивые ассеты и пытается вылепить из них игру, но вместо интересной игры у него получается только скучная сборка интересных ассетов. Сами по себе ассеты могут быть хороши, но они мешают разработчику создать интересную игру, обманывая его восприятие. Скажем, если тебе нравятся аниме-тян, ты можешь скачать готовую модельку аниме-тян и закинуть в движок, и тебе это понравится, но это не игра и для игрока ценность твоей работы равна нулю. Аналогично будет, если ты сам своими руками сделаешь эту аниме-тян и закинешь в движок, потому что для игрока нет разницы, что ты сделал сам, а что ты скачал; важно только, что игры у тебя нет, есть только интересная моделька, с которой нечего делать.

Даже ААА проекты начинаются с блокинга уровней и прототипов без финальной графики. А инди тем более важно начинать с прототипа без графики, потому что он не может позволить себе скучный симулятор ходьбы с очень дорогой графикой.

>картинки получаются "ну такое себе". И это "ну такое себе" около 6 часов занимает.
Можешь показать пример того, что выходит? Хотя бы рандомную картинку из интернета, похожую на то, что ты сам делаешь. Если тебе навыков не хватает, то с улучшением навыков ты будешь быстрее делать картинки лучшего качества. Также можно оптимизировать процесс работы и заменить инструменты. Для сравнения, проще накидать в 3D сцену из кубов и потом "обмазать" её, чем рисовать полностью с нуля, вымучивая образы из своего воображения. Так многие "крутаны" делают в контексте иллюстраций, а к играм это тем более применимо т.к. от игр не ожидают особой художественной ценности.

>>892036
>с таким прототипом как я делаю инвесторов
Можно попробовать краудсорсинг, если сможешь привлечь целевую аудиторию. Хотя краудсорсинг эффективнее с готовой графикой без прототипа...

>Да и потенциальная прибыль как бы такая какая планируется никого не заинтересует.
Если заранее знаешь, что проект провальный, зачем тогда его вообще начинать? Зачем вкладывать по 6 часов в каждую картинку, если в это потом никто играть не будет? Ради опыта прототип без графики ценнее кучки ассетов.

>я уже покодил менюшки, устал от кода чуть-чуть и мне захотелось на что-нибудь другое переключится.
Лол, у тебя там какие-то монструозные менюшки с десятком уровней вложенности и сотнями кнопок? Большинство игровых механик можно совсем без менюшек прототипировать, зачем тебе менюшки? Допустим, инвентарь сложно сделать, но это лишь небольшая механика от всей игры в целом.

Кроме того, в Godot менюшки - самое лёгкое.

>Переключился на рисование картинок. И вот если каракули буду рисовать, то удовольствия мало.
А мог бы сделать прототип и получать удовольствие от игры в прототип, мотивируя себя постепенно рисовать нормальную графику для него.

Конечно, если у тебя не симулятор ходьбы, в котором всё удовольствие от рассматривания картинок...
Аноним 03/08/23 Чтв 20:19:25 #84 №892151 
>>892093
> При чём тут экран?
Потому что главный цикл игрового приложения, это цикл обновления экрана. Дальнейшее не читал, уж извини. Иди учи матчасть. Майнкрафтер. блять.
Аноним 03/08/23 Чтв 20:25:35 #85 №892154 
>>891959
Ты издатель? Если нет, к чему вопрос?
Аноним 03/08/23 Чтв 20:25:40 #86 №892155 
Есть годные туторы по коду на русском?
Аноним 03/08/23 Чтв 20:29:20 #87 №892156 
>>891917
Ну это чушь. Либо пишешь ему аппеляцию что сейвы опциональны по их же правилам. Либо у тебя непонятно работает сейв и это действительно откат, тогда делай как все современные - чекпоинты или главы, миссии. Чтобы было ЯВНО видно игроку и модеру, что вот в этой точке был сейв.
Аноним 03/08/23 Чтв 21:27:55 #88 №892192 
>>892155
Stepik курс по питону, потом сходу поймёшь гдскрипт
Аноним 03/08/23 Чтв 23:18:50 #89 №892227 
>>892192
Степик, плиз.
Аноним 04/08/23 Птн 03:39:39 #90 №892245 
test.png
>>892122
>Жалуешься на время - значит, геймдев - не твоё.
>Если тебе не нравится делать игру, зачем себя заставлять?
Мне нравится делать игру. Я так просто поныть решил. У меня стаж геймдева 2 года. Если бы мне нравилось я бы уже бросил давно. Я же не дурак тратить столько времени на то, что мне не нравится.
>тебе уже сказали, но ты всё неправильно делаешь.
Я понимаю. Но концепт есть твёрдый. Спизженый, обкатаный и проверенный. С меня только видоизменение под свои нужды и доведение до ума. И опять таки я упомянал свою мега код сессию знакомства с годотом, когда я менюшки кодил. Я хочу переключится на другой вид деятельности. Мне кстати очень нравится этим геймдев, что если заебался что-то делать, то есть возможность переключится и при этом всё равно продуктивно время потратить. Так-то я понимаю риск, но готов на него если получаю удовольствие от процесса. А я получаю и именно по этому мега рискую и мне пох.
И я прям понимаю твою мысль. Рили очень легко проебаться на графике и оставить игру без, собственно, игры. Тысячи примеров имена который хуй теперь вспомнишь. Риск большой, но у меня есть некоторая уверенность в концепте, что позволяет мне рискнуть.
>Можешь показать пример того, что выходит?
Пик. Это я рисовал для себя. Что сейчас рисую скидывать не буду, я стесняюсь. Для игры чуть хуже выглядит, так-как там не иллюстрация всё таки, а чуть другое.
>Для сравнения, проще накидать в 3D сцену из кубов и потом "обмазать" её, чем рисовать полностью с нуля, вымучивая образы из своего воображения. Так многие "крутаны" делают в контексте иллюстраций, а к играм это тем более применимо т.к. от игр не ожидают особой художественной ценности.
Да. Я знаю про такие методы. Илюшке кувшину привет. Если к такому не прибегать, попа может лопнуть от напряга высерать каждый раз что-то оригинальное из головы.
>Можно попробовать краудсорсинг, если сможешь привлечь целевую аудиторию. Хотя краудсорсинг эффективнее с готовой графикой без прототипа...
Да там совсем порно. Тут как бы да. Плюс игра не большая, а то, над чем сейчас работаю и вовсе маленькое.
>Если заранее знаешь, что проект провальный, зачем тогда его вообще начинать?
Ну я не знаю наверняка. В голове звучит не плохо. Я просто пессимист и нытик. А ещё есть опыт обосрамса.
>Лол, у тебя там какие-то монструозные менюшки с десятком уровней вложенности и сотнями кнопок?
>Допустим, инвентарь сложно сделать, но это лишь небольшая механика от всей игры в целом.
Так вот я и работал над инвентарём. Причем я даже делал его не через сетку (где там тащишь и всё такое), а через обычный список. Но там очень много просто. Оружие, броня, потребляемое. Каждое со своими характеристиками. Эти характеристики должны выводится в инвентаре и в магазе. Возможность открыть инвентарь, возможность пойти в магаз. Экипировка всего эквипа. Вот над этим работал. Плюс я тупил много, так-как с годотом не работал никогда. Тем не менее было очень весело. Это потраченное время было весёлым, что уже хорошо.
>Кроме того, в Godot менюшки - самое лёгкое.
Ну с моего опыта сложно сказать, но так-то да. Я бы не сказал что было прям сложно. Я просто тупил.
>А мог бы сделать прототип и получать удовольствие от игры в прототип, мотивируя себя постепенно рисовать нормальную графику для него.
Бля. Кто-то делает игры чтобы в них потом играть? Я просто когда прошлую делал до того её затёр, что там пиздец. >Конечно, если у тебя не симулятор ходьбы, в котором всё удовольствие от рассматривания картинок...
Так вот в том-то и дело. Картинки важны очень в моей идее. И особенно в первом этапе этой идеи. Вот когда/если дойду до второго этапа, то там уже буду именно на кубах геймплей тестить.
Аноним 04/08/23 Птн 06:13:55 #91 №892249 
>>892245
>Пик. Это я рисовал для себя.
Красиво. Если тратишь много времени на одну линию из-за неточности (часто нажимаешь ctrl+z), попробуй векторный редактор (Inkscape норм) - там любую линию легко поправить и легко добиться чёткого, гладкого лайн-арта. В растровых редакторах векторные слои часто очень ограниченные и не раскрывают весь потенциал векторной графики.

Я сам имею опыт в растре, векторе, пикселях и 3D. Пиксель-арт мне не нравится, в 3D слишком много возиться для нормальной картинки, в растре нужно чтобы рука не дрожала на планшете, а вот вектор самый сбалансированный: можно рисовать любым устройством ввода, нет требований к точности, не слишком много технических нюансов, визуально базовый стиль приятен и популярен.

>Я просто пессимист и нытик. А ещё есть опыт обосрамса.
Но ты не сдался и продолжаешь работать, молодец. Меня завышенные и неоправданные ожидания совсем в депрессию скатили, сил ни на что нет.

>Оружие, броня, потребляемое. Каждое со своими характеристиками. Эти характеристики должны выводится в инвентаре и в магазе.
Делается универсальная система, а дальше просто описываешь предметы через tres ресурсы Godot. Главное придумать достаточно универсальную систему, чтобы потом костыли не пришлось делать.

Для примера: предмет несёт Dictionary со всеми характеристиками, для отображения достаточно универсальной нодой - она выводит значения всех ключей независимо от типа предмета и своего положения в дереве сцены. А магазину не нужен тип предмета - его волнует только стоимость и проведение транзакции с игроком. Тип предмета влияет только на слот на теле персонажа и способ использования.

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

>Кто-то делает игры чтобы в них потом играть?
Если игра сильно полагается на процедурную генерацию и эмерджентные механики, то почему бы и нет? Вполне возможно сделать игру, которая будет удивлять её разработчика. Тем более тебе всё равно в неё играть, если не хочешь, чтобы игроки жаловались на банальнейшие баги.

>Картинки важны очень в моей идее.
У тебя там, случайно, не симулятор свиданий?

Удачи в разработке. Главное - не выгореть.
Аноним 04/08/23 Птн 08:18:13 #92 №892254 
>>892249
>Красиво.
Спасибо.
>попробуй векторный редактор (Inkscape норм)
Спасибо за наводку. Я когда только начинал рисовал линии в растре и это просто жопа. Потом додумался векторный слой подключать. Стало в разы легче и быстрее и приятнее, но когда пытаюсь линию поправить у меня компьютер нах умирает от того сколько там точек в линии, а потому как бы вот. Попробую Inkscape, надеюсь там лучше, хотя мне кажется, что это просто у меня такой скилл низкий.
>Но ты не сдался и продолжаешь работать, молодец.
Ну как бы да. А что ещё остаётся? Я не могу просто сидеть на жопе и ничего не делать. По этому продолжаю работать, а это ещё и довольно интересно так что мне легче. Плюс у меня есть опыт не хороший. Один раз не по своей хотелке пришлось сдаться и пересмотреть планы на жизнь. Я от шока чуть не помер. Если ещё раз такое повторится я головой ебанусь, так что тут как бы только вперёд. Пусть там могут поджидать каловые массы, но даже если так, мне хоть будет чем себя утешить себя и пережить это всё зная что я старался.
Соболезную твоей ситуации, но даже совета дать не могу. Тут натурально бой с тенью.
>Делается универсальная система, а дальше просто описываешь предметы через tres ресурсы Godot.
Я так и сделал, но проебался чутка. Инвентарь игрока ресурс, а инвентарь магазина - нет. Плюс если переделать как нужно, там придётся похоже с инстансами разбираться (так как без них один хрен будет тоже самое что и сейчас, то есть просто готовые ноды кнопки каждая со своим кодом), а мне пока не хочется, так что пох, в другой раз. Благо предметы все прописаны мной и не генерируются. Но ресурсы это топ конечно. Я когда с ними стал разбираться мне очень понравилось как всё удобно и на сколько они облегчают работу.
>Тем более тебе всё равно в неё играть, если не хочешь, чтобы игроки жаловались на банальнейшие баги.
Да у меня там без генераций всяких. А играть да, я про это и говорю. Там в тестах так игру вдоль и поперёк пройдёшь, что тут уже как бы наигрался.
>У тебя там, случайно, не симулятор свиданий?
Не. Но близко. Я школьником был, прочитал Цукихиме и такой: "нихуя себе". Потом прочитал фейт и такой: "НИХУЯ СЕБЕ А ТАК МОЖНО БЫЛО!?". У меня была идея ещё тогда что-то подобное сделать, но даже мой куцый умишко школяра понимал, что писать по сюжету я не вывезу. Так что спустя около 7 лет решил всё таки что-то сделать, но с гейплеем, чтоб не так на нарратив полагаться. В итоге первая попытка оказалась не очень, но у меня теперь опыт есть.
>Удачи в разработке. Главное - не выгореть.
Спасибо. Удачи и тебе. Выгорания пиздец это. Лютая вещь.
Аноним 04/08/23 Птн 12:36:00 #93 №892282 
Я ещё в самом начале пути, но я выгораю уже после того, как мне надо сделать хотя бы одну реальную задачу. Типа сделать инвентарь какой-то простой, или нарисовать (или даже выбрать из ассетов) фон и иконки. После каждой задачи чувствую себя опустошенным и нужен хотя бы день чтобы отойти. Годы депрессии уничтожили нервную систему...
Аноним 04/08/23 Птн 12:51:02 #94 №892285 
>>892282
>выгораю уже после того, как мне надо сделать хотя бы одну реальную задачу.
Вероятно, ты берёшь на себя слишком комплексную задачу, пытаясь решить её в один присест. Разбивай её на части, и решай эти части как индивидуальные задачи. Составляй план и отмечай выполненное.
https://ru.wikipedia.org/wiki/Декомпозиция
https://ru.wikipedia.org/wiki/Диаграмма_связей

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

Тогда ты не будешь путаться в том, что именно тебе необходимо сделать, и будешь чувствовать больше удовлетворения от того, что сделал больше задач.

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

>Годы депрессии уничтожили нервную систему
С этим к врачам обращайся.
Аноним 04/08/23 Птн 14:57:41 #95 №892306 
>>892254
>линии в растре и это просто жопа
>это просто у меня такой скилл низкий
Тут несколько причин. Да, конечно, чем больше ты тренируешься рисовать линии, тем лучше они будут, художники рекомендуют делать упражнения по рисованию одних только линий каждый день. Ещё влияет то, как именно ты рисуешь: вращая в большей степени запястным, локтевым или плечевым суставом; запястье не может провести длинные ровные линии, а с помощью локтя и плеча сложно делать короткие и точные отрезки. Размер графического планшета сильно влияет, так, на планшете с рабочей зоной размером А5 особо не развернёшься. Старые и дешёвые планшеты вносят кучу дополнительных ошибок из-за менее чувствительного сенсора. Так что даже если удаётся нарисовать ровную линию карандашом на бумаге, на компьютере это сделать сложнее. Крутаны покупают большие мониторы с пером вместо "слепой" доски для более точного контроля и зачастую делают наброски на бумаге, а на компе только обводят и раскрашивают. Ещё есть куча способов сделать линии лучше, от сглаживания в настройках программы до рисования на огромном холсте толстой кистью для последующего сжатия холста.

Короче, ты не одинок в этих проблемах, и дело далеко не только в абстрактном навыке.

>векторный слой
>пытаюсь линию поправить у меня компьютер нах умирает от того сколько там точек в линии
Krita? Там почему-то очень много точек создаётся.

>Попробую Inkscape, надеюсь там лучше
Да, с векторными линиями там однозначно лучше. Плюс куча удобных инструментов, которые я не встречал в растровых редакторах.

Знаю три основных техники рисования в векторе:

1. Инструмент "карандаш", аналог того векторного слоя в Krita: создаёт много точек, пока ты ведёшь перо. Чем быстрее ведёшь, тем меньше точек. Но в Inkscape есть очень удобный хоткей ctrl+L, позволяющий быстро сократить лишние точки в линии. Этим способом можно делать наброски от руки прямо в векторе.

2. Инструмент "ручка", имеет два режима работы: простые клики создают ломанную линию (острые углы), а если зажать и вести в сторону, можно делать кривые Безье. Любую точку в любой линии можно конвертировать в острую или гладкую, так что иногда я делаю ломанную и потом вручную сглаживаю её. Тут уже не обязательно работать пером, мышкой даже удобнее.

3. Инструменты "прямоугольник" и "овал", с помощью которых можно накидать силуэт или какую-то деталь, а потом использовать хоткеи для булевых операций над фигурами или сразу конвертировать в линии. Потом переходишь в режим редактирования (F2) и подгоняешь линии под желаемый результат. Мне лично такой метод нравится больше всего, он даёт возможность быстро визуализировать грубые формы и потом детализировать по необходимости. Чем-то напоминает рисование пятнами в растре, когда из бесформенных пятен постепенно формируются детали. Всё равно многие сложные объекты состоят из множества базовых форм, достаточно эти базовые формы немного деформировать. Особенно полезно при рисовании рукотворных предметов - там чаще всего встречаются прямые линии и овалы.

>А что ещё остаётся? Я не могу просто сидеть на жопе и ничего не делать.
Из твоих слов я сделал вывод, что у тебя есть основная работа. Не тяжело работать над игрой по 6 часов после рабочего дня?

>Но ресурсы это топ конечно. Я когда с ними стал разбираться мне очень понравилось как всё удобно и на сколько они облегчают работу.
Ага. В движке есть JSON и я постоянно порываюсь записывать данные в JSON, но, если подумать, ресурсы в Godot как раз выполняют всю ту работу, ради которой в других движках валяются длинные файлы конфигураций в JSON, XML или в своём формате, плюс встроенные функции инспектора.

>писать по сюжету я не вывезу. Так что спустя около 7 лет решил всё таки что-то сделать, но с гейплеем, чтоб не так на нарратив полагаться.
Мне кажется, визуальную новеллу всё же куда проще сделать нормально. Для визуальной новеллы достаточно быть писателем и художником, а для игры с геймплеем и сюжетом нужно быть писателем, художником, геймдизайнером, левелдизайнером, саунддизайнером, программистом и тестировщиком. Забить на сценарий можно только если у тебя его совсем нет, как в какой-нибудь песочнице без сюжета. Кроме того, как я понимаю, сценарий новеллы можно сравнительно легко переписать в определённых пределах без изменений в графике, а вот игру так радикально править - тяжело.

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

>первая попытка оказалась не очень
На каком-то другом движке делал? RenPy?
Аноним 04/08/23 Птн 21:55:51 #96 №892429 
>>892192
Вот прям сходу, без малейших проблем?
Аноним 04/08/23 Птн 22:24:15 #97 №892439 
https://docs.godotengine.org/en/stable/tutorials/inputs/input_examples.html рекомендует считывать событие в _input(event) если мне нужно что-то одноразовое, а в _physics_process(delta) считывать через Input когда мне нужно длительное нажатие. Я хочу считывать нажатие как в _input, но внутри _process, потому что мне нужно считывать медленно и возвращать значение в общий цикл обработки. Какие у меня могут быть пути решения?
Аноним 04/08/23 Птн 22:25:47 #98 №892440 
>>892439
> Какие у меня могут быть пути решения?
_just_pressed_
Аноним 04/08/23 Птн 22:33:55 #99 №892444 
>>892440
Это не совсем то, я хочу чтобы если кнопка была зажата, то ивенты всё равно поступали, но медленно, как в _input
Аноним 04/08/23 Птн 22:36:34 #100 №892446 
>>892444
> медленно, как в _input
Но там не медленно. Там событийно. Событийно не значит медленно. С чего ты взял, что где-то что-то медленно? Если тебе нужны задержки, юзай таймер.
Аноним 04/08/23 Птн 22:39:46 #101 №892449 
>>892444
Ты что то странное себе напредставлял. Нажатие в _input прилетает ОДИН раз на каждое событие, а не с какой то медленной периодичностью. (Может быть, тебя вводит в заблуждение, что операционная система посылает нажатия кнопок при зажатой клавише, но это вообще то настраивается/отключается в системе)
Аноним 04/08/23 Птн 22:51:28 #102 №892452 
Если будет проще понять что я хочу, то моя цель - управление как в DCSS. Что после нажатия обрабатывается один раз, затем если кнопка всё ещё зажата, то начинается движение в ту же сторону. _input давал именно такой результат, но мне хочется чтобы функция обработки ввода возвращала значение с состоянием игры (можно обрабатывать противников/ожидание ввода/открыть инвентарь/другое). Да, можно ставить стейт и из _input, но мне не очень нравится такой подход
>>892446
Сравнительно медленно с _process. Таймер звучит не очень, но
>>892449
Да, это я как-то не учёл. Надо подумать тогда как лучше.
Аноним 04/08/23 Птн 23:17:24 #103 №892459 
>>892452
С таймерами все ок. Тебе надо ловить два события, нажатие кнопки и отпускание кнопки. На нажатии кнопки, ты посылаешь в игру команду с этой кнопкой и запускаешь "длинный" таймер. Когда он срабатывает, проверяешь, нажата ли кнопка, посылаешь в игру команду, и запускаешь "короткий" таймер. Короткий таймер делает то же самое.
Отпускание кнопки принудительно останавливает оба таймера.
Алсо, в классических рогаликах для такой ходьбы есть специальная кнопка, может быть Shift+стрелки или G, стрелки - до ближайшего "объекта интереса" или стенки.
Аноним 04/08/23 Птн 23:21:29 #104 №892460 
>>892452
> Таймер звучит не очень
Кстати, это можно тоже через отдельную стейтмашину реализовать. Например, задаём такие стейты:
enum KeyStates { Released, Pressed, Holded}
И задаём два кастомных сигнала
signal PressedOnce
signal PressedAndHold
Затем реализуем следующий алгоритм.
1. По умолчанию стейт Released.
2. Если кнопка нажата, стейт выставляется в Pressed, испускается кастомный PressedOnce сигнал и запускается таймер.
3. Если кнопка отжата, возвращаемся в Released и сбрасываем таймер, если он сам не остановился (таймер одноразовый).
4. Когда таймер выстрелил, переводим стейт в Holded и в _process либо обрабатываем удерживание клавиши, либо испускаем PressedAndHold если Holded
Аноним 04/08/23 Птн 23:25:12 #105 №892461 
>>892459
>>892460
Спасибо, буду думать, но наверно пока что оставлю говяно на _input. А то если буду слишком долго возиться слишком долго с такой относительно минорной деталью до выпуска хоть какого-то базового прототипа, когда толком ничего нет, то могу потерять мотивацию и забить вообще на проект.
Аноним 04/08/23 Птн 23:35:15 #106 №892463 
>>892461
Верное решение. Не проеби мотивацию. Как я когда-то. Сижу теперь как сыч, без игор.
Аноним 04/08/23 Птн 23:43:23 #107 №892465 
Как перестать думать о том, что игра Ерохина похожа на мою, но моя никогда не будет такой же хорошей?

Очень сильно демотивирует что-то делать...

>>892449
>Может быть, тебя вводит в заблуждение, что операционная система посылает нажатия кнопок при зажатой клавише, но это вообще то настраивается/отключается в системе
Повторное нажатие может посылать клавиатура.

>>892452
>мне хочется чтобы функция обработки ввода возвращала значение с состоянием игры (можно обрабатывать противников/ожидание ввода/открыть инвентарь/другое).
Что? Зачем? Почему? Не пойму. ИМХО, ты что-то неправильно понимаешь в работе Godot.

_physics_process работает с установленной в настройках частотой, по умолчанию 60 Гц.

_process зависит от вертикальной синхронизации и максимальной частоты монитора, поэтому может колебаться от 60 Гц до 2000 и более Гц, но чаще всего встречаются частоты: 60/75/120/144/240 Гц.

_input и ему подобные срабатывают только когда генерируется событие ввода, а эти события могут генерироваться с частотой от 125 Гц для самого слабого офисного оборудования, от 500 Гц для игрового варианта и тысячи Гц для топового.

Т.е. в большинстве случаев _input срабатывает на порядки чаще _process, особенно для мыши.

Одна важная разница: в _input код выполняется не обязательно 125-500 раз в секунду, а только когда ОС генерирует событие. В _process же ты 60+ раз в секунду дёргаешь Godot API с вопросом:
>а сейчас есть ввод? а сейчас? ну а сейчас-то есть? что, и сейчас нет? ну сейчас-то точно есть ввод? а сейчас? что, серьёзно ничего? ну а сейчас?
А в _input тебе может прилететь 500 сообщений:
>ВНИМАНИЕ! МЫШ КРОДЁТСЯ НА 0.01 ПИКСЕЛЯ!
За одну секунду. И это даже не предел...

Рекомендую для игрового персонажа использовать _unhandled_input, этот обработчик вызывается только если событие не обработано GUI.
Аноним 05/08/23 Суб 00:17:50 #108 №892471 
>>892465
>Как перестать думать о том, что игра Ерохина похожа на мою

Перестать об этом думать. И думать о том, как сделать, чтобы твоя была лучше ерохи.
Аноним 05/08/23 Суб 07:47:55 #109 №892523 
>>892465
>Что? Зачем? Почему?
Потому что я делают рогалик с ецс, и я не хочу чтобы системы гонялись впустую пока игрок думает над нажатием кнопки
> _unhandled_input
Да, я его и использую, я обозвал его _input из-за схожего принципа работы: только когда срабатывает событие, а не несколько десятков раз в секунду
Аноним 05/08/23 Суб 12:02:20 #110 №892558 
>>892523
> схожего принципа работы
В начале кадра весь инпут помечен как анхандлед. Если происходит событие инпута, сначала вызывается коллбэк _анхандлед_инпут и если инпут остался с флагом анехандлед, тогда вызывается коллбэк _инпут.
Аноним 05/08/23 Суб 13:00:51 #111 №892574 
>>892558
Ты что-то путаешь. Не путай ньюфагов.
>Nodes can also process input events. When present, the _input function will be called for each input that the program receives. In many cases, this can be overkill (unless used for simple projects), and the _unhandled_input function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI Control nodes), ensuring that the node only receives the events that were meant for it.

>>892523
>я не хочу чтобы системы гонялись впустую пока игрок думает над нажатием кнопки
Тогда ты можешь воспользоваться встроенной системой паузы, она очень гибкая:
https://docs.godotengine.org/en/stable/tutorials/scripting/pausing_games.html

>рогалик с ецс
Как оно устроено? Дерево сцены юзабельно?
Аноним 05/08/23 Суб 13:22:47 #112 №892580 
>>892306
Да, про упражнения я знаю. Они действительно помогаю, но я уже решил теперь чисто через практику, так веселее. Планшет у меня норм. Маленький наверное, но я точно не знаю. Брал за 3,5 рубля в 18 или 19 году. Пока что он на все 100% отрабатывает. Я бы с экраном купил, но это уже с первый денег.
>Krita? Там почему-то очень много точек создаётся.
Не. Я в CSP работаю. Он так-то очень даже не плохой, но в векторе точек много, машина не выдерживает.
>Чем быстрее ведёшь, тем меньше точек.
Вот это звучит очень полезно. Да как и остальное в общем-то.
>Из твоих слов я сделал вывод, что у тебя есть основная работа. Не тяжело работать над игрой по 6 часов после рабочего дня?
Есть. Но я не каждый же день по 6 часов над игрой сижу. Я бы уже дуба дал если бы так делал. На выходных в основном. Опять же бывают очень продуктивные например полтора месяца, когда я могу нон-стоп работать над игрой. Что-то около 70% процентов свободного времени. А бывают месяца, когда прям не идёт. Выгорание начинается, тогда мож 30% максимум по мелочам, но даже не смотря на такое, открываю рисовальню или код и работаю хотя бы чуть-чуть. Какие-нибудь мелкие задачи.
>В движке есть JSON
Я видел пару гайдов на ютубе, но не смотрел их, а потом как раз гайд на ресурсы попался и собственно с JSON так и не познакомился.
>Для визуальной новеллы достаточно быть писателем и художником
Ты ещё про музыку забыл. Она как бы тоже решает. Ну это если серьёзно подходить к делу. Я просто помню осты из фейта и принцессы, да даже в лете осты не плохие. Не знаю я. В внке у нас три компонента. Текст, графоуни и звук. Одно не очень и пизда практически всему проекту.
>а для игры с геймплеем и сюжетом нужно быть писателем, художником, геймдизайнером, левелдизайнером, саунддизайнером, программистом и тестировщиком.
Ну как бы да, но как бы нет. То есть в игре с геймплеем от тебя врядли будут ожидать историю "до слёз" или мега инструментальный саундтрек опять же "до слёз". Геймплейный луп заебатый? Ну вот и отлично, остальное, не хотелось бы говорить, что вторично, но есть пространство для манёвра. А вот в внке тут пиздец. Ну ладно, там ещё графен и музыка, хотя графен нужен. Но вот если история туфта, то это всё. А так-как я знаю, что я творческий импотент, то я в жизнь не рискну внку делать. Да, внка легче, но только если ты "талант" или что-то в этом роде. Взглянуть хотя бы на рувно. Там после лета его тысячи родилось и померло, и ничего так и не высрали.
>Потом, кто твоя целевая аудитория?
Порнушечники. Я люблю всякие игры с ф95 и это практически единственное, что меня вообще веселит из игр. Так что вопрос даже не стоял в каком жанре делать.
Пусть я и сам порнушечник, но игру с одной лишь только порнухой делать мне скучно. Я так не смогу. За прошлый проект я понял, что сама половая тема довльно скучная. Из разряда очень скучная. А потому попробую что-то придумать в геймплейном плане. Тут и вступает годот.
>На каком-то другом движке делал? RenPy?
Не. На рпгме. Но там постоянная фрустрация была от того, что я вообще с движком никак работать не мог. Там же js. Если что-то нужно изменить иди меняй в родном коде написанном японцем. Там жопа была. Плюс я себе целей поставил много, я же только начинал и не знал что сколько может по времени занять. Провалил в итоге 90% из них. Лол. Да. Ну ничего. Опыт хотя бы получил. В годоте работать веселее.
Аноним 05/08/23 Суб 13:27:31 #113 №892582 
>>892574
> Ты что-то путаешь.
Нет, я в точности сказал то, что написано там. Просто некоторые вещи подразумеваются, как само сабой разумеющееся и не проговаривается вслух. Я проговорил.
> When present, _input function will be called for each input that the program receives. In many cases, this can be overkill
"Каждая нода вызывает коллбэк _инпут, если он написан в скрипте. И это оверкилл." Но они не указывают явно, что это происходит на ВТОРОМ шаге. Они пишут:
> and the _unhandled_input function might be preferred; it is called when the input event was not handled by anyone else
"и коллбэк _анхандлед_инпут может быть предпочтительнее; он вызывается, когда событие инпута не обработано нигде ещё". Под этим подразумевается именно то, что я написал:
1. Обработанность инпута - это системный флаг.
2. В начале каждого фрейма этот флаг пуст.
3. Вызов mark_input_as_handled() заполняет флаг.
4. При заполненном флаге коллбэки _input не вызываются.
Аноним 05/08/23 Суб 13:31:05 #114 №892585 
image.png
image.png
image.png
>>892574
>Как оно устроено?
В качестве ецс Arch https://github.com/genaray/Arch. Решил раз либа на С#, то и всё надо на нём писать. Дерево сцены только для гуя и графических объектов. Игрок, неписи, в будущем объекты и вообще всё - энтити. Вообще, я пока следую туториалу для рогалика на расте (https://bfnightly.bracketproductions.com/rustbook/), потому что там как раз про эцс и структурированный план того что нужно делать.
Аноним 05/08/23 Суб 14:33:49 #115 №892618 
>>892582
Я не понимаю.

Есть ноды: A, B, C и D.
У каждой ноды есть оба рассматриваемых метода.

Есть событие клавиатуры "нажата W".

unhandled input:
A принимает, но игнорирует.
B принимает и вводит W в своё поле.
До C и D сообщение не доходит.

input:
A, B, C и D вынуждены принять и игнорировать.

Что здесь не так?
Аноним 05/08/23 Суб 14:48:19 #116 №892620 
>>892580
> То есть в игре с геймплеем от тебя врядли будут ожидать историю "до слёз" или мега инструментальный саундтрек опять же "до слёз".
Метал Гиар
Аноним 05/08/23 Суб 15:07:38 #117 №892630 
>>892618
А, стоп, возможно, это я что-то путаю. Я раньше столкнулся с проблемой, когда у меня чарактер контроллер принимает ввод с клавиатуры даже если открыт чат и ввод клавиатуры предназначен только для чата. Но, возможно, это было только из-за того, что я делал Input.get_axis(), а не из-за обработчика _input? Я не помню уже. Сильно с этим помучился, но не помню, что в итоге решил сделать.
Аноним 05/08/23 Суб 16:14:31 #118 №892672 
>>890164 (OP)
3д билды на годоте тормозят, fps проседает ниже 30.
Аноним 05/08/23 Суб 16:47:16 #119 №892688 
1691243236181.png
1691243236194.png
1691243236195.png
1691243236201.png
>>892630
Короче, анон, я щас провёл тесты в движке и по тому что я увидел, выходит, что при маркировке хандледом перестают обрабатываться другие анхандледы. Хандледы же обрабатываются все равно. В общем я выше писал неверно.
Вот код и результаты теста на скринах. Выводятся только три принта. Четвёртый, из ноды А анхандлед - не выводится, потому что в ноде Б выставлен флаг и дальнейший коллбэк игнорирован.
Аноним 05/08/23 Суб 16:57:35 #120 №892698 
>>892580
>собственно с JSON так и не познакомился.
Там всё очень просто, достаточно документации:
https://docs.godotengine.org/en/stable/classes/class_json.html

Если захочешь писать какие-то данные вручную для загрузки через JSON, рекомендую взять вот это: https://hjson.github.io/ - там формат попроще для записи вручную и даже комментарии писать можно. Потом любым способом запускаешь их конвертер Hjson -> JSON и получившийся в результате файл загружаешь в Godot как JSON.

>Ты ещё про музыку забыл.
>Текст, графоуни и звук. Одно не очень и пизда практически всему проекту.
Лично меня музыка в играх особо не волнует. Да, если есть приятная музыка в тему - хорошо, но если музыки совсем нет - тоже хорошо. Чаще всего музыка не нравится, отвлекает, раздражает или просто бесполезна. Тем более в визуальных новеллах, которые суть короткие книги с простыми иллюстрациями а-ля диафильмы или слайд-шоу. Как часто ты встречаешь книгу с саундтреком, который обязательно нужно слушать во время чтения? Ладно ещё аудиокнига... А вот в играх с активным геймплеем звуки очень полезны, т.к. они влияют на погружение и могут использоваться для передачи полезной информации: тип поверхности по звуку шагов, рычание монстра, звон колокольчиков вблизи квестового предмета и т.д.

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

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

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

>если история туфта, то это всё
Писатели графоманят тонны второсортной писанины и кто-то это покупает и читает. Ты можешь не создать шедевр, но какая-то аудитория читателей и даже фанатов у тебя может сформироваться. Нужно просто быть как Дарья Донцова и выдавать народу новые книжки с картинками как напитки из торгового автомата. А вот если ты пять лет пилишь новеллу в надежде на широкое признание твоего Гения, тогда да, ты, скорее всего, сильно разочаруешься.

Собственно, на мой взгляд, сложность визуальных новелл в основном в графике. Можно написать тонны текста за считанные дни и даже найти подходящую по духу бесплатную музыку, но вот картинки сделать на приемлемом уровне сможет далеко не каждый. Для академического рисунка нужны годы ежедневного обучения, даже если метишь в флет-шейд вектор; готовые 3D модельки сродни ассетфлипу, а свои делать не особо проще рисования; нейросети не могут в стабильность и находятся в очень напряжённых отношениях с копирастами (всё равно что торренты - технология замечательная, но использование может быть незаконно); даже бегать с фотоаппаратом и искать актёров - бОльшая проблема, чем настрочить десятки тысяч букв диалогов.

>Пусть я и сам порнушечник, но игру с одной лишь только порнухой делать мне скучно. Я так не смогу. За прошлый проект я понял, что сама половая тема довльно скучная. Из разряда очень скучная. А потому попробую что-то придумать в геймплейном плане.
ИМХО, такие игры вообще сложно делать. Порнуха максимально сужает твою аудиторию, сокращает число площадок и видимость в интернете. Видя, что игра с порно, к ней предвзято относятся, если только это не какой-то всем известный проект. Если у тебя там сложный геймплей, часть дрочеров резко отваливается, если пришли тупо подрочить. А тех, кто мог бы получить удовольствие от геймплея, может отпугнуть элемент порно. Ещё и сама порнография очень субъективна - кому-то большие сиськи нужны, а кого-то от них тошнит - аудитория ещё больше сокращается, если у тебя не гарем на любой вкус со всеми формами, цветами, крыльями и рогами, но и гарем тоже резко обрубает аудиторию из-за хейтеров гаремников.

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

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

Имхо, идеальный вариант - сделать обычную игру, интересную для всех (условно, с рейтингом 0+), а потом добавить в неё порнуху якобы "неофициальным модом от третьих лиц". С одной стороны, игра будет жизнеспособна даже без порно, с другой стороны, игра будет намного интереснее дрочерам, но при этом не будет бросать на тебя тень "порнодела", ведь это чей-то чужой мод. Таким образом можно реально захватить две ниши. Практика показывает, что секс можно органично вписать практически в любую игру, было б желание рисовать спрайты или делать дополнительные анимации моделькам. Зачем вообще делать порнушную игру с геймплеем, если можно добавить порнуху в обычную игру с геймплеем?

>рпгм
Делаешь с видом сверху-сбоку как в JRPG? Вроде видел какой-то фреймворк для Godot, но меня это особо не интересовало (захочу - с нуля сделаю).
Аноним 05/08/23 Суб 17:30:22 #121 №892712 
>>892688
>Четвёртый, из ноды А анхандлед - не выводится, потому что в ноде Б выставлен флаг и дальнейший коллбэк игнорирован.
О чём в документации и написано.

>Хандледы же обрабатываются
Почему ты называешь их "handled"?
Нигде не сказано, что _input - это "_handled_input".
"Input" = "ввод" (любой).
"Unhandled input" = "необработанный ввод".

Как только ввод обработан, он перестает поступать в обработчик необработанного ввода. Логично? Логично. А обработчик без уточнений типа ввода обрабатывает вообще всё. Логично? Логично.
Аноним 05/08/23 Суб 17:41:39 #122 №892717 
>>892672
>3д билды на годоте тормозят
1. Опиши конфигурацию ПК (CPU, GPU, RAM, OS).
2. Какие билды используешь, где ты их взял?
3. Что в игре есть и что ты делаешь в скриптах?
4. Логи проверял? Если в логи идёт большой поток записей, движок может тормозить. Логи можно найти на диске или запустить игру через консоль.
Аноним 05/08/23 Суб 17:44:22 #123 №892719 
>>892672
Алсо, тормозит ли пустой проект с настройками по умолчанию? Некоторые настройки графики сильно повышают нагрузку. Но по умолчанию настройки должны быть достаточно производительными.
Аноним 05/08/23 Суб 18:06:51 #124 №892730 
>>892585
>вообще всё - энтити
Выглядит сложно...

>Дерево сцены только для гуя
У тебя странное дерево, зачем тебе SubViewport? Эта нода рендерит в отдельную текстуру, которая через SubViewportContainer рендерится в окно.

GUI можно нарисовать поверх всего остального с помощью ноды CanvasLayer:
https://docs.godotengine.org/en/stable/classes/class_canvaslayer.html

Или у тебя совсем не будет анимаций и ты решил таким образом сэкономить на рендеринге сложной сцены? Но вряд ли у тебя там будет много деталей. Выглядит как преждевременная оптимизация.

Туман войны можно было бы рендерить шейдером. Каждый тайл - один пиксель текстуры. Можно даже применить фильтрацию текстуры для "мягкой тени".
Аноним 05/08/23 Суб 19:02:15 #125 №892754 
image.png
>>892730
> зачем тебе SubViewport?
Из-за тумана войны самого, в годоте я с ним боролся больше всего в свои прошлые попытки заделать рогалик (это четвёртая итерация). Я хотел бы как на гифрелетед, но она сделана челиком на второй ещё версии движка и я не разобраля и не смог адаптировать его для своего ещё на третьем годоте.
Сабвьюпорт нужен был для старой (недоделанной) системы освещения из генерации текстур в прямом эфире.
Я планирую опять сделать подход к освещению, но когда будет достаточно много наработок, чтобы быть рабочим прототипом и он своим существованием меня мотивировал. Ключ моей мотивации сейчас - постоянные успехи, без завязываний на чём либо надолго.
Аноним 05/08/23 Суб 19:06:20 #126 №892755 
>>892754
Пришлось поискать но вот тот проект с не приклеившейся гифки https://github.com/llasram/godot-visibility-demo
Аноним 05/08/23 Суб 19:21:34 #127 №892758 
>>892558
Нет, сначала вызывается input, а если же никто не обработал, тогда вызовается unhandled input. Это база блджад, иначе бы было так что сначала вызывался необработанный, и... зачем тогда вызывать другие?
Алсо любая функция может пометить ввод как обработанный вызвав set_input_as_handled.
Аноним 05/08/23 Суб 19:24:50 #128 №892759 
>>892672
Что за "билды"?
Аноним 05/08/23 Суб 21:54:24 #129 №892803 
>>892712
Логично. Впредь буду знать.
Аноним 05/08/23 Суб 21:56:14 #130 №892804 
>>892759
Скорее всего, он подразумевает собранные по шаблону экспорта экспортированные проекты. Но ХЗ, подождём, пусть сам скажет.
Аноним 06/08/23 Вск 11:47:59 #131 №892850 
GODON'T ))))))
Аноним 06/08/23 Вск 14:34:28 #132 №892871 
https://youtu.be/9NaKoUZ6cQ0
Как же красиво ребята делают...
Аноним 06/08/23 Вск 14:56:44 #133 №892873 
>>892871
И ты делой. Давай, делой игоры.
Аноним 06/08/23 Вск 14:57:39 #134 №892874 
>>892698
>Если захочешь писать какие-то данные вручную для загрузки через JSON, рекомендую взять вот это
Спасибо. Я посмотрю.
>Лично меня музыка в играх особо не волнует.
Ну ты ПИЗДЕЦ. В смысле, да, согласен. Не обязательно чтоб там прям отвал башки был. И как бы музыка может либо сильно решать и тогда огромный +, либо она просто может быть и тогда всем пофигу.
>Тем более в визуальных новеллах, которые суть короткие книги с простыми иллюстрациями а-ля диафильмы или слайд-шоу.
Ну я просто ориентируюсь опять же на фейт и принцессу. Там-то бгмки хорошо задавали настроение в сцены. Я лично считаю что музыка - это вообще топ для передачи эмоций. Не даром люди на всяких концертах сознание теряют и в трансе штаны обсирают. Ну а звуки да, тоже полезны. Хорошие звуковые эффекты - всегда приятно.
Со следующими двумя абзацами согласен. Тут как бы сложно довольно получается. Даже если например музыка будет топ, то плохой сюжет всё испортит и людям будет плевать, и на оборот если сюжет топ, то даже средненький саундрек люди, чисто на эмоциях, могут переслушивать.
>А вот если ты пять лет пилишь новеллу в надежде на широкое признание твоего Гения, тогда да, ты, скорее всего, сильно разочаруешься.
Да я как бы и не претендую ни на что, но за именно сюжеты боюсь. Писанина это ведь не только про хороший и логичный сюжет, это ведь ещё красота и литературность слога и т.д. И вот тут-то я как раз и не очень.
>Собственно, на мой взгляд, сложность визуальных новелл в основном в графике. Можно написать тонны текста за считанные дни
Ну пиздец ты. Завидую твоему ходу мысли. Видимо каждому своё. Для меня графен, конечно, тоже проблема, но я уже всё. Согласен, что он может быть большой преградой в создании внки, так-как она, как раз, ВИЗУАЛЬНАЯ НОВЕЛЛА, что как бы намекает.
>Порнуха максимально сужает твою аудиторию, сокращает число площадок и видимость в интернете.
Да я знаю. Но я не претендую на большую и серьёзную аудиторию. Хочу так просто людей повеселить, а в процессе и сам повеселится.
>Учитывая, что игру с геймплеем сделать сложнее, чем простую порнуху (интерактивные анимации), может оказаться, что порнуха только портит твою геймдизайнерскую работу, а не улучшает её.
Да, я согласен, но я знаю примеры когда наличие геймплея не хило бустило игру. Да я и сам люблю игры с геймплеем, так что буду стараться сделать не просто "писька в письку". Посмотрим короче.
>Имхо, идеальный вариант - сделать обычную игру, интересную для всех (условно, с рейтингом 0+), а потом добавить в неё порнуху
Согласен. Но для такого нужно быть реальным гейм девелопером. Я себя не чувствую таковым. Опыта мало.
>Зачем вообще делать порнушную игру с геймплеем, если можно добавить порнуху в обычную игру с геймплеем?
Так вот в том-то и дело. Если есть сильная игровая база, то порнухой вряд ли получится что-то испортить. А если у тебя в игре нет элемента игры (игра говно), то тут уже всем плевать. Только самые отъявленные порнушечники в такое мучится будут.
>Делаешь с видом сверху-сбоку как в JRPG?
Да. Статик пошаг jrpgшный.
>Вроде видел какой-то фреймворк для Godot, но меня это особо не интересовало (захочу - с нуля сделаю).
Спасибо что сказал. Буду знать. Но я тож лучше с нуля поковыряюсь. Хочу разбираться в том, что делаю.
Аноним 06/08/23 Вск 18:45:36 #135 №892937 
>>892931 →
Аноним 06/08/23 Вск 19:06:25 #136 №892945 
>>892937
На итч лей - больше народа заметит. В браузере там тоже можно.
Аноним 06/08/23 Вск 21:18:54 #137 №893019 
>>892874
>И как бы музыка может либо сильно решать и тогда огромный +, либо она просто может быть и тогда всем пофигу.
Не пофигу. Примеры из личного опыта:
1. Майнкрафт. Фоновая музыка есть и в целом она неплохая, но игра её воспроизводит как-то вообще невпопад. Можешь бегать полчаса в тишине и ВНЕЗАПНО начинается громкая музыка, вот просто так. Или музыка перекрывает реально важные звуки. Особенно бесит когда эта музыка ВНЕЗАПНО начинается в тёмной пещере, как в каком-то хорроре перед встречей с боссом. Вот только никакого босса нет, она просто так началась. В мобильной версии музыка вынесена в отдельный пакет на 300+ МБ. Поведение фоновой музыки точно такое же пугающе раздражающе рандомное. Но без этого пакета ты не сможешь услышать мелодии пластинок, которые можно в игре вставить в проигрыватель. А игра даже не предупреждает, что для работы блока нужен пакет с раздражающей фоновой музыкой, лол, ты просто смотришь на куб с вылетающими нотами и слышишь тишину.

2. В GTA Online геймплей растянут гриндом на тысячи часов и игра может затягивать на весь день. Но "радиостанция" - это плейлист длительностью меньше часа. Надоедает уже на втором-третьем повторе в день. Хуже всего то, что если выключить радио в машине, то на заданиях включается навязчивая фоновая мелодия, которая ещё короче и будет повторяться пока задание не закончишь. А оно может длиться полчаса или даже дольше. Раздражает ужасно. Если часто меняешь машины, приходится регулярно переключать радио на любимые станции, а на заданиях очень часто радио тупо ВЫКЛЮЧАЕТСЯ каждый раз, когда ты покидаешь транспорт, и ты вынужден каждый раз настраивать радио, чтобы не слышать бесячую фоновую музыку конкретного задания. А потом задание заставляет тебя слезать с транспорта каждые 100 метров. И они ничего из этого не могут пофиксить за десять лет, только недавно дали возможность выключить лишние радиостанции - но это сопровождается крашем игры, когда твой пассажир включает радиостанцию из твоего чёрного списка, лол. Вообще, любая игра с гриндом вынуждает выключать музыку, чтобы она не бесила постоянным повтором.

3. В Flatout хороший саундтрек, но воспроизведение начинается с самого начала рандомной песни при каждом запуске гонки. Гонки достаточно сложные даже на аркадном управлении и зафейлиться из-за физики очень легко, поэтому приходится рестартить. В результате песня-то нравится, но ты вынужден её обрывать и слушать с самого начала что-то другое... или её же, рандом ведь.

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

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

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

>Не даром люди на всяких концертах
Это совершенно другое:
- близость к тысячам людей с тем же интересом;
- близость к любимым исполнителям на сцене;
- громкий звук аж сотрясает землю под ногами;
- световые эффекты, дым и т.д.
Суть концерта вообще не в музыке, исполнитель мог бы просто громко пердеть и любители его пердежа орали бы хором от удовольствия.
https://ru.wikipedia.org/wiki/Метеорист
А вот на записи чей-то пердёж слушать уже не то.

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

>красота и литературность слога
1. Начитанность влияет больше всего. Чем больше читаешь литературы, тем лучше твой слог.
2. Можно найти "бету" - человек, который тщательно вычитывает твою писанину и указывает на ошибки и возможные правки. В сфере фанфиков они бесплатно этим занимаются, но за деньги нанять, я думаю, будет намного дешевле писателя.
3. На английском нейронки уже несколько месяцев как научились выполнять работу беты, вычищая стиль и даже переписывая литературно. Теперь любая обезьяна может писать как Шекспир.
4. Ты не прозу пишешь и в твою игру не литературные критики играют (в основном). Каждый раз удивляюсь критике игр за литературные ошибки, как будто эти отзывы училка по литературе по привычке пишет.
5. Имхо, логичность сюжета всё же влияет больше. Логические дыры в сюжете чаще заставляют закатывать глаза и прикладывать руку к лицу, чем какие-то мелкие косяки в речи персонажей. Но если заранее всё планировать и визуализировать, то заранее увидеть и исправить косяки можно как косяки в дизайне ещё не написанной программы.

>Видимо каждому своё.
Ну, скажем, у меня скорость печати около 300 знаков в минуту и придумать какой-то сюжет по шаблонам не проблема (можно шаблонный генератор смастерить для вдохновения, если у тебя беда с фантазией), вычитать и исправить косяки тоже несложно. В конце концов, можно просто описать историю из жизни, приукрасив элементами фэнтези, вот тебе и оригинальный сценарий. Будет ли это шедевром на века? Вряд ли. Но прочитать люди смогут без проблем, и части читателей обязательно что-нибудь понравится, не обязательно быть 10/10, тем более что восприятие сюжета очень субъективно. Хейтерам всегда можно сказать, что они ничего не понимают, и они не докопаются до "анатомии", "светотени" и других чисто технических элементов.

А вот с графикой всё сложнее - ты убиваешь несколько часов на одну иллюстрацию, а результат в лучшем случае так себе, в худшем - какая-то мазня дошкольника. Всё же почти все люди в современном обществе более или менее много читают, а в школах сочинения обязательны, тогда как для рисования недостаточно просто на чужие картинки смотреть, а художества в школах обычно не являются принудительными. Если смог сдать ЕГЭ, считай, сможешь написать несложный сценарий, а для рисования нужно конкретно запариться с художкой, курсами или мучительным самообучением. А в конечном итоге графика тоже субъективно воспринимается и тебя могут облить говном просто за то, что ты рисуешь "аниме", рисование которого ты оттачивал пять лет ежедневно, а ты потом ломаешь голову, в чём же ты ошибся... И фраза "я художник, я так вижу" как-то не очень оправдывает кривые руки и косой взгляд, которые на каждой иллюстрации по-разному кривые.
Аноним 06/08/23 Вск 22:35:26 #138 №893079 
Есть какой-то элегантный способ построения пути на AStarGrid2D до ближайшей точки, если ячейка цели задизейблена или например находится за стенкой и в принципе недостижима? Можно конечно найти дорогое решение, типа идти по спирали от цели и пробовать построить маршрут до каждой из точек на ней, но явно должно быть более простое решение. Подскажите, пожалуйста, анончики!
Аноним 06/08/23 Вск 23:12:24 #139 №893106 
>>893079
Сам я такое не делал, но 5 секунд в гугле
https://gamedev.stackexchange.com/questions/35253/tweaking-astar-to-find-closest-location-to-unreachable-destination
Аноним 06/08/23 Вск 23:18:54 #140 №893111 
>>893106
Спасибо, но я не понял о чём там речь... Не слышал о том, чтобы AStarGrid2D или даже AStar2D в годоте были "EstimatedDistanceToEnd (ie. the lowest h(x))"
Аноним 07/08/23 Пнд 07:28:45 #141 №893143 
Как бы по простому реализовать систему диалогов? Нужно чтобы работала и чтоб звук при печати букв был. Может есть какое-то простое и элегантное решение?
Аноним 07/08/23 Пнд 08:26:19 #142 №893144 
>>893143
Сам не смотрел, но глянь https://rakugoteam.github.io/
Аноним 07/08/23 Пнд 10:01:28 #143 №893148 
>>893111
Справедливо, но увы по мне так в годоте изкоробки неправильный астар и для более-менее серьезной игры придется писать свой.
Если разбираешься в с++, вот кто-то пытался решить такую задачу в форке https://github.com/godotengine/godot-proposals/issues/277#issuecomment-1379431845
Аноним 07/08/23 Пнд 10:10:23 #144 №893149 
>>893148
> в годоте изкоробки неправильный астар
Почему ты так думаешь? Какие подводные?
> разбираешься в с++
Это есть, но пересобирать годот не хочется. Я рассматриваю сейчас активнее всего хоть и костыльный, но вариант, где никакие клетки не блокируются, но непроходимые имеют огромный вес, а саму блокировку хранить отдельно и обрабатывать где нужно. То есть даже если в пути будут непроходимые клетки, когда непись захочет непосредственно сделать шаг на такую клетку, обработчик ходьбы осадит неразумного непися и пояснит как он неправ.
Аноним 07/08/23 Пнд 10:26:32 #145 №893152 
>>893149
Хотя стоит отметить что это звучит дорого и возможно стоит иметь несколько карт для разных видов поиска пути в зависимости от интеллекта моба.
Аноним 07/08/23 Пнд 11:04:52 #146 №893159 
>>893149
Писал с иллюстрациями в каком то старом треде, но пост потерли.
Суть в том, что они вообще реализовали не то. В каноническом астаре вес у ребер, соединяющих узлы, а не у самих узлов. То, что есть в годоте, подходит для простых игр на джемы (когда у тебя просто клетка земли, клетка леса, клетка воды), но не подходит для глубоких тактических и стратегических игр, когда отличается стоимость входа из поля в лес, из поля в воду, из леса в воду, из воды в лес и т.д. А как ты заметил, апи не гибкий, не дает "кубиков", "строительных блоков" из которых ты мог бы собрать нужное, а умеет только пару базовых вещей. Поэтому в своем рогалике на с++ я буду писать свой астар. Раньше пытался портировать из какого-то движка на c# (Nez кажется), сейчас думаю писать с нуля с чатгопотой.
Аноним 07/08/23 Пнд 11:29:24 #147 №893164 
>>893159
> отличается стоимость входа из поля в лес, из поля в воду, из леса в воду, из воды в лес и т.д
Разве это важно? То есть разве почему обычных весов клетки будет недостаточно?
Аноним 07/08/23 Пнд 11:36:32 #148 №893165 
>>893164
Недостаточно даже на более простом примере (если зайти в лес из поля дороже, чем выйти на поле из леса). Просто с 3 клетками еще нагляднее будет.
Аноним 07/08/23 Пнд 17:00:48 #149 №893205 
>>893159
Нормальных а-старов полно на гитхабе, в том числе на плюсах. Не пиши сам, подумой.
Аноним 07/08/23 Пнд 21:18:47 #150 №893240 
>>893205
Кстати а что насчёт Д старов?
Аноним 08/08/23 Втр 13:40:47 #151 №893303 
Игры-то делаете?
Аноним 08/08/23 Втр 17:52:19 #152 №893360 
>>893303
Сидим, обдумываем с phind.com процедурную генерацию мира и поведение персонажей в моей игре, открыл для себя много интересных идей.

Делать саму игру я, конечно же, не буду.
Аноним 08/08/23 Втр 19:06:58 #153 №893374 
>>893303
Да, заебался возиться с попытками довести до ума поиск пути на AStarGrid2D, заменю на свой, написанный по уму, в нынешнем состоянии для прототипа и основы сойдёт. Судя по https://www.redblobgames.com/pathfinding/a-star/introduction.html это относительно просто.
>>893360
> phind.com
Как оно в сравнении с ГПТ3?
Аноним 08/08/23 Втр 19:21:14 #154 №893378 
>>893374
>Как оно в сравнении с ГПТ3?
Ну, там за основу "лучшей модели" берут GPT-4:
>Our most advanced searching mode, powered by a combination of GPT-4 and our own model. This mode hallucinates less and writes better code.
Но он умеет гуглить и ходить по ссылкам:
>Phind is smart enough to proactively ask you questions to clarify its assumptions and to browse the web (or your codebase) when it needs additional context.
>Phind will use any custom links you paste into the search box automatically.
Есть доступ анонимно без регистрации, но помни, что все обсуждения доступны по ссылке.
Аноним 08/08/23 Втр 19:29:08 #155 №893379 
>>893378
А оно может само сходить на гит, изучить либу, и ответить на вопрос по ней?
Аноним 08/08/23 Втр 19:44:12 #156 №893380 
>>893379
Я пробовал, нет, не может, выдумывает АПИ как оно могло бы быть хорошо в идеальном мире, но увы таких функций не было.
Аноним 08/08/23 Втр 20:00:13 #157 №893383 
image.png
>>893379
>изучить либу и ответить на вопрос
Наверное, зависит от сложности.

Галлюцинации неизбежны, т.к. GPT только генерирует текст. Такие нейронки не проверяют факты в написанном, и если она что-то написала не так - backspace жать не будет. Для избавления от галлюцинаций нужен бесконечный цикл самопроверки, а это уже никто бесплатно тебе не даст, придётся на своём железе крутить.

На пикриле цитаты из документации к Godex на гитхабе, вот только эти цитаты устарели после того, как разработчики добавили этап инициализации, так что теперь никакой физический пайплайн настраивать больше не нужно. Вывод: проще самому перейти по ссылке и прочитать. Но нюанс в том, что я не задавал никаких конкретных вопросов, только "опиши", вот она и описала как смогла.
Аноним 08/08/23 Втр 20:42:51 #158 №893389 
gd.jpg
>>893378
>ходить по ссылкам
Ладно, похоже, не умеет.

МОЖЕШЬ ХОДИТЬ ПО ССЫЛКАМ?
@
МОГУ, ДАВАЙ ССЫЛКУ
@
ВОТ ССЫЛКА
@
ОЙ, НЕ МОГУ. Я ИИ АССИСТЕНТ И У МЕНЯ НЕТ ДОСТУПА В ИНТЕРНЕТ. ЗАДАВАЙ ОТВЕТЫ.
@
ХОРОШО, ПРОСТО ОПИШИ ЧТО ТАМ ЕСТЬ
@
ЩАС ПОГУГЛЮ...
@
ДА ТАМ КАКИЕ-ТО ДВАЧЕРЫ ТОКСИЧНЫЕ [^3^] ТИПА ИГРЫ ДЕЛАЮТ. ВЕДИ СЕБЯ ХОРОШО, СЭМПАЙ. [^3^]
@
ЕЩЁ ВОПРОСЫ? [^3^]


Даже такое общение лучше, чем с людьми. [^3^]
Аноним 08/08/23 Втр 22:02:38 #159 №893405 
Не получается поставить max_value у прогресс бара через код.
Что здесь не так?
var hp:int = 0
onready var hp_bar = $ProgressBar
func set_max_hp():
hp = randi() % 3 + 1
hp_bar.max_value = hp
Аноним 08/08/23 Втр 22:06:23 #160 №893406 
>>893405
hpbar.set_max(full), не?
Аноним 08/08/23 Втр 22:09:52 #161 №893408 
>>893406
Invalid call. Nonexistent function 'set_max' in base 'Nil'.

туплю не понимаю
Аноним 08/08/23 Втр 22:17:19 #162 №893409 
>>893408
По ошибке выглядит так, будто ты пытаешься вызывать метод у объекта, который ещё не инициализировался. У тебя точно ProgressBar существует как ребёнок ноды, к которой приклеен скрипт и получается её найти?
Аноним 08/08/23 Втр 22:31:49 #163 №893410 
>>893408
Скорее всего ты скопипастил hpbar а у тебя hp_bar
Аноним 08/08/23 Втр 22:56:38 #164 №893413 
>>893079
Зачем тебе такое решение? Рассмотрим ситуации.
1. Игрок промахнулся. Персонаж топает куда-то, куда не следует. Игрок злится.
2. Игрок тыкает на клетку за пределами зоны ходьбы, рассчитывая, что персонаж остановится. Персонаж топает к краю скалы без моста, падает и умирает, потому что по механике встать на край обрыва можно, но смертельно опасно. Игрок злится.
3. Игрок тыкает на клетку за стеной, рассчитывая пробить себе путь киркой. Персонаж топает к стенке, а стенка-то неразрушимая. Игрок злится.
4. Игрок тыкает на клетку за болотом, земля вокруг которого огорожена непроходимым забором. Персонаж топает в болото и тонет. Игрок злится.

Всего этого можно избежать, если просто никак не двигаться, когда тупой игрок приказывает идти туда, куда невозможно дойти. В случае NPC, они, в отличие игрока, наделены интеллектом, поэтому идти туда, куда нельзя дойти, не будут.

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

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

>>893159
>вес у ребер, соединяющих узлы, а не у самих узлов
Вес у рёбер есть. Но он не произвольный, а зависит от расстояния между узлами. Если у тебя все узлы на равномерной сетке, то и веса всех рёбер равны.

>отличается стоимость входа из поля в лес, из поля в воду, из леса в воду, из воды в лес и т.д.
Вход должен быть одинаковым независимо от того, откуда ты начинаешь движение, если движение происходит по дискретным клеткам, потому что ты не можешь встать между клетками.

Для примера, если мы пытаемся просчитать оптимальный путь между комнатами лаборатории, то мы будем стараться избегать комнаты с радиацией, токсичным газом, зомби и другими препятствиями и опасностями, независимо от того, с какой стороны входим в комнату. И наоборот, мы выберем путь в безопасную комнату из опасной даже если путь из опасной комнаты в другую опасную комнату короче. В данном случае комнаты - это клетки (узлы графа), мы не можем встать в проходе и нас не сильно интересует, сколько времени мы будем идти внутри комнаты, если само вхождение в комнату грозит моментальной смертью. Само же движение между двумя комнатами оценивается геометрическим размером комнат (длина ребра графа), а не каким-то рандомным числом (этот твой вес ребра). Если у тебя путь между двумя комнатами ограничен необходимостью взломать панель доступа, ты должен поставить дополнительный узел возле двери, задав ему высокий вес, поскольку взлом займёт много времени. Движение в пространстве разбивается дополнительной точкой, путь до которой короче, но пройти которую сложнее, чем простую дверь.

Если же ты пытаешься симулировать ходьбу по очень большим пространствам, как здесь:
1. Шли 2 часа к центру леса.
2. Шли 2 часа к краю леса.
3. Перешли на край поля.
4. Шли 1 час к центру поля.
5. Шли 1 час к краю поля.
6. Перешли на край воды.
7. Плыли 4 часа к центру воды.
8. Плыли 4 часа к краю воды.
9. Перешли на край леса.
Тогда тебе просто нужно больше узлов:
- центр области, из которого идут к краю;
- край области с каждой проходимой стороны.
Края соседних областей будут совпадать чисто геометрически, т.е. расстояние между ними - ноль, но формально это разные узлы, ведь они меняют свойства движения: перейти от центра леса на край леса или обратно сложнее, чем перейти от центра поля на край поля или обратно.

А как иначе это решать?
Аноним 08/08/23 Втр 23:01:58 #165 №893414 
>>893413
Понятное дело что это не для игрока, а для всякого эффективного окружения мобами и прочего
Аноним 08/08/23 Втр 23:23:49 #166 №893417 
>>893414
>эффективного окружения мобами
1. Мобы за стеной не должны преследовать игрока, потому что они не знают о его существовании.
2. Мобы за рекой могут подходить к краю реки, если видят игрока в зоне прямой видимости (рейкаст).
3. Если моб способен слышать игрока, тогда он идёт не к источника шума, а в сторону усиления шума, то есть ему вообще не должен быть известен оптимальный путь к игроку, даже если они есть.
4. Если хочешь создать засаду из мобов в визуально скрытой от игрока зоне, проще заспавнить новых мобов сразу за разрушенной игроком стеной, чем звать уже имеющихся мобов к непроходимой стене. Игрок не заметит разницу, ведь он не видит этих перемещений за кадром.
Аноним 08/08/23 Втр 23:24:15 #167 №893418 
>>893413
Челидзе, поиграй хотя бы в одну РТС, прежде чем рассуждать о том, что там игрок хочет или нет.
Аноним 08/08/23 Втр 23:45:33 #168 №893420 
>>893413
>Вход должен быть одинаковым независимо от того, откуда ты начинаешь движение,
Это не так, поэтому дальшнейшую стену текста не читал.
В стратегии в одну и ту же клетку равнин вход может стоить разную стоимость, если с ты выходишь из леса, или идешь поперек дороги, или идешь вдоль дороги.
Аноним 09/08/23 Срд 06:23:18 #169 №893436 
Не знаю где спрашивать так что спрошу здесь. Когда в тексте числа встречаются в именах собственный например: "7/седьмой отряд", как лучше и красивее записывать их? Цифрами или буквами?
Аноним 09/08/23 Срд 06:24:25 #170 №893437 
>>893417
Ты опять не понял. Если в клетке может быть только одно существо, то оно по сути блокирует путь остальным. Как тогда толпой из двадцати орков окружить игрока в максимально плотное кольцо? Делать мобов не блочащими путь, а делать клетки на которых они находятся дорогими, но не позволять вставать на них в обработчике ходьбы
Аноним 09/08/23 Срд 07:29:17 #171 №893438 
Text.PNG
Есть окошко диалога куда вбиваются символы по таймеру. Конкретно _on_type_timer_timeout() у меня это делает. Как бы сделать, что если в строке есть определённая комбинация символов, например ^^, они не печатаются, но таймер замедляется пока не дойдёт до пробела " ". Я прям уверен, что как-то можно сделать, но сам додуматься не могу.
Аноним 09/08/23 Срд 09:07:28 #172 №893442 
>>893438
В смысле замедляется? Как это должно для пользователя выглядеть?
Аноним 09/08/23 Срд 10:57:34 #173 №893449 
>>893438
>Есть окошко диалога куда вбиваются символы по таймеру
Если ты хочешь чтобы текст появлялся плавно, символ за символом, то у лейбла есть охуенное свойство percent visible, которое делает именно это. Еще visible characters есть.
Аноним 09/08/23 Срд 11:53:35 #174 №893463 
>>893442
>В смысле замедляется? Как это должно для пользователя выглядеть?
У меня символ печатается по таймеру раз в 0.04 секунды. Я хочу чтоб я например оставил в строке "Я посрал ^^говном" вот эти вот ^^ и тогда "Я посрал" напечатается со скоростью 0.04 секунды, а "говном" со скоростью 0.5 например.
>>893449
>percent visible
Спасибо. Буду знать. Но мне нужно как раз по буквам. Что visible characters и делает собственно.
Аноним 10/08/23 Чтв 00:07:35 #175 №893559 
>>893418
>поиграй хотя бы в одну РТС
Играл в несколько разных RTS. Бесит, когда юниты могут принять команду на движение в недоступную для них зону карты и застрять по дороге, а потом их придётся возвращать обратно, когда заметишь, что они напрасно ходили в какой-то тупик.

Вот представь, у тебя N отрядов, ты отправляешь один через всю карту, и пока занимаешься другими отрядами, ожидаешь, что отправленный отряд выполнит свою задачу. А они встали в какой-то дыре и стоят, ведь система навигации не смогла проложить путь до цели, заведя отряд в какой-то рандомный тупик. Зачем так обманывать игрока?

Игра должна чётко говорить игроку: сюда пути нет, сюда пройти нельзя. Она не должна отвечать, что сюда пройти можно, а потом бросать ходьбу на полпути, потому что пройти в реальности нельзя.

>>893420
>В стратегии в одну и ту же клетку равнин
Просто убери клетки. В RTS клетки - атавизм.

>>893437
>Как тогда толпой из двадцати орков окружить игрока в максимально плотное кольцо?
Это уже не относится к AStar. AStar только находит кратчайший путь. Чтобы мобы окружили игрока, тебе нужно найти подходящие позиции в окружности вокруг игрока, а затем отправить мобов на свободные позиции. Менеджер мобов выдаёт им свободные места как билеты в кинотеатре. А как они будут друг друга обходить - вообще отдельная задача.

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

В большинстве игр мобы проходят друг друга или вообще не обходят препятствия. Если твоя игра не фановая из-за того, что мобы проходят друг сквозь друга или тупят возле препятствий, то ты делаешь что-то не то. Делай так, чтобы игра была интересной даже с максимально тупыми мобами.
Аноним 10/08/23 Чтв 00:10:26 #176 №893561 
>>893559
Так я не про RTS говорил, а стратегии. RTS крайне редко бывают стратегиями, это тактики в основном.
Аноним 10/08/23 Чтв 00:19:44 #177 №893564 
>>893561
Назови мне какую-нибудь актуальную клеточную стратегию с твоей механикой. Лучше на Android.

А то без примеров это просто хотелки какие-то.
>Ряяяяяя, в Godot неправильно реализованные StaticBody3D, они не могут набигать!!
>Где ты видел, чтобы StaticBody3D набигали?
>Я хочу чтобы домики набигали! Домики - это недвижимость, но в их API нет nabigat(mesto)!!!
Аноним 10/08/23 Чтв 00:39:35 #178 №893568 
>>893438
>Как бы сделать, что если в строке есть определённая комбинация символов, например ^^, они не печатаются, но таймер замедляется пока не дойдёт до пробела " ".
Алгоритм прост, но для него требуется:
- проверять, какой символ мы будем печатать;
- проверять следующий символ после него.
Делать это через API RichTextLabel скорее всего будет затратно, поскольку там происходят операции с BB-кодами, добавляющие форматирование.

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

В общем, это никак не касается API Godot. Это чисто алгоритмическая задача. Тебе её помочь решить?
Аноним 10/08/23 Чтв 02:15:30 #179 №893574 
>>893568
>Алгоритм прост, но для него требуется:
>- проверять, какой символ мы будем печатать;
>- проверять следующий символ после него.
>Делать это через API RichTextLabel скорее всего будет >затратно, поскольку там происходят операции с BB-кодами, >добавляющие форматирование.

>Я бы попробовал загонять текст по букве. Либо загонять сразу >весь текст, но без твоих "^^" - с самого начала удали их из >текста, сохранив информацию о том, на каких позициях нужно >включать замедление.

Ну я вот тоже так думаю. Все строки в json у меня. По сути всё так, как ты и сказал, но я хз как такое сделать. У меня есть идея загнать всю строку по символам в массив. И там уже операции производить. Но может есть какое-то более элегантное решение?
>Это чисто алгоритмическая задача. Тебе её помочь решить?
Если тебе не сложно, то буду рад помощи.
Аноним 10/08/23 Чтв 08:53:39 #180 №893587 
загруженное.png
>>893574
>загнать всю строку по символам в массив
Работать будет, но есть один нюанс - Godot будет вынужден после каждого символа перестраивать элемент GUI и отображаемый текст. Хотя для коротких текстов разница должна быть незаметной.

Учитывай, что Timer.wait_time не может быть короче времени одного кадра или тика физики, и может странно себя вести на слишком коротких интервалах.

Кстати, меня раздражает этот эффект "печатной машинки" в играх. Он не помогает чтению, ведь взрослые люди не читают по буквам как маленькие дети, и эффект совсем не похож на речь. Люди читают текст по словам, вот наглядный пример, просто расслабься и смотри в центр экрана, не проговаривая слова:
https://youtu.be/XJd_RvAlMKU
ИМХО, в визуальных новеллах вывод текста должен быть аналогичным образом - по словам, а не по буквам. Так хотя бы можно будет читать текст сразу, не дожидаясь, пока игра выведет все буквы, и не пропуская эту анимацию кликом. Хотя для оптимального чтения слова должны сменять друг друга в одном месте (как на видео), чтобы читателю не приходилось двигать глазами.

Могу накидать алгоритм для быстрого вывода по словам с эффектом замедленной побуквенной печати на отдельных словах. Можно использовать String.split(" ") для получения списка слов, а потом просто проверять, не начинаются ли слова контрольным символом: String.begins_with("^^").
Аноним 10/08/23 Чтв 09:47:52 #181 №893590 
слова.png
>>893587
>Могу накидать алгоритм для быстрого вывода по словам с эффектом замедленной побуквенной печати на отдельных словах.
Как-то так можно.
Аноним 10/08/23 Чтв 09:50:07 #182 №893591 
image.png
image.png
Как сделать так, чтобы куб не располагался в стене (рис.1), а был на поверхности стены, как в csgo при включенной команде sv_shoimpact (рис.2)?

Текущий код (рис.1):
if raycast.is_colliding():
var decal = preload("res://decal.tscn").instantiate()
raycast.get_collider().add_child(decal)
decal.global_position = raycast.get_collision_point()
Аноним 10/08/23 Чтв 09:52:00 #183 №893592 
image.png
image.png
Как сделать так, чтобы куб не располагался в стене (рис.1), а был на поверхности стены, как в csgo при включенной команде sv_shoimpact (рис.2)?

Текущий код (рис.1):
if raycast.is_colliding():
var decal = preload("res://decal.tscn").instantiate()
raycast.get_collider().add_child(decal)
decal.global_position = raycast.get_collision_point()
Аноним 10/08/23 Чтв 09:57:51 #184 №893593 
>>893587
двачую, а лучше бы по возможности весь текст был сразу виден, чтобы читал с удобной скоростью игрок
Аноним 10/08/23 Чтв 09:59:17 #185 №893594 
>>893591
Так ты нормаль рэйкаста тоже заюзай
Аноним 10/08/23 Чтв 10:04:03 #186 №893595 
>>893594
То есть прибавить?
Аноним 10/08/23 Чтв 10:05:05 #187 №893596 
>>893591
>куб
>decal
Куб - не декаль, декаль - это текстура:
https://docs.godotengine.org/en/stable/classes/class_decal.html
https://en.wikipedia.org/wiki/Decal_(disambiguation)
>Decal texture, a texture/image overlaid on top of other textures in computer graphics

>куб не располагался в стене
Сдвинь свой куб в сцене decal.tscn так, чтобы одна из его сторон пересекалась с точкой (0;0;0), а потом поворачивай куб, чтобы он был параллелен нормали:
https://docs.godotengine.org/en/stable/classes/class_raycast3d.html#class-raycast3d-method-get-collision-normal
...как конкретно вращать - выясняй сам, мне лень. Я каждый раз методом тыка разбираюсь, лол.
Аноним 10/08/23 Чтв 10:08:49 #188 №893597 
>>893596
>чтобы он был параллелен
Хотел написать "чтобы ось, перпендикулярная грани, пересекающейся с точкой начала координат, была параллельна нормали точки коллизии". Ну ты понял.

>как конкретно вращать - выясняй сам
Там что-то с базисами и вот это вот всё. Чисто по ощущениям потыкай числа и что-то получится. Всегда так делаю и спустя несколько часов получается.
Аноним 10/08/23 Чтв 10:10:06 #189 №893598 
>>893597
Спасибо
Аноним 10/08/23 Чтв 10:15:51 #190 №893599 
>>893595
куб крути в соответствии с нормалью
Аноним 10/08/23 Чтв 10:44:12 #191 №893603 
>>893587
Спасибо за помощь. Ты навёл меня на определённую мысль. Постараюсь это всё перетащить себе в код. Я и не подумал на слова разбивать.
> меня раздражает этот эффект "печатной машинки" в играх
Скучный.
>>893593
>лучше бы по возможности весь текст был сразу виден, чтобы читал с удобной скоростью игрок
Тоже скучный.
Аноним 10/08/23 Чтв 11:05:49 #192 №893607 
>>893603
Будет хорошим тоном сделать варианты и для таких скучных, чтобы в опциях можно было выбрать
Аноним 10/08/23 Чтв 11:06:09 #193 №893608 
rainbow.gif
>>893603
>Скучный.
Если хочешь нескучный текст, сделай чтоб буквы подпрыгивали, делали переворот в полёте, динамично меняли рандомные цвета и масштаб, из букв вылетали искорки, звёздочки, сердечки и маленькие мордочки животных, и всё это сопровождалось множеством забавных звуков вроде "ня", "кря" и прочее. И чтобы эти эффекты нельзя было отключить или пропустить.

Игроки читатели будут блевать радугой и писать "рекомендую" в отзывах, чтобы другие тоже проблевались.
Аноним 10/08/23 Чтв 13:58:26 #194 №893627 
image.png
Как выйти за пределы этого геймдев-пузыря? Релизишь игру, ее потыкали и полайкали годотеры, сказали норм зделол малацца. А как широкую аудиторию нормисов поймать? Куда? Где? Гугл ебаный в гугл-плее уже полгода хоронит мою поделку, не выдавая ее в поиске даже по прямому запросу. Показывает только если с кавычками спросить.
Аноним 10/08/23 Чтв 15:10:30 #195 №893637 
>>893627
Яндекс, вк - там нормизы сидят. Белорусам на игровое шоу отправь, вдруг увидят.

>>893559
>Игра должна чётко говорить игроку: сюда пути нет, сюда пройти нельзя.
А если местность скрыта для игрока? Получается, он таким образом может получить информацию, которую знать не должен, пока не разведает местность. Просто отправляя юнитов в закрытые регионы (и тут же отменяя) можно узнать, проходимы они или нет. Или например, местность уже разведанная, но с тех пор враг успел там построить стену; игрок эту стену ещё не видел, но может догадаться о её появлении по тому, что юниты отказываются туда идти.

>>893607
Обычно делают для нетерпеливых - по нажатию кнопки анимация прерывается, весь текст отображается.
Тащемта "сок" нужен, анимированный текст придаёт ощущения, что это персонаж реально говорит. Но факт - большинство игроков в какой-то момент наедаются этим эффектом и начинают скипать анимации.

Олсо, хинт. У лейблов (в том числе ричтекст) есть свойства percent_visible и visible_characters, существующие именно для таких анимаций. Они позволяют не пересчитывать каждый раз границы элемента и избегать случаев, когда слово начало отрисовываться на одной строке, а в следующем кадре резко целиком перенеслось на следующую, потому что не влезло.
А ещё ричтекстлейбл умеет возвращать чистый текст, без ббкодов, чтобы, например, проще там было найти эти самые ^^ или что ещё надо.
Аноним 10/08/23 Чтв 15:43:53 #196 №893642 
>>893637
>А если местность скрыта для игрока?
По чёрным клеткам вообще должен быть полный запрет ходьбы. Вдруг там ловушка? Яма? Болото с крокодилами? Минное поле? Радиация? Аномалии?

>местность уже разведанная, но с тех пор враг успел там построить стену
Я бы последовал принципу "better safe than sorry" и трактовал серые клетки как чёрные, см. выше. Если настолько сильно нужна быстрая ходьба - ставь вышки, которые будут мониторить дорогу, сообщая о проблемах заранее. Иначе ты посылаешь своих бойцов на убой, т.к. они тупые как дети.

ИРЛ разведка и все её устройства предназначены как раз для того, чтобы не посылать отряд "куда-то туда", чтобы он застрял в тупике/ловушке/засаде.

TL;DR: хреновый из тебя стратег, если ты хочешь посылать юниты в неизвестном направлении.
Аноним 10/08/23 Чтв 15:46:52 #197 №893643 
>>893642
И тебе кажется интересным микрить каждого разведчика по трём направлениям пройти вперёд на десять шагов?
Аноним 10/08/23 Чтв 15:51:47 #198 №893645 
>>893637
>ощущения, что это персонаж реально говорит
Для этого игра должна не буквы печатать, а слоги, соответствующие произносимым звукам, ещё и липсинк прикрутить можно. Всегда воспринимал эту печать текста как неуместный атавизм древних времён, когда компы были такими медленными, что натурально печатали на экране текст.

>percent_visible и visible_characters
Ты опять с запоздалыми советами?
Присмотрись к коду на скриншоте: >>893438
Аноним 10/08/23 Чтв 16:01:03 #199 №893646 
>>893643
Мне никогда не было интересно играть против онлайн игроков, которые за 10 секунд развиваются и уже собирают против тебя войско. А в одиночном режиме в РТС всё обычно тихо и спокойно, боты не быкуют и есть достаточно времени для развития.

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

У нас тут 5 фпс от 150 кинематиков в кучке, а ты на стратегию уровня старкрафта замахиваешься...
Аноним 10/08/23 Чтв 16:04:24 #200 №893647 
>>893646
Я другой анон, но изъяны в твоей логике очевидны. Вспомни тот же варик третий, где такая возможность есть. Или век империй второй. Да вообще во всех одиночных стратегиях можно посылать юниты в неизвестность.
Аноним 10/08/23 Чтв 16:18:49 #201 №893648 
>>893645
>когда компы были такими медленными, что натурально печатали на экране текст.
Наоборот же. Когда компы были настолько медленными, что даже отображение текста было трудной задачей, отрисовка по буквам была вообще недостижима. Настолько, что даже ввод с клавиатуры не отображался в реальном времени, пока ентер не бахнешь.
А вот игры "в стиле ретро" очень любят отрисовывать по буковкам, потому что реальные старые игры именно так и делали. А делали они это именно из-за того, что так тексту придавалась динамика без чрезмерной вычислительной нагрузки. Но, конечно, следует понимать, где стоит использовать такой эффект, а где нет. В каком-нибудь cozy adventure он обязателен (ещё и с разноцветными буковками, искорками и прочими свистоперделками), а в рпг типа фоллаута уже категорически не нужен. Всё-таки в первую очередь это художественный приём.

>Ты опять с запоздалыми советами?
лол, походу да :3

>>893642
>хреновый из тебя стратег, если ты хочешь посылать юниты в неизвестном направлении.
Последний раз играл в стратежки лет 15 назад, так что да, определённо хреновый.
Аноним 10/08/23 Чтв 19:57:44 #202 №893657 
Нужно сделать веревку ниндзя как в worms armagedon. Ваши идеи?
Аноним 11/08/23 Птн 12:14:59 #203 №893737 
а движ он шлангом под винду не собирается?
Аноним 11/08/23 Птн 12:16:54 #204 №893738 
>>893737
Есть опция экспорта откуда угодно куда угодно. С линукса на винду и наоборот, например. Если ты об этом.
Аноним 11/08/23 Птн 14:36:52 #205 №893749 
godot-build-windows.png
>>893738
не я про то, что движок под винду собирать говорят студией или как альтернативой mingw
а я спросил clang-ом собирается нормально ли и собирается ли
Аноним 11/08/23 Птн 15:40:59 #206 №893766 
>>893749
>clang-ом собирается нормально ли и собирается ли
Судя по гитхабу, да, есть возможность собрать и в пулл-реквестах встречаются фиксы багов с clang.

Честно говоря, я ни разу годот из исходников не собирал, так что ничем помочь не могу.

другой анон
Аноним 11/08/23 Птн 15:43:39 #207 №893767 
>>893749
clang под виндой вроде все равно сильно от студии зависит? Не уверен, давно не возился с этим.
Вот тут можешь поскроллить, там и какие то флаги упоминаются, и пулл реквесты правда закрытые с пометкой недостаточно проработаны.
https://github.com/godotengine/godot/issues/6560
Аноним 11/08/23 Птн 16:01:16 #208 №893770 
>>893657
Попробуй поискать grappling hook, должно быть куча туториалов.
https://godotengine.org/asset-library/asset/1712
Аноним 11/08/23 Птн 16:05:30 #209 №893771 
>>893645
> Всегда воспринимал эту печать текста как неуместный атавизм древних времён, когда компы были такими медленными, что натурально печатали на экране текст.
Они имитировали печатные машинки, которые в то время еще были понятны и знакомы игрокам.
https://youtu.be/HlqOLYSmKk0?t=41
Аноним 11/08/23 Птн 16:18:23 #210 №893772 
>>893642
Не переусложняй, в стратегиях обычно есть разные виды кликов (с шифтом, контролем), где меняется режим движения - так что можно делать и так и так, игрок сам решит, когда надо идти в неизвестность, а когда не надо, когда атаковать а когда просто бежать мимо.
Если, конечно, не прикручиваешь продвинутый ИИ. Но, судя по шебм тредам, стратеги то особо микро и не занимаются, а действительно посылают юниты как попало, прямо по минам.
Аноним 11/08/23 Птн 16:19:54 #211 №893773 
>>893608
У кое-кого на борде в играх на годоте так нескучно и сделано.
Аноним 11/08/23 Птн 16:27:11 #212 №893774 
>>893648
>Когда компы были настолько медленными, что даже отображение текста было трудной задачей, отрисовка по буквам была вообще недостижима.
Возможно, мы о разном говорим? В фильмах часто на зелёных экранах буквы появляются по одной - и это не выдумка сценаристов, что-то такое было ИРЛ. Вот, недавно видел видео про ASCII анимации в терминале, и там автор объясняет, что увидеть анимацию без специальных настроек невозможно, потому что терминал на современном ПК выводит текст слишком быстро. Дальше он показывает замедление до считанных тысяч бод и на экране видна анимация. Учитывая, что MUD состоит в основном из текста, который передаётся в терминал через сеть - можно предположить, что на ранних этапах медленный вывод в играх вплоть до отдельных символов был вынужденным, а не художественным приёмом. Ты просто не можешь выводить буквы быстрее, чем они прилетают к тебе по проводам.

Далее, в прошлом я имел много опыта в TurboPascal, и заметил, что для вывода на экран без мерцания ему не хватает скорости. Сейчас принято очищать экран после каждого кадра, а раньше такая роскошь была явно недоступна. Т.е. дешевле вывести дополнительные элементы поверх уже имеющихся в видеопамяти, чем полностью очищать экран и выводить заново. Это же касается прямого вывода в текстовый буффер экрана. Конечно, ты можешь выводить большими пачками, а не отдельными символами, но замедление всё равно ощущается.

Как вообще работает компьютер? Монитор условные 60 раз в секунду обновляет свои физические ячейки (субпиксели), но для их обновления ему нужна информация о том, в каком состоянии должны быть эти физические ячейки. Эта информация хранится где-то в памяти, по заранее известному адресу. Хранение этой информации бесплатно, чтение этой информации дёшево, но изменение - дорого. Центральный процессор может менять эту информацию в режиме одна ячейка за раз, а видеоускорители позволяют менять сразу несколько ячеек параллельно по одной команде процессора. Вот с распространением этих видеоускорителей стало возможным менять сразу всю информацию о кадре 60 раз в секунду, а раньше ты был вынужден последовательно переключать ячейки. Если ты пишешь в ячейки памяти медленнее, чем монитор обновляет видимые пользователю физические ячейки, пользоваль неизбежно будет видеть "анимацию" вывода информации на экран. Т.е. это не художественный приём, а особенность работы компьютера.

>cozy adventure
Как искать? Я понял, что это "уютное приключение", но поисковик выдаёт какую-то фигню.

>в рпг типа фоллаута уже категорически не нужен
Я бы предпочёл короткие сообщения, разбитые по отдельным предложениям, чем встречать в игре стену текста на 2-3 А4 листа, которую ты обязан прочитать за один раз, чтобы всё понять...

Попытался однажды сыграть в Morrowind, а там с самого начала доступны КНИГИ, в которых на десятках страниц расписывают приключения каких-то ноунейм царей или что-то вроде того. Охренеть, зашёл, называется, в видеоигру, и несколько часов буду сидеть книжки читать?! Можешь сказать, что у меня "твиттерное мышление", но чукча писатель, чукча не читатель. Я не хочу читать стены какой-то рандомной фэнтезятины, которые даже не имеют отношения к реальному геймплею (заклинивание мобов насмерть, прокачивая цифру урона от каждого клика, и получая какой-то лут на продажу или для коллекции). Вот если бы разбили эту информацию на короткие кусочки, доступные по ходу исследования мира - тогда ОК, интересно, а так я лучше пойду на Вики прочитаю всё это нормальным шрифтом с нормальным фоном на телефоне, чем сидеть и читать виртуальные книги в игре...
Аноним 11/08/23 Птн 16:41:34 #213 №893776 
>>893772
>Если, конечно, не прикручиваешь продвинутый ИИ. Но, судя по шебм тредам, стратеги то особо микро и не занимаются, а действительно посылают юниты как попало, прямо по минам.
Насколько я понял, нейронка победила в Дота 2 за счёт бешеного микроконтроля всех 5 персонажей, так что её даже специально замедляли, чтобы дать шанс мясным мешкам с их медленной реакцией. Т.е. продвинутый ИИ будет заниматься микроконтролем, а не посылать бесконтрольную толпу. Очевидно, игроки забивают на микроконтроль просто потому что у них нет физической возможности им заниматься.
Аноним 11/08/23 Птн 16:48:48 #214 №893778 
>>893776
Второе предложение было про стратегов ИРЛ, просто не стал акцентировать внимание.
А под продвинутым ИИ я имел в виду нечто такое.
Вот выше анон писал, что если враг не может подойти к игроку, то он должен остаться стоять или подойти к стенке/реке и остановиться. Это действительно ожидаемое поведение в играх в прошлом.
Только вот продвинутый интеллект, как раз, должен был бы подумать - ага, раз враг в той комнате за стеной, значит я могу добежать вон до того коридора и перехвачу его там, когда он будет выходить. В это время другой юнит мог бы подумать, ага, мой напарник перекроет тот коридор, значит я могу пойти налево и там прикрыть второй выход, если враг решит вылезти там.
Аноним 11/08/23 Птн 17:35:56 #215 №893784 
>>893778
>добежать вон до того коридора
По идее, AStar как раз может это решить, если путь "сквозь стену" значительно дороже, чем путь через "закрытую дверь в конце коридора". AStar проложит обходной путь до двери, а дальше моб просто ждёт, пока дверь не откроется игроком. Зависит, конечно, от геометрии карты, и может быть неэффективным решением в определённых случаях.

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

Написал стену текста и удалил, давайте без оффтопа.
Аноним 11/08/23 Птн 17:43:36 #216 №893787 
>>893784
надо поискать может был тред про игровой ИИ (ну, который не про нейронки)
Аноним 11/08/23 Птн 17:45:47 #217 №893788 
wormsninjarope.png
>>893657
>веревку ниндзя
Подобное делается созданием большого количества RigidBody2D, соединённых между собой PinJoint2D:
https://docs.godotengine.org/en/stable/classes/class_pinjoint2d.html
Игрок (червяк) болтается на последнем сегменте, для спуска добавляются новые сегменты, для подъёма ближайший к игроку сегмент удаляется. Для раскачки игрок прикладывает импульс к ближайшему сегменту.

>>893770
>grappling hook
В Worms другое. Там прям физическая нитка, которая наматывается на препятствия, и на которой можно физически реалистично раскачиваться.

А по твоей ссылке простой импульс:
>When it reaches a body, it will pull the player towards it. If the player moves during that, the grapple will cancel.
Подобное делается элементарно, тут даже туториал не нужен, если ты хоть немного в движке разбираешься.
Аноним 11/08/23 Птн 17:59:21 #218 №893790 
>>893787
>тред про игровой ИИ
Такого сейчас нет и вроде никогда не было.

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

Что там обсуждать?
Деревья решений?
Конечные автоматы?
GOAP планировщик?
Генетические алгоритмы?

Всё сведётся к кучке безыгорных фантазёров, которые не могут конкретизировать задачу.
Аноним 11/08/23 Птн 18:01:00 #219 №893791 
>>893790
Я точно в каком-то отвечал, но искать лень.
Аноним 11/08/23 Птн 18:06:49 #220 №893793 
>>893788
Только я бы не стал использовать стандартные джойнты, а сделал свои.
Честно говоря, цепь в Dumer довольно нестабильно себя вела.
Аноним 11/08/23 Птн 18:08:19 #221 №893794 
>>893793
Вообще я заметил, что коллизии вращения - довольно непроработанная в разных движках тема. Видимо математика становится сложной на шейпкастах.
Аноним 11/08/23 Птн 21:51:19 #222 №893830 
Как сделать поп-ап, который работает на паузе в годот 3?
Представьте ситуацию, играете себе, получаете экспу, и по середине экрана появляется окно, где можно повысить характеристику например. Надо, чтобы весь мир паузился кроме этого окна. Как это сделать?
Аноним 11/08/23 Птн 22:11:12 #223 №893831 
image.png
>>893830
Аноним 11/08/23 Птн 22:46:29 #224 №893834 
>>893830
Прикол в том, что если у тебя окно появляется посередине, то ты НЕ хочешь чтобы весь мир паузился. Ты хочешь паузить только игровую логику, но не хочешь паузить, например, анимацию воды и травы, музыку. Поэтому тебе и ответ - паузи только тот process который отвечает за игровую логику.
Аноним 11/08/23 Птн 23:00:39 #225 №893836 
Как же сложно делать игры, даже очень простые.
Аноним 11/08/23 Птн 23:12:07 #226 №893837 
>>893836
Делай очень-очень простые. А еще лучше - разбивай их на очень-очень-очень простые компоненты.
Аноним 12/08/23 Суб 00:02:00 #227 №893841 
>>893837
Когда делаешь ОЧЕНЬ простую игру начинает казаться, что она никому не нужна (так и есть). В итоге на половине начинаешь думать, что надо бы прикрутить систему апгрейдов, ещё какие-нибудь приколы. А эти самые приколы оказываются адски тяжелыми в реализации для нубаса.
Аноним 12/08/23 Суб 01:02:18 #228 №893849 
>>893841
>она никому не нужна (так и есть)
Никакая игра никому не нужна. Мы мельче пыли в масштабах вселенной, и никто из нас не доживёт до времён, когда какая-либо цивилизация сможет существенно влиять хотя бы на одну галактику, что уж говорить о наших компьютерных развлечениях, которые устаревают быстрее, чем сменяются поколения людей. Но даже если рассматривать с точки зрения человечества, никакие игры не нужны - нужны только способы удовлетворения наших животных инстинктов. Даже если бы игр не было, люди нашли бы себе занятия для развлечения. Важность игр искусственно преувеличивается в целях прибыли их разработчиков и владельцев, как, впрочем, и важность очень многих других не обязательных для выживания товаров. Тебе буквально внушают необходимость купить что-то, и ты можешь настолько поверить этим внушениям, что начнёшь сам убеждать окружающих купить что-то, поиграть во что-то и т.д. Люди всего лишь животные, управляемые древним механизмом подкрепления, нас можно дрессировать как животных и нам это будет даже нравиться, у нас только иллюзия свободы. Вот игры, и вообще любая индустрия дрессирует нас покупать, чтобы мы генерировали им больше прибыли. А сами по себе игры не нужны независимо от их сложности, так что если твоя игра проще какой-то другой - не парься. Сделай клон гиперказуалки, они очень популярны несмотря на техническую, геймплейную и визуальную простоту.
Аноним 12/08/23 Суб 01:28:20 #229 №893851 
>>893849
Игры-то делаешь?
Аноним 12/08/23 Суб 03:36:25 #230 №893853 
thirty.six.dev.underworld2.png
Я хочу сделать кастомное освещение для моего tilemap, и пытаюсь придумать, как его имплементировать. Выглядеть оно должно как на пикче, с каждым ходом игрока область видимости обновляется. Пока в голову приходит только заведение отдельной текстуры темноты и при каждом движении проходиться по тайлмапе, чтобы проверить, доступна ли она игроку, но я не очень понимаю, как должно выглядеть заполнение и через что реализовать, set_cellv() не подходит, так как он перезаписывает текстуру, а мне надо, чтобы после ухода игрока она сохранялась, а не становилась черным квадратом. Как это вообще называется и где такое гуглить, нашел только реализацию тумана войны, но это не совсем то, что мне нужно. У анона выше было сделано что-то похожее, мб есть ссылка на твой реп? >>892585
Аноним 12/08/23 Суб 05:11:55 #231 №893857 
>>893853
https://www.roguebasin.com/index.php/Field_of_Vision
>У анона выше было сделано что-то похожее
У него просто второй тайлмап с единственным тайлом в виде чёрного квадрата. Скорее всего.
Аноним 12/08/23 Суб 08:22:55 #232 №893859 
>>893834
>Ты хочешь паузить только игровую логику, но не хочешь паузить, например, анимацию воды и травы, музыку.
Ну хз, а я (влез в ваш разговор) вот не люблю, когда игры так делают. Когда какие-то анимации на паузе продолжают двигаться, то
а) возникает ощущение, что пауза какая-то "ненадёжная", может подвести в какой-то момент, и какой-нибудь геймплейный элемент не замрёт.
б) теряется вера в игровой мир, сразу понимаешь, где декорации, а где настоящие интерактивные объекты.

И музыка - мне вот нравится, когда на паузе либо отдельная музыка, либо просто основная приглушается. Ну, если пауза инициирована не игроком, то второй вариант. Сразу как-то фокусирует внимание.

>>893774
>Как искать? Я понял, что это "уютное приключение", но поисковик выдаёт какую-то фигню.
Я бы сказал, Hyperbolica по самой сути попадает в жанр. Шатаешься по миру, общаешься с "няшными" персонажами, а с кисельных берегов единороги ссут радугой в молочные реки. Из геймплейных механик - ходьба.


Годаны, я трейлер белорусам отправил. Впервые показываю свою игру не каким-то друзьям-знакомым, а прям важным дядям, для которых игры это не баловство, а профессия.
Аноним 12/08/23 Суб 08:43:19 #233 №893860 
image.png
>>893853
Если хочешь чтобы тайлы оставались видимы, то тебе в общем-то ничего делать не надо после того как клетку открыл. Смотри пикрелетед
>>893857
Всё так, но два цвета: один чёрный, другой серый прозрачный для известных клеток, но вне поля видимости.
Аноним 12/08/23 Суб 09:06:18 #234 №893862 
>>893859
> Годаны, я трейлер белорусам отправил. Впервые показываю свою игру не каким-то друзьям-знакомым, а прям важным дядям, для которых игры это не баловство, а профессия.

поздравления мои прими
Аноним 12/08/23 Суб 11:55:14 #235 №893869 
>>893859
Конечно же поздравляю, но с этого
>для которых игры это не баловство, а профессия.
Кринжанул
Аноним 12/08/23 Суб 11:55:36 #236 №893870 
1691830536625.png
>>893860
> image.png
Ужас какой-то. Человек пытается в какие-то модные-молодёжные ЕЦСы, но при этом допускает в своём коде магические числа.
Аноним 12/08/23 Суб 12:06:21 #237 №893871 
>>893870
Ой всё. Переделка работы с графоном у меня в планах, если я сейчас вместо маленьких успехов ведущих к игре буду пытаться сделать всё идеально, то у меня игры никогда не будет.
Аноним 12/08/23 Суб 12:46:17 #238 №893873 
>>893871
>если я сейчас вместо маленьких успехов ведущих к игре буду пытаться сделать всё идеально, то у меня игры никогда не будет
Этот шарит.
Аноним 12/08/23 Суб 13:52:44 #239 №893877 
>>893870
> модные-молодёжные ЕЦСы
это уже как сто лет стандартный подход в играх
Аноним 12/08/23 Суб 14:19:47 #240 №893879 
Помогут ли знания полученные в гдскрипте годота устроиться джуном питонистом за доширак
Аноним 12/08/23 Суб 14:51:39 #241 №893880 
Как лучше всего сделать, чтобы функция вызывалась, когда переменная изменилась? Звучит как что-то простое/очевидное, но не могу придумать решение...
Аноним 12/08/23 Суб 15:03:43 #242 №893882 
>>893880
Сигналы?
Аноним 12/08/23 Суб 15:08:52 #243 №893883 
>>893880
Сеттеры
Аноним 12/08/23 Суб 15:31:34 #244 №893884 
>>893880
setget после вара пишешь и указываешь метод для сета
Аноним 12/08/23 Суб 15:39:45 #245 №893886 
>>893831
Не работает почему-то, уже часами над этим сижу. Может какие-то ноды неправильно работают с этим? Это просто элемент гуи, панель и на ней лейбл и контейнер, мир паузится, а панель не анпаузится, даже если процесс ставить.
Аноним 12/08/23 Суб 17:10:05 #246 №893890 
>>893879
слабо косвенно
Аноним 12/08/23 Суб 17:38:38 #247 №893895 
>>893870
>модные-молодёжные ЕЦС
Не вижу там ЕЦС, по ЕЦСу каждая клеточка карты - это сущность с компонентами, например:
- компонент "видна";
- компонент "исследована игроком";
- компонент "спрайт";
- компонент "позиция";
и т.д. Далее десятки систем параллельно работают с каждой клеточкой на 9000 ядрах процессора, избегая промахов кэша и повышая ЧСВ разраба до небес.

А у него ООП какое-то с циклами в циклах... Будет занимать одно ядро и промахиваться мимо кэша каждый раз, когда ОС переключает процессы.

>допускает в своём коде магические числа
Это фигня по сравнению с тем, что он допустил C#.

>>893877
>стандартный подход в играх
Это компоненты в играх стандарт, а ЕЦС возвели в культ совсем недавно, под давлением корпоратов.

Скоро ничего нельзя будет сделать без создания нескольких сотен систем для переключения bool.
Аноним 12/08/23 Суб 17:46:05 #248 №893897 
>>893880
Зависит от версии Godot. В 4.0 синтаксис поменяли.

Godot 4.x:
https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html#properties-setters-and-getters
Godot 3.x:
https://docs.godotengine.org/en/3.6/tutorials/scripting/gdscript/gdscript_basics.html#setters-getters
Аноним 12/08/23 Суб 17:59:55 #249 №893899 
>>893895
> каждая клеточка карты - это сущность с компонентами
Звучит не очень эффективно
> он допустил C#
Не на ГД скрипте же писать в годоте. Он ещё медленнее же
Аноним 12/08/23 Суб 18:16:58 #250 №893900 
>>893859
>возникает ощущение, что пауза какая-то "ненадёжная", может подвести в какой-то момент, и какой-нибудь геймплейный элемент не замрёт.
У тебя какая-то психотравма или профдеформация, если ожидаешь на каждом шагу game-breaking bug.

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

Ящитаю, если не хочешь анимировать фон, тогда делай окно паузы на весь экран, чтобы оно перекрывало всю игру - какой-то своей картинкой, сплошным чёрным фоном или хотя бы очень сильным размытием. Если ты делаешь маленькое окошко в центре/сбоку экрана, или хочешь ставить игру на паузу во время диалога - анимации необходимы, чтобы картинка не выглядела скучной. Анимация воды нужна не для того, чтобы игрок верил в мир, а чтобы картинка была нескучной - потому что в стоячей воде нет ничего нереалистичного, даже текущая река чисто визуально может выглядеть неподвижной - но наблюдать за стоячей рекой скучно, так что анимации здесь служат исключительно эстетическую роль. Аналогично с травой, светлячками, облаками и т.п. Останавливаться должны только объекты, движение которых способно влиять на геймплей. Скажем, если волны физически влияют на лодку игрока, тогда ты обязан ставить воду на паузу; если облака влияют на решение головоломки, они обязаны замирать вместе со всем миром; если светлячки указывают игроку путь, они не должны улетать за край экрана во время паузы.

>>893886
>ноды неправильно работают с этим
В 99% случаев это не баг, а твоё непонимание.
В 1% случаев иди на гитхаб и ищи issue с багом.

>панель не анпаузится
pause_mode == process заставляет ноду работать независимо от состояния паузы:
>PAUSE_MODE_PROCESS = 2 --- Continue to process regardless of the SceneTree pause state.
Т.е. твоё меню паузы будет существовать и работать даже если игра не стоит на паузе. Следовательно, у тебя там какая-то другая проблема в коде. Может быть, ты где-то в своём коде сделал set_process(false) у ноды меню и забыл об этом?
https://docs.godotengine.org/en/3.5/classes/class_node.html#class-node-method-set-process
Аноним 12/08/23 Суб 18:50:23 #251 №893906 
>>893899
>Звучит не очень эффективно
Это был сарказм через утрирование.

>GDScript
>Он ещё медленнее же
Ну, давай на ассемблере писать игры. Это как раз то, что называют преждевременной оптимизацией. Вместо разработки игры ты заботишься о скорости выполнения кода, который ты, скорее всего, вообще выбросишь из проекта на каком-то этапе.

GDScript адаптирован под скорость написания кода, который можно безболезненно выбросить или, при необходимости, переписать на C++ ради скорости выполнения. Сначала делаешь игру, потом ищешь наиболее тяжёлые по скорости вычислений места и переписываешь их другим инструментом.

Те же операторные скобки только мешают, когда тебе необходимо высрать 1500 строк кода за час и потом удалить больше половины.

Взять хотя бы for:
>for (int x = 0; x < parent.gameMap.width; x++) {
>_ for (int y = 0; y < parent.gameMap.height; y++) { ... }}
На GDScript проще и для записи, и для чтения:
>for x in parent.game_map.width:
>_ for y in parent.game_map.height:
Какой смысл в первой записи по сравнению со второй, если тебе нужно просто пробежаться по всем ячейкам карты? Ты не будешь начинать не с 0, не будешь перескакивать через несколько ячеек, не будешь делать какую-то сложную проверку вместо проверки на достижение конца строки или столбца. И отступы ты в любом случае добавишь для читабельности кода. Круглые скобки тут вообще не нужны, просто C-подобный синтаксис слишком перегружен.

Ну да, медленнее выполняется. Но ты скорее всего не на пентиуме начала 00-х сидишь, и тебя сейчас скорость выполнения кода не должна волновать. Сделай сначала игру, а код оптимизировать можно сто раз даже после релиза. Люди давно привыкли покупать новый компьютер для новых игр, и не ценят по достоинству высокую производительность кода в играх. А вот что они ценят - это интересный геймплей, обилие контента и частые обновления контента с фиксом багов. Поэтому так популярны скриптовые языки в игровых движках, и поэтому скриптовые языки адаптированы на читабельность и модифицируемость кода, а не на скорость выполнения. Если ты отказываешься от скриптового языка, ты сам себя замедляешь, оттягивая релиз игры и усложняя процесс доработки игры после релиза. Потому что переписать уже существующую систему на другой язык намного проще, чем изобретать несуществующую систему с нуля, особенно если язык не адаптирован под скоростную разработку.
Аноним 12/08/23 Суб 18:54:24 #252 №893909 
>>893906
Я не то чтобы испытываю невероятные сложности со скоростью написания на с#, учитывая что я на работе пишу на с++. Чаще возникают проблемы с тем что писать, а не с тем, что мясистые пальцы не поспевают за стрелой мысли.
Аноним 12/08/23 Суб 19:48:48 #253 №893914 
>>893906
операторные скобки не мешают, а наоборот только помогают видеть код быстрее более структурированным
Аноним 12/08/23 Суб 22:03:44 #254 №893919 
Лучше игры делайте. Делать игры вам мешает не язык/движок/арт/шизы с харкача, а ваша прокрастинация. Все остальное - гнилые отмазки.
Аноним 12/08/23 Суб 22:32:21 #255 №893920 
Чего 3.6 так долго ползет? Когда уже? Планирую на нем сидеть до где-то так 4.5.
Аноним 13/08/23 Вск 00:35:36 #256 №893932 
>>893919
Моё оправдание это то, что я психически больной. Но я делаю игру, я доведу 1 игру до коммерческого релиза, даже если этот релиз будет приносить 1 рубль в год.
Аноним 13/08/23 Вск 04:15:07 #257 №893944 
>>893862
>>893869
Аригато, пацаны

>>893869
>Кринжанул
Ну смотри. Условный Вася любит поиграть в игры, но так вообще работает на работе, и если игры из его жизни убрать, в целом ничего особо не изменится - "баловство". Не условный Виталик играет в игры, снимает видео про игры, зарабатывает этим всем на жизнь; невозможно убрать игры из его жизни, не порушив эту самую жизнь - "профессия".
Определение профессии - человек занимается чем-то на постоянной основе, и это является основной статьёй его заработка. А уж кто, чем и с каким качеством, в этом определении не учитывается.
И вообще, понимаю твой кринж, но я на анонимной борде, и мне насрать :3

>>893919
>Делать игры вам мешает не язык/движок/арт/шизы с харкача, а ваша прокрастинация. Все остальное - гнилые отмазки.
Вот я хоть и согласен, ты правильно говоришь, но заебал. Пару раз это выглядело как правда-матка, но в стопицотый - уже шиза. Сам иди игры делай, а не пости одно и то же.

>>893900
>ожидаешь на каждом шагу game-breaking bug
Я тут поиграл в Jagged Alliance 1. Великая классика из 90х, ещё под ДОС. Пошаговая тактика: ходишь ты, потом ходит комп, ну и так далее. И там совершенно эпичный финал, когда главзлодей самоубивается во взрывах, и всё начинает взрываться. Задача игрока - спасти сюжетный макгаффин из ящика злодея и эвакуироваться с минимальными потерями. Вот только взрывы реалтаймовые. То есть, мы ходим в пошаге; взрывы взрываются когда хотят.
Психотравма, говоришь? Ну да, сорт оф.

>ждут, пока ты не закончишь диалог с каким-либо персонажем.
С диалогами есть альтернативный вариант реализации - ничего не паузить, но дать возможность прервать диалог в любой момент. ИМХО это честнее; а важные сюжетные разговоры устраивать только в безопасных местах.

>анимации здесь служат исключительно эстетическую роль
Если очень нужно, чтобы обязательно что-то мельтешило (вообще да, согласен, нужно), то лучше пусть интерфейс мельтешит.
Но в общем-то это такая вкусовщина. Я предпочитаю, чтобы пауза всем своим видом однозначно говорила: "игра замерла, ты в безопасности, можешь спокойно читать окошко или пойти отлить", и какой-нибудь шейдер, продолжающий анимироваться, воспринимается мной как недоработка. Но у меня нет доводов в пользу этого, кроме "мне так больше нравится".
Аноним 13/08/23 Вск 04:33:19 #258 №893945 
>>893944
Я тебя еще не так заебу. Иди делай игры, блять. Делай-делай. Приду проверю потом, чтоб сделал все. Хватит яйца мять.
Аноним 13/08/23 Вск 11:33:35 #259 №893957 
>>893919
Нет идей.Все создано.
Аноним 13/08/23 Вск 12:26:10 #260 №893960 
1691918771559.png
>>893871
> Ой всё.
> если я сейчас вместо маленьких успехов ведущих к игре буду пытаться сделать всё идеально
Это вопрос внутренней дисциплины.
ИМХОИМХО
Нет ничего сложного, чтобы ебануть энум с подливой под себя и в дальнейшем брать оттуда константы:
> enum BallColor { None=-1, Black, Gray, White, LightSalmon}
И что характерно, попытки в самоорганизацию есть, далее по пикче есть следы использования энумов.
То есть, анон знает о них, но всё равно ленив и расхлябан, что позволяет себе магические числа в коде, оправдываясь тем, что когда-нибудь сядет и всё отрефакторит. Ага. Да-да.
Аноним 13/08/23 Вск 12:56:46 #261 №893962 
>>893960
>enum BallColor { None=-1, Black, Gray, White, LightSalmon}
Тогда уж ему нужно
>enum FogState { Visible = -1, Known, Unknown }
Visible - клетки в поле видимости;
Known - клетки, которые игрок видел ранее;
Unknown - клетки, которые игрок никогда не видел.
Чтоб абстрагироваться от визуализации.
Аноним 13/08/23 Вск 13:02:27 #262 №893963 
Палю годноту. Если ваша игра работает под веб, то помимо итча рекомендую выложить на newgrounds. Там премодерация, но если игра пройдет, то полезных комментов и популярности запросто х5 от итча. Аудитория сайта - как раз игруны, а не геймдевы.
Аноним 13/08/23 Вск 13:33:43 #263 №893966 
2022.10.04.mp4
>>893944
>С диалогами есть альтернативный вариант реализации - ничего не паузить, но дать возможность прервать диалог в любой момент.
Идеальный вариант - это чат, такой же, как в мультиплеерных играх. Реализовать сложнее, но преимущества перевешивают недостатки.

Написал длинное сообщение с описанием всех преимуществ и недостатков каждого подхода, но случайно закрыл браузер и всё потерял. Лень повторять.
Аноним 13/08/23 Вск 13:50:42 #264 №893969 
>>893963
А донаты там есть? Если есть, то не в РФ, наверное?
Аноним 13/08/23 Вск 14:29:36 #265 №893975 
>>893969
Вроде есть revenue share программа и выплаты от 100 баксов. С РФ сам понимаешь.

Мне в основном нужны структурированные отзывы, а то на итче их хуй дождешься, и трафик на мобильные аппсторы. Что NG мне и дал.
Аноним 13/08/23 Вск 16:03:46 #266 №893990 
Как же просто делать игры. А с годотом все дается так легко. Придумал новую игру и уже доделываю прототип.
Аноним 13/08/23 Вск 16:09:27 #267 №893994 
>>893990
А мне сложно.
Аноним 13/08/23 Вск 16:51:48 #268 №894006 
>>893994
Это тебе к психологам. Мы тут игры делаем.
Аноним 13/08/23 Вск 17:21:06 #269 №894015 
>>894006
Как заработаю с игры, так и смогу оплатить психолога. А сейчас я нищук.
Аноним 14/08/23 Пнд 07:56:06 #270 №894077 
Это самое. Есть ли способ подключить сигнал не с конкретной ноды, а просто так? Я имею ввиду, что у меня вот есть 3 кнопки. При нажатии кнопка отправляет массив вместе с сигналом. Мне не имеет значение какая кнопка сигнал посла, мне нужно принять сигнал и присвоить какой-либо переменной данные посланные с сигналом.
А то как-то на каждую кнопку по сигналу жирно выходит. Там не красивый копипаст получится.
Аноним 14/08/23 Пнд 08:33:43 #271 №894078 
>>894077
Короче я решил просто из vbox'а с кнопками стрелять сигналом. Но может ещё как-то можно?
Аноним 14/08/23 Пнд 08:55:03 #272 №894082 
Какой лучший варик вывести спрайт в 3д в биллборд режиме с возможностью этот спрайт крутить по своей оси?
Аноним 14/08/23 Пнд 08:58:32 #273 №894083 
godots.png
>>894082
Аноним 14/08/23 Пнд 09:04:12 #274 №894084 
>>894083
>с возможностью этот спрайт крутить по своей оси
Аноним 14/08/23 Пнд 09:20:44 #275 №894085 
>>894084
Ты не умеешь крутить ноду?
Аноним 14/08/23 Пнд 09:37:30 #276 №894086 
>>894085
нативная биллборда ж не крутится
Аноним 14/08/23 Пнд 09:55:27 #277 №894087 
>>894086
покажи конкретнее кусок, что и где у тебя не крутится или поясни более нагляднее желаемый результат
Аноним 14/08/23 Пнд 10:14:50 #278 №894088 
>>894087
представь себе спрайт со свастоном
мне нужно заставить крутиться этот свастон по часовой стрелке
Аноним 14/08/23 Пнд 10:46:14 #279 №894090 
>>894088
ну вот ставишь Sprite2D или 3D в зависимости от игры и крутишь ноду со свастоном
Аноним 14/08/23 Пнд 11:03:22 #280 №894092 
>>894090
>крутишь ноду
>нативная биллборда ж не крутится
Аноним 14/08/23 Пнд 12:31:29 #281 №894095 
>>894077
>А то как-то на каждую кнопку по сигналу жирно выходит. Там не красивый копипаст получится.
Можешь циклом по всем кнопкам пройтись и подключить. Я так делаю. Тогда всего 2 строки.
Аноним 14/08/23 Пнд 18:10:01 #282 №894121 
>>894077
Все три кнопки сажаешь на один сигнал. Или я непонел, что именно ты хочешь.
Аноним 14/08/23 Пнд 18:11:48 #283 №894122 
>>894092
Значит создай меш, в него установи плейн, отключи куллинг бэкфейса, и собсна крути как хочешь.
Аноним 14/08/23 Пнд 18:13:32 #284 №894124 
>>894122
У меня от твоих советов КУЛИНГ БЕКФЕЙСА.
Аноним 14/08/23 Пнд 18:15:09 #285 №894125 
>>894124
Хули ты флипнулся в геймдевелопинг тогда? Оформи срыгос.
Аноним 14/08/23 Пнд 19:17:20 #286 №894136 
>>894125
>срыгос
Ливни, тогда уж.
Аноним 14/08/23 Пнд 19:25:52 #287 №894137 
>>894122
>собсна крути как хочешь
Я так и делаю, но думал чёт из коробки пропустил мб, заебно всё время плейн в камеру поворачивать.
Аноним 14/08/23 Пнд 20:17:42 #288 №894141 
>>894137
> заебно всё время плейн в камеру поворачивать
Э, в смысле всё время? Один раз код поворота написал и не трогаешь.
Аноним 14/08/23 Пнд 20:33:18 #289 №894145 
>>894141
>в смысле всё время?
ну дрочить в процессе векторы трансформа камеры, чтобы плейн к ней повернуть
Аноним 14/08/23 Пнд 20:38:38 #290 №894148 
>>894145
Ты мой пост читал вообще? Продрочи векторы один раз и код будет just work, что с тобой не так?
Аноним 14/08/23 Пнд 20:48:09 #291 №894150 
>>894148
>код будет just work
Ага, каждый тик
Аноним 14/08/23 Пнд 21:20:11 #292 №894158 
>>894077
Технически то ты никак не можешь избавиться от "одна кнопка - один сигнал", ведь источником сигналов являются разные кнопки. Ну а принимать можешь в одном месте, да. В коннекте можно указать в параметрах от кого сигнал.
Аноним 14/08/23 Пнд 21:20:49 #293 №894159 
>>894082
>спрайт в 3д в биллборд режиме с возможностью этот спрайт крутить по своей оси?
Это?
https://docs.godotengine.org/en/stable/classes/class_basematerial3d.html#class-basematerial3d-property-billboard-mode

>>894122
>отключи куллинг бэкфейса
Зачем, если билборд всегда в камеру смотрит?

>>894150
>Ага, каждый тик
А встроенный билборд как часто крутится?

Выбери режим BILLBOARD_ENABLED, конвертируй стандартный материал в шейдер, изучи его код и доделай ему вращение по нужной оси (z?).
Аноним 14/08/23 Пнд 21:24:14 #294 №894160 
>>894077
>просто так
>отправляет массив вместе с сигналом
>данные посланные с сигналом
>копипаст получится
RTFM, чтобы не задавать глупых вопросов.
https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html
Аноним 14/08/23 Пнд 21:40:27 #295 №894163 
>>894159
Он хочет вот это https://github.com/godotengine/godot-proposals/discussions/5821
Аноним 14/08/23 Пнд 21:52:41 #296 №894164 
>>894159
>Выбери режим BILLBOARD_ENABLED, конвертируй стандартный материал в шейдер, изучи его код и доделай ему вращение по нужной оси (z?).
Это кстати может и получше будет постоянного поворота трансформных базисов камеры в процессе. Спс, попробую.
Аноним 14/08/23 Пнд 21:55:53 #297 №894165 
image.png
Итч. Продолжаю ползти к успеху. Насколько же годот упрощает делание игор, пиздец просто.
Аноним 14/08/23 Пнд 22:02:13 #298 №894166 
>>894150
Сколько у тебя таких билбордов? 100? 10000? Ты делал бенчмарки или просто занимаешься предварительной оптимизацией?
Аноним 14/08/23 Пнд 22:55:29 #299 №894172 
>>894166
>занимаешься предварительной оптимизацией?
)))а чё для себя низя чёль?)))
Аноним 14/08/23 Пнд 23:46:20 #300 №894183 
>>894165
Это где так деньги отдают?
Аноним 15/08/23 Втр 03:08:51 #301 №894198 
Я извиняюсь, а где вы берете ассеты? Вы же не рисуете всю графику к каждой новой игре? Вот представим ситуацию например, я взял графику главного героя с итча или просто с бесплатного пака какого-то. Я имею право поставить его на иконку? Просто пиздец же, у тебя на иконке ассет какого-то другого чела, по сути лицо игры...
Аноним 15/08/23 Втр 03:50:21 #302 №894201 
>>894198
Иногда сам руками, иногда готовое. В любом случае если ты берешь/делаешь что-то графически сложное, то ты, за крайне редким исключением, уже провалился.

>Я имею право поставить его на иконку?
Смотри лицензию ассетов.
Аноним 15/08/23 Втр 04:23:41 #303 №894205 
>>894198
Я рисую сам. Рисовать не умею правда, но другого пути нет. Повезло, что у меня не ретро пиксель арт. Я вообще хз как его рисовать. Когда делал на пикселях, там подрезал из интернетов всё и чуть менял под себя.
Аноним 15/08/23 Втр 06:35:09 #304 №894207 
>>894205
> другого пути нет
Нейронки
Аноним 15/08/23 Втр 09:45:16 #305 №894214 
>>894198
>где вы берете ассеты
opengameart и скетчфаб лул
Аноним 15/08/23 Втр 15:51:44 #306 №894243 
>>894214
>opengameart
Просто без задней мысли скачиваешь ассеты/спрайты и всё? Ничего не прилетит?
Аноним 15/08/23 Втр 16:05:44 #307 №894246 
>>894243
>Ничего не прилетит?
ПРОСТО смотришь, чтобы в лицензии не было NC. Если BY, то записываешь ник автора в титры. А в целом так-то похуй.
Аноним 15/08/23 Втр 17:52:20 #308 №894258 
Как же я не люблю графику делать. Вот сделать прототип на кубах без графики это кайф, делаешь и работает. А когда надо подключать графику мотивации никакой, всё же уже работает, а при этом работы еще дохуя. Как бороться с этим чувством?
Аноним 15/08/23 Втр 17:54:21 #309 №894260 
>>894258
Делай минималистичную в Блокбенче если 3д, или в аспрайте если 2д
Аноним 15/08/23 Втр 18:17:35 #310 №894263 
>>894205
> Повезло, что у меня не ретро пиксель арт. Я вообще хз как его рисовать
Так он же в разы проще всего остального рисуется.
Аноним 15/08/23 Втр 20:23:51 #311 №894300 
Занимаюсь в данную единицу времени переносом одной игры на Godot, довольно таки... Успешно? Не суть.
В связи с юридическим аспектом нужно сделать так чтобы пользователь распаковал файлы оригинальной игры и сунул в папку с exe моего переноса, пока прикидывал просто выдирал файлы и совал в проект настраивая всё, сейчас понял что я лучше сейчас переделаю малый объём работы, чем буду всё переделывать на такую формулу в последний момент.
Встал вопрос - как использовать файлы из одной папки с исполняемым файлом не используя скрипты и никак не упаковывая эти файлы? Желательно, но не обязательно чтобы их было видно в редакторе.
Аноним 15/08/23 Втр 21:52:23 #312 №894312 
Делаю самую простую в мире казуалку. И всё равно выгораю и разрывается мозг. Ладно механику сделать это ладно, но ещё же миллион факторов начиная балансом, заканчивая графикой... И потом когда видишь что ты выпускаешь в свет хочется спустить себя в унитаз. Как же сложно делать хоть что-то, в том числе игры
Аноним 15/08/23 Втр 22:00:54 #313 №894314 
Как же легко и просто делать игры. Сегодня прикрутил новую генерацию к своему рогалику. Блин, прямо загорелся, хочется фигачить не останавливаясь.
Аноним 16/08/23 Срд 01:18:35 #314 №894324 
Ого, вы видели, у неё открытый движок? Сейчас я буду смотреть на него и дрочить. Она хочет моих проектов и денег! Вы видели? Сладкий гдскриптик!
Аноним 16/08/23 Срд 02:11:31 #315 №894328 
>>894324
Лучше сделай ей пару игр.
Аноним 16/08/23 Срд 09:32:40 #316 №894333 
Всё хуйня я проебался. Сделал систему на массивах (сук нах три массива и кода до жопы). Сейчас сижу и понял что можно было сделать то же самое в два клика при помощи ресурсов. Как бы саму систему не сложно модифицировать и работать с ней, но если бы это были ресурсы, то было бы легче. Времени переделать нет (да и желания) из-за работы, так что оставлю так. Вот бля нужно думать перед тем как что-то делать.
Аноним 16/08/23 Срд 10:06:54 #317 №894335 
>>894333
Если так просто переделать, то почему бы и нет?
Аноним 16/08/23 Срд 10:13:06 #318 №894337 
>>894335
Да вот видимо придётся. А то есть шанс пожалеть потом. Я рисковать не стану.
Аноним 16/08/23 Срд 11:35:43 #319 №894338 
image.png
image.png
image.png
Сап, вкатываюсь в Годот с конструктора рпг мейкера. Хочу сделать передвижение по карте по клеточкам, из гайда стащил код и персонаж начал так двигаться, но он может ходить по твердым объектам. В гайде чел через РейКаст2Д пишет код и персонаж перестает ходить по ним, а я просто скопировал, и движок начинает ругаться. В тайловой карте полностью захватил область колизии, не помогает. Гайд на 3 пике.

Кодом никогда в жизни не занимался, поэтому не понимаю даже как его начать, то что означает иф и елс понятно, но как из них получить что-то полноценное понятия не имею. Каким образом вы научились работать с буковками? Ибо просто тыря код, я далеко не уйду и врятли научусь
Аноним 16/08/23 Срд 11:46:57 #320 №894339 
>>894338
> просто тыря код, я далеко не уйду и врятли научусь
Это так, даже если берёшь с гайдов, лучше переписывай ручками, желательно стараясь понять что там написано. Конкретно тут сходу видно что код под третий годот, а ты скорее всего скачал четвёртый. Надо не onready, а @onready.
Аноним 16/08/23 Срд 11:47:44 #321 №894340 
>>894338
onready var ray = $RayCast2D TO onready var ray = get_node("/root/Area2D/RayCast2D")
Аноним 16/08/23 Срд 11:48:48 #322 №894341 
>>894339
А, да кстати, возможно банально код для третьего годота в четвёртом.
Аноним 16/08/23 Срд 11:57:31 #323 №894342 
>>894338
О. Здорова братан. Я тоже с рпгма. Но я делаю без клеток так что у меня таких проблем нет. Как и сказали аноны выше, у тебя годота версия новее. А вообще советую прям сходу посмотреть гайд "Make an Action RPG in Godot 3.2". Там базис и основа, хоть и под другую версию (мне это не помешало). Ну а дальше по запросам в гугле и итт.
Аноним 16/08/23 Срд 12:02:33 #324 №894343 
>>894339
Добавил собачку и ща ругается что инпуты и тайл сайзы не в зоне видимости, но эт думаю пока сам попробую решить, спасибо в любом случае!
>>894342
Оо, супер, щас тогда и погляжу. Может еще по каким-то урокам учишься?
Аноним 16/08/23 Срд 12:06:26 #325 №894344 
Аноны, щас переделываю одну игру на годоте, игра не моя, так что надо как-то отвязать ресурсы от игры, мне нужно чтобы графику и звук игрок распаковал из файлов оригинальной игры и сунул в одну папку с моим exe, пути и имена заранее известны, как НЕ через скрипты подсосать эти файлы?
Аноним 16/08/23 Срд 12:22:52 #326 №894345 
1
Аноним 16/08/23 Срд 12:23:38 #327 №894346 
1
Аноним 16/08/23 Срд 12:31:45 #328 №894347 
>>894344
А что тебе мешает скриптами подгрузить?
Аноним 16/08/23 Срд 12:36:32 #329 №894348 
>>894343
>Может еще по каким-то урокам учишься?
Есть какие-то видео, но они специфические. Ты сам их запросто нагуглишь если придётся искать, например, как работать с кастомными ресурсами. Обучение, и программирование в частности - это 90% времени решение возникающих проблем. По этому я дальше стал просто под себя писать то, что мне нужно. Всё что не знаю гуглю или спрашиваю здесь. Сам понимаешь опыта в программировании у меня только с рпгма. Но тут практически тоже само и даже легче в некоторых аспектах. Например практически нет ограничений родного кода. Всё пиши как хочешь. Как напишешь, так и будет. Я в рпгме заебался во круг него прыгать с плагинами да остальными ограничениями и по этому, пока что, с годотом работь очень приятно после рпгма.
Аноним 16/08/23 Срд 13:07:32 #330 №894352 
>>894347
Ну... Мне придётся так всё подгружать, не цеплять-же мне ко всему скрипты только для подгрузки графики?
Аноним 16/08/23 Срд 13:47:48 #331 №894354 
>>894352
https://docs.godotengine.org/en/3.5/tutorials/export/exporting_pcks.html
https://github.com/GodotModding/godot-mod-loader

Это глянь. Не знаю отвечает ли они твоим требованиям, просто мимопроходил.
Аноним 16/08/23 Срд 21:18:11 #332 №894390 
>>893592
Рейкаст возвращает нормаль.
Вот ее плюсуй к координате спавнящегося куба домножив на половину стороны куба.
Должно проканать.
Аноним 16/08/23 Срд 22:01:51 #333 №894394 
Есть массив с зонами2Д, как мне найти ближайшую из них к игроку?
Аноним 16/08/23 Срд 22:17:41 #334 №894397 
>>894394
Считать евклидовое расстояние для каждой
Аноним 17/08/23 Чтв 01:04:08 #335 №894411 
3д оказывается не так сложно. Главное не потеряться в координатах/поворотах/осях. Но сколько же возможностей открывает.
Аноним 17/08/23 Чтв 01:21:30 #336 №894412 
>>894411
Каких возможностей? И где ты берешь 3д модели?
Аноним 17/08/23 Чтв 01:43:34 #337 №894414 
>>894412
Не ебаться с у-сортами и слоями, халявные тени, отражения, окружения, свет, глубина сцен, ю нейм ит. Сам делаю.
Аноним 17/08/23 Чтв 08:05:53 #338 №894423 
>>894338
> Хочу сделать передвижение по карте по клеточкам
> В гайде чел через РейКаст2Д
для ходьбы по клеточкам вообще не нужен рейкаст, ты просто проверяешь свой массив карты на тему проходима клетка или нет, всё
Аноним 17/08/23 Чтв 11:00:05 #339 №894431 
Стоит ли переходить с 3.5.2. на 4 версию? И почему?
Аноним 17/08/23 Чтв 13:07:33 #340 №894449 
>>894431
Я сижу на 3.5 и жду 3.6, потом буду ждать 4.х - где Х выше 5. Тройка под веб лучше работает и физика менее сломана. Но в 4 фичи вкусные пиздец.
Аноним 17/08/23 Чтв 13:13:31 #341 №894450 
>>894449
Разве 3.6 будет? 3.5 же ЛТС. И почему 4.7+ будут на твой вкус? Минорные версии означают номер порядковый номер релиза в мажорной версии же, или у годота свой путь?
Аноним 17/08/23 Чтв 13:16:16 #342 №894451 
>>894450
3.6 будет, уже третья бета есть: https://godotengine.org/article/dev-snapshot-godot-3-6-beta-3/

Предполагается что 3.6 будет последней версией в третьей ветке.

В четверке мне просто стабильности не хватает. Фичи хороши.
Аноним 17/08/23 Чтв 15:00:02 #343 №894463 
>>894451
> В четверке мне просто стабильности не хватает
а что там? вроде сейчас пилим два проекта: один в 2d другой в 3d и каких-то проблем не было, еще с беток годота четвертого начинали
Аноним 17/08/23 Чтв 15:51:03 #344 №894473 
>>894394
Честно говоря вопрос не так прост как кажется. Если зоны2д однотипные, скажем сферы или квадраты, то можно просто проверить в цикле distance_to_squared. А если нет, то что делать хз. Какой тогда критерий, зона у которой любая вершина, любой угол ближе? Или какой-то центр масс? Читал в одном месте, что можно использовать AStar для такого, видимо, наполнить массив координатами вершин и искать чем-то подобным волновому алгоритму.
Аноним 17/08/23 Чтв 15:52:42 #345 №894474 
>>894463
Например 3д физика. В трешке был Буллет, в четвертом его выкинули и заменили на Godot Physics. На полпути чувака, который его пилил на зарплате от Годот Фаундейшн, спиздили Рокстары. Итог такой себе. Сейчас в рамках отдельного проекта пилится Jolt, который, например, использовался в Хорайзоне. Как я понимаю планируется мердж в основную ветку когда допилят.
Аноним 17/08/23 Чтв 15:54:07 #346 №894475 
>>894414
>халявные
Не такие халявные, влегкую может оказаться что надо ебаться в 10х по сравнению с 2д. Тени для плавной смены времени дня я так и не осилил, например. А если статичные тени, то с запеканием были проблемы, не знаю сейчас уже поправили или нет. В общем у меня есть долгострой 3д и там много возни, а вот 2д пиксельное легко пилю одну за другой.
Аноним 17/08/23 Чтв 19:11:41 #347 №894521 
>>894449
Просто на тройку намного больше туториалов
Аноним 17/08/23 Чтв 22:01:44 #348 №894558 
Сколько месяцев/лет прошло пока вы не перестали плакать от собственной беспомощности и объема работы который надо сделать и знаний которых надо выучить, прежде чем выложить игру в стор?
Аноним 17/08/23 Чтв 22:08:36 #349 №894560 
>>894558
Года два. Может три. Быстро пролетели, не считал.
Аноним 17/08/23 Чтв 23:17:37 #350 №894577 
>>894558
Сколько месяцев/лет прошло, пока до вас не дошло что за свою жизнь вы успеете всего десяток полноценных проектов сделать, и то если повезет, а потом все, гроб гроб кладбище? И пиздец как важно выбирать не хуйню в этот жалкий десяток.
Аноним 17/08/23 Чтв 23:24:59 #351 №894579 
>>894577
Это ещё если гейдев это основная профессия и ты уже серьезно настроился до гроба игры делать. А если ты фанат пивандеполы который зашел почилить в годот после работы? Дай бог одна нормальная игра за 10 лет изучения движка.
Аноним 18/08/23 Птн 06:32:33 #352 №894599 
>>894474
Ну у нас там конечно не какая-то мега крутая физика, чтобы волосы развевались, но с обычной физикой проблем не наблюдали каких-то
Аноним 18/08/23 Птн 06:33:17 #353 №894600 
>>894521
а зачем туториалы, когда есть документация и мы тут еще сидим не просто так
Аноним 18/08/23 Птн 08:31:44 #354 №894601 
Снимок.PNG
Есть 4 комнаты. Узнаю в какой я комнате просто спросив имя ноды. Есть кнопки. Мне нужно узнать показывать ли кнопку в комнате. Для определения в какой комнате можно показывать конкретную кнопку я решил использовать флажки. Всё работает, но как теперь с этим работать? Круто что мне энумератор выдаёт количество битов у него, но что мне с ними делать? Я понимаю как он работает. Типа если сложить вот эти и эти битки, то получится как раз как раз кол-во выбранных флажков, но мне нужно знать какие именно флажки выбраны. Тут нужно алгоритм какой-то, но я тупой и не могу придумать. ПОМОГИТЕ.
Аноним 18/08/23 Птн 08:58:02 #355 №894603 
>>894601
Это не флажки, это массив. Зачем тебе room_index и четыре константы? Если отображаемые кнопки по сути есть двоичное представление номера комнаты, то почему бы не
buttonX.visible = room_number & (1 << X)
buttonY.visible = room_number & (1 << Y)
buttonZ.visible = room_number & (1 << Z)
Аноним 18/08/23 Птн 09:10:21 #356 №894606 
>>894603
>это массив
Ну допустим, а мне говорит, что int.
>Зачем тебе room_index и четыре константы?
Да это я так просто потупил немного. По сути там только @export в тему, остальное - полёт фантазии.
>Если отображаемые кнопки по сути есть двоичное представление номера комнаты
Там всё немного не так. Но по сути кнопка должна отображаться в комнатах A, B, C, но не D. Или только в A, C. Вот какую систему я хочу сделать. Сейчас уже думаю просто сделать массив имён комнат и там проверять всё это.
Аноним 18/08/23 Птн 09:21:19 #357 №894609 
>>894606
Ещё у тебя есть вариант сделать массив флагов тогда, где индекс - номер комнаты и использовать >>894603 с небольшой модификацией room_array[room_number] вместо room_number Тогда например с массивом [1, 3, 4] у тебя отобразятся в первой первая кнопка, во второй первая и вторая, в третьей только третья
Аноним 18/08/23 Птн 09:26:50 #358 №894610 
>>894609
Понятно. Спасибо. А вот вообще есть способ узнать какие именно флажки активированы? То есть я то понимаю, что например если enum {a:1, b:2, c:4, d:8} равен = 3, то значит a и b активны, но как бы это каким-то алгоритмом определить.
Аноним 18/08/23 Птн 09:38:17 #359 №894612 
>>894610
Анончик, ты опять перепутал. Енам - есть по сути перечисление разных значений, в твоём случае интов. Флажки - определённый бит в инте. Определяется есть ли флажок или нет вот так >>894603 смещением единицы на столько разрядов, какой у тебя флажок. Почитай про битовые операции, например вот эту статью https://metanit.com/cpp/tutorial/2.8.php там хоть и для плюсов, но принцип во всех языках один
Аноним 18/08/23 Птн 09:42:23 #360 №894613 
>>894612
А бляпиздец. Лол. Вот что значит нихуя не программист. Спасибо что объяснил. Пизда рулю я чуть не упустил это знание.
Аноним 18/08/23 Птн 13:54:08 #361 №894623 
>>894613
> Пизда рулю я чуть не упустил это знание.
Когда впервые узнаёшь о битовых флагах - это такой кайф, на пару месяцев становишься байтоёбом и пихаешь флаги всюду. Я так пару лет назад когда узнал о флагах, пытался на них сделать составную стейтмашину. Что-то получалось, но функционал мне не удалось сделать более удобным или быстрым, чем просто стейт-машины.
Аноним 18/08/23 Птн 15:48:08 #362 №894637 
>>894300
>как использовать файлы из одной папки с исполняемым файлом
https://stackoverflow.com/questions/75187804/how-to-get-acces-to-file-in-the-same-folder-of-the-game-godot-engine

>не используя скрипты
WTF? Тебе шашечки или ехать? Пиши код давай, пиши.

>просто выдирал файлы и совал в проект
>чтобы их было видно в редакторе
Ты не против выложить исходники своей игры в опенсурс, чтобы игрок мог их модифицировать? Тогда просто забудь про "экспорт" игры. Просто положи Godot в папку проекта и запакуй эту папку в zip. Выкладываешь zip, игрок качает и распаковывает, закидывает в папку файлы игры и кликает на твою игру.exe, которая на самом деле Godot Editor или export template (на выбор, есть существенные отличия). Если ничего не путаю, Godot в таком случае сразу запускает игру, не заходя в режим редактирования. Ещё можно сделать специальный ярлык, по нажатию на который проект будет сразу запускаться на выполнение редактором Godot.

Преимущества: игрок имеет доступ к файлам и может их использовать на своё усмотрение, а тебе не нужно делать обходные пути для загрузки файлов.
Аноним 18/08/23 Птн 15:53:38 #363 №894638 
>>894258
>когда надо подключать графику мотивации никакой, всё же уже работает
У меня наоборот. Я не могу себя заставить делать прототип игры, если у меня нет готовой приятной графики. Но сам я не художник и сделать приятную графику не могу, а в интернете приятной графики нет.

>>894260
>Делай минималистичную в Блокбенче
Она некрасивая получается. Дурацкий кубач...
Аноним 18/08/23 Птн 16:15:41 #364 №894642 
>>894638
> Я не могу себя заставить делать прототип игры, если у меня нет готовой приятной графики.
Тебе надо в моддинг скайрима вкатываться, там как раз то самое и будет.
Аноним 18/08/23 Птн 16:15:40 #365 №894643 
день и ночь.webm
>>894475
>Тени для плавной смены времени дня я так и не осилил
Что конкретно не получается?

Просто размещаешь в сцене вот это:
https://docs.godotengine.org/en/stable/classes/class_directionallight3d.html
И вращаешь вокруг одной оси по таймеру.

Если у тебя время в игре долгое относительно реального времени (сутки за 24-48 минут и дольше), тогда ты можешь позволить себе долгие паузы между поворотами источника света, чтобы сэкономить на обновлении теней и неба. На самом деле, в играх типа GTA можно заметить движение теней рывками, но в нормальном геймплее на такие мелочи внимание не обращаешь - нужно стоять на месте и внимательно следить за тенью, чтобы заметить. Если у тебя проблемы с "протеканием" света через щели, тени отстают от предметов, или есть какие-то другие артефакты - нужно подгонять параметры источника света.
Аноним 18/08/23 Птн 16:28:42 #366 №894647 
>>894638
>Она некрасивая получается. Дурацкий кубач...
Прокачивай стиль.
Аноним 18/08/23 Птн 16:49:09 #367 №894654 
>>894643
>Что конкретно не получается?
Тени полосами на домики ложаться.
Аноним 18/08/23 Птн 17:16:19 #368 №894662 
>>894654
>Тени полосами на домики ложаться.
Знакомо. Связано с особенностью алгоритма теней, который используется в Godot. Уже обсуждали здесь в прошлые годы. Можно исправить через параметры в источниках света и настройках проекта. Значения по умолчанию не под любую сцену подходят.

https://docs.godotengine.org/en/stable/classes/class_light3d.html#class-light3d-property-shadow-bias
И дальше по списку.

У меня эти артефакты в SpotLight чаще всего были, DirectionalLight сравнительно беспроблемный.
Аноним 18/08/23 Птн 17:38:35 #369 №894665 
>>894662
я где-то читал, что одни настройки лучше подходят для теней падающих на вертикальные стены, а какие-то - на горизонтальные полы. А в опенворлде с динамическим временем получается засада, надо и те и те, и они сменяют друг друга. На статичной то сцене еще можно попытаться подобрать хорошие настройки, а там было буквально, починил тень на домике - полосит асфальт. В общем пока забил я.
Аноним 18/08/23 Птн 18:04:45 #370 №894671 
>>894665
Мне кажется, с домами тени лучше всего работают с shadow_reverse_cull_face = true.

Но я не помню точно, а видео с подобной демонстрацией таких моментов я не делал. Тем более что в 4.x рендеринг другой совсем.

Вообще, я бы забил, тени в играх не так важны, в какой-нибудь ГТА тени вообще отключаются в настройках для повышения производительности.
Аноним 18/08/23 Птн 20:12:05 #371 №894702 
Есть ассет на itch.io. В разделе ассеты. Он прямым текстом пишет, что бесплатно. Типа я сделал, юзайте кто хочет. Но конкретно лицензию не указал.

Можно ли такой ассет использовать в коммерческой игре? Если чел не указал лицензию конкретно, но написал своими словами, что бесплатно.
Аноним 18/08/23 Птн 21:18:18 #372 №894713 
>>894702
Скорее всего это что-то вроде WTFPL. Если ассет прям узнаваемый - можешь в кредитах указать его. Иначе хуй забей. У меня две коммерческих игры, внутри которых, среди моих собственных ассетов, валяется пара чужих с похожей на твою проблему. Всем похуй.
Аноним 18/08/23 Птн 21:25:24 #373 №894715 
>>894713
Не узнаваемый, у него буквально 10 просмотров и 0 комментариев на итче. Просто красивый спрайт чел нарисовал.

Спасибо за ответ.
Аноним 18/08/23 Птн 21:26:53 #374 №894717 
>>894702
Можно, но я б не стал.
Тем более если ты пишешь это просто спрайт. Перерисуй похоже и все.
Аноним 18/08/23 Птн 23:40:15 #375 №894752 
>>894702
Проблемы могут возникнуть, только если он сам (или его представитель) подаст на тебя в суд или напишет DMCA заявку в магазины/хостинги с твоей игрой. Посторонние люди в данной ситуации никак повлиять на тебя не могут, игры удаляют только по заявке правообладателя (в целом по интернету; у стима может быть своё мнение). Вот именно тогда ты должен гордо показать бумажку и ткнуть пальцем в строчку, которая утверждает, что ты всё используешь легально, а он может попытаться доказать, что ты подделал бумажку и он ничего такого не писал. В твоём случае роль бумажки выполняет страничка в интернете, над которой он имеет полный контроль, поэтому стоит сделать бэкап его странички в Wayback Machine и других веб-архивах (можно запросить удаление архивной копии сайта у владельцев архива). Но тут важен именно сторонний архив, т.к. на своём диске ты можешь и подделку сохранить, так что личная копия ничего не даёт.

Это серьёзная тема. Если игра внезапно выстрелит и принесёт миллионы, этот рандомный чувак может заявиться и отсудить круглую сумму просто за то, что у тебя там его файл в запакованном архиве лежит, нигде не используясь. Были случаи.

Вот Godot использовать безопасно, потому что это широко известный проект, доказательств его бесплатности и открытости полно.
Аноним 18/08/23 Птн 23:45:31 #376 №894753 
image.png
>>894752
>Если игра внезапно выстрелит и принесёт миллионы
Аноним 19/08/23 Суб 04:21:00 #377 №894779 
>>894752
Я в ахуе просто. Зачем он его тогда выкладывал бесплатно на сайт с бесплатными ассетами?
Аноним 19/08/23 Суб 11:29:07 #378 №894787 
Как добавить velocity к двигающемуся CharacterBody3D с контроллером из встроенного шаблона?
Хочу сымитировать импульс:
player.velocity += velocity_new
Проблема в контроллере у player, где velocity приравнивается:
if direction:
velocity.x = direction.x SPEED
velocity.z = direction.z
SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
Аноним 19/08/23 Суб 12:31:22 #379 №894792 
>>894779
Именно за этим. Ловля дурачков на живца.
Аноним 19/08/23 Суб 12:34:43 #380 №894793 
>>894779
Для того же, для чего и другие. Почесать свое ЧСВ, показать свой скилл, потренироваться, приобщиться, получить лойсы, привлечь внимание к своему аккаунту и к другим своим проектам. Я тоже выкладываю. Но у меня лицензия четко указана.
Аноним 19/08/23 Суб 14:55:57 #381 №894801 
>>894793
Ну вот представь, открываешь ты какой-нибудь гугл плей и видишь свой бесплатный ассет на иконке, рядом надпись - 10000 скачиваний. Твои действия?
Аноним 19/08/23 Суб 19:56:29 #382 №894826 
Как сделать так, чтобы Лейбл писал не все в одну строку, а расширялся вниз когда заканчивается место? Сейчас он растягивает просто одну строчку.
Аноним 19/08/23 Суб 20:20:10 #383 №894828 
>>894801
>видишь свой бесплатный ассет
Я если что-то бесплатно выкладываю, то всегда явно указываю либо CC BY SA (если медиа), либо GPL/LGPL (если софт). Так что, если увижу 10000 скачиваний, то порадуюсь, ведь там где-то мои копирайты.
мимо
Аноним 20/08/23 Вск 05:22:54 #384 №894850 
>>894826
RichTextLable можа?
Аноним 20/08/23 Вск 09:32:55 #385 №894853 
>>894826
https://docs.godotengine.org/en/stable/classes/class_textserver.html#enum-textserver-autowrapmode
Аноним 20/08/23 Вск 09:33:49 #386 №894854 
>>894826
>>894853
То есть https://docs.godotengine.org/en/stable/classes/class_label.html#class-label-property-autowrap-mode
Аноним 20/08/23 Вск 21:30:30 #387 №894889 
Игры делать сложно всё-таки. Я понял, что для меня делание игр это решение задач. Как сделать это, как сделать такую фичу, как сделать то. Как только я решаю задачу, игру уже лень допиливать. У меня нет творческих идей каких-то или потребности самовыразиться, мне нужно только искать решения.
Аноним 20/08/23 Вск 22:58:07 #388 №894894 
>>894889
Тру стори. Точно так же закончился и мой вкат в геймдев. Сижу теперь ИТТ, по привычке. Кстати вот тебе тема для размышлений: на годоте можно не только игоры делать. Вон чуваки сделали графический редактор для пиксельарта, Pixelorama. Так что, думой.
Аноним 21/08/23 Пнд 17:29:59 #389 №894972 
для пиксельной и игры с видом сверху, какой лучше stretcj mode использовать?
Аноним 21/08/23 Пнд 21:20:32 #390 №894990 
>>894972
https://docs.godotengine.org/en/stable/tutorials/rendering/multiple_resolutions.html#common-use-case-scenarios

Viewport
Аноним 22/08/23 Втр 13:45:36 #391 №895027 
>>894990
Спасибо!
Жаль в оф доке нет отдельных мини-инструкций, типа user stroy под самые распространенные проекты, с сылками на нужные разделы
Аноним 23/08/23 Срд 01:38:23 #392 №895095 
Делайте игры. Кто сколько сделал уже?
Аноним 23/08/23 Срд 09:47:02 #393 №895109 
Снимок.PNG
Есть родительская нода. Получаю у неё первого ребёнка. Пытаюсь изменить ему атрибут. И нихуя. Как и почему? Код на пикче.
Аноним 23/08/23 Срд 09:51:58 #394 №895110 
>>895109
Ты изменяешь не ребёнку, а родителю. Ну и ты уверен что ты получаешь и попадаешь в этот цикл?
Аноним 23/08/23 Срд 10:08:18 #395 №895111 
>>895110
>Ты изменяешь не ребёнку, а родителю.
Сорян, что не пояснил, что так и нужно. Блять, я там вообще не то написал. Совсем уже голова не соображает. Всмысле я смотрю если у ребёнка чек стоит, то вырубаю родителя. Мне вот так нужно.
>Ну и ты уверен что ты получаешь и попадаешь в этот цикл?
Ну как бы я просто ребёнку в редакторе чек включал, тогда он вырубает родителя как нужно.
Аноним 23/08/23 Срд 10:15:26 #396 №895113 
>>895111
А. У меня же ещё там переход между сценами. Я так понимаю при смене сцены параметры не сохраняются? Ну типа я чекнул кнопку, перешёл в другую сцену, потом вернулся обратно и оно не сохранилось чтоль? А как тогда сохранять?
Аноним 23/08/23 Срд 10:26:26 #397 №895114 
>>895111
Чёт всё ещё не очень понятно что у тебя происходит, но в любом случае ты можешь эту проверку на "parent.visible = not button.is_pressed()"
>>895113
Берёшь и пишешь в нужное место, например в глобальную переменную или ещё какое хранилище нужное состояние, и в реди каждый раз ставишь кнопкам нужное.

Вообще я не понимаю что ты делаешь, у тебя кноки или чекбоксы? У кнопки нет checked, а у чекбокса он отвечает за текстуру. Проверять включен чекбокс или нет надо через is_pressed()
Аноним 23/08/23 Срд 10:31:33 #398 №895115 
>>895114
Спасибо за помощь. Я понял, что обосрался с сохранением. При переходе из одной сцены в другую в прошлой сцене всё на дефолт прыгает. Буду думать как лучше сохранять всё.
>Вообще я не понимаю что ты делаешь, у тебя кноки или чекбоксы? У кнопки нет checked, а у чекбокса он отвечает за текстуру.
Да это свой кастомный параметр на кнопке. Обычная кнопка.
Аноним 23/08/23 Срд 10:33:06 #399 №895116 
>>895115
Если простая кнопка, то почему бы не добавить выключение видимости на нажатие этой кнопки?
Аноним 23/08/23 Срд 10:44:43 #400 №895118 
>>895116
Там в зависимости от комнаты свои кнопки в каждой. При переходе в комнату идёт проверка какие кнопки показывать. На реди идёт дрочь с визиблами жёсткий. Этот самый checked как раз и нужен чтоб не показывать кнопку если на неё хоть раз нажимали. Соррян, что криво объясняю я просто сижу сейчас как овощь ничего не соображаю. День не удачный.
Аноним 23/08/23 Срд 10:58:53 #401 №895120 
>>895118
Ну так храни для каждой комнаты переменную, массив или словарь, в котором ты будешь отмечать кого рисовать, а кого нет. Меняй его по нажатию в функции обработки нажатия, назначай его при переходе в комнату, выгружай в удобное тебе хранилище при переходе из неё. Кнопкам тогда не нужно хранить статус своей девственности.
Аноним 23/08/23 Срд 11:00:29 #402 №895122 
>>895120
Да вот да. Спасибо за помощь. Я решил в ресурсе хранить.
Аноним 23/08/23 Срд 13:33:26 #403 №895146 
>>894990
При использовании вьюпорт + кип спрайт дергается придвижении по диагонали. При канвас итем + кип есть периодические поддергивания при горизонтальном/вертикальном движении
Аноним 23/08/23 Срд 14:37:55 #404 №895157 
image.png
Godot 4
Делаю top down игру. Так понимаю в четвертой части velocity по дефолту учтен в move_and_slide, как и delta. Норм такой код, ничего не упустил в базовых аспектах?
Аноним 23/08/23 Срд 16:21:06 #405 №895175 
>>895157
Давно есть фукнкция которая сразу возвращает нормализованный вектор и учитывает дедзоны
Input.get_vector("left", "right", "up", "down")
Аноним 23/08/23 Срд 18:21:39 #406 №895180 
Дано:
- Вид сверху
- Движение по 8 направлениями (право, лево, верх, низ + диагонали)
- Анимация передвижения в 2 стороны
Проблема:
При передвижении вправо/влево и по диагоналям все ок.
Но если персонаж двигается только по оси y, то спрайт исчезает
Т.е. я хочу 8 направлений движения, 2 направления спрайта, как в nuclear throne https://youtu.be/_-P3DnjiuSw?si=DoFKbbmYEOowGe1v

Код:
#func Animated_player(input_vector):
#if input_vector != Vector2.ZERO:
#Player_sprite.scale.x = sign(input_vector.x)
#Player_animation.play("Walk")
#else:
#Player_animation.play("Idle")

Возможное решение:
Пока в голову приходит идея разве что использовать доп переменную, куда буду записывать последнее значение вектора по оси x, и использовать ее значение, перезаписывая, только при возобновлении движения по оси x.
Но может есть более лаконичное решение?
Аноним 23/08/23 Срд 18:24:53 #407 №895181 
>>895180
Естественно исчезает, ты же в таком случае присваиваешь scale = 0.
Аноним 23/08/23 Срд 19:30:50 #408 №895185 
>>895181
дык это ясно

Проблему таки решил лаконично по крайней мере лаконичнее, чем через доп переменную

>>895180
func Animated_player(input_vector):
if input_vector.x != 0:
Player_sprite.scale.x = sign(input_vector.x)
Player_animation.play("Walk")
elif input_vector.x == 0 and input_vector.y !=0:
Player_animation.play("Walk")
else:
Player_animation.play("Idle")
Аноним 24/08/23 Чтв 14:02:37 #409 №895230 
1692874957026.jpg
>>895185
> чем через доп переменную
> if input_vector.x != 0
> elif input_vector.x == 0
> else:
Перестань мыслить переменными, начни мыслить стейтмашинами. В стейтмашине у тебя не потребуется вообще делать дополнительные проверки, или вводить дополнительные переменные.
Аноним 24/08/23 Чтв 15:04:24 #410 №895235 
Стейт машины это база для любой игры?
Аноним 24/08/23 Чтв 16:26:25 #411 №895257 
>>895235
Любой сложнее змейки
Аноним 24/08/23 Чтв 16:38:08 #412 №895259 
>>895235
Вот, читани базу. Если не можешь в инглиш - переводчики на любой вкус.
https://gameprogrammingpatterns.com/state.html
Аноним 24/08/23 Чтв 18:46:09 #413 №895267 
1637198536974.png
1664090739174.png
1608217658098.png
1635921977721.png
Пришло время почистить правила фаервола, сами они себя не почистят.
Аноним 24/08/23 Чтв 19:21:00 #414 №895269 
>>895267
Установи годот через scoop и тогда у тебя будет одно единственное, обновляющеееся приложение по пути %username%/scoop/apps/godot/current
И тогда фаервол не будет срать себе в правила разными версиями godot_version.exe
Аноним 24/08/23 Чтв 19:32:25 #415 №895270 
>>895269
Не доверяю.
Аноним 24/08/23 Чтв 19:40:46 #416 №895271 
>>895270
В смысле, не доверяешь?
Что конкретно тебя настораживает?
Аноним 24/08/23 Чтв 21:54:46 #417 №895278 
1692903286054.png
>>895270
Вот тебе один маленький скриншот с официального сайта скупа, со страницы с букетами. Знакомых ников не видишь?
Аноним 24/08/23 Чтв 21:59:14 #418 №895280 
>>895278
Кто такой калина
Аноним 24/08/23 Чтв 22:05:15 #419 №895282 
1692903914977.png
>>895280
Лучший пони.
Аноним 25/08/23 Птн 15:43:52 #420 №895315 
>>895267
зачем все это?
Аноним 25/08/23 Птн 18:36:36 #421 №895332 
>>895315
Двачую, один хуй через полгода венда засрётся и придёт время переустанавливать.
Аноним 25/08/23 Птн 19:12:52 #422 №895336 
>>895332
да десятка годами стоит, проблем нет, если вот ее не засирать всякие типа как на скринах
Аноним 25/08/23 Птн 19:47:45 #423 №895342 
>>895336
Подъебал-подъебал.
TL;DR: Мокрописечка на скринах устанавливает портативные приложения, в том числе она принудительно делает портативными непортативные.
А теперь в подробностях:
Мокрописечка на скринах устанавливается локально для юзера, как скрипт помершелла. На других юзеров и на систему влияния не оказывает (в конфиге по умолчанию не оказывает, а если юзер достаточно умён чтобы залезть в конфиг scoop'а, то в любом случае уже он несет ответ за свои действия). Если вдруг тревожному юзеру показалось, что scoop засрал ему систему, он в общем случае просто заводит новую учётку, перекидывает туда конфиг браузера с паролями и просто без задней мысли сносит старую учётку. И всё. В системе не остаётся никаких следов scoop и приложух, установленных им.

У этого приложения есть недостатки, но в вопросе установки годота там недостатков нет. Установка максимально приближена к линуксу:
1. scoop install godot
2. godot
И всё! Редактор запускается.
Аноним 25/08/23 Птн 19:49:52 #424 №895343 
>>895315
Что "зачем"? Каждая новая версия (3.5, 3.5.2, и т.д) показывала свое окошко фаервола и добавляла правило.
Аноним 25/08/23 Птн 20:29:09 #425 №895349 
Вы чо ебанутые? Игры давайте делайте. Опять хуитой какой-то занимаетесь, файрволллы какие-то блять вам мешают, винды, охуеть вообще. Чего несете? Игры делайте.
Аноним 25/08/23 Птн 21:43:30 #426 №895359 
>>895349
Мотивации игры делать не хватает. Но я все равно через силу открываю годот просто чтобы рука сама потянулась что-то сделать.
Аноним 25/08/23 Птн 21:51:08 #427 №895361 
>>895349
> Игры делайте.
Я хочу делать аддоны годота. Посоветуйте, какой бы сделать? Чего вам не хватает для пущего удобства, годаны? Оставляйте заявки ИТТ.
Аноним 25/08/23 Птн 22:00:25 #428 №895362 
>>895361
Нормальную интеграцию С# в редактор
Аноним 25/08/23 Птн 22:15:07 #429 №895363 
>>895362
Для шарпа есть мскоде, который в одиночку никто не догонит. И вот в мскоде уже есть интеграция годота. Так что нинужон. Еще предложения?
Аноним 25/08/23 Птн 22:52:15 #430 №895366 
>>895361
При комментировании одной линии через хоткей нужен переход на строку ниже. Так во многих редакторах. А в годотю не везут.
Аноним 25/08/23 Птн 22:55:37 #431 №895367 
1537624207543.mp4
>>895362
Год назад был такой прототип, но скорее всего автор не доделал.
Аноним 26/08/23 Суб 00:55:22 #432 №895372 
Заработал 36 копеек.
Аноним 26/08/23 Суб 10:08:02 #433 №895387 
>>895372
Слепящий вин! Накрывай на стол! Я - за пузырём!
Аноним 26/08/23 Суб 12:48:49 #434 №895397 
>>895387
За ночь уже 76 накапало. К сожалению, мне кажется на этом доходы резко пойдут вниз.
Аноним 26/08/23 Суб 13:22:57 #435 №895398 
>>895397
Все так. Первая неделя-полторы самые заметные, если тебя потом ВНЕЗАПНО не заревьюит какой-нибудь блоггер.

Но начало хорошее. На какую платформу выложил?
Аноним 26/08/23 Суб 14:33:52 #436 №895399 
>>895398
Я надеюсь ты понимаешь, что это не шутка и не игривое преуменьшение, это не 36к, это реально 36 копеек

На запретную платформу с последней буквой алфавита в названии.
Аноним 26/08/23 Суб 14:40:16 #437 №895400 
1693050013697.jpg
>>895399
> с последней буквой алфавита в названии
Аноним 26/08/23 Суб 14:50:18 #438 №895401 
>>895399
>это реально 36 копеек
Я надеюсь ты понимаешь что это уже круче чем большинство ноудевов из /gd когда-либо сможет достичь. Продолжай работать.
Аноним 26/08/23 Суб 18:25:56 #439 №895412 
>>895399
А почему кто-то должен считать это шуткой?
Ты выложил на не особо популярной платформе, наверняка даже в рекламу не вкладывался, да и игра скорее всего слеплена за пару недель и не какой-то шедевр.
Аноним 27/08/23 Вск 06:11:27 #440 №895453 
>>895372
Я за два года заработал 73$. А там вывод на площадке от 150. То есть через 2,5 года у меня будет первая зарплата. Такие дела лол.
Аноним 27/08/23 Вск 12:28:06 #441 №895470 
>>895342
> вопросе установки годота
чел, скачал exe нужный с сайта, запустил его
Аноним 27/08/23 Вск 13:18:13 #442 №895476 
>>895470
> чел
Амёб, следи за дискассом, тот пост является решением проблемы длинного списка одинаковых правил в брандмауэре. потому что каждый
> exe нужный с сайта
Будет регистрироваться там отдельно при первом запуске.
А при установке через scoop экзешник всегда будет один, но будет меняться, следовательно и правило брандмауэра будет одно. И это один из минусов искаробочного брандмауэра. Сторонние фаерволы контрольные суммы хотя бы сверяют, а этому всё похуй. Ебёшь-ебёшь, а хуй-то выпал!
Аноним 27/08/23 Вск 15:30:14 #443 №895491 
>>890164 (OP)
Хочу зделоть свою вайфу в виде приложения на смартфон на данном движке, какие подводные? Четвёрка всё ещё умеет экономить батарейку или будет сжирать 100% за 6 часов на простейшей 2Д графике как печально известная юнити? Можно ли из коробки создать фоновый процесс (работает даже если закрыть игру) и выдавать системные оповещения (сверху, под шторкой) по таймеру? Или придётся ковырять компиляцию C++, чтобы реализовать подобные фичи?

Алсо, кто-нибудь уже разобрался, как сделать 2Д анимации в стиле Live2D? Как-то сложно всё.
Аноним 27/08/23 Вск 16:16:15 #444 №895499 
>>895267
>Пришло время почистить правила фаервола
Зачем? Они тебе чем-то мешают? Зачем ты вообще в фаервол лезешь?

>>895332
>через полгода венда засрётся и придёт время переустанавливать
Лично у меня за 16+ лет использования начиная с XP необходимость в переустановке возникала только когда я своими шаловливыми ручками вырывал из системы какой-нибудь жизненно важный модуль и не мог восстановить его штатными средствами или копированием файлов с живой системы/образа. Ну ты понял, люблю залезть туда, куда нельзя, и переключить/вырезать/удалить то, на что не стоит даже смотреть, а потом забываю, куда залез и что сделал и почему система еле дышит. В остальном система работает как часы даже с серьёзными повреждениями, в отличие от кернел паник симулятора, ЕВПОЧЯ.

>>895476
>является решением проблемы длинного списка одинаковых правил в брандмауэре
Не смотри в этот список и не будет проблемы.

>один из минусов искаробочного брандмауэра
А он тебе вообще нужен? Ты за корпоративным компьютером сидишь и вирусы скачиваешь? Просто не запускай в основной системе левые программы. И вообще, этим твой сисадмин должен заниматься.

>при установке через scoop экзешник всегда будет один
>контрольные суммы хотя бы сверяют
Так ведь у тебя scoop один и тот же, контрольная сумма у него поменяется только при обновлении...

Алсо, а если мне нужны разные версии Godot? У меня даже до выпуска 4.0 было несколько версий в одной папке, все подписаны разными именами и имеют индивидуальные ярлыки. Мне не нужен один "godot.exe". У серьёзных разрабов наверняка каждая стабильная версия хранится. По этой причине я даже не пробовал что-то делать с версией из Steam, ведь она будет автоматически обновляться с заменой старой версии. Единственно верный способ использования игрового движка и любого другого подобного ПО - это раскладывать всё строго по номерам версий. Blender сечёт фишку - устанавливается в отдельную папку с номером версии (blender/x.y/, где x.y - версия), а не поверх старой версии, и старую версию ты сам можешь удалить или оставить по желанию/необходимости. Godot отдельные папки не нужны, но разные названия у разных версий следует сохранять.
Аноним 27/08/23 Вск 16:46:48 #445 №895504 
>>895113
>У меня же ещё там переход между сценами. Я так понимаю при смене сцены параметры не сохраняются?
ИМХО, если делаешь что-то вроде "комнат" в JRPG или метроидвании, то лучше написать свой велосипед, чем пользоваться встроенным переключением сцен. Встроенное переключение сцен больше подходит для игр типа "набор головоломок", в которых запуск уровня всегда должен быть одинаковым. Для любых других игр, где состояние "комнаты" может меняться, лучше написать свой менеджер комнат, чем обвязывать встроенный инструмент костылями.

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

Так что для большого мира из множества комнат лучше заранее написать независимую систему, не трогая встроенную фичу переключения сцен.
Аноним 27/08/23 Вск 17:28:37 #446 №895510 
>>895180
>Player_sprite.scale.x = sign(input_vector.x)
>Player_animation.play("Walk")
А не лучше ли перенести разворот спрайта в систему анимации, чтобы не было лишнего кода?
https://docs.godotengine.org/en/stable/tutorials/animation/animation_tree.html#blendspace2d
Тогда всё происходящее со спрайтом будет описано декларативно в системе анимации, а в коде будешь только передавать вектор в систему анимации.

>>895230
>мыслить стейтмашинами
>>895235
>Стейт машины это база
>>895259
>читани базу
Ты сам-то свою статью хоть раз прочитай. Там же сказано, что конечные автоматы слишком жёсткие для сложного игрового ИИ, так что не панацея.

Проблема конечных автоматов в том, что ты должен самостоятельно вручную спланировать все состояния и переходы между ними. Это рационально делать только для очень простой системы, где количество состояний не просто конечно, а обозримо. А то число возможных миров майнкрафта тоже конечно...
Аноним 27/08/23 Вск 17:54:57 #447 №895513 
>>895349
>Игры давайте делайте.
Мне нравится геймдев и решать простые задачки, но полноценную игру я никогда не сделаю. Слишком много всего нужно сделать - арт, звук, левелдизайн (даже для песочницы без сюжета), потом маркетинг чтобы проект не пропал на дне интернетов... а всё зачем? Ради лайков? Чёт вообще не мотивирует.

>>895359
>Мотивации игры делать не хватает.
Всё так, даже комп включить лень...

>>895361
>Я хочу делать аддоны годота. Посоветуйте, какой бы сделать? Чего вам не хватает для пущего удобства, годаны? Оставляйте заявки ИТТ.
Я бы хотел инструмент, который графически рисует все связи между файлами проекта: tscn, tres, gd и т.д. Разумеется, не все связи можно статически узнать, если ссылка на файл образуется динамически во время выполнения игры. Но большинство ссылок в проекте статические - их можно заранее узнать. Хотелось бы видеть автоматическую диаграмму-граф с файлами и связями между ними. Тогда будет легче понять, что и куда ссылается и что от проекта отвалилось в процессе разработки (изолированные "острова" файлов, на которые нет ссылок из основной массы файлов). Я хотел сделать такой аддон сам, но мотивации не хватило. По идее, там нужно всего лишь пробежаться по всем файлам, распарсить ссылки и отобразить получившийся граф.

>>895366
>При комментировании одной линии через хоткей нужен переход на строку ниже.
Зачем? А если мне нужен переход на строчку выше? Или вообще в другой файл/вкладку? Или на N>1 строк ниже? Или вообще переход не нужен? На одну строчку вниз я и сам могу нажать стрелку на клавиатуре на автомате, даже не осознавая этого. Ненавижу, когда редактор решает за меня что-то, что потом приходится отменять/исправлять. Больше всего бесят парные скобки, которые вечно не туда вставляются или съедают уже имеющиеся скобки и всё заново вручную пересчитывать приходится - кто придумал, что автоматически ставить закрывающую скобку сразу после открывающей - это что-то хорошее? А кто придумал НЕ ставить закрывающую, если закрывающая уже есть? Вот из-за таких "интеллектуальных" фич простой Блокнот лучше любой навороченной IDE, потому что Блокнот не ставит тебе палки в колёса после каждого нажатия клавиши. Вот подсветка синтаксиса, блоков кода (линеечкой слева) и т.д. - это хорошо и полезно, а такие автоматические действия невпопад НИНУЖНЫ.
Аноним 27/08/23 Вск 19:23:58 #448 №895523 
я вот хочу свой резидент калыч 1 делать, желательно с пошаговой тактической боевкой под дынду/спешл фолачевский
в 2д
в рпгмейкере вроде даже готовый ре инвентарь уже гуглится, но я так понял заебусь делать боевку и проще уж годот курить
и что выбирать?
Аноним 27/08/23 Вск 20:28:00 #449 №895527 
>>895499
> Не смотри в этот список и не будет проблемы.
Не смотрю.
> А он тебе вообще нужен?
Не нужен.
> Так ведь у тебя scoop
Да, scoop у меня.
Аноним 27/08/23 Вск 20:29:02 #450 №895528 
>>895513
> Я бы хотел инструмент, который графически рисует все связи между файлами проекта: tscn, tres, gd и т.д.
В шапке есть.
https://godotengine.org/asset-library/asset/879
Аноним 27/08/23 Вск 23:52:44 #451 №895550 
Как же хочется издаваться на itch.io, чтобы однажды увидеть счастливый донат в 10 долларов от американца в 4 часа утра потому что ему понравилась атмосфера твоей игры....

Но я заперт в РФ.
Аноним 27/08/23 Вск 23:56:36 #452 №895552 
>>895550
Ты заперт в своей прокрастинации.
Аноним 28/08/23 Пнд 00:06:40 #453 №895553 
>>895552
Это правда. Но я делаю игру. Просто на итче я не выведу деньги никогда.
Аноним 28/08/23 Пнд 00:18:02 #454 №895554 
>>895550
Тебе ничего не мешает так и сделать. Вот только вывести ты 10 баксов потом не сможешь.
Аноним 28/08/23 Пнд 01:48:29 #455 №895560 
Заработал 6 рублей. Вкат с полного ноля произошел больше месяца назад.
Аноним 28/08/23 Пнд 06:48:55 #456 №895570 
GAL.png
>>895523
ты же в курсе, что у Godot уже давно свой asset store есть с кучей всего уже готового?
Аноним 28/08/23 Пнд 12:11:44 #457 №895586 
>>895570
STORE
@
ПРОДАВАТЬ НЕЛЬЗЯ
Аноним 28/08/23 Пнд 13:19:53 #458 №895592 
>>895586
Я бы задал вопрос, обязательно ли на семантическом уровне слово STORE подразумевает продажу, но это вопрос для лингвача. Такшта не будем.
Аноним 28/08/23 Пнд 13:45:27 #459 №895597 
169321898335348474.jpg
>>895592
Ну какбэ очевидно что нет.
Аноним 28/08/23 Пнд 15:07:33 #460 №895619 
>>895528
>asset/879
1. Он не автоматический.
2. Можно только группировать файлы и всё.
3. Я знаю о нём и пробовал. Повторяю: это не то.
Аноним 28/08/23 Пнд 15:13:49 #461 №895620 
>>895523
>готовый инвентарь
Не ленись и сделай свой. Или выбери один из:
https://godotengine.org/asset-library/asset?filter=inventory

Но я бы сделал свой, иначе зачем игра? Просто ассеты слепить и выложить в маркет? Тьфу...
Аноним 28/08/23 Пнд 16:56:31 #462 №895644 
>>895620
Лепить свой надо хотя бы по той причине, что инвентарь должен взаимодействовать с другими твоими элементами, а вот посмотреть как сделаны разные моменты...
Аноним 28/08/23 Пнд 18:06:46 #463 №895652 
>>895644
> а вот посмотреть как сделаны разные моменты
О да, там бесконечное количество вариантов. Я в прошлом году плотно интересовался темой, досконально изучил вдоль и поперёк, ознакомился с различными подходами и могу сказать, что инвентарь в общем случае это КРУД, если ты пришел в геймдев из ентерпрайза, то тебе будет вдвойне легко пилить менеджмент инвентаря.
Аноним 28/08/23 Пнд 18:37:06 #464 №895658 
>>895652
>инвентарь в общем случае это
Массив предметов.
>inventory.append(item)
>inventory.erase(item)
>inventory.sort_custom(func(a, b): return a.name > b.name)
И т.д. Как это отображать - другой вопрос.

CRUD слишком абстрактный принцип, не?
Аноним 28/08/23 Пнд 18:42:24 #465 №895659 
>>895592
А зря. Был бы платный - я бы возможно даже покодил для годотей что-нибудь.
Аноним 28/08/23 Пнд 18:52:26 #466 №895661 
Делайте игры.
Аноним 28/08/23 Пнд 20:08:25 #467 №895672 
>>895658
> Inventory.create(item)
> Inventory.read(item)
> Inventory.update(item)
> Inventory.delete(item)
> Как это отображать - другой вопрос.
Карочи, ебош интерфейс в стиле SkyUI это такой мод для скайрима. Удобнее я в жизни не видел.
Аноним 28/08/23 Пнд 23:03:48 #468 №895695 
>>895661
Я делаю. Но тяжело. Хочется депрессию вылечить, чтобы игры больше ценить.
Аноним 29/08/23 Втр 00:57:44 #469 №895697 
>>895499
>Зачем ты вообще в фаервол лезешь?
Надо было и зашел, что за вопрос вообще? Настраивал порт для сервиса нужного.
>Они тебе чем-то мешают?
Хз, не замерял, возможно большое количество правил тормозит, ведь системе надо их перебирать и матчить.
>>895499
>в отличие от кернел паник симулятора
Перешел на дебиан больше года, никаких проблем, кроме первых трех дней активной настройки.
>>895476
>при установке через scoop экзешник всегда будет один, но будет меняться,
Не подходит моему воркфлоу, например я люблю делать в 3.6 бете, но для джемов я беру стейбл 3.5.2, потому что на готм.ио только последний стейбл, еще естбюь в проде проект с модулями под 3.4 и никто не будет его переводить, но контент изредка еще добавляем. Еще редко бывает надо одновременно запустить старую и новую версию даижка, чтобы сравнить поведение ассета или демки, или победить в споре в интернете.
Аноним 29/08/23 Втр 01:49:48 #470 №895700 
Что-то сделал и перестали работать все AudioStreamPlayer'ы. Я даже не заметил что я мог такого нажать, а они не работают. Если в редакторе нажать "playing" я слышу их, эти звуки есть, но в самой игре они просто перестали играть.
Годо 3.5.2
Кто-то сталкивался с таким?
Аноним 29/08/23 Втр 02:03:04 #471 №895701 
>>895700
Внизу редактора, там где output, есть вкладка аудио. Посмотри там. Может ты на мьют поставил глобально или аудиопоток перенаправил в задницу.
Аноним 29/08/23 Втр 04:44:55 #472 №895704 
>>895504
Да я уж понял. Спасибо. Решил пользоваться встроенным переключением поменьше. Храню все данные в ресурсах. Пока нормально, как дойду до масштабирования, там уже посмотри.
Аноним 29/08/23 Втр 05:03:32 #473 №895705 
Хочу время на экране показывать в формате 00:00. Как-то можно это сделать легко, или нужно что-то придумывать лютое?
Аноним 29/08/23 Втр 08:07:02 #474 №895709 
>>895705
Создаёшь лейб на экране самым верхним слоем, в процесс() меняешь текст на текущее время.
Аноним 29/08/23 Втр 08:18:54 #475 №895710 
>>895586
>STORE
>@
>ПРОДАВАТЬ НЕЛЬЗЯ
назвал для понятности, в оригинале там даже на скрине видно Asset Library
Аноним 29/08/23 Втр 08:28:39 #476 №895711 
>>895710
LIBRARY
@
НЕ ДАЮТ ЧИТАТЕЛЬСКИЙ БИЛЕТ
Аноним 29/08/23 Втр 11:14:38 #477 №895726 
>>895709
Не, падажи. Я не это имел ввиду. Я имел ввиду игровое время. Оно там не двигается, пока код не скажет.
Аноним 29/08/23 Втр 11:40:05 #478 №895727 
>>895726
Тогда в реди запускаешь таймер, и его же выводишь в процесс
Аноним 29/08/23 Втр 13:41:38 #479 №895744 
>>895727
Спасибо.
Аноним 29/08/23 Втр 15:00:07 #480 №895754 
У вас не было такого, когда учишься, что все вопросы/задачи итт и везде делятся на очень легкие (какая нода для этого, в интерфейсе не могу понять это итп) и очень сложные(пишу шейдер в 1000 строк где-то баг помогите, надо рассчитать сложную математику с векторами чтобы сделать реалистичные потоки ветра), а средней сложности очень мало?

Как будто есть только нубы, которые зашли месяц назад (вроде меня) и титаны, которые тут сидят 5 лет. А те кто сидят год например не показываются...
Аноним 29/08/23 Втр 15:38:36 #481 №895758 
>>895754
Те кто сидят год заняты деланием игр. Вопросы спрашивают нубы, отвечают на них титаны. Остальные заняты. И ты давай игры делай.
Аноним 29/08/23 Втр 15:38:53 #482 №895759 
>>895711
это общественная библиотека, там не спрашивают билетов
Аноним 29/08/23 Втр 16:45:42 #483 №895768 
>>895754
Так может просто мидловые вопросы тебе кажутся очень сложными.
Аноним 29/08/23 Втр 16:48:37 #484 №895769 
>>895586
Во сейчас все вебмакаки удивились
https://reactdev.ru/libs/redux/basics/Store/
>>895659
Если бы да кабы. Ты просто хвастун. Если бы умел, уже накодил бы и лутал донаты или туториалы.
Аноним 29/08/23 Втр 20:45:37 #485 №895797 
Годаны, я не нуб и более-менее имею ответ на свой вопрос. Но интересует ваше мнение, как бы вы такое реализовали, потому что, возможно, я чего-то не знаю или просто моё решение недостаточно хорошее.
Итак. 2D-персонаж собран из кусков, т.н. cutout-анимация. Анимировать было бы очень неплохо с использованием IK-цепочек. Анимации рук отдельно (под разные виды оружия), ног отдельно (под разные виды перемещения), можно независимо комбинировать. Умирая, персонаж превращается в рэгдолл и двигается по физике.
Спрашивается. Опишите в общих чертах структуру нод такого персонажа, как на ваш взгляд лучше. Ну и как бы вы выстраивали анимацию.
И да. 3.5 или 4.х? Я в четвёрке попробовал потыкать в новые ноды, которые в моём представлении должны иметь к этому всему отношение, нихуя не понял.
Аноним 29/08/23 Втр 23:09:57 #486 №895809 
Лучше игр нет ничего. Это и самая вариативная форма искусства.
Аноним 30/08/23 Срд 02:16:15 #487 №895826 
>>895809
Только делать сложно, блять.
Аноним 30/08/23 Срд 02:56:00 #488 №895827 
>>895826
А другие виды искусства делать легко?
Аноним 30/08/23 Срд 03:22:23 #489 №895828 
>>895827
Другие искусства не настолько составные из чужих искусств. А тут будь специалистом по всему. Гейм дизайнером, UX/IU дизайнером, кодером, тестером, рисовакой, 3д модельщиком, аниматором, музыкантом, звуканом, сценаристом, пиарщиком, вообще охуеть.
Аноним 30/08/23 Срд 06:24:04 #490 №895832 
>>895828
Но большую часть этого можно просто купить или использовать бесплатные ассеты
Аноним 30/08/23 Срд 08:06:13 #491 №895836 
>>895832
Или сгенерить сеткой, она даже фрагменты кода подскажет как писать
Аноним 30/08/23 Срд 10:21:38 #492 №895838 
>>895672
Ну давай разберём по пунктам тобою написанное.
>Inventory.create(item)
Инвентарь не создаёт предметы, он их получает из внешнего мира или от системы крафта.
>Inventory.read(item)
Зачем тебе функция чтения, если тебе обычно нужен список всех предметов или конкретный предмет? Предметы не на диске хранятся, их не нужно читать.
>Inventory.update(item)
Инвентарь не должен заниматься модификацией предметов, это не его забота. Инвентарь - это просто контейнер, как рюкзак или сумка. Рюкзак не делает хранящуюся еду испорченной, она сама портится.
>Inventory.delete(item)
Такое возможно в некоторых играх, где много принципиально мусорного лута, там часто есть иконка мусорки для этого. Но в остальных случаях инвентарь должен отдавать предметы в руки герою или во внешний мир, а не просто удалять их из себя.

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

Короч, непонятно, зачем ты сюда CRUD тянешь...

>интерфейс в стиле SkyUI
>Удобнее я в жизни не видел
Какие-то таблички, лол. Зачем игровые движки, когда подобную игру можно сделать в экселе на формулах?
Аноним 30/08/23 Срд 10:50:07 #493 №895841 
challenge vs skill.jpg
>>895754
>средней сложности очень мало
Щас разберём психологичненько.

Простые задачи вызывают:
- у ньюфагов апатию,
- у середнячков скуку,
- у олдфагов релаксацию.

Сложные задачи вызывают:
- у ньюфагов сильную тревогу,
- у середнячков возбуждение,
- у олдфагов состояние потока.

Средние задачи НИНУЖНЫ.
Аноним 30/08/23 Срд 11:01:27 #494 №895843 
>>895809
>самая вариативная форма искусства
>>895827
>другие виды искусства
>>895832
>купить или использовать бесплатные ассеты
>>895836
>Или сгенерить сеткой
Ну и в чём тогда "искусство"? В расстановке по сцене готовых бесплатных ассетов и подключении к ним готовых бесплатных скриптов? 10 искусств из 10.

>>895814
>служите Аргентине
Никто никому не служит. Движок под лицензией MIT, которая позволяет использовать исходники движка в совершенно любых целях без разглашения своих модификаций. А если ты даже делишься чем-то, ты делишься в интересах всего человечества, а не какой-то отдельной страны или народа.

>отечественное Фалько Двигло
Ты сначала выложи исходники под лицензией MIT или аналогичной, а потом поговорим. Ты ведь тоже взял за основу какое-то открытое ПО, а не целиком с нуля делал, а теперь не хочешь отдавать.
Аноним 30/08/23 Срд 11:13:54 #495 №895847 
>>895797
>Анимации рук отдельно (под разные виды оружия), ног отдельно (под разные виды перемещения), можно независимо комбинировать.
>Опишите в общих чертах структуру нод такого персонажа, как на ваш взгляд лучше.
А что тут описывать? Делаешь персонажа, делаешь отдельные анимации в AnimationPlayer, соединяешь анимации в AnimationTree как тебе угодно.
https://docs.godotengine.org/en/stable/tutorials/animation/animation_tree.html

>И да. 3.5 или 4.х?
Если хочешь за неделю слепить ассет-флип, кинуть в магазин и забыть - тогда стабильную тройку юзай.

Если планируешь несколько лет копаться с проектом мечты, тогда сразу начинай на четвёрке, потому что тройка больше развиваться не будет, а четвёрка по мере твоего копания сильно улучшится.
Аноним 30/08/23 Срд 13:41:42 #496 №895862 
1693392103133.jpg
>>895814
Свали отсюда нахуй, блядь, в свой тред.
Аноним 30/08/23 Срд 15:51:15 #497 №895880 
Сап, я ни в движках, ни в ЯП не шарю, но слышал про godot, смогу ли я опираясь на хульен уроков/курсов по godot'у понять как сделать простенькую игору в стиле платформера например?
Аноним 30/08/23 Срд 16:02:41 #498 №895884 
image.png
>>895880
>смогу ли я
Гарантий нет, но попробуй.

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

Главное - не сдаваться.
Аноним 30/08/23 Срд 16:48:13 #499 №895892 
Че делать если в мире нейронок страшно жить? Надо сделать игру: бекграунд берешь с нейронки, спрайт берешь с нейронки, музыку берешь с нейронки, какой-то нарратив и продающие тексты берешь с нейронки, даже половину кода берешь с нейронки. До этого нужна была человеческая мысль чтобы произвести эти вещи.
Аноним OP 30/08/23 Срд 17:03:22 #500 №895893 
>>895892
> Че делать если в мире нейронок страшно жить?
Перекатывать треды. А там уж разберешься.

Предлагайте арт для переката.
Аноним 30/08/23 Срд 17:54:55 #501 №895896 
>>895892
А всё это собирать кто будет и придумывать что генерить?
ПЕРЕКАТ Аноним OP 30/08/23 Срд 20:21:57 #502 №895907 
1693416118718.jpg
Котитес
>>895906 (OP)
>>895906 (OP)
>>895906 (OP)
Аноним 30/08/23 Срд 20:25:08 #503 №895909 
>>895892
>Че делать в мире нейронок
Делать нейронку, которая делает игры вместо тебя.

>человеческая мысль
Достаточно сложная нейронка не человек? Расист!

>>895896
>А всё это собирать кто будет
Специальная нейронка-сборщик.

>придумывать что генерить
var result = ""
for i in randi() % a + b:
result += words[randi() % words.size()] + " "
return result
Аноним 31/08/23 Чтв 14:40:16 #504 №896002 
>>895841
хуйня какая-то. У высокоскиллового сложные задачи так же вызывают фрустрацию, а не какой-то флоу. Какая то девочка психологиня просто от балды слова накидала.
Аноним 31/08/23 Чтв 14:41:55 #505 №896004 
>>895809
Игры не искусство. В них, конечно, бывает искусство в качестве некоторых составных элементов. Например, футбол игра, но не искусство, хотя в нем есть искусство в виде логотипов на футболках, и иногда некоторые позы можно отнести к нему.
Аноним 01/09/23 Птн 12:07:19 #506 №896099 
Flow State.jpg
>>896002
>девочка психологиня
https://ru.wikipedia.org/wiki/Чиксентмихайи_Михай

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

>>896004
>Игры не искусство
>футбол игра
Футбол не игра, а спорт. А вот видеоигра про футбол - это как раз искусство. Видеоигра по сути ближе к мячику, воротам, ровно подстриженному газону и т.д., тогда как в спорте "игрой" называют процесс взаимодействия, а не инструменты. Видеоигра - это не процесс, а результат деятельности творцов (программистов, художников, дизайнеров, музыкантов и т.д.), т.е. предмет искусства. Вот непосредственное использование видеоигры по прямому назначению обычно не является искусством, хотя и тут есть исключения - машиниму, летсплеи, спидраны и прочее подобное можно назвать искусством.
Аноним 01/09/23 Птн 13:36:15 #507 №896109 
>>896099
Игра - это программа с правилами геймплея, то есть именно игра как футбол. С вкраплениями элементов искусства (картинки, музыка) которых я и не отрицал.
Аноним 01/09/23 Птн 13:37:04 #508 №896110 
>>896099
>идеоигра по сути ближе к мячику, воротам, ровно подстриженному газону
Ну и вот мячик, ворота, газон искусством не называют же.
Аноним 03/09/23 Вск 14:26:18 #509 №896287 
>>896099
>Футбол не игра, а спорт.
Футбол это игра, но может быть и спортом. Ведь вопрос только в том с какой целью. Ведь каждую игру можно превратить в спорт просто поставив соревновательную цель.
Аноним 03/09/23 Вск 19:38:45 #510 №896325 
https://youtu.be/VHKAyNL7RvU

Пацаны оцените щас ещё приседания прикручу и вообще сказка будет кто хочет го ко мне в команду делаю шутер иммёрсив сим! йоооу!
comments powered by Disqus

Отзывы и предложения