Red de conocimiento informático - Material del sitio web - Cómo aprender programación introductoria de juegos

Cómo aprender programación introductoria de juegos

El siguiente artículo utiliza el servidor como ejemplo. Espero que te resulte útil.

--------------

Aprendiendo los conceptos básicos de la programación de servidores de juegos

Jiang Xuewei

Hace algún tiempo, ha estado enseñando a los desarrolladores a aprender la tecnología de motores de juegos 3D, incluida la encapsulación de la estructura de datos subyacente del juego, algoritmos y cursos de video para compartir tecnología práctica de juegos, y ha escrito algunos artículos sobre el uso de algoritmos para resolver problemas prácticos de juegos, etc. Mientras presentaba el motor de juegos 3D a los lectores, algunas personas también me preguntaron cómo aprender la tecnología de programación de servidores de juegos. De hecho, también me gusta la programación de servidores de juegos. Durante el proceso de desarrollo del juego, la carga de trabajo del desarrollo del servidor del juego es mucho menor que la del cliente. Por ejemplo, en las últimas etapas del desarrollo del juego, el cliente necesita ajustar varios efectos, cambiar la interfaz de usuario, etc. Por supuesto, hay muchos códigos de servidor de código abierto en Internet. Puede buscar muchos códigos en Github, como java, C#, C++, C, erlang, python, etc. Muchas personas están confundidas acerca de esto y no. No sé qué tipo de código deberían aprender. El desarrollo de la programación de servidores también varía de una región a otra. Los centros de desarrollo de la industria de TI son Beijing, Shanghai y Guangzhou. Sus demandas de lenguajes de programación de servidores de juegos también son diferentes. Beijing prefiere la programación en lenguaje Java, y Shanghai prefiere la programación en lenguaje C ++. Guangzhou prefiero la programación Erlang. Esto también les dice a los desarrolladores que si quieren ir a diferentes lugares, pueden aprender de manera específica según sus necesidades. Este artículo les dice a los lectores cómo aprender a programar y desarrollar servidores de juegos.

Todavía me gusta la programación en C ++. De hecho, el lenguaje es solo un aspecto y los principios deben ser claros. Permítanme hablar sobre mi experiencia en el aprendizaje de la programación de servidores.

El aprendizaje de la programación del servidor de juegos también debe realizarse por etapas. Primero, es imprescindible aprender bien los conceptos básicos. Puede aprender Java, C++, C# y erlang. Para ellos, aún debes usar C++. Por ejemplo, algunas definiciones de macros o definiciones de plantillas se usan a menudo en la programación de juegos. Los desarrolladores necesitan conocer el significado de las definiciones de macros y el significado de las definiciones de plantillas. Los objetos en plantillas STL se utilizan a menudo en el desarrollo de servidores, como mapas, diccionarios, listas, vectores, etc. Hay muchos materiales de aprendizaje en Internet. Además, aquí todavía tenemos que hablar sobre estructuras de datos, ya sea que se desarrollen en el lado del cliente o en el lado del servidor, se utilizarán estructuras de datos, como tablas hash, árboles binarios, colas, pilas, etc., como se mencionó anteriormente, es imprescindible en términos de lenguaje.

Si tiene una comprensión sólida de los conceptos básicos del idioma, puede omitir directamente esta etapa de aprendizaje y estudiar directamente la segunda etapa, relacionada con los protocolos de comunicación de red. Por ejemplo, nuestro protocolo TCP/IP se divide en siete. capas, cada capa ¿Cuál es la función de? Existen varios protocolos de uso común para la transmisión del servidor, incluidos el protocolo TCP, el protocolo UDP y Http utilizados por la Web. El protocolo TCP es un protocolo confiable y debe confirmarse después de la transmisión de datos. El protocolo UPD no es confiable y no requiere confirmación. El protocolo Http se adquiere activamente y se utiliza principalmente para el registro web y de recursos. Estos tres se utilizarán en el desarrollo de servidores y deben dominarse. Aquí mostramos a los lectores los protocolos incluidos en cada capa:

Capa de aplicación: TFTP, HTTP, SNMP, FTP, SMTP, DNS, Telnet, etc.

Capa de transporte: TCP, UDP

Capa de red: IP, ICMP, OSPF, EIGRP, IGMP

Capa de enlace de datos: SLIP, CSLIP, PPP, MTU

A través de los puntos enumerados anteriormente, Sabemos qué protocolos de comunicación tiene cada capa. Por supuesto, cada capa no existe de forma aislada. Este aspecto también se introduce en el principio del software informático. Aquí tomo prestada una imagen de Internet para mostrarla. lector de la siguiente manera:

La capa de aplicación es procesada principalmente por nuestro propio programa. Puede transmitir mensajes a través de la capa de transporte y la capa de red. La figura anterior se subdivide de la siguiente manera:

A través de la figura anterior, puede ver claramente la composición del grupo de protocolos TCP/IP. Para más detalles, puede consultar el curso universitario "Principios de Computación". Después de dominar estos protocolos de comunicación básicos, el siguiente paso es dominar los sockets.

Socket es una capa de abstracción entre la capa de aplicación y la capa de transporte. Resume las operaciones complejas de la capa TCP/IP en varias interfaces simples para que la capa de aplicación llame e implemente procesos para comunicarse en la red.

Socket es la forma más básica de comunicación entre el servidor y el cliente en el juego. Tomando como ejemplo el inicio de sesión en el juego, el cliente primero crea un Socket y luego agrega el nombre de usuario y la contraseña del jugador. y La dirección IP y el número de puerto del servidor de inicio de sesión se escriben en el Socket y se envían al servidor. Después de recibir el mensaje, abrirá y leerá la información del Socket para procesarla, como verificar la exactitud del mensaje. Luego, el servidor creará el Socket y colocará el mensaje enviado al cliente en el Socket y lo enviará al cliente. Después de que el cliente recibe el mensaje, el cliente abre el Socket y lo lee. el mensaje. El método de comunicación entre el cliente y el servidor es el siguiente:

Hay un protocolo de enlace de tres vías en el protocolo TCP/IP. Se puede establecer una conexión confiable a través del protocolo de enlace de tres vías. como se muestra en la siguiente figura:

Los apretones de manos de tres vías se mencionan a menudo en las entrevistas con programadores del lado del servidor. Después de dominar el protocolo TCP/IP, ingresará a la etapa de capacitación práctica para ver qué tan bien lo domina. la red. Tomando Unity como ejemplo, puede aprender la transmisión de red ultraligera de TNet, porque no tiene una base de datos, pero puede verificar muy bien el protocolo TCP y el socket Socket aprendidos. Puede intentar transmitir algunos mensajes sobre esta base. Finalmente, necesita conocer la base de datos MySql necesaria para el almacenamiento del servidor.

Aprenda la instalación de bases de datos y sus operaciones, como crear tablas, insertar datos, eliminar datos, leer datos, etc. Después de dominar la base de datos, debe operarla a través de la programación del servidor de juegos. Se recomienda aprender primero. PhontonServer en Internet está escrito en C#, lo cual es conveniente para que los desarrolladores aprendan. Además, proporciona una demostración implementada por Unity, para que los desarrolladores puedan depurar la conexión y familiarizarse con Mysql.

Como desarrollador de servidores, debe dominar los conocimientos anteriores. Después de dominar estas tecnologías, la mejor manera de seguir mejorando es ir a la empresa y seguir el proyecto. En los siguientes capítulos, los lectores también lo harán. Se presenta cómo configurar un servidor de juegos real y el diseño de la arquitectura del servidor y el diseño de equilibrio de carga del servidor de conocidas empresas de juegos de TI. Finalmente, presentaremos cómo construir un servidor global.