Probablemente sea bastante complicado.
Por un lado, probablemente necesite algún tipo de canal de control, tal vez una conexión TCP que el servidor pueda usar para notificar al cliente sobre qué mapa descargar, enviar el Mensaje del día (la primera pantalla donde los servidores pueden colocar un archivo HTML para ser se muestra a los clientes cuando se conectan), envíe el número de jugadores conectados, el nombre del servidor y similares. Probablemente pueda usar algunos protocolos existentes para algunas partes, por ejemplo, HTTP para la descarga del mapa.
Entonces necesita algo para los datos del juego, casi con certeza usando UDP, la razón es que en este tipo de comunicación en tiempo real, es preferible simplemente descartar e ignorar los paquetes que toman alguna ruta y llegan tarde; no necesita una secuencia secuencial agradable de eventos (como lo haría TCP), solo necesita las últimas posiciones de los jugadores y las direcciones en las que se enfrentan.
- ¿Cómo se desarrolla un sistema back-end en múltiples lenguajes de programación?
- La base de datos M (escrita en MUMPS) es una base de datos NoSQL que existe desde la década de 1960. Todavía se usa ampliamente como el back-end de hospitales (VA) y bancos de todo el mundo. Dada una reputación de alta velocidad y rendimiento, ¿por qué no ha ganado más popularidad en el mundo de la programación?
- ¿Alguna empresa de desarrollo de sitios web confiable y de buena reputación en China (con sede en Nanjing, Shanghai o cerca)?
- ¿Puedes explicar lo que hace un lenguaje de fondo, en términos simples? ¿Qué tiene que ver con un servidor y de qué tipo de servidor están hablando?
- ¿Debería un desarrollador front-end tomar un trabajo y contratar a un desarrollador back-end para hacer el resto?
Entonces se pone feo. Probablemente no quieras retransmitir todas las posiciones de los jugadores y orientar las direcciones a todos los jugadores; esto hará que escribir hacks sea demasiado fácil. Por lo tanto, probablemente necesite al menos un modelo aproximado del mapa en el lado del servidor, y una forma de probar si un jugador puede ver o escuchar a otro jugador, y no enviar datos de posición si no deberían, para que los piratas informáticos tengan menos datos trabajar con.
Otro problema es que la Relatividad Especial de Einstein dice que escribir el servidor CS: GO perfecto es físicamente imposible : no se puede tener toda la información del jugador perfectamente sincronizada entre todos los jugadores y el servidor, porque la información no puede viajar instantáneamente. Cuando un cliente envía su posición actual, hay una latencia de red, y el servidor solo puede esperar ver su posición [matemática] n [/ matemática] milisegundos atrás; nunca pueden conocer su posición actual, real y actual. Entonces usan la predicción para tratar de compensar el retraso. Por supuesto, a veces estas predicciones serán incorrectas, lo que lleva a situaciones en las que el cliente puede demostrar que ha golpeado a alguien, pero el servidor no lo registra (un problema realmente molesto en lo que respecta a las personas que juegan al juego, especialmente en juegos de ritmo rápido como CS, donde una sola bala puede ser la diferencia entre ganar y perder).