Finaliza lo que empiezas

finish him
Cuando en internet pongo finalizar encuentro lo siguiente:
VERBO TRANSITIVO
  1. Poner o dar fin a algo.
VERBO INTRANSITIVO
  1. Dicho de una cosa: Extinguirse, consumirse o acabarse.

Desde los tiempos inmemoriales la humanidad ha avanzado gracias a aquellos que, pese a las dificultades y contratiempos, se han propuesto terminar aquello que empezaron.

Qué sería de nosotros si Newton hubiera claudicado ante los desafíos de la física y las matemáticas.

Lo mismo podríamos decir de Mendel, Einstein, Curie… cada uno en su campo.

Recientemente es algo en lo que he puesto la lupa: la capacidad de finalizar, de completar lo empezado.

Pese a que mi campo de experiencia se centra en el desarrollo de videojuegos, esto es algo que se aplica a todo: no dejes las cosas a medias. No abandones los proyectos a medio hacer y empieces con otros: termina.

Es simple, en el orden universal de las cosas, algo está completo, y por tanto, es usable, cuando hemos trabajado en ello desde el proceso de su creación hasta su último detalle antes de presentarlo a quien sea que va a disfrutarlo.

De un tiempo a este momento, estoy notando que los juniors adolecen de esta capacidad. A algunos les parece normal: son juniors. Bueno, creo que hasta los juniors deben cumplir unos mínimos, ¿no?

Tal como yo lo veo, si comienzas algo pero nunca llegas a los estadios finales, en todo caso irás mejorando como “Iniciador” del tipo de especialidad o tarea que desempeñas pero respecto a la última parte… bueno, no tendrás ni la más remota idea de como es porque abandonas lo que haces.

Por tanto, no es que uno sea junior en ese punto, es que no es nada. Es un completo neófito en el asunto.

finaliza

En el desarrollo de videojuegos, si estás haciendo bien las cosas, tendrás un plan de desarrollo, y llegará un momento en el que tu arte, código, audio, modelos, mecánicas, etc. tendrán que estar finalizadas con un nivel de pulido profesional.

Así que ojo, porque si nunca dedicamos el tiempo adecuado a terminar y pulir algo, porque no pasamos de ese estilo de juego a lo “Game Jam” o “Ludum Dare”, nunca vamos a pasar esa puerta.

Como nunca pasamos de ahí, no sabemos qué hacer ni qué hay detrás.

Es muy posible, por tanto, que nuestros sistemas y contenido sean siempre amateur, y que lo que sepamos hacer no pase de ahí. “Pero está hecho”, “funciona”. Bueno, seguramente lo que funcione para ti sea una suerte de prototipo.

Pero eso no significa que esté bien o esté presentable, no significa que se sienta cómodo, o intuitivo o que cumpla con los estándares.

Hay un trabajo minucioso, de horas y horas en el que tu trabajo avanza muy poco horizontalmente (a lo ancho) pero mucho en calidad. Eso ocurre cuando estás finalizando tu trabajo. 

El junior tiende a pensar que un proyecto de gran envergadura es lo que da mérito y reconocimiento.

Para nada es así. Lo que impresiona es la calidad de lo que haces y su atractivo para un público determinado.

Nadie quiere probar algo largo pero mediocre. Y para salir de lo mediocre debemos obtener esa capacidad de finalizar, de terminar, de completar profesionalmente cada elemento que participa en nuestro proyecto.

 

finish him
José Perales
Profesor de Unity

Hackathon Code Challenge Bosonit

Un total de 33 estudiantes de Formación Profesional de Jaén, participaron el pasado 24 de junio en el primer Hackathon Code Challenge de Bosonit, el cual se desarrolló de 9:30-14:30, donde se realizaron diversos talleres a lo largo de la mañana.

Desde Bosonit se diseñaron unos carteles para ayudar en la difusión del Hackaton Code Challenge, los cuales fueron repartidos de forma presencial por distintos institutos y escuelas. 

Es por ello que los alumnos y alumnas de la Escuela Estech de Desarrollo Aplicaciones Multiplataforma (DAM), que actualmente se encuentran en Bosonit, trataron de reunirse junto con otros compañeros para formar equipos de 3 personas para así participar en las pruebas que se realizaron a lo largo del día.  

Hackathon Bosonit

Además, se desarrollaron una serie de diversas actividades, donde las pruebas consistieron en varios niveles de creciente dificultad, en las cuales podían programar en C++, Python, Java y Javascript.

Los equipos que participaron en Hackaton de Bosonit, competieron entre sí para determinar el 1er, 2º y 3er puesto. Y aunque no todos los participantes entraron en el podio, también consiguieron diferentes premios. Ganando el equipo llamado «EZ», compuesto por estudiantes de diferentes institutos.

Los premios para el primer equipo fueron: 

  • 300€ y un Kit Bosonit, compuesto por sudadera y botellas de agua. 

Es por ello que esta experiencia en el Hackathon Code Challenge Bosonit fue un éxito rotundo. La cual permitió la realización de una actividad innovadora que ayudó en el desarrollo de las habilidades de los estudiantes que formaron parte de este Hackathon.  

Platós virtuales: una nueva forma de producción audiovisual

Es evidente que en los últimos años y propiciado por la pandemia de Covid se ha producido un auge de la producción de contenido audiovisual de ficción sin precedentes. Además de las plataformas que ya copaban el mercado como Netflix y Amazon Prime, han surgido otras que se han sumado a la tendencia (Apple TV, Disney +, etc). Haciendo esto que probablemente en los próximos años seremos testigos del nacimiento de unas cuantas más. Esto es sinónimo a su vez de un aumento de los puestos de trabajo en este sector, tanto en el ámbito creativo como en el técnico. Siendo en este último en el que ha surgido una nueva forma de producción. La cual está ganando terreno en cuanto a los platós virtuales: nueva forma de producción.

Platós Virtuales: nueva forma de producción

Los platós virtuales son estudios de producción audiovisual en los que el fondo puede controlarse y manipularse en tiempo real. Esto significa que puede programarse con gráficos para que vaya cambiando según las necesidades del producto.

A su vez permite que los actores interactúen con ambientes generados por ordenador. Dando la opción de utilizar la cámara en un entorno 3D para que esta pueda generar zoom, panorámicas y angulaciones.

Uno de los grandes beneficios es que, al estar programado en tiempo real, no necesita postproducción. Siendo esto debido a que los entornos pueden diseñarse con antelación e intercalarse según sea necesario.

¿Dónde encontramos este tipo de técnica?

Esta técnica innovadora se ha utilizado con gran éxito en populares series como The Mandalorian. Gracias a la colaboración de empresas como Light & Magic, Profile Studios, Nvidia y, especialmente, Epic Games. En la actualidad ya podemos ver programas de televisión que utilizan esta tecnología en directo como por ejemplo los informativos o algunos concursos.

A pesar de sus ventajas en cuanto al ahorro de tiempo y trabajo en la producción, aún cuenta con un importante
inconveniente: su precio. Un plató virtual de un tamaño medio de 600 metros cuadrados supone una inversión considerable que no todos los estudios de producción se pueden permitir.  Por lo que la incorporación de esta tecnología está siendo paulatina. Donde predominan las producciones híbridas.

Platós Virtuales: nueva forma de producción en España

En España contamos con algunos de estos platós virtuales dentro de lo que se ha denominado el Madrid Content City. Gracias a las inversiones de Spain audiovisual Hub, que pretende convertir España en uno de los grandes platós de rodaje del sur de Europa.

Pero no solo se apuesta por esta nueva forma de rodar en centros neurálgicos como Madrid sino que también en zonas más periféricas se están realizando inversiones para no dejar escapar la oportunidad. Es el caso de Galicia donde se ha comenzado a construir uno de estos platós virtuales en la Ciudad de las TIC.

Con la proliferación de este tipo de tecnología se abre un campo de empleo para técnicos especializados en diseño gráfico, generación de props y entornos 3D, programadores y cámaras, entre otros. Los cuales aumentan las opciones de un sector en pleno crecimiento y que promete una interesante evolución.

No pierdas esta oportunidad de conocer más respecto a Platós Virtuales: nueva forma de producción de la mano de las noticias y blogs de la Escuela Es[tech].

¿Qué es el Detox digital?

Formamos profesionales que están y van a estar en constante y continua posición en primera línea de fuego con las nuevas tecnologías, (ya no tan nuevas) sino actuales. Pero a veces debemos hacer pausas, descansos y tal vez una desconexión total y pura para poder volver a “funcionar” a tope de nuevo. Es ahí, cuando encontramos el término Détox Digital.

Descubramos el détox digital que no es ni más ni menos que un proceso al que recurren muchas personas para abstenerse de usar sus dispositivos electrónicos tales como: el teléfono móvil, laptops, tabletas, televisores y más, cuyo objetivo principal es conectarse con el mundo físico e interactuar con lo que nos rodea. Reduce pues la fatiga aportando tranquilidad y sensación de bienestar/relajación ayudándote del manejo y disminución de los malestares propios del abuso o uso excesivo de las pantallas.

Ya sabemos que para la mayoría de las personas no es posible renunciar por completo a todas las formas de comunicación digital, especialmente si se necesita estar conectado para el trabajo, los estudios u otras obligaciones. Esto no significa que no se pueda disfrutar de los beneficios de una desintoxicación digital: la clave es hacer de la desconexión algo que funcione para nuestros horarios y nuestra vida.»

La tecnología es imparable, no luches contra ella sino úsala en tu beneficio. Y sobre todo mantén la calma. Al principio sentirás la necesidad de coger los dispositivos pero con el tiempo verás que la ansiedad irá disminuyendo. Además te notarás menos estresado, con más vitalidad y mejorarás las relaciones sociales.

No pasa nada por reconocer que usamos demasiado el móvil, en realidad estamos todos igual. Y en el caso de padecer un alto grado de dependencia debes acudir a un profesional, es más normal de lo que crees. La tecnología va a seguir evolucionando y estará cada vez más presente en nuestras vidas. Y esto no tiene que ser un problema, al contrario, debe mejorar nuestras vidas.

Para evitar sus efectos negativos pregúntate por cada app o dispositivo electrónico si realmente lo necesitas, si hace tu vida mejor, porque solo aquella que te ayuda, tanto personal como profesionalmente en algo concreto, es positiva para ti.

Y para toda aquella que sólo busca distracción o entretenimiento, si que es necesario establecer unos hábitos saludables, límites de tiempo de uso, y aprender a hacer un uso seguro de ella.

Algunas recomendaciones para poder llevar a cabo un plan de detox digital son:

  • Hazlo en compañía: la motivación siempre se mantiene más alta cuando los retos se hacen en compañía de amigos o familiares. También es importante que avises a las personas de tu entorno de que lo vas a realizar para que sepan cuando podrán contactarte.
  • Marca una fecha de inicio y de fin: para comenzar márcate el número de días que vas a desconectar de la tecnología, así como el día de comienzo y el día que finaliza el detox.
  • Fija horarios: el objetivo no es dejar de utilizar los dispositivos ya que siempre los necesitarás por motivos laborales o personales. Aún así puedes establecer determinadas horas en las que no estar pendiente de las notificaciones, mensajes…
  • Establece reglas: puedes poner el móvil en modo avión siempre que llegues a casa, o salgas con amigos o vayas a comer…Son decisiones que te pondrán más sencillo cumplir el reto.
  • Conecta con el mundo real: ¿qué tal volver a disfrutar de antiguos hobbies? ¿o comer manteniendo una agradable conversación? Nunca es tarde para volver a disfrutar de esas pequeñas cosas.
  • Borra las apps que no utilices: las notificaciones son uno de los elementos de estos dispositivos que más hacen que estés pendiente de ellos. Cuantas menos aplicaciones tengas menos distracciones tendrás. Deja sólo las imprescindibles.
  • Aleja el móvil: para evitar tentaciones guarda el móvil en un lugar donde no lo veas.
  • Desactiva las notificaciones: una vez que sólo hayas dejado las aplicaciones imprescindibles, desactiva las notificaciones del resto. Sin luz, ni sonido ni ventanas emergentes. Así evitarás estar continuamente al tanto de los dispositivos.
  • Apuesta por el blanco y el negro: cambia el color de la pantalla para que aparezca en blanco y negro. De esta manera resultará menos atractiva y te fijarás menos en ella.

Recuerda estos pasos y aplícalos cuando así lo decidas. Ahora en la época estival en la que nos encontramos es un momento perfecto. 

Adelante!

Escalabilidad a través de buenas prácticas en Unity

Probablemente uno de los primeros escollos con los que se encuentra un desarrollador cuando empieza a hacer juegos se da en el momento en que quiere hacer algo más grande que un Tetris (que también tiene su reto, ojo).  Es por ello, que es de gran importancia tener presente la Escalabilidad a través de buenas prácticas en Unity.

 

El progreso habitual en la disciplina del gamedev cuando se trata de programar videojuegos comienza con intentar comprender las matemáticas de vectores, los sistemas de inputs y en general los principales módulos que participan en un videojuego. Al principio uno no sabe qué es un rigidbody o un collider, algo que pasado un tiempo se termina comprendiendo como básico y esencial.

 

Una vez adquiridas las nociones básicas sobre C# y el motor Unity quizás nos apetezca ir un poco más allá. Así que nos ponemos manos a la obra, intentamos hacer un juego con un sistema de inventario o una serie de IAs para el juego y bueno… pronto empezamos a notar que nuestro proyecto es como el cuarto desordenado de nuestro primo pequeño y no sabemos muy bien cómo hemos llegado a ello. Estábamos escribiendo código, solucionando e implementando y en un momento dado vemos que todo está hecho un lío y hacer cualquier cambio es difícil.

 

Siendo por ello tan importante, el hecho de tener presente la escalabilidad a través de buenas prácticas en Unity.

 

 

Código final vs Arquitectura

 

Lo primero que debemos entender es que cuando empezamos a aprender a usar C# en Unity la mayoría de tutoriales, para hacer las cosas más sencillas, están bastante centrados en hacer código final. El código final es aquel que implementa algo tangible en nuestra aplicación. 

 

Lo primero que alguien podría pensar es que es perfectamente válido, ¿qué código vamos a hacer si no? Bien, hay una parte de verdad en ello: este código es necesario. Sin embargo, el problema nace en el momento en el que este código es la estructura de tu aplicación.

 

Lo mejor es verlo con un símil. Cuando vamos a construir una casa, si esta no es demasiado grande ni compleja, podemos simplemente contratar al constructor y manos a la obra. Tenemos un diseño y lo que hace falta es mano de obra y materiales: ladrillo aquí y allá, cemento, azulejos, ventanas… Los propios materiales finales son los que hacen la casa y los muros de carga son los que sujetan la casa.

 

No obstante, cuando queremos hacer algo más grande, esta estrategia ya no funciona: hace falta un arquitecto que realice los cálculos adecuados para crear una estructura: un esqueleto que soporte, por ejemplo, múltiples pisos, hacen falta vigas y otros elementos estructurales que si bien no son parte del “disfrute” del recinto, deben estar ahí para que el resto de elementos finales puedan existir en ese espacio.

 

Pues aquí pasa lo mismo. 

 

A continuación vamos a hablar de esas vigas y elementos estructurales que no son más que herramientas del lenguaje y estrategias de código que nos permiten crear un proyecto escalable y sobre todo, desacoplado.

 

En esta noticia sobre escalabilidad a través de buenas prácticas en Unity, mostraremos un código desacoplado, el cual es aquel en el que las dependencias entre objetos y clases es la más pequeña posible.

 

Listado de las principales estrategias de arquitectura de código

 

A continuación vamos a hacer un listado breve de estas herramientas del código. Ojo, toca que cada uno dedique su tiempo a poder explorarlas y queda fuera de este artículo el profundizar en cada una, ya que dan para un curso entero. Bueno, dicho esto, vamos al lío:

 

  • Aplica el principio DRY (Don’t Repeat Yourself) para evitar duplicar código. Tu herramienta principal aquí son la herencia (métodos virtuales mayormente).
  • Usa las interfaces (no interfaces de usuario, si no de código) y las clases abstractas para crear código desacoplado que sea fácilmente accesible. Las interfaces son contratos que deben cumplir las clases que implementan estas interfaces y permiten que otras clases las reconozcan por cumplir dicho contrato. Por ejemplo, si creamos la interfaz IWeapon, cualquier clase que use un IWeapon podrá usar cualquier objeto que implemente dicha interfaz, siendo esto mucho más potente que usar una clase directamente.
  • No abuses de los monobehaviour. Las clases que heredan de Monobehaviour son las únicas que pueden interactuar con la escena. No obstante, muchas veces esto no es necesario. Si tienes un sistema gestor de inventario, ¿necesita ser un monobehaviour? Posiblemente no. Lo que necesitará será una clase monobehaviour que le informe de los cambios que realiza el usuario. Una buena forma de verlo es pensar en monobehaviour como clases que comunican los cambios en el juego a otro grupo de clases que están por detrás. Una clase normal consume muchísimo menos que un monobehaviour.
  • Usa ScriptableObjects. Los ScriptableObjects son objetos mucho más sencillos que los Monobehaviours y son persistentes en sus estados, es decir, que los cambios que hagas se quedan “grabados” más allá de la escena, ya que no son gameobjects, si no assets. Existen algunas estrategias de desacoplamiento muy potentes usando los ScriptableObjects.
  • Aprende patrones de diseño. Si bien hay una lista enorme de ellos, unos cuantos si que son muy útiles. Pensemos en los patrones como fórmulas para resolver problemas concretos enfocadas a tener un código escalable y desacoplado.
  • Aprende a usar delegates. Un delegate es un tipo de variable que permite referenciar una función. Para verlo de manera sencilla, tenemos por un lado variables y por otro lado funciones. Con eso hacemos nuestro código. Pues bien, las variables almacenan y referencian datos: números, texto, etc… Pues con los delegates es igual pero con métodos. Los delegates son muy potentes para desacoplar código ya que puede separar al invocador del invocado, sin que se tengan que conocer, siendo el delegate el intermediario entre ambos.

 

Aunque hay muchos más consejos sobre Escalabilidad a través de buenas prácticas en Unity. Estos son algunos de los principales, que servirán sin duda como el siguiente paso en la carrera del programador de videojuegos. Esperamos que os haya servido esta guía y que estéis buscando más información sobre estas herramientas

 

Cómo implementar la nueva SplashScreen en Android 12 (parte 2)

Cómo implementar la nueva SplashScreen en Android 12 (parte 2)

La SplashScreen es una pantalla que aparece cuando se abre una aplicación. Vamos a ver cómo implementarla SplashScreen en Android 12

Seguir leyendo

La Mina Games y el emprendimiento

La-Mina-Games-y-el-emprendimiento-03

Este año 2021, Linares ha tenido la suerte de ver nacer La Mina Games, que forma parte de un nuevo espacio de coworking y aceleración de empresas denominado La Mina Startup

Seguir leyendo