Всем привет! Новоприбывшим добро пожаловать :)
Давно не писал, сначала был в отпуске, потом подготовка к DevGamm (кстати, приходите на воркшоп по облаку 17 мая). Но теперь появилась минутка поделиться с вами своими мыслями.
Сегодня статья не столько про техническую составляющую нашей работы, сколько про социальную.
Когда вы работаете над архитектурой, как это происходит в вашей команде?
Все участвуют в этом процессе?
Как вы думаете, можете ли вы сделать свою жизнь и жизнь коллег лучше?
На самом деле все не так уж и сложно, каждый может помочь.
https://aka.ms/architecture-and-teamwork
Давно не писал, сначала был в отпуске, потом подготовка к DevGamm (кстати, приходите на воркшоп по облаку 17 мая). Но теперь появилась минутка поделиться с вами своими мыслями.
Сегодня статья не столько про техническую составляющую нашей работы, сколько про социальную.
Когда вы работаете над архитектурой, как это происходит в вашей команде?
Все участвуют в этом процессе?
Как вы думаете, можете ли вы сделать свою жизнь и жизнь коллег лучше?
На самом деле все не так уж и сложно, каждый может помочь.
https://aka.ms/architecture-and-teamwork
Medium
Архитектура и командная работа
Разрабатывая архитектуру под конкретную задачу, мы, обычно, выкладываемся по полной. Стараемся все предусмотреть и решить заранее.
Статический анализ - хороший помощник. Он убережет вас от тупейших багов, которые не очевидны глазу, но всплывут
когда-нибудь потом и больно ударят.
Если вы все ещё не используете статический анализатор кода, то самое время задуматься и начать.
https://www.gamedev.net/articles/programming/general-and-gameplay-programming/static-analysis-in-video-game-development-top-10-software-bugs-r4887/
Если же вы на 100% уверены в себе, то проверка - лишний повод похвастаться.
когда-нибудь потом и больно ударят.
Если вы все ещё не используете статический анализатор кода, то самое время задуматься и начать.
https://www.gamedev.net/articles/programming/general-and-gameplay-programming/static-analysis-in-video-game-development-top-10-software-bugs-r4887/
Если же вы на 100% уверены в себе, то проверка - лишний повод похвастаться.
GameDev.net
Static Analysis in Video Game Development: Top 10 Software Bugs
If you are a software developer working in the video game industry and wondering what else you could do to improve the quality of your product or make the development process easier and you don't use static analysis – it's just the right time to start doing…
Почему мы обычно не хотим разбираться в чужом коде? Потому что сложно. Не нам сложно, а сам код чрезмерно усложнен. Да и в своем то, бывает, тоже блуждаешь подолгу, пытаясь вспомнить что же у тебя было в голове месяц назад.
Мы часто увлекаемся, создавая все новые и новые слои абстракции. А потом они нас бьют по голове.
https://aka.ms/abstractions-in-your-head
Мы часто увлекаемся, создавая все новые и новые слои абстракции. А потом они нас бьют по голове.
https://aka.ms/abstractions-in-your-head
Medium
Абстракциями тебе по голове
Стараться спроектировать систему максимально гибкой и универсальной — хорошее желание. Но мы имеем тенденцию увлекаться. Не все можно…
На рынке игровых фреймворков появился еще один интересный игрок 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
Библиотека написана с использованием стандарта 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
GitHub
GitHub - GameFoundry/bsf: Modern C++14 library for the development of real-time graphical applications
Modern C++14 library for the development of real-time graphical applications - GitHub - GameFoundry/bsf: Modern C++14 library for the development of real-time graphical applications
Реверсинжиниренный код Diablo на гитхабе https://github.com/galaxyhaxz/devilution
GitHub
GitHub - galaxyhaxz/devilution: The beginning and end of Devilution - Diablo reverse engineered
The beginning and end of Devilution - Diablo reverse engineered - GitHub - galaxyhaxz/devilution: The beginning and end of Devilution - Diablo reverse engineered
Думаю, многие знают дядю Боба (Роберта Мартина), автора книги "Чистый код".
Не смотря на то, что книга действительно хороша, дядя Боб в своих взглядах бывает через чур радикален.
Верность принципам -- это важно. Но люди -- ещё важнее. Слепое следование принципам может сильно навредить.
Вот вам статья для размышления по теме:
http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
Не смотря на то, что книга действительно хороша, дядя Боб в своих взглядах бывает через чур радикален.
Верность принципам -- это важно. Но люди -- ещё важнее. Слепое следование принципам может сильно навредить.
Вот вам статья для размышления по теме:
http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
Очень структурированный гайд по изучению нашего непростого ремесла. От себя хочу отдельно отметить книгу Game Engine Architecture
Недавно беседовал с коллегой про разработку. Он жаловался, что уходит много времени на интеграцию клиента с сервером.
Я поделился с ним подходом, который мы использовали: специальный оффлайн режим в игре, который, по сути, эмулирует сервер.
Он позволяет очень быстро тестить механики, реализуя их сначала на клиенте, при этом не завязываясь на сервер.
Наверняка его используют многие, но, как оказалось, не все.
Подробнее в статье: https://fateev.pro/ru/gamedev/offline-mode-in-client-server-apps.html
Я поделился с ним подходом, который мы использовали: специальный оффлайн режим в игре, который, по сути, эмулирует сервер.
Он позволяет очень быстро тестить механики, реализуя их сначала на клиенте, при этом не завязываясь на сервер.
Наверняка его используют многие, но, как оказалось, не все.
Подробнее в статье: https://fateev.pro/ru/gamedev/offline-mode-in-client-server-apps.html
Fateev.pro
Оффлайн режим в клиент-серверных приложениях
Игры, да и приложения в целом, часто подразумевают наличие механик, завязанных на сервер. Сейчас не часто встретишь оффлайн игру. Как минимум, игры имеют различные социальные составляющие: кланы, чаты, список друзей, да что угодно. И каждый пук уходит в аналитику.
Когда есть общий код, о чем в первую очередь думаешь ты? О наследовании? А как насчет использования Entity Component System?
Подробнее https://fateev.pro/ru/gamedev/entity-component-system.html
Подробнее https://fateev.pro/ru/gamedev/entity-component-system.html
Давно хотел поделиться с вами бесплатной онлайн книгой про игровые шаблоны проектирования, которую пишет бывший программист Electronic Arts, ныне работающий в Google над языком Dart, Боб Нистром.
Его перспектива восприятия немного странная, на мой вкус, но интересная.
http://gameprogrammingpatterns.com/
Там ниже есть кнопка Read Now.
Спасибо @WookyThePooky за корректировку
Его перспектива восприятия немного странная, на мой вкус, но интересная.
http://gameprogrammingpatterns.com/
Там ниже есть кнопка Read Now.
Спасибо @WookyThePooky за корректировку
Хороших каналов, с уникальным, техническим контентом про игровую разработку довольно мало. Именно поэтому, если я натыкаюсь на такие каналы, то считаю своим долгом поделиться с вами.
На канале https://teleg.eu/logofalprog автор рассказывает об интересных задачах, с которыми он сталкивается на работе. О разработке собственного движка. Да и про разработку в целом. Все это разбавлено забавными историями из жизни. Хоть канал и молодой, но на мой взгляд перспективный. Лично я жду постов про разработку движка и хардкора c++
На канале https://teleg.eu/logofalprog автор рассказывает об интересных задачах, с которыми он сталкивается на работе. О разработке собственного движка. Да и про разработку в целом. Все это разбавлено забавными историями из жизни. Хоть канал и молодой, но на мой взгляд перспективный. Лично я жду постов про разработку движка и хардкора c++
Telegram
Log of Alprog
Разработка игр.
Чатик: @alprogio Автор: @alprog
#gamedev #programming #code
#геймдев #программирование #код
Чатик: @alprogio Автор: @alprog
#gamedev #programming #code
#геймдев #программирование #код
Сколько мы тратим времени на чтение и понимание кода? Как упростить это нелегкое дело?
В этом посте я хочу поговорить про использование различных средств отладки, которые могут сделать нашу жизнь легче. И какие дебаг тулы используете вы?
https://fateev.pro/ru/gamedev/debug-tools.html
В этом посте я хочу поговорить про использование различных средств отладки, которые могут сделать нашу жизнь легче. И какие дебаг тулы используете вы?
https://fateev.pro/ru/gamedev/debug-tools.html
Знаю что далеко не все пользуют Unity, но мне кажется тема VR/AR все равно интересная, без привязки к технологии.
11 октября пройдёт Unity Moscow Meetup 2018.1, главной темой которого как раз станет AR/VR.
Отдельно стоит отметить, что там будет специальная демо зона от MSI. Ну и не забываем про нетворкинг :)
Подробности:
г. Москва, ул. Трифоновcкая, д. 57, стр. 1 (ст. м. Рижская) ВШБИ
О мероприятии: https://goo.gl/92URM4
Ссылка на добавление в календарь: https://goo.gl/CqDB64
11 октября пройдёт Unity Moscow Meetup 2018.1, главной темой которого как раз станет AR/VR.
Отдельно стоит отметить, что там будет специальная демо зона от MSI. Ну и не забываем про нетворкинг :)
Подробности:
г. Москва, ул. Трифоновcкая, д. 57, стр. 1 (ст. м. Рижская) ВШБИ
О мероприятии: https://goo.gl/92URM4
Ссылка на добавление в календарь: https://goo.gl/CqDB64
Правильно ли мы понимаем парадигмы? На что я наткнулся, когда увидел как исползьуют RX для работы с API.
Всем привет! Давно не постил, не было достаточно времени, а плохим контентом вас кормить не хочется.
Сегодня я хотел бы поговорить про парадигмы, и про то как мы их понимаем. В частности, набирающее популярность реактивное программирование и библиотека RX. В нескольких проектах видел как ее используют для работы с серверным API.
И есть несколько моментов, которые убивают всю выгоду от RX.
Я добавил новый виджет комментов на сайт, так что если у вас есть мысли, делитесь 😉
https://fateev.pro/ru/programming/understanding-paradigm-rx-for-api.html
Всем привет! Давно не постил, не было достаточно времени, а плохим контентом вас кормить не хочется.
Сегодня я хотел бы поговорить про парадигмы, и про то как мы их понимаем. В частности, набирающее популярность реактивное программирование и библиотека RX. В нескольких проектах видел как ее используют для работы с серверным API.
И есть несколько моментов, которые убивают всю выгоду от RX.
Я добавил новый виджет комментов на сайт, так что если у вас есть мысли, делитесь 😉
https://fateev.pro/ru/programming/understanding-paradigm-rx-for-api.html
Классный ивент для игровых разрабов!
CGDevs Moscow Meetup №1
Декабрь 11
г. Москва, Космонавта Волкова, 6А Коворкинг GrowUp
Хочешь сделать игру? Хочешь найти людей, которые помогут в этом? Хочешь узнать про тренды в сфере компьютерной графики? Хочешь поесть пиццы и поболтать с классными ребятами?
11 декабря в коворкинг Grow Up! c 18:30 до 23:00 мы будем обсуждать разработку игр, компьютерную графику, игровые движки, создание кино и многое другое, что имеет отношение к красоте и технологиям. Участие бесплатное - регайся! А то количество мест ограничено
Для тех, кто не сможет посетить мероприятие будет организована интернет-трансляция на Youtube-канале - подписывайтесь
#Москва, #встреча
О мероприятии: https://goo.gl/9F38c6
Ссылка на добавление в календарь: https://goo.gl/iwUu35
CGDevs Moscow Meetup №1
Декабрь 11
г. Москва, Космонавта Волкова, 6А Коворкинг GrowUp
Хочешь сделать игру? Хочешь найти людей, которые помогут в этом? Хочешь узнать про тренды в сфере компьютерной графики? Хочешь поесть пиццы и поболтать с классными ребятами?
11 декабря в коворкинг Grow Up! c 18:30 до 23:00 мы будем обсуждать разработку игр, компьютерную графику, игровые движки, создание кино и многое другое, что имеет отношение к красоте и технологиям. Участие бесплатное - регайся! А то количество мест ограничено
Для тех, кто не сможет посетить мероприятие будет организована интернет-трансляция на Youtube-канале - подписывайтесь
#Москва, #встреча
О мероприятии: https://goo.gl/9F38c6
Ссылка на добавление в календарь: https://goo.gl/iwUu35
Независимый UI слой -- Ускоряем UI разрабокту
UI разработка частенько вызвает головную боль. Мы опробовали несколько подходов, которые нам помогли ее облегчить. Эта одна из нескольких статей на тему, посвященная размышлениям об отдельном слое для UI компонентов.
Мнения на эту тему обычно сильно расходятся. Избыточно или полезно -- решать вам.
https://fateev.pro/ru/gamedev/independent-ui-layer.html
UI разработка частенько вызвает головную боль. Мы опробовали несколько подходов, которые нам помогли ее облегчить. Эта одна из нескольких статей на тему, посвященная размышлениям об отдельном слое для UI компонентов.
Мнения на эту тему обычно сильно расходятся. Избыточно или полезно -- решать вам.
https://fateev.pro/ru/gamedev/independent-ui-layer.html
В статье описана интересная точка зрения на современный ООП.
Точнее, рассматриваются концепты ООП современных языков через призму оригинального видения, предложенного Аланом Кейем в далеком 1966 году.
Основная мысль такова, что Алан видел ООП как общение объектов посредством сообщений, то есть максимально несвязно.
Я часто натыкался в проектах на чрезмерную связность кода. Заменив вызовы многих подсистем, на посылку события/сообщения в EventBus, код многократно упрощается. Нет необходимости прокидывать пачки зависимостей. Кому надо -- тот подпишется и услышит сообщение.
Событийно-ориентированные системы обычно получаются значительно гибче, легче рефакторятся и тестируются. Тем не менее, в них есть и минус: бывают сложности при отладке.
P.S. Не обращайте внимание, что статья в JS разделе. Там тоже иногда попадаются дельные вещи 🙂
https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f
#architecture #OOP
Точнее, рассматриваются концепты ООП современных языков через призму оригинального видения, предложенного Аланом Кейем в далеком 1966 году.
Основная мысль такова, что Алан видел ООП как общение объектов посредством сообщений, то есть максимально несвязно.
Я часто натыкался в проектах на чрезмерную связность кода. Заменив вызовы многих подсистем, на посылку события/сообщения в EventBus, код многократно упрощается. Нет необходимости прокидывать пачки зависимостей. Кому надо -- тот подпишется и услышит сообщение.
Событийно-ориентированные системы обычно получаются значительно гибче, легче рефакторятся и тестируются. Тем не менее, в них есть и минус: бывают сложности при отладке.
P.S. Не обращайте внимание, что статья в JS разделе. Там тоже иногда попадаются дельные вещи 🙂
https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f
#architecture #OOP
Medium
The Forgotten History of OOP
Most of the programming paradigms we use today were first explored mathematically in the 1930s with lambda calculus and the Turing machine…
Помните я писал про Entity Component System t.me/gamedev_architecture/97 ?
Тем, кому интересна эта тема, может понравиться молодой канал, посвященный исключительно ECS: @ecscomrade .
P.S. Ко мне часто обращаются по поводу рекламы. Рекламу не по теме я не размещаю в принципе, как вы уже могли заметить. Но тематическим проектам/статьям/авторам я всегда рад.
Тем, кому интересна эта тема, может понравиться молодой канал, посвященный исключительно ECS: @ecscomrade .
P.S. Ко мне часто обращаются по поводу рекламы. Рекламу не по теме я не размещаю в принципе, как вы уже могли заметить. Но тематическим проектам/статьям/авторам я всегда рад.
Знаю, что далеко не все в геймдеве практикуют найм дужнов. Но если вы все же так делаете, то пожалуйста, заботьтесь о тех, за кого вы в ответе 🙏🏻
https://fateev.pro/ru/programming/are-you-growing-your-juniors-right.html
https://fateev.pro/ru/programming/are-you-growing-your-juniors-right.html
Fateev.pro
Правильно ли вы растите своих джунов?
У меня есть ученик. В начале его пути я помогал ему постичь наше ремесло, потом он попал в одну крупную компанию. Что с ним там сделали, вы не поверите…