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

Рекламу не размещаю
Download Telegram
Привет! Давно не постил. Был в отпуске и работал над новой статьей.

В этой статье я хочу разобрать паттерн Команда (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://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