Отсталость геймдева
62
26
Название кликбейт и я не хочу никого обидеть.
Я бэкенд шарп, средненький мидл (бадум-ц!). Сейчас потихоньку разбираюсь с Юнити. Читаю кучу инфы, ищу бест практисы, стандарты в индустрии и прочее. И у меня складывается впечатление что по сравнению с вебом это какая-то отсталая область. В плане мм... код культуры что ли. Инфы меньше, все закрытое, 8 из 10 ссылок ведут на форум Юнити, нет каких то устоявшихся стандартов. Но самое главное, что людям как будто плевать на код. Типа в открытую. "Главное чтоб работало" - советы менеджера от программистов (утрирую конечно). В вебе хоть по факту везде одно говно, но на словах чистый код здесь, паттерны там, управление сложностью, простота сопровождения, тестабилити итд. Люди хотя бы делают вид. Индустрия как будто серьезнее выглядит.
Я не делаю каких-то выводов, я только начинаю разбираться, но у меня сложилось такое вот впечатление. Интересно послушать от тех кто реально этим занимается, какое у вас мнение по этому поводу. Реально ли так? А еще лучше если кто то и с вебом и с геймдевом знаком
Во-первых unity старый и естественно многие современные практики тогда не были в тренде.
Во-вторых нет ресурсов делать абсолютно весь код вылизанным ибо геймдев это не про покрасить кнопочки и обработать запросик записать в БД.
Зачастую там мутная сложная логика к которой сложно всё эти практики применять правильно и главное не особо нужно. (Там бы просто хотя бы сделать неважно как, в то время как в вэбе ты точно знаешь что сделать это можно, надо только написать код)
(Утрировано) Принято просто базу и архитектуру делать качественную, а реализации делать просто чтобы работало.
Да и пример хочется, что конкретно тебе кажется отсталым?
А ещё забыл добавить производительность, из-за которой зачастую уродуют код.
Pudgewerksaw сказал(а):↑Во-первых unity старый и естественно многие современные практики тогда не были в тренде.
Во-вторых нет ресурсов делать абсолютно весь код вылизанным ибо геймдев это не по покрасить кнопочки и обработать запросик записать в БД.
Зачастую там мутная сложная логика к которой сложно всё эти практики применять правильно и главное не особо нужно. (Там бы просто хотя бы сделать неважно как, в то время как в вэбе ты точно знаешь что сделать это можно, надо только написать код)
(Утрировано) Принято просто базу и архитектуру делать качественную, а реализации делать просто чтобы работало.
Да и пример хочется, что конкретно тебе кажется отсталым?.
А ещё забыл добавить производительность, из-за которой зачастую уродуют код.
Нажмите, чтобы раскрыть...На счет последнего, сам я любитель, но такое чувство, будто каким бы не был язык. Чем красивее код, тем хуже его производительность. Хочешь максимально быстро, делаешь в итоге вообще некрасиво и слабочитабельно.
Это наверное связано с универсальностью паттернов, приемов, методов. Которые создаются так, чтобы много где подходило, но когда хочешь сделать у себя максимально быстро, то начинаешь "срезать" функционал, который тебе не нужен. Классическая ситуация у меня была, когда нужно было отсечь часть динамического массива, элементы которого старее определенного отрезка времени. При этом нужно просуммировать элементы отрезанного участка. Можно сделать красиво через метод массива или обычным циклом. Но если хочешь побыстрее, начинаешь добавлять всякие дополнительные элементы, чтобы например начать с конца массива и в момент когда элемент в массиве уже не старее определенного отрезка времени, совершаешь брейк, чтобы цикл не проходил в пустую. В итоге у тебя какой-то кастрированный цикл, с доп переменной и брейком. Красиво? Нет. Быстрее? Офк.
Neferp1tou сказал(а):↑На счет последнего, сам я любитель, но такое чувство, будто каким бы не был язык. Чем красивее код, тем хуже его производительность. Хочешь максимально быстро, делаешь в итоге вообще некрасиво и слабочитабельно.
Это наверное связано с универсальностью паттернов, приемов, методов. Которые создаются так, чтобы много где подходило, но когда хочешь сделать у себя максимально быстро, то начинаешь "срезать" функционал, который тебе не нужен. Классическая ситуация у меня была, когда нужно было отсечь часть динамического массива, элементы которого старее определенного отрезка времени. При этом нужно просуммировать элементы отрезанного участка. Можно сделать красиво через метод массива или обычным циклом. Но если хочешь побыстрее, начинаешь добавлять всякие дополнительные элементы, чтобы например начать с конца массива и в момент когда элемент в массиве уже не старее определенного отрезка времени, совершаешь брейк, чтобы цикл не проходил в пустую. В итоге у тебя какой-то кастрированный цикл, с доп переменной и брейком. Красиво? Нет. Быстрее? Офк.
Нажмите, чтобы раскрыть...ну алгосики красивые обычно
ttutiki сказал(а):↑Название кликбейт и я не хочу никого обидеть.
Я бэкенд шарп, средненький мидл (бадум-ц!). Сейчас потихоньку разбираюсь с Юнити. Читаю кучу инфы, ищу бест практисы, стандарты в индустрии и прочее. И у меня складывается впечатление что по сравнению с вебом это какая-то отсталая область. В плане мм... код культуры что ли. Инфы меньше, все закрытое, 8 из 10 ссылок ведут на форум Юнити, нет каких то устоявшихся стандартов. Но самое главное, что людям как будто плевать на код. Типа в открытую. "Главное чтоб работало" - советы менеджера от программистов (утрирую конечно). В вебе хоть по факту везде одно говно, но на словах чистый код здесь, паттерны там, управление сложностью, простота сопровождения, тестабилити итд. Люди хотя бы делают вид. Индустрия как будто серьезнее выглядит.
Я не делаю каких-то выводов, я только начинаю разбираться, но у меня сложилось такое вот впечатление. Интересно послушать от тех кто реально этим занимается, какое у вас мнение по этому поводу. Реально ли так? А еще лучше если кто то и с вебом и с геймдевом знаком
Нажмите, чтобы раскрыть...Ну ты количество разрабов игр и разрабов веба сравни
Это несоизмеримые цифры
Neferp1tou сказал(а):↑На счет последнего, сам я любитель, но такое чувство, будто каким бы не был язык. Чем красивее код, тем хуже его производительность. Хочешь максимально быстро, делаешь в итоге вообще некрасиво и слабочитабельно.
Это наверное связано с универсальностью паттернов, приемов, методов. Которые создаются так, чтобы много где подходило, но когда хочешь сделать у себя максимально быстро, то начинаешь "срезать" функционал, который тебе не нужен. Классическая ситуация у меня была, когда нужно было отсечь часть динамического массива, элементы которого старее определенного отрезка времени. При этом нужно просуммировать элементы отрезанного участка. Можно сделать красиво через метод массива или обычным циклом. Но если хочешь побыстрее, начинаешь добавлять всякие дополнительные элементы, чтобы например начать с конца массива и в момент когда элемент в массиве уже не старее определенного отрезка времени, совершаешь брейк, чтобы цикл не проходил в пустую. В итоге у тебя какой-то кастрированный цикл, с доп переменной и брейком. Красиво? Нет. Быстрее? Офк.
Нажмите, чтобы раскрыть...Да, ярчайший пример в контексте unity это linq (аналог map, reduce в других языках) о применения которого в геймдеве думают, особенно в игровом цикле, в то время как в вебее использовать обычный for для таких задач - зашквар.
А если по хорошему, даже просто создавать объекты в игровом цикле без пулов - зашквар.
Или например вместо наследования делать одну большую структуру которая в себя включает все, тоже распространенная практика (почему сложно объяснять)
Работа с сетью тоже другая. Никакого смузи-http вместо этого мутные никому непонятные протоколы где каждый байт на счету, разделение работы с сетью где нельзя сделать универсальный способ сообщения ибо где-то нужен TCP где-то UPD, кароче все то о чем вэбкамщики даже не думают.
YoshkinKot сказал(а):↑ну алгосики красивые обычно
Нажмите, чтобы раскрыть...
Да только взгляни на исходник типичного популярного алгоса, никакого сахара максимальное переиспользование переменных масивов многопоток и avx как вишенка на торте. После открытия подобного файла можно схватить сердечный приступ.
Pudgewerksaw сказал(а):↑Да только взгляни на исходник типичного популярного алгоса, никакого сахара максимальное переиспользование переменных масивов многопоток и avx как вишенка на торте. После открытия подобного файла можно схватить сердечный приступ.
Нажмите, чтобы раскрыть...ну байтоебство это тоже прикольно
я-то в программирование вкатился из спортивного программирования и CTF криптографических
а там всё такое отвратительное
Pudgewerksaw сказал(а):↑Работа с сетью тоже другая. Никакого смузи-http вместо этого мутные никому непонятные протоколы где каждый байт на счету, разделение работы с сетью где нельзя сделать универсальный способ сообщения ибо где-то нужен TCP где-то UPD, кароче все то о чем вэбкамщики даже не думают.
Нажмите, чтобы раскрыть...
Я думал это все в прошлом осталось и сейчас либо RakNet юзают, либо Steam Datagram Relay. Ну и HTTP тут явно лишнее, особенно когда тебе от 50 до 600 сраных байтов переслать нужно.
0xA50C1A1 сказал(а):↑
Я думал это все в прошлом осталось и сейчас либо RakNet юзают, либо Steam Datagram Relay. Ну и HTTP тут явно лишнее, особенно когда тебе от 50 до 600 сраных байтов переслать нужно.
Нажмите, чтобы раскрыть...В крупных проектах обычно все свое. Да и даже с подобными либами процесс все равно не сравнится с примитивным http которым пользуется вебкамщики. Гоняешь джейсончики и по кайфу.
YoshkinKot сказал(а):↑смотря чо за веб
Нажмите, чтобы раскрыть...Понятное дело что проекты разные, создать гугл и его бэкэнд или клон супер марио на юнити задача разных порядков.
Это в целом к тому что в вэбе многое стандартизировано и понятно, в геймдеве же нет. Да и задачи и приоритеты совершенно разные.
К тому же все это довольно мутные понятия и разделение.
Ибо например типичная игра Dota2 содержит и бэк для данных пользователей, фронтенд ui, ну и саму игру собственно. Где отличия от приложения? В приложении разве что вместо игры будет бизнес логика какая-та.
Если что-то и сравнивать то именно это, а там тоже может быть супер марио, а проект вэбкамщика - chatgpt
Pudgewerksaw сказал(а):↑Понятное дело что проекты разные, создать гугл и его бэкэнд или клон супер марио на юнити задача разных порядков.
Это в целом к тому что в вэбе многое стандартизировано и понятно, в геймдеве же нет. Да и задачи и приоритеты совершенно разные.
Нажмите, чтобы раскрыть...ну в геймдеве просто железячный hazard еще присутствует
vendor локи и вот это вот всё
так бы гляди была бы нормальная открытая платформа и жили бы народы долго и счастливо
Pudgewerksaw сказал(а):↑Да и даже с подобными либами процесс все равно не сравнится с примитивным http которым пользуется вебкамщики. Гоняешь джейсончики и по кайфу.
Нажмите, чтобы раскрыть...HTTP слишком тяжелая штука, особенно если речь идет о какой-нибудь мультиплеерной игре. Там иногда даже за каждый байт борятся.
YoshkinKot сказал(а):↑ну в геймдеве просто железячный hazard еще присутствует
vendor локи и вот это вот всё
так бы гляди была бы нормальная открытая платформа и жили бы народы долго и счастливо
Нажмите, чтобы раскрыть...Opengl и SDL че те еще надо. Или ты хочешь чтобы тебе физику, фотореалистичный рендер бесплатно давали, а это очень сложные технологии. Тоже самое что в вебе реально сложные апи тебе бесплатно не дают - плати, еще и за каждый запрос плати.
0xA50C1A1 сказал(а):↑
HTTP слишком тяжелая штука, особенно если речь идет о какой-нибудь мультиплеерной игре. Там иногда даже за каждый байт борятся.
Нажмите, чтобы раскрыть...Я это к тому что вэбщики работают на http и не думают т.к его достаточно просто использовать. В играх же его использовать категорически нельзя, даже просто TCP бывает нельзя, именно в игровой сессии где мегабайты в секунду передаются и нужен минимальный пинг.
Neferp1tou сказал(а):↑На счет последнего, сам я любитель, но такое чувство, будто каким бы не был язык. Чем красивее код, тем хуже его производительность. Хочешь максимально быстро, делаешь в итоге вообще некрасиво и слабочитабельно.
Нажмите, чтобы раскрыть...фЭК, дядушка боб сейчас перевернулся в своей кровати
Pudgewerksaw сказал(а):↑Opengl и SDL че те еще надо. Или ты хочешь чтобы тебе физику, фотореалистичный рендер бесплатно давали, а это очень сложные технологии. Тоже самое что в вебе реально сложные апи тебе бесплатно не дают - плати, еще и за каждый запрос плати.
Нажмите, чтобы раскрыть...ну я не сильно шарю
но я помню были какие-то беды с шейдерами и прочим из-за проприетарности гпюшек и из-за прочего бреда
ща вроде это позади, но сколько времени потребовалось
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
Сообщений:9
Просмотров:10
-
Сообщений:14
Просмотров:18
-
Сообщений:5
Просмотров:6
-
Сообщений:8
Просмотров:9
-
ДомашнийМальчик 20 May 2024 в 12:37Сообщений: 10 20 May 2024 в 12:37
Сообщений:10
Просмотров:10