En cette période où les regroupements de personnes sont interdits, je vois de plus en plus de solutions émerger sur le web qui essayent de recréer ces environnements mais en virtuel (ex: un "job fair", concerts, évènements promotionnels, …).
Bien que septique sur la pertinence au niveau expérience utilisateur, je trouve ça assez cool. Je me demandais si certains d’entre vous savent par hasard quelles sont les technologies qui sont souvent utilisées (ou du moins comment ça fonctionne) ?
J’ai par exemple trouvé cette plateforme: https://www.vfairs.com/ - vous verrez un mini extrait sur la page d’accueil. Je suppose que tout commence par le design en 3D dans un logiciel adéquat mais après… comment est-ce implémenté en "web" (pour tourner sur un navigateur) ? Je suppose qu’il y a intérêt à avoir un gros serveur pour faire tourner tout ça ?
En somme ça ressemble à certains jeux vidéos en version simplifiée donc je suppose que ce sont les mêmes technos ?
J’ai par exemple trouvé cette plateforme: https://www.vfairs.com/ - vous verrez un mini extrait sur la page d’accueil. Je suppose que tout commence par le design en 3D dans un logiciel adéquat mais après… comment est-ce implémenté en "web" (pour tourner sur un navigateur) ?
Aujourd’hui on peut faire ça dans la plupart des langages, en les compilant vers du WASM que le navigateur fait tourner. Vu que les navigateurs supportent OpenGL, ça se fait bien.
Je suppose qu’il y a intérêt à avoir un gros serveur pour faire tourner tout ça ?
Pas forcément : seul le rendu graphique demande beaucoup de ressources et c’est le client web qui s’en charge. Le serveur, lui, peut être en réalité plutôt léger. Il est juste là pour assurer la cohérence du monde, savoir qui se trouve où dans quelle position et qui fait quoi. Sur ce genre de trucs qui n’a pas besoin d’une précision à la milliseconde (tu ne vas pas faire de frags où autres joyeusetés interactives avec un timing critique comme dans un jeu vidéo), ça n’a pas spécialement besoin d’être gourmand. Par contre le backend de ce genre de truc est probablement un peu plus complexe que "un gros serveur", mais pas pour des raisons de performances.
En somme ça ressemble à certains jeux vidéos en version simplifiée donc je suppose que ce sont les mêmes technos ?
Merci beaucoup @nohar ! Du coup, d’après ce que je comprends c’est quelque chose qui se fait un peu dans tous les langages et qui doit pas avoir un serveur si puissant.
Ce qui reste dans mes interrogations c’est:
Quel est l’input pour créer un "monde virtuel" ? On créé des fichiers 3D qu’on importe / ré-écrit dans un langage de programmation (par exemple reconstruire plein de polygones etc.) ? J’essaye de comprendre si c’est comme du "Computer Vision" ou si c’est autre chose.
L’utilisateur doit avoir une bonne connexion internet et un ordi (relativement) puissant (si ce n’est pas le serveur qui doit l’être je suppose que c’est ça mais je veux être sûr de comprendre)?
J’essaye de comprendre si c’est très complexe à faire car en tout cas ça fait effet "wow" je trouve
Quel est l’input pour créer un "monde virtuel" ? On créé des fichiers 3D qu’on importe / ré-écrit dans un langage de programmation (par exemple reconstruire plein de polygones etc.) ? J’essaye de comprendre si c’est comme du "Computer Vision" ou si c’est autre chose.
C’est vraiment comme dans un jeu vidéo, que ce soit en 2D ou en 3D, le monde est composé d’objets avec une position, un volume, peuvent se déplacer, entrer en collision, etc. Ces objets vont avoir un pendant graphique (en 3D ça sera effectivement des modèles 3D avec des animations possibles, etc. tout comme en 2D ce sera des sprites, qui sont réalisés dans des programmes spécialisés et importés dans le programme final), et un pendant "logique" pour régir son comportement et ses interactions dans le monde.
Du côté du client, les deux seront liés, mais du côté du serveur (qui fait autorité sur ce qui se passe dans le monde), tu n’as besoin que de la représentation logique de chaque objet.
En fait, pour la faire vraiment simple : le serveur va faire tourner plus ou moins la même chose que les clients, sans tout ce qui touche au rendu graphique ou aux animations (ce qui constitue le plus gros des ressources que bouffe un jeu).
L’utilisateur doit avoir une bonne connexion internet et un ordi (relativement) puissant (si ce n’est pas le serveur qui doit l’être je suppose que c’est ça mais je veux être sûr de comprendre)?
En plus on dirait que ces mondes virtuels ont des écrans qui font tourner des vidéos, etc., tout ça c’est des données à streamer. Ça doit probablement pouvoir tourner sur une connexion ADSL parce que, comme dans les jeux, il existe des techniques pour vraiment compresser les données et alléger les échanges sur le réseau, ce qui fait qu’un jeu correctement conçu a moins besoin de bande passante qu’un logiciel de visioconférence, typiquement, mais il faut quand même une machine suffisamment puissante pour faire tourner un monde en 3D (comme pour un jeu, quoi).
Clairement, c’est aussi compliqué à faire qu’un jeu vidéo multijoueur en 3D, à la différence près que tu n’as pas besoin de te prendre la tête sur le gameplay.
De mon point de vue, oui, c’est vraiment complexe techniquement parlant, parce que ça va mobiliser des connaissances dans littéralement tous les domaines de l’informatique, hormis l’IA.
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte