Para un jugador, un juego Flash era simplemente un juego: clic, salto, disparo, victoria. Pero por debajo de la superficie, el lenguaje que los desarrolladores usaban para construir ese juego cambió drásticamente a lo largo de la vida de Flash, y cada revisión importante de ActionScript redefinió qué tipo de juego era siquiera práctico de hacer.
ActionScript 1.0: Simple y Permisivo
La primera versión de ActionScript, introducida con Flash 5 en el año 2000, era un lenguaje de scripting suelto y permisivo, construido en torno a adjuntar pequeños fragmentos de código directamente a fotogramas de la línea de tiempo y a símbolos individuales de clips de película. No tenía un concepto real de clases en el sentido que le dan los lenguajes de programación modernos, lo que lo hacía accesible para aficionados autodidactas, pero genuinamente difícil de organizar una vez que un proyecto crecía más allá de cierto tamaño.
ActionScript 2.0: Aprendiendo a Organizarse
ActionScript 2.0, que llegó con Flash MX 2004, introdujo una sintaxis basada en clases mucho más cercana a la programación orientada a objetos convencional, aunque seguía construido sobre el mismo motor subyacente que AS1 y en última instancia se compilaba a un bytecode similar. Esto importó enormemente para la experiencia del desarrollador: los equipos que construían juegos más grandes y ambiciosos finalmente tenían un lenguaje que les permitía estructurar el código como realmente se enseñaba en los cursos de ciencias de la computación, en lugar de depender por completo de scripts de fotograma dispersos.
ActionScript 3.0: una Reescritura Genuina
ActionScript 3, lanzado junto con Flash Player 9 en 2006, no fue una actualización incremental: funcionaba sobre una máquina virtual completamente nueva que Adobe construyó desde cero, ofreciendo una ejecución dramáticamente más rápida y un modelo de objetos real, estricto y basado en clases, comparable a los lenguajes convencionales de la época. La diferencia de rendimiento fue lo bastante grande como para ser la razón directa por la que géneros más ambiciosos y exigentes en cómputo se volvieron siquiera prácticos en Flash.
Lo Que AS3 Realmente Desbloqueó
Los juegos impulsados por física que definieron gran parte de la última edad de oro de Flash (simulaciones completas de cuerpo rígido, efectos de partículas complejos, mundos de juego persistentes más grandes) dependían del rendimiento bruto que proporcionaba AS3, ya que AS1 y AS2 simplemente no podían ejecutar tantos cálculos por fotograma con la suficiente rapidez para mantenerse jugables. Las bibliotecas de física populares construidas para Flash ganaron tracción real específicamente porque AS3 finalmente les dio un entorno de ejecución lo bastante rápido como para merecer la pena usarlo.
Una División de Lenguaje Entre Desarrolladores
Como AS3 era lo bastante diferente como para requerir esencialmente reaprender el lenguaje, surgió una división real en la comunidad de desarrolladores: algunos aficionados que habían construido portafolios enteros en AS1 y AS2 nunca migraron por completo, mientras que los desarrolladores más nuevos que empezaron directamente en AS3 construyeron desde el primer día bases de código notablemente distintas y más estructuradas. Esa división es visible, en retrospectiva, en lo diferente que tienden a estar construidos los juegos de la primera y la segunda mitad de la historia de Flash una vez que se mira más allá del producto terminado.