Сохранен 40
https://2ch.hk/gd/res/862303.html
Домены arhivach.top и arhivach.site временно не функционируют! Используйте домен ARHIVACH.XYZ.
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Друг решил вкатиться в геймдев (как всегда есть мотивация, а знаний (как оно всегда бывает) естестве

 Аноним 18/02/23 Суб 22:25:46 #1 №862303 
BJY0elS68Fc.jpg
Друг решил вкатиться в геймдев (как всегда есть мотивация, а знаний (как оно всегда бывает) естественно - хуй)
Выбрал основной движок юнити, c# естественно не знает.
Я выбрал из множества доводов, что это хуёвая затея заниматься ему играми, лишь один, тип у него всегда была 3 по математике (и то, нарисованная)
На это он начал доказывать, что создание игр не требует высокого школьного уровня математики, этош ни неирасетии!!1!1!!1!!
И вот мне как человеку, который в айти отрасли практически ничего не знает, особенно в геймдеве, стало интересно, а какими математическими знаниями должен обладать среднестатистический разработчик одиночка, чтоб написать допустим такие инди игры как cuphead, hollow knight (именно код. Геймдизайн, создание моделей опустим)
Можно ли написать, не обладая начальными знаниями высшей математики, нелаганое говно по типу яндере симулятора?
Аноним 18/02/23 Суб 22:48:12 #2 №862309 
1532407574967.png
1669298921673.png
>>862303 (OP)
Для того чтобы сделать платформер, никакими особыми знаниями обладать не нужно. Все знания на этой пикче. Каждую наносекунду скорость падения увеличивается на гравитацию, все.
А вот если встанет задача что-то типа определить, находится ли объект в каком-то угле обзора в 3д, вот тут можно тушить свет.
Аноним 18/02/23 Суб 22:48:38 #3 №862311 
>>862303 (OP)
>нелаганое говно
>яндере симулятора?
шта
Аноним 18/02/23 Суб 23:38:37 #4 №862332 
>>862311
Опечатался пзд
Аноним 19/02/23 Вск 01:58:12 #5 №862360 
>>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 #6 №862363 
>>862303 (OP)
>Выбрал основной движок юнити
На этом, собственно, его вкатывание в геймдев и окончится.
А тред можно закрывать.
/thread

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

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


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

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

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

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

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

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

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

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

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

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

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

>>863469
>Мозг сотрёт инфу которую ты не юзаешь.
Двачую, любые теоретические знания нужно закреплять практикой, регулярной практикой. И учиться, соответственно, тому, что будет часто нужно на практике, а не рандомным вещам.
Аноним 22/02/23 Срд 01:23:40 #25 №864157 
>>862303 (OP)
Если ты делаешь что-то вторичное - конечно, никаких знаний иметь не нужно. Гайдики на ютабе забиваешь и вперед.
Но чем уникальнее твоя поделка, тем больше ты должен будешь думать над её реализацией. И чем больше у тебя будет опыта в проге и знаний матеши, тем легче тебе дастся проект.
В гд, как и в практически любом хобби, работает правило "изи ту лерн, хард ту мастер". Мысль очевидная, но полезная.
Аноним 22/02/23 Срд 09:29:23 #26 №864248 
>>863787
>Яндере Симулятора в том, что НПЦ дёргают функции для проверки чего-то 60 раз в секунду
Правда профайл юнити счел именно поиск путей самой тяжелой частью, а не это
Аноним 23/02/23 Чтв 02:48:55 #27 №864818 
>>864157
Есть интересный парадокс, что не всегда заранее известно, какой поделке нужна сложная математика, а какой не нужна.
Например, я делал довольно сложные игры, которым математика не требовалась, и они работали на программистской логике, то есть вся сложность игры возникала из сложных комбинаций, а не того что я бы пыхтел выводя тригонометрические формулы и матрицы.
С другой стороны, с одной игрой я обосрался и бросил, хотя в нее может играть 5-летний ребенок, просто с карандашом и бумагой, но оказалось очень сложно объяснить компьютеру "соедини две точки линией, не пересекающей другие линии".
Аноним 23/02/23 Чтв 03:31:49 #28 №864821 
1556700160470.png
>>864248
Двачну этого анона.
По моему опыту, сотни акторов, которые проверяют условие и возвращаются, не могут повлиять на производительность (не знаю, сколько в яндере одновременно персонажей, но предположу что 100-200).
А вот всякие поиски путей или физика (когда актор перемещается по террейну и заходит на всякие тротуары, обходит клумбы и машины и расходится с другими акторами) может наглухо просаживать, видимо попадая в долгие циклы, где перебирает вершины меша коллизии, например.
Аноним 23/02/23 Чтв 16:10:50 #29 №865000 
>>864818
Никакого парадокса нет, если продумать как и что ты будешь делать
Аноним 23/02/23 Чтв 16:29:53 #30 №865008 
>>862303 (OP)
Нужно хороший знание английского языка и линейной алгебры.
Если он сможет осилить этот курс то он готов к геймдеву.

https://youtube.com/playlist?list=PLImQaTpSAdsArRFFj8bIfqMk2X7Vlf3XF
Аноним 23/02/23 Чтв 17:40:28 #31 №865051 
>>865000
Какая разница на каком этапе ты столкнешься с этим парадоксом? Ну на этапе продумывания обнаружишь.
Это на то и разработка, что продумать все = реализовать и закодить все.
А твой совет - это уровня "просто сразу пишите без багов, тогда и исправлять не придется".
Аноним 24/02/23 Птн 09:22:00 #32 №865406 
>>862964
>У яндере симулятора
Его проблема в том что он ВСЕ модели загружает без лодов и обрабатывает даже если их не видно.
Аноним 24/02/23 Птн 10:23:08 #33 №865431 
1559586199117.mp4
>>862303 (OP)
> пик
Аноним 24/02/23 Птн 10:52:59 #34 №865437 
>>865051
Я к тому, что никакого парадокса нет, если тв шаришь в алгоритмах.
Аноним 24/02/23 Птн 13:26:33 #35 №865473 
>>862303 (OP)
>какими математическими знаниями должен обладать среднестатистический разработчик одиночка
никакими
Аноним 24/02/23 Птн 18:04:57 #36 №865611 
>>865437
Речь шла не про алгоритмы, а про математику.
Да и алгоритма может не быть. Ты можешь примерно думать что уж на такую простую вещь он есть, но его или нет, или он описан в таких трудночитаемых пейперах, что надо быть профессором чтобы это разобрать за несколько лет.
Аноним 27/02/23 Пнд 01:21:06 #37 №866417 
>>864818
>но оказалось очень сложно объяснить компьютеру "соедини две точки линией, не пересекающей другие линии"
В чем суть задачи-то? Соединить две точки кривой минимальной длины, обходящий другие точки? Или группы точек как-то объединить прямыми попарно? Вроде не очень сложная задача.
Аноним 27/02/23 Пнд 01:50:31 #38 №866421 
>>866417
Обходящие другие линии между точками.
Аноним 27/02/23 Пнд 02:11:43 #39 №866422 
>>866421
>Обходящие другие линии между точками.
Для этого же есть миллион алгоритмов поиска пути. Только тебе нужны не дискретные, а непрерывные варианты. Гугли shortest path continuos space.
Аноним 27/02/23 Пнд 03:20:54 #40 №866437 
>>866422
На словах это все легко. Я точно так же думал, пока не начал делать.
comments powered by Disqus

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