SlideShare una empresa de Scribd logo
1 de 32
From building an Arcade
Bartop to fun with games
in Windows 10
Marco Parenzan
@marco_Parenzan – marco.parenzan@1nn0va.it
Community Lead 1nn0va – Pordenone
Microsoft Azure MVP 2016
Microsoft Azure Trainer – Cloud Academy Inc.
Curious about Retrogaming and IoT
Marco Parenzan
Internet of Things
=
Embedded
+
Cloud
Giustificazione per innalzare il
WAF
(Wife Acceptance Factor)
Perchè un Arcade Bar-Top?
• Per sperimentarsi con gli attrezzi e con il legno
• …e sfruttare il fatto che tua moglie ti ha chiesto di fare un
lavoro in legno…
• …almeno per me…di giocare alla fine non ci penso proprio…
• Per soddisfare il sogno di bambino di avere a casa un vero arcade
da sala giochi
• Per giustificare la sperimentazione di tecnologie
• IoT: connettere l’arcade Bar-Top a Internet
• Desktop: se sviluppi solo Web e Cloud, il desktop te lo
dimentichi
• Giochi: un hobby ce lo devi pure avere!
Cos’è un Arcade Bar-Top?
• Un arcade è il mobile (in legno) di un gioco da Sala
Giochi o da Bar
• Un arcade è tipicamente un mobile ad altezza piena
• Un arcade Bar-Top è un arcade «senza la parte
sotto» da appoggiare ad un banco
• In pratica è più piccolo e comodo
• Ci sono i siti con gli schemi di taglio già pronti
• https://3dwarehouse.sketchup.com/model.html?i
d=f82c9367bc2cd4fe7a3f6e2972c8483e
• http://www.classicarcadecabinets.com/elevator-
action.html)
Sketching with wood!
• Se avessi dovuto fare il lavoro
ingegneristicamente, alla fine non sarei
mai riuscito a farlo
• Come dire…è tutto storto, ma sta in
piedi
• Avevo un seghetto alternativo, un
avvitatore e un pezzo di legno…
• Il metro e la matita solo per indicare la
direzione…
• E c’era la curva maledetta…basta farla
dritta!
“E poi c’è il monitor…”
• Cosa ci va dentro un arcade?
• Un monitor CRT possibilmente ruotato in
verticaleanche no vero? Io non sono così
• I puristi del retrogaming voglioni il CRT con le linee del
raster che si vedono! (e sul LCD le simulano!)
• Non sono purista…meglio un LCD, più leggero
• almeno per me
• Una scheda Jamma (e altre)Ma c’è la Rasberry e
MAME…
• Una gettonieraBoh, non mi interessa l’effetto «Fonzie»
• Il JoystickEh, quello sì, con i microswitch che fanno
click/clack
Tip sul monitor da recuperare!
• HDMI2HDMIOK
• Ma difficilmente, ad oggi recuperate un monitor HDMI per
queste cose
• VGA2VGAOK…no
• Certo, nativamente la cosa funziona…
• …ma la R.PI non è VGA
• HDMI2VGANO!
• Adattatore con alimentazione, altrimenti la Raspberry non
funziona (c’è un pin disabilitato sulla PI per protezione…potenze
assorbite)
• Soluzione? HDMI2DVI!
• Non c’è l’audio, ma poco importa…
• Ah certo…il monitor deve essere DVI….
Il mercatino delle pulci…
• A parte il joystick, da comprare assolutamente…
• …tutto il resto si recupera
• Eh sì…costa meno
• Ad esempio un monitor LCD: costa meno aprirne uno e recuperarne l’interno
• Poi c’è la Raspberry che oramai hanno tutti…
• E poi ci si sbizzarrisce
• Casse audio
• Lettori USB per SD Card
• Lampade USB…
• E ricordatevi di una tastiera wireless
• Quelle da Mediacenter
Arranging things…
Ah, la Raspberry PI 3…
• WARNING! POLEMICA?!?!?!?
• 40€/Linux Raspian…
• Ma posso giocare a MAME anche sul PC se son
«poveretto»
• MAME
• Dove trovo la distribuzione?
• Anime pie…
• Poi lo configuro
• sudo nano /boot/config.txt
• E via di sudo apt-get…per scaricare SDL, QT…
• E poi finalmente….lento
• Overclock!
Marco is lazy!
• Pigrizia per me significa essere focalizzato
• Non ho voglia di trattare dettagli non centrati sul problema
• RECAP: sviluppare IoT, Azure, Games, non ricompilare MAME (non c’è…solo
qualche anima pia)
• http://choccyhobnob.com/ per avere una distribuzione per Raspbian
• Oppure PiPlay o Retropie
• Per questo amo Microsoft, Windows, .NET, Visual Studio
• x86/x64 are better than ARM
• Linux e Windows full…
• .NET Core
• Ovviamente Windows 10!
Un mondo nuovo per le schede madri x86/x64
• MicroATX?
• Meglio MiniITX, Mini STX, Intel NUC
• ATX power supply?
• Meglio Notebook 19V
• SATA/SSD?
• Meglio mSATA2
• Processore su socket?
• Meglio SOCCeleron QuadCore 3160! Fanless!
• Il tutto significa meno cavi, più semplice da montare
• Un mondo nuovo:
• Pochi produttori MainStream (AsRock, GigaByte pochissimi modelli)
• Mondo industrialSì, qui vado fuori budget (150€ min senza RAM e disco)
LVDS
mSATA2
19V
MiniPC!
• Intel Atom 3735/Z8300Quad Core
• 2Gb RAM
• SSD 32Gb
• HDMI
• Slot SD Card
• Ethernet, WiFi, Bluetooth
• 12V + Jack!
• Windows 10 licenziato
• Nasce e muore con Windows 10
• Già installato
• Non è possibile installare Linux (?!?!?!)
• Non morirò
• Permettete, non è una questione di
guerra Windows/Linux
• TOT < 100€ su Amazon o nelle fiere
• Su AliExpress e simili si trova anche la sola scheda!
• https://it.aliexpress.com/item/Newest-fanless-PICO-itx-motherboard-105-70mm-itx-
mainboard-Z3735F/32563532409.html
Joystick
• Simbolo di un arcade
• Microswitch («click clack»)
• Si comprano i kit con leva, tasti, cavi e
controller
• ½ giocatori…
• Si vede come un Joystick USB
• http://www.arcadeworlduk.com/
• In Italia Futura Elettronica, ad
esempio, ma se li fanno pagare e non
c’è molta scelta
Scaling out arcade…
• Gestire i giochi sull’arcade remotamente
• Anche se Windows 10 e con la tastiera, comunque è scomodo
• Ho il mio disco «Retrogaming» in rete a casa
• Ad un evento fieristico (Radioamatore di Pordenone) vorrei
portare un po’ di questi arcade
• Come li aggiorno?
• Due soluzioni
• OneDrive
• Azure
OneDrive
• Creato account ad hoc per l’arcade
• Login su Windows 10
• Bisogna fare l’autenticazione automatica
• Configurato One Drive
• Spostato su SD Card…alla faccia di OneDrive che non si può
spostare, ma su Dischi removibili si!
• Gestisco dal mio desktop l’account e carico nuove ROM
• Tutti gli arcade con lo stesso account
• Aggiornati!
• Anche con le nuove versioni di MAME!
Azure
• Azure Storage
• Costa meno se superi i 5Gb (credo…ho perso il conto)
• Endpoint automatico, readonly
• Se il business scalasse (ah ah ah ah ah ah)CDN!
• Creare un wall per gli utenti usano l’arcade
• Messaggistica
• Punteggi
• Ma come scarico le ROM?
Launch Shell: Buy or Make
• Si trovano delle console di lancio per MAME
• Ora è direttamente gestita da MAME stesso
• Ma con il Joystick non è comoda ed è piena di opzioni
• E dov’è il divertimento del programmatore?
• Andiamo a programmare!
• Universal Windows App con .NET Core
• XAML per la UI
• Attenzione ad accedere ad uno storage removibile per la SD
• Problema: UWP supporta solo i controller per XBOX 360 e XBOX One.
• Windows.UI.Input.Gamepads
• Tutti i joystick USB (visti da windows come HID) non funzionano
• Quindi?
DEMOWPF/UWP LaunchBox
Perchè .NET Core?
• La teoria dice che se scelgo Windows (e basta) allora posso usare:
• .NET Full (.NET 2015, 4.6)
• WPF
• Joystick USB che voglio
• Ma ci sono altre cose
• Sviluppare giochi
• Un altro progetto
Sviluppare giochi con XAML
• Puro divertimento
• Nessuna brama di diventare game developer
• Amo gli anni ‘80 e il Commodore 64….e gli schiacciapensieri!
• 2D
• Pochi colori
• Pochi fronzoli
• Tanto divertimento
• Manca così poco a finirlo…ma non ho mai tempo! 
DEMOMario Bros XAML/WPF
…e ancora non si è capito perchè .NET Core…
Back to the Raspberry PI!
• Windows 10 IoT Core
• Ricordate che devo giustificare tutto questo come lavoro a
mia moglie? IoT, Azure…. 
• Imparo UWP e magari lo uso anche per lavoro
• Non parliamo del futuro di UWP
• Raspberry PI Zero
• Gameboy Zero
• Componenti Aftermarket
• Ho un bellissimo schermo
5 pollici da usare
comprato su Banggood!
DEMOMario Bros UWP
Conclusioni
• Non serve gran manualità se non ci si arrabbia se è «storto»
• Tanta prototipazione perché componenti possono variare e le scelte non sono
ovvie all’inizio
• Progetto Lento
• Amate i cinesi!
• Spenderete tanto in attrezzi!
• Seghetto alternativo e levigatrice
• Punte a tazza e frese
• Alimentazione, pulsanti, cavi
• Fascette a go-go!
• E a seconda del monitor, tutto cambia!!!!!
To Do Hardware
• Trovare il tempo! 
• Spegnimento e accensione
• Con un MiniPC c’è il problema di spegnerlo e accenderlo senza tasto
• Spegnimento ok….comando
• Accensione? Standby? WakeonLan? Accensione con Mouse
• Anche con la Raspberry c’è il problema dello spegnimento «violento» in caso di Raspbian
• Stampe adesive
• Preparare il progetto definitivo
• Legno tagliato al laser
• Trovare i componenti interni ottimali (aspetto la Fiera Radioamatore 2 di Pordenone)
• Arcade Fullsize
To Do Software
• LaunchBox
• Azure
• Completarlo
• Giochi
• Completarne un po’
• Esercitarsi con i giochi anni ‘80 (io uso il Commodore 64)
• .NET Core su Linux
• Xamarin?
• HTML5?
• Curioso su SkiaSharp (https://developer.xamarin.com/guides/cross-platform/drawing/)
• marco.parenzan@1nn0va.it
• http://www.slideshare.net/marco.parenzan
• http://github.com/marcoparenzan
Thank You

Más contenido relacionado

Similar a From building an Arcade Bartop to fun with games in Windows 10

Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014
Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014
Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014Michele Pirovano
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Giuseppe Cramarossa
 
Indie games make the right choice
Indie games   make the right choiceIndie games   make the right choice
Indie games make the right choiceGiovanni Frigo
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphonedega1999
 
Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Gianfranco Pulitano
 
Lotus Foundations Start 1.0 Italian Version
Lotus Foundations Start 1.0 Italian VersionLotus Foundations Start 1.0 Italian Version
Lotus Foundations Start 1.0 Italian VersionEnzo Stanzione
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileEsempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileSteve Maraspin
 
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan
 
Costruire una stampante 3D opensource
Costruire una stampante 3D opensourceCostruire una stampante 3D opensource
Costruire una stampante 3D opensourceSalvatore Balestrino
 
Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8
Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8
Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8Codemotion
 
Facciamo un gioco retrò in HTML5 con PICO-8
Facciamo un gioco retrò in HTML5 con PICO-8Facciamo un gioco retrò in HTML5 con PICO-8
Facciamo un gioco retrò in HTML5 con PICO-8Giorgio Pomettini
 

Similar a From building an Arcade Bartop to fun with games in Windows 10 (20)

Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014
Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014
Come sfruttare la Procedural Content Generation - Presentazione svilupparty 2014
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
 
Indie games make the right choice
Indie games   make the right choiceIndie games   make the right choice
Indie games make the right choice
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphone
 
Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !Mr.Robot - How To Make a Robot !
Mr.Robot - How To Make a Robot !
 
Capire l'informatica
Capire l'informaticaCapire l'informatica
Capire l'informatica
 
Python <3 Azure
Python <3 AzurePython <3 Azure
Python <3 Azure
 
Passare A Mac
Passare A MacPassare A Mac
Passare A Mac
 
Lotus Foundations Start 1.0 Italian Version
Lotus Foundations Start 1.0 Italian VersionLotus Foundations Start 1.0 Italian Version
Lotus Foundations Start 1.0 Italian Version
 
Lotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo StanzioneLotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo Stanzione
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileEsempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
 
Apple App World
Apple App WorldApple App World
Apple App World
 
Cell Programming 1
Cell Programming 1Cell Programming 1
Cell Programming 1
 
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
 
Costruire una stampante 3D opensource
Costruire una stampante 3D opensourceCostruire una stampante 3D opensource
Costruire una stampante 3D opensource
 
Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8
Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8
Giorgio Pomettini - Facciamo un gioco retrò in HTML5 con PICO-8
 
Facciamo un gioco retrò in HTML5 con PICO-8
Facciamo un gioco retrò in HTML5 con PICO-8Facciamo un gioco retrò in HTML5 con PICO-8
Facciamo un gioco retrò in HTML5 con PICO-8
 

Más de Marco Parenzan

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerMarco Parenzan
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxMarco Parenzan
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Marco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and AzureMarco Parenzan
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralMarco Parenzan
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogameMarco Parenzan
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Marco Parenzan
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETMarco Parenzan
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsMarco Parenzan
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetMarco Parenzan
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .netMarco Parenzan
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .netMarco Parenzan
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicMarco Parenzan
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTMarco Parenzan
 

Más de Marco Parenzan (20)

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineer
 
Azure Hybrid @ Home
Azure Hybrid @ HomeAzure Hybrid @ Home
Azure Hybrid @ Home
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT Solutions
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and Azure
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NET
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data Solutions
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnet
 
Azure IoT Central
Azure IoT CentralAzure IoT Central
Azure IoT Central
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .net
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETT
 

From building an Arcade Bartop to fun with games in Windows 10

  • 1. From building an Arcade Bartop to fun with games in Windows 10 Marco Parenzan
  • 2. @marco_Parenzan – marco.parenzan@1nn0va.it Community Lead 1nn0va – Pordenone Microsoft Azure MVP 2016 Microsoft Azure Trainer – Cloud Academy Inc. Curious about Retrogaming and IoT Marco Parenzan
  • 4. Giustificazione per innalzare il WAF (Wife Acceptance Factor)
  • 5. Perchè un Arcade Bar-Top? • Per sperimentarsi con gli attrezzi e con il legno • …e sfruttare il fatto che tua moglie ti ha chiesto di fare un lavoro in legno… • …almeno per me…di giocare alla fine non ci penso proprio… • Per soddisfare il sogno di bambino di avere a casa un vero arcade da sala giochi • Per giustificare la sperimentazione di tecnologie • IoT: connettere l’arcade Bar-Top a Internet • Desktop: se sviluppi solo Web e Cloud, il desktop te lo dimentichi • Giochi: un hobby ce lo devi pure avere!
  • 6. Cos’è un Arcade Bar-Top? • Un arcade è il mobile (in legno) di un gioco da Sala Giochi o da Bar • Un arcade è tipicamente un mobile ad altezza piena • Un arcade Bar-Top è un arcade «senza la parte sotto» da appoggiare ad un banco • In pratica è più piccolo e comodo • Ci sono i siti con gli schemi di taglio già pronti • https://3dwarehouse.sketchup.com/model.html?i d=f82c9367bc2cd4fe7a3f6e2972c8483e • http://www.classicarcadecabinets.com/elevator- action.html)
  • 7. Sketching with wood! • Se avessi dovuto fare il lavoro ingegneristicamente, alla fine non sarei mai riuscito a farlo • Come dire…è tutto storto, ma sta in piedi • Avevo un seghetto alternativo, un avvitatore e un pezzo di legno… • Il metro e la matita solo per indicare la direzione… • E c’era la curva maledetta…basta farla dritta!
  • 8. “E poi c’è il monitor…” • Cosa ci va dentro un arcade? • Un monitor CRT possibilmente ruotato in verticaleanche no vero? Io non sono così • I puristi del retrogaming voglioni il CRT con le linee del raster che si vedono! (e sul LCD le simulano!) • Non sono purista…meglio un LCD, più leggero • almeno per me • Una scheda Jamma (e altre)Ma c’è la Rasberry e MAME… • Una gettonieraBoh, non mi interessa l’effetto «Fonzie» • Il JoystickEh, quello sì, con i microswitch che fanno click/clack
  • 9. Tip sul monitor da recuperare! • HDMI2HDMIOK • Ma difficilmente, ad oggi recuperate un monitor HDMI per queste cose • VGA2VGAOK…no • Certo, nativamente la cosa funziona… • …ma la R.PI non è VGA • HDMI2VGANO! • Adattatore con alimentazione, altrimenti la Raspberry non funziona (c’è un pin disabilitato sulla PI per protezione…potenze assorbite) • Soluzione? HDMI2DVI! • Non c’è l’audio, ma poco importa… • Ah certo…il monitor deve essere DVI….
  • 10. Il mercatino delle pulci… • A parte il joystick, da comprare assolutamente… • …tutto il resto si recupera • Eh sì…costa meno • Ad esempio un monitor LCD: costa meno aprirne uno e recuperarne l’interno • Poi c’è la Raspberry che oramai hanno tutti… • E poi ci si sbizzarrisce • Casse audio • Lettori USB per SD Card • Lampade USB… • E ricordatevi di una tastiera wireless • Quelle da Mediacenter
  • 12. Ah, la Raspberry PI 3… • WARNING! POLEMICA?!?!?!? • 40€/Linux Raspian… • Ma posso giocare a MAME anche sul PC se son «poveretto» • MAME • Dove trovo la distribuzione? • Anime pie… • Poi lo configuro • sudo nano /boot/config.txt • E via di sudo apt-get…per scaricare SDL, QT… • E poi finalmente….lento • Overclock!
  • 13. Marco is lazy! • Pigrizia per me significa essere focalizzato • Non ho voglia di trattare dettagli non centrati sul problema • RECAP: sviluppare IoT, Azure, Games, non ricompilare MAME (non c’è…solo qualche anima pia) • http://choccyhobnob.com/ per avere una distribuzione per Raspbian • Oppure PiPlay o Retropie • Per questo amo Microsoft, Windows, .NET, Visual Studio • x86/x64 are better than ARM • Linux e Windows full… • .NET Core • Ovviamente Windows 10!
  • 14. Un mondo nuovo per le schede madri x86/x64 • MicroATX? • Meglio MiniITX, Mini STX, Intel NUC • ATX power supply? • Meglio Notebook 19V • SATA/SSD? • Meglio mSATA2 • Processore su socket? • Meglio SOCCeleron QuadCore 3160! Fanless! • Il tutto significa meno cavi, più semplice da montare • Un mondo nuovo: • Pochi produttori MainStream (AsRock, GigaByte pochissimi modelli) • Mondo industrialSì, qui vado fuori budget (150€ min senza RAM e disco) LVDS mSATA2 19V
  • 15. MiniPC! • Intel Atom 3735/Z8300Quad Core • 2Gb RAM • SSD 32Gb • HDMI • Slot SD Card • Ethernet, WiFi, Bluetooth • 12V + Jack! • Windows 10 licenziato • Nasce e muore con Windows 10 • Già installato • Non è possibile installare Linux (?!?!?!) • Non morirò • Permettete, non è una questione di guerra Windows/Linux • TOT < 100€ su Amazon o nelle fiere • Su AliExpress e simili si trova anche la sola scheda! • https://it.aliexpress.com/item/Newest-fanless-PICO-itx-motherboard-105-70mm-itx- mainboard-Z3735F/32563532409.html
  • 16.
  • 17. Joystick • Simbolo di un arcade • Microswitch («click clack») • Si comprano i kit con leva, tasti, cavi e controller • ½ giocatori… • Si vede come un Joystick USB • http://www.arcadeworlduk.com/ • In Italia Futura Elettronica, ad esempio, ma se li fanno pagare e non c’è molta scelta
  • 18. Scaling out arcade… • Gestire i giochi sull’arcade remotamente • Anche se Windows 10 e con la tastiera, comunque è scomodo • Ho il mio disco «Retrogaming» in rete a casa • Ad un evento fieristico (Radioamatore di Pordenone) vorrei portare un po’ di questi arcade • Come li aggiorno? • Due soluzioni • OneDrive • Azure
  • 19. OneDrive • Creato account ad hoc per l’arcade • Login su Windows 10 • Bisogna fare l’autenticazione automatica • Configurato One Drive • Spostato su SD Card…alla faccia di OneDrive che non si può spostare, ma su Dischi removibili si! • Gestisco dal mio desktop l’account e carico nuove ROM • Tutti gli arcade con lo stesso account • Aggiornati! • Anche con le nuove versioni di MAME!
  • 20. Azure • Azure Storage • Costa meno se superi i 5Gb (credo…ho perso il conto) • Endpoint automatico, readonly • Se il business scalasse (ah ah ah ah ah ah)CDN! • Creare un wall per gli utenti usano l’arcade • Messaggistica • Punteggi • Ma come scarico le ROM?
  • 21. Launch Shell: Buy or Make • Si trovano delle console di lancio per MAME • Ora è direttamente gestita da MAME stesso • Ma con il Joystick non è comoda ed è piena di opzioni • E dov’è il divertimento del programmatore? • Andiamo a programmare! • Universal Windows App con .NET Core • XAML per la UI • Attenzione ad accedere ad uno storage removibile per la SD • Problema: UWP supporta solo i controller per XBOX 360 e XBOX One. • Windows.UI.Input.Gamepads • Tutti i joystick USB (visti da windows come HID) non funzionano • Quindi?
  • 23. Perchè .NET Core? • La teoria dice che se scelgo Windows (e basta) allora posso usare: • .NET Full (.NET 2015, 4.6) • WPF • Joystick USB che voglio • Ma ci sono altre cose • Sviluppare giochi • Un altro progetto
  • 24. Sviluppare giochi con XAML • Puro divertimento • Nessuna brama di diventare game developer • Amo gli anni ‘80 e il Commodore 64….e gli schiacciapensieri! • 2D • Pochi colori • Pochi fronzoli • Tanto divertimento • Manca così poco a finirlo…ma non ho mai tempo! 
  • 26. …e ancora non si è capito perchè .NET Core…
  • 27. Back to the Raspberry PI! • Windows 10 IoT Core • Ricordate che devo giustificare tutto questo come lavoro a mia moglie? IoT, Azure….  • Imparo UWP e magari lo uso anche per lavoro • Non parliamo del futuro di UWP • Raspberry PI Zero • Gameboy Zero • Componenti Aftermarket • Ho un bellissimo schermo 5 pollici da usare comprato su Banggood!
  • 29. Conclusioni • Non serve gran manualità se non ci si arrabbia se è «storto» • Tanta prototipazione perché componenti possono variare e le scelte non sono ovvie all’inizio • Progetto Lento • Amate i cinesi! • Spenderete tanto in attrezzi! • Seghetto alternativo e levigatrice • Punte a tazza e frese • Alimentazione, pulsanti, cavi • Fascette a go-go! • E a seconda del monitor, tutto cambia!!!!!
  • 30. To Do Hardware • Trovare il tempo!  • Spegnimento e accensione • Con un MiniPC c’è il problema di spegnerlo e accenderlo senza tasto • Spegnimento ok….comando • Accensione? Standby? WakeonLan? Accensione con Mouse • Anche con la Raspberry c’è il problema dello spegnimento «violento» in caso di Raspbian • Stampe adesive • Preparare il progetto definitivo • Legno tagliato al laser • Trovare i componenti interni ottimali (aspetto la Fiera Radioamatore 2 di Pordenone) • Arcade Fullsize
  • 31. To Do Software • LaunchBox • Azure • Completarlo • Giochi • Completarne un po’ • Esercitarsi con i giochi anni ‘80 (io uso il Commodore 64) • .NET Core su Linux • Xamarin? • HTML5? • Curioso su SkiaSharp (https://developer.xamarin.com/guides/cross-platform/drawing/)