1 / 54

Разработка игр для Windows Phone 7

Разработка игр для Windows Phone 7. и нтерактивное представление. Дмитрий Сошников. Координатор академических программ. Майкрософт Россия. DT210. dmitryso@microsoft.com ; twitter: @ shwars. Содержание . Мы напишем простую 2D- игру «Морской бой» менее, чем за 30 мин

lorand
Download Presentation

Разработка игр для Windows Phone 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Разработка игр для Windows Phone 7 интерактивное представление Дмитрий Сошников Координатор академических программ Майкрософт Россия DT210 dmitryso@microsoft.com; twitter: @shwars

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

  3. Любите ли вы играть?

  4. Телефон как платформа для игр

  5. Концепция трёх экранов

  6. Разработка под 3 экрана XNA Game Studio XNA Framework

  7. Выбор платформы Silverlight XNA

  8. Выбор платформы • Современные приложения, управляемые событ-ми. • Быстрое создание богатых графических приложений • HTML/Javascript • Устоявшаяся, надёжная, популярная технология • Высокопроизводительная игровая платформа • Быстрое создание многоэкранных 2D и 3D игр • Богатая content pipeline • Устоявшаяся технология для Xbox, Windows, и Zune/WP7 Приложения (и игры) Игры(и приложения)

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

  10. Игровой цикл • public void LoadContent(…) • { • … • } • public void Update(…) • { • … • } • public void Draw(…) • { • … • } LoadContent Update Draw

  11. Что нужно, чтобы пробовать? • Windows Phone Developer Tools • Visual Studio 2010 Express for Windows Phone • Интеграция с VS 2010 Pro • Видеокарта с DirectX 10 • Windows Phone 7 – не обязателен!

  12. Игровой цикл Демонстрация

  13. Разработка под 3 экрана XNA Game Studio XNA Framework

  14. Content Code Components Storage Math Input Audio Graphics XContent Starter Kits Content Pipeline XINPUT XACT Direct3D Application Model Архитектура XNA Games Extended Framework Core Framework Platform

  15. Обработка ввода Состояние и опрос вместо событий Кросс-платформенное 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 Учитывает ориентацию и разрешение

  16. Работа с устройствами ввода Демонстрация

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

  18. Работа с ориентацией Демонстрация

  19. 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 Воспроизведение на наушниках Ввод с микрофона

  20. Музыка/фото/видео 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 Показать или убрать элементы управления

  21. Компонентизация игры • Контент • Выделение в отдельный проект • Разделение по директориям • Код • Выделение классов под объекты игры • GameComponent / DrawableGameComponent • Game State Management • Хорошие ресурсы: • http://create.msdn.com/en-US/education/roadmap • Offline Windows Phone 7 Training Kit

  22. Catapult Wars Sample Демонстрация

  23. Графика Эволюция существующего immediate mode rendering API Простое управление ресурсами и состоянием рендеринга Возможности меняются для“Reach”/“HiDef” profiles 2D и 3D примитивы

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

  25. Эффекты BasicEffect SkinnedEffect Доступны на всех платформах EnvironmentMapEffect DualTextureEffect Custom effects (шейдеры) недоступны на Windows Phone 7 AlphaTestEffect

  26. 3D-графикаи работа с жестами Демонстрация

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

  28. Законченная игра + работа с акселерометром Демонстрация

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

  30. Построение множества Мандельброта (Ч.Петцольд) Демонстрация

  31. Engines http://farseerphysics.codeplex.com/ http://helium.codeplex.com/

  32. Powerful Productive Portable

  33. Производительная Продуктивная Переносимая

  34. Производительная

  35. Игры на управляемом коде? Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Разработаны с требованием производителности Опробованный успех на игровых сценариях В будущее WP7 – с управляемым кодом! Нет лишней сборки мусора 3+ года профилирования и оптимизации Эффективная работа на WP7 Оптимизированные мат.библиотеки Более 800.NET-игр на XBLA / XBIG API с переходом на нативный код

  36. Продуктивная

  37. Visual Studio – среда разработки • Эффективная разработка с .NET и C# • Знакомая удобная среда разработки • Intellisense • Интегрированная среда build/deploy/debug • MSBuild engine для автоматизации процесса сборки

  38. Content Pipeline Упрощает использование контента! Управляем содержимым прямо в Visual Studio Импортеры для основных игровых форматов Оптимизация в двоичный формат для эфф.загрузки Полностью расширяемая Не требуется XNA Framework/Game Loop В XNA 4.0 – внешние контентные проекты

  39. Переносимая

  40. Разработка под 3 экрана XNA Framework разрабатывалась кросс-платформенной Меньшее время разработки -большее кол-во клиентов Синхронизация проектовмежду платформами

  41. Профили оборудования Баланс между переносимостью и богатством возможностей. Совместимость между экранами / устройствами Включая Windows Phone 7 Reach Лучшие возможности платформы Только Xbox 360/Windows HiDef

  42. Что нового в XNA 4.0 Улучшенная поддержка звука Разработка для Windows Phone 7 Упрощенный API работы с графикой Интеграция с Visual Studio 2010 Новые конфи-гурируемые эффекты

  43. Ресурсы для изучения • 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

  44. Выбираем Silverlight Графика Много элементов управления Векторная графика в XAML Мультимедиа Богатая поддержка в приложении Инструментарий Используем Microsoft Blend в процессе разработки

  45. Выбираем XNA Графика 3D-графика 2D-приложения с активным использованием спрайтов Моделирование/отрисовка Если предпочтительна циклическая модель приложения Инструментарий Используем графические форматы, поддерживаемые XNA Framework Content Pipeline

  46. Интеграция Silverlight/XNA XNA Framework Game Loop работает поверх Silverlight Application object на Windows Phone 7 Существуют API для интеграции Часть XNA Framework доступна из Silverlight-приложений Включая игровые сервисы (Xbox LIVE) На текущий момент интеграция не полная Сцены с GraphicsDeviceв XNA Framework и UIElementsиз Silverlight Надо выбирать подходящую технологию для вашего сценария

  47. Дальнейшие шаги Скачать 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

  48. Выводы Производительная Windows Phone 7 – это мощная игровая платформа Управляемый код обеспечивает производительные игры Продуктивная Отличные знакомые инструменты для разработки (Visual Stuio) Можно сконцентрироваться на логике/контенте Переносимая Поддержка трех экранов в едином проекте Фокусируемся на игре, а не на технологиях

  49. Обратная связь Ваше мнение очень важно для нас. Пожалуйста, оцените доклад, заполните анкету и сдайте ее при выходе из зала Спасибо!

More Related