SnakeTron
Este es un proyecto que
comienza como trabajo para la asignatura de Arquitectura de Redes de
Computadores, del grado de informática. Como trabajo se pedía una
aplicación distribuida, que utilizara un modelo cliente-servidor, en que
el servidor distribuyera a los clientes en grupos, y cada vez que
recibiera un paquete de uno de ellos, lo retransmitiera a todo su grupo.
Se proporcionaban un par de ejemplos, que básicamente transmitían la
posición de diferentes elementos, permitiendo a cada uno conocer la
posición del resto de su grupo. Al ver este modelo de red,
inmediatamente pensé en
este otro proyecto que había realizado hacía tiempo, se trata de una versión multi-jugador del clásico juego arcade
snake,
que desde hacía tiempo, quería adaptar para que funcionara online.
Evidentemente es un proyecto en desarrollo, y con unos cuantos bugs
(especialmente remarcables, el que a veces los clientes fallan al
arrancar, y que en la versión de windows el modo cliente no funciona en
lo absoluto), una vez que el proyecto termine su función como trabajo de
clase (en Diciembre), se publicará toda la documentación, sin embargo
para simplificar la tarea de testear e ir dando a conocer el proyecto,
ya está publicado el código
aquí, y los binarios de
Linux,
Windows, y
Android.
Están previstos unos cuantos cambios importantes tanto en la interfaz
como en la funcionalidad, como parte del proyecto de clase, por lo que
no vale la pena hacer manuales de usuario detallados aun, sin embargo de
forma general, el programa es ambos servidor y cliente, hace una u otra
función dependiendo de la configuración de arranque, de momento
establecida en el fichero SETTINGS.conf, que de no existir es creado por
el programa con la configuración por defecto, servidor, en el puerto
9999, 3 jugadores por partida, y medio segundo entre movimientos; si se
quiere que funcione de cliente en dicho archivo se ha de cambiar la
línea 'MODE server' por 'MODE client', y en la línea 'URL
snaketron.ddns.net' se ha de cambiar esa url por la ip del servidor.