PlanetServer se utiliza para desarrollar entornos virtuales de múltiples usuarios al proporcionar una capa intermedia entre el cliente y el servidor. Utiliza sockets para que cualquier mensaje enviado desde un cliente se pueda transmitir a todos los demás clientes. PlanetServer admite plataformas Android/iOS/Windows/Max/Linux en este momento. Utiliza un protocolo personalizado en TCP y pronto también apoyaremos UDP. ## Directorios
PlanetServer tiene algunos directorios principales que debe conocer sobre
Lib : contiene todas las dependencias necesarias por el servidor '
Extensión : contiene el frasco de extensión de su juego y cualquier otra dependencia personalizada que necesita su extensión
Conf : contiene un archivo de configuración para el servidor, y también un archivo de configuración para log4j (registro)
##Configuración
PlanetServer contiene un archivo config.properties en la carpeta conf. Este archivo se puede editar para configurar configuraciones específicas para su servidor.
server.tcp.port La configuración se utiliza para configurar el puerto en el que está escuchando su servidor
Server.Threads.Executor La configuración se utiliza para configurar el número de subprocesos en Threadpool. Deberá aumentar esta cantidad en función de la cantidad de actividad por razones de rendimiento.
También hay un archivo log4j.properties donde puede configurar el registro de su servidor. Consulte la documentación log4j para obtener más detalles sobre esto.
Dentro de la carpeta de extensión hay un archivo World.Properties . Este archivo contiene propiedades específicas para su juego y es accesible a través de su código de juego. La única propiedad necesaria aquí es la extensión.class.name que apunta al punto de entrada principal de su aplicación. El ejemplo proporcionado tiene esto configurado, por lo que para su propia extensión simplemente cambie el nombre de clase.
## Extensiones Al crear su aplicación, crea una extensión para PlanetServer. La extensión es simplemente un archivo JAR que se coloca dentro de la carpeta de extensión con todos los demás archivos JAR necesarios para su aplicación. Debe crear una clase principal para la extensión para el punto de entrada. La clase principal debe extenderse desde psextensión y anular los métodos init y destruir. Por ejemplo
public class WorldExtension extends PSExtension {
@Override
public void init()
{
}
@Override
public void destroy()
{
super.destroy();
}
}
Coloque cualquier funcionalidad personalizada en los métodos init y destruye. Esto puede contener cualquier código personalizado que necesite para su aplicación.
## Solicitudes de extensión Para enviar comandos personalizados al servidor debe registrar una clase personalizada para un controlador de solicitud. Por ejemplo, digamos que tiene un jugador y desea enviar una solicitud para hacer algo por el jugador. Primero agregue el controlador de solicitudes AddRequestHandler ("Player", PlayerRequest.class); Luego cree el archivo Java de PlayerRequest que se extiende desde BasicClientRequestHandler. Usted anula el método HandLeclientRequest y luego puede analizar la solicitud que se envió.
Todos los comandos se envían usando una notación de puntos. Por ejemplo, cualquier cosa que comience con el jugador. Será manejado por el controlador de solicitudes que está registrado para la cadena "reproductor" Algunos comandos de ejemplo podrían ser jugadores. Puede ver el ejemplo en el archivo Java de muestra.
## Los planes futuros para la próxima versión principal La versión 1.1 admitirá la mensajería UDP. Creemos que esto es necesario para algunos juegos de tasa de mensajes más altas.