La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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ésentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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

2 Jeux multi-écrans : envolez-vous avec Kinect, Silverlight et WP7 Cyril CATHALA Nathanaël MARCHAND Nathalie PETTIER

3 Présentation Outils multiplateforme Couche de communication Architecture des jeux Logique jeux Gestuelle avec Kinect Design BackOffice SOMMAIRE

4 Introduction

5 Equipe Cyril CATHALA Expert.NET Blog : Twitter Nathalie PETTIER Experte Silverlight / WPF Blog : blog.devndesign.fr Twitter David POULIN Expert.NET Nathanaël MARCHAND Expert.NET Blog : Twitter Merci à : Sébastien FERRAND Expert.NET Experts facebook.com/SoatExpertsNET

6 SSII spécialisé dans le développement 10 ans de savoir-faire.Net / Java 250 collaborateurs Tous les métiers du développement 4 ans dexpertise Silverlight / WPF Société Générale, Dexia, Vente Privée, Canal+, M6, Radio France, Crédit Agricole, Eurosport, Sarenza.com en quelques mots …

7 Experts 3 pôles dexpertise à :.NET / Java / Agilité Capitalisation (publications sur le blog, production de support de formation) Formations externes ciblées expertise Animation de conférences Publication dapplications de référence : HappyNet, application composite SoPrism, générateur dapplication Silverlight intégrant le framework PRISM pour créer des applications composites SoMVC, générateur dapplication ASP.Net MVC 3 basé sur la structure dune base de donnée SQL Server Support technique dans les forums communautaires et groupes (developpez.com, facebook, etc.)

8 Présentation des jeux multi-écrans

9 VIDEO Présentation de SoNuts & SoTank

10 SoNutsSoTank Faites volez un écureuil ! 2D Kinect 3 écrans : XNA, Silverlight, Windows Phone Pilotez un tank 3D 2D + 3D Kinect 2 écrans : XNA, Windows Phone Présentation des jeux => Équipe de développeurs débutante dans les jeux vidéos

11 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)

12 Architecture

13 Architecture des jeux Communicator Messaging SoNutsSoTank

14 Architecture des jeux : SoNuts Communicator Messaging Windows WP7 Silverlight Clients Game Logic Window s WP7 Silverligh t

15 Architecture des jeux : SoTank Communicator Messaging Windows WP7 Silverlight Clients 3D Game Logic 2D WP7 Game Logic 3D Window s Silverligh t Client 2D

16 DEMO Arborescence des projets

17 Couche de communication

18 TCP Connecté Fiable Ordonné Contrôles de flux et congestion UDP Déconnecté Simple & Rapide Aucune garantie de fiabilité ou dordre Gestion de flux manuelle UDP vs TCP

19 TCP semble mieux … … FAUX ! La fiabilité a un prix « Flot » de données Acquittement Renvoi dun paquet perdu Jeux = Temps réel Bonus : Multicast ! UDP vs TCP

20 Outils multiplateforme

21 Partage du code Portable Class Library.NET Framework, Silverlight, WP7, Xbox 360 Certaines dll supportées Project Linker Synchronisation de projets via liens symboliques Rx Framework Outils multiplateforme

22 DEMO Arborescence Communication

23 Logique des jeux

24 SoNuts : Communication client / serveur Statut initial Partie en cours Joueurs prêts Partie terminée Ecureuil tapé (gentimment) Ecureuil volant Ecureuil par terre JeuJoueur Mises à jour : - position de lécureil - position oiseaux - position bonus

25 Approche #1 : Client « stupide » sans aucune prédiction Approche #2 : Approximation côté client en attendant le retour serveur Lissage lors de la synchronisation serveur Approche #3 : Le client prédit les mouvements à chaque action du joueur Correction par historisation des actions passées SoNuts : Performances et synchronisation avec le serveur

26 Client « stupide » sans aucune prédiction Approche #1 Position 1 [Server] ServeurClient Position 2 [Server] Position 3 [Server] réseau

27 Client « stupide » sans aucune prédiction Approche #1 Position 1 [Server] ServeurClient Action joueur [Client] Position 3 [Server] réseau Action joueur [Client]

28 Approximation côté client en attendant le retour serveur Interpolation lors de la synchronisation serveur Approche #2 Position + Vitesse 1 [Server] ServeurClient Position + Vitesse 2 [Server] interpolation + lissage Position 1.1 [Client] Position 1.2 [Client] réseau

29 Approximation côté client en attendant le retour serveur Lissage lors de la synchronisation serveur Approche #2 interpolation client position serveur

30 Le client prédit les mouvements à chaque action du joueur Correction 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] Action joueur [Client]

31 DEMO Lissage

32 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

33 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 lespace SoTank : La puissance de XNA

34 Différence dans les API XNA: HiDef Reach Silverlight ne possède pas tout XNA Considérations Matérielles SoTank & SoNuts: Portabilité

35 Gestures avec Kinect

36 Kinect SDK pour Windows 3 flux disponibles Image Profondeur Audio Suivi de squelette Notion de joint (point de repère) Présentation de Kinect

37

38 Gesture sur SoNuts Amplitude = α2 + α1 α1α1 α2α2

39 Gesture sur SoTank Direction du canon x y z Déclenchement du canon : mouvement haut vers bas + -

40 DEMO Gestures Kinect (ou comment avoir lair intelligent)

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

42 Processus de développement AvantAprès => Collaboration Designer / Développeur

43 Images pour WindowsPhone: SplashScreen Icones : tile, icone application Images communes : Sprites / Textures 2D Personnages (écureuil, oiseaux, panda) Environnement (arbre, panneaux, nuages, noisettes, etc.) Hauteur, largeur identiques pour chaque image

44 Images pour WindowsPhone: SplashScreen Icones : tile, icone application Images communes : Sprites / Textures 2D Signalétiques (icônes du menu, etc.) 3D : tank, environnement (sol, arbres, etc.) Texture qui génère les reliefs du terrainVue « carte » du terrain

45 BackOffice : SoGame Le « back » se doit dêtre aussi joli et à la hauteur que le « front »

46 Envoi des photos des joueurs Application WPF « Metro Style » qui gère : Inscriptio n des joueurs Présentation de SoGame Récupération des scores et photos Synchronisati on des joueurs et parties Reconnais sance faciale joueurs Top des joueurs

47 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 Limage est sauvegardée sur la machine var runtime = Runtime.Kinects[0]; runtime.Initialize(RuntimeOptions.UseColor); //Camera vidéo runtime.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…

48 OPENCV : bibliothèque Open Source de traitement dimage en temps réel EmguCV : permet dutiliser la librairie OPENCV dans un environnement.NET Comment ça marche ? Chargement haarcascades pour la détection de visage Initialiser le périphérique de capture DetectHaarCascade et EigenObjectRecognizer pour chaque image à analyser Reconnaissance faciale

49 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

50 DEMO Reconnaissance faciale

51 Conclusion

52 Ecosystème Microsoft Visual Studio pour tout unir Faire des jeux cest « facile » Le design cest important ! Code source : Blog : blog.soat.fr Conclusion

53 Viens chercher le fun ! Stand (n°39) Envie dessayer ?

54 Q&A Vous avez des questions ? Nous avons des réponses Cyril Cathala – Nathanaël Marchand – Nathalie Pettier –


Télécharger ppt "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ésentations similaires


Annonces Google