Hola, quiero hablar sobre cómo llegué a crear mi primer juego relativamente serio para iOS y Android.
Antecedentes
De vuelta en la escuela secundaria, mi amigo y yo éramos muy buenos en las clases de informática, me gustaba codificar y resolver varios problemas usando la programación. Además, siempre me encantaron los juegos y, como muchos fanáticos, me sedujo la oportunidad fantasmal de escribir el mío.
Como debería ser, he desarrollado un interés en otros lenguajes de programación, y decidí "crecer" del famoso Pascal. Mi elección recayó en el notorio Python, porque había escuchado sobre su amplia gama de aplicaciones y su desarrollo relativamente fácil. Moviéndome un poco al leer la literatura relevante, para la práctica resolví problemas del
Proyecto Euler .
De hecho, todo este tiempo quise comenzar a hacer algo realmente serio, y en cierto momento sentí que si no ahora, nunca.
Este "serio", como habrás adivinado, se convirtió en juegos.
Después de encontrar la biblioteca PyGame para esta lección, me puse a trabajar. Para empezar, decidí practicar algo algo banal. Sin embargo, Tetris no lo hizo, pero se dio cuenta, aunque no de inmediato, del buen juego de "vida", con el que estaba muy satisfecho.
La vida

Luego se unieron a mis creaciones: un DX-Ball casi terminado, que jugué con interés en la computadora de mi tío en medio del cero, una copia de Supaplex en su infancia (la misma nostalgia) y, en el mismo estado, una sala de juegos inspirada en el relativamente moderno The Binding de Isaac
Dx ball '

Isaac '

El comienzo de los estudiantes y los primeros impulsos para crear sus propios proyectos.
Con el tiempo, me di cuenta de algo desagradable para mí: no terminé nada de los proyectos, aunque al principio había más que suficiente entusiasmo. Y así fue: cada vez menos volví a los viejos desarrollos, a veces con entusiasmo tomé otros nuevos, pero el resultado fue uno.
Entonces, comenzó el período más aterrador en la vida de cualquier estudiante: el examen. La programación se ha desvanecido en el fondo, pero después de aprobar los exámenes e ingresar a la "Electrónica y nanoelectrónica" en el Politécnico de San Petersburgo, volví a la programación. Además, la vida estudiantil me sacudió un poco, me enseñó responsabilidad, por eso decidí que a partir de ahora terminaría todos mis proyectos.
Entonces decidí escribir algo para Android. Todo se detuvo en el mismo Python, ya que era lo único que sabía de alguna manera y a lo que podía aferrarme. Comenzó a aprender el marco Kivy. Desafortunadamente, por mucho que no quisiera, Python + Kivy no es la mejor opción de desarrollo para Android, y me di cuenta de que no podía ir muy lejos en esta dirección.
Como resultado, después de pasar una cantidad considerable de tiempo en una aplicación tan simple como una prueba con la conclusión de varias opciones para el resultado final, todavía llevé este modesto proyecto al final e incluso lo subí a GooglePlay. Luego, a raíz de la popularidad de la batalla de dos conocidas batallas de rap, mi amigo se ofreció a hacer una prueba sobre este tema y preparó preguntas para él. Entonces apareció nuestro primer proyecto completado, y apareció un equipo de dos personas, tomando el nombre de "Dinámica Aspid".

La mayor parte del tiempo se dedicó a conocer Kivy y otra biblioteca de KivyMD que proporcionaba elementos de Google Material Design. El resto del tiempo se dedicó a dibujar iconos y numerosos rediseños (al final resultó que no mucho, pero podría haber sido peor). Como no estaba trabajando solo, hizo que el proceso de desarrollo fuera un poco más fácil y me motivó.
Nuevos comienzos
El resultado no fue exactamente lo que quería, pero decidí seguir adelante. Miré de cerca una nueva herramienta de desarrollo para mí, que era el conocido motor de Unity. La elección de la dirección adicional del desarrollo finalmente se hizo, queda (solo algo) familiarizarse con C # y explorar las capacidades de la propia Unidad. Por lo tanto, nos acercamos a los eventos que tuvieron lugar recientemente.
Como antes, decidí no abordar de inmediato algo imposiblemente. La idea era simple: crear un juego en el que las personas escribieran palabras adecuadas para una condición predeterminada. Un ejemplo simple: “Ingrese las palabras que contienen las tres letras“ o ””, luego de lo cual ingresa, por ejemplo, “campana”. Al principio, la idea no parecía nueva, pero después de revisar Play Market, no encontré tales juegos, lo que finalmente me convenció del éxito de la idea.
Proyecto "Word Expert"
Habiendo elegido el nombre trivial, pero pegadizo, "Word Expert" para el juego, comencé a considerar cuidadosamente el proceso de desarrollo. La implementación parecía sencilla, al menos después de un análisis superficial. Tal vez sea así, si formalizamos solo la mecánica básica, pero con una consideración detallada, la funcionalidad ha crecido repetidamente y se ha expandido significativamente.
Habiendo terminado la descripción del proyecto, comencé a implementar con entusiasmo punto por punto. La idea principal realmente se hizo realidad con bastante rapidez: se agregó la capacidad de crear niveles basados en varias plantillas.
Las plantillas son una especie de base para algunos criterios que una palabra debe cumplir, entre ellos: el comienzo de una palabra en una "subcadena", es decir una letra o secuencia de letras, el contenido de la "subcadena" en la palabra, el contenido de N letras, la uniformidad / rareza del número de letras en la palabra, etc.
Además, se verificó el cumplimiento de la plantilla y la presencia en el diccionario de las palabras ingresadas por el jugador. Se otorgaron puntos dependiendo de la frecuencia de la palabra, y comencé a establecer niveles de aprobación dependiendo de la cantidad de puntos que recibí en 5 minutos. En los niveles estándar del juego, una persona necesita ingresar el número máximo posible de palabras para poder pasar los siguientes niveles.
Word Expert

Nuevos problemas y soluciones inesperadas.
Todo estaría bien, pero resultó que es bastante difícil hacer muchos niveles diferentes entre sí. Una vez más, mi amigo asumió la tarea de ayudarme, y cuando tenía unos cuarenta años, el problema no era solo que los niveles son difíciles de pensar, sino que, debido a algunas características lingüísticas de la percepción humana, con demasiada frecuencia elegimos ciertas letras y patrones, obstinadamente ignorando a los demás.
Esto se notó de manera oportuna y se intentó fortalecer el control sobre mí mismo, pero no dio los resultados deseados, así que tuve que calcular y registrar las frecuencias para el uso de letras y patrones en nuestros niveles. Después de eso, cuidar de ti mismo se volvió mucho más fácil, pero al final solo se hicieron 60 niveles.
Debido al hecho de que la necesidad de inventar niveles obstaculizó el desarrollo, así como debido a los problemas descritos anteriormente, decidí implementar un generador de niveles que crearía una tarea sensata basada en nuestras plantillas. No pude encontrar una correlación entre el número de palabras que corresponden a la tarea, su frecuencia y cuántos puntos se ganan (esto significa que los niveles también tendrían que equilibrarse, manualmente).
Aparentemente, esto se debe al hecho de que las palabras son más fáciles para algunas condiciones, incluso si hay menos. Por ejemplo, en la conciencia, las palabras simplemente aparecen, con la condición de comenzar en alguna subcadena, por ejemplo, tome las palabras en 'ba'. Es como si nos dijéramos esta condición inicial "ba", y el cerebro la completa fácilmente con muchas palabras: "tanque", "banco", "plátano", etc.
Pero si la condición no contiene más de 4 vocales y exactamente 8 letras, entonces, aunque haya 6 veces más palabras, la velocidad de selección obviamente disminuirá. En algunas plantillas, cuando encontramos una palabra, nos encontramos en un grupo completo (por ejemplo: terminando en 'picea', si encontramos la palabra maestro, podemos ver que muchas profesiones terminan como: 'constructor', 'conductor' y etc.) Si no hubiera conexión, nada habría unido estas palabras, entonces, con una simple búsqueda en nuestra cabeza, habríamos adivinado mucho menos.
Pulido, nuevos modos, toques finales
El generador creado realmente facilitó notablemente la creación de niveles y, aumentando gradualmente el número de niveles, mi amigo y yo ya alcanzamos cientos. Fue inspirado por el éxito del generador involucrado en la creación de los niveles que decidimos introducir un nuevo modo de juego.
Era "supervivencia", donde debes ingresar palabras hasta que expire el temporizador. La diferencia con el modo clásico es el hecho de que aquí el jugador se enfrenta a la tarea de ingresar una palabra en N segundos según una condición dada. Tras el cumplimiento exitoso de la condición, se genera una nueva tarea y se extiende el temporizador.
Más tarde, decidimos que para mantener constantemente el contenido, necesitamos agregar multijugador. Por supuesto, es mucho más interesante medir tu vocabulario con un amigo en el recreo o jugar con un extraño en línea. El modo multijugador "clásico" implica una competencia en el número de puntos recibidos durante un cierto tiempo. Durante bastante tiempo llevando a cabo la implementación del juego a través de la red, todavía descubrí y terminé los 2 modos multijugador correspondientes.
Muchos problemas en el proceso de desarrollo nos trajeron el diseño. El problema principal era que yo mismo estaba lejos de ser diseñador, mi amigo tampoco poseía la habilidad necesaria y quería hacer una imagen adecuada. Un tercer conocido accedió a ayudarme, pero después de varios borradores que no llegaron al final, no pudo continuar.
Como resultado, a través del procesamiento repetido y la recopilación de comentarios de amigos, yo mismo desarrollé la versión final del diseño.
Lanzamiento del juego, planes para el futuro
Inicialmente, se suponía que Word Expert debía ingresar al Play Market solo debido al presupuesto limitado, pero mi amigo me ayudó a obtener los $ 99 necesarios para el lanzamiento en la AppStore.
Planeamos complementar y actualizar el juego. Niveles adicionales, logros, clasificaciones de jugadores y mucho más. Quizás haremos la localización en inglés, lo cual es un poco costoso en el contexto de este juego.
Muchas gracias por su atención a todos los que leyeron esta larga publicación.
Sinceramente tuyo
Equipo Aspid Dynamics.