Foros del Web » Programando para Internet » Javascript »

Javascript y HTML5, creando un juego multiplayer

Estas en el tema de Javascript y HTML5, creando un juego multiplayer en el foro de Javascript en Foros del Web. Hola a todos. Veréis, estoy estudiando Javascript y me he propuesto como proyecto final crear una especie de minijuego multijugador. De momento he creado uno ...
  #1 (permalink)  
Antiguo 14/08/2012, 15:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 9 años
Puntos: 3
Javascript y HTML5, creando un juego multiplayer

Hola a todos. Veréis, estoy estudiando Javascript y me he propuesto como proyecto final crear una especie de minijuego multijugador. De momento he creado uno sencillo, el clásico juego de la serpiente con un tablero en el que se van guardando las puntuaciones mediante AJAX y se devuelven cada 10 seg. o cada vez que el usuario pierde una vida.

Bien.. lo que ahora pretendo es crear una especie de minijuego en el que los usuarios se puedan comunicar. No sé si habréis escuchado hablar de BrowserQuest https://hacks.mozilla.org/2012/03/browserquest/ (removed el link si no se permite publicidad, lo siento, solamente es para que se le eche un vistazo a la screenshot que aparece). Es un MMORPG en el que los jugadores entran, y manejando su personaje se cruzan con otras personas, hablan con ellas, pelean juntos, etc.
Para ello se utilizan websockets, HTML5, javascript.. utilizan node.js y socket.io si no me equivoco, para la comunicación en tiempo real, permitiendo una comunicación bi-direccional entre el servidor y el cliente.

Ahora bien.. he estado leyendo y al parecer para eso necesito un hosting que tenga instalado node o un vps e instalarlo yo manualmente.. el caso es que tengo un hosting ya comprado para 4 años, y no me interesa comprar otro, y menos gastarme el dinero que supone un vps..

El tema es.. que me gustaría saber como crear algo por el estilo, no tan elaborado, pero si que sea comunicación en tiempo real, una especie de MMORPG. ¿Necesito realmente instalar algo? ¿Se puede hacer en un web hosting corriente? No quiero flash ni nada de eso, busco que se pueda jugar con el navegador tal cual, con javascript, sin aplicaciones terceras..

Gracias, un saludo!
  #2 (permalink)  
Antiguo 15/08/2012, 05:41
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Ubicación: Barcelona
Mensajes: 407
Antigüedad: 9 años, 8 meses
Puntos: 50
Respuesta: Javascript y HTML5, creando un juego multiplayer

Puedes hacerlo, pero necesitas algo de PHP+MySQL extra.

Suerte con tu proyecto
__________________
Tu duda está explicada aquí →→Mi blog de JavaScript, HTML5, CSS3 y PHP

+1 si te sirvió mi respuesta ;-) (y ya de paso visita el blog ▲↑)
  #3 (permalink)  
Antiguo 15/08/2012, 06:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 9 años
Puntos: 3
Respuesta: Javascript y HTML5, creando un juego multiplayer

¿Pero sería con las típicas funciones de setInterval para refrescar la parte del juego cada x segundos y que cada jugador viera la posición del otro? Sé que entonces las posiciones de cada jugador las tendría que guardar en MySQL, pero es que eso es una burrada comparado con los websockets, es decir, tendría que estar haciendo consultas AJAX a cada milisegundo para averiguar la posición de los jugadores con cada persona que esté en esa partida. Eso, o hago un juego que no sea exactamente en tiempo real.

¿Lo que tú dices es en tiempo real? ¿Es comunicación directa? Es que de momento no me cabe en la cabeza y me gustaría tener una base y a raíz de eso estudiarlo.

Gracias!
  #4 (permalink)  
Antiguo 15/08/2012, 06:04
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 8 años
Puntos: 127
Respuesta: Javascript y HTML5, creando un juego multiplayer

Es muy sencillo manejar socket.io con node.js, es un sistema de eventos al que estarás acostumbrado si programas habitualmente con javascript.

socket.emit("evento",data) <- emite un evento al servidor o al cliente

socket.on("evento",callback) <- recibe un evento creando un listener previo

socket.send(data) <- envía datos

[...]

Si la comunicación es bidireccional puedes crear aplicaciones mucho más interactivas, con nodejs puro no es posible crear intervalos de tiempo dinámicos o contadores más que bloqueando la ejecución del script con while, etc.

io.sockets.on('connection',,function(s){
setTimeout(ejemplo,6000,s);
}

function ejemplo(s){
s.emit("evento a los 6 segundos");
}
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #5 (permalink)  
Antiguo 15/08/2012, 06:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 9 años
Puntos: 3
Respuesta: Javascript y HTML5, creando un juego multiplayer

Exacto, tengo guías sobre sockets y la verdad es que lo encuentro algo muy sencillo.
El problema es si puedo meter eso en un web hosting, es decir, ahí no puedo instalar cosas como node.js, porque en un web hosting no tienes acceso a una terminal!
Ahí está el problema :( Si se pudiera trabajar con sockets y esa comunicación en tiempo real sin tener que instalar segundos programas..

Gracias de antemano y muchas gracias por tus ejemplos!
  #6 (permalink)  
Antiguo 15/08/2012, 06:11
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 8 años
Puntos: 127
Respuesta: Javascript y HTML5, creando un juego multiplayer

Obviamente, necesitas tener acceso a la terminal.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #7 (permalink)  
Antiguo 15/08/2012, 06:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 9 años
Puntos: 3
Respuesta: Javascript y HTML5, creando un juego multiplayer

Entiendo, entonces no hay ninguna forma de hacer un multiplayer en tiempo real en un web hosting común sin sobrecargarlo a peticiones, ¿no?
  #8 (permalink)  
Antiguo 15/08/2012, 06:24
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 8 años
Puntos: 127
Respuesta: Javascript y HTML5, creando un juego multiplayer

Cita:
Iniciado por Alex265 Ver Mensaje
Entiendo, entonces no hay ninguna forma de hacer un multiplayer en tiempo real en un web hosting común sin sobrecargarlo a peticiones, ¿no?
En un Webhosting estándar con mysql y php en apache, la única buena alternativa posible es usar peticiones AJAX contínuas, como planteaste al principio.

En PHP léete esto si te interesa averiguar cómo crear sockets

http://www.lampdocs.com/blog/2008/12...upport-in-php/

y

http://www.php.net/manual/es/intro.sockets.php

UN saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Etiquetas: game, html5, mmorpg, websockets
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:37.