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

Рекламу не размещаю
Download Telegram
При разработке часто встает дилемма: попроще или подольше?

Многие студии выбирают 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://t.me/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
На рынке игровых фреймворков появился еще один интересный игрок bs::framework: https://github.com/gamefoundry/bsf .

Библиотека написана с использованием стандарта c++14.

Пока среди поддерживаемых платформ только десктопные: Windows, Linux, macOS

Среди интересных фич:

- Scripting C# 7.0
- Separate high level engine API
- Integrated runtime for maximum performance
- Full access to .NET framework
- Integration with Visual Studio, MonoDevelop
- Automatic serialization
- Works with custom components, resources or arbitrary types
- Save/load data with no additional code
- Handles complex types (e.g. array, list, dictionary) and references
- Fast and small memory footprint
Думаю, многие знают дядю Боба (Роберта Мартина), автора книги "Чистый код".

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

Верность принципам -- это важно. Но люди -- ещё важнее. Слепое следование принципам может сильно навредить.

Вот вам статья для размышления по теме:

http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
Очень структурированный гайд по изучению нашего непростого ремесла. От себя хочу отдельно отметить книгу Game Engine Architecture
Forwarded from Ivan Fateev
game-programmer.pdf
8.8 MB
Недавно беседовал с коллегой про разработку. Он жаловался, что уходит много времени на интеграцию клиента с сервером.

Я поделился с ним подходом, который мы использовали: специальный оффлайн режим в игре, который, по сути, эмулирует сервер.

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

Наверняка его используют многие, но, как оказалось, не все.

Подробнее в статье: https://fateev.pro/ru/gamedev/offline-mode-in-client-server-apps.html
Когда есть общий код, о чем в первую очередь думаешь ты? О наследовании? А как насчет использования Entity Component System?

Подробнее https://fateev.me/ru/gamedev/entity-component-system.html
Давно хотел поделиться с вами бесплатной онлайн книгой про игровые шаблоны проектирования, которую пишет бывший программист Electronic Arts, ныне работающий в Google над языком Dart, Боб Нистром.

Его перспектива восприятия немного странная, на мой вкус, но интересная.

http://gameprogrammingpatterns.com/

Там ниже есть кнопка Read Now.

Спасибо @WookyThePooky за корректировку
Хороших каналов, с уникальным, техническим контентом про игровую разработку довольно мало. Именно поэтому, если я натыкаюсь на такие каналы, то считаю своим долгом поделиться с вами.

На канале https://t.me/logofalprog автор рассказывает об интересных задачах, с которыми он сталкивается на работе. О разработке собственного движка. Да и про разработку в целом. Все это разбавлено забавными историями из жизни. Хоть канал и молодой, но на мой взгляд перспективный. Лично я жду постов про разработку движка и хардкора c++
Сколько мы тратим времени на чтение и понимание кода? Как упростить это нелегкое дело?

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

https://fateev.me/ru/gamedev/debug-tools.html