Разработка игр для Windows Phone 7 интерактивное представление Дмитрий Сошников академический евангелист twitter.com/shwars 5 сентября 2011 г.

Презентация:



Advertisements
Похожие презентации
Дмитрий Сошников Координатор академических программ Майкрософт Россия DT210
Advertisements

Язык программирования C# Дмитрий Сошников
Microsoft Student Partner, User Group Lead НАСЫЩЕННЫЕ ПРИЛОЖЕНИЯ Интерактивные возможности Silverlight и XNA ЕДИНАЯ ПЛАТФОРМА РАЗРАБОТКИ Инструменты.
Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
Клиентские технологии Silverlight 3, Internet Explorer 8 Гайдар Магдануров t: e:
Веб-технологии и современные средства разработки УЦ ВГТУ & SoftLine Academy.
Microsoft TechDays Виталий Дильмухаметов Oogway software.
Microsoft TechDays Роман Здебский Microsoft
Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Языки программирования Дмитрий Сошников
Применение технологии виртуальных миров при построении интерактивных обучающих систем Самарский государственный аэрокосмический университет имени академика.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Тренинг ASP.NET MVC 3 Гайдар Магдануров Microsoft.
Мультимедийная информационно- справочная система «Магеллан» Команда: Team Magellan Участники: Сердюков Евгений Геннадьевич, Phoenixbk.
Windows Phone 7 Артем Смирнов
Винников Олег.NET Developer. Говорим о… WinRT и.NET Framework for Metro App Жизненный цикл приложения Новшества в интерфейсе Асинхронное программирование.
Краковецкий Александр Software Engineer, Frayman Group Microsoft Regional Director
Разработка контентных приложений для windows phone и windows 8 александр краковецкий devrain solutions Microsoft RD/MVP, Telerik
Платформа Microsoft.NET Кафедра системного программирования С.-Петербургского государственного университета Андрей А.Терехов,
Транксрипт:

Разработка игр для Windows Phone 7 интерактивное представление Дмитрий Сошников академический евангелист twitter.com/shwars 5 сентября 2011 г.

Windows Phone Microsoft confidential. Очень разные игры...

Windows Phone Microsoft confidential.

Очень разные игры...

Windows Phone Microsoft confidential. Содержание Мы напишем простую 2D-игру «Морской бой» менее, чем за 30 мин Посмотрим другие примеры игр Также вы узнаете Что нового в XNA в Mango XNA – не только для игр! Концепция 3 экранов и разработка под 3 экрана Управление телефоном: multitouch и жесты Облачные игры: XBox Live 5

Windows Phone Microsoft confidential. Телефон как платформа для игр

Windows Phone Microsoft confidential. Концепция трёх экранов

Windows Phone Microsoft confidential. Разработка под три экрана 8 XNA Framework.NET Framework.NET Compact Framework XNA Game Studio

Windows Phone Microsoft confidential. Выбор платформы XNA Silverlight HTML5

Windows Phone Microsoft confidential. Самая главная мысль на сегодня! Программная модель XNA основана на игровом цикле, а не на событиях!

Windows Phone Microsoft confidential. Игровой цикл public void LoadContent(…) { … } public void Update(…) { … } public void Draw(…) { … } LoadContent Update Draw

Windows Phone Microsoft confidential. Пишем игру 1. Игровой цикл

Windows Phone Microsoft confidential. Разработка под три экрана 13 XNA Framework.NET Framework.NET Compact Framework XNA Game Studio

Windows Phone Microsoft confidential. Архитектура XNA Direct3D XACT XINPUT XContent Platform GraphicsAudioInputMathStorage Core Framework Application ModelContent Pipeline Extended Framework Starter Kits Code Content Components Games

Windows Phone Microsoft confidential. Пишем игру 2. Ориентация и масштабирование

Windows Phone Microsoft confidential. Масштабирование / ориентация Пишем игру без учёта нативного разрешения и ориентации экрана Масштабирование для поднятия производительности Масштибирование в обе стороны к нативному разрешению Автоматический поворот между портретным и ландшафтным режимами Touch API автоматически поддерживает изменение ориентации Компромисс между производительностью и четкостью 800x480 = 384,000 пикселей, 480x320 = 153,600 пикселей Много лучше, чем билинейная фильтрация Простой перенос игр с других платформ Масштабирование на аппаратном уровне 16

Windows Phone Microsoft confidential. Пишем игру 3. Обработка ввода

Windows Phone Microsoft confidential. Обработка ввода Touch Input Handling Кросс-платформенное API Touch API Xbox 360 Controllers (Xbox/Windows) Keyboard (Xbox/Windows/Windows Phone 7) Для совместимости есть на всех платформах (не нужно #ifdef) На Windows Phone 7 и Windows поддерживает Multipoint Учитывает ориентацию и разрешение var touchCollection = TouchPanel.GetState(); //... foreach (var touchLocation in touchCollection) { if (touchLocation.State == TouchLocationState.Released) { //... } Состояние и опрос вместо событий Кросс-платформенное API Touch API

Windows Phone Microsoft confidential. Пишем игру 4. Звук и музыка

Windows Phone Microsoft confidential. Захват звука public void EventDrivenCapture() { mic = Microphone.Default; buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)]; mic.BufferReady += new EventHandler(OnBufferReady); DynamicPlayback = new DynamicSoundEffectInstance(mic.SampleRate, AudioChannels.Mono); } public void OnBufferReady(object sender, EventArgs args) { // 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 Поддержка Bluetooth (захват/воспроизведение) Воспроизведение // Load a sound effect from a raw stream SoundEffect effect1 = SoundEffect.FromStream(GetStreamFromTheWeb(" effect1.Play(); // Create dynamic audio on the fly byte[] fluteSound = GetFluteNote(); effect2 = new SoundEffect(fluteSound, SampleRate, AudioChannels.Stereo); SoundEffectInstance instance = effect2.CreateInstance(); instance.Pan = -1; instance.Pitch = 1.5f; instance.Play(); Звук Захват и воспроизведение

Windows Phone Microsoft confidential. Воспроизведение музыки Выбор изображения // Constructs a song from a URI Uri mediaStreamUri = new Uri(" Song streamedSong = Song.FromUri("Song", mediaStreamUri); // Play the song MediaPlayer.Play(streamedSong); MediaLibrary media = new MediaLibrary(); // Get the JPEG image data Stream myJpegImage = ReadAndModifyPicture(somePicture); // Save texture to Media Library media.SavePicture("Awesome", myJpegImage); Автоматическое управление списком медиа в игре Можно воспроизводить по URI/URL Поддержка выбора.публикации фотографий Поддержка Video Player API Показать или убрать элементы управления Поиск и воспроизведение музыки Перебор и просмотр изображений Воспроизведение видео Музыка/фото/видео

Windows Phone Microsoft confidential. Дальнейшие улучшения Компонентизация игры

Windows Phone Microsoft confidential. Компонентизация игры Контент Выделение в отдельный проект Разделение по директориям Код Выделение классов под объекты игры GameComponent / DrawableGameComponent Game State Management Хорошие ресурсы: US/education/catalog/sample/game_state_management US/education/catalog/sample/game_state_management Catapult Wars Lab us/WP7TrainingCourse_2DGameDevelopmentWithXNALabhttp://msdn.microsoft.com/en- us/WP7TrainingCourse_2DGameDevelopmentWithXNALab

Windows Phone Microsoft confidential. 3D

Windows Phone Microsoft confidential. 3D-графика World Matrix Преобразование модели перед отображением Camera View Matrix Направление обзора Camera Projection Matrix Угол обзора / фокусное расстояние Плоскости отсечения

Windows Phone Microsoft confidential. 3D-графика и работа с жестами

Windows Phone Microsoft confidential. Эффекты Эффекты, доступные на всех платформах BasicEffect SkinnedEffect EnvironmentMapEffect DualTextureEffect AlphaTestEffect

Windows Phone Microsoft confidential. Основные жесты WP7 Tap Double Tap Pan FreeDrag | Horizontal Drag | Vertical Drag Drag -> DragComplete Flick (всегда после Pan) Hold Pinch / Stretch Pinch -> PinchComplete

Windows Phone Microsoft confidential. Законченная игра + работа с акселерометром

Windows Phone Microsoft confidential. Оптимизация и производительност ь

Windows Phone Microsoft confidential. Производительность Нет лишней сборки мусора Аппаратное ускорение графики / масштабирования Оптимизированные библиотеки математики Более 3 лет оптимизации производительности Более 800 игра на XBox Live Arcade / XBox Indie Games XNA – производительная платформа, несмотря на управляемый код! Проверка опытом!

Windows Phone Microsoft confidential. Content Pipeline Управляем содержимым прямо в Visual Studio Импортеры для основных игровых форматов Оптимизация в двоичный формат для эфф.загрузки Полностью расширяемая – возможно создавать свои классы, которые делаю эффективный препроцессинг ресурсов и обрабатывают дальнейшую загрузку (Content.Load ) Внешний контентный проект позволяет использовать единый набор ресурсов для различных игровых платформ перенос части операций на время компиляции

Windows Phone Microsoft confidential. Оптимизация игры Оптимизация загрузки контента Уменьшение размера Загрузка в правильное время Загрузка больших изображений Оптимизация работы с памятью Больше Value Types Вызов GC.Collect() Простные структуры < 1Mb Работа в меньшем разрешении + автомасштабирование Tombstoning

Windows Phone Microsoft confidential. Построение множества Мандельброта (Ч.Петцольд)

Windows Phone Microsoft confidential. Physics Engines

Windows Phone Microsoft confidential. Новое в Mango 36

Windows Phone Microsoft confidential. Что нового в Mango XNA 37 Интеграция XNA и Silverlight Новая модель выполнения и быстрое переключение приложений Motion API Возможность включения Silverlight-интерфейса в игру (необходима явная отрисовка и рендеринг интерфейса в методе Draw) Возможность включения игровой составляющей в Silverlight-проект При наличии достаточных ресурсов, игра не выгружается из памяти при переключении приложений Новые аппаратные возможности, включая гироскоп и компас API позволяет автоматически обрабатывать данные от всех датчиков, получая уточненные данные об ориентации / местоположении

Windows Phone Microsoft confidential. Интеграция SL+XNA и Motion Sensor 38

Windows Phone Microsoft confidential. Motion API vs. Accelerometer Новый API Montion() позволяет получить: Attitude Pitch, Yaw and Roll Rotation rate Direction of Gravity Использует все доступные сенсоры для получения наиболее точных измерений Очень полезен для приложений дополненной реальности и игр Доступен только для Mango 39

Windows Phone Microsoft confidential. Что дальше? 40

Windows Phone Microsoft confidential. Дальнейшие ресурсы для изучения Сегодняшняя игра: Windows Phone 7 Training Kit 2D-игра: us/WP7TrainingCourse_2DGameDevelopmentWithXNALabhttp://msdn.microsoft.com/en- us/WP7TrainingCourse_2DGameDevelopmentWithXNALab 3D-игра: us/WP7TrainingCourse_3DGameDevelopmentWithXNALabhttp://msdn.microsoft.com/en- us/WP7TrainingCourse_3DGameDevelopmentWithXNALab На русском языке для offline: App Hub Jumbstart Tutorial: US/education/tutorial/2dgame/getting_startedhttp://create.msdn.com/en- US/education/tutorial/2dgame/getting_started Чарльз Петзольд. Программируем Windows Phone 7: f f Сообщество xnadev.ru

Windows Phone Microsoft confidential. Windows Phone 7 Student Bootcamp 1 октября 2011 г. в Московском офисе Майкрософт О регистрации будет объявлено дополнительно ( Вход по предъявлению студенческого билета Регистрируйтесь и приходите: с ноутбуками, с идеями, с приложениями Что планируется? Немного лекций Формирование команд и коллективный мозговой штурм идей Консультации с экспертами из Майкрософт Краткая демонстрация проекта и символическое награждение победителя

Разработка игр для Windows Phone 7 интерактивное представление Дмитрий Сошников академический евангелист twitter.com/shwars blogs.msdn.com/sos