27/11/09

Acciones, no palabras

Desde el inicio de los tiempos en Simutrans, una de las características más demandadas por los jugadores, más los nuevos que los viejos, ha sido el modo multijugador. En las últimas versiones Prissi ha ido filtrando información a cuenta gotas acerca este tema, pero realmente todos nos preguntamos ¿como va el desarrollo del modo multijugador? pues vemos que se puede averiguar...

Leer más...

Antes de nada vamos a repasar un poco los antecendentes. Hasta hace unos cuatro años, hayá por la versión 0.88.xx, el modo multijugador estaba en tercer lugar en la lista de prioridades del equipo de desarrollo (fuente) por debajo debajo de temas como la correción de errores y los gráficos. En su momento la gente propuso intentar hacer cosas estilo Ogame para el modo multijugador, pero había otras prioridades.

network-Binkiexxx@flickrLos usuarios seguían demandando dicha funcionalidad, y durante bastante tiempo, el meme de Is it multiplayer yet?, algo así ¡¡pero como!!¿aún no tiene multijugador? fué lo más repetido en el foro de Simutrans.

La idea inicial era, y supongo que sigue siendo, una arquitectura cliente ligero y servidor, donde todos se conectan al servidor y este actúa como sincronizador de eventos. Si algo ocurre en alguna parte de la partida, se manda al servidor y este lo propaga al resto, para que todos los clientes obtengan la misma imagen de la partida.

Si tuviéramos que usar un símil, diríamos que el servidor sería el motor del juego y los clientes tendrían unicamente el interfaz. El servidor no haría más que enviar datos al interfaz del cliente, para que refleje los cambios y reciba cualquier dato de entrada del cliente que se deba propagar al resto. Esto supone que el tráfico entre todos los elementos puede ser bastante frecuente, pero no con tanta carga como puede parecer a primera vista. La ventaja de esto que los clientes pueden tener unos requisitos modestos mientras que las características de la partida, por ejemplo tamaño del mapa o número de ciudades, dependen exclusivamente del servidor. Podrían jugar clientes con PC viejos apoyándose en otros jugadores con mejores ordenadores. Teneís más información acerca de algunos de los detalles técnicos aquí.

Pero entonces, ¿en qué estado se encuentra la cuestión? Pues bien, repasando los últimos comentarios de Prisi, podemos sacar en claro varias cosas:
  • Parte del código existe y está operativo, pero solo se puede probar descargando, modificando y compilando el código del repositorio. Mas detalles aquí

  • Bastantes de los comandos y eventos se transmiten entre los jugadores y el servidor, pero aún hay que pulir detalles en el inicio y cierre de conexión.

  • Falta la parte más crítica, la sincronización de todos los eventos que tienen lugar en una partida de Simutrans: vehículos, edificios, terrenos, etc..

  • El cambio de jugador será mediante contraseña, y el servicio público no estará disponible de forma libre, como ocurre en la actualidad.

  • Habrá un jugador servidor, y el resto serán clientes que recibirán el fichero de la partida y se conectarán a ella, verificando que todos tienen los mismo objetos y en caso contrario, intercambiándolos.

  • En todo momento, los jugadores de la partida estarán sincronizados. Lo que ocurra en cualquier cliente, se propagará al resto a través del servidor.

Si tuviera que mojarme con una cifra, un porcentaje, diría que está como al 10-15%. Sé que no es mucho, pero Prissi no suelta prenda y en los comitts del repositorio de código no aparece nada relevante últimamente en relación a este aspecto. Supongo pues que de momento todo está en fase experimental, y que se va trabajando poco a poco. Hay que tener en cuenta que hay otras muchas cosas que atender como corregir los errores que surgen o revisar nuevos parches.

Por otro lado, en algún momento pasado se sugirió hacer algo parecido al famoso Ogame, con una arquitectura de cliente ligero, donde Simutrans estaría corriendo en un servidor de forma contínua y persistente mientras los usuarios se conectaban a dicha partida infinita e interactuaban. Evidentemente esta es una solución cara, por el coste del servidor y en cierto modo más orientada a los MMORPG que a los juegos de simulación. Sin embargo, existe una forma de juego que más o menos se aproxima a ello, llamada juego colaborativo, del cual ya hablamos largo y tendido hace tiempo.

El caso es que hace unos días, un nuevo miembro de la comunidad llamado Rodrigo Soracco, se interesó por el estado de desarrollo del modo multijugador y comentó que estaba desarrollando una especie de programa para automatizar las partidas colaborativas, a medio camino entre el estilo Ogame y el mundo persistente. Funciona usando un repositorio, donde los jugadores se conectan, descargan el juego, juegan y después se guarda cada nueva partida jugada. De esta manera tienes distintas versiones de la misma partida, y puedes engancharte en cualquier momento. Teneís todos los detalles aquí

Bueno, esperemos que poco a poco la cosa vaya tomando forma y en un futuro no muy lejano, digamos un año o dos, estemos todos conectados jugando de sol a sol... :D

Imágenes:
- network cortesía de Binkiexxx en Flickr
- Disconnected !!! cortesía de agelakis en Flickr

No hay comentarios: