Soy un entusiasta estudiante de artes marciales, aunque no me llamaría experto. Prefiero pensar en mí mismo como un cinturón blanco eterno, en continua búsqueda de conocimiento.
Si bien tengo un conocimiento básico de varias artes marciales, incluido el boxeo, la lucha grecorromana, la espada larga alemana e italiana, el backhold escocés, el jiujitsu (tanto tradicional como brasileño), el savate y el judo, mi experiencia es limitada en todos los ámbitos. Sin embargo, un concepto que trasciende diferentes artes marciales es el de kata.
En su forma más simple, un kata es una secuencia predeterminada de movimientos practicados individualmente. Los katas están diseñados para refinar técnicas, mejorar el equilibrio y fomentar la disciplina mental. Facilitan la memorización y repetición de movimientos fundamentales.
Hay un debate en curso sobre la eficacia de los katas como métodos de enseñanza, teniendo en cuenta los avances en la pedagogía desde el siglo XIX, cuando se codificaron la mayoría de los sistemas de artes marciales modernas.
Sin embargo, el alcance de este artículo no profundiza en ese debate. En su lugar, mi objetivo es utilizar el concepto de kata para presentar una serie de ejercicios que se pueden realizar en Unity o en cualquier otro motor de juegos para mejorar su comprensión del motor y mejorar sus habilidades de desarrollo de juegos .
Al igual que los katas, los ejercicios que sugiero son para entrenamiento y simulacro, y nunca pueden reemplazar la experiencia laboral, y debe adaptarlos y moldearlos para que se ajusten a su estilo de trabajo preferido.
Por otro lado, es esencial recordar que el desarrollo de juegos es un reino de anarquía donde las reglas son escasas, excepto quizás por algunas pautas prácticas como abstenerse de lanzar proyectos un viernes o antes de las vacaciones.
Sin más preámbulos, profundicemos en los propios katas:
El Taller sirve como el primer kata que exploraremos. Esencialmente, Workshop es un proyecto eterno de Unity en el que puedes experimentar, probar nuevos conceptos y explorar características lanzadas recientemente.
Utilícelo como escenario de prueba de concepto. Cuando tienes una nueva idea de juego y quieres crear un prototipo rápidamente sin preocuparte por los nombres, diseños o cualquier otra cosa además del juego principal (que debería ser tu enfoque principal), Workshop ofrece un entorno ideal.
Utilícelo como un depósito para el código de uso común. Ciertas piezas de código inevitablemente se reutilizarán, pero es posible que no desee depender de buscar en la web cada vez. Por ejemplo, en mi Taller, tengo fragmentos de código personalizados para manejar botones, estados del juego, menús de pausa y varios otros elementos esenciales que requiere cada juego. Estos fragmentos ahorran tiempo y esfuerzo, ya que eliminan la necesidad de escribir un código personalizado para cada nuevo juego.
Un consejo útil para este enfoque si alguna vez copia código de fuentes en línea es asegurarse de comprender el código copiado, reescribirlo para que se adhiera al estilo y los estándares de su proyecto y agregar un comentario que indique su origen. Los autores del código pueden actualizar sus implementaciones o puede olvidar el contexto para usar una solución en particular, pero un comentario puede proporcionar la información necesaria.
Utilícelo para aprender, experimentar y probar nuevas funciones. Al mantener el proyecto Workshop actualizado a la última versión (puede mantener una rama separada para la versión LTS), puede explorar nuevas funciones sin la carga de crear un proyecto completamente nuevo o, peor aún, tratando de adaptarlas a su proyecto en curso.
¿Alguna vez has jugado un juego y te has preguntado, "¿Cómo lograron eso?" Ahora es tu oportunidad de averiguarlo. Cuando te falten ideas para el desarrollo de tu propio juego o estés entre proyectos, selecciona un juego que hayas jugado recientemente, elige una mecánica, un efecto o una función de ese juego e intenta clonarlo.
Cuando hablo de clonación no me refiero a una réplica exacta sino a capturar la esencia del elemento elegido.
Por ejemplo, recientemente me fascinó el sistema de movimiento en Spider-Man: Miles Morales. Sin embargo, intentar clonar todo el sistema de movimiento de un juego de acción en 3D tan complejo sería todo un desafío. En cambio, me centraría en clonar el aspecto que más me cautiva, como el web swinging. Para lograr esto, no necesito un modelo completo de Spider-Man o edificios detallados. Un simple cubo que responde a las pulsaciones de los botones del jugador y crea una cuerda desde la que el personaje del jugador se balancea y avanza sería suficiente para replicar la libertad de movimiento experimentada en el juego original.
Establece un límite de tiempo estricto para ti. Recuerda, no estás creando un juego completo sino clonando un solo elemento de uno existente. Asigne alrededor de seis días hábiles, equivalentes a tres fines de semana, tiempo suficiente para estudiantes de tiempo completo y desarrolladores en activo.
Esta es la oportunidad perfecta para aprovechar el Taller. Proporciona un espacio ideal para almacenar sus proyectos de clonación. Si decide continuar con un concepto específico, puede copiarlo fácilmente en su propio proyecto sin revisar las listas de proyectos Git abandonados.
Si su cartera se siente algo deficiente, este ejercicio es una excelente manera de mejorarla. Toma el elemento clonado y púlelo agregando un menú, una función de pausa, música de fondo y una introducción que explique tus objetivos. Tal producto terminado impresionará a los reclutadores mucho más que un documento lleno de ideas de juegos brillantes pero sin terminar.
Después de cada ejercicio de clonación, realice un breve análisis post-mortem. Reflexione sobre lo que funcionó bien, identifique las debilidades, considere mejoras futuras y extraiga lecciones valiosas que valga la pena llevar adelante.
De vez en cuando, me permito hacer payasadas. Selecciono una idea que es técnicamente interesante o combina varios componentes técnicos que deseo aprender o revisar, pero que no tiene potencial comercial ni valor práctico.
El propósito de hacer el payaso es eliminar la presión por la perfección. Cuando se trabaja en un proyecto con fines de lucro o presentación a otros, las decisiones de diseño se vuelven más conscientes. Hacer payasadas te permite concentrarte únicamente en profundizar tus conocimientos en áreas específicas.
Por ejemplo, hace unos años me embarqué en un proyecto llamado "Wizardry Exchange". Era una aplicación que convertía moneda de denominaciones del mundo real (CAD, EUR, GBP o USD) a la moneda utilizada en el universo de Harry Potter (knuts, hoces y galeones). Este proyecto involucró Unity3D WebGL para el front-end, Go para el back-end, un sistema de almacenamiento en caché personalizado y la implementación en AWS mediante Docker.
¿Es este un proyecto práctico o útil? ¡De nada! El front-end no requiere Unity, Go es excesivo para algunos puntos finales simples, y la aplicación podría ejecutarse en una patata, y mucho menos en AWS.
Entonces, ¿por qué pasar por el problema? Para obtener más información sobre WebGL con Unity, emplee Go para el desarrollo de servidores y adquiera experiencia en la creación e implementación de aplicaciones con Docker en AWS . El resultado final no es tan importante como el proceso de adquisición de conocimientos.
Y eso concluye los tres katas que pueden ayudarte a profundizar tu comprensión de Unity o cualquier motor de juego.
Me gustaría llamar la atención sobre una frase específica que usé anteriormente: "régimen de entrenamiento" .
Este enfoque ha guiado mi práctica de ingeniería durante más de 15 años. Considero graduarme de una universidad como obtener el cinturón negro y, de manera similar al judo (de donde se originó el sistema de cinturones), un cinturón negro significa una comprensión de los conceptos básicos en lugar de un dominio.
Se espera que, después de obtener un cinturón negro, uno realice una investigación independiente para desarrollar aún más sus habilidades en el arte del judo.
Asimismo, al egresar, se convierte en tu responsabilidad establecer un régimen de entrenamiento para mejorar continuamente tus habilidades técnicas y adquirir conocimientos. Si bien obtendrá conocimiento a través del trabajo, es posible que le falte orientación y desarrollo personal.
Por lo tanto, es crucial crear un régimen de entrenamiento para mejorar sus habilidades de ingeniería. De esta manera, si surge una oportunidad, como la apertura de un nuevo puesto en su empresa, el despido de su trabajo actual o encontrar un puesto atractivo en otro lugar, estará equipado con algo más que experiencia laboral.
Recuerda que, a diferencia de la universidad, es posible que tu trabajo no priorice necesariamente el avance de tus talentos más allá de cierto punto. Se hará un buen trabajo, pero distinguir entre los dos puede ser un desafío a veces. Tener un régimen de entrenamiento salvaguarda tu crecimiento profesional.
Espero que hayas encontrado estos katas al menos interesantes, si no útiles, y que puedan desbloquear una nueva forma de mejorar tus habilidades técnicas.
También publicado aquí.