SlideShare una empresa de Scribd logo
1 de 39
#TecHeroes loves GameDev Tour
Introduzione allo sviluppo
UWP per xBox
Massimo Bonanni
SR Consultant – Modern Apps Domain EMEA – Microsoft
@massimobonanni
massimo.bonanni@microsoft.com
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Perchè sviluppare per XBOX??
20+ milioni di console vendute
UWP (C#, XAML, roba nota, insomma….)
400 milioni di device Windows 10 (settembre ‘16)
Utenti sempre
aggiornati
Ucore unificato e
stessa piattaforma
per le app
Viaggio nella convergenza
Windows Phone 7.5
Windows Phone 8
Windows
Phone 8.1
Windows 8
Xbox One
Windows on Devices
Xbox 360
Windows 8.1
Windows 10
Stesso
OS kernel
Convergenza nello
sviluppo delle app
Phone Small Tablet
2-in-1s
(Tablet or Laptop)
Desktops
& All-in-OnesPhablet Large Tablet
Laptop
Classici
Xbox IoTSurface Hub Holographic
Windows 10
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
One Store +
One Dev Center
Reuse
Existing Code
One SDK +
Tooling
Adaptive
User Interface
Natural
User Inputs
Una Universal Windows Platform
#TecHeroes loves GameDev Tour
Come iniziare
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Cosa è necessario per sviluppare
• Visual studio (dalla Community edition)
• Windows 10 SDK 14393
• Account sviluppatore
• XBOX :D
• Idee, idee, idee……
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Come iniziare!
Attivazione della modalità “Dev
Mode”
• Installazione dell’applicazione “Dev Mode Activation”
• Esecuzione dell’applicazione “Dev Mode Activation”
• Generazione del codice di attivazione del device
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Come iniziare!
Registrazione del device
• Accedere al portale del Dev Center
developer.microsoft.com/xboxactivate
• Inserire il codice di attivazione generato
precedentemente
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Come iniziare!
Attivazione del device
• Una volta immesso il codice di attivazione, nella console apparirà
una schermata di stato relativa al processo di attivazione.
• Aprire l’app di attivazione della modalità sviluppatore e
selezionare Switch and restart.
In questa fase la console potrebbe subire un aggiornamento
anche lungo!
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Dev Home
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Dev Home
E’ necessario avere un utente loggato
(tramite Microsoft Account) nel device per
poter deployare le applicazioni.
In maniera del tutto analoga a quanto
accade in un PC o in un telefono.
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
XBox device portal
#TecHeroes loves GameDev Tour
Come
sviluppare
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Come sviluppare
• Un’app per xBox è una
«normale» UWP application.
• Per creare una app per xBox è,
quindi, sufficiente crare un
progetto Universa Windows
Platform!!
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Debug remoto
• xBox è, di fatto, equivalente ad un
device esterno, come un telefono o
un tablet.
• xBox è connessa al debug remoto via
rete:
• Deve essere messo in pairing con Visual
Studio;
• Deve essere indirizzato tramite l’IP
recuperabile dalla schermata Dev Home
dell’xBox stessa
#TecHeroes loves GameDev Tour
Visual
difference
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
TV-Safe Area
Non tutti i televisori consentono di visualizzare il
contenuto fino ai bordi dello schermo per motivi
storici e tecnologici.
Per impostazione predefinita, la piattaforma UWP
eviterà di visualizzare il contenuto dell'interfaccia
utente in aree non sicure della TV.
Sarebbe opportuno che le nostre app estendano
gli elementi della UI fino al bordo per una migliore
esperienza per l’utente. In particolare in basso e a
destra.
960 x 540
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
E’ possibile gestire la Tv-Safe Area attraverso la classe
ApplicationView:
Gestire la TV-Safe Area
private void DisableTVSafeArea()
{
ApplicationView.GetForCurrentView()
.SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);
}
private void EnableTVSafeArea()
{
ApplicationView.GetForCurrentView()
.SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible);
}
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
200% scale factor
(“10-foot experience” vs. “2-foot experience”)
La UI a 10 piedi deve essere circa
~200% di quanto visibile a 2 piedi
La risoluzione di Default per le apps
su Xbox è
960 x 540
effective pixels
Dimensione della UI (in effective pixels)
1366 x 768 1920 x 1080360 x 640
960 x 540 960 x 540 960 x 540
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Gestire lo scale-factor automatico
E’ possibile gestire lo scale-factor automatico attraverso la classe
ApplicationViewScaling:
private void EnableScaleFactor()
{
ApplicationViewScaling.TrySetDisableLayoutScaling(false);
}
private void DisableScaleFactor()
{
ApplicationViewScaling.TrySetDisableLayoutScaling(true);
}
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Game pad e telecomando
Proprio come tastiera e mouse per il PC e la tecnologia touch per i telefoni
e i tablet, il game pad e il telecomando sono i dispositivi di input principali
per l'esperienza di interazione da 3 metri.
La qualità del comportamento predefinito del game pad e del
telecomando dipende dal livello di supporto per la tastiera presente
nell'app.
Una buona soluzione per assicurarsi che l'app funzioni correttamente con
il game pad e il telecomando è verificarne il funzionamento con la tastiera
del PC e quindi testare il game pad e il telecomando per trovare eventuali
punti deboli nell'interfaccia utente.
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Game pad e telecomando
La piattaforma UWP esegue automaticamente il mapping del
comportamento di input della tastiera nell'input del game pad e del
telecomando.
Tastiera Game pad/telecomando
Tasti di direzione D-pad (o joystick sinistro nel game pad)
Barra spaziatrice Pulsante A/Seleziona
INVIO Pulsante A/Seleziona
ESC Pulsante B/Indietro
Game pad e telecomando
Pulsante Game pad Telecomando
Pulsante A/Seleziona Sì Sì
Pulsante B/Indietro Sì Sì
Tasto direzionale (D-pad) Sì Sì
Pulsante Menu Sì Sì
Pulsante Visualizza Sì Sì
Pulsanti X e Y Sì No
Joystick sinistro Sì No
Joystick destro Sì No
Trigger destro e sinistro Sì No
Pulsante dorsale destro e sinistro Sì No
Pulsante OneGuide No Sì
Pulsante Volume No Sì
Pulsante Canale No Sì
Pulsanti per il controllo multimediale No Sì
Pulsante Disattiva audio No Sì
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Mouse Cursor Emulator
Due modalità di navigazione
• XY Focus : il focus si sposta sui controlli
dell’app in base alla pressione dei tasti XY o
del joypad
• Mouse Mode : viene mostrato un cursore
gestito dal joypad
XY Focus
Puntatore Mouse
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Mouse Cursor Emulator
Due modalità di navigazione
• XY Focus : il focus si sposta sui controlli
dell’app in base alla pressione dei tasti XY o
del joypad
• Mouse Mode : viene mostrato un cursore
gestito dal joypad
XY Focus
Puntatore Mouse
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Interfaccia utente inaccessibile
Poiché lo spostamento con stato attivo
XY limita i movimenti dell'utente verso
l'alto, il basso, sinistra e destra, possono
verificarsi casi in cui alcune parti
dell'interfaccia utente sono inaccessibili.
Il consiglio è sempre di testare l’app con
il controller e il telecomando prima di
rilasciarla
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
TextBlock
Minor numero di click
E’ opportuno permettere all’utente di eseguire le attività più comuni
con il minor numero di click.
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Gestire il mouse cursor emulator
E’ possibile gestire il mouse cursor emulator tramite la classe
Application:
La proprietà RequiresPointerMode è disponibile a partire dall’SDK Windows 10, versione 1607. Per evitare eccezioni in
caso di version precedent è opportune utilizzare ApiInformation
private void DisableMouseMode()
{
if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Application", "RequiresPointerMode"))
App.Current.RequiresPointerMode = ApplicationRequiresPointerMode.WhenRequested;
}
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Gestire il mouse cursor emulator
Può essere gestito il mouse cursor emulator anche a livello di singolo
controllo all’interno dello XAML:
<Grid Background="YellowGreen" >
<maps:MapControl RequiresPointer="WhenEngaged" />
</Grid>
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
TV-Safe Colors
• Occorre tener presente che i colori vengono visualizzati in modo
molto diverso a seconda del televisore. Se l'app si basa su minime
differenze di colore per distinguere le parti dell'interfaccia utente, i
colori potrebbero fondersi, confondendo gli utenti. E’ opportuno
utilizzare colori diversi, in modo che gli utenti siano in grado di
distinguerli chiaramente, indipendentemente dal loro televisore.
• I televisori non gestiscono in modo ottimale i valori massimi di
intensità. Su alcuni televisori, questi colori possono produrre uno
strano effetto a righe alternate evidenziate o un effetto slavato. I
colori ad alta intensità possono inoltre causare un effetto di
scolorimento, in cui i pixel iniziano ad assumere gli stessi colori di
quelli vicini.
• In genere i colori all'interno dei valori RGB 16-235 possono essere
usati senza problemi per la TV.
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
TV-Safe Colors
• Per corregger i colori in maniera ottimale si può
ricorrere ai seguenti passi:
• Clamping: si tratta di limitare i colori all’intervallo
sicuro. Questo metodo può essere adatto alle app
che non usano una tavolozza di colori complessa.
Attenzione al caso in cui la vostra app utilizzi colori
molto “vicini” tra loro situati al limitare delle fasce
estreme.
• Scaling: il valore dei colori viene riportato nella scala
0:255 in modo da coprire tutto lo spettro visibile.
• E’ sempre opportuno verificare il risultato a video
in modo da essere certi che l’interfaccia grafica
sia leggibile e confortevole.
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Personalizzare l’app per Xbox
• Utilizzo dei Visual State Trigger
• Da codice
• AnalyticsInfo.VersionInfo.DeviceFamily
• Pagine xaml personalizzate
• [pageName].DeviceFamily-[qualifierString].xaml
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Visual State Trigger
https://github.com/dotMorten/WindowsStateTriggers
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Limiti attuali
Alcune api non implementate
• Chat
• Cortana voice commands
• Credential API
• Launcher API (FolderLauncherOptions e LauncherUIOptions)
• Personalization (UserProfilePersonalizationSettings)
• Photo import
• Share contract
• Tile, toast and badge notifications
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Riferimenti
• UWP on Xbox One
https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/index
• Xbox best practices
https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/tailoring-for-xbox
• Attivazione della modalità sviluppatore per Xbox One
https://msdn.microsoft.com/it-it/windows/uwp/xbox-apps/devkit-activation
• Progettazione per Xbox e TV
https://msdn.microsoft.com/it-it/windows/uwp/input-and-devices/designing-for-tv
• Microsoft Virtual Academy - Developing Xbox One Applications
https://mva.microsoft.com/en-US/training-courses/developing-xbox-one-applications-16860
• dotNet{podcast} - #128 UWP per Xbox
http://dotnetpodcast.com/show/card/128
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
Grazie a tutti!!

Más contenido relacionado

Destacado

Initializr - come iniziare
Initializr - come iniziareInitializr - come iniziare
Initializr - come iniziareSalvatore Paone
 
Sviluppare per Microsoft Band
Sviluppare per Microsoft BandSviluppare per Microsoft Band
Sviluppare per Microsoft BandMassimo Bonanni
 
Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Massimo Bonanni
 
Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!
Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!
Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!Massimo Bonanni
 
HTMLslide html
HTMLslide htmlHTMLslide html
HTMLslide htmlritalerede
 
HTML5 e Css3 - 3 | WebMaster & WebDesigner
HTML5 e Css3 - 3 | WebMaster & WebDesignerHTML5 e Css3 - 3 | WebMaster & WebDesigner
HTML5 e Css3 - 3 | WebMaster & WebDesignerMatteo Magni
 
HTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesignerHTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesignerMatteo Magni
 

Destacado (10)

Initializr - come iniziare
Initializr - come iniziareInitializr - come iniziare
Initializr - come iniziare
 
Sviluppare per Microsoft Band
Sviluppare per Microsoft BandSviluppare per Microsoft Band
Sviluppare per Microsoft Band
 
Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2
 
Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!
Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!
Windows Hello e Intel(r) RealSense(tm): attenti a questi due!!
 
HTMLslide html
HTMLslide htmlHTMLslide html
HTMLslide html
 
Corso di HTML5 e CSS
Corso di HTML5 e CSSCorso di HTML5 e CSS
Corso di HTML5 e CSS
 
Html5
Html5Html5
Html5
 
HTML5 e Css3 - 3 | WebMaster & WebDesigner
HTML5 e Css3 - 3 | WebMaster & WebDesignerHTML5 e Css3 - 3 | WebMaster & WebDesigner
HTML5 e Css3 - 3 | WebMaster & WebDesigner
 
HTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesignerHTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesigner
 
Php mysql3
Php mysql3Php mysql3
Php mysql3
 

Similar a Introduzione allo sviluppo UWP per xBox

SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...Danilo Riso
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play frameworkCSP Scarl
 
Soluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeSoluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeGianluca Vaglio
 
Sviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRTSviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRTcodeblock
 
Media Queries Next Level
Media Queries Next LevelMedia Queries Next Level
Media Queries Next LevelCarmine Alfano
 
Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...
Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...
Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...Codemotion
 
Il futuro di Windows Phone
Il futuro di Windows PhoneIl futuro di Windows Phone
Il futuro di Windows PhoneMatteo Pagani
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overviewAlfredo Morresi
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinectEmanuele Bartolesi
 
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...giovanni biallo
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1codeblock
 
DotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectDotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectMassimo Bonanni
 
Aggiornare il proprio PC a Windows 10: e perché no?
Aggiornare il proprio PC a Windows 10: e perché no?Aggiornare il proprio PC a Windows 10: e perché no?
Aggiornare il proprio PC a Windows 10: e perché no?Enzo Contini
 

Similar a Introduzione allo sviluppo UWP per xBox (20)

SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play framework
 
Game matching with SignalR
Game matching with SignalRGame matching with SignalR
Game matching with SignalR
 
Game matching with SignalR
Game matching with SignalRGame matching with SignalR
Game matching with SignalR
 
Soluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeSoluzioni per la produzione multimediale
Soluzioni per la produzione multimediale
 
Sviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRTSviluppare applicazioni Metro con Windows 8 e WinRT
Sviluppare applicazioni Metro con Windows 8 e WinRT
 
Media Queries Next Level
Media Queries Next LevelMedia Queries Next Level
Media Queries Next Level
 
Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...
Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...
Eugenio Petullà - Crea un'esperienza VR coerente sul Web con A-Frame - Codemo...
 
Catalogo ENYCS 2020 r01
Catalogo ENYCS 2020 r01Catalogo ENYCS 2020 r01
Catalogo ENYCS 2020 r01
 
Il futuro di Windows Phone
Il futuro di Windows PhoneIl futuro di Windows Phone
Il futuro di Windows Phone
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
 
Android vs iOS
Android vs iOSAndroid vs iOS
Android vs iOS
 
platforms
platformsplatforms
platforms
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinect
 
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
DotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectDotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a Kinect
 
Aggiornare il proprio PC a Windows 10: e perché no?
Aggiornare il proprio PC a Windows 10: e perché no?Aggiornare il proprio PC a Windows 10: e perché no?
Aggiornare il proprio PC a Windows 10: e perché no?
 

Más de Massimo Bonanni

Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Massimo Bonanni
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
 
Stateful pattern con Azure Functions
Stateful pattern con Azure FunctionsStateful pattern con Azure Functions
Stateful pattern con Azure FunctionsMassimo Bonanni
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Massimo Bonanni
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure FunctionsMassimo Bonanni
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Massimo Bonanni
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Massimo Bonanni
 
Workflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsWorkflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsMassimo Bonanni
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Massimo Bonanni
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Massimo Bonanni
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelMassimo Bonanni
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Massimo Bonanni
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelMassimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftMassimo Bonanni
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Massimo Bonanni
 

Más de Massimo Bonanni (20)

Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
 
Stateful pattern con Azure Functions
Stateful pattern con Azure FunctionsStateful pattern con Azure Functions
Stateful pattern con Azure Functions
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
 
IoT in salsa serverless
IoT in salsa serverlessIoT in salsa serverless
IoT in salsa serverless
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
 
IoT in salsa Serverless
IoT in salsa ServerlessIoT in salsa Serverless
IoT in salsa Serverless
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...
 
Workflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsWorkflow as code with Azure Durable Functions
Workflow as code with Azure Durable Functions
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!
 

Último

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 

Último (9)

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 

Introduzione allo sviluppo UWP per xBox

  • 1. #TecHeroes loves GameDev Tour Introduzione allo sviluppo UWP per xBox Massimo Bonanni SR Consultant – Modern Apps Domain EMEA – Microsoft @massimobonanni massimo.bonanni@microsoft.com
  • 2. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Perchè sviluppare per XBOX?? 20+ milioni di console vendute UWP (C#, XAML, roba nota, insomma….) 400 milioni di device Windows 10 (settembre ‘16)
  • 3. Utenti sempre aggiornati Ucore unificato e stessa piattaforma per le app Viaggio nella convergenza Windows Phone 7.5 Windows Phone 8 Windows Phone 8.1 Windows 8 Xbox One Windows on Devices Xbox 360 Windows 8.1 Windows 10 Stesso OS kernel Convergenza nello sviluppo delle app
  • 4. Phone Small Tablet 2-in-1s (Tablet or Laptop) Desktops & All-in-OnesPhablet Large Tablet Laptop Classici Xbox IoTSurface Hub Holographic Windows 10
  • 5. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour One Store + One Dev Center Reuse Existing Code One SDK + Tooling Adaptive User Interface Natural User Inputs Una Universal Windows Platform
  • 6. #TecHeroes loves GameDev Tour Come iniziare
  • 7. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Cosa è necessario per sviluppare • Visual studio (dalla Community edition) • Windows 10 SDK 14393 • Account sviluppatore • XBOX :D • Idee, idee, idee……
  • 8. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Come iniziare! Attivazione della modalità “Dev Mode” • Installazione dell’applicazione “Dev Mode Activation” • Esecuzione dell’applicazione “Dev Mode Activation” • Generazione del codice di attivazione del device
  • 9. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Come iniziare! Registrazione del device • Accedere al portale del Dev Center developer.microsoft.com/xboxactivate • Inserire il codice di attivazione generato precedentemente
  • 10. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Come iniziare! Attivazione del device • Una volta immesso il codice di attivazione, nella console apparirà una schermata di stato relativa al processo di attivazione. • Aprire l’app di attivazione della modalità sviluppatore e selezionare Switch and restart. In questa fase la console potrebbe subire un aggiornamento anche lungo!
  • 11. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Dev Home
  • 12. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Dev Home E’ necessario avere un utente loggato (tramite Microsoft Account) nel device per poter deployare le applicazioni. In maniera del tutto analoga a quanto accade in un PC o in un telefono.
  • 13. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour XBox device portal
  • 14. #TecHeroes loves GameDev Tour Come sviluppare
  • 15. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Come sviluppare • Un’app per xBox è una «normale» UWP application. • Per creare una app per xBox è, quindi, sufficiente crare un progetto Universa Windows Platform!!
  • 16. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Debug remoto • xBox è, di fatto, equivalente ad un device esterno, come un telefono o un tablet. • xBox è connessa al debug remoto via rete: • Deve essere messo in pairing con Visual Studio; • Deve essere indirizzato tramite l’IP recuperabile dalla schermata Dev Home dell’xBox stessa
  • 17. #TecHeroes loves GameDev Tour Visual difference
  • 18. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour TV-Safe Area Non tutti i televisori consentono di visualizzare il contenuto fino ai bordi dello schermo per motivi storici e tecnologici. Per impostazione predefinita, la piattaforma UWP eviterà di visualizzare il contenuto dell'interfaccia utente in aree non sicure della TV. Sarebbe opportuno che le nostre app estendano gli elementi della UI fino al bordo per una migliore esperienza per l’utente. In particolare in basso e a destra. 960 x 540
  • 19. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour E’ possibile gestire la Tv-Safe Area attraverso la classe ApplicationView: Gestire la TV-Safe Area private void DisableTVSafeArea() { ApplicationView.GetForCurrentView() .SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow); } private void EnableTVSafeArea() { ApplicationView.GetForCurrentView() .SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible); }
  • 20. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour 200% scale factor (“10-foot experience” vs. “2-foot experience”) La UI a 10 piedi deve essere circa ~200% di quanto visibile a 2 piedi La risoluzione di Default per le apps su Xbox è 960 x 540 effective pixels
  • 21. Dimensione della UI (in effective pixels) 1366 x 768 1920 x 1080360 x 640 960 x 540 960 x 540 960 x 540
  • 22. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Gestire lo scale-factor automatico E’ possibile gestire lo scale-factor automatico attraverso la classe ApplicationViewScaling: private void EnableScaleFactor() { ApplicationViewScaling.TrySetDisableLayoutScaling(false); } private void DisableScaleFactor() { ApplicationViewScaling.TrySetDisableLayoutScaling(true); }
  • 23. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Game pad e telecomando Proprio come tastiera e mouse per il PC e la tecnologia touch per i telefoni e i tablet, il game pad e il telecomando sono i dispositivi di input principali per l'esperienza di interazione da 3 metri. La qualità del comportamento predefinito del game pad e del telecomando dipende dal livello di supporto per la tastiera presente nell'app. Una buona soluzione per assicurarsi che l'app funzioni correttamente con il game pad e il telecomando è verificarne il funzionamento con la tastiera del PC e quindi testare il game pad e il telecomando per trovare eventuali punti deboli nell'interfaccia utente.
  • 24. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Game pad e telecomando La piattaforma UWP esegue automaticamente il mapping del comportamento di input della tastiera nell'input del game pad e del telecomando. Tastiera Game pad/telecomando Tasti di direzione D-pad (o joystick sinistro nel game pad) Barra spaziatrice Pulsante A/Seleziona INVIO Pulsante A/Seleziona ESC Pulsante B/Indietro
  • 25. Game pad e telecomando Pulsante Game pad Telecomando Pulsante A/Seleziona Sì Sì Pulsante B/Indietro Sì Sì Tasto direzionale (D-pad) Sì Sì Pulsante Menu Sì Sì Pulsante Visualizza Sì Sì Pulsanti X e Y Sì No Joystick sinistro Sì No Joystick destro Sì No Trigger destro e sinistro Sì No Pulsante dorsale destro e sinistro Sì No Pulsante OneGuide No Sì Pulsante Volume No Sì Pulsante Canale No Sì Pulsanti per il controllo multimediale No Sì Pulsante Disattiva audio No Sì
  • 26. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Mouse Cursor Emulator Due modalità di navigazione • XY Focus : il focus si sposta sui controlli dell’app in base alla pressione dei tasti XY o del joypad • Mouse Mode : viene mostrato un cursore gestito dal joypad XY Focus Puntatore Mouse
  • 27. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Mouse Cursor Emulator Due modalità di navigazione • XY Focus : il focus si sposta sui controlli dell’app in base alla pressione dei tasti XY o del joypad • Mouse Mode : viene mostrato un cursore gestito dal joypad XY Focus Puntatore Mouse
  • 28. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Interfaccia utente inaccessibile Poiché lo spostamento con stato attivo XY limita i movimenti dell'utente verso l'alto, il basso, sinistra e destra, possono verificarsi casi in cui alcune parti dell'interfaccia utente sono inaccessibili. Il consiglio è sempre di testare l’app con il controller e il telecomando prima di rilasciarla
  • 29. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour TextBlock Minor numero di click E’ opportuno permettere all’utente di eseguire le attività più comuni con il minor numero di click.
  • 30. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Gestire il mouse cursor emulator E’ possibile gestire il mouse cursor emulator tramite la classe Application: La proprietà RequiresPointerMode è disponibile a partire dall’SDK Windows 10, versione 1607. Per evitare eccezioni in caso di version precedent è opportune utilizzare ApiInformation private void DisableMouseMode() { if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Application", "RequiresPointerMode")) App.Current.RequiresPointerMode = ApplicationRequiresPointerMode.WhenRequested; }
  • 31. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Gestire il mouse cursor emulator Può essere gestito il mouse cursor emulator anche a livello di singolo controllo all’interno dello XAML: <Grid Background="YellowGreen" > <maps:MapControl RequiresPointer="WhenEngaged" /> </Grid>
  • 32. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour TV-Safe Colors • Occorre tener presente che i colori vengono visualizzati in modo molto diverso a seconda del televisore. Se l'app si basa su minime differenze di colore per distinguere le parti dell'interfaccia utente, i colori potrebbero fondersi, confondendo gli utenti. E’ opportuno utilizzare colori diversi, in modo che gli utenti siano in grado di distinguerli chiaramente, indipendentemente dal loro televisore. • I televisori non gestiscono in modo ottimale i valori massimi di intensità. Su alcuni televisori, questi colori possono produrre uno strano effetto a righe alternate evidenziate o un effetto slavato. I colori ad alta intensità possono inoltre causare un effetto di scolorimento, in cui i pixel iniziano ad assumere gli stessi colori di quelli vicini. • In genere i colori all'interno dei valori RGB 16-235 possono essere usati senza problemi per la TV.
  • 33. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour TV-Safe Colors • Per corregger i colori in maniera ottimale si può ricorrere ai seguenti passi: • Clamping: si tratta di limitare i colori all’intervallo sicuro. Questo metodo può essere adatto alle app che non usano una tavolozza di colori complessa. Attenzione al caso in cui la vostra app utilizzi colori molto “vicini” tra loro situati al limitare delle fasce estreme. • Scaling: il valore dei colori viene riportato nella scala 0:255 in modo da coprire tutto lo spettro visibile. • E’ sempre opportuno verificare il risultato a video in modo da essere certi che l’interfaccia grafica sia leggibile e confortevole.
  • 34. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Personalizzare l’app per Xbox • Utilizzo dei Visual State Trigger • Da codice • AnalyticsInfo.VersionInfo.DeviceFamily • Pagine xaml personalizzate • [pageName].DeviceFamily-[qualifierString].xaml
  • 35. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Visual State Trigger https://github.com/dotMorten/WindowsStateTriggers
  • 36. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Limiti attuali Alcune api non implementate • Chat • Cortana voice commands • Credential API • Launcher API (FolderLauncherOptions e LauncherUIOptions) • Personalization (UserProfilePersonalizationSettings) • Photo import • Share contract • Tile, toast and badge notifications
  • 37. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Riferimenti • UWP on Xbox One https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/index • Xbox best practices https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/tailoring-for-xbox • Attivazione della modalità sviluppatore per Xbox One https://msdn.microsoft.com/it-it/windows/uwp/xbox-apps/devkit-activation • Progettazione per Xbox e TV https://msdn.microsoft.com/it-it/windows/uwp/input-and-devices/designing-for-tv • Microsoft Virtual Academy - Developing Xbox One Applications https://mva.microsoft.com/en-US/training-courses/developing-xbox-one-applications-16860 • dotNet{podcast} - #128 UWP per Xbox http://dotnetpodcast.com/show/card/128
  • 38. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour
  • 39. Roma, 27 Gennaio 2017#TecHeroes loves GameDev Tour Grazie a tutti!!