juanjoLeMarchand escribió:
¡Gracias!
Tengo una duda muy tonta, pero, ¿Cómo se lanza AGE como servidor?
La clave está en lanzar el ejecutable Aetheria.(bat/sh/command) en vez del Simpleage.(bat/sh/command) que se recomienda normalmente. El Simpleage es más bonito y ligero, pero es sólo cliente, el Aetheria.bat es el que incluye también el servidor.
Una vez lanzado Aetheria.bat, vas al menú "Servidor - Configuración...", marcas "Servir por AGE" y configuras el puerto.
Hecho esto, puedes lanzar una partida como servidor de dos maneras:
- Partida no dedicada (o sea, juega el servidor también): vas a la ventana de cargador de juegos, en "Opciones" marcas "Servidor AGE", y lanzas el juego.
- Partida dedicada (recomendado): vas a "Servidor - Configuración..." y agregas una partida dedicada, recuerda marcar de nuevo el protocolo de AGE en la ventana al efecto.
El kit de desarrollo de AGE tiene un juego tonto llamado CollejaLand que puedes utilizar para probar el multijugador (simplemente permite que unos jugadores le den collejas a otro). Para una aventura multijugador más elaborada, puedes usar Burbuja de dddddd:
http://wiki.caad.es/BurbujajuanjoLeMarchand escribió:
Y puesto a preguntar: ¿es la opción para las aventuras multijugador? ¿Usa alguna clase del núcleo que no se use en cheapage?
El núcleo es siempre el mismo, común a todas las interfaces (cheapage o ventanas) y a todos los modos (mono o multijugador).
Básicamente las únicas clases específicas para jugar en cliente-servidor (multijugador o no) son las que te he puesto (aparte de clases para gestionar cosas técnicas como configuración de puertos, desconexiones y temas así). De hecho, AGE sigue una arquitectura cliente-servidor incluso si se ejecuta en local. Lo único que pasa al ejecutarlo en remoto es que el servidor se comunica con un tipo de cliente que resulta ser un "AGEClientProxy", en vez de un cliente "local", pero el servidor ni se entera porque la interfaz es la misma. Por la parte del cliente, el "ServerProxy" es como un cliente más, sólo que en lugar de hacer las cosas directamente, se conecta con el servidor.
juanjoLeMarchand escribió:
Mirando los ficheros que me comentas, parece que no hay demasiados mensajes en el protocolo, con lo que puede ser viable realizar las modificaciones...
Sí, le falta documentación pero es muy sencillito. Creo recordar también que no soportaba tooda la funcionalidad (por ejemplo, sí que soporta los colores de texto, el "wait for key press" y cosas así, pero no recuerdo si el soporte de imágenes estaba completo o era sólo parcial), porque la verdad es que no es algo que la gente me pidiese ya que AGE en remoto no se usó mucho. Pero si es importante para permitir la ejecución de aventuras de AGE en el navegador, puedo ponerme la tarea de terminar los flecos que faltaban y hacer que el 100% de la funcionalidad multimedia de AGE pueda funcionar en remoto.
juanjoLeMarchand escribió:
Ahora mismo, lo que tuve que hacer se resumen en cambiar el InpuOutputClient para que pudiera usar AJAX con el cliente y el servidor (Servlet). Podría volver a hacerlo con un MultimediaClientInputOutput...
Me parece genial haber usado sockets TCP para la versión multijugador. A mí, me gustaría portarlo para que soporte WebSockets, o por lo menos REST. Así sería incluso más fácil crear otras interfaces para navegador, y alojar el servidor...
Todo ello suena bien.
juanjoLeMarchand escribió:
No sé si lo habéis comentado ya, pero con las versiones para navegador puede ser más sencillo crear interfaces personalizados por cada juego, o integrarlo en portales...
A ver si puedo avanzar poco a poco...
¡Salud!
Supongo que con el "núcleo" funcionando, personalizar la interfaz de cada juego (aparte de lo que ya proporciona AGE en cuanto a colores, imágenes, etc.) sería cosa de editar HTML, ¿no?