martes, 22 de julio de 2014

¿Necesitas Colliders? Tengo un par!


 Actualización // Blog + Updates (22-07)





    No me considero capacitado para hacer tutoriales de nada en esta vida, ya que todos estamos en constante aprendizaje, no me considero capacitado ahora, ni posiblemente nunca para intentar dar clases a
alguien de como debe hacer las cosas.

 Aún así, me gustaría aprovechar el BLOG para que si hay alguien interesado en hacer un videojuego, pueda seguir la evolución de como va anvanzando el proyecto.

  Me gustaría romper el mito de que la creación de un videojuego es difícil y que los estudios indies solo pueden hacer juegos basados en "cuadraditos" al estilo minecraft porque lo demás es complicado. Bueno, lo cierto que esto es una verdad a medias. Si cualquier desarrollador indie tuviera el dinero o diseñadores gráficos o de animaciones podría hacer un AAA "perfectamente".

 Digo "perfectamente" porque la realización de un juego es muy muy larga, y se necesita mucha gente trabajando en el proyecto, pero al menos su videojuego si podría lucir como un AAA con las pertinentes animaciones, diseños, efectos, shaders...

El principal problema es que no las tenemos, y si queremos hacer algo medianamente "visible", nos encontramos con muchas trabas. Tienes que pagar unas animaciones, unos objetos, mil cosas. Por lo que no podemos competir con ellos por un tema económico y tiempo empleado. Lo cual no significa que crear
un videojuego sea excesivamente complicado, si costoso, y necesita su dedicación.

A la hora de crear un videojuego lo primero que debemos pensar es el paso a paso. Olvidaros de la programación y pensar que queréis que hacer e ir por ahí, siempre. Por ejemplo una vez puesta la pistola, tienes que saber que si le doy  a un botón, la pistola dispara, para ello, necesitas que el barril se mueva, el gatillo, el seguro, que mientras se mueva emita un sonido, un efecto en el Muzzle Flash, un efecto en el punto de impacto, que el láser vea el movimiento de ese enemigo, que el casquillo de la balsa salga por un lateral y la bala por el cañón, y a continuación empezar a diseñarlo (si, todas esas acciones con un click, deprimente verdad?)

 Una vez que sepáis dividir el trabajo, tendréis medio videojuego hecho (para mi bastante más complicado que la programación en si, aunque puede ser abrumadora para novatos sobretodo, y no por la programación en sí, sino por la interactividad entre Scripts necesaria)

 Cogiendo el ejemplo de la pistola, vamos hoy con los Colliders. Los colliders es algo, que todos conocemos, aunque no lo sepamos! Hablemos como colliders (colisionadores) como lineas invisibles, que haran que X objeto se convierta en "solido" es decir no se pueda atravesar. Esas lineas de "choque" las llamamos colliders! Y evidentemente hay de varios tipos, Box (caja) , Capsule (Cápsula) y Mesh Colliders.

 Sabiendo esto, sabremos que a todo objeto que no queramos que se traspase tendremos que ponerle un collider. Lo más sencillo y razonable, sería pensar que si a un mesh, le ponemos un Mesh collider, nos ahorraría trabajo. Y en parte es cierto, pero el lag que puede producir esto si lo ponemos a un objeto movible no seria normal...

 Por lo que si tu quieres un muñeco que no te traspase, lo que deberías realizar es poner unos Capsule Colliders en cada articulación de este, para que estos colliders se muevan basandose en esas articulaciones. Puede llegar a ser un poco frustrante y lento, pero merece completamente la pena. He incluso puedes recrearte en ellos, es decir, poner una parte de impacto clavada. Es decir, si tienes a un enemigo, que tiene una camiseta ancha, deja esos bordes de la camiseta sin colliders, si tu disparas ahi, no vas a darle realmente, vas a disparar a la camiseta. Pon solo los colliders a la parte "viva" del muñeco.



 La actualizacion a modo de Blog es para decir que los colliders ya están puestos (ya no se verán videos con zombies atravesando paredes o mi propio personaje). Puesto al mas mínimo detalle, por lo que si apuntas entre las dos piernas, ya no golpeas al muñeco, golpeas al aire!





   


No hay comentarios:

Publicar un comentario