Сопротивление Бесполезно | Блог разработки @sbgamesstudio Channel on Telegram

Сопротивление Бесполезно | Блог разработки

@sbgamesstudio


Ссылки:
Группа ВК: https://vk.com/pub.sbgames
Канал на YouTube: https://youtube.com/@SB_Games
Сайт: https://sbgames.ucoz.net
Страница в Google Play: https://play.google.com/store/apps/dev?id=5670904791613486494

Сопротивление Бесполезно | Блог разработки (Russian)

Добро пожаловать на канал "Сопротивление Бесполезно | Блог разработки"! Мы - команда страстных разработчиков из sbgamesstudio, где мы делимся интересными и актуальными статьями о создании игр, программ и других проектов. Наш канал предлагает увлекательные материалы о процессе разработки, передовых технологиях, советах по улучшению навыков программирования и многом другом. Мы стремимся создать сообщество, где каждый найдет что-то полезное для себя - будь то начинающий разработчик или опытный специалист. Присоединяйтесь к нам, чтобы быть в курсе последних тенденций в мире разработки и делиться опытом с единомышленниками. Вместе мы сделаем процесс создания программного обеспечения еще более увлекательным и продуктивным!

Сопротивление Бесполезно | Блог разработки

07 Jan, 22:47


После выхода сегодняшнего обновления MTS в коротком диалоге с @SlaWa_Gam3 удалось выяснить причину, по которой всё это время не работали случайные перекраски. Причина заключалась в моей тупости, а конкретно в том, что проблема актуальна только на Android, а я тестировал на Windows и не мог понять причину проблемы. А причина была в коде, который считывал перекраски с другой папки, потому я это дело быстро пофиксил. Днём выпущу фикс в Google Play, заодно проверите)

Но что меня больше всего удивило — за это время я успел не только изучить код, найти причину и устранить, а ещё общаться по поводу этой проблемы и параллельно бомбить из-за Nvidia... И после этого вы ещё будете думать, что какой-то симулятор маршруток или прочие проекты смогу помешать разработке Жигулей и MTS?)

Сопротивление Бесполезно | Блог разработки

07 Jan, 21:44


И ведь маркетологи Nvidia реально знают своё дело: сначала нам представили RTX как технологию будущего, а по факту реально графику он улучшает в трёх с половиной играх, и люди на это ведутся и считают RTX крутой технологией. По факту это крутая технология для разработки, чтобы в игре заранее просчитать свет и у игроков будет красивая картинка без особой нагрузки на видеокарты, но Nvidia пошли по другому пути. И после этого нам начали точно также преподносить DLSS, который уменьшает реальное разрешение в играх, после чего масштабирует его теряя детализацию, а если FPS всё равно низкий - дорисовывает кадры и люди опять повелись на это и считают это крутым... А что будет дальше? Введут DLSS 5, который будет работать только по подписке DLSS+ за 1 доллар в час? Такое возможно и если людям преподнесут, что это круто, то люди будут этим пользоваться. А потом издатели игр будут ныть, что из-за пиратов их игры на 150 долларов никто не покупает, и это при том, что с расходами на запуск игр на покупку этих же игр денег не остаётся... Но тут всё просто: обновят денуво, встроят во все подряд новые игры, из-за чего они ещё сильнее будут лагать и больше нуждаться в DLSS, иначе фпс с них не вытянуть, и круг снова замкнётся: нужны более мощные видеокарты, более производительный DLSS, рост цен на игры, пиратство дорогих игр, ещё большая защита Denuvo, опять нужно железо мощнее... Чем-то мне весь этот бесконечный круг надувательства людей напоминает Идиократию, которая, судя по всему, неизбежна...

Сопротивление Бесполезно | Блог разработки

07 Jan, 21:37


Чтобы вы поняли, почему меня так бомбит, отвечу вкратце про некоторые методы оптимизации, которые я сам привёл в пример - мип-маппинг и лоды.
Мип-маппинг - это несколько версий одной и той же текстуры, которые подгружаются на разном расстоянии от камеры игрока. К примеру, если мип-маппинг включен, а под игроком находится текстура с разрешением 1024х1024, то в нескольких метрах от игрока будет та же текстура, но в разрешении 512х512, дальше 256х256, 128х128, 64х64 и обычно на этом останавливается, но иногда всё доходит до 16х16. Делается это для того, чтобы на расстоянии от игрока не было текстур высокого разрешения и это довольно сильно снижает нагрузку на видеокарту и видеопамять, да и визуально глазу видеть мягкие текстуры вдали гораздо лучше, чем шумные (пример такого эффекта я вам потом покажу и вы поймёте, о чём я). Но это сделано капец как топорно! Если под игроком текстура с разрешением 1024х1024, то в 10-ти метрах от него уже 512х512, то есть разрешение текстуры снизилось 2 раза, но этот переход очень сильно видно. А всё потому, что сжатие текстур происходит в геометрической прогрессии, а это уже сделано, чтобы сборка игры занимала меньше времени. Если сделать переход плавным, то есть сжимать все текстуры не в 2 раза на каждом уровне, а на 5%, то мы получим очень плавный переход от высокой детализации к низкой без ущерба для производительности и глазу приятно. Но, увы, такая детализация текстур будет очень дорого стоить в плане потраченного времени на сборку игры, так как нужно будет отрисовать все уровни одной и той же текстуры. И как раз таки с этой задачей нейросети справляются гораздо быстрее, чем просто фильтры для сжатия текстур, а качество сжатых текстур гораздо выше, чем криво объединённые пиксели у билинейной или трилинейной фильтрации...

ЛОД - уровень детализации (Level Of Detail). Эта технология применяется для подмены качественных моделей на некачественные, когда игрок от них отдаляется на расстояние и это также экономит ресурсы видеокарты, позволяя увеличить детализацию окружения вокруг игрока. Эта технология старая, но она очень хорошо реализована в GTA V, а ещё лучше в Mafia 2, в которой как раз при помощи лодов отображаются машины на другом конце карты и это не сказывается на производительности и это сделано очень круто, за это я и полюбил эту игру. В MTS вы это как раз можете заметить на зданиях вдали, их детализация меняется, а деревья превращаются просто в зелёные кубы. В Жигулях и прочих играх есть тоже самое, а особенно в Жигулях транспорт в трафике на каком-то расстоянии от игрока вообще исчезает, при этом фактически продолжая существовать. Но в наше время, когда даже камни ка дороге имеют высокую детализацию, с лодами работать проблематично, так как нужно на каком-то расстоянии от игрока подменить модель на менее детализированную, а чтобы это выглядело не так вырвиглазно, нужно подменять модель плавно уменьшая её детализацию и тут как раз и зарыта та самая собака: на создание нескольких качественных уровней лодов для одного здания может уходить несколько десятков часов. В это же время можно было обучить ИИ анализировать модель здания и делать 10, а то и 20 уровней детализации и всё это всего за 2-3 минуты. Представьте, что в игре вы стоите в 5 метрах от здания и видите его нормальную модель, но в 10-ти вы видите уже немного урезанную, при этом на глаз это вообще незаметно, а видеокарта это заметно ощущает и говорит спасибо разработчикам за то, что пожалели её. И чем дальше вы отходите от здания, тем меньше его детализация, но за счёт огромного количества уровней детализации вы этого совсем не замечаете, даже когда это здание прекращается всего в пару пикселей. А сейчас же в играх с большими открытыми мирами с этим серьёзная проблема, эти переходы отлично видны на глаз, так как на лодах экономят и делают обычно по 2-3 уровня, иногда 5.

Сопротивление Бесполезно | Блог разработки

07 Jan, 21:37


Да, есть некоторые плагины для Blender и 3ds Max, которые с этим помогают, видел и специальную программу для создания лодов, но все они не понимают, что это за модель, они видят лишь одно - полигоны, и эти полигоны они постепенно уменьшают, делая модель уже на первых уровнях сплошной кашей, поэтому многие предпочитают делать лоды вручную. А нейросеть как раз могла бы понимать, что это за модель и для чего нужны полигоны в таких-то местах и на основе этих данных делать высококачественные лоды, которые будет трудно отличить от основной модели. Могли бы...

И это только верхушка айсберга, связанная с моделями, а есть ещё рефакторинг кода - нейросеть смотрит на часть кода, анализирует что этот код делает и предлагает его более простой вариант, на выполнение которого уйдёт меньше времени, соответственно игра будет быстрее работать и меньше нагружать процессор. И вот тут ещё одна интересная деталь: большинство современных игр больше нагружают видеокарты, нежели процессор. А если рассчитывать качество всех текстур и объектов на расстоянии от игрока, то на процессор немного увеличится нагрузка, но при этом спадёт и нагрузка на видеокарты и тут опа, прикол, большинство бюджетных процессоров начнут загружаться не на 30%, а на 60-70, а нагрузка с видекарт спадёт и... О, чудо! Нативные 4К 60 ФПС становятся реальностью! Но зачем, если можно просто промыть мозги, что нейросети это круто и это нужно и народ сразу кинется покупать топовые видеокарты?

Сопротивление Бесполезно | Блог разработки

07 Jan, 20:53


Посмотрел разбор презентации CES 2025, на которой Nvidia презентовала RTX 5090 и DLSS 4 и вот что я думаю: период стагнации мы успешно прошло и теперь наступил период деградации. Топовые видеокарты больше не тянут современные игры в 4K 60 FPS, а вместо увеличения мощности железа нам подсовывают фейковые кадры, которые видеокарта при помощи ИИ сама же и дорисовывает в реальном времени. То есть вместо того, чтобы создать ИИ инструменты для оптимизации игр (рефакторинг кода, улучшенный мип-маппинг, более детальные лоды, этот список можно продолжать вечно), они просто решили дорисовывать недостающие кадры... То есть вместо конфеты нам подсовывают говно в фантике и так это преподносят, что люди чувствуют очень необычный вкус и хотят ещё...

Лично я считаю подобные технологии полнейшим дебилизмом, сейчас бюджеты топовых ААА игр больше пускают не на оптимизацию, а на рекламу, а если игра лагает - включай нейросетевые апскейлеры и не выноси мозги, а ещё за такие игрызки (огрызки игр) просят местами почти 70 долларов, что уже не мало. Но стоят ли эти игры своих денег, если для их нормальной работы нужный какие-то нейросетевые технологии?

Собственно, потому в моих играх никогда не будет DLSS, FSR и прочих нейросетевых технологий для дорисовки кадров, я ПОЛНОСТЬЮ ЗА ЧЕСТНЫЕ КАДРЫ. И пусть мои игры через пару лет будут обзывать недоразвитыми или старомодными из-за того, что они не используют нейросети на топовых видеокартах, которые без этих нейросетей будут выдавать 15 ФПС, я всё равно на этом поводу не пойду. Кстати, потому все мои будущие платные игры будут стоить соответствующе - 100-250 рублей максимум.

А что вы думаете по поводу этих "технологий"? Это деградация или "ъуъ ска вы не поняли это круто потому что потому игры идут в 4К 1500 ФПС и картинка мыльная потому что на деле 480p 25 ФПС но это другое"?

Сопротивление Бесполезно | Блог разработки

07 Jan, 19:57


Уже опубликовали. Теперь жду отчёта о работоспособности случайных перекрасок от тех, у кого они до этого не работали

Сопротивление Бесполезно | Блог разработки

07 Jan, 19:36


А что же никто не сказал, что в MTS на зимнем Старом городе с 1 января перестали отображаться украшения на деревьях? Я только сейчас заметил, в последние часы этого события (ивента)...

Я то исправил, но уже поздно... Теперь ждём следующего года 😁

Сопротивление Бесполезно | Блог разработки

07 Jan, 19:28


Отправил на проверку, теперь ждём...

Сопротивление Бесполезно | Блог разработки

07 Jan, 19:15


Делаю сборку обновления для Google Play, вот и посмотрим, исправилось или нет. Сегодня залью, завтра выйдет.

Сопротивление Бесполезно | Блог разработки

07 Jan, 19:09


Есть вероятность, что я починил случайные перекраски, но это не точно...

Сопротивление Бесполезно | Блог разработки

07 Jan, 19:00


Попытался решить одну проблему в MTS при помощи ChatGPT, так он мало того, что проблему не решил, так ещё и основной код сломал 🤣
Благо я успел сделать резервную копию)

Сопротивление Бесполезно | Блог разработки

07 Jan, 18:15


А вот это уже какая-то лютая трешатина, графика вырвиглазная, хотя некоторые и в такое играли и считали лучше предыдущих двух...

Сопротивление Бесполезно | Блог разработки

07 Jan, 18:14


И вот тоже хорошие игры, в которых детство проводил) И сейчас графика выглядит приятно глазу, планировка городов на 3/5, но в остальном игры хорошо были сделаны

Сопротивление Бесполезно | Блог разработки

07 Jan, 18:05


А ведь в ней графика и сейчас не так уж и вырвиглазно смотрится, добавить пару пост-эффектов, немного переделать карты и заменить интерфейс - и вообще приятная глазу картинка получится)

Сопротивление Бесполезно | Блог разработки

07 Jan, 18:03


Я в своё время в ней столько времени проводил на очень слабом телефоне, который тянул игру на высоких и она нормально работала. И ведь в то время подобная графика была топовой, а детализация моделей сносила крышу.

Модели в РутаДроме будут примерно такой же детализации, но общая графика будет гораздо приятнее глазу за счёт другого подхода к проработке и детализации мира.

Сопротивление Бесполезно | Блог разработки

07 Jan, 18:01


Мне интересно, а есть ли среди вас те, кто в своё время играл в эту легенду?)
https://youtu.be/Z_JIKuFB0qY?si=FdYGdqjrJdoW1xa3

Сопротивление Бесполезно | Блог разработки

07 Jan, 16:21


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

Сопротивление Бесполезно | Блог разработки

07 Jan, 14:07


Что за лев этот тигр?)

И вообще, нужно ли такое в РутаДроме или нет?

Сопротивление Бесполезно | Блог разработки

06 Jan, 09:59


Ладно

Сопротивление Бесполезно | Блог разработки

06 Jan, 07:43


Как я себя вижу, когда отвечаю на комментарии в Google Play 🤣

Сопротивление Бесполезно | Блог разработки

05 Jan, 14:26


И опять в Google Play вышел фикс Жигулей, надеюсь теперь телефон сам открываться не будет

Сопротивление Бесполезно | Блог разработки

04 Jan, 20:57


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

Сопротивление Бесполезно | Блог разработки

04 Jan, 18:35


В Google Play вышел фикс последнего обновления Жигулей

Сопротивление Бесполезно | Блог разработки

04 Jan, 15:58


Нашел первую проблему: FPS ограничен в 30 кадров...

Сопротивление Бесполезно | Блог разработки

04 Jan, 15:33


Обновление Жигулей уже в Google Play. Обновляйтесь, проверяйте, сообщайте о багах...

Сопротивление Бесполезно | Блог разработки

04 Jan, 11:31


Пересобрал игру и заработало. Чисто проблема самого Unity. Теперь я даже не могу гарантировать, что обновление в Google Play будет рабочим...

Сопротивление Бесполезно | Блог разработки

04 Jan, 11:17


Обновление Жигулей сильно задерживается, игра сломалась и я не могу понять где именно...

Сопротивление Бесполезно | Блог разработки

04 Jan, 10:11


В такие моменты понимаю, что не зря старался)
Оригинал: https://youtu.be/TAJ_v7oyYv0?si=by1rc-AirgyXg0bA

Сопротивление Бесполезно | Блог разработки

03 Jan, 20:34


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

Сопротивление Бесполезно | Блог разработки

03 Jan, 19:23


Никаких обрезок и склеек, чистое сохранение)

P.S. почему-то вылез баг, из-за которого при активном телефоне курсор неактивен...

Сопротивление Бесполезно | Блог разработки

03 Jan, 18:22


Итак, я думаю, что следующее обновление Жигулей будет готово уже в воскресенье. Причём обновление довольно крупное получается) Остаётся только сделать сохранение игрока и машин и можно будет выпускать обновление)

Сопротивление Бесполезно | Блог разработки

03 Jan, 18:13


Сразу об этом не упомянул, потому что бал занят телепортацией, но теперь смело могу показать классную деталь: уровень связи. Если телефон не будет ловить связь, то вам придётся ходить и искать её)

Сопротивление Бесполезно | Блог разработки

03 Jan, 17:57


Ну теперь стало лучше)

Сопротивление Бесполезно | Блог разработки

03 Jan, 17:19


Пытался сделать КПК в Жигулях, а получилась Нокия 3310 🤣

Ну а что, получилось тоже неплохо)

Сопротивление Бесполезно | Блог разработки

01 Jan, 13:20


Немного переделал освещение, стало лучше, но вечер получился отвратительный

Сопротивление Бесполезно | Блог разработки

01 Jan, 10:58


Заглянул в последние наработки по Провинции, а там большая часть уже сделана. На видео на вторые сутки я немного плотность облаков покрутил. правда, цветовую палитру нужно ещё немного переделать и тогда будет топ.
Осталось только ко всему этому прикрутить звуки окружения и можно будет переносить в Жигули)

Сопротивление Бесполезно | Блог разработки

01 Jan, 10:46


Читаю некоторые комментарии под этим постом и у меня возникает вопрос: а зачем я вообще делал эту страницу, если всё равно некоторые вместо того, чтобы прочитать, что там написано, просто задают вопросы в комментариях даже не подумав, что именно на эти вопросы там написан ответ?

Сопротивление Бесполезно | Блог разработки

01 Jan, 09:56


А я доделал страницу DobroTroll на Itch)
https://soprotivlenie-bespolezno.itch.io/dobrotroll

Теперь ждите на ней информации о выходе игры

Сопротивление Бесполезно | Блог разработки

01 Jan, 09:26


Есть у меня одна идея для нововведения в Жигулях: КПК, через который можно будет пользоваться различными услугами, а если точнее:
- телепортироваться домой;
- телепортировать машину в гараж;
- ну и что-то ещё, больше я пока ничего не придумал)

Но это всё будет не на пустом месте: я думаю добавить в игру полноценное сохранение, то есть при выходе будут сохраняться не только деньги, мебель, тюнинг, а ещё и положение игрока и машин на карте. А если что-то пойдёт не так — всегда можно запросить телепортацию игрока домой и машины в гараж. Причём это будет не просто костыль, когда при нажатии происходит мгновенная телепортация, а полноценная механика передвижения по миру: за телепортацию будет взиматься плата (сущие копейки), а само перемещение будет занимать примерно 3 (или 5) часа игрового времени, но вам не придётся ждать, так как время просто промотается, после чего вы снова сможете управлять персонажем. Но это касается только перемещения персонажа, а при перемещении машины она будет мгновенно пропадать и в гараже появится только спустя несколько игровых часов, так как это будет считаться эвакуацией.

Но и с этим всё не так просто: чтобы нельзя было сжульничать, игровое время также будет сохраняться, но, увы, пока с текущей механикой смены времени суток такой вариант не сработает, так как нужен другой принцип работы, нужно сделать полностью другое небо, которое позволит сохранить освещение, так как текущее освещение я делаю перед каждой сборкой обновления, потому при каждом заходе в игру на часах 6 утра.
Но и это не проблема) Я уже ранее писал, что потихоньку начал работу над проектом "Провинция" и показал наработки игрового неба с динамическими облаками. Это как раз то самое небо, которое можно сохранять, потому мне нужно лишь доработать эту систему и перенести в Жигули, тогда то можно будет сохранять всё...

Сопротивление Бесполезно | Блог разработки

31 Dec, 22:36


Говорят, как новый год встретишь — так его и проведёшь... Я вот задумался: я весь вечер ковырял код Жигулей, постоянно что-то не получалось, всё исправлял, а в считанные минуты до Нового года исправил все проблемы и остался доволен, так как всё, что я делал, работает... А значит ли это, что весь 2025 год у меня всё будет получаться?
За себя сказать не могу, а вот вам желаю в новом году добиться по максимуму того, чего вы хотите?)

Сопротивление Бесполезно | Блог разработки

31 Dec, 21:55


Кстати, я давненько по приколу одни часики сделал, они показывают текущее время года в процентах)
https://percentofyearclock.infinityfreeapp.com/

У меня год почти закончился)

Сопротивление Бесполезно | Блог разработки

31 Dec, 21:52


🎊🎉Всех с наступающим/наступившим!) 🎉🎊

А пока вы там отмечаете, или только готовитесь, или уже спите, я решил полезть в код Жигулей и исправил там целую кучу различных проблем, с которыми вы сталкивались, но не замечали этого. В основном это связано с настройками игры и сохранением данных. В общем, я всё пофиксил и залатал дыры, которые были с самого начала разработки игры, потому уже со следующего обновления у вас будут записаны новые данные и уже эти данные удаляться не будут и после каждого обновления вы сможете продолжать играть, зарабатывать деньги, покупать новые машины и тюнинговать их!

Своего рода мой вам подарок на Новый год)

Сопротивление Бесполезно | Блог разработки

31 Dec, 15:09


Я пока не решил, какое будет финальное название у игры, но уже есть одна идея: РутаДром. Как вам такое название?