Colisiones I: Introducción, requisitos y alternativas

colisiones-1.png

Entregas:

Mientras diseñaba e implementaba el sistema de detección de colisiones de Sion Tower (STC) he leído bastante y aprendido mucho al respecto. Es un tema muy complejo, crítico y delicado estudiado con detalle en varias ocasiones. Me queda muchísimo por aprender al respecto pero por razones de calendario no puedo permitirme abarcarlo todo antes de ponerme a trabajar. Este es el primero de una serie de artículos en los que documento el sistema de colisiones que he desarrollado. Comenzamos con los requisitos del sistema y las alternativas disponibles.

Requisitos del sistema

En el documento de diseño de Sion Tower se especifican los posibles tipos de colisiones que pueden darse en el transcurso de una partida típica (sección 3.4.1):

El área de colisión del protagonista y los enemigos podrían modelarse utilizando una o varias cajas. El escenario estará compuesto por el suelo y diversas piezas de mobiliario, es decir, un plano y otro puñado de cajas. Las trampas también pueden modelarse como cajas mientras que el área de efecto de un proyectil mágico podría ser representado mediante una sencilla esfera. Parte de la mecánica de juego consiste en seleccionar un hechizo o trampa utilizando los botones de la interfaz y colocarlo en el escenario con el ratón. Para ello hay que transformar coordenadas de pantalla (donde se desplaza el ratón) a un rayo que atraviesa el escenario y detectar las intersecciones con elementos del juego (técnica conocida como mouse raycasting).

Antes de lanzarme a la piscina redacté una pequeña lista de las funcionalidades que debía ofrecer el sistema de colisiones que utilizase Sion Tower. Básicamente se reducían a las siguientes:

Alternativas disponibles

Reinventar la rueda siempre es una mala idea así que lo primero que hice fue salir en busca de un sistema que se ajustase a mis necesidades. A continuación listo las alternativas disponibles junto con el motivo que me llevó a desecharlas.

Es cierto que podría haber hecho el esfuerzo y adaptarme a cualquiera de las cuatro bibliotecas anteriores (sobre todo a Beastie) pero como Sion Tower forma parte de mi Proyecto Fin de Carrera decidí que era mejor aprender los fundamentos de la detección de colisiones. Por supuesto era imprescindible mantener al mínimo la complejidad con el objetivo de no hacerme viejo antes de terminarla.

Por el momento no ofrezco más que este pequeño aperitivo introductorio. En el próximo artículo de la serie veremos el diseño general de Sion Tower Collisions (STC). Más adelante nos centraremos en cada uno de los componentes de dicho sistema.

comments powered by Disqus