lunes, 12 de marzo de 2012

La programación (I)

Hoy toca hablar un poco sobre la programación. ¡No todo puede ser dibujos bonitos, animaciones graciosas y diálogos absurdos!

La programación de una aventura gráfica tiene algunos aspectos muy interesantes y complejos. De todos ellos, uno de los que merece la pena mencionar (por la de horas que hemos invertido en él) es cómo movemos al personaje por la pantalla.

Este blog está dirigido a todo tipo de público, por lo que prometemos comentar de manera general lo interesante sin entrar en detalles aburridos.

La programación gráfica de este tipo de videojuego (en 2D) no es muy complicada en sí, salvo detalles como precisamente este. La funcionalidad que necesitamos está clara. Hacemos clic en un punto del escenario, y el protagonista debe andar hasta ese punto. Pero, ¿Y si hay un arbol entre el protagonista y su destino? Fácil, el protagonista lo rodea. ¿Fácil? No tanto.

El algoritmo responsable de calcular por dónde caminará el protagonista se llama algoritmo del camino más corto o pathfinder. Es un conjunto de operaciones las cuales tienen en cuenta los obstáculos que hay entre el origen y el destino, y la mejor forma de evitarlos para que el camino sea lo más corto posible.

Hay muchos algoritmos para ello. Uno de los más sencillos y famosos es el algoritmo de Dijkstra. Nos permite saber el camino más corto entre un grupo de nodos. Pero, ¿Qué tiene que ver un grupo de nodos conectados con un escenario dibujado?

Sólo hay que transformar las zonas recorribles del escenario en una red de nodos. Si lo hacemos bien, el protagonista caminará de manera natural desde un punto hacia otro y ni nos daremos cuenta de lo que hay detrás de todo ese movimiento.

En nuestro caso, usamos un algoritmo que hemos desarrollado a partir de una mezcla de varios algoritmos existentes. Hemos buscado la eficiencia pero también la naturalidad en el movimiento, ya que debemos conseguir que el personaje camine lo más parecido a como lo haría una persona normal. Aunque nuestro protagonista no sea muy normal…

¿Quieres saber más? Estamos en Facebook y Twitter para cualquier tema que te interese conocer sobre este desarrollo.

No hay comentarios:

Publicar un comentario