Беды с памятью у разработчиков игр и приложений

Беды с памятью у разработчиков игр и приложений

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

Сама тема кроется в том, что разработчики с каждым годом становятся всё прожорливее и прожорливее. И даже с системными требованиями для видеокарт и процессоров не всё так просто. Один из таких примеров (который и побудил наконец написать пост): системные требования для Babylon's Fall, который, если судить по трейлерам, мягко говоря выглядит... мыльненько. Ну а вот сами системные требования:

это минимальные для 720, самое вкусное найдёте в посте по ссылке, там требования для 4К
это минимальные для 720, самое вкусное найдёте в посте по ссылке, там требования для 4К

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

То есть они вместо 5 разных файлов закинули 5 разных копий. Даже если учесть, что эту задачу скинули на какого-нибудь джуна, кто-то же это закоммитил и проконтролировал. Это проблема не кажется такой страшной, ведь у всех сейчас террабайты свободного места (а лет 20 назад о таком только можно было мечтать), ну и саму ошибку скорее всего быстро пофиксят. Похожая ситуация существует и с TESO, правда менять её не сильно стремятся. Помимо того, что на установку игры требуется ~100 Гб, но по итогу, после удаления французского и немецкого языка (что уже идут предустановлено без вашего разрешения) весит:

Беды с памятью у разработчиков игр и приложений

Ну ведь у всех же есть свободные 15-20 Гб свободного места? Чего лодку то раскачивать. Кто-то сильно пострадал?
В данной ситуации может и никто, но, пожалуй, перейдём к ещё одной нашумевшей новости:

Интересно, сколько у игроков процентно от всего времени ушло на загрузку в Онлайн  <a href="https://tproger.ru/news/jentuziast-uskoril-zagruzku-gta-online-na-70-s-6-do-menee-2-minut/" rel="nofollow noreferrer noopener" target="_blank">Источник</a>
Интересно, сколько у игроков процентно от всего времени ушло на загрузку в Онлайн  Источник

Интересно, что посмотрев на решение проблемы, вы не обнаружите там чего-то гениального или революционного. Допущенные ошибки не самого высокого уровня (если хотя бы немного разбираетесь в программировании, можете прочесть статью автора разработки):

...бутылочным горлышком для скорости загрузки выступало использование лишь одного потока процессора при запуске онлайн-режима. Также GTA изо всех сил пытается разобраться с парсингом JSON-файла весом 10 МБ. Из-за слабости самого парсера, после синтаксического анализа выполняется медленная процедура дедупликации элементов.

При чём вот это «с 6 до 2 минут» — это скорее что-то среднестатистическое, на самом деле ситуация до обновления была подобная:

<a href="https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/" rel="nofollow noreferrer noopener" target="_blank">Источник</a> — там можете подробнее прочесть про решение проблемы 
Источник — там можете подробнее прочесть про решение проблемы 

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

Польских ребят мне в этом посте хочется упомянуть меньше всего, им и так досталось, но видимо они слишком сильно переживают за здоровье геймеров и что-бы те не проводили долгие часы в игре, а делали перерывы — завезли утечку памяти, это отметило большинство пользователей. И это уже более серьезная проблема. Ещё были прописаны ограничения для консолей, которые забыли убрать из PC версии, а на процессорах AMD и вовсе работал только один поток, ну пофиксили же? Пофиксили.
На самом же деле для «свежих проектов», подобные проблемы не новинка, но это не должно приводиться эту ситуацию в разряд нормальных, наоборот!

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

Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.

Кто-то великий, из нижнего интернета

Как же я люблю эту пасту, она учит тому, что «программирование — это легко, быстро, а главное прибыльно», но в погоне за скорой наживой, плодятся низкосортные разработчики, что не имеют понятия как это работает, главное, что работает. Я ни в коем случае не пытаюсь этим постом порицать тех, кто программирует исключительно на высокоуровневых языках программирования (это было бы глупо). Скорее я хочу обратить на растущую проблему того, что многие при изучении минуют «сложные», но при этом базовые темы внутреннего устройства и работы всё тех же функций на более низком уровне.

33 показа
229229 открытий
Начать дискуссию