Mode spectateur, replays et autres features techniques

Répondre
Partager Rechercher
Citation :
Publié par Comalies
Après 4 pages de wine de Riot qui se prend pour Goa, il serait peut être temps d'ouvrir un post a ce sujet? ou se re-concentrer sur le sujet...
Oui, surtout quand on sait pas de quoi on parle c'est vite pénible à lire.

Aller je me lance, GG à eux victoire méritée !!! woot
J'ai regardé les 3 match. Y a no way, sur les 3 parties les NA méritaient cette victoire, les EU n'était pas dans le match à mes yeux. Beaucoup d'erreur de pick à mon humble avis!
J'ai pas tout regardé personnellement, j'ai surtout matté les parties avec des héros que je joue (comme je joue Janna et Amumu entre autres, ça fait quand même quelques unes), mais on voit quand même une énorme cohésion de l'équipe CLG. Il n'y a qu'a voir certains matchs où c'était toujours du 2-3vs5.
Citation :
Publié par Benos
En gros pour implémenter les replays en local (ou les parties solo) il faudrait que chaque client puisse emuler un serveur chez lui. En plus des problèmes de cheat qui pourraient en découler si les hackers avaient accès au code serveur, il y'a de grande chances pour que ce ne soit pas un code compatible windows.
Il suffit d'émuler l'envoi de paquets du serveur et pas tout le fonctionnement du serveur, en fait. Encore plus simplement, il faudrait concevoir le client comme un "lecteur de paquets". Le soucis de ce genre d'approches c'est que le serveur doit stocker les informations de la partie et renvoyer les paquets échangés avec les autres joueurs en fin de partie.

Le gros soucis de ce genre d'approche, c'est les changements de version : maintenir la rétro-compatibilité des clients avec les vieux replays poserait un très gros soucis imo.
De toute façon tant qu'ils auront leur bouze de jeux/launcher (communautaire) séparés, ils pourront rien faire.
C'est abusé de voir des trucs comme ça.
Citation :
Publié par Benos
Ouai sauf Que SC2 c'est de la simusynchro alors que lol c'est du C/S ça n'a juste rien à voir. Faire un replay sur de la simu synchro c'est gratuit puisque les échanges réseaux ne sont que les commandes du controlleur humain envoyé à l'autre.
Dans lol c'est du client/s, cela veut dire que tous les clients ne voient pas forcement exactement la même chose et c'est le serveur qui fait le calcul des dégâts/effets.
Un replay pourrait être assez facilement sauvé mais coté serveur seulement, et ça ne sera pas un fichier de 100ko et ça ne serait pas lisible sur le client il faudrait héberger la partie en mode replay sur le serveur

En gros pour implémenter les replays en local (ou les parties solo) il faudrait que chaque client puisse emuler un serveur chez lui. En plus des problèmes de cheat qui pourraient en découler si les hackers avaient accès au code serveur, il y'a de grande chances pour que ce ne soit pas un code compatible windows.
QFT dans l'ensemble

Tecumseh
Citation :
Publié par Tecumseh
QFT dans l'ensemble

Tecumseh
Dans l'ensemble, la partie "propagation du code serveur" est quand même peu pertinente : Ce qu'on veut, c'est pouvoir obtenir les message que renvoie le serveur au client. Le truc, c'est que ces messages sont déjà générés au cours de la partie. Il suffit alors de conserver les messages reçus par le client au cours de la partie pour reconstituer les informations auxquelles un compte a accès. Logiquement, ces informations sont similaires pour tous les joueurs d'une même équipe (puisqu'on sait tout ce que nos alliés font). Le soucis devient alors de transférer les donnés qu'ont reçu les joueurs ennemis.

Observons les modes de transfert différents :
-Soit on s'autorise le P2P entre joueurs, et alors il est très simple de partager les infos en fin de partie pour constituer le replay sans surcharger le serveur (les joueurs adverses s'échangent les données manquantes). Cela pose cependant des problèmes de sécurité évidents vis-à-vis des joueurs (on pourrait utiliser ses paquets comme vecteurs d'infection). Globalement, c'est la solution la plus efficace mais aussi la moins sûre.
-Soit on stocke les logs sur le serveur et on broadcaste les messages aux équipes adverses en fin de partie (problème : coûte cher en mémoire et pics d'utilisation de la bande passante en fin de partie).
-Soit on envoie toutes les informations aux deux équipes en continu (en gros, vous recevez également les paquets dédiés à vos adversaires). On pourrait penser que cela crée une ouverture pour les tricheurs, mais en fait il est assez simple de chiffrer les données et de communiquer une clé aux équipes en début de partie pour analyser leurs données. Il suffit de transférer la clé de l'équipe adverse en fin de partie pour pouvoir constituer le replay complet de la partie, puisqu'on dispose alors de tous les logs reçus par le client. Les surcoûts de temps de calcul induits par le chiffrage/déchiffrage des messages en cours de partie devraient être assez bas en utilisant des algorithmes de crypto modernes (par exemple, ceux basés sur les courbes élliptiques).

Une fois qu'on a résolu les problèmes de collection des logs, il faut résoudre le problème majeur : la gestion des patches. C'est le plus gros soucis, puisqu'il faut maintenir une rétro-compatibilité du client de manière à pouvlir lire des vieux replays sans utiliser les modifications des patches les plus récents.



ps : un modo pourrait split la partie replay, qu'on puisse en discuter sans HS comme des cochons ? .
Citation :
Publié par orime

ps : un modo pourrait split la partie replay, qu'on puisse en discuter sans HS comme des cochons ? .
On te sent très gêné !
Citation :
Ouai sauf Que SC2 c'est de la simusynchro alors que lol c'est du C/S ça n'a juste rien à voir. Faire un replay sur de la simu synchro c'est gratuit puisque les échanges réseaux ne sont que les commandes du controlleur humain envoyé à l'autre.
Dans lol c'est du client/s, cela veut dire que tous les clients ne voient pas forcement exactement la même chose et c'est le serveur qui fait le calcul des dégâts/effets.
Un replay pourrait être assez facilement sauvé mais coté serveur seulement, et ça ne sera pas un fichier de 100ko et ça ne serait pas lisible sur le client il faudrait héberger la partie en mode replay sur le serveur

En gros pour implémenter les replays en local (ou les parties solo) il faudrait que chaque client puisse emuler un serveur chez lui. En plus des problèmes de cheat qui pourraient en découler si les hackers avaient accès au code serveur, il y'a de grande chances pour que ce ne soit pas un code compatible windows.
J'y connais rien à tout ces trucs techniques, mais pour prendre un jeu plus proche de LoL, HoN y'a des replays depuis la beta, alors j'vois pas pourquoi ça pose tant de problème sur LoL.
Si c'est une question de codage/programmage, c'est un peu de la faute à Riot si c'est dur à mettre en place.

Après moi je dit ça, mais je m'en fiche un peu des replays, j'ai moins envi de voir des match de grosses team après avoir regarder la WCG.
Citation :
Publié par orime
Dans l'ensemble, la partie "propagation du code serveur" est quand même peu pertinente : Ce qu'on veut, c'est pouvoir obtenir les message que renvoie le serveur au client. Le truc, c'est que ces messages sont déjà générés au cours de la partie. Il suffit alors de conserver les messages reçus par le client au cours de la partie pour reconstituer les informations auxquelles un compte a accès. Logiquement, ces informations sont similaires pour tous les joueurs d'une même équipe (puisqu'on sait tout ce que nos alliés font). Le soucis devient alors de transférer les donnés qu'ont reçu les joueurs ennemis.
Alors comme j'ai expliqué au dessus les informations ne sont pas les mêmes pour tous les joueurs. Quand tu as du lag ou des packets perdu le jeu ne freeze pas pour les 9 autres personnes comme sur SC2 (Car la tu attends les infos des autres). Tu lag bah tu verra à la fin de ton lag les gens se TP/Courir vite pour rattraper ton retard.

Citation :
Publié par orime
Observons les modes de transfert différents :
-Soit on s'autorise le P2P entre joueurs, et alors il est très simple de partager les infos en fin de partie pour constituer le replay sans surcharger le serveur (les joueurs adverses s'échangent les données manquantes). Cela pose cependant des problèmes de sécurité évidents vis-à-vis des joueurs (on pourrait utiliser ses paquets comme vecteurs d'infection). Globalement, c'est la solution la plus efficace mais aussi la moins sûre.
D'une manière générale les jeux p2p fonctionne sur de la simu synchro, et contrairement à ce que l'on crois c'est très sécurisé, les seuls cheat possible sont en gros le maphack et le disco hack. Le gros problème viens du fait que tu dois attendre le joueur le plus long pour ton tour réseau, une personne qui lag fait lag tous les autres. Gros problème de DoW2 si certains on joué.

Citation :
Publié par orime
-Soit on stocke les logs sur le serveur et on broadcaste les messages aux équipes adverses en fin de partie (problème : coûte cher en mémoire et pics d'utilisation de la bande passante en fin de partie).
Alors ça c'est possible mais il faut que le client soit capable de lire de tels logs et donc d'émuler un serveur en local à peu de chose pret. Et comme dit plus haut ça dévoilerai une partie du code serveur qui pourrait être utilisé par des gens mal intentionné pour développer des hacks. (Dans les C/S on peut avoir des ThuneHack, des speedhack, des InvincibilityHack etc etc)

Citation :
Publié par orime
-Soit on envoie toutes les informations aux deux équipes en continu (en gros, vous recevez également les paquets dédiés à vos adversaires). On pourrait penser que cela crée une ouverture pour les tricheurs, mais en fait il est assez simple de chiffrer les données et de communiquer une clé aux équipes en début de partie pour analyser leurs données. Il suffit de transférer la clé de l'équipe adverse en fin de partie pour pouvoir constituer le replay complet de la partie, puisqu'on dispose alors de tous les logs reçus par le client. Les surcoûts de temps de calcul induits par le chiffrage/déchiffrage des messages en cours de partie devraient être assez bas en utilisant des algorithmes de crypto modernes (par exemple, ceux basés sur les courbes élliptiques).
Cette solution est tout à fait envisageable mais elle pose le même problème qu'au dessus.

Citation :
Publié par orime
Une fois qu'on a résolu les problèmes de collection des logs, il faut résoudre le problème majeur : la gestion des patches. C'est le plus gros soucis, puisqu'il faut maintenir une rétro-compatibilité du client de manière à pouvlir lire des vieux replays sans utiliser les modifications des patches les plus récents.
Alors ce problème n'en est presque pas un en fait. Encore une fois c'est un soucis dans les jeux en simu synchro mais ce n'est pas un problème en client serveur ou presque.

Citation :
J'y connais rien à tout ces trucs techniques, mais pour prendre un jeu plus proche de LoL, HoN y'a des replays depuis la beta, alors j'vois pas pourquoi ça pose tant de problème sur LoL.
Oui HON est le plus proche de LOL car c'est aussi du C/S, je n'ai jamais joué donc je peux difficilement en déduire les technos associés, mais je viens de DL un replay pour voir. Il fait 10mega compressé donc y'a de grande chance que se soit une version serveur émulée en locale les replay de HON.

Le problème c'est que si ça n'a pas été prévu à la base le portage en local du serveur peut être problématique. C'est une erreur de GameDesign de ne pas y avoir pensé plus tôt, et j'imagine déjà les prog réseaux dire, "Je vous l'avais bien dit que si on y pensait pas des le début ça serait la merde à implémenter plus tard", problème auquel je suis confronté tous les 2 mois

PS: C'est un bon pavé que j'ai écrit contenant pas mal de technique, je m'en excuse pour tous ceux que ça n’intéresse pas.

PS2: Tecumseh, je donne des cours d'implémentation de replay en simu ou c/s pour arrondir mes fins de mois donc que Riot n'hésite pas à faire appel à moi (C'est une boutade bien évidemment)
Citation :
Publié par Benos
Alors ça c'est possible mais il faut que le client soit capable de lire de tels logs et donc d'émuler un serveur en local à peu de chose pret. Et comme dit plus haut ça dévoilerai une partie du code serveur qui pourrait être utilisé par des gens mal intentionné pour développer des hacks. (Dans les C/S on peut avoir des ThuneHack, des speedhack, des InvincibilityHack etc etc)
J'ai déjà vu ce genre de systèmes développé pour d'autres jeux, avec zéro connaissance du serveur. En fait, le replay utilisait un client modifié qui s'adressait à un "serveur" local, ce dernier ne faisait que réémettre les paquets enregistrés. A aucun moment, le serveur local ne calculait ou n'effectuait une tâche que le serveur original avait pu faire, en dehors de l'envoi de paquets. Tout ce qu'on pourrait faire avec ce genre de système, c'est bidouiller les paquets, mais c'est déjà possible sans.

Concernant la partie problèmes de version, ça dépend surtout de la nature de la répartition des tâches entre client/serveur, je peux pas dire mais si pas mal de choses sont déléguées au client, ça oblige à faire grossir rapidement le client pour stocker les infos (ou alors à faire un pack "replay" nécéssaire pour la rétro-compatibilité).
Citation :
Publié par Benos
C'est une erreur de GameDesign de ne pas y avoir pensé plus tôt, et j'imagine déjà les prog réseaux dire, "Je vous l'avais bien dit que si on y pensait pas des le début ça serait la merde à implémenter plus tard", problème auquel je suis confronté tous les 2 mois
Manque de budget, ça arrive à tout le monde :d.
Citation :
Publié par orime
J'ai déjà vu ce genre de systèmes développé pour d'autres jeux, avec zéro connaissance du serveur. En fait, le replay utilisait un client modifié qui s'adressait à un "serveur" local, ce dernier ne faisait que réémettre les paquets enregistrés.
Je vais tester à midi de capturer tous les packets de lol pour une game pour voir la taille que sa prend. Sachant qu'il me manquera les infos de l'autre team quand je ne les vois pas.
Citation :
Publié par Benos
Je vais tester à midi de capturer tous les packets de lol pour une game pour voir la taille que sa prend. Sachant qu'il me manquera les infos de l'autre team quand je ne les vois pas.
A priori, il doit y avoir moyen d'alléger les paquets de la partie. Ceci dit, je doute que ça pèse des masses, même en gardant les paquets directement ça devrait pouvoir être suffisamment léger pour du replay. Ou alors c'est que Riot doit commencer par retravailler sur la nature des messages S/C
En gros soit il faut recoder ( en partie du moins ) le code serveur côté client, ce qui poserais les problèmes de hack cités au dessus car le code pourrait être dévoilé, soit faudrait se reposer sur le serveur pour matter des replays via l'envoie des logs sur le serveur, qui lui "re-crééra" la partie déjà faite, et donc il faudrait que Riot ait autre chose que les serveurs actuel sur lesquels ca ne tiendra jamais, déjç qu'une partie entraînement solo n'est plus possible.

Pour suivre un match, il pourraient faire un partie en parallèle ou les données arrivent avec 1 minute de décalage ou plus et ou n'importe qui peut se connecter, non ? comme ca pas de triche, de la bonne qualité pour tout le monde sans pour autant avoir une connection de malade, etc ...
Pas de système de visionnage payant pour les WCG du coups aussi.
A la limite, en attendant d'avoir des trucs interactifs (avant, arrière, selection du héros d'ou on voit la partie, interface toussa) on pourrait déjà avoir ça sous forme de vidéo, pour patienter, là ça fait vraiment pas pro.

Cliquez ce bouton ou survolez le contenu pour afficher le spoiler
Puis avec les 15€ de Riot Points que j'ai pris la semaine dernière, ça devrait déjà être fait
Citation :
Publié par Ersahi / Fruz _tkt
En gros soit il faut recoder ( en partie du moins ) le code serveur côté client, ce qui poserais les problèmes de hack cités au dessus car le code pourrait être dévoilé, soit faudrait se reposer sur le serveur pour matter des replays via l'envoie des logs sur le serveur, qui lui "re-crééra" la partie déjà faite, et donc il faudrait que Riot ait autre chose que les serveurs actuel sur lesquels ca ne tiendra jamais, déjç qu'une partie entraînement solo n'est plus possible.
Heu, pourquoi exactement il faudrait le code serveur ? Le serveur fait déjà tous les calculs au cours de la partie, il suffit de conserver ces calculs. Pas besoin de resimuler une partie à chaque fois.
Pour que ca prenne moins de place au niveau du stockage / de l'enregistrement je dirais, sinon autant enregistrer une vidéo direct.
Juste enregistrer des données du type les mouvements des personnages et leurs actions / caractéristiques chaque seconde, c'est ca que j'entends par un log.
Citation :
Publié par Ersahi / Fruz _tkt
Pour que ca prenne moins de place au niveau du stockage / de l'enregistrement je dirais, sinon autant enregistrer une vidéo direct.
Juste enregistrer des données du type les mouvements des personnages et leurs actions / caractéristiques chaque seconde, c'est ca que j'entends par un log.
bha tu fais ça en utilisant les messages que le serveur communique à chaque joueur au cours de la partie, pas les messages que les joueurs communiquent au serveur.
C'est vrai que les calculs doivent être effectués côté serveur au temps pour moi, mais dans ce cas pourquoi est-ce que ca pose un problème d'utiliser des informations déjà calculées que le client est capable de lire pour créer un mode replay ?
Je vous propose d'envoyer votre candidature à Riot Games, étant donner que pour certains leurs développeurs sont des incompétents.

Le bon sens et un minimum de connaissance serait que vu le déroulement des événement, il n'était pas au planning que le jeu soit en moins d'un an sur la scène e-sport international. Les replay, ainsi que beaucoup d'autre feature, étaient prévu sur leur road map, seulement les événements ont permis à Riot d'avoir une vitrine de leur jeu grâce au WCG. Je serai même pas étonner que le WCG les ai contacté voyant le potentiel de leur jeu dans le but d'un échange de bon procédé, une vitrine international pour Riot, et le WCG sponsorisait par ces derniers.

Fin bref, maintenant ils ont 1 ans pour rendre les choses propres et professionnel. A ce moment là, je me rangerai, et seulement à ce moment là, de votre coté. En attendant, je les encourage à continuer leur travail qui m'as l'air malgré leur jeune âge, d'un grand professionalisme.
Citation :
Publié par Speedi
Je vous propose d'envoyer votre candidature à Riot Games, étant donner que pour certains leurs développeurs sont des incompétents.
Personne n'a dit que les dev étaient incompétents speedi, le seul truc dont on a parlé en negatif c'est du manque de moyen. Pour ce qui est de la candidature j'ai hésité mais je me sentais pas pret pour aller à LA (c'est loin quand même). Depuis cet été y'a des bureaux à Dublin mais je suis pas sur qu'il y est beaucoup de techos la bas, faudrait demander à Tecumseh.
Je te rassure Benos, tu es la seul personne censé du fil. Tu réponds clairement, ils ont le choix entre 2 technologies, chacune comporte des problèmes. Qu'il commence par permettre un mode spectateur qui leur coûte pas un bras en abonnement internet, ça m'a l'air moins compliqué.
Citation :
Publié par Speedi
Je vous propose d'envoyer votre candidature à Riot Games, étant donner que pour certains leurs développeurs sont des incompétents.
Ou alors tu nous laisses discuter boutique et tu acceptes qu'on puisse prendre du plaisir à discuter de la manière de faire, sans que cela implique la capacité des devs de chez Riot.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés