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

Рекламу не размещаю
Download Telegram
Channel name was changed to «GameDev Architecture»
Привет! Я решил, что стоит немного сместить фокус канала на более "продвинутые" темы в разработке. Я сам работал в нескольких крупных игровых студиях. Сейчас я помогаю строить архитектуру разным игровым компаниям.

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

Теперь я буду публиковать больше авторских #advanced постов.. В таких постах вы можете увидеть конкретные примеры кода, и они подразумевают наличие некоторого опыта в разработке, хотя могут быть полезны и совсем новичкам.

Хотя я и меняю фокус канала на #gamedev, проблемы, освещаемые мной, актуальны во многих других сферах, включая #frontenddev #backenddev. Ведь, игровая разработка многогранна и редко существует, например, без бэкэнда.

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

Как всегда, рад услышать ваши комментарии/мысли @poisonous_john. Либо пишите прямо на medium ;).

#architecture #advanced #bestpractices #dependencyinjection #inversionofcontrol #unity

http://goo.gl/NP9Yfy
Похоже instant view не дружит с gist, поэтому там нет примеров кода :(, советую пользоваться ссылкой, если вы читаете с телефона.

В следующих постах обещаю что-нибудь придумать с этим

Забыл упомянуть, прежде канал назывался "Пещера Ядовитого Джона".
Хочу поделиться интересным каналом. Часто не бывает времени уследить за всеми событиями, а тут все удобно собрано в одном месте.

Календарь событий игровой индустрии - информирует о проходящих событиях игровой индустрии и крупных конференций на территории СНГ.
https://teleg.eu/gamedev_calendar
Статья описывает типичные проблемы сетевого мультиплеера.

Автор, местами, применяет интересные решения.

http://etodd.io/2018/02/20/poor-mans-netcode/

#multiplayer #networking #english
Привет! Давно не постил. Был в отпуске и работал над новой статьей.

В этой статье я хочу разобрать паттерн Команда (Command). Он многогранен, и может быть применен по-разному. Но я покажу, как сделать мой любимый трюк — машина времени для отладки изменений гейм стейта.

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

Начинающие разработчики познакомятся с паттерном, а продвинутые, возможно, найдут трюк полезным.

https://habrahabr.ru/post/350630/
Blueprints в #unity: Bolt Visual Scripting.

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

Так же можно использовать для обновления логики БЕЗ пересборки бинарника.

#asset

Bolt brings complete visual scripting to Unity, empowering artists, designers and programmers to create gameplay mechanics and interactive systems without writing a single line of code.

Price: $70 per seat
Free: with Unity Plus

https://assetstore.unity.com/packages/tools/visual-scripting/bolt-87491
Ловите еще одну мою статью: "Своя игровая аналитика за $300 в месяц"

https://github.com/PoisonousJohn/articles/blob/master/Custom_Analytics/custom-analytics-1.md
При разработке часто встает дилемма: попроще или подольше?

Многие студии выбирают Photon (или любой другой easy-to-go фреймворк) для сетевого мультиплеера. Это дает быстрый старт, но что потом?

#note #architecture

https://aka.ms/B42a6e
#OpenSource становится все более модным (и видимо выгодным). Теперь #Unity удивляет широким жестом.

Интересно как это повлияет на дальнеший вектор развития продукта. В статье правильно сказано, что за последний год в #Unity много чего поменялось в лучшую сторону.

Не знаю как для вас, но для меня — это хороший знак :)

https://habrahabr.ru/post/351978/

P.S. уже есть первый PR с оптимизацией! =)

https://github.com/Unity-Technologies/UnityCsReference/pull/1

P.S.S. Наткнулся на еще одну новость про #OpenSource:
Редактор Cryengine Sandbox тоже опубликовали на Github

https://tproger.ru/news/crytek-cryengine-sandbox/
Очень интересно изучать детали того, как построены крупные проекты.

https://aka.ms/no-sql-for-users-states
Мы привыкли говорить про архитектуру проекта в контексте проектирования. Но что делать, если это проектирование было неудачным?

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

https://aka.ms/analyzing-project-health
В очередной раз увидел ссылку на DevsGo митап в календаре геймдев мероприятий (https://teleg.eu/gamedev_calendar), и на этот раз созрел.

Я давно не выбирался в оффлайн, а, как мне кажется, такие встречи позволяют встряхнуться, отвлечься от обыденности работы, да и обменяться опытом. Считаю это — прекрасный повод пересечься! Надеюсь увидеть кого-нибудь из подписчиков :) Если вы в Москве, приходите, познакомимся лично, поболтаем "за архитектуру", "за жизнь" и другие интересные темы ;)

19 апреля, в 19:00, Москва, Пятницкий переулок 2, бар "Дорогая, я перезвоню"

Подробнее о DevsGo митапе https://devsgo.timepad.ru/event/701553/

Если собираетесь прийти, пишите мне (@poisonous_john), обязательно словимся.
Для того, чтобы правильно строить архитектуру — нужен опыт. Конечно же свой опыт — важнее, и дает больше. Но всегда нужно учитывать и чужой.

Архитектура в играх имеет некоторую "свою" специфику. Но в остальном, игры — тот же софт. Поэтому все архитектурные наработки к ним применимы.

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

Вот одна из таких статей: https://habrahabr.ru/post/353698/
Всем привет! Новоприбывшим добро пожаловать :)

Давно не писал, сначала был в отпуске, потом подготовка к DevGamm (кстати, приходите на воркшоп по облаку 17 мая). Но теперь появилась минутка поделиться с вами своими мыслями.

Сегодня статья не столько про техническую составляющую нашей работы, сколько про социальную.

Когда вы работаете над архитектурой, как это происходит в вашей команде?
Все участвуют в этом процессе?
Как вы думаете, можете ли вы сделать свою жизнь и жизнь коллег лучше?

На самом деле все не так уж и сложно, каждый может помочь.

https://aka.ms/architecture-and-teamwork
Статический анализ - хороший помощник. Он убережет вас от тупейших багов, которые не очевидны глазу, но всплывут
когда-нибудь потом и больно ударят.

Если вы все ещё не используете статический анализатор кода, то самое время задуматься и начать.

https://www.gamedev.net/articles/programming/general-and-gameplay-programming/static-analysis-in-video-game-development-top-10-software-bugs-r4887/

Если же вы на 100% уверены в себе, то проверка - лишний повод похвастаться.
Почему мы обычно не хотим разбираться в чужом коде? Потому что сложно. Не нам сложно, а сам код чрезмерно усложнен. Да и в своем то, бывает, тоже блуждаешь подолгу, пытаясь вспомнить что же у тебя было в голове месяц назад.

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

https://aka.ms/abstractions-in-your-head
Twitter Analytics: Measuring and Optimizing Your Social Media Impact