dimanche 14 juillet 2013

Salut à tous.
C'est en me baladant sur ce qu'il reste des forums de JVC (invasion de trolls), que j'ai pu lire un post très intéressant d'un forumeur dénommé _comboultra84_.
Et j'ai tout simplement trouvé sa présentation claire comme de l'eau de roche.
En effet il a traduit l'interview du studio RESPAWN qui développe TITAN FALL et tente en prime d'éclaircir les choses et d'expliquer à son prochain, les bénéfices du Cloud computing.

En théorie, il permettra d'améliorer ces éléments :
Game physics (update models)
Triangle setup and optimisation Tessellation
Texturing
Shading
Various render passes
Lighting calculations
Post effects
Immediate AI
Ambient (world) AI
Immediate physics (shots, collisions)
Ambient physics

Notons que pour une expérience optimale Microsoft conseil d'avoir une connection de 1,5 mbps minimum.

Je le remercie haut et fort pour le travail éffectué  ;)



Nous avons eu le plaisir d'avoir une longue interview d'un développeur de Respawn Entertainement (TitanFall) qui décrit avec précision les avantages du cloud version Microsoft.
http://www.respawn.com/news/lets-talk-about-the-xbox-live-cloud/



Le bien nommé Jon Shiring développeur sur Titanfall nous explique que deux notions doivent être détaillées à savoir la notion de « serveur dédié » et en quoi consiste le « Xbox Live Cloud ».

 1/ LES SERVEURS D’HIER ET AUJOURD’HUI
Avant d’aller plus avant, le développeur propose une rétrospective des systèmes multi-player actuels : les « serveurs dont le joueur est l’hôte » (Player-Hosted Servers)

La grande majorité des jeux en ligne actuels et passés on un principe de base, le fait qu’une partie soit hébergée chez un joueur qui « décide » de ce qui va se passer durant la partie en ligne (si il déconnecte la partie s’arrête, si sa connexion est lente tous les joueurs souffrent de lag).

Le développeur énumère quels sont les problèmes habituels rencontrés par ce type de « Player-Hosted Servers » :

1.1 Comment se passe une partie où joueur « hôte » a une connexion lente et cause du lag ?

Généralement il est assez difficile pour un serveur de contrôler rapidement quel est le joueur qui a la plus grosse bande passante et la connexion la plus stable d’une partie (surtout avec de nombreux joueurs). Donc souvent on se retrouve avec des jeux qui laguent avec des temps de latence parfois très contraignants pour TOUS les joueurs de la partie. En temps que joueur on est en droit d’attendre une expérience de jeu identique, sans avoir peur de ce genre de choses … le développeur dit que pour eux c’est pareil, leur but est de proposer une super expérience de jeu à tous moments sans que les joueurs soient pénalisés.

1.2 A propos de l’avantage du joueur hôte

On l’a tous remarqué, celui qui « héberge » la partie n’a aucune latence contrairement aux autres joueurs. Dans beaucoup de jeux quelques secondes (voir dixièmes de secondes) le joueur qui héberge a un avantage « artificiel » sur les autres… et ca n’est pas juste.

1.3 Quand le joueur est un tricheur

Souvent dans des jeux on voit des joueurs avec des stats abusées, des gamescores hallucinants ou autres avantages tellement importants qu’ils nuisent au plaisir des joueurs qui eux n’ont pas triché. Ce genre de comportement peut décourager, peut aussi dégouter les fans… voir décrédibiliser les studio de développement.



1.4 Quand l’hôte se déconnecte

Dans le meilleur des cas on peut migrer vers un des joueurs qui a le plus de bande passante … le jeu se met en pause et se relance une fois la migration finie. Ce qui casse le rythme des parties (on peut attendre plusieurs minutes parfois) et ca n’est même pas sûr de marcher à chaque fois.


1.5 Et si la bande passante de l’hôte « disparaît » (baisse drastiquement)

Le serveur choisi le joueur qui a le plus de bande passante. Mais si en cours de partie il décide de télécharger des torrents et qu’une autre personne décide de streamer un film la « super » bande passante disparaît et ca devient alors la foire au lag pour tous les joueurs de la partie.

1.6 Et si quelques joueurs ne peuvent « parler » à l’hôte ?

Le développeur parle de protocole « Open NAT ». En gros lors d’une partie on ouvre notre routeur au serveur hôte afin de coopérer. Pour des questions de protocoles (ex : Proxy) les parties ne peuvent pas fonctionner correctement voir pas du tout. Par ailleurs en « ouvrant » les protocole du routeur à un serveur externe, on ouvre notre réseau personnel à bien d’autres protocoles pas forcément voulus (surtout sur PC). Donc en jouant en ligne les joueurs peuvent compromettre la sécurité de leur réseau…

1.7 Et si personne n’a assez de bande passante ?

La partie ne peut être assurée et pour le développeur proposer quand même une partie avec du lag et des déconnexion n’est pas une solution viable.

1.8 Pour ceux qui ont des restrictions de bande passante ?

Beaucoup de pays n’ont pas de connexion illimitée comme en France. Héberger une partie peut faire grimper très rapidement cette limite. Dommage de se retrouver avec une connexion faible pour le reste du mois (Fair Use comme sur mobile ici) juste pour une partie en ligne.

1.9 Donc si j’héberge une partie c’est ma machine qui fait le boulot pour tout le monde ?

Et bien OUI ! Votre CPU fait beaucoup plus de calculs que sur les machines des autres joueurs. Ce qui veut dire que le jeu est moins beau et moins fluide que ce qu’il devrait être. Donc tout le monde a un jeu « tronqué » car potentiellement tout le monde peut héberger une partie. En gros puisque le CPU de l’hôte est victime de l’hébergement il ne sert à rien d’avantager le CPU des autres.


DONC on s’aperçois que les serveurs actuels on beaucoup de côtés négatifs. Alors pourquoi la plupart des jeux tournent avec ce système ? Car ca ne coûte rien aux éditeurs ! Faire tourner des centaines de milliers de serveurs coute extrêmement cher. Donc pour ne pas compromettre le pouvoir d’achat des joueurs, et ne pas augmenter le prix des jeux en conséquence, les développeurs ont jusqu’alors décidé de se passer de serveurs dédiés. 


 2 LES SERVEURS DEDIES
En quoi ca consiste un serveur dédié ? C’est quand un ordinateur tournant sur Internet gère l'ensemble des fonctions d'accueil (hôte), et donc les joueurs deviennent TOUS juste des participants au réseau…

Donc :

- Le CPU du serveur distant peut gérer l’IA indépendamment de la console (ex : les Titants s’auto-piloteraient dans Titanfall)
- Il n’y a plus d’hôte avantagé par rapport aux autres (voir 1.2)
- La bande passante est assurée par le serveur (voir 1.5, 1.6, 1.7, 1.8)
- Toute la charge du CPU dédiée au réseau est gérée par l’ordinateur/le serveur distant. (voir 1.9). La machine (console , PC) n’a alors plus qu’à s’occuper du graphisme et du moteur physique.
- Plus possible de tricher sur sa partie comme la vielle technique qui est de réduire la bande passante en cours de partie (voir 1.3)
- Le Matchmaking est bien plus stable et plus égalitaire (voir 1.1)
- Plus de problême d’hôte qui en se déconnectant arrête la partie. Plus besoin de migration non plus (voir 1.4)

L’expérience de jeu est alors parfaite pour les joueurs ! Bref c’est juste génial !

Mais ça coûte BEAUCOUP d’argent !

Et aucun éditeur tiers n’a les ressources financières et humaines nécessaires pour faire tourner et maintenir en place un réseau de centaines de milliers de serveurs. En gros un studio de développement a pour vocation de faire des jeux pas d’ouvrir des serveurs au monde entier… chacun son métier en somme.

Le développeur dit en outre, « le plus de temps je passe à faire le jeu, au mieux il sera »… donc chacun son job ^^

Les studios ont donc décidé de parler à Microsoft et Sony pour leur expliquer que les développeurs avaient besoin d’avoir des serveurs dédiés pour faire des jeux bien plus vastes qu’aujourd’hui et qu’il fallait trouver des solutions moins chères que les serveurs dédiés actuels. Microsoft a réalisé que les « serveurs dont le joueur est l’hôte » font que le jeu online ne peut plus évoluer et a donc décidé de penser à une solution allant dans le sens des serveurs dédiés.

La branche Xbox est donc revenue vers les développeurs de TitanFall pour leur proposer d’héberger leurs parties sur les serveurs dédiés de Microsoft. Laissant ainsi le studio de développement tester de nouveaux outils permettant des mondes ouverts plus grands, plus de « physics » (moteur physique ?), plus d’IA..etc 



3 LE CLOUD EN GENERAL

- AMAZON a un cloud qui alimente des sites internet.
- SONY a un cloud (Gaikai) qui streame les jeux vidéos, donc de jouer à des jeux qui ne sont pas dans la console.
- Le XBOX LIVE a maintenant un cloud qui permet d’améliorer la puissance des jeux.

Le développeur dit que ce sont des technologies qui n’ont rien à voir, mais qu’on les regroupe communément sous le nom de « cloud » à des fins purement marketing.

« Permettez-moi de vous expliquer cela simplement: quand les entreprises parlent de leur Cloud, tout ce qu'ils disent, c'est qu'ils ont une énorme quantité de serveurs prêts à exécuter ce dont vous avez besoin pour fonctionner. Voilà tout. »

4 LE CLOUD VERSION XBOX LIVE

Microsoft a donc un service de cloud nommé Azure. C’est une vraie solution qui existe vraiment avec un site web complet pour expliquer comment ca marche (il insiste pour les neuneux qui mettent en doute Microsoft). La companie de Redmond a donc réalisé qu’ils pouvaient utiliser ce système pour accéder à la demande des développeurs.

Ils ont donc construit un système de réseau en ligne très puissant pour permettre aux développeurs de se focaliser sur la création des jeux. Microsoft assurant dorenavant toute la partie online. ET Microsoft en plus de se charger du déploiement des jeux sur les serveurs, hébergera les parties en ligne sur 3 plateformes : PC, Xbox One….et 360 (donc Titanfall sera le premier jeu 360 à utiliser le Cloud) !

Mais les services du « Xbox Live Cloud» ne se limitent pas aux serveurs dédiés ! Microsoft à la demande des développeurs propose donc toutes sortes de « features » pour améliorer tous les jeux. Il cite l’exemple de Forza 5 qui permet de générer des IA à partir de nos styles de jeu (rendant toutes nos parties solo bien moins prévisibles). Il avoue que sur Titanfall il n’ont pas pensé à ça et que c’est génial de voir d’autres développeurs utiliser cette nouvelle fonction d’une manière inattendue… donc qu’on a pas fini d’être surpris par cet outil !

Le « Xbox Live Cloud » différent des autres serveurs dédiés ? Pour le développeur oui dans le sens où ils n’ont plus à se soucier de combien de serveurs ils vont devoir se servir pour le lancement du jeu. Plus besoin de louer des serveurs aux quatre coins du globe, le jeu marchera parfaitement en ligne dès son lancement. Plus de maintenance non plus puisque c’est Microsoft qui s’en charge, plus besoin de faire des copies à chaque ouverture de nouveaux serveurs. Bref beaucoup plus de temps pour se focaliser sur la création du jeu.

Le top ? Microsoft a disposé des serveurs de partout sur le globe, assurant des connections stables, sans latence…

Bien plus important encore, Microsoft propose des prix bien plus abordables que n’importe quel autre solution d’hébergement afin de proposer aux joueurs des services toujours plus impressionnants.

Pour toutes ces raisons, les développeurs ont enfin un outil leur permettant de ne plus avoir à faire de compromis afin de proposer des services en ligne enfin performants et surtout ouvrant à des choses encore impossibles jusqu’alors (monde persistants ? écosystème indépendant ? planète virtuelle ?)

Bref il dit que côté développeurs ils sont vraiment excités car ils peuvent proposer des choses impossibles sur les serveurs où l’hôte est un joueur comme actuellement. Et pour lui le plus beau reste à venir…  


J'espère que tout est plus clair maintenant.
Je pense que Microsoft va faire en sorte qu'on l'aime la XBOX ONE  ;)
Sur ce, bon jeu à tous.

0 commentaires:

Enregistrer un commentaire