MMO basés sur navigateur (WebGL, WebSocket) [fermé]


29

Pensez-vous qu'il est techniquement possible d'écrire un client MMO 3D à part entière avec Browser JavaScript - WebGL pour les graphiques et WebSocket pour la mise en réseau?

  • Pensez-vous que les futurs MMO (et les jeux en général) seront écrits avec WebGL?
  • Les performances JavaScript actuelles le permettent-elles?
  • Disons que votre équipe de développement était vous en tant que développeur et un autre créateur de modèle (artiste). Souhaitez-vous utiliser une bibliothèque comme SceneJS pour le jeu, ou écrire directement WebGL? Si vous souhaitez utiliser une bibliothèque, mais pas SceneJS, veuillez préciser laquelle.

MISE À JOUR (septembre 2012): RuneScape, qui est un MMORPG 3D très populaire basé sur un navigateur qui utilisait jusqu'à présent des applets Java, a annoncé qu'il utiliserait HTML5 pour son client ( source ).

Runescape HTML5

Java (gauche) et HTML5 (droite)

MISE À JOUR (juin 2013): J'ai écrit un prototype d'un MMO basé sur WebGL / WebSocket: https://github.com/alongubkin/xylose


3
Mozilla Firefox et Opera viennent de supprimer la prise en charge du Websocket pour des raisons de sécurité: heise.de/security/meldung/… Voir gamedev.stackexchange.com/q/6524/450 pour une abstraction entre navigateurs des éléments du réseau.
Hendrik Brummermann

2
Je pense que ces trois questions sont intéressantes, mais je préfère les diviser en trois questions. Dans mon esprit, ils sont à peine liés.

2
Techniquement, c'est possible, oui. En réalité, c'est une autre affaire.
The Communist Duck

En guise de remarque: Google a créé une bibliothèque JavaScript sur WebGL qui est plutôt cool: code.google.com/p/o3d
Alex Beardsley

Mon hypothèse est que votre question implique un MMO 3D. La 3D n'est pas une exigence pour le genre, et en fait de nombreux MMO existent sur le Web depuis des années aussi peu que les formulaires HTML (voir urbandead.com ) Sans parler de tous les jeux PHP de Gameforge ( en.gameforge.com ) ou les choses AJAX / Javascript les plus exotiques comme Lord of Ultima ( lordofultima.com )
wkerslake

Réponses:


7

Pensez-vous qu'il est techniquement possible d'écrire un client MMO 3D à part entière avec Browser JavaScript - WebGL pour les graphiques et WebSocket pour la mise en réseau?

Oui absolument. Il n'y a aucune raison que la technologie WebGL ou WebSocket vous empêche de créer un client MMOG 3D ou tout autre client de jeu d'ailleurs.

Pensez-vous que les futurs MMO (et les jeux en général) seront écrits avec WebGL?

Oui. Je pense qu'au cours des cinq prochaines années, la plupart des jeux par navigateur 3D seront écrits à l'aide de WebGL. La raison est simple - WebGL est la seule technologie 3D standardisée qui aura des implémentations disponibles dans tous les principaux navigateurs Web (Chrome 9, Firefox 4, Safari 6 et Internet Explorer via Chrome Frame).

Les performances JavaScript actuelles le permettent-elles?

Oui. Les performances JavaScript dans les navigateurs modernes ont augmenté au point où le développement de jeux 3D est possible. Par exemple, consultez le projet Three.js .

Disons que votre équipe de développement était vous en tant que développeur et un autre créateur de modèle (artiste). Souhaitez-vous utiliser une bibliothèque comme SceneJS pour le jeu, ou écrire directement WebGL? Si vous souhaitez utiliser une bibliothèque, mais pas SceneJS, veuillez préciser laquelle. Merci!

Utilisez une bibliothèque pour gagner du temps. Il n'y a aucune raison d'écrire votre propre code graphique WebGL à moins qu'une bibliothèque existante ne manque les fonctionnalités dont vous avez besoin. Même dans ce cas, il serait probablement plus efficace de prolonger la bibliothèque existante.

Pour mon projet, j'utilise GLGE car il prend en charge de nombreux effets graphiques différents et est constamment mis à jour avec de nouveaux.


2
La question "Pensez-vous que les futurs MMO (et les jeux en général) seront écrits avec WebGL?" et la réponse "Oui. Je crois que dans les cinq prochaines années, la plupart des jeux de navigateur 3D seront écrits en utilisant WebGL." ne sont pas un match précis l'un pour l'autre ...
Kylotan

5

Il existe déjà plusieurs MMO basés sur un navigateur. Cependant, ils n'utilisent généralement pas de graphiques 3D.

Je suis un peu sceptique en ce qui concerne WebGL. La culture actuelle des navigateurs ne prend pas en charge WebGL dans leurs versions normales. Vous devrez obtenir des versions spéciales ou jouer avec des fichiers de configuration, ce qui est plus compliqué pour l'utilisateur moyen que de télécharger un plugin.

En parlant de plugins: plusieurs personnes ont mentionné Unity, mais n'oubliez pas Flash. Une prochaine version du lecteur Flash (nom de code molehill ) aura une accélération GPU 3D. Je suppose que ce flash fournira des graphiques 3D accélérés par le matériel dans le navigateur avant que WebGL ne décolle.


1
Le problème du navigateur stable avec le support webgl ne devrait pas se produire après janvier 2010. Firefox 4 et Chrome 9 devraient sortir vers cette date. Chrome 9 beta est assez simple à installer et ne nécessite pas de jouer avec quoi que ce soit pour activer webgl. Le lien vers l'édition bêta se trouve sous le lien de téléchargement normal pour Chrome.
Nicolas K.

@Nicolas K. - Voulez-vous dire janvier 2011 ?
DMan

1
@Nicolas K - La disponibilité d'un navigateur et la base d'installation d'un navigateur sont des choses très différentes. 13% du trafic Internet est toujours IE6. Source: marchéshare.hitslink.com
wkerslake

@DMan: Probablement, puisqu'il est sorti maintenant. Je ne peux pas attendre que quelqu'un comprenne comment bluescreen (ou panique du noyau, ou quoi que ce soit les Mac) un pilote OpenGL merdique utilisant WebGL ...

1
@wkerslake: Ces statistiques sont scandaleuses. Je maintiens un site destiné au consommateur moyen d'Internet avec un demi-million de visites uniques par jour, et moins de 1% d'entre eux utilisent Internet Explorer 6 (environ 1/3 utilisent Internet Explorer 7/8/9). Firefox et Chrome représentent 50% du trafic, et ce sont des navigateurs à mise à jour automatique, ce qui signifie que la majorité des gens auront le support WebGL installé dans quelques mois. Étant donné que le développement d'un jeu peut facilement prendre 6 mois, je ne vois aucune raison de décourager les gens d'utiliser WebGL aujourd'hui.
Blixt

3

Techniquement possible? Oui. Mais pourquoi s'embêter quand des solutions web comme Unity sont disponibles?

Les futurs MMO écrits en WebGL? Non. Peut-être, mais il existe des plugins basés sur le Web comme Unity qui fonctionnent bien en ce moment.

Les performances JavaScript d'aujourd'hui le permettent? Non. Ok oui si vous gardez votre jeu simple.

Souhaitez-vous utiliser une bibliothèque comme SceneJS [...] ou écrire directement WebGL? Ni. J'utiliserais une application tierce telle que Unity.


4
Votre réponse est fausse, contradictoire et mal formatée. Désolé d'être si dur. Si vous pensez que op devrait simplement utiliser l'unité, dites-le dans un commentaire à sa question.
oberhamsi

Ironiquement oberhamsi, ma réponse originale ne faisait que dire "Use Unity", mais on m'a dit que je devais répondre à la question plus directement.
Tim Holt

1
D'accord, assez juste. Je pense que l'unité est une bête très différente qui essaie de le faire nativement dans le navigateur. Bien sûr, vous pouvez tout faire avec un plugin mais la question me semble: quelles sont les limites des technologies de navigateur natives.
oberhamsi

2

Ce n'est pas possible pour le moment (début 2011). Vous ne pouvez pas créer un MMO 3D en temps réel dans des technologies de navigateur natives (ce qui signifie pas de plugins).

Je ne spéculerai pas sur l'avenir. Voilà à quoi cela ressemble en ce moment. En supposant que vous ne ciblez que les navigateurs modernes (IE9, FF4, etc.). Si vous prévoyez de prendre en charge IE7, vous êtes fou. Cela ne marchera jamais.

Choses manquantes:

  • contrôle total sur le clavier et la souris (possibilité de définir la position de la souris, l'interception des touches)
  • plein écran
  • 3D

Domaines / solutions présentant de graves problèmes:

  • WebSockets désormais désactivés dans les quelques navigateurs qui le prenaient en charge
    • sans elle: désormais faible latence, communication client-serveur bidirectionnelle
  • problèmes audio
    • gâchis de codec, vous avez besoin d'ogg et mp3
    • fréquences communes non prises en charge
    • concordance
    • retard
  • performances du canevas (dans certains cas, les transformations divs et css sont plus rapides)

1

Oui, mais avec des mises en garde importantes.

Vous n'aurez pas le contrôle total du clavier, et pour de nombreux monstres de contrôle, cela pourrait être une rupture. Les touches F par exemple resteront probablement hors de portée pendant un certain temps.

Vous ne pourrez pas non plus toucher la plupart des navigateurs. WebGL n'est pas encore vraiment bien pris en charge, et la prise en charge de websocket est aléatoire à l'heure actuelle, certains fournisseurs de navigateurs l'activant pour une version, puis la désactivant pour la suivante.

Mais vous pouvez assembler quelque chose de simple, bien sûr. Ajoutez un gameplay convaincant et peu importe que les graphismes soient un peu discrets. Runescape a commencé assez simple et est devenu un MMO complexe, amusant et incroyablement populaire, à l'époque où tout le monde disait qu'un MMO créé dans un plug-in de navigateur était un rêve de pipe.

Un MMO construit en tenant compte des limites actuelles des navigateurs qui s'adapte au fur et à mesure que les choses changent aurait certainement une longueur d'avance au moment où les navigateurs sont suffisamment loin pour prendre en charge un MMO "AAA".


1
Presque tous les navigateurs modernes prennent en charge les touches de fonction ( quirksmode.org/js/keys.html#link6 ). En fait, cette page a au moins plusieurs années et leur prise en charge dans les navigateurs modernes est probablement encore meilleure.
Ricket

1

Absolument oui.

WebGL est inclus dans les versions nocturnes de WebKit (Chrome / Safari) et Gecko (Firefox). WebSockets est actuellement désactivé en raison de problèmes de sécurité, mais il n'y a aucune raison pour qu'il ne soit pas réactivé une fois les problèmes résolus. En attendant, il y a toujours HTTP.

Est-ce que tous les jeux seront écrits de cette façon? Non, mais un nombre important le sera. Une fois WebGL dans les versions finales de Chrome et Firefox, la pénétration sera déjà supérieure à celle des plug-ins natifs comme Unity.

Les performances JavaScript dépendent entièrement de l'écriture de jeux. Vous ne verrez probablement pas un niveau de graphisme Crysis pendant un certain temps, mais rappelez-vous qu'avec WebGL, le calcul des nombres est déchargé sur le GPU.

Pour une petite équipe de 2 personnes, vous devrez être prêt à faire beaucoup de codage quel que soit le moteur que vous utilisez. Il n'existe actuellement aucun moteur WebGL / JavaScript qui couvre en fait une grande partie du code du jeu. SceneJS, three.js et similaires sont des wrappers sur la couche graphique, mais ne fournissent rien pour les collisions, la physique, l'audio, le chargement des ressources, le réseau ou les outils qui constituent l'essentiel d'un produit comme Unreal Engine ou Unity.

C'est les premiers jours du moment, je m'attends à voir plus de middleware émerger au cours de la prochaine année.


0

Je ne pense pas que de nombreux futurs MMO seront écrits avec une technologie de navigateur côté client, car la plupart des développeurs de MMO voudront utiliser le même langage sur le client et le serveur, et la plupart des développeurs de jeux parlent couramment des langages non Web comme C ++. Il y a beaucoup trop de code client impliqué pour le rendre très pratique en Javascript de toute façon, à l'exception des simulations assez banales. Il existe également d'autres limitations imposées par l'exécution dans le navigateur qui ne sont pas recommandables pour un développeur de jeu typique.

Je suis sûr qu'il y aura cependant des jeux comme celui-ci. Ils ne vont tout simplement pas prendre le relais de WoW ou de jeux similaires pendant un bon bout de temps. Ils seront probablement créés davantage par les développeurs Web qui se lancent dans les jeux que par les développeurs de jeux qui se lancent sur le Web.


Est-ce que le downvoter veut ajouter un commentaire expliquant comment il est en désaccord avec ma réponse? Je me demandais juste. :)
Kylotan

0

La question que vous devez vous poser est pourquoi les développeurs de jeux voudront-ils dépendre d'une technologie Web qu'ils ne maîtrisent pas et n'ont aucun contrôle, les langages actuels vous permettent même dans un navigateur Web de créer des jeux géniaux?


0

Oui, mais la technologie doit encore se stabiliser et il restera probablement des compromis entre les performances et les applications natives.


-3

L'unité est bonne. Voir aussi Shiva et le Prime Engine.


1
Unity et le Prime Engine n'ont cependant rien à voir avec les technologies mentionnées. Ce sont des plugins de code natif.
Kylotan

1
Ce sont des réponses dans le sens où nous disons: "Non, ce n'est pas une bonne idée de le faire, mais voici des alternatives." Les réponses qui disent "non mais voici une alternative" sont beaucoup plus préférables que simplement "non"
Tim Holt

3
Parfois, je suis d'accord, mais rarement. Il y a un danger d'essayer de lire dans l'esprit de quelqu'un et de deviner ce qu'il veut «vraiment» faire, alors qu'en réalité la question d'origine était parfaitement légitime en soi. Si quelqu'un demande l'adéquation de X, nous ne devrions pas toujours répondre par "utilisez simplement Y". À tout le moins, il devrait y avoir une comparaison de l'adéquation des deux afin que nous
repartions en

Je reformulerai ensuite ma réponse pour répondre à sa question sur la bibliothèque à utiliser. J'utiliserais moi-même la "bibliothèque" Unity: P
Tim Holt

- la réponse la mieux notée dit essentiellement la même chose ..
Erreur 454
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.