GameDev Architecture
1.19K subscribers
3 photos
2 files
75 links
Привет! На канале я делюсь своими заметками о том, как игровым компаниям строить правильные, эффективные и красивые решения, в основном на C#.

Рекламу не размещаю
Download Telegram
В статье описана интересная точка зрения на современный ООП.
Точнее, рассматриваются концепты ООП современных языков через призму оригинального видения, предложенного Аланом Кейем в далеком 1966 году.

Основная мысль такова, что Алан видел ООП как общение объектов посредством сообщений, то есть максимально несвязно.

Я часто натыкался в проектах на чрезмерную связность кода. Заменив вызовы многих подсистем, на посылку события/сообщения в EventBus, код многократно упрощается. Нет необходимости прокидывать пачки зависимостей. Кому надо -- тот подпишется и услышит сообщение.

Событийно-ориентированные системы обычно получаются значительно гибче, легче рефакторятся и тестируются. Тем не менее, в них есть и минус: бывают сложности при отладке.

P.S. Не обращайте внимание, что статья в JS разделе. Там тоже иногда попадаются дельные вещи 🙂

https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f

#architecture #OOP
🤔1
Помните я писал про Entity Component System t.iss.one/gamedev_architecture/97 ?

Тем, кому интересна эта тема, может понравиться молодой канал, посвященный исключительно ECS: @ecscomrade .

P.S. Ко мне часто обращаются по поводу рекламы. Рекламу не по теме я не размещаю в принципе, как вы уже могли заметить. Но тематическим проектам/статьям/авторам я всегда рад.
Недавно выступал на конфе, рассказывал про чистую архитектуру (на английском) https://youtu.be/Zdn_eX5hGhs?t=9765

считаю, что получилось довольно интересно
👍4🔥21👎1
Уже давно Google выкатил различные “метрики” качества, которым приложения должны соответствовать, чтобы не попасть в теневой бан.

С одной стороны — благое намерение. Кому понравится приложение, которое постоянно крешит или висит.

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

Как результат — куча АНРов, с которыми разработчики вынуждены как-то бороться.

Мы долго мучались с этой проблемой, но потом написали сервис, который сам считает ANR и прибивает приложение чуть раньше, и АНР не доходит до гугла, но репортится в наши системы.

Таким образом мы имеем и более точный стектрейс по АНРу, и наши графики в порядке.

За основу был взят этот проект https://github.com/SalomonBrys/ANR-WatchDog , но улучшен под наши запросы.
🤔7🔥4😁2
Сейчас упоминание ИИ в разработке сыпется со всех щелей.

Одни говорят, что все, вайб-кодинг уже здесь. Будем шлепать игры на коленке за пару дней, все сгенерим — код, модели, анимации, озвучку.

Другие опасаются ИИ как огня, считая, что он выдает 💩

Мой же опыт — где то посередине. ИИ это ассистент, но уровня джуна. Только джуна, которому напихали в голову дохренища знаний.

Пара кейсов, где он мне сильно помог

Нативная разработка.

Варясь в C# и юнити — редко нужно погружаться в кишки андройда. И вот, допустим, встала задача чтобы игра обновлялась не из стора, а по URL. APK качается и устанавливается поверх.

Без нативного плагина не обойтись. Лезть и лопатить кучу документации — это прям надолго.

Попробовал Gemini Pro — решил задачу довольно быстро и просто. По факту когда совсем немного, но вот работа с доками, отладка и т.д. занимала бы дни. Он же рабочий прототип накидал за минуты.

И сам же отвечал на вопросы, когда возникали баги (вспоминаем про джуна), вместе чинили.

Автоматизация рутины

Часто нужны скрипты для автоматизации рутины на проекте: постить статусы билдов, написать ci/cd конфиги и т.д. Ситуация аналогичная — нужно ходить по докам, читать, отлаживать и т.д. Для ИИ задача же тривиальная, он неплохо с ней справляется.

Tools

Так же для работы бывают нужны различные инструменты. Например, нам понадобился умный diff для наших конфигов. Писать “морду” к визуализации диффа на шарпе, ну такое. Погружаться в джаваскрипт и всю его кухню — отдельная работа.

Описал подробное ТЗ ИИ, выбрал стек (react + type script + material UI), попросил захостить на gitlab pages, и вуаля, за день тулза готова. Сам бы я с этим возился ну неделю наверное, в лучшем случае.

Причем код вышел вполне себе читаемым. Там где было плохо — попросил зарефачить, сказал как хочу видеть. Все получилось.
👍162👎1🔥1