Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect,...

52
palais des congrès Paris 7, 8 et 9 février 2012

Transcript of Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect,...

Page 1: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

palais des congrès Paris

7, 8 et 9 février 2012

Page 2: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA

Nathanaël MARCHAND

Nathalie PETTIERSo@t

Page 3: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

PrésentationOutils multiplateformeCouche de communicationArchitecture des jeuxLogique jeuxGestuelle avec KinectDesignBackOffice

SOMMAIRE

Page 4: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Introduction

Page 5: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Equipe

Cyril CATHALAExpert .NETBlog : http://cyril.cathala.orgTwitter : @CyrilCathala

Nathalie PETTIERExperte Silverlight / WPFBlog : blog.devndesign.frTwitter : @nathaliepettier

David POULINExpert .NET

Nathanaël MARCHANDExpert .NETBlog : http://blog.ou-bien.netTwitter : @NatMarchand

Merci à :Sébastien FERRAND

Expert .NET

So@t [email protected]/SoatExpertsNET

Page 6: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

SSII spécialisé dans le développement10 ans de savoir-faire .Net / Java

250 collaborateursTous les métiers du développement

4 ans d’expertise Silverlight / WPFSociété Générale, Dexia, Vente Privée, Canal+, M6, Radio France, Crédit Agricole, Eurosport, Sarenza.com

So@t en quelques mots …

Page 7: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

So@t Experts

3 pôles d’expertise à So@t : .NET / Java / AgilitéCapitalisation (publications sur le blog, production de support de formation)Formations externes ciblées expertiseAnimation de conférencesPublication d’applications de référence :

HappyNet, application compositeSoPrism, générateur d’application Silverlight intégrant le framework PRISM pour créer des applications compositesSoMVC, générateur d’application ASP.Net MVC 3 basé sur la structure d’une base de donnée SQL Server

Support technique dans les forums communautaires et groupes (developpez.com, facebook, etc.)

Page 8: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Présentation des jeux multi-écrans

Page 9: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

VIDEO

Présentation de SoNuts & SoTank

Page 10: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

SoNuts SoTank

Faites volez un écureuil !2DKinect3 écrans : XNA, Silverlight, Windows Phone

Pilotez un tank 3D2D + 3DKinect2 écrans : XNA, Windows Phone

Présentation des jeux

=> Équipe de développeurs débutante dans les jeux vidéos

Page 11: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Schéma global de communication

Hot Spot Wifi

BDD

Dossier PartagéServeur de jeux = TV + PC + Kinect

Back Office

Joueur 2

Joueur 1

Web Service

Reconnaissance joueurs

+ scores

Autres écrans (observateurs du jeu)

Page 12: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Architecture

Page 13: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Architecture des jeux

Communicator

Messaging Messaging

SoNuts SoTank

Page 14: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Architecture des jeux : SoNuts

Communicator

Messaging

Windows WP7 Silverlight

Clients

Game Logic

Windows WP7 Silverlig

ht

Page 15: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Architecture des jeux : SoTank

Communicator

Messaging

Windows WP7Silverlig

ht

Clients 3D

Game Logic 2D

WP7

Game Logic 3D

Windows

Silverlight

Client 2D

Page 16: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Couche de communication

Page 17: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

TCPConnecté FiableOrdonnéContrôles de flux et congestion

UDPDéconnectéSimple & RapideAucune garantie de fiabilité ou d’ordreGestion de flux manuelle

UDP vs TCP

Page 18: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

TCP semble mieux …… FAUX !

La fiabilité a un prix« Flot » de donnéesAcquittementRenvoi d’un paquet perdu

Jeux = Temps réelBonus : Multicast !

UDP vs TCP

Page 19: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Outils multiplateforme

Page 20: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Partage du code

Portable Class Library.NET Framework, Silverlight, WP7, Xbox 360Certaines dll supportées

Project LinkerSynchronisation de projets via liens symboliques

Rx Framework

Outils multiplateforme

Page 21: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

DEMO

ArborescenceCommunication

Page 22: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Logique des jeux

Page 23: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

SoNuts : Communication client / serveur

Statut initial

Partie en cours

Joueurs prêts

Partie terminée

Ecureuil tapé (gentimment)

Ecureuil volant

Ecureuil par terre

Jeu Joueur

Mises à jour :- position de l’écureil- position oiseaux- position bonus

Page 24: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Client « stupide » sans aucune prédiction

Approche #1

Position 1 [Server]

Position 1 [Server]

Serveur

Client

Position 2 [Server]

Position 2 [Server]Position 3

[Server]

Position 3 [Server]

réseau

Page 25: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Client « stupide » sans aucune prédiction

Approche #1

Position 1 [Server]

Position 1 [Server]

Serveur

Client

Action joueur [Client]

Position 3 [Server]

Position 3 [Server]

réseau

Action joueur [Client]

Page 26: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Approximation côté client en attendant le retour serveurInterpolation lors de la synchronisation serveur

Approche #2

Position + Vitesse 1 [Server]

Position + Vitesse 1 [Server]

Serveur

Client

Position + Vitesse 2 [Server]

Position + Vitesse 2 [Server]

interpolation + lissage

Position 1.1 [Client]

Position 1.2 [Client]

réseau

Page 27: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Approximation côté client en attendant le retour serveurLissage lors de la synchronisation serveur

Approche #2

interpolation client

position serveur

Page 28: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Le client prédit les mouvements à chaque action du joueurCorrection par historisation des actions passées

Approche #3

Position + Vitesse 1 [Server]

Position 1 [Server]

Serveur

Client

prédiction

Position + Vitesse 1.1 [Client]

Position + Vitesse 1.2 [Client]

réseau

Action joueur [Client]

Position + Vitesse 2 [Server]

Position + Vitesse 2 [Server]

Action joueur [Client]

Page 29: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

DEMO

Lissage

Page 30: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Workflow de jeu comparable à SoNuts

Un client PC plus complexe à animer

Des responsabilités moins décentralisées

Des problématiques similaires

SoTank : Communication client / serveur

Page 31: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Extensibilité du content pipeline: Génération du terrain via une texture (Height

Map) Positionnement des arbres

Shaders Effets pyrotechniques Billboarding des arbres

Utilisation intensive des Maths! Matrices en folies & Transformations dans

l’espace

SoTank : La puissance de XNA

Page 32: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Différence dans les API XNA: HiDef Reach

Silverlight ne possède pas tout XNA

Considérations Matérielles

SoTank & SoNuts: Portabilité

Page 33: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Gestures avec Kinect

Page 34: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Kinect SDK pour Windows

3 flux disponiblesImageProfondeurAudio

Suivi de squeletteNotion de joint (point de repère)

Présentation de Kinect

Page 35: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Présentation de Kinect

Page 36: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Gesture sur SoNuts

Amplitude = α2 + α1

α1

α2

Page 37: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Gesture sur SoTank

Direction du canon

x

y

z Déclenchement du canon : mouvement haut vers bas

+

-

Page 38: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

DEMO

Gestures Kinect(ou comment avoir l’air intelligent)

Page 39: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Design

Le design offre une vrai plus value à tous les projets numériques, une promesse « d’expérience utilisateur » digne de ce nom.

Page 40: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Processus de développement

Avant Après

=> Collaboration Designer / Développeur

Page 41: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Images pour WindowsPhone:SplashScreenIcones : tile, icone application

Images communes : Sprites / Textures 2DPersonnages (écureuil, oiseaux, panda)Environnement (arbre, panneaux, nuages, noisettes, etc.)

Hauteur, largeur identiques pour chaque image

Page 42: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Images pour WindowsPhone:SplashScreenIcones : tile, icone application

Images communes : Sprites / Textures 2DSignalétiques (icônes du menu, etc.)

3D : tank, environnement (sol, arbres, etc.)

Texture qui génère les reliefs du terrainVue « carte » du terrain

Page 43: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

BackOffice : SoGame

Le « back » se doit d’être aussi joli et à la hauteur que le « front »

Page 44: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Envoi des photos des joueurs

Application WPF « Metro Style » qui gère :

Inscription des joueurs

Présentation de SoGame

Récupération des scores et photos

Synchronisation des joueurs et parties

Reconnaissance faciale joueurs

Top des joueurs

Page 45: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Lancement de la capture de flux vidéos dans le Kinect runtime :

Prise de photo avec Kinect

En fin de la partie, envoi du score + photo via web service

L’image est sauvegardée sur la machine

var runtime = Runtime.Kinects[0];runtime.Initialize(RuntimeOptions.UseColor);//Camera vidéoruntime.VideoStream.Open(ImageStreamType.Video, 2, ImageResolution.Resolution640x480, ImageType.Color);runtime.VideoFrameReady += OnVideoFrameReady;

private void OnVideoFrameReady(object s, ImageFrameReadyEventArgs e){if (_takePicture)

var screenshot = e.ImageFrame.ToBitmapSource();

}

Déclenchement unique de la photo durant la partie…

Page 46: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

OPENCV : bibliothèque Open Source de traitement d’image en temps réelEmguCV : permet d’utiliser la librairie OPENCV dans un environnement .NET

Comment ça marche ?Chargement haarcascades pour la détection de visageInitialiser le périphérique de captureDetectHaarCascade et EigenObjectRecognizer pour chaque image à analyser

Reconnaissance faciale

Page 47: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Lancement de la capture de flux vidéos

Comment faire avec Kinect ?

A chaque évènement OnVideoFrameReady, on utilise la méthode DetectHaarCascade pour détecter des visages Parmi ces visages, on compare avec notre liste de visages enregistrés (BDD) avec la méthode EigenObjectRecognizer Si un visage est reconnu, on le retire de la liste pour continuer la comparaison sur les autres visages

NOM Prénom

Page 48: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

DEMO

Reconnaissance faciale

Page 49: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Conclusion

Page 50: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Ecosystème Microsoft

Visual Studio pour tout unirFaire des jeux c’est « facile »

Le design c’est important !

Code source : http://sogames.codeplex.comBlog : blog.soat.fr

Conclusion

Page 51: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Viens chercher le fun !Stand So@t (n°39)

Envie d’essayer ?

Page 52: Palais des congrès Paris 7, 8 et 9 février 2012. Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie.

Q&A

Vous avez des questions ?

Nous avons des réponses

Cyril Cathala – http://cyril.cathala.org - @CyrilCathalaNathanaël Marchand – http://blog.ou-bien.net - @NatMarchandNathalie Pettier – http://blog.devndesign.fr - @NathaliePettier