Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 40 9 22
Друг решил вкатиться в геймдев (как всегда есть мотивация, а знаний (как оно всегда бывает) естестве Аноним 18/02/23 Суб 22:25:46 862303 1
BJY0elS68Fc.jpg 162Кб, 1280x997
1280x997
Друг решил вкатиться в геймдев (как всегда есть мотивация, а знаний (как оно всегда бывает) естественно - хуй)
Выбрал основной движок юнити, c# естественно не знает.
Я выбрал из множества доводов, что это хуёвая затея заниматься ему играми, лишь один, тип у него всегда была 3 по математике (и то, нарисованная)
На это он начал доказывать, что создание игр не требует высокого школьного уровня математики, этош ни неирасетии!!1!1!!1!!
И вот мне как человеку, который в айти отрасли практически ничего не знает, особенно в геймдеве, стало интересно, а какими математическими знаниями должен обладать среднестатистический разработчик одиночка, чтоб написать допустим такие инди игры как cuphead, hollow knight (именно код. Геймдизайн, создание моделей опустим)
Можно ли написать, не обладая начальными знаниями высшей математики, нелаганое говно по типу яндере симулятора?
Аноним 18/02/23 Суб 22:48:12 862309 2
1532407574967.png 405Кб, 1280x720
1280x720
1669298921673.png 43Кб, 395x313
395x313
>>862303 (OP)
Для того чтобы сделать платформер, никакими особыми знаниями обладать не нужно. Все знания на этой пикче. Каждую наносекунду скорость падения увеличивается на гравитацию, все.
А вот если встанет задача что-то типа определить, находится ли объект в каком-то угле обзора в 3д, вот тут можно тушить свет.
Аноним 18/02/23 Суб 22:48:38 862311 3
>>862303 (OP)
>нелаганое говно
>яндере симулятора?
шта
Аноним 18/02/23 Суб 23:38:37 862332 4
Аноним 19/02/23 Вск 01:58:12 862360 5
>>862303 (OP)
>Выбрал основной движок юнити
>c# естественно не знает
Пусть переходит на Godot, топ движок для инди.

>была 3 по математике (и то, нарисованная)
У меня тоже, полёт нормальный. Было б желание...

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

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

>какими математическими знаниями
>cuphead, hollow knight
>именно код
Математики там мало и бОльшая её часть уже давно реализована в недрах игрового движка, а тебе остаётся только правильно дёргать рычаги - функции API движка, чтобы он работал так, как ты хочешь. Намного сложнее математики - спроектировать правильную архитектуру конкретной игры, изобрести или применить алгоритмы, какие-то структуры данных и т.д. Универсальных решений либо нет, либо они слишком медленные для достаточно большого мира/количества контента. Тебе чаще придётся не математику решать, а переделывать свой собственный говнокод, который ты написал в пылу творческого порыва, не задумываясь об архитектуре, а также думать о том, как всё сделать правильно - потому что в информатике очень много путей к одной цели, но многие из них неэффективны, и если в обычном ПО ты можешь позволить себе заставить пользователя ждать или покупать более мощный ПК, то в геймдеве ты вынужден выбирать наиболее эффективные решения, иначе ты значительно сокращаешь потенциальную аудиторию и получаешь негативные отзывы с общим посылом "оптимизация говно". Вот в этом магическом слове "оптимизация" скрыта вся боль игрового программиста, которому приходится втискивать фантастические хотелки геймдизайнера в огромный зоопарк реального железа. Но, если ты новичок и не против сделать ещё одно лагающее говно, то вперёд и с песней, по туториалам на готовом движке слепить играбельный продукт можно за пару вечеров на коленке, и это было возможно ещё два десятилетия назад. База геймдева практически не изменилась, никаких прорывных открытий как не было, так и нет, а если что-то и было, то подходит только под одну микроскопическую нишу; больше всего надежд было на воксели, но для них, по-хорошему, нужны фундаментально другие видеокарты, чтобы они могли хотя бы сравняться с полигональной графикой без костылей, поэтому о них толком ничего не слышно, а ведь прорыв обещали, наверное, как минимум с 90-х.

>>862309
>А вот если встанет задача что-то типа определить, находится ли объект в каком-то угле обзора в 3д, вот тут можно тушить свет.
Тривиальная задача вообще-то.
https://docs.godotengine.org/en/stable/tutorials/math/vector_math.html#facing
3D не сильно сложнее 2D, нужно просто не бояться, ведь многие операции можно свести к одной плоскости, тем более что большинство 3D игр до сих пор геймплейно сфокусированы на одной плоскости. Скорее игроку сложнее ориентироваться в 3D мире, чем тебе формулы считать для ИИ неигровых персонажей.
Аноним 19/02/23 Вск 02:04:57 862363 6
>>862303 (OP)
>Выбрал основной движок юнити
На этом, собственно, его вкатывание в геймдев и окончится.
А тред можно закрывать.
/thread

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

Но если уж тебе так интересно, вот код контроллера персонажа в celeste, простом пиксельном 2д платформере.
Надеюсь, после просмотра вопрос больше не останется.
https://github.com/NoelFB/Celeste/blob/master/Source/Player/Player.cs
Аноним 19/02/23 Вск 02:26:36 862366 7
>>862364
Этого не слушай, это движкосрачер, безыгорный фантазёр, ни одной Игры в своей жизни не сделал, одни ассет-флипы.
Только и делает что щитпостит с рекламой юнити и хейтом Godot (Unity ему за это даже не платят, просто такое ноулайф хобби у человека).


>своего движка
Вообще-то, Godot не "мой" - он наш, геймдевовский.
Аноним 19/02/23 Вск 02:49:17 862372 8
>>862363
>Но если уж тебе так интересно, вот код контроллера персонажа в celeste, простом пиксельном 2д платформере.
Охуенно гордиться говнокодом.
Аноним 19/02/23 Вск 03:00:01 862375 9
>>862372
>гордиться
Да это троллинг такой, подкол новичка. Мол, аж 5500 строк кода для простого персонажа в платформере. Тем временем тетрис можно сделать за пару тысяч строк без движка, с учётом всего рендеринга, менюшек, вычислений и так далее. Так что код Селесты это просто мем, как пузырёк в сумке Гнума.
Аноним 19/02/23 Вск 11:10:31 862414 10
>>862363
Я нашёл койот тайм.

if (jumpGraceTimer > 0)
Аноним 19/02/23 Вск 19:15:42 862601 11
ErFDjtwXUAI3ecS.jpg 19Кб, 543x576
543x576
>>862414
>jumpGraceTimer
>Grace
>благодать, милость, изящество, грация, украшать, награждать, удостаивать
Не могу понять, это комплимент изящным движениям игрока или насмешка над криворуким игроком? Лол.

Про койот тайм знаю, это когда игроку дают дополнительные 0.001 секунды на нажатие прыжка после того, как персонаж уже сошёл с прыгабельной поверхности и вот-вот начнёт падать.
Аноним 19/02/23 Вск 19:21:42 862610 12
>>862601
>0.001 секунды
Кстати, в каких-нибудь играх обыграли этот койот тайм максимально преувеличенно, как в мультиках? Чтобы персонаж реально бежал по воздуху, смотрел себе под ноги, дико пугался и только после испуга падал.

А то как-то тупо выглядит, когда игра не мультяшная и персонажи никогда не осознают, что бегут по воздуху.
Аноним 19/02/23 Вск 22:38:09 862903 13
>>862601
Это же западные рабы капитала, у них там Grace period в кредитках.
Аноним 19/02/23 Вск 23:41:05 862964 14
>>862303 (OP)
Ну смотря каких игр. Вернее даже не от игр зависит, а просто какая-то конкретная фича может требовать математики - в основном связанной с векторами. И тут либо ты её знаешь и делаешь, либо гуглишь решение - нередко поможет, либо ищешь ассет для этого, либо просто думаешь а нах оно надо мб без этого норм будет(и это не всегда прям плохой вариант - если видишь что фича непосильна и того не стоит, то на нее можно и забить).

> а какими математическими знаниями должен обладать среднестатистический разработчик одиночка, чтоб написать допустим такие инди игры как cuphead, hollow knight
Для таких игр около-нулевыми. Ну, разве что скорость и ускорение из физики стоит знать.

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

> нелаганое говно по типу яндере симулятора?
Количество лагов никак не взаимосвязано со знаниями математики. У яндере симулятора кстати главная проблема это архитектура

>>862363
> Но если уж тебе так интересно, вот код контроллера персонажа в celeste, простом пиксельном 2д платформере.
Ебать говнокодище. Это конкурент яндере симулятора?
Аноним 20/02/23 Пнд 01:00:59 863035 15
image.png 626Кб, 1320x1680
1320x1680
image.jpg 43Кб, 640x456
640x456
>>862964
>Это конкурент яндере симулятора?
Аноним 20/02/23 Пнд 02:07:44 863061 16
>>862964
>У яндере симулятора кстати главная проблема это архитектура
Смотрел разбор каких-то слитых исходников и там чувак выяснил, что основная проблема с производительностью в каком-то всратом ассете поиска путей
Аноним 20/02/23 Пнд 03:55:54 863100 17
16763150948580.jpg 363Кб, 640x801
640x801
>>862363
> овер 1к строчек кода в одном файле
В геймдеве это бЭсТ пРаКтИс?
Аноним 20/02/23 Пнд 11:26:59 863190 18
>>862964
>Для таких игр около-нулевыми. Ну, разве что скорость и ускорение из физики стоит знать.

Аналитическая геометрия нужна, начала. Полярные координаты, перенос с поворотом, матрицы трансформации.
Аноним 20/02/23 Пнд 12:08:04 863207 19
>>862360
>Но описания архитектур нейросетей часто пишут формулами с криптографическими закорючками - таким способом математики самоутверждаются, типа они кому-то нужны и заняты чем-то важным, ведь без них эти закорючки прочитать и понять сложно. Ну, это как незаменимые говнокодеры, которые пишут такой код, который понимать и поддерживать могут только они, поэтому их уволить и хочется, и нельзя.\
Как же ты чертовски прав в чём-то.
Аноним 20/02/23 Пнд 16:06:41 863275 20
>>863190
Нах оно надо в 2д платформере?

Координаты и углы эйлера знаешь - все, готов. Если не знаешь, то за 15 минут поймешь идею и вперед.
Аноним 20/02/23 Пнд 16:41:47 863307 21
программисточмохи опять порвались
Аноним 20/02/23 Пнд 19:16:20 863469 22
Самое главное начать, я анриал вообще скачал чисто для того чтобы глянуть как в нем мои модельки будут выглядить. Тип 3Д Артом занимался. Но потом увлексяяначал по чуть чуть изучать и похожу дела и линейную алгебру подтянул и ООП. Смысл в том, что пока тебе канкретнле знание не потрудился вот прям сейчас для конкретной задачи- учить что-то смысла не имеет. Мозг сотрёт инфу которую ты не юзаешь. Так что просто начинай писать что ты там планируешь.
Аноним 21/02/23 Втр 10:48:40 863654 23
>>862303 (OP)
Надо знать вектора, углы, синусы-косинусы и понимать скорость и ускорение.
Аноним 21/02/23 Втр 16:09:40 863787 24
>>863061
>основная проблема с производительностью
Яндере Симулятора в том, что НПЦ дёргают функции для проверки чего-то 60 раз в секунду. То есть, условно, каждый школотёнок, пока не сдох, 60 раз в секунду смотрит на часы и проверяет, не пора ли пойти в класс? В нормальной игре был бы звонок, звонок прозвенел - НПЦ получили команду двигаться в класс, всё. Смотреть на часы 60 раз в секунду нет необходимости.

>>863100
>1к строчек кода в одном файле
Обычно в геймдеве высирают более 9000 файлов в одну папку и потом не могут ничего найти. Или высирают более 9000 папок в сложной иерархии, и потом не помнят, куда и что положили. А в одном файле пишут только ньюфаги, которые ещё не просекли фишку файловой системы.

>>863469
>Мозг сотрёт инфу которую ты не юзаешь.
Двачую, любые теоретические знания нужно закреплять практикой, регулярной практикой. И учиться, соответственно, тому, что будет часто нужно на практике, а не рандомным вещам.
Аноним 22/02/23 Срд 01:23:40 864157 25
>>862303 (OP)
Если ты делаешь что-то вторичное - конечно, никаких знаний иметь не нужно. Гайдики на ютабе забиваешь и вперед.
Но чем уникальнее твоя поделка, тем больше ты должен будешь думать над её реализацией. И чем больше у тебя будет опыта в проге и знаний матеши, тем легче тебе дастся проект.
В гд, как и в практически любом хобби, работает правило "изи ту лерн, хард ту мастер". Мысль очевидная, но полезная.
Аноним 22/02/23 Срд 09:29:23 864248 26
>>863787
>Яндере Симулятора в том, что НПЦ дёргают функции для проверки чего-то 60 раз в секунду
Правда профайл юнити счел именно поиск путей самой тяжелой частью, а не это
Аноним 23/02/23 Чтв 02:48:55 864818 27
>>864157
Есть интересный парадокс, что не всегда заранее известно, какой поделке нужна сложная математика, а какой не нужна.
Например, я делал довольно сложные игры, которым математика не требовалась, и они работали на программистской логике, то есть вся сложность игры возникала из сложных комбинаций, а не того что я бы пыхтел выводя тригонометрические формулы и матрицы.
С другой стороны, с одной игрой я обосрался и бросил, хотя в нее может играть 5-летний ребенок, просто с карандашом и бумагой, но оказалось очень сложно объяснить компьютеру "соедини две точки линией, не пересекающей другие линии".
Аноним 23/02/23 Чтв 03:31:49 864821 28
1556700160470.png 488Кб, 1564x1160
1564x1160
>>864248
Двачну этого анона.
По моему опыту, сотни акторов, которые проверяют условие и возвращаются, не могут повлиять на производительность (не знаю, сколько в яндере одновременно персонажей, но предположу что 100-200).
А вот всякие поиски путей или физика (когда актор перемещается по террейну и заходит на всякие тротуары, обходит клумбы и машины и расходится с другими акторами) может наглухо просаживать, видимо попадая в долгие циклы, где перебирает вершины меша коллизии, например.
Аноним 23/02/23 Чтв 16:10:50 865000 29
>>864818
Никакого парадокса нет, если продумать как и что ты будешь делать
Аноним 23/02/23 Чтв 16:29:53 865008 30
Аноним 23/02/23 Чтв 17:40:28 865051 31
>>865000
Какая разница на каком этапе ты столкнешься с этим парадоксом? Ну на этапе продумывания обнаружишь.
Это на то и разработка, что продумать все = реализовать и закодить все.
А твой совет - это уровня "просто сразу пишите без багов, тогда и исправлять не придется".
Аноним 24/02/23 Птн 09:22:00 865406 32
>>862964
>У яндере симулятора
Его проблема в том что он ВСЕ модели загружает без лодов и обрабатывает даже если их не видно.
Аноним 24/02/23 Птн 10:23:08 865431 33
1559586199117.mp4 443Кб, 288x214, 00:00:06
288x214
Аноним 24/02/23 Птн 10:52:59 865437 34
>>865051
Я к тому, что никакого парадокса нет, если тв шаришь в алгоритмах.
Аноним 24/02/23 Птн 13:26:33 865473 35
>>862303 (OP)
>какими математическими знаниями должен обладать среднестатистический разработчик одиночка
никакими
Аноним 24/02/23 Птн 18:04:57 865611 36
>>865437
Речь шла не про алгоритмы, а про математику.
Да и алгоритма может не быть. Ты можешь примерно думать что уж на такую простую вещь он есть, но его или нет, или он описан в таких трудночитаемых пейперах, что надо быть профессором чтобы это разобрать за несколько лет.
Аноним 27/02/23 Пнд 01:21:06 866417 37
>>864818
>но оказалось очень сложно объяснить компьютеру "соедини две точки линией, не пересекающей другие линии"
В чем суть задачи-то? Соединить две точки кривой минимальной длины, обходящий другие точки? Или группы точек как-то объединить прямыми попарно? Вроде не очень сложная задача.
Аноним 27/02/23 Пнд 01:50:31 866421 38
>>866417
Обходящие другие линии между точками.
Аноним 27/02/23 Пнд 02:11:43 866422 39
>>866421
>Обходящие другие линии между точками.
Для этого же есть миллион алгоритмов поиска пути. Только тебе нужны не дискретные, а непрерывные варианты. Гугли shortest path continuos space.
Аноним 27/02/23 Пнд 03:20:54 866437 40
>>866422
На словах это все легко. Я точно так же думал, пока не начал делать.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов