Microsoft Casual Games

В Arkadium я работал в команде, которая разрабатывала игры для Windows 8 и более новых версий для подразделения Microsoft Casual Games из Xbox Game Studios.
Когда я присоединился, основные продукты уже были созданы и выпущены. Моей задачей было развивать и стабилизировать игры с огромной аудиторией, а не писать первые версии с нуля. Я разрабатывал функции, исправлял ошибки, анализировал дампы сбоев и улучшал общие технические компоненты нескольких игр.
В линейку входили Microsoft Solitaire Collection, Microsoft Mahjong, Microsoft Jigsaw и другие игры этой экосистемы. Это были знаменитые предустановленные игры Windows, которые миллионы людей знали и узнавали с первого взгляда.
Почему эта работа была важна
Одним из самых ярких впечатлений был масштаб.
Аудитория Microsoft Casual Games была настолько огромной, что по ощущениям намного превосходила активные аудитории Steam, PlayStation, Xbox и других игровых платформ вместе взятых. Microsoft сообщала о 100 миллионах уникальных пользователей Microsoft Solitaire Collection:
Microsoft Solitaire Collection достигла 100 миллионов уникальных пользователей
Работа над ПО с таким охватом была и огромной ответственностью, и поводом для гордости. Эти продукты поставлялись вместе с Windows, поэтому были знакомы почти каждому её пользователю.
Моя роль
Я занимался настольной .NET-разработкой для продуктов с очень большой аудиторией. На практике это включало:
- разработку новых функций
- исправление функциональных ошибок и проблем стабильности
- исследование дампов и сбоев у пользователей
- ускорение запуска и работы приложений
- решение проблем многопоточности
- развитие общего кода и инфраструктуры нескольких игр
- уменьшение размера сборок с учётом ограничений предустановки Windows
Технологии
UWP, C#, .NET Native, TPL, Xbox Services
Основные результаты
- Нашёл и исправил серьёзную утечку памяти в Microsoft Jigsaw, которую несколько разработчиков не могли обнаружить месяцами. У меня на поиск ушло около недели.
- Ускорил запуск Microsoft Mahjong примерно в 5 раз.
- Участвовал во внедрении рекламы и видеорекламы в линейку игр. За это меня вполне можно ругать.
- Исправил множество ошибок многопоточности. Многие удалось найти через анализ дампов, а не простое локальное воспроизведение.
- Участвовал в уменьшении размера сборок, чтобы игры соответствовали строгим требованиям предустановки на носители Windows.
Разработка для огромной аудитории
Работа была очень интересной: продукты такого масштаба ведут себя иначе, чем обычные приложения.
Когда пользователей миллионы, даже небольшой процент превращается в большое абсолютное число. В какой-то момент в списке проблем по сбоям было около 40 000 записей. Значительная часть возникала из-за нестабильных сборок Windows, проблемного оборудования, сломанных драйверов или повторяющихся сигнатур сбоев. Нужно было не только исправлять свой код, но и отделять реальные проблемы продукта от шума платформы.
Это стало одним из самых полезных этапов моего профессионального развития и научило практично подходить к вопросам:
- качества телеметрии
- анализа дампов
- ошибок параллельного выполнения
- скорости запуска
- поведения памяти
- ограничений выпуска в масштабе операционной системы
Что было потом
Неприятной частью этой истории стало то, что моё имя, как и имена многих других участников разработки, позднее удалили из титров игр.
Это произошло после завершения контракта Arkadium и передачи разработки внешним студиям. По распространённой практике игровой индустрии компанию, которая больше не является действующим подрядчиком, убирают из титров.
Тем не менее я горжусь тем, что участвовал в создании настолько известных программ для Windows с необычайно большой аудиторией.
Команда — ещё одна причина, по которой я с теплом вспоминаю тот период. Это были исключительно дружелюбные и очень профессиональные люди. По многим скучаю и надеюсь когда-нибудь снова поработать хотя бы с частью из них.
