La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Hay futuro para el desarrollo de servidores de juegos Java?

¿Hay futuro para el desarrollo de servidores de juegos Java?

Recientemente cambié de trabajo y trabajé en una nueva empresa durante dos semanas. Estas dos semanas han sido bastante satisfactorias, porque esta nueva empresa es una empresa pequeña y solía realizar principalmente desarrollo independiente. En cuanto al servidor, estoy desarrollando el servidor para dos juegos yo solo. Por supuesto, uno es muy simple y el otro relativamente complejo. El simple es un juego de red débil, el servidor solo necesita archivar datos y verificar el pago de inicio de sesión, mientras que el otro es un juego slg relativamente complejo. Creo que es otro cok. La compañía no planea reclutar servidores en este momento, así que trabajaré en este proyecto solo hasta el próximo año, puede que contrate otro servidor cuando el primero esté en línea y gane dinero. Para ser honesto, durante la entrevista sentí que este trabajo era un desafío para mí. Después de entender claramente la situación de la empresa, decidí aceptar el desafío.

Cuéntame mi experiencia anterior. Cuando estaba en el último año, la escuela hizo arreglos para venir a Beijing para recibir capacitación en Java (no había vergüenza durante la capacitación y usabas tu título y experiencia reales cuando buscabas trabajo, a diferencia de algunas empresas importantes de Internet). Luego fui a una empresa recomendada por la institución de formación para realizar prácticas. El salario en ese momento era de 2k, pero estaba muy feliz en el trabajo y aprendí mucho de mis mayores. En ese momento, estaba desarrollando WeChat en la cuenta oficial de WeChat y seguí a mis mayores en el desarrollo backend de WeChat. En ese momento, estaba usando el marco SpringMVC + MyBatis. Cuando entré en contacto con él por primera vez, me llevó mucho tiempo comprenderlo. Más tarde lo pensé. En realidad, esto es muy simple. Para los programadores que desarrollan lógica, solo necesitan comprender el flujo de trabajo, cómo saltar a la página, cómo pasar valores al salto y cómo procesar los datos. Eso es suficiente. Por supuesto, soy una persona insatisfecha. Descubriré por qué uso este marco y por qué no uso otros. Con estas preguntas en mente, intentaré crear mi propio marco de backend (aunque la mayor parte de la etapa inicial consiste en copiar y pegar). Además de la parte del marco, la interfaz avanzada de WeChat también es el foco de mi investigación. Iré a la documentación oficial para ver cómo está conectado WeChat y luego estudiaré cómo está escrito el código de los predecesores. Lo que se llama hacer una cosa, amar una cosa, probablemente sea eso. En ese momento, sentí que el desarrollo de WeChat era muy prometedor y que el marco utilizado por nuestra empresa también era el más avanzado. (Más tarde, resulta que esta combinación de marcos es de hecho el marco más popular en la actualidad, y la cuenta oficial de WeChat en ese momento era de hecho el marco más popular en ese momento.

Dicho todo, ¿por qué? ¿Pasaste a jugar más tarde? De hecho, en la primera empresa, mi supervisor planeó renunciar sin quitarme toda la tecnología subyacente. Durante uno o dos meses, los pasantes no tenían nada que hacer. Para mí, este tipo de vida era. Demasiado aburrido. Así que envié mi currículum y encontré una nueva pasantía para desarrollar servidores Java en una empresa de juegos. La empresa era bastante grande. Hace unos años, dominé la industria de los juegos con un juego web slg (no sé qué. Es un juego, pero sé de qué empresa estás hablando). Más tarde, la industria de los juegos se desarrolló hacia los juegos móviles, y este slg también lanzó una versión de juego móvil. La empresa se desarrolló muy bien durante mi pasantía. El departamento es un juego móvil MMORPG y he estado trabajando como pasante durante casi un año. Sin embargo, los datos de este juego móvil RPG no son muy buenos la primera vez que reservé 23. la segunda vez 26 (los juegos de esta compañía ahora se pueden reservar más de 80 días), y mucho menos el séptimo día, también sentí que, como juego MMO, hay muy poca interacción entre los jugadores. que se trataba de un juego para un solo jugador y se había perdido la esencia del MMO Cuando el equipo del proyecto se estaba preparando para la tercera beta cerrada, hubo muchas razones, no solo los datos del juego no eran buenos, sino también algunas razones personales. Pero, para ser honesto, fue esta empresa la que me llevó a la industria de los juegos. Estoy muy agradecido. Creo que la industria de los juegos es una industria prometedora, incluso mejor que el desarrollo de WeChat, creo que era el mejor. Los documentos de planificación están llenos de tarifas. Esta área se puede jugar normalmente, pero si hay una tarifa, lo más importante para los juegos en línea es controlar la proporción de jugadores civiles y normales y el equilibrio del juego ( Cuando me di cuenta de que los juegos de la compañía intentan deliberadamente ganar dinero, de repente entiendo por qué la mayoría de los juegos de la compañía están representados por Tencent y por qué resulta que Tencent Holdings no tiene dinero para jugar contigo, jaja). También se puede ver que la comercialización de juegos ha puesto a las compañías de juegos en un modo fijo: lavado de dinero incondicional, creo que ha perdido la esencia del juego. Leí un libro llamado "Dance Academy" (comprado en la Conferencia de Desarrolladores Cocos2014).

El libro ha sido regalado, pero he leído la mayor parte del contenido, desde la creación de juegos hasta la psicología de los jugadores y por qué son necesarios los juegos. Este libro es muy bueno (creo que los planificadores de juegos deberían leer este libro, jugar juegos de conciencia y negarse a engañar ciegamente al dinero). Ah, de repente me di cuenta de que este párrafo está un poco sesgado. Después de todo, solo desarrollo servidores de juegos y no puedo cambiar la industria de los juegos. Sólo tengo que hacer lo que tengo que hacer. De hecho, las grandes empresas de juegos deberían tomar esta ruta comercial y utilizar varios juegos duraderos para respaldar los ingresos de la empresa.

Después de cambiar a los juegos, siento que el desarrollo de juegos es mucho más interesante que el desarrollo web. Por supuesto, la dificultad técnica también es mucho mayor que la del desarrollo web. Publiqué una discusión sobre la diferencia entre desarrollo web y desarrollo de juegos antes, /content/wendetail/7082370, y publiqué mi respuesta nuevamente (de hecho, alguien me pidió que respondiera en su cuenta, así que la respondí yo mismo):

1. Desde la perspectiva del soporte de terceros, existen muchos marcos de terceros maduros en el backend web. Los desarrolladores no necesitan preocuparse por la implementación de los saltos del controlador subyacente. Solo necesitan uno o varios archivos de configuración para completar la parte del controlador central. Los desarrolladores solo necesitan concentrarse en la lógica empresarial de la web e integrar la lógica con el marco. El uso de este marco, por un lado, simplifica el código de la capa de control y, por otro lado, logra una buena estratificación de la lógica empresarial. En el desarrollo backend de juegos, dado que las necesidades de varios juegos son muy diferentes, desde la capa de red hasta la capa de lógica empresarial, cada aspecto debe construir su propio marco de acuerdo con sus propias necesidades del juego, por lo que es difícil extraer algunas cosas comunes. Un marco maduro, el desarrollo backend del juego básicamente necesita construir su propio marco.

2. Desde el nivel de lógica empresarial, la lógica del backend web es básicamente la misma. Quizás el sistema podría ser usado por otro sistema con ligeras modificaciones, pero el juego sería diferente. Cada juego tiene sus propias características e implementa una lógica diferente según las diferentes necesidades de planificación, pero también hay algunos módulos comunes, pero las diferencias generales siguen siendo muy grandes.

3. Desde la perspectiva de la persistencia de los datos, los datos en la web son básicamente muy regulares, la relación entre las tablas es muy clara y no habrá muchos cambios en el futuro. Sin embargo, los datos del juego son diversos y los cambios en los datos después de que se activa el servicio también son diversos. Incluso las bases de datos relacionales tradicionales son completamente incapaces de satisfacer las necesidades de persistencia de los datos del juego. Hay muchos estados y datos en el juego que el servidor debe guardar. Personalmente, creo que NoSQL es mejor que NoSQL en el desarrollo de juegos.

4. Desde la capa de comunicación, los usuarios de la web son individuos independientes y los juegos son mundos de juegos en línea multijugador. En este mundo de juego, los jugadores necesitan interactuar entre sí, lo que requiere que el servidor transmita mensajes a todos los jugadores en línea en tiempo real, lo que consume el rendimiento del servidor. En este sentido, el fondo del juego procesa más que la web, y el servidor del juego es un tipo de servidor con uso intensivo de IO.

Lo anterior fue mi respuesta en ese momento. Quizás mi punto de vista sea todavía relativamente superficial. Después de todo, llevo menos de un año creando juegos, pero todavía tengo algo que decir en el desarrollo backend. Desde el desarrollo del juego de pasantías, ha pasado por un proceso de transformación, casi un proceso de aprendizaje desde cero, desde el framework Mina hasta el protobuffer. Creo que tengo muy poco contacto con el desarrollo web (mina es un marco de comunicación de red, y casi solo hay ty en la web. Cómo almacenar datos en mysql o mongo, si almacenar en caché lo que almacena redis, qué almacena memcached, qué datos se almacena en caché y qué protocolo se utiliza para la transmisión de datos json o protobuffer, cómo escribir de manera eficiente, cuánta concurrencia se puede admitir, etc. Creo que todos estos son problemas que debo considerar ahora. Decidido de acuerdo con las necesidades específicas del juego, depende de si el servidor puede funcionar de manera eficiente y estable. Depende de si mi arquitectura es eficiente y estable, por lo que continuaré aprendiendo y absorbiendo las experiencias de otras personas en el proceso. Cuando llegué por primera vez a la nueva empresa, me di cuenta de que escribir código yo mismo era en realidad un desafío. Si el código está estandarizado y cómo se almacenan los datos, lo decido yo. Creo que mi código no solo debe ser eficiente, sino también comprensible. por otros, para que otros puedan continuar escribiendo de acuerdo con mi código.

Finalmente, hablemos de Java. El debate sobre el lenguaje nunca se detiene. ¿C# y a algunas personas les gusta C++? Cada lenguaje tiene sus propias ventajas.

He aprendido muchos otros idiomas en mi tiempo libre, incluidos go y node.js. Creo que el nivel de idioma de go admite la concurrencia y asincronía de Node.js, que es muy adecuado para servidores de juegos. Soy particularmente optimista de que node.js io asíncrono es de hecho una buena característica para los servidores de juegos, y también es muy conveniente agregar el módulo mongo que admite js original (como dije anteriormente, creo que nosql es muy adecuado para almacenar datos de juegos). ). Hablando de la industria de los juegos, creo que los juegos h5 se están desarrollando cada vez más rápido. La última vez que asistí a la conferencia ecológica de desarrolladores h5 de Bailu, todo el flujo de trabajo de Bailu y la realidad virtual web fue realmente emocionante (incluso obtuve un espejo de tormenta en la primera ronda de la lotería, ¡jaja!), Y los modelos en la conferencia también fueron bonitos. guapa, jaja! En 2015, la industria de Internet también mostró una ligera tendencia a la baja. Muchas empresas emergentes se enfrentan a la quiebra y la burbuja económica ha estallado porque muchos jefes no pueden comprender la situación económica actual y creen que pase lo que pase, tener una aplicación es una empresa emergente. De hecho, no tienen idea de cuántos modelos operativos y modelos de ganancias hay detrás de una aplicación. Es como un dicho sarcástico: "Tengo una gran idea que puede subvertir BAT. Falta todo. Jaja, me reí cuando escuché esta frase". Se estima que muchos fundadores de nuevas empresas piensan que solo si comprenden las necesidades reales de los usuarios, podrán captar las verdaderas necesidades de los usuarios. Sin embargo, la industria de los juegos es relativamente compleja y cambiante. Como otro juego mañana, tal como dice el dicho: "¡Mientras estés en el viento, los cerdos pueden volar!". "Mientras captures lo que los jugadores realmente quieren en este momento, el producto estará hecho".