SlideShare uma empresa Scribd logo
1 de 47
Разработка игр для Windows Phone 7 Сергей ЛутайDigital Cloud Technologies
Содержание
Технологии Быстрое создание пользовательского интерфейса Событийная модель приложения HTML/Javascript Разработка бизнес приложений Высоко-производительная платформа Быстрое создание многоэкранных2D и 3D игр Широко применяемая платформа: Xbox, Windows, and Zune ИГРЫ(и приложения) ПРИЛОЖЕНИЯ (и игры)
XNA Framework Game Loop и Silverlight Application равноправные технологии Windows Phone 7 Большинство типов XNA можно использовать в Silverlight приложениях Включая Gamer Services (Xbox LIVE) Базовые типы отличаются Сцены используютGraphicsDeviceиз XNA Framework истраницы используют UIElementиз Silverlight Можно выбрать технологию, которая лучше всего подходит для вашего приложения Совместное использование
Графика Готовый набор элементов управления Векторная графика с использованиемXAML  Медиа Мощная поддержка видео контента Инструмент Используем Expression Blend и VS Выбор технологии
Графика Использование2D и 3D графики Имитация/рисование Использование циклов для обновлениясостояния Инструменты Использование XNA Framework Графические типы Content Pipeline Выбор технологии
Мощный Эффективный Доступный
XNA Game Studio Сделайте разработку легче XNA Framework обеспечивает мощный API для игр C#, .NET и Visual Studio Шаблоны проектов для игр XNA - это инфраструктура Игры
XNA Game Studio 4.0 Разработка для Windows Phone7 Улучшена поддержка аудио Упрощенныйграфический API Интеграция с Visual Studio 2010 Новые  конфигура- ционные эффекты
Мощный
Управляемый код для разработки игр Windows Phone 7  .NET платформа .NET/XNA  используется  для игр  сегодня! Платформа управляемого кода XNA Game Studio 4.0 - только C# 800+ игр Windows игры публикуются через порталы
Нацеленность на производительность Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Инфраструктура разработана для производительности XNA Framework разработан для игровых сценариев Платформа будущего.. Исключена лишняя генерация мусора 3+ лет профилированияиразвития Произвольность на Windows Phone 7 Оптимизированы мат. библиотеки Эффективный API взаимодействия с системой нижнего уровня
Эффективный
Visual Studio и .NET Эффективная разработкас .NET иC# ПроизводительнаяIDE Подсказки Встроенная отладка MSBuild
Конвеер контента Упрощает управление контентом! Управление вVisual Studio Импортированиеизвестных игровых форматов Оптимизация данных в двоичный формат для эффективной загрузки Полностью расширяемая XNA Framework/Game Loop необязателен
XNA Framework Упрощает разработку игр
XNA XNA Game Studio XNA Графика Звук Математика Устройства ввода .NET Framework .NET Compact Framework XBox 360 Zune / Windows  Phone 7 Windows
Архитектура XNA Контент Код Компоненты Игры Starter Kits Инфраструктура Модель приложения Ковеер контента Библиотека Graphics Audio Input Math Storage Graphics Платформа XACT XINPUT XContent Direct3D
Базовый класс public class MyGame : Microsoft.Xna.Framework.Game {     protected override void Initialize();     protected override void LoadContent();     protected override void Update(GameTimegameTime);     protected override void Draw(GameTimegameTime); }
XNA Framework игровой цикл Пример protectedoverridevoid Update(GameTimegameTime) {   // Allows the game to exit   if(GamePad.GetState(PlayerIndex.One).Buttons.Back== ButtonState.Pressed) this.Exit();   // TODO: Add your update logic here base.Update(gameTime); } protectedoverridevoid Draw(GameTimegameTime) { GraphicsDevice.Clear(Color.CornflowerBlue);   // TODO: Add your drawing code here base.Draw(gameTime); } Фреймовый цикл Совместимость с предыдущими версиями Увеличена производительность на устройствах Система разработана с учётом лучших практик для Windows Phone 7 Используется существующий концепт XNA Framework
Графика
Развитие существующего API отображения Упрощено управление ресурсами и состояниями Отображение 2D и 3D форм Обзор
Настраиваемые эффекты BasicEffect SkinnedEffect Новые эффекты на всех платформах EnvironmentMapEffect DualTextureEffect Пользовательские эффекты пока не доступны в Windows Phone 7 AlphaTestEffect
Поддержка: масштабированиеиориентация Пишите игры не думая о разрешении и ориентации Автоматическое вращение междуориентациями дисплеяКасание автоматически поддерживается при измененом масштабировании Масштабирование может радикально  увеличить производительность Масштабирование/Вращениевыполняется  на уровне железа
Аудио & Медиа
Пример Аудио publicvoidEventDrivenCapture() { mic = Microphone.Default;     buffer = newbyte[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); } Захват аудиоивоспроизведение Пример // 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
Медиа – Музыка/Фото/Видео Пример Воспроизведение аудио // Constructs a song from a URI UrimediaStreamUri = newUri("http://song.asx"); SongstreamedSong = Song.FromUri("Song", 			mediaStreamUri); // Play the song MediaPlayer.Play(streamedSong); Отображение картинок Пример MediaLibrarymedia =newMediaLibrary(); // Get the JPEG image data StreammyJpegImage = ReadAndModifyPicture(somePicture); // Save texture to Media Library    media.SavePicture("Awesome", myJpegImage); Воспроизведение видео
Ввод касанием Простое взаимодействие с игрой!
Кросс платформенный API тача Xbox 360 джойстики(Xbox/Windows) Клавиатура(Xbox/Windows/Windows Phone 7) Пример vartouchCollection = TouchPanel.GetState(); //... foreach(vartouchLocationintouchCollection) { if(touchLocation.State ==  TouchLocationState.Released)  { //...  } } Touch API Кросс платформенная портируемость Мультитач на Windows Phone 7 и Windows Обзор
Сенсоры Для Silverlight и XNA
Возможности Windows Phone 7 Пример Location Accelerometer Vibration Пример Обзор VibrateControllerrumbler; rumbler.Start(TimeSpan.FromSeconds(2)); Accelerometer accelerometer = new Accelerometer(); accelerometer.ReadingChanged+=    		AccelerometerReadingChanged; accelerometer.Start();
Использование сенсоров… Демо
Xbox Live
Как устроено Windows Phone 7 OS Xbox LIVE HTTP Push Gamer Services Invites Avatars Profile Achieve-ments Leader-boards TrialMode
Профиль Ваша личность в облаке Телефон знает о вашем Windows Live ID Связывание с вашимGamertag
Профиль Пример // Profile access SignedInGamergamer=Gamer.SignedInGamers[0]; // Get the player's GamerTag to display string gamerTag = gamer.Gamertag; // A SignedInGamer has a Profile GamerProfileprofile = gamer.GetProfile(); // Get the player's current GamerScore intgamerScore = profile.GamerScore; // get the gamer picture (PNG file stream) Stream gamerPictureStream = profile.GamerPicture;
Достижения Пример // Award an achievement SignedInGamergamer = Gamer.SignedInGamers[0]; gamer.AwardAchievement("Attended TechEd 2010"); Реальныедостижения Реальныебалы Пример // Get achievements AchievementCollectionachievements = gamer.GetAchievements(); // walk through achievements foreach (Achievement ain achievements) { string name = a.Name; string description = a.Description; boolearned = a.IsEarned; intscore = a.GamerScore; Stream icon = a.Picture;  }
Пример Рейтинг // Create leaderboard identity with game mode 1 LeaderboardIdentityid = LeaderboardIdentity.Create(LeaderboardKey.BestScoreLifeTime, 1); // get the leaderboard writer from the signed in gamer LeaderboardWriterwriter = gamer.LeaderboardWriter; // get the leaderboard entry for the identity LeaderboardEntryentry = writer.GetLeaderboard(id); // write new leaderboard data entry.Rating = 1000; entry.columns.SetValue("Outcome", LeaderboardOutcome.Win); Связывание с друзьями Основанная на балах или       времени Фиксированные данные Пример // Read from leaderboard with page size of 10 LeaderboardReaderreader = LeaderboardReader.Read(id, gamer, 10); foreach (LeaderboardEntry e in reader.Entries) { // score or time, as defined by identity.  Rating determines rank. long rating = e.Rating; // read additional column data long wins = e.Columns.GetValueInt64("Wins"); Stream blob = e.Columns.GetValueStream("Blob"); } reader.PageDown();
Триальный режим Простая проверка Эмуляция игры Возможность купить игру Пример Guide.SimulateTrialMode = true; // if we are in trial mode, show a marketplace offering if (Guide.IsTrialMode) { PlayerIndexplayerIndex = Gamer.SignedInGamers[0].PlayerIndex; Guide.ShowMarketplace(playerIndex); }
Аватары Сейчас поддерживаеться только через веб сервис Загружается как поток
Приглашение в игру Отсылаются через почту Guide.ShowGameInvite() отображает интерфейс приглашения Игрок выбирает в какую игру отсылать приглашение Друзья видят приглашения в своем  игровом хабе.
Доступный
XNA Framework кросс платформенный Тратим меньше времени и получаем больше устройств Синхронизация проектов между платформами Три экрана
Кроссплатформенные игры… Демо
Итог Мощный Управляемый код, работает уже сегодня Windows Phone обеспечивает мощную платформу для игр Эффективный Разработчик сосредотачивается на игре Эффективные инструменты разработки делают нас  более продуктивными Доступный Легко расширяется на другие платформы Позволяет сфокусироваться на игре, не на технологии
Ресурсы Email:  wpgames@microsoft.com On the web: http://developer.windowsphone.com XNA Creators Club @ http://creators.xna.com Team Blog @ http://blogs.msdn.com/xna/ Shawn Hargreaves @ http://blogs.msdn.com/shawnhar/ Сотни примеров Большое сообщество экспертов поможет начать работать с XNA Peer Support @ http://forums.xna.com Blogs Contact Microsoft
Сергей ЛутайРуководитель департамента разработки Silverlight приложенийMVP, MCT, MCPDserhii.lutai@dctua.comhttp://lutay.uneta.com.ua@sergeylutay

Mais conteúdo relacionado

Destaque

Homeschool magazine newest issue
Homeschool magazine newest issueHomeschool magazine newest issue
Homeschool magazine newest issueHomeschool Newslink
 
Kalk 2 a minggu 4b
Kalk 2 a   minggu 4bKalk 2 a   minggu 4b
Kalk 2 a minggu 4bIwan Pranoto
 
A step beyond hd 3 d
A step beyond hd 3 dA step beyond hd 3 d
A step beyond hd 3 dMSB
 
FPAW 2012 BID - Italy
FPAW 2012 BID - ItalyFPAW 2012 BID - Italy
FPAW 2012 BID - Italyclaudiocigna
 
Kalkulus 2 minggu 7
Kalkulus 2   minggu 7Kalkulus 2   minggu 7
Kalkulus 2 minggu 7Iwan Pranoto
 
20分でSymfony@OSC名古屋
20分でSymfony@OSC名古屋20分でSymfony@OSC名古屋
20分でSymfony@OSC名古屋Shingo Nakamura
 
Kalkulus 2A – minggu 9B
Kalkulus 2A – minggu 9BKalkulus 2A – minggu 9B
Kalkulus 2A – minggu 9BIwan Pranoto
 
Kalkulus 2A Minggu 12
Kalkulus 2A   Minggu 12Kalkulus 2A   Minggu 12
Kalkulus 2A Minggu 12Iwan Pranoto
 
Kalkulus 1A – Minggu 3
Kalkulus 1A – Minggu 3Kalkulus 1A – Minggu 3
Kalkulus 1A – Minggu 3Iwan Pranoto
 
Kalkulus 2 minggu 4
Kalkulus 2   minggu 4Kalkulus 2   minggu 4
Kalkulus 2 minggu 4Iwan Pranoto
 
Kalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6AKalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6AIwan Pranoto
 
Matematika 1A minggu 1 (2013-2014)
Matematika 1A  minggu 1 (2013-2014)Matematika 1A  minggu 1 (2013-2014)
Matematika 1A minggu 1 (2013-2014)Iwan Pranoto
 
Progress Report Delta Api
Progress Report Delta ApiProgress Report Delta Api
Progress Report Delta ApiAlone
 
Matek 1 - Minggu 7
Matek 1 - Minggu 7Matek 1 - Minggu 7
Matek 1 - Minggu 7Iwan Pranoto
 
Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...
Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...
Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...Iwan Pranoto
 
Kalkulus 2A – minggu 8A
Kalkulus 2A – minggu 8AKalkulus 2A – minggu 8A
Kalkulus 2A – minggu 8AIwan Pranoto
 

Destaque (20)

Homeschool magazine newest issue
Homeschool magazine newest issueHomeschool magazine newest issue
Homeschool magazine newest issue
 
Kalk 2 a minggu 4b
Kalk 2 a   minggu 4bKalk 2 a   minggu 4b
Kalk 2 a minggu 4b
 
A step beyond hd 3 d
A step beyond hd 3 dA step beyond hd 3 d
A step beyond hd 3 d
 
FPAW 2012 BID - Italy
FPAW 2012 BID - ItalyFPAW 2012 BID - Italy
FPAW 2012 BID - Italy
 
Kalkulus 2 minggu 7
Kalkulus 2   minggu 7Kalkulus 2   minggu 7
Kalkulus 2 minggu 7
 
20分でSymfony@OSC名古屋
20分でSymfony@OSC名古屋20分でSymfony@OSC名古屋
20分でSymfony@OSC名古屋
 
Kalkulus 2A – minggu 9B
Kalkulus 2A – minggu 9BKalkulus 2A – minggu 9B
Kalkulus 2A – minggu 9B
 
Anuj Resume
Anuj ResumeAnuj Resume
Anuj Resume
 
Anuj resume
Anuj resumeAnuj resume
Anuj resume
 
NCA research on consumers and switching
NCA research on consumers and switchingNCA research on consumers and switching
NCA research on consumers and switching
 
Kalkulus 2A Minggu 12
Kalkulus 2A   Minggu 12Kalkulus 2A   Minggu 12
Kalkulus 2A Minggu 12
 
Kalkulus 1A – Minggu 3
Kalkulus 1A – Minggu 3Kalkulus 1A – Minggu 3
Kalkulus 1A – Minggu 3
 
Kalkulus 2 minggu 4
Kalkulus 2   minggu 4Kalkulus 2   minggu 4
Kalkulus 2 minggu 4
 
Kalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6AKalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6A
 
Matematika 1A minggu 1 (2013-2014)
Matematika 1A  minggu 1 (2013-2014)Matematika 1A  minggu 1 (2013-2014)
Matematika 1A minggu 1 (2013-2014)
 
Progress Report Delta Api
Progress Report Delta ApiProgress Report Delta Api
Progress Report Delta Api
 
Week 7
Week 7Week 7
Week 7
 
Matek 1 - Minggu 7
Matek 1 - Minggu 7Matek 1 - Minggu 7
Matek 1 - Minggu 7
 
Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...
Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...
Mengukur Kecakapan Mematematikakan dan Menafsirkan sebagai Kecakapan Utama di...
 
Kalkulus 2A – minggu 8A
Kalkulus 2A – minggu 8AKalkulus 2A – minggu 8A
Kalkulus 2A – minggu 8A
 

Semelhante a Windows Phone 7 Game Development

Windows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformWindows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformMykhail Galushko
 
Разработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на ScaleformРазработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на ScaleformDmitry Dichkovsky
 
Разработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptРазработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptTatiana Smetanina
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Kuban Dzhakipov
 
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”HYS Enterprise
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоSQALab
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5Technopark
 
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
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Эльвина Сакаева
 
Citrus Game Engine, Юрий Шумовский
Citrus Game Engine, Юрий ШумовскийCitrus Game Engine, Юрий Шумовский
Citrus Game Engine, Юрий ШумовскийIT Share
 
Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...
Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...
Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...DevGAMM Conference
 
Иструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойИструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойakimovpro
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"Денис Ефремов
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”GlobalLogic Ukraine
 
Журат М. - AFramework
Журат М. - AFrameworkЖурат М. - AFramework
Журат М. - AFrameworkInnim
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest
 
Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»e-Legion
 
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7Sergey Zwezdin
 
Protecting your mobile game from the most common hacks
Protecting your mobile game from the most common hacksProtecting your mobile game from the most common hacks
Protecting your mobile game from the most common hacksDevGAMM Conference
 

Semelhante a Windows Phone 7 Game Development (20)

Windows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformWindows Phone 8.1 Development Platform
Windows Phone 8.1 Development Platform
 
Разработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на ScaleformРазработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на Scaleform
 
Разработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptРазработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScript
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?
 
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудство
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5
 
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
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)
 
Citrus Game Engine, Юрий Шумовский
Citrus Game Engine, Юрий ШумовскийCitrus Game Engine, Юрий Шумовский
Citrus Game Engine, Юрий Шумовский
 
Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...
Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...
Транзакционный фреймворк для сингловых игр и игр с асинхронным мультиплеером ...
 
Иструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойИструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикой
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”
 
Журат М. - AFramework
Журат М. - AFrameworkЖурат М. - AFramework
Журат М. - AFramework
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
 
Разработка игр в небольшой компании
Разработка игр в небольшой компании Разработка игр в небольшой компании
Разработка игр в небольшой компании
 
Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»
 
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
 
Protecting your mobile game from the most common hacks
Protecting your mobile game from the most common hacksProtecting your mobile game from the most common hacks
Protecting your mobile game from the most common hacks
 

Último (9)

Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

Windows Phone 7 Game Development

  • 1. Разработка игр для Windows Phone 7 Сергей ЛутайDigital Cloud Technologies
  • 3. Технологии Быстрое создание пользовательского интерфейса Событийная модель приложения HTML/Javascript Разработка бизнес приложений Высоко-производительная платформа Быстрое создание многоэкранных2D и 3D игр Широко применяемая платформа: Xbox, Windows, and Zune ИГРЫ(и приложения) ПРИЛОЖЕНИЯ (и игры)
  • 4. XNA Framework Game Loop и Silverlight Application равноправные технологии Windows Phone 7 Большинство типов XNA можно использовать в Silverlight приложениях Включая Gamer Services (Xbox LIVE) Базовые типы отличаются Сцены используютGraphicsDeviceиз XNA Framework истраницы используют UIElementиз Silverlight Можно выбрать технологию, которая лучше всего подходит для вашего приложения Совместное использование
  • 5. Графика Готовый набор элементов управления Векторная графика с использованиемXAML Медиа Мощная поддержка видео контента Инструмент Используем Expression Blend и VS Выбор технологии
  • 6. Графика Использование2D и 3D графики Имитация/рисование Использование циклов для обновлениясостояния Инструменты Использование XNA Framework Графические типы Content Pipeline Выбор технологии
  • 8. XNA Game Studio Сделайте разработку легче XNA Framework обеспечивает мощный API для игр C#, .NET и Visual Studio Шаблоны проектов для игр XNA - это инфраструктура Игры
  • 9. XNA Game Studio 4.0 Разработка для Windows Phone7 Улучшена поддержка аудио Упрощенныйграфический API Интеграция с Visual Studio 2010 Новые конфигура- ционные эффекты
  • 11. Управляемый код для разработки игр Windows Phone 7 .NET платформа .NET/XNA используется для игр сегодня! Платформа управляемого кода XNA Game Studio 4.0 - только C# 800+ игр Windows игры публикуются через порталы
  • 12. Нацеленность на производительность Frameworks designed for performance Frameworks designed for performance Frameworks designed for performance Инфраструктура разработана для производительности XNA Framework разработан для игровых сценариев Платформа будущего.. Исключена лишняя генерация мусора 3+ лет профилированияиразвития Произвольность на Windows Phone 7 Оптимизированы мат. библиотеки Эффективный API взаимодействия с системой нижнего уровня
  • 14. Visual Studio и .NET Эффективная разработкас .NET иC# ПроизводительнаяIDE Подсказки Встроенная отладка MSBuild
  • 15. Конвеер контента Упрощает управление контентом! Управление вVisual Studio Импортированиеизвестных игровых форматов Оптимизация данных в двоичный формат для эффективной загрузки Полностью расширяемая XNA Framework/Game Loop необязателен
  • 16. XNA Framework Упрощает разработку игр
  • 17. XNA XNA Game Studio XNA Графика Звук Математика Устройства ввода .NET Framework .NET Compact Framework XBox 360 Zune / Windows Phone 7 Windows
  • 18. Архитектура XNA Контент Код Компоненты Игры Starter Kits Инфраструктура Модель приложения Ковеер контента Библиотека Graphics Audio Input Math Storage Graphics Платформа XACT XINPUT XContent Direct3D
  • 19. Базовый класс public class MyGame : Microsoft.Xna.Framework.Game { protected override void Initialize(); protected override void LoadContent(); protected override void Update(GameTimegameTime); protected override void Draw(GameTimegameTime); }
  • 20. XNA Framework игровой цикл Пример protectedoverridevoid Update(GameTimegameTime) { // Allows the game to exit if(GamePad.GetState(PlayerIndex.One).Buttons.Back== ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here base.Update(gameTime); } protectedoverridevoid Draw(GameTimegameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here base.Draw(gameTime); } Фреймовый цикл Совместимость с предыдущими версиями Увеличена производительность на устройствах Система разработана с учётом лучших практик для Windows Phone 7 Используется существующий концепт XNA Framework
  • 22. Развитие существующего API отображения Упрощено управление ресурсами и состояниями Отображение 2D и 3D форм Обзор
  • 23. Настраиваемые эффекты BasicEffect SkinnedEffect Новые эффекты на всех платформах EnvironmentMapEffect DualTextureEffect Пользовательские эффекты пока не доступны в Windows Phone 7 AlphaTestEffect
  • 24. Поддержка: масштабированиеиориентация Пишите игры не думая о разрешении и ориентации Автоматическое вращение междуориентациями дисплеяКасание автоматически поддерживается при измененом масштабировании Масштабирование может радикально увеличить производительность Масштабирование/Вращениевыполняется на уровне железа
  • 26. Пример Аудио publicvoidEventDrivenCapture() { mic = Microphone.Default; buffer = newbyte[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); } Захват аудиоивоспроизведение Пример // 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
  • 27. Медиа – Музыка/Фото/Видео Пример Воспроизведение аудио // Constructs a song from a URI UrimediaStreamUri = newUri("http://song.asx"); SongstreamedSong = Song.FromUri("Song", mediaStreamUri); // Play the song MediaPlayer.Play(streamedSong); Отображение картинок Пример MediaLibrarymedia =newMediaLibrary(); // Get the JPEG image data StreammyJpegImage = ReadAndModifyPicture(somePicture); // Save texture to Media Library   media.SavePicture("Awesome", myJpegImage); Воспроизведение видео
  • 28. Ввод касанием Простое взаимодействие с игрой!
  • 29. Кросс платформенный API тача Xbox 360 джойстики(Xbox/Windows) Клавиатура(Xbox/Windows/Windows Phone 7) Пример vartouchCollection = TouchPanel.GetState(); //... foreach(vartouchLocationintouchCollection) { if(touchLocation.State == TouchLocationState.Released) { //... } } Touch API Кросс платформенная портируемость Мультитач на Windows Phone 7 и Windows Обзор
  • 31. Возможности Windows Phone 7 Пример Location Accelerometer Vibration Пример Обзор VibrateControllerrumbler; rumbler.Start(TimeSpan.FromSeconds(2)); Accelerometer accelerometer = new Accelerometer(); accelerometer.ReadingChanged+= AccelerometerReadingChanged; accelerometer.Start();
  • 34. Как устроено Windows Phone 7 OS Xbox LIVE HTTP Push Gamer Services Invites Avatars Profile Achieve-ments Leader-boards TrialMode
  • 35. Профиль Ваша личность в облаке Телефон знает о вашем Windows Live ID Связывание с вашимGamertag
  • 36. Профиль Пример // Profile access SignedInGamergamer=Gamer.SignedInGamers[0]; // Get the player's GamerTag to display string gamerTag = gamer.Gamertag; // A SignedInGamer has a Profile GamerProfileprofile = gamer.GetProfile(); // Get the player's current GamerScore intgamerScore = profile.GamerScore; // get the gamer picture (PNG file stream) Stream gamerPictureStream = profile.GamerPicture;
  • 37. Достижения Пример // Award an achievement SignedInGamergamer = Gamer.SignedInGamers[0]; gamer.AwardAchievement("Attended TechEd 2010"); Реальныедостижения Реальныебалы Пример // Get achievements AchievementCollectionachievements = gamer.GetAchievements(); // walk through achievements foreach (Achievement ain achievements) { string name = a.Name; string description = a.Description; boolearned = a.IsEarned; intscore = a.GamerScore; Stream icon = a.Picture; }
  • 38. Пример Рейтинг // Create leaderboard identity with game mode 1 LeaderboardIdentityid = LeaderboardIdentity.Create(LeaderboardKey.BestScoreLifeTime, 1); // get the leaderboard writer from the signed in gamer LeaderboardWriterwriter = gamer.LeaderboardWriter; // get the leaderboard entry for the identity LeaderboardEntryentry = writer.GetLeaderboard(id); // write new leaderboard data entry.Rating = 1000; entry.columns.SetValue("Outcome", LeaderboardOutcome.Win); Связывание с друзьями Основанная на балах или времени Фиксированные данные Пример // Read from leaderboard with page size of 10 LeaderboardReaderreader = LeaderboardReader.Read(id, gamer, 10); foreach (LeaderboardEntry e in reader.Entries) { // score or time, as defined by identity. Rating determines rank. long rating = e.Rating; // read additional column data long wins = e.Columns.GetValueInt64("Wins"); Stream blob = e.Columns.GetValueStream("Blob"); } reader.PageDown();
  • 39. Триальный режим Простая проверка Эмуляция игры Возможность купить игру Пример Guide.SimulateTrialMode = true; // if we are in trial mode, show a marketplace offering if (Guide.IsTrialMode) { PlayerIndexplayerIndex = Gamer.SignedInGamers[0].PlayerIndex; Guide.ShowMarketplace(playerIndex); }
  • 40. Аватары Сейчас поддерживаеться только через веб сервис Загружается как поток
  • 41. Приглашение в игру Отсылаются через почту Guide.ShowGameInvite() отображает интерфейс приглашения Игрок выбирает в какую игру отсылать приглашение Друзья видят приглашения в своем игровом хабе.
  • 43. XNA Framework кросс платформенный Тратим меньше времени и получаем больше устройств Синхронизация проектов между платформами Три экрана
  • 45. Итог Мощный Управляемый код, работает уже сегодня Windows Phone обеспечивает мощную платформу для игр Эффективный Разработчик сосредотачивается на игре Эффективные инструменты разработки делают нас более продуктивными Доступный Легко расширяется на другие платформы Позволяет сфокусироваться на игре, не на технологии
  • 46. Ресурсы Email: wpgames@microsoft.com On the web: http://developer.windowsphone.com XNA Creators Club @ http://creators.xna.com Team Blog @ http://blogs.msdn.com/xna/ Shawn Hargreaves @ http://blogs.msdn.com/shawnhar/ Сотни примеров Большое сообщество экспертов поможет начать работать с XNA Peer Support @ http://forums.xna.com Blogs Contact Microsoft
  • 47. Сергей ЛутайРуководитель департамента разработки Silverlight приложенийMVP, MCT, MCPDserhii.lutai@dctua.comhttp://lutay.uneta.com.ua@sergeylutay