¿Como montar un servidor para un juego online?

Iniciado por SheKeL_C$, 10 Junio 2016, 04:05 AM

0 Miembros y 1 Visitante están viendo este tema.

SheKeL_C$

Estoy haciendo un juego para android y cuando le acabe si tengo tiempo y ganas pondre la opcion de jugar en modo multiplayer cooperativo.

Mi pregunta es... que tipo de conexion tendria que hacer desde el movil a mi servidor, y de este al otro jugador para poder actualizar rapidamente la posicion de todos los objetos del juego?

engel lex

el protocolo usado es completamente decisión tuya... en gran nivel tienes 2 opciones udp y tcp...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

AlbertoBSD

Cita de: engel lex en 10 Junio 2016, 04:12 AM
udp y tcp...

udp Menor Lag, mas errores sin sentido, jugadores volando o invencibles (No sabes sabes en donde estan en tiempo real,)
tcp mayor lag, mas errores aun que en UDP y cosas sin sentido.

Depende de tu programaron en general, si quieres que ningun dato del jugador se pierda tiene que ser TCP pero te expones a mas desconexiones (Los dema jugadores SI sufren probremas por las desconexiones de un jugador [Depende de tu programacion]). en UDP pierdes ciertos paquetes en el servidor y tanto el cliente como el servidor tiene  que ponerse de acuerdo para corregir esa asimetría de información. (Los dema jugadores no sufren probremas por las desconexiones de un jugador [Depende de tu programacion])


Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

gAb1

Puedes preguntar a los expertos, hay muchos proyectos de código abierto de diversos juegos online que tuvieron el mismo dilema (como hacer una comunicación entre cliente-servidor eficiente). Dos que más recuerdo ahora mismo son Mangos y TrinityCore (ambos emuladores de WoW).

Tienes documentación en sus respectivas páginas y foros e incluso acceso para ver el código (c y c++) en github y hacerte una idea de como implementarlo en tu aplicación.

Tambien tienen canal de irc, donde hablan sobre el desarrollo y tambien ayudan a quien pregunta algo relacionado con el funcionamiento del emulador (por lo menos lo he visto en el irc de TrinityCore, no sé como es el ambiente en Mangos). Eso si, hay que hablar ingles  ;D (en el canal de habla hispana solo hay un moderador y creo que algun contribuidor (españoles y latinos).

windic

Actualmente casi todos los videojuegos online hacen conexiones UDP ya que suele primar la velocidad a pesar de que existe la posibilidad de haya información que se pierda.

TCP no se suele utilizar porque el protocolo no asegura el tiempo que va a tardar en llegar la información (aunque si asegura que va a llegar sin errores) pero por lo tanto puede tener tiempos de espera larguísimos.

Por otra parte te aconsejaría utilizar un protocolo de transporte como SCTP el cual fue diseñado para este tipo de comunicaciones.