porting dei giochi windows phone realizzati con xna sul windows store con mono game

Post on 09-May-2015

235 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Porting dei giochi Windows Phone realizzati con XNA sul Windows Store con MonoGameDan Ardelean, Neologics@danardeleandan.ardelean@neologics.eu

XNA• Framework per Video Game Development e

Management• 2D e 3D (nato nel 2004)

• Semplifica la gestione di tutti gli aspetti di DirectX (Grafica, Input, Sonoro,ecc...)

• Facile da usare• Il programmatore deve solo scrivere le istruzioni per muovere gli

oggetti, le eventuali telecamere, gli eventuali effetti grafici (gli "shader")

• Multipiattaforma• PC/Xbox/Windows Phone 7.x

MonoGame

• Implementazione cross-platform Open Source delle API XNA 4.0• Riutilizzare il codice già scritto per Windows Phone

• E’ supportata la generazione di app per il Windows Store• Passano il WACK

• Vari giochi sullo Store oggi migrati a Windows 8 con MonoGame (es. Skiddy, Armed!, Rune Legends)

XNA per app Windows Store• GitHub for Windows

• Framework MonoGame da GitHub (v2.5)• https://github.com/mono/MonoGame

• SharpDX da NuGET

• ProjectTemplates per MonoGame• Con o senza XAML

• MonoGame Samples• https://github.com/CartBlanche/MonoGame-Samples

Cosa può fare MonoGame• Grafica 2D

• Effetti Custom (GLSN)

• XNA Content Files

• Networking (lidgren)• Solo rete locale

• Sound/Music/XACT

• Grafica 3D (ancora in sviluppo)

Cosa può fare MonoGame• Video Playback

• Native asset loading • png/jpeg/gif/tiff/pdf• wav/mpeg

• Input• Touch• Gamepad• Mouse e Tastiera

DEMOSIMPLE ANIMATIONhttp://xbox.create.msdn.com/en-US/education/catalog/sample/simple_animation

MonoGame su Windows 8• Content Pipeline usando Visual Studio 2010• File compilati .XNB vengono copiati nel progetto VS 2012

nella cartella Content• ContentManager per caricare gli Asset

(immagini/suoni/ecc...)

• Aggiungere App Tiles e Splash Screen• Logo (150x150), Wide Logo (310x150), Small Logo (30x30)• Splash Screen(620x300)

• Potete usare MessageDialog

Screen Management, Snap View, Landscape, Portrait Support using Windows.UI.Core; public enum WindowState { Full = 0, Snap1Quarter = 1, Snap3Quarter = 2 }; public static class GameState { public static WindowState _windowState; public static CoreWindow _window; public static Rect _windowsBounds; public static void Initialize() { _window = CoreWindow.GetForCurrentThread(); _windowState = WindowState.Full; _window.SizeChanged += _window_SizeChanged; } //called when the window is resized static void _window_SizeChanged(CoreWindow sender, WindowSizeChangedEventArgs args) { if (args.Size.Width == _windowsBounds.Width) _windowState = WindowState.Full; else if (args.Size.Width <= 320.00) _windowState = WindowState.Snap1Quarter; else _windowState = WindowState.Snap3Quarter; _windowsBounds.Height = args.Size.Height; _windowsBounds.Width = args.Size.Width; } }

PLM – Process Lifetime ManagementRunning, Suspended, Terminated using Windows.UI.Core;

public static void Initialize() { CoreApplication.Resuming += CoreApplication_Resuming; CoreApplication.Suspending += CoreApplication_Suspending; _window = CoreWindow.GetForCurrentThread(); _window.VisibilityChanged += _window_VisibilityChanged; } static void CoreApplication_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) { // suspending, save appropriate game and user state (delayed) } static void CoreApplication_Resuming(object sender, object e) { // coming back from suspend, probably don't need to do anything as current state is in memory } void _window_VisibilityChanged(CoreWindow sender, VisibilityChangedEventArgs args) { // better save the state here }

DEMOSIMPLE ANIMATION WINDOWS 8

Migliorare l’integrazione con Windows 8• Live Tiles• Current Level, Score, Ecc.

• Servizi Cloud• Windows Azure Mobile Services per Clasifiche e

Multiplayer• http://www.windowsazure.com/en-us/develop/mobile/

• Usare Settings per le impostazioni del gioco

• Implementare Search e Share dove ha senso

ReferenzeTwitter @MonoGameTeam

Irc #monogame gnome.irc.org

Youtube Channelhttp://www.youtube.com/MonoGameTeam

MonoGame on Codeplexhttp://monogame.codeplex.com

Skiddy scivola da Windows Phone a Windows 8

Christian "Ch" Costanza – Big Bang Pixel@BigBangPixelchristian@bigbangpixel.com

Chi sonogli Skiddy?Demo su Windows Phone e Windows 8

Struttura del progetto

• Progetto principale contenente il gioco

• Libreria per gestione di dati custom compilati in XNB

• Libreria con classi ed helper di uso generale

Il grosso delle modifiche hanno riguardato il progetto principale, gli altri erano già «abbastanza» astratti

Porting – Cambiamenti principali• Input:• Touch, Tilt, Controller XBOX, Mouse e Tastiera su Windows

8• Touch e Tilt su WP

• I/O• Nuovi metodi async su Windows 8• Caricamento in multithreading su WP

• Settings locali e in roaming su Windows 8• IsolatedStorage su WP

• Cambio di formato per i dati non supportati da MonoGame (ora salvati in XML)

Porting – Nuova UI «adattabile»• Supporto a Full Screen, Filled e Snapped oltre ai vari

orientamenti

Porting – Nuova UI «adattabile»• Definizione di una «safe area»

proporzionale alla risoluzione della Viewport• Gli elementi della UI vengono posizionati in

modo relativo agli angoli o al centro, con allineamento orizzontale o verticale selezionabile

• Per elementi 3D viene ricreata la camera e posizionata in base all’aspect ratio della Viewport

Integrazione con il sistema• Integrazione con i Charm di sistema:• Share degli award, etc…• Settings• Utilizzata libreria Callisto (

https://github.com/timheuer/callisto) per semplificare il lavoro

• Live Tile che mostra le medaglie prese

Limiti di MonoGame• Impossibilità di creare i Modelli a Runtime e

minimizzare chiamate a Model.Draw -> disegniamo i singoli elementi, gioco comunque va a 60FPS anche su ARM

• Non supporta Environment Map -> BasicEffect• Problemi su Multisample Anti-aliasing -> disabilitato

x ora• Reimplementati i Game Components (già su WP)

seguendo sample http://aka.ms/gamecomp

• Usiamo branch «develop3d» aspettiamo prossime versioni che magari risolveranno alcuni problemi

Supporto!• Abbiamo avuto moltissimo supporto:

• Gli sviluppatori di MonoGame hanno risposto a tutte le nostre richieste e risolto un sacco di problemi

• Microsoft Italia ci ha supportato prima con i Lab, poi facendoci provare il gioco su vari dispositivi e aiutandoci sulla parte di WinRT

Prima di chiudere… il Windows Store• Molto più sicuro… forse troppo • Simile a quello di Phone ma più dettagliato• Chiede le didascalie per le immagini • Permette di fare alcune scelte con più granularità

• Reportistica più dettagliata• Tempo di utilizzo dell’app• Riferimenti relativi rispetto alle prime 5 app della

sottocategoria• Quanti hanno visualizzato la scheda dell’app

• Tempi di pubblicazione nella media• Non abbiamo ancora sperimentato «in-app

purchase»

Scaricatelo e votatelo!!!

top related