Máquinas de Estados Finitos y Expresiones Regulares

Durante los próximos días comenzaré algunas series de artículos algo más teóricos sobre programación, algoritmos, física y matemáticas que me parecen bastante necesarios para aplicar en el desarrollo de juegos más complejos o que requieran de más trabajo. La intención es que no sean demasiado densos sino más bien accesibles para que sean realmente útiles. No me gustan esos artículos interminables llenos de lenguaje complicado para decir cosas que no lo son tanto.

La primera de esas series tratará sobre unos “entes” abstractos que resultan tremendamente útiles a la hora de estructurar juegos sencillos: Máquinas de Estado Finitas (MEF). Aunque tienen aplicaciones mucho más complejas y, como todo, pueden complicarse ad infinitum, son esenciales y para lo que se necesitan de momento aquí tampoco requieren complicarse en exceso.

La serie será realmente una traducción/adaptación de unos artículos que tratan este tema en GameDev.net, obra de Eli Bendersky (a quien agradezco la buena voluntad para poder traducirlos), en los que explica qué son, cómo funcionan y para qué sirven estas Máquinas de Estado y su aplicación más significativa, las Expresiones Regulares (regexp). Todo ello sin entrar en demasiada teoría complicada para que sea accesible y de aplicación inmediata, incluyendo además una implementación de algortimos de tratamiento de regexps.

A su vez, una vez introducidos los conceptos necesarios, entraremos en una serie paralela en la construcción en sí de una MEF en JavaScript para utilizarla como parte de un motor de juegos más completo, pues las simplificaciones que aporta a la hora de organizar un proyecto son inmensas.