CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7
1.
2. Разработка игр для Windows Phone 7 Дмитрий Сошников Координатор академических программ Майкрософт Россия DT210 интерактивное представление dmitryso@microsoft.com; twitter: @shwars
3. Содержание Мы напишем простую 2D-игру «Морской бой» менее, чем за 30 мин Посмотрим другие примеры игр Также вы узнаете Разработка для WP7: Silverlight vs. XNA XNA – не только для игр! Концепция 3 экранов и разработка под 3 экрана Управление телефоном: multitouchи жесты Облачные игры: XBox Live
9. Выбор платформы Современные приложения, управляемые событ-ми. Быстрое создание богатых графических приложений HTML/Javascript Устоявшаяся, надёжная, популярная технология Высокопроизводительная игровая платформа Быстрое создание многоэкранных 2D и 3D игр Богатая content pipeline Устоявшаяся технология для Xbox, Windows, и Zune/WP7 Игры(и приложения) Приложения (и игры)
10. Самая главная мысль на сегодня! Программная модель XNA основана на игровом цикле, а не на событиях!
11. Игровой цикл public void LoadContent(…) { … } public void Update(…) { … } public void Draw(…) { … } LoadContent Update Draw
12. Что нужно, чтобы пробовать? Windows Phone Developer Tools Visual Studio 2010 Express for Windows Phone Интеграция с VS 2010 Pro Видеокарта с DirectX 10 Windows Phone 7 – не обязателен!
15. Архитектура XNA Content Code Components XACT XINPUT XContent Direct3D Graphics Audio Input Math Storage Application Model Content Pipeline Starter Kits Games Extended Framework Core Framework Platform
16. Обработка ввода Состояние и опрос вместо событий Кросс-платформенное API Xbox 360 Controllers (Xbox/Windows) Keyboard (Xbox/Windows/Windows Phone 7) Touch Input Handling vartouchCollection= TouchPanel.GetState(); //... foreach(vartouchLocationintouchCollection) { if(touchLocation.State == TouchLocationState.Released) { //... } } Touch API Для совместимости есть на всех платформах(не нужно #ifdef) На Windows Phone 7 и Windows поддерживает Multipoint Учитывает ориентацию и разрешение
18. Масштабирование / ориентация Пишем игру без учёта нативного разрешения и ориентации экрана Автоматический поворот между портретным и ландшафтным режимамиTouch API автоматически поддерживает изменение ориентации Масштабирование для поднятия производительности Компромисс между производительностью и четкостью800x480 = 384,000 пикселей, 480x320 = 153,600 пикселей Масштибирование в обе стороны к нативному разрешению Много лучше, чем билинейная фильтрацияПростой перенос игр с других платформ Поворот / масштабирование на аппаратном уровне!
20. Audio Capture Example Звук publicvoidEventDrivenCapture() { mic= Microphone.Default; buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)]; mic.BufferReady += newEventHandler(OnBufferReady); DynamicPlayback = newDynamicSoundEffectInstance(mic.SampleRate, AudioChannels.Mono); } publicvoidOnBufferReady(object sender, EventArgsargs) { // Get the latest captured audio. int duration = mic.GetData(buffer); // Do some post-capture processing and playback. MakeMeSoundLikeARobot(buffer, duration); DynamicPlayback.SubmitBuffer(buffer); } Захват и воспроизведение Простой API для проигрывания WAV Изменить pitch, volume, pan Синтез/буферизация аудио Сериализация захваченных данных Контроль над типами System.Mediaв Windows Phone 7 Audio Playback Example // Load a sound effect from a raw stream SoundEffecteffect1 = SoundEffect.FromStream(GetStreamFromTheWeb("http://url.wav")); effect1.Play(); // Create dynamic audio on the fly byte[] fluteSound = GetFluteNote(); effect2 = newSoundEffect(fluteSound, SampleRate, AudioChannels.Stereo); SoundEffectInstanceinstance = effect2.CreateInstance(); instance.Pan = -1; instance.Pitch = 1.5f; instance.Play(); Microphone/Bluetooth Support Воспроизведение на наушниках Ввод с микрофона
21. Музыка/фото/видео URI Song Playback Example Поиск и воспроизв.музыки // Constructs a song from a URI UrimediaStreamUri = newUri("http://song.asx"); SongstreamedSong = Song.FromUri("Song", mediaStreamUri); // Play the song MediaPlayer.Play(streamedSong); Автоматическое управление списком медиа в игре Можно воспроизводить по URI/URL Picture Enumeration and Playback Поддержка выбора.публикации фотографий Retrieve Image Data MediaLibrarymedia =newMediaLibrary(); // Get the JPEG image data StreammyJpegImage = ReadAndModifyPicture(somePicture); // Save texture to Media Library media.SavePicture("Awesome", myJpegImage); Воспроизведение видео Поддержка Video Player API Показать или убрать элементы управления
22. Компонентизация игры Контент Выделение в отдельный проект Разделение по директориям Код Выделение классов под объекты игры GameComponent / DrawableGameComponent Game State Management Хорошие ресурсы: http://create.msdn.com/en-US/education/roadmap Offline Windows Phone 7 Training Kit
24. Графика Эволюция существующего immediate mode rendering API Простое управление ресурсами и состоянием рендеринга Возможности меняются для“Reach”/“HiDef” profiles 2D и 3D примитивы
28. Основные жесты WP7 Tap Double Tap Pan FreeDrag | Horizontal Drag | Vertical Drag Drag -> DragComplete Flick (всегда после Pan) Hold Pinch / Stretch Pinch -> PinchComplete
30. Производительность Оптимизация загрузки контента Уменьшение размера Загрузка в правильное время Оптимизация работы с памятью Больше Value Types Вызов GC.Collect() Простные структуры < 1Mb Работа в меньшем разрешении + автомасштабирование Tombstoning
36. Игры на управляемом коде? Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Разработаны с требованием производителности Опробованный успех на игровых сценариях В будущее WP7 – с управляемым кодом! Нет лишней сборки мусора 3+ года профилирования и оптимизации Эффективная работа на WP7 Оптимизированные мат.библиотеки Более 800.NET-игр на XBLA / XBIG API с переходом на нативный код
43. Content Pipeline Упрощает использование контента! Управляем содержимым прямо в Visual Studio Импортеры для основных игровых форматов Оптимизация в двоичный формат для эфф.загрузки Полностью расширяемая Не требуется XNA Framework/Game Loop В XNA 4.0 – внешние контентные проекты
45. Разработка под 3 экрана XNA Framework разрабатывалась кросс-платформенной Меньшее время разработки -большее кол-во клиентов Синхронизация проектовмежду платформами
46. Профили оборудования Баланс между переносимостью и богатством возможностей. Совместимость между экранами / устройствами Включая Windows Phone 7 Reach Лучшие возможности платформы Только Xbox 360/Windows HiDef
47. Что нового в XNA 4.0 Улучшенная поддержка звука Разработка для Windows Phone 7 Упрощенный API работы с графикой Интеграция с Visual Studio 2010 Новые конфи-гурируемые эффекты
48. Ресурсы для изучения Windows Phone 7 на MSDN по-русски http://msdn.microsoft.com/ru-ru/windowsphone/default.aspx Windows Phone 7 Training Kit по-русски https://rusdpe.blob.core.windows.net/downloads/RusWP7TrainingKit.zip Одна ссылка: http://create.msdn.com Windows Phone 7 Training Course XNA Unit: http://msdn.microsoft.com/en-us/wp7trainingcourse_wp7xna_unit Сообщество: http://xnadev.ru Книга Чарльза Петцольда Programming Windows Phone 7: http://download.microsoft.com/download/5/0/A/50A39509-D015-410F-A8F2-A5511E5A988D/Microsoft_Press_ebook_Programming_Windows_Phone_7_PDF.pdf
49. Выбираем Silverlight Графика Много элементов управления Векторная графика в XAML Мультимедиа Богатая поддержка в приложении Инструментарий Используем Microsoft Blend в процессе разработки
50. Выбираем XNA Графика 3D-графика 2D-приложения с активным использованием спрайтов Моделирование/отрисовка Если предпочтительна циклическая модель приложения Инструментарий Используем графические форматы, поддерживаемые XNA Framework Content Pipeline
51. Интеграция Silverlight/XNA XNA Framework Game Loop работает поверх Silverlight Application object на Windows Phone 7 Существуют API для интеграции Часть XNA Framework доступна из Silverlight-приложений Включая игровые сервисы (Xbox LIVE) На текущий момент интеграция не полная Сцены с GraphicsDeviceв XNA Framework и UIElementsиз Silverlight Надо выбирать подходящую технологию для вашего сценария
53. Выводы Производительная Windows Phone 7 – это мощная игровая платформа Управляемый код обеспечивает производительные игры Продуктивная Отличные знакомые инструменты для разработки (Visual Stuio) Можно сконцентрироваться на логике/контенте Переносимая Поддержка трех экранов в едином проекте Фокусируемся на игре, а не на технологиях
54. Обратная связь Ваше мнение очень важно для нас. Пожалуйста, оцените доклад, заполните анкету и сдайте ее при выходе из зала Спасибо!
55. Вопросы DT210 Дмитрий Сошников Координатор академических программ dmitryso@microsoft.com http://blogs.msdn.com/sos http://twitter.com/shwars Вы сможете задать вопросы докладчику в зоне «Спроси эксперта» в течение получаса после завершения этого доклада
56.
57. Все курсы, учебные центры и центры тестирования: www.microsoft.com/rus/learning40 57 % % Доказательство № 75 Доказательство № 119 рекрутеров считают сертификацию сотрудников одним из критериев для повышения в должности сертифицированных специалистов считают, что сертификация помогла им получить работу или повышение
58. Специальные предложения Сертификационный пакет со вторым шансом Пакеты экзаменационных ваучеров со скидкой от 15 до 20% и бесплатной пересдачей («вторым шансом»). Все экзамены сдаются одним человеком. Сэкономьте 15% на сертификации вашей ИТ-команды Пакет из 10-и экзаменационных ваучеров со скидкой 15% для сотрудников ИТ-отдела. «Второй шанс» включен. Ваучеры можно произвольно распределять между сотрудниками. Microsoft Certified Career Conference Первая 24-часовая глобальная виртуальная конференция с 18 ноября с 15.00 (моск. время) по 19 ноября 2010 г. Сессии по технологиям и построению карьеры Скидка 50% для сертифицированных специалистов Microsoft и студентов Бесплатная подписка на TechNet для слушателей официальных курсов Некоторые курсы по SharePoint, Windows 7; WindowsServer 2008; SQL Server 2008 Детали: www.microsoft.com/rus/learning С 22 ноября 2010 г. – подписка TechNet бесплатно для слушателей курсов. Количество ограничено!
What’s new in XNA4 MSDN Docshttp://msdn.microsoft.com/en-us/library/bb417503.aspx
What’s new in XNA4 MSDN Docshttp://msdn.microsoft.com/en-us/library/bb417503.aspx
Очевидно, что в рамках одного доклада осветить детально все аспекты данной темы не представляется возможным, поэтому мы приглашаем вас посетить официальные курсы Microsoft, которые созданы при участии разработчиков продуктов. Их можно пройти у наших партнеров-учебных центров, полный список которых есть на веб-сайте.Курсы в авторизованных учебных центрах проводятся под руководством сертифицированных тренеров (Microsoft CertifiedTrainer, MCT) и получить как теоретические знания, так и реальный опыт работы с программным продуктом, т.к. каждая тема курса сопровождается лабораторной (практической) работой. Освоение одного учебного курса занимает в основном от трех до пяти дней - в зависимости от его глубины и сложности. Всего в России доступно более 300 официальных аудиторных курсов Microsoft, из которых вы сможете выбрать именно то, что вам требуется. (Если вы являетесь IT-менеджером и готовы провести обучение группы, то вы сможете также договориться с учебным центром о кастомизации курса под ваши потребности или о выездном обучении.) Помимо официальных курсов, Майкрософт предлагает систему оценки знаний в области ИТ и разработки с помощью сертификационного тестирования специалистов. По результатам успешного прохождения одного или нескольких сертификационных экзаменов присваивается тот или иной сертификационный статус Microsoft. Такой статус является «визитной карточкой» IT-профессионалов по всему миру, подтверждая их знания конкретной технологической области и умение эффективно справляться со своими должностными обязанностями. Для работодателей наличие у специалиста сертификационного статуса является одним из важных показателей его навыков и знаний в области ИТ. Согласно исследованию IDC, 40% сертифицированных специалистов считают, что сертификация помогла им получить работу или повышение. Исследование IDC также показало, что эффективность команды растет, если в ней есть сертифицированные специалисты (это отмечают 75% менеджеров). Это происходит потому, что с одной стороны, такие специалисты обладают соответствующим багажом знаний, а с другой стороны – у них есть общая система подходов к решению задач, что облегчает взаимодействие в команде. Поэтому получение сертификационного статуса будет большим плюсом для вас.Microsoft предлагает гибкую систему сертификаций - от базового статуса («Специалист») до основного («Профессионал») и элитного «Мастер» и «Архитектор»). Подробности – на веб-сайте.Найти нужный вам учебный курс, учебный центр или центр тестирования можно на веб-сайте www.microsoft.com/rus/learning в новой удобной системе Поиска курсов и центров.<Только на случай вопросов о языке курсов:> Часть учебников переведена на русский язык, хотя бОльшая часть – на английском языке. Тем не менее, даже если учебник на англ. языке, курс ведется русскоговорящим тренером, и зачастую наиболее важная информация (инструкции к лабораторным или саммари курсов) переводится учебными центрами на русский язык и раздается слушателям. <Только на случай вопросов о стоимости обучения на таких курсах:> Стоимость обучения может отличаться в разных учебных центрах, и зависит от многих факторов. В среднем, один человеко-день обучения стоит около 4-5 тыс. рублей, что для обучения такого высокого качества является вполне оправданным (особенно если сравнить со стоимостью официальных курсов некоторых других вендоров). Но, как я уже сказал(а), точную информацию о стоимости нужно получать в конкретном учебном центре. <По всем остальным вопросам:> Ознакомьтесь с информацией на веб-сайте www.microsoft.com/rus/learning. Кроме того, у вас есть прекрасная возможность подойти сегодня на стенды учебных центров или в зоны сертификационного тестирования, или неофициального шуточного тестирования здесь на мероприятии – и выяснить все детали.
Обратите внимание на специальные предложения в области обучения и сертификации. Спецпредложение для ИТ-специалистов и разработчиков: Идеальное предложение для тех, кто хотел бы получить более продвинутый сертификационный статус (например, MCITP), для получения которого требуется сдать от 2-х до 4-х сертификационных экзаменов. Скидки от 15% до 20% на пакет из нескольких экзаменов (2-3 экзамена – скидка 15%;4-5 экзаменов - скидка 20%). «Второй шанс» включен в пакет (т.е. в случае неудачи при сдаче любого экзамена из пакета вы можете пересдать его бесплатно). Сдавать экзамены из пакета может только один человек (тот, кто приобрел пакет). Узнайте больше о преимуществах, которые сертификация дает специалистам, и деталях этого предложения на веб-сайте.Спецпредложение для ИТ-менеджеров: Сертификация – идеальный способ проверить знания вашего ИТ-персонала или мотивировать на изучение новых технологий. ИТ-менеджеры могут приобрести пакет из 10 экзаменационных ваучеров со скидкой 15% для сотрудников ИТ-отдела. В пакет включена попытка бесплатной пересдачи экзамена в случае неудачной первой попытки («Второй шанс»). В отличие от первого спец.предложения, коды ваучеров можно произвольным образом распределить между разными сотрудниками ИТ-отдела. Мы рекомендуем вам подробнее познакомиться с преимуществами сертификации ИТ-сотрудников для организации и с этим спец.предложением на нашемсайте. Оба предложения ограничены по сроку действия – до 30 июня 2011 года. (Но в первом случае к этому сроку нужно сдать (и если понадобится – пересдать) все экзамены. Так что не откладывайте на завтра.)Глобальная конференция, посвященная вопросам карьеры в области ИТ (Microsoft Career Conference). Эта уникальная конференция проводится впервые. 24 часа сессий nonstop по всему миру (с 18 ноября). Технические треки, сессии по построению карьеры, возможность общения с коллегами и работодателями всего мира. Участие в конференции стоит 55$, для сертифицированных специалистов и студентов - скидка 50%. Зарегистрированные участники смогут также зайти и после окончания конференции (в течение 3-х месяцев) и прослушать любые сессии в записи. Детали – на веб-сайте Microsoft Learning. Бесплатная подписка на TechNet для слушателей официальных курсов.С конца ноября, т.е. буквально через неделю, Microsoft также запустит новое спец.предложение, в рамках которого слушатели некоторых официальных курсов Майкрософт смогут получить бесплатно годовую подписку на TechNet. Список курсов, для слушателей которых действует предложение, – на веб-сайте Microsoft Learning. <По всем вопросам:> Ознакомьтесь с информацией на веб-сайте www.microsoft.com/rus/learning. Кроме того, у вас есть прекрасная возможность подойти сегодня на стенды учебных центров или в зоны сертификационного тестирования и неофициального шуточного тестирования здесь на мероприятии – и выяснить все детали по обучению и сертификации.