MMO basados ​​en navegador (WebGL, WebSocket) [cerrado]

29

¿Crees que es técnicamente posible escribir un cliente MMO 3D completo con JavaScript del navegador: WebGL para gráficos y WebSocket para redes?

  • ¿Crees que los futuros MMO (y los juegos en general) se escribirán con WebGL?
  • ¿El rendimiento de JavaScript de hoy lo permite?
  • Digamos que su equipo de desarrollo fue usted como desarrollador y otro creador de modelos (artista). ¿ Usaría una biblioteca como SceneJS para el juego, o escribiría WebGL directamente? Si usaría una biblioteca, pero no SceneJS, especifique cuál.

ACTUALIZACIÓN (septiembre de 2012): RuneScape, que es un MMORPG basado en navegador 3D muy popular que usó Applets Java hasta ahora, ha anunciado que usará HTML5 para su cliente ( fuente ).

Runescape HTML5

Java (izquierda) y HTML5 (derecha)

ACTUALIZACIÓN (junio de 2013): he escrito un prototipo de un MMO basado en WebGL / WebSocket: https://github.com/alongubkin/xylose

Alon Gubkin
fuente
3
Mozilla Firefox y Opera acaban de abandonar el soporte de websocket por razones de seguridad: heise.de/security/meldung/… Vea gamedev.stackexchange.com/q/6524/450 para obtener una abstracción cruzada del navegador de las cosas de la red.
Hendrik Brummermann
2
Creo que las tres preguntas son interesantes, pero prefiero que se dividan en tres preguntas. En mi opinión, apenas están relacionados.
2
Técnicamente es posible, sí. Siendo realistas es otro asunto.
El pato comunista
Como nota al margen: Google hizo una biblioteca de JavaScript en WebGL que es bastante genial: code.google.com/p/o3d
Alex Beardsley
Supongo que su pregunta implica un MMO 3D. 3D no es un requisito para el género, y de hecho, muchos MMO han existido en la web durante años como poco más que formularios HTML (consulte urbandead.com ) Sin mencionar todos los juegos PHP de Gameforge ( en.gameforge.com ) o las cosas más exóticas de AJAX / Javascript como Lord of Ultima ( lordofultima.com )
wkerslake

Respuestas:

7

¿Crees que es técnicamente posible escribir un cliente MMO 3D completo con JavaScript del navegador: WebGL para gráficos y WebSocket para redes?

Si, absolutamente. No hay ninguna razón por la que la tecnología WebGL o WebSocket le impida crear un cliente MMOG 3D, o cualquier cliente de juegos para el caso.

¿Crees que los futuros MMO (y los juegos en general) se escribirán con WebGL?

Sí. Creo que en los próximos cinco años, la mayoría de los juegos de navegador 3D se escribirán con WebGL. La razón es simple: WebGL es la única tecnología 3D estandarizada que tendrá implementaciones disponibles en todos los principales navegadores web (Chrome 9, Firefox 4, Safari 6 e Internet Explorer a través de Chrome Frame).

¿El rendimiento de JavaScript de hoy lo permite?

Sí. El rendimiento de JavaScript en los navegadores modernos ha aumentado hasta el punto en que el desarrollo de juegos 3D es factible. Por ejemplo, vea el proyecto Three.js .

Digamos que su equipo de desarrollo fue usted como desarrollador y otro creador de modelos (artista). ¿Usaría una biblioteca como SceneJS para el juego, o escribiría WebGL directamente? Si usaría una biblioteca, pero no SceneJS, especifique cuál. ¡Gracias!

Use una biblioteca para ahorrar tiempo. No hay ninguna razón para escribir su propio código de gráficos WebGL a menos que a una biblioteca existente le falten las características que necesita. Incluso en ese caso, probablemente sería más eficiente en tiempo extender la biblioteca existente.

Para mi proyecto, estoy usando GLGE, ya que admite muchos efectos gráficos diferentes y se actualiza constantemente con otros nuevos.

Jephir
fuente
2
La pregunta "¿Crees que los futuros MMO (y los juegos en general) se escribirán con WebGL?" y la respuesta "Sí. Creo que en los próximos cinco años, la mayoría de los juegos de navegador 3D se escribirán con WebGL". no son una pareja precisa el uno para el otro ...
Kylotan
5

Ya hay varios MMO basados ​​en navegador por ahí. Sin embargo, generalmente no usan gráficos 3D.

Soy un poco escéptico cuando se trata de WebGL. La actual cosecha de navegadores no admite WebGL en sus versiones de lanzamiento normales. Tendrá que obtener compilaciones especiales o meterse con archivos de configuración, lo que es más complicado para el usuario promedio que descargar un complemento.

Hablando de complementos: varias personas mencionaron Unity, pero no olviden Flash. Un próximo lanzamiento del reproductor Flash (nombre en clave molehill ) tendrá 3D acelerado por GPU. Supongo que ese flash proporcionará gráficos 3D acelerados por hardware en el navegador antes de que despegue WebGL.

bummzack
fuente
1
El problema del navegador estable con soporte webgl no debería ocurrir después de enero de 2010 más o menos. Firefox 4 y Chrome 9 están programados para salir aproximadamente en ese momento. Chrome 9 beta es bastante simple de instalar y no requiere jugar con nada para habilitar webgl. El enlace a la edición beta está debajo del enlace de descarga regular para Chrome.
Nicolas K.
@Nicolas K. - ¿Te refieres a enero de 2011 ?
DMan
1
@Nicolas K: la disponibilidad de un navegador y la instalación de la base de un navegador son cosas muy diferentes. El 13% del tráfico de Internet sigue siendo IE6. Fuente: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake
@DMan: Probablemente, ya que está fuera ahora. No puedo esperar hasta que alguien figuras manera de pantalla azul (o pánico del kernel, o lo que es lo Macs) un controlador OpenGL chungo usando WebGL ...
1
@wkerslake: esas estadísticas son escandalosas. Mantengo un sitio dirigido al consumidor promedio de Internet con medio millón de visitas únicas por día, y menos del 1% de ellas usa Internet Explorer 6 (aproximadamente 1/3 usa Internet Explorer 7/8/9). Firefox y Chrome representan el 50% del tráfico, y son navegadores que se actualizan automáticamente, lo que significa que la mayoría de las personas tendrán instalado el soporte WebGL en unos pocos meses. Dado que el desarrollo de un juego puede llevar fácilmente 6 meses, no veo ninguna razón para desalentar a las personas de usar WebGL hoy.
Blixt
3

¿Técnicamente posible? Sí. Pero, ¿por qué molestarse cuando hay soluciones web como Unity disponibles?

¿MMOs futuros escritos en WebGL? No. Ok, tal vez, pero hay complementos basados ​​en la web como Unity que funcionan bien en este momento.

¿El rendimiento de JavaScript de hoy permite esto? No. Ok, sí, si mantienes tu juego simple.

¿Usaría una biblioteca como SceneJS [...] o escribiría directamente WebGL? Ninguno. Usaría una aplicación de terceros como Unity.

Tim Holt
fuente
44
Su respuesta es incorrecta, contradictoria y mal formateada. Lamento ser tan duro. Si crees que Op debería usar la unidad, dilo en un comentario a su pregunta.
oberhamsi
Irónicamente oberhamsi, mi respuesta original solo decía "Use Unity", pero me dijeron que necesitaba responder la pregunta más directamente.
Tim Holt
1
De acuerdo, bastante justo. Creo que la unidad es una bestia muy diferente que intentar hacerlo de forma nativa en el navegador. Claro, puedes hacer cualquier cosa con un complemento, pero la pregunta me parece: ¿cuáles son los límites de las tecnologías de navegador nativas?
oberhamsi 01 de
2

Esto no es factible en este momento (principios de 2011). No puede crear un MMO 3D en tiempo real en tecnologías de navegador nativas (es decir, sin complementos).

No especularé sobre el futuro. Así es como se ve ahora. Suponiendo que solo se dirige a los navegadores modernos (IE9, FF4, etc.). Si planeas soportar IE7, estás loco. Eso nunca funcionará.

Cosas faltantes:

  • control total sobre el teclado y el mouse (capacidad de establecer la posición del mouse, intercepción de teclas)
  • pantalla completa
  • 3D

Áreas / soluciones con problemas serios:

  • WebSockets ahora desactivado en los pocos navegadores que lo admiten
    • sin él: ahora baja latencia, comunicación bidireccional cliente-servidor
  • problemas de audio
    • codec mess, necesitas ogg y mp3
    • frecuencias comunes no compatibles
    • concurrencia
    • retrasar
  • rendimiento del lienzo (en algunos casos, hacer transformaciones divs y css es más rápido)
Oberhamsi
fuente
1

Sí, pero con grandes advertencias.

No tendrá control total del teclado, y para muchos fanáticos del control, esto podría ser un factor decisivo. Las teclas F, por ejemplo, probablemente permanecerán fuera del alcance durante bastante tiempo.

Tampoco podrás acceder a la mayoría de los navegadores. WebGL aún no está bien soportado, y el soporte websocket es impredecible en estos días, con algunos proveedores de navegadores que lo habilitan para una versión y luego la deshabilitan para la siguiente.

Pero puedes armar algo simple, seguro. Agregue un juego atractivo y no importará que los gráficos sean un poco discretos. Runescape comenzó bastante simple y se convirtió en un MMO complejo, divertido e increíblemente popular, cuando todos decían que un MMO creado en un complemento de navegador era un sueño imposible.

Un MMO construido dentro de los límites actuales para los navegadores que se adapta a medida que las cosas cambian sin duda tendrá una ventaja para cuando los navegadores estén lo suficientemente lejos como para soportar un MMO "AAA".

Dan Hulton
fuente
1
Casi todos los navegadores modernos admiten las teclas de función ( quirksmode.org/js/keys.html#link6 ). De hecho, esa página tiene al menos varios años y el soporte para ellos en los navegadores modernos probablemente sea aún mejor.
Ricket
1

Absolutamente sí.

WebGL se incluye en versiones nocturnas de WebKit (Chrome / Safari) y Gecko (Firefox). Actualmente, WebSockets está deshabilitado debido a problemas de seguridad, pero no hay ninguna razón por la que no deba volver a habilitarse una vez que se resuelvan los problemas. Mientras tanto, siempre hay HTTP.

¿Todos los juegos se escribirán de esta manera? No, pero un número significativo lo será. Una vez que WebGL esté en las versiones finales de Chrome y Firefox, la penetración ya será mayor que la de los complementos nativos como Unity.

El rendimiento de JavaScript depende absolutamente de escribir juegos. Probablemente no verá un nivel de gráficos de Crysis por un tiempo, pero recuerde que con WebGL, la reducción de números se descarga a la GPU.

Para un equipo pequeño de 2 personas, deberá estar preparado para codificar mucho el motor que utilice. Actualmente no hay motores WebGL / JavaScript que realmente cubran gran parte del código del juego. SceneJS, three.js y similares son envoltorios sobre la capa de gráficos, pero no proporcionan nada para colisiones, física, audio, carga de recursos, redes o herramientas que constituyen la mayor parte de un producto como Unreal Engine o Unity.

Es temprano en este momento, esperaría ver más middleware emergente durante el próximo año.

Dave
fuente
0

No creo que muchos futuros MMO se escriban con ninguna tecnología de navegador del lado del cliente, ya que la mayoría de los desarrolladores de MMO querrán usar el mismo idioma en el cliente y el servidor, y la mayoría de los desarrolladores de juegos dominan idiomas que no son web como C ++. De todos modos, hay demasiado código de cliente involucrado para que sea muy práctico en Javascript, a excepción de simulaciones bastante triviales. También hay otras limitaciones impuestas al ejecutarse en el navegador que son desagradables para un desarrollador de juegos típico.

Sin embargo, estoy seguro de que habrá algunos juegos como este. Simplemente no van a tomar el control de WoW o juegos similares durante bastante tiempo. Probablemente serán más desarrollados por los desarrolladores web que ingresen a los juegos en lugar de los desarrolladores de juegos que ingresen a la web.

Kylotan
fuente
¿El votante desea agregar un comentario que explique cómo no está de acuerdo con mi respuesta? Sólo me preguntaba. :)
Kylotan
0

La pregunta que debes hacerte es por qué los desarrolladores de juegos querrán depender de la tecnología web que no dominan y no tienen control, ¿los idiomas actuales te permiten incluso en un navegador web hacer juegos increíbles?

lollancf37
fuente
0

Sí, pero la tecnología aún necesita estabilizarse y probablemente seguirá habiendo compensaciones de rendimiento frente a las aplicaciones nativas.

Vincent Scheib
fuente
-3

La unidad es buena. Ver también Shiva y el primer motor.

Lionel Barret
fuente
1
Sin embargo, Unity y Prime Engine no tienen nada que ver con las tecnologías mencionadas. Son complementos de código nativo.
Kylotan
1
Son respuestas en el sentido de que estamos diciendo: "No, no es una buena idea hacer esto, sin embargo, aquí hay alternativas". Las respuestas que dicen: "No, pero aquí hay una alternativa" son mucho más preferibles que simplemente "No"
Tim Holt
3
A veces estoy de acuerdo, pero rara vez. Existe el peligro de tratar de leer la mente de alguien y adivinar lo que "realmente" quieren hacer, cuando en realidad la pregunta original era perfectamente legítima por derecho propio. Si alguien pregunta sobre la idoneidad de X, no siempre deberíamos responder con "solo use Y". Como mínimo, debería haber una comparación de la idoneidad de los dos para que
salgamos
Reformularé mi respuesta para responder su pregunta sobre qué biblioteca usar. Yo mismo usaría la "biblioteca" de Unity: P
Tim Holt
la respuesta mejor calificada dice básicamente lo mismo ...
Error 454