Mostrando entradas con la etiqueta red. Mostrar todas las entradas
Mostrando entradas con la etiqueta red. Mostrar todas las entradas

2/1/10

Pedid y se os dará conexión

Parece los ruegos han sido atendidos y este nuevo año finalmente nos ha traído el modo multijugador, o al menos una versión preliminar. En Escala Real lo hemos probado y el resultado es sorprendentemente gratificante, y porqué no decirlo, estable. Esta es una pequeña guía de como hacerlo funcionar para que podaís comprobar por vosotros mismos lo que hay hecho hasta ahora.

Leer más...

Lo primero es descargarse una versión de compilación nocturna, a ser posible la más reciente, con el ejecutable y un pakset (recomiendo pak64). Yo lo probé en windows y descargué la versión GDI, por tanto el ejecutable es simu-gdi.exe. Tras instalar la nueva versión, hay que abrir dos consolas de MSDOS o terminales en Linux.

A continuación hay que situarse en el directorio de simutrans (con cd .. bajas de nivel y con cd directorio subes)

La de arriba será el servidor, y teneís que poner el siguiente comando
simu-gdi.exe -server -log 0 -debug 0
que arrancará el juego en modo server. A continuación iniciamos una nueva partida y esperamos con la ventana abierta.

La de abajo será el cliente, y teneís que poner el siguiente comando
simu-gdi.exe -log 0 -debug 0
para que inicie el cliente de Simutrans en modo depuración.



Seguidamente, con el servidor esperando y el cliente iniciado, cargamos una nueva partida en el cliente con nombre net:127.0.0.1. Esto provocará que el cliente se conecte al bucle local, es decir, a vuestra misma máquina por tanto el retraso(lag) debería ser el menor posible.



Ahora ajustad el tamaño de las ventanas a modo ventana partida, y podréis ver como al modificar algo en una de las dos, el cambio se refleja en ambas. Probad a construir una carretera, o cread una línea de bus y comprad un autobús. Veréis como el bus se mueve al mismo tiempo en ambas pantallas.



No he probado si cambiando la IP se puede conectar a máquinas externas, fuera del bucle local, pero sin duda es un comienzo muy prometedor para este ansiado modo multijugador de Simutrans.

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