Hola chicos El texto a continuación le contará cómo desarrollé mi juego MMO sobre acosadores, artefactos, emisiones y bicicletas alrededor del fuego durante dos años y medio.

Todo comenzó con el hecho de que, por primera vez en mi vida, pude transferir información de un dispositivo a otro, usando sockets. Al presionar el botón táctil en la pantalla del teléfono inteligente, se movió el cuadro negro en el monitor de la computadora portátil. Mi alegría no conocía límites. Esto es algún tipo de magia, pensé. Se decidió de inmediato: "Eso es todo, estoy haciendo un juego en línea". Como soy fanático del acosador, la pregunta: "¿Qué tipo de juego en línea?" Ni siquiera se puso de pie. Sobre el hecho de que los juegos no son fáciles de hacer, lo sabía. El hecho de que hacer juegos en línea no es muy fácil, supuse. Pero en ese momento, intoxicado por la alegría y la inspiración, no le di la más mínima importancia.
Y el desarrollo ha comenzado. Como no sé cómo dibujar, surgió inmediatamente la pregunta sobre los gráficos. Y se encontró la respuesta a esta pregunta. Érase una vez, en los viejos teléfonos de botón (j2me), un entusiasta independiente desarrolló el juego "Zone of Aliation". Si describir el juego en pocas palabras, este es un acosador 2D para dispositivos móviles. Los gráficos de este juego fueron perfectos para mi proyecto. Me puse en contacto con el autor de los gráficos, Pavel Shevelev, y le pedí permiso para usarlo en mi juego. Paul no se negó e incluso dibujó algo más, por lo que muchas gracias a él.

Además se requería escribir código. Mover un cuadrado negro es una cosa, y hacer un juego completo es otra. Si conduce en el motor de búsqueda: "¿Cómo hacer un juego en línea?", No encontrará una respuesta específica que incluso pueda ayudar un poco. La información en RuNet sobre este gato lloró, pero sobre los ejemplos, en general, guardo silencio. Sin embargo, logré encontrar información sobre Habré sobre las videoconferencias de Vitaliy Chibrikov, que explicaban cómo escribir un servidor para un juego en línea. Después de haber estudiado a fondo las 9 conferencias (una conferencia dura aproximadamente dos horas en promedio), todavía logré construir un esqueleto fuerte de interacción cliente-servidor en base a mi futuro juego. Si no fuera por Vitaly, no habría logrado ese resultado, por lo que muchas gracias a él. Algunas palabras sobre las tecnologías que utilicé: el servidor está escrito en Java, base de datos MySql, conexión de red pequeña. El cliente también está escrito en Java utilizando el marco libgdx.

Con los gráficos y el mecanismo de transferencia de datos, quedaba lo más "simple": hacer un juego. Para empezar, hizo una ubicación. Luego agregó un personaje del juego, le enseñó a caminar. Luego atornilló el cambio de día y de noche, más los efectos del clima. Luego creó la primera mafia: un cerdo. Luego agregó disparos para que este jabalí pudiera ser matado. Luego hizo pvp para que fuera posible matar no solo a los jabalíes, sino también a otros jugadores. Y ahora hay algo remotamente parecido a un juego. Parece que prácticamente no hay funciones de juego, pero llevó mucho tiempo implementar todo lo anterior. Todo se complicó muchas veces por el hecho de que este es un juego MMO. Casi cualquier acción que realices en el juego debe ser vista por los jugadores que te rodean. En la etapa inicial de desarrollo, el servidor se bloqueó por cada estornudo. Casi todos los días, me encontré con un montón de problemas y errores. Antes del inicio del desarrollo, no podía imaginar cuántos problemas tendría que resolver. Pero el desarrollo continuó lentamente y el juego se desarrolló.

Hasta cierto punto, las pruebas se realizaron solo en mi PC personal. Tanto el servidor como varias copias de clientes se lanzaron en la misma máquina y se comunicaron entre sí a través de localhost. Pero a medida que el proyecto se desarrolló, la idea se me ocurrió cada vez más a menudo: "¿No es hora de mostrar el juego a la gente y organizar pruebas reales con jugadores en vivo?" Y en un momento, decidí que era hora. Alquilé hierro, la configuración mínima con Linux a bordo. Descargué mi programa de servidor allí, y después de una nueva porción de hemorroides y bailar con una pandereta, el servidor comenzó con éxito. "¡Guau!" Pensé, funciona. La primera persona en ingresar al juego fue el artista Pavel. Corrimos por el mapa, charlamos y disparamos jabalíes. Después de lo cual estaba contento y feliz de que todo funcionara, y comencé a desarrollarme con venganza. Pasaron los días, el juego creció y se desarrolló, aproximadamente una vez cada dos semanas organicé una prueba abierta, durante la cual cualquiera podía jugar y probar nuevas características. A veces, el contador de jugadores en línea superó los cien. Fue un gran momento, creé un mundo virtual que vivía de acuerdo con mis reglas y leyes, durante las pruebas me sentí casi como un dios. A veces iba al servidor y simplemente miraba a los jugadores, corrían allí, hablaban, discutían, se reconciliaban, creaban clanes, peleaban, recolectaban artefactos, entraban en anomalías, deambulaban obedientemente por las casas durante el lanzamiento. ¡Y cuántas historias interesantes sucedieron en el juego! Recuerdo que algunos muchachos se declararon bandidos y derribaron el botín para ingresar a un lugar determinado. Los que se negaron a pagar fueron fusilados (incluido yo). O una vez, un grupo de acosadores durante la expulsión se escondió en una casa rodeada por una cerca por todos lados y alguien bloqueó la única salida con anomalías del electrón (hay un artefacto que crea una anomalía) después de la expulsión, el grupo se cerró en el patio de esta casa hasta el final de la prueba, así que como en ese momento, después de la muerte, el jugador renació en el mismo lugar donde murió.

Por el momento, el juego ha implementado: 20 ubicaciones, día y noche, lluvia, pvp, pve, 3 tipos de mobs con diferentes comportamientos, ataques masivos de la mafia en la base, 1 jefe de incursión, 13 artefactos con diferentes características, 8 anomalías con diferentes efectos, tornillos para buscar y desactivar anomalías, 8 misiones, sistema de experiencia y nivelación, acosador pda, radiación, emisiones, agrupaciones, guerra de agrupaciones sobre territorios, npc que puede disparar a mutantes y esconderse de las emisiones en las casas, una mochila y un sistema de artículos, comerciando con PNJ y jugadores, 9 tipos de armadura, 7 tipos de armas, detector de anoma un detector de radiación, una guitarra, más unos 15 artículos diferentes y, por supuesto, la oportunidad de sentarse junto al fuego y conversar con otros jugadores. También me gustaría detenerme en el método de extracción de artefactos. Los artefactos nacen después de una eyección en anomalías, y no son inicialmente visibles para el jugador, para que el artefacto se levante, es necesario cumplir una serie de ciertas condiciones únicas para cada artefacto. Por ejemplo, para obtener el artefacto "Sangre", se requiere que la anomalía de segundo nivel del electrón, cuando se dispara (lanzamiento de perno), entre en contacto con la anomalía de la nube ácida (vuela a lo largo del mapa en una dirección arbitraria). O, para obtener el "Corazón", debe usar el artefacto "Azul" (crea una nueva anomalía) para que la nueva anomalía entre en el momento de la anomalía, además de la falta de luz solar, es decir, el artefacto solo se puede obtener de noche.

Trabajé en todo esto durante más de dos años, pero toda la sal en ese contenido es suficiente durante tres o cuatro días, después de lo cual simplemente no hay nada que hacer en el juego. Debido a esto, el número de jugadores en el juego estaba disminuyendo gradualmente, y entendí cada vez más claramente que simplemente no podía terminar el juego. Pasé mucho tiempo en el desarrollo, pero parece que no terminé el proyecto ni a la mitad. Creo que he logrado un buen resultado, pero aún tengo que enfrentar la verdad: es imposible crear un MMORPG completo solo o casi imposible. Traté de encontrar otro programador, pero no hay muchas personas que conozcan Java perfectamente y tengan experiencia en el desarrollo de aplicaciones cliente-servidor. Sí, y pocas personas quieren entender mi código, ya que fue escrito lejos de ser perfecto, y lo más importante, hay muchos, muchos, muchos realmente directos. No voy a publicar el código en acceso abierto, tal vez algún día, después de haber jugado lo suficiente en el acosador 2, lo terminaré de todos modos.
Aquí hay una historia así. Equipo de proyecto en vk -
Zona de proyecto 2d en línea .