SlideShare uma empresa Scribd logo
1 de 54
Разработка игр для Windows Phone 7 Дмитрий Сошников Координатор академических программ Майкрософт Россия DT210 интерактивное представление dmitryso@microsoft.com; twitter: @shwars
Содержание  Мы напишем простую 2D-игру «Морской бой» менее, чем за 30 мин Посмотрим другие примеры игр Также вы узнаете Разработка для WP7: Silverlight vs. XNA XNA – не только для игр! Концепция 3 экранов и разработка под 3 экрана Управление телефоном: multitouchи жесты Облачные игры: XBox Live
Любите ли вы играть?
Телефон как платформа для игр
Концепция трёх экранов
Разработка под 3 экрана XNA Game Studio XNA Framework
Выбор платформы Silverlight XNA
Выбор платформы Современные приложения, управляемые событ-ми. Быстрое создание богатых графических приложений HTML/Javascript Устоявшаяся, надёжная, популярная технология Высокопроизводительная игровая платформа Быстрое создание многоэкранных 2D и 3D игр Богатая content pipeline Устоявшаяся технология для Xbox, Windows, и Zune/WP7 Игры(и приложения) Приложения (и игры)
Самая главная мысль на сегодня! Программная модель XNA основана на игровом цикле, а не на событиях!
Игровой цикл public void LoadContent(…)  {    …  } public void Update(…)  {   …  } public void Draw(…)  {    …  } LoadContent Update Draw
Что нужно, чтобы пробовать? Windows Phone Developer Tools Visual Studio 2010 Express for Windows Phone Интеграция с VS 2010 Pro Видеокарта с DirectX 10 Windows Phone 7 – не обязателен!
Игровой цикл Демонстрация
Разработка под 3 экрана XNA Game Studio XNA Framework
Архитектура 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
Обработка ввода Состояние и опрос вместо событий Кросс-платформенное 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 Учитывает ориентацию и разрешение
Работа с устройствами ввода Демонстрация
Масштабирование / ориентация Пишем игру без учёта нативного разрешения и ориентации экрана Автоматический поворот между портретным и ландшафтным режимамиTouch API автоматически поддерживает изменение ориентации Масштабирование для поднятия производительности Компромисс между производительностью и четкостью800x480 = 384,000 пикселей, 480x320 = 153,600 пикселей Масштибирование в обе стороны к нативному разрешению Много лучше, чем билинейная фильтрацияПростой перенос игр с других платформ Поворот / масштабирование на аппаратном уровне!
Работа с ориентацией Демонстрация
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 Воспроизведение на наушниках Ввод с микрофона
Музыка/фото/видео 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 Показать или убрать элементы управления
Компонентизация игры Контент Выделение в отдельный проект Разделение по директориям Код Выделение классов под объекты игры GameComponent / DrawableGameComponent Game State Management Хорошие ресурсы: http://create.msdn.com/en-US/education/roadmap Offline Windows Phone 7 Training Kit
Catapult Wars Sample Демонстрация
Графика Эволюция существующего immediate mode rendering API Простое управление ресурсами и состоянием рендеринга Возможности меняются для“Reach”/“HiDef” profiles 2D и 3D примитивы
3D-графика World Matrix ,[object Object],Camera View Matrix ,[object Object],Camera Projection Matrix ,[object Object]
Плоскости отсечения,[object Object]
3D-графикаи работа с жестами Демонстрация
Основные жесты WP7 Tap Double Tap Pan FreeDrag | Horizontal Drag | Vertical Drag Drag -> DragComplete Flick (всегда после Pan) Hold Pinch / Stretch Pinch -> PinchComplete
Законченная игра + работа с акселерометром Демонстрация
Производительность Оптимизация загрузки контента Уменьшение размера Загрузка в правильное время Оптимизация работы с памятью Больше Value Types Вызов GC.Collect() Простные структуры < 1Mb Работа в меньшем разрешении + автомасштабирование Tombstoning
Построение множества Мандельброта (Ч.Петцольд) Демонстрация
Engines http://farseerphysics.codeplex.com/ http://helium.codeplex.com/
Powerful Productive Portable
Производительная Продуктивная Переносимая
Производительная
Игры на управляемом коде? Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Разработаны с требованием производителности Опробованный успех на игровых сценариях В будущее WP7 – с управляемым кодом! Нет лишней сборки мусора 3+ года профилирования и оптимизации Эффективная работа на WP7 Оптимизированные мат.библиотеки Более 800.NET-игр на XBLA / XBIG API с переходом на нативный код
Продуктивная
Visual Studio – среда разработки ,[object Object]
Знакомая удобная среда разработки
Intellisense
Интегрированная среда build/deploy/debug
MSBuild engine для автоматизации 	процесса сборки
Content Pipeline Упрощает использование контента! Управляем содержимым прямо в Visual Studio Импортеры для основных игровых форматов Оптимизация в двоичный формат для эфф.загрузки Полностью расширяемая Не требуется XNA Framework/Game Loop В XNA 4.0 – внешние контентные проекты
Переносимая
Разработка под 3 экрана XNA Framework разрабатывалась кросс-платформенной Меньшее время разработки  -большее кол-во клиентов Синхронизация проектовмежду платформами
Профили оборудования Баланс между переносимостью и богатством возможностей. Совместимость между экранами / устройствами Включая Windows Phone 7 Reach Лучшие возможности платформы Только Xbox 360/Windows HiDef
Что нового в XNA 4.0 Улучшенная поддержка звука Разработка для Windows Phone 7 Упрощенный API работы с графикой Интеграция с Visual Studio 2010 Новые конфи-гурируемые эффекты
Ресурсы для изучения 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
Выбираем Silverlight Графика Много элементов управления Векторная графика в XAML  Мультимедиа Богатая поддержка в приложении Инструментарий Используем Microsoft Blend в процессе разработки
Выбираем XNA Графика 3D-графика 2D-приложения с активным использованием спрайтов Моделирование/отрисовка Если предпочтительна циклическая модель приложения Инструментарий Используем графические форматы, поддерживаемые XNA Framework Content Pipeline
Интеграция Silverlight/XNA XNA Framework Game Loop работает поверх Silverlight Application object на Windows Phone 7 Существуют API для интеграции Часть XNA Framework доступна из Silverlight-приложений Включая игровые сервисы (Xbox LIVE) На текущий момент интеграция не полная Сцены с GraphicsDeviceв XNA Framework и UIElementsиз Silverlight Надо выбирать подходящую технологию для вашего сценария
Дальнейшие шаги Скачать Windows Phone Developer Tools http://developer.windowsphone.com  http://creators.xna.com http://channel9.msdn.com/Learn/Courses/ WP7TrainingKit/WP7XNA http://xnadev.ru http://techdays.ru
Выводы Производительная Windows Phone 7 – это мощная игровая платформа Управляемый код обеспечивает производительные игры Продуктивная Отличные знакомые инструменты для разработки (Visual Stuio) Можно сконцентрироваться на логике/контенте Переносимая Поддержка трех экранов в едином проекте Фокусируемся на игре, а не на технологиях
Обратная связь  Ваше мнение очень важно для нас. Пожалуйста, оцените доклад, заполните анкету и сдайте ее при выходе из зала Спасибо!

Mais conteúdo relacionado

Destaque

CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest
 
CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...
CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...
CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...CodeFest
 
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...CodeFest
 
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...CodeFest
 
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...CodeFest
 
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...CodeFest
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest
 
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....CodeFest
 

Destaque (8)

CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
 
CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...
CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...
CodeFest 2011. Сидоров А. — Почему некоторые программисты любят изобретать «в...
 
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
 
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
 
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
 
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
 
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
 

Semelhante a CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7

Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»e-Legion
 
Windows Phone 7 Game Development
Windows Phone 7 Game DevelopmentWindows Phone 7 Game Development
Windows Phone 7 Game DevelopmentSergii Lutai
 
Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all SoftServe
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Эльвина Сакаева
 
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7Sergey Zwezdin
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesWhite Nights Conference
 
Windows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformWindows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformMykhail Galushko
 
Знакомство с Windows Phone
 Знакомство с Windows Phone  Знакомство с Windows Phone
Знакомство с Windows Phone Volha Banadyseva
 
Разработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptРазработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptTatiana Smetanina
 
Интерактивные и динамические цифровые вывески: Новые решения в линейке DMS
Интерактивные и динамические цифровые вывески:Новые решения в линейке DMSИнтерактивные и динамические цифровые вывески:Новые решения в линейке DMS
Интерактивные и динамические цифровые вывески: Новые решения в линейке DMSCisco Russia
 
Windows Phone 7: возможности для бизнеса с новой платформой разработки
Windows Phone 7: возможности для бизнеса с новой платформой разработкиWindows Phone 7: возможности для бизнеса с новой платформой разработки
Windows Phone 7: возможности для бизнеса с новой платформой разработкиMik Chernomordikov
 
Windows Mobile Development with Compact Framework 2
Windows Mobile Development with Compact Framework 2Windows Mobile Development with Compact Framework 2
Windows Mobile Development with Compact Framework 2DarkestMaster
 
Облачные сервисы для конечных пользователей
Облачные сервисы для конечных пользователейОблачные сервисы для конечных пользователей
Облачные сервисы для конечных пользователейActiveCloud
 
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиковСергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиковGeeksLab Odessa
 
Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...Andrew Mayorov
 
Ml and its bright future
Ml and its bright futureMl and its bright future
Ml and its bright futureSergey Melekhin
 
Windows phone 7 series
Windows phone 7 seriesWindows phone 7 series
Windows phone 7 seriesRoman Kalita
 
Windows phone 7 series
Windows phone 7 seriesWindows phone 7 series
Windows phone 7 seriesForger
 
Windows phone 7 series, ppt
Windows phone 7 series, pptWindows phone 7 series, ppt
Windows phone 7 series, pptRoman Kalita
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014it-people
 

Semelhante a CodeFest 2011. Сошников Д. — Разработка игр для Windows Phone 7 (20)

Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»
 
Windows Phone 7 Game Development
Windows Phone 7 Game DevelopmentWindows Phone 7 Game Development
Windows Phone 7 Game Development
 
Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)
 
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Windows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformWindows Phone 8.1 Development Platform
Windows Phone 8.1 Development Platform
 
Знакомство с Windows Phone
 Знакомство с Windows Phone  Знакомство с Windows Phone
Знакомство с Windows Phone
 
Разработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptРазработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScript
 
Интерактивные и динамические цифровые вывески: Новые решения в линейке DMS
Интерактивные и динамические цифровые вывески:Новые решения в линейке DMSИнтерактивные и динамические цифровые вывески:Новые решения в линейке DMS
Интерактивные и динамические цифровые вывески: Новые решения в линейке DMS
 
Windows Phone 7: возможности для бизнеса с новой платформой разработки
Windows Phone 7: возможности для бизнеса с новой платформой разработкиWindows Phone 7: возможности для бизнеса с новой платформой разработки
Windows Phone 7: возможности для бизнеса с новой платформой разработки
 
Windows Mobile Development with Compact Framework 2
Windows Mobile Development with Compact Framework 2Windows Mobile Development with Compact Framework 2
Windows Mobile Development with Compact Framework 2
 
Облачные сервисы для конечных пользователей
Облачные сервисы для конечных пользователейОблачные сервисы для конечных пользователей
Облачные сервисы для конечных пользователей
 
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиковСергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
Сергей Байдачный_Что нового в Windows Phone 8.1 для разработчиков
 
Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...
 
Ml and its bright future
Ml and its bright futureMl and its bright future
Ml and its bright future
 
Windows phone 7 series
Windows phone 7 seriesWindows phone 7 series
Windows phone 7 series
 
Windows phone 7 series
Windows phone 7 seriesWindows phone 7 series
Windows phone 7 series
 
Windows phone 7 series, ppt
Windows phone 7 series, pptWindows phone 7 series, ppt
Windows phone 7 series, ppt
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
 

Mais de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Mais de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

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
  • 4. Любите ли вы играть?
  • 7. Разработка под 3 экрана XNA Game Studio XNA Framework
  • 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 – не обязателен!
  • 14. Разработка под 3 экрана XNA Game Studio XNA Framework
  • 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 Учитывает ориентацию и разрешение
  • 17. Работа с устройствами ввода Демонстрация
  • 18. Масштабирование / ориентация Пишем игру без учёта нативного разрешения и ориентации экрана Автоматический поворот между портретным и ландшафтным режимамиTouch API автоматически поддерживает изменение ориентации Масштабирование для поднятия производительности Компромисс между производительностью и четкостью800x480 = 384,000 пикселей, 480x320 = 153,600 пикселей Масштибирование в обе стороны к нативному разрешению Много лучше, чем билинейная фильтрацияПростой перенос игр с других платформ Поворот / масштабирование на аппаратном уровне!
  • 19. Работа с ориентацией Демонстрация
  • 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
  • 23. Catapult Wars Sample Демонстрация
  • 24. Графика Эволюция существующего immediate mode rendering API Простое управление ресурсами и состоянием рендеринга Возможности меняются для“Reach”/“HiDef” profiles 2D и 3D примитивы
  • 25.
  • 26.
  • 27. 3D-графикаи работа с жестами Демонстрация
  • 28. Основные жесты WP7 Tap Double Tap Pan FreeDrag | Horizontal Drag | Vertical Drag Drag -> DragComplete Flick (всегда после Pan) Hold Pinch / Stretch Pinch -> PinchComplete
  • 29. Законченная игра + работа с акселерометром Демонстрация
  • 30. Производительность Оптимизация загрузки контента Уменьшение размера Загрузка в правильное время Оптимизация работы с памятью Больше Value Types Вызов GC.Collect() Простные структуры < 1Mb Работа в меньшем разрешении + автомасштабирование Tombstoning
  • 31. Построение множества Мандельброта (Ч.Петцольд) Демонстрация
  • 36. Игры на управляемом коде? Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Разработаны с требованием производителности Опробованный успех на игровых сценариях В будущее WP7 – с управляемым кодом! Нет лишней сборки мусора 3+ года профилирования и оптимизации Эффективная работа на WP7 Оптимизированные мат.библиотеки Более 800.NET-игр на XBLA / XBIG API с переходом на нативный код
  • 38.
  • 42. MSBuild engine для автоматизации процесса сборки
  • 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 Надо выбирать подходящую технологию для вашего сценария
  • 52. Дальнейшие шаги Скачать Windows Phone Developer Tools http://developer.windowsphone.com http://creators.xna.com http://channel9.msdn.com/Learn/Courses/ WP7TrainingKit/WP7XNA http://xnadev.ru http://techdays.ru
  • 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 бесплатно для слушателей курсов. Количество ограничено!

Notas do Editor

  1. http://farseerphysics.codeplex.com/http://helium.codeplex.com/http://blogs.msdn.com/b/davrous/archive/2010/07/22/silverlight-4-xna-platformer-level-editor-for-windows-phone-7-overview-1-4.aspx?wa=wsignin1.0
  2. What’s new in XNA4 MSDN Docshttp://msdn.microsoft.com/en-us/library/bb417503.aspx
  3. What’s new in XNA4 MSDN Docshttp://msdn.microsoft.com/en-us/library/bb417503.aspx
  4. Очевидно, что в рамках одного доклада осветить детально все аспекты данной темы не представляется возможным, поэтому мы приглашаем вас посетить официальные курсы Microsoft, которые созданы при участии разработчиков продуктов. Их можно пройти у наших партнеров-учебных центров, полный список которых есть на веб-сайте.Курсы в авторизованных учебных центрах проводятся под руководством сертифицированных тренеров (Microsoft CertifiedTrainer, MCT)  и получить как теоретические знания, так и реальный опыт работы с программным продуктом, т.к. каждая тема курса сопровождается лабораторной (практической) работой. Освоение одного учебного курса занимает в основном от трех до пяти дней - в зависимости от его глубины и сложности. Всего в России доступно более 300 официальных аудиторных курсов Microsoft, из которых вы сможете выбрать именно то, что вам требуется. (Если вы являетесь IT-менеджером и готовы провести обучение группы, то вы сможете также договориться с учебным центром о кастомизации курса под ваши потребности или о выездном обучении.) Помимо официальных курсов, Майкрософт предлагает систему оценки знаний в области ИТ и разработки с помощью сертификационного тестирования специалистов. По результатам успешного прохождения одного или нескольких сертификационных экзаменов присваивается тот или иной сертификационный статус Microsoft. Такой статус является «визитной карточкой» IT-профессионалов по всему миру, подтверждая их знания конкретной технологической области и умение эффективно справляться со своими должностными обязанностями. Для работодателей наличие у специалиста сертификационного статуса является одним из важных показателей его навыков и знаний в области ИТ. Согласно исследованию IDC, 40% сертифицированных специалистов считают, что сертификация помогла им получить работу или повышение. Исследование IDC также показало, что эффективность команды растет, если в ней есть сертифицированные специалисты (это отмечают 75% менеджеров). Это происходит потому, что с одной стороны, такие специалисты обладают соответствующим багажом знаний, а с другой стороны – у них есть общая система подходов к решению задач, что облегчает взаимодействие в команде. Поэтому получение сертификационного статуса будет большим плюсом для вас.Microsoft предлагает гибкую систему сертификаций - от базового статуса («Специалист») до основного («Профессионал») и элитного «Мастер» и «Архитектор»). Подробности – на веб-сайте.Найти нужный вам учебный курс, учебный центр или центр тестирования можно на веб-сайте www.microsoft.com/rus/learning в новой удобной системе Поиска курсов и центров.&lt;Только на случай вопросов о языке курсов:&gt; Часть учебников переведена на русский язык, хотя бОльшая часть – на английском языке. Тем не менее, даже если учебник на англ. языке, курс ведется русскоговорящим тренером, и зачастую наиболее важная информация (инструкции к лабораторным или саммари курсов) переводится учебными центрами на русский язык и раздается слушателям. &lt;Только на случай вопросов о стоимости обучения на таких курсах:&gt; Стоимость обучения может отличаться в разных учебных центрах, и зависит от многих факторов. В среднем, один человеко-день обучения стоит около 4-5 тыс. рублей, что для обучения такого высокого качества является вполне оправданным (особенно если сравнить со стоимостью официальных курсов некоторых других вендоров). Но, как я уже сказал(а), точную информацию о стоимости нужно получать в конкретном учебном центре. &lt;По всем остальным вопросам:&gt; Ознакомьтесь с информацией на веб-сайте www.microsoft.com/rus/learning. Кроме того, у вас есть прекрасная возможность подойти сегодня на стенды учебных центров или в зоны сертификационного тестирования, или неофициального шуточного тестирования здесь на мероприятии – и выяснить все детали.
  5. Обратите внимание на специальные предложения в области обучения и сертификации. Спецпредложение для ИТ-специалистов и разработчиков: Идеальное предложение для тех, кто хотел бы получить более продвинутый сертификационный статус (например, 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. &lt;По всем вопросам:&gt; Ознакомьтесь с информацией на веб-сайте www.microsoft.com/rus/learning. Кроме того, у вас есть прекрасная возможность подойти сегодня на стенды учебных центров или в зоны сертификационного тестирования и неофициального шуточного тестирования здесь на мероприятии – и выяснить все детали по обучению и сертификации.