ttutiki

Пользователь

Регистрация: 28.09.2013

Сообщения: 1808

Рейтинг: 614

ttutiki

Регистрация: 28.09.2013

Сообщения: 1808

Рейтинг: 614

Название кликбейт и я не хочу никого обидеть.

 

Я бэкенд шарп, средненький мидл (бадум-ц!). Сейчас потихоньку разбираюсь с Юнити. Читаю кучу инфы, ищу бест практисы, стандарты в индустрии и прочее. И у меня складывается впечатление что по сравнению с вебом это какая-то отсталая область. В плане мм... код культуры что ли. Инфы меньше, все закрытое, 8 из 10 ссылок ведут на форум Юнити, нет каких то устоявшихся стандартов. Но самое главное, что людям как будто плевать на код. Типа в открытую. "Главное чтоб работало" - советы менеджера от программистов (утрирую конечно). В вебе хоть по факту везде одно говно, но на словах чистый код здесь, паттерны там, управление сложностью, простота сопровождения, тестабилити итд. Люди хотя бы делают вид. Индустрия как будто серьезнее выглядит. 

 

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

DrZoidberg

Пользователь

Регистрация: 17.01.2017

Сообщения: 1469

Рейтинг: 434

Нарушения: 60

DrZoidberg

Регистрация: 17.01.2017

Сообщения: 1469

Рейтинг: 434

Нарушения: 60

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

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Во-первых unity старый и естественно многие современные практики тогда не были в тренде. 

 

Во-вторых нет ресурсов делать абсолютно весь код вылизанным ибо геймдев это не про покрасить кнопочки и обработать запросик записать в БД.

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

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

 

Да и пример хочется, что конкретно тебе кажется отсталым?

 

А ещё забыл добавить производительность, из-за которой зачастую уродуют код. 

Neferp1tou

Пользователь

Регистрация: 17.09.2016

Сообщения: 9081

Рейтинг: 4481

Нарушения: 75

Neferp1tou

Регистрация: 17.09.2016

Сообщения: 9081

Рейтинг: 4481

Нарушения: 75

img
Pudgewerksaw сказал(а):

Во-первых unity старый и естественно многие современные практики тогда не были в тренде. 

 

Во-вторых нет ресурсов делать абсолютно весь код вылизанным ибо геймдев это не по покрасить кнопочки и обработать запросик записать в БД.

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

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

 

Да и пример хочется, что конкретно тебе кажется отсталым?. 

 

А ещё забыл добавить производительность, из-за которой зачастую уродуют код. 

Нажмите, чтобы раскрыть...

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

 

 

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

ДауныНаВольво

Пользователь

Регистрация: 19.12.2023

Сообщения: 3997

Рейтинг: 1589

Нарушения: 10

ДауныНаВольво

Регистрация: 19.12.2023

Сообщения: 3997

Рейтинг: 1589

Нарушения: 10

ты бы еще инфу по плюсам сравнивал с высерами вебмакак о краске кнопок

чем выше порог вхождения - тем меньше будет инфы

хотя тут уже имхо - юнити недалеко от вебмакак ушел

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

Neferp1tou сказал(а):

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

 

 

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

Нажмите, чтобы раскрыть...

ну алгосики красивые обычно

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1118

Рейтинг: 744

haHAA

Регистрация: 25.03.2017

Сообщения: 1118

Рейтинг: 744

img
ttutiki сказал(а):

Название кликбейт и я не хочу никого обидеть.

 

Я бэкенд шарп, средненький мидл (бадум-ц!). Сейчас потихоньку разбираюсь с Юнити. Читаю кучу инфы, ищу бест практисы, стандарты в индустрии и прочее. И у меня складывается впечатление что по сравнению с вебом это какая-то отсталая область. В плане мм... код культуры что ли. Инфы меньше, все закрытое, 8 из 10 ссылок ведут на форум Юнити, нет каких то устоявшихся стандартов. Но самое главное, что людям как будто плевать на код. Типа в открытую. "Главное чтоб работало" - советы менеджера от программистов (утрирую конечно). В вебе хоть по факту везде одно говно, но на словах чистый код здесь, паттерны там, управление сложностью, простота сопровождения, тестабилити итд. Люди хотя бы делают вид. Индустрия как будто серьезнее выглядит. 

 

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

Нажмите, чтобы раскрыть...

Ну ты количество разрабов игр и разрабов веба сравни

Это несоизмеримые цифры

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Neferp1tou сказал(а):

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

 

 

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

Нажмите, чтобы раскрыть...

Да, ярчайший пример в контексте unity это linq (аналог map, reduce в других языках) о применения которого в геймдеве думают, особенно в игровом цикле, в то время как в вебее использовать обычный for для таких задач - зашквар.

А если по хорошему, даже просто создавать объекты в игровом цикле без пулов - зашквар.

 

Или например вместо наследования делать одну большую структуру которая в себя включает все, тоже распространенная практика (почему сложно объяснять)

 

Работа с сетью тоже другая. Никакого смузи-http вместо этого мутные никому непонятные протоколы где каждый байт на счету, разделение работы с сетью где нельзя сделать универсальный способ сообщения ибо где-то нужен TCP где-то UPD, кароче все то о чем вэбкамщики даже не думают.

 

YoshkinKot сказал(а):

ну алгосики красивые обычно

Нажмите, чтобы раскрыть...

 

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

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

Pudgewerksaw сказал(а):

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

Нажмите, чтобы раскрыть...

ну байтоебство это тоже прикольно

 

я-то в программирование вкатился из спортивного программирования и CTF криптографических

 

а там всё такое отвратительное

0xA50C1A1

Пользователь

Регистрация: 14.07.2015

Сообщения: 4605

Рейтинг: 1149

0xA50C1A1

Регистрация: 14.07.2015

Сообщения: 4605

Рейтинг: 1149

Pudgewerksaw сказал(а):

Работа с сетью тоже другая. Никакого смузи-http вместо этого мутные никому непонятные протоколы где каждый байт на счету, разделение работы с сетью где нельзя сделать универсальный способ сообщения ибо где-то нужен TCP где-то UPD, кароче все то о чем вэбкамщики даже не думают.

Нажмите, чтобы раскрыть...

 

Я думал это все в прошлом осталось и сейчас либо RakNet юзают, либо Steam Datagram Relay. Ну и HTTP тут явно лишнее, особенно когда тебе от 50 до 600 сраных байтов переслать нужно.

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

0xA50C1A1 сказал(а):

 

Я думал это все в прошлом осталось и сейчас либо RakNet юзают, либо Steam Datagram Relay. Ну и HTTP тут явно лишнее, особенно когда тебе от 50 до 600 сраных байтов переслать нужно.

Нажмите, чтобы раскрыть...

В крупных проектах обычно все свое. Да и даже с подобными либами процесс все равно не сравнится с примитивным http которым пользуется вебкамщики. Гоняешь джейсончики и по кайфу.

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

Pudgewerksaw сказал(а):

В крупных проектах обычно все свое. Да и даже с подобными либами процесс все равно не сравнится с примитивным http которым пользуется вебкамщики. Гоняешь джейсончики и по кайфу.

Нажмите, чтобы раскрыть...

смотря чо за веб

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

YoshkinKot сказал(а):

смотря чо за веб

Нажмите, чтобы раскрыть...

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

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

HABO3

Пользователь

Регистрация: 03.08.2021

Сообщения: 1006

Рейтинг: 951

HABO3

Регистрация: 03.08.2021

Сообщения: 1006

Рейтинг: 951

геймдев ток развивается. в 2017 году на анрил нереально было гайд найти, кроме как оф.доки. все будет, но со временем

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

К тому же все это довольно мутные понятия и разделение.

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

Если что-то и сравнивать то именно это, а там тоже может быть супер марио, а проект вэбкамщика - chatgpt

anshadow

Пользователь

Регистрация: 17.11.2012

Сообщения: 47401

Рейтинг: 21619

anshadow

Регистрация: 17.11.2012

Сообщения: 47401

Рейтинг: 21619

ttutiki сказал(а):

Инфы меньше, все закрытое,

Нажмите, чтобы раскрыть...

в свободном доступе действительно в основном инфа на юнити. и все обучалки годные тоже по юнити.

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

Pudgewerksaw сказал(а):

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

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

Нажмите, чтобы раскрыть...

ну в геймдеве просто железячный hazard еще присутствует

 

vendor локи и вот это вот всё

так бы гляди была бы нормальная открытая платформа и жили бы народы долго и счастливо

anshadow

Пользователь

Регистрация: 17.11.2012

Сообщения: 47401

Рейтинг: 21619

anshadow

Регистрация: 17.11.2012

Сообщения: 47401

Рейтинг: 21619

ttutiki сказал(а):

Типа в открытую. "Главное чтоб работало" - советы менеджера от программистов (утрирую конечно).

Нажмите, чтобы раскрыть...

именно по этому принципу построена гта и многие игры

0xA50C1A1

Пользователь

Регистрация: 14.07.2015

Сообщения: 4605

Рейтинг: 1149

0xA50C1A1

Регистрация: 14.07.2015

Сообщения: 4605

Рейтинг: 1149

Pudgewerksaw сказал(а):

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

Нажмите, чтобы раскрыть...

 

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

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

YoshkinKot сказал(а):

ну в геймдеве просто железячный hazard еще присутствует

 

vendor локи и вот это вот всё

так бы гляди была бы нормальная открытая платформа и жили бы народы долго и счастливо

Нажмите, чтобы раскрыть...

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

 

0xA50C1A1 сказал(а):

 

 

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

Нажмите, чтобы раскрыть...

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

Jeivi

Пользователь

Регистрация: 30.03.2013

Сообщения: 2271

Рейтинг: 806

Jeivi

Регистрация: 30.03.2013

Сообщения: 2271

Рейтинг: 806

img
Neferp1tou сказал(а):

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

Нажмите, чтобы раскрыть...

фЭК, дядушка боб сейчас перевернулся в своей кровати 

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2429

Рейтинг: 1005

Нарушения: 109

Jeivi сказал(а):

фЭК, дядушка боб сейчас перевернулся в своей кровати 

Нажмите, чтобы раскрыть...

Дядюшка боб инфоциган 

 

 

Neferp1tou

Пользователь

Регистрация: 17.09.2016

Сообщения: 9081

Рейтинг: 4481

Нарушения: 75

Neferp1tou

Регистрация: 17.09.2016

Сообщения: 9081

Рейтинг: 4481

Нарушения: 75

img
Jeivi сказал(а):

фЭК, дядушка боб сейчас перевернулся в своей кровати 

Нажмите, чтобы раскрыть...

У него какая-то секта синтаксических сладкоежек или что?

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 13872

Рейтинг: 5509

Pudgewerksaw сказал(а):

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

Нажмите, чтобы раскрыть...

ну я не сильно шарю

 

но я помню были какие-то беды с шейдерами и прочим из-за проприетарности гпюшек и из-за прочего бреда

 

ща вроде это позади, но сколько времени потребовалось

Jeivi

Пользователь

Регистрация: 30.03.2013

Сообщения: 2271

Рейтинг: 806

Jeivi

Регистрация: 30.03.2013

Сообщения: 2271

Рейтинг: 806

img
Neferp1tou сказал(а):

У него какая-то секта синтаксических сладкоежек или что?

Нажмите, чтобы раскрыть...

это база потому что, ты видимо с говнокодом не работал