Cómo aprender el marco de Starling
() translation by (you can also view the original English article)
El marco de Starling es un marco de código abierto gratuito escrito con ActionScript 3.0. El objetivo principal de este marco es facilitar enormemente a los desarrolladores la creación de juegos para la plataforma Adobe Flash. En este artículo, te presentaremos Starling y compartiremos consejos, screencasts, tutoriales y recursos para comenzar a usarlo.
¿Por qué elegir el Marco de Starling?
Hay muchos beneficios de usar el Marco de Starling para crear tus juegos; estas son algunas de las razones más importantes:
- Es gratis.
- Es de código abierto: los desarrolladores contribuyen a ampliar los límites del marco.
- Es acelerado por hardware: Starling se basa en la nueva tecnología Stage3D de Adobe Flash Player, que utiliza el hardware de la GPU del dispositivo del jugador para renderizar el juego.
- Es compatible con múltiples pantallas: se puede compilar una base de código para ejecutarse en múltiples plataformas: escritorio, web, iOS y Android.
Dónde descargarlo
El sitio web oficial del Marco de Starling contiene un enlace para descargar la última versión. Para cualquier juego basado en Starling, este es el paquete más importante y principal que necesitarás.
Como se mencionó, Starling es de código abierto, por lo que también está alojado en GitHub.
Esta rama contiene lo siguiente:
- Código fuente completo del marco Starling escrito en AS3.
- Proyectos de demostración que se pueden utilizar para explorar cómo se puede escribir el código Starling.
- Un proyecto de andamio que te ofrece un punto de partida para empezar un nuevo proyecto.
- Algunas pruebas unitarias para diferentes características del Marco de Starling.
- Utilidades que te ayudarán a implementar y probar el juego según el marco.
Prerrequisitos
Se supone que tienes un nivel intermedio de conocimientos en Flash ActionScript 3.0 para poder utilizar el marco de Starling rápidamente. Si necesitas ayuda con Flash ActionScript 3.0, te recomiendo el libro Essential ActionScript 3.0 de Colin Moock.



- Para obtener más recursos recomendados, consulta Cómo aprender Flash y AS3 para el desarrollo de juegos.
Introducción al desarrollo
Tutoriales en video para principiantes (gratis)
Para empezar, si eres nuevo en este marco, te recomiendo que comiences con un proyecto simple que te lleve de principio a fin del proceso de desarrollo de un juego. Puedes encontrar esto en mi serie de videos Comenzando con Starling.
A lo largo de esta serie de videos, aprenderás a crear un juego llamado Héroe hambriento.



La serie de videos te llevará a través de varios temas relacionados con el aprendizaje del Marco de Starling:
- Configura
- Imágenes, texturas y botones
- Hojas de Hada y animación
- Navegación mediante eventos y oyentes
- Desplazamiento de paralaje
- Estados del juego, hadas, detección de colisiones, texto y fuentes, partículas
Introducción a Starling (libro electrónico gratuito)
Para obtener una guía de API más detallada de todo el marco, un buen recurso es el libro Introducción a Starling de Thibault Imbert.



(Más información disponible en el sitio web de Thibault).
¿Qué sigue?
Una vez que aprendas los conceptos básicos del Marco de Starling, te recomiendo que te concentres en los siguientes aspectos.
Efectos visuales mejorados (como sistemas de partículas)
Agregar efectos de partículas y efectos especiales mejora la experiencia de los jugadores que juegan tus juegos. Hay una extensión cuidadosamente diseñada para los sistemas de partículas Starling que es una necesidad de explorar para los desarrolladores de juegos en ciernes.
Patrones MVC y los gustos de la codificación eficiente
Tan importante como el proceso involucrado en el desarrollo de un juego es la forma en que diseñas el código y los activos (gráficos y audio). La separación de tu código en componentes Modelo, Vista y Controlador a menudo te brindará un mejor enfoque para administrar tus proyectos, lo que facilitará la búsqueda y corrección de errores y te brindará una implementación más eficiente.
Técnicas de optimización para un rendimiento eficiente
Cualquier juego debe optimizarse, independientemente del marco/lenguaje que utilices. Esto siempre garantiza que tus juegos se ejecuten en las plataformas/hardware menos comunes. ¡Nunca subestimes los problemas de rendimiento, especialmente en el desarrollo de juegos!
Componentes de la interfaz de usuario creados para juegos basados en Starling
Explora el marco de interfaz de usuario finamente construido para los juegos basados en Starling, Plumas. Construido con AS3 y Marco de Starling, y acelerado con Stage3D, está optimizado y diseñado para su uso con múltiples densidades y resoluciones de pantalla.
Amplíe el Marco de Starling con extensiones
Hay muchas extensiones maduras para el Marco de Starling, ¡muchas de las cuales te resultarán muy útiles! Estos son creados por algunos de los mejores desarrolladores, con el propósito de desarrollar juegos; utilizaron este código para crear y ampliar sus propios juegos.
Proceso de desarrollo de juegos
Ahora que comprendes los aspectos técnicos del marco en sí, es extremadamente importante saber cómo se supone que debe construirse un juego, especialmente la eficiencia y la arquitectura. Este es uno de los temas más importantes para comprender, así que sigue practicando y sigue leyendo tutoriales.
Más recursos de aprendizaje
Estos enlaces proporcionan excelentes recursos de aprendizaje para temas específicos relacionados con el Marco de Starling.
El manual de Starling
Este es probablemente el mejor recurso para un principiante que intenta crear juegos usando el marco Starling. Contiene tutoriales desde el nivel básico hasta el avanzado.
Tutoriales oficiales y fragmentos de código
Aquí encontrarás los mejores videos tutoriales y artículos para comenzar. Si es completamente nuevo en Starling, este es un gran lugar para comenzar.
Extensiones
Una vez que aprendas lo básico y puedas crear cosas, es probable que las extensiones sean el lugar que debes buscar. Aquí encontrarás muchas bibliotecas diferentes escritas por desarrolladores increíbles. Como sugiere el nombre, solo amplía las capacidades del marco.
Plumas
Cualquier juego está incompleto sin una interfaz de usuario. Crear un menú principal, una pantalla de opciones, información sobre la pantalla, créditos, selección de nivel, etc. es mucho más simple cuando se usa este marco increíblemente fácil.
Referencia de la API de Starling
Ya sea que sea un desarrollador principiante, intermedio o avanzado, siempre es una buena idea consultar la referencia de la API. Te proporciona la sintaxis actualizada de todos los métodos, clases y propiedades para todos los objetos en el marco Starling.
Foro de la comunidad Starling
¿Tienes un problema que no puede resolver durante el proceso de desarrollo? La comunidad de Marco de Starling es el mejor lugar para buscar ayuda. Un gran grupo de desarrolladores contribuye a este foro de la comunidad, ayudándose unos a otros con los problemas de desarrollo de juegos que uno pueda enfrentar.
El Marco de Starling en GitHub
Esta es la ubicación principal del marco Starling. Si deseas bifurcar, contribuir o simplemente estar atento a las actualizaciones, no olvides conectarte a esto.
Seguimiento de problemas
Ningún producto o marco tiene éxito sin la contribución de probadores o usuarios reales. Si crees que has encontrado un error o un problema en el marco de Starling, este es el rastreador para informarlo. ¡Contribuye y manten el marco de Starling volando!
Consejos de desarrollo
Si bien algunos de estos son consejos específicos del Marco de Starling, la mayoría son válidos para cualquier tecnología de desarrollo de juegos.
Utiliza las funciones de pantalla múltiple
Dado que el marco Starling se basa en Flash ActionScript 3.0, no olvides aprovechar las funciones multipantalla del marco Starling.
Existen numerosas formas de hacer que tus juegos sean compatibles con múltiples plataformas o pantallas. Asegúrate de explorar los proyectos "Demo" y "Scaffold" proporcionados con el código base.
Optimización del plan desde el principio
La optimización es una parte integral de la codificación de un juego en cualquier idioma. Recuerda, una de las características más importantes del Marco de Starling es su soporte multiplataforma.
Una vez que comienzas a codificar tu juego, la complejidad del código solo continúa creciendo a lo largo del proceso de desarrollo. Para asegurarte de no tener que cambiar la arquitectura de tu juego en una etapa posterior (debido a la ineficiencia), siempre es mejor comenzar a pensar en la "codificación optimizada" desde la primera línea de código.
Segrega el código
Mantén tu código en secciones separadas (especialmente importante para múltiples plataformas):
- Lógica central: contiene los comportamientos de diferentes personajes del juego, lógica para mover objetos, sumar partituras, reproducir música, etc. Cualquier corrección de error en esta parte del código debería determinar la corrección para todas las plataformas para las que estás diseñado el juego.
- Lógica de la plataforma: contiene solo código específico de la plataforma, lo que podría significar considerar iOS o Android; tabletas, teléfonos o web; tamaños de pantalla, resoluciones y densidades... Esta sección del código maneja cosas para cualquier plataforma específica, como habilitar o deshabilitar efectos especiales según la capacidad de la plataforma para garantizar que el juego siempre se ejecute a una buena velocidad de fotogramas.
- Lógica de interacción: contiene una lógica basada en la interacción que garantiza que la interacción se define en función de la plataforma en la que se ejecuta el juego, y luego habla con la lógica central para realizar acciones en el juego. Por ejemplo, controles del ratón para escritorio y web, controles táctiles para dispositivos móviles y tabletas.
Decidir si usar gráficos vectoriales o de trama
Los vectores son livianos en términos de memoria. Estos gráficos se dibujan en tiempo de ejecución en la pantalla, por lo que se almacenan menos datos gráficos en la memoria. Sin embargo, procesarlos puede resultar costoso para el procesador.
Los mapas de bits o los gráficos de trama consumen mucha memoria. Almacenar físicamente y consumir memoria para renderizar puede ser un desafío, pero son comparativamente más livianos en términos de renderizado (a menos que realices un procesamiento intensivo de mapas de bits).
¿Quieres que el juego se ejecute más rápido en dispositivos con procesadores limitados? Utiliza mapas de bits. ¿Quieres más flexibilidad visual? Utiliza vectores. Hay desafíos inherentes al uso de cualquiera de los dos, por lo que siempre intenta equilibrar el uso de ambos elementos. Ten en cuenta la potencia de procesamiento y la memoria que utiliza tu juego.
Usa más hojas de hadas cuando sea necesario
No estás obligado a intentar incluir todos los gráficos de tu juego en una sola hoja de hadas. Si es necesario, expande tu lógica para usar múltiples hojas de hadas, pero mantén esto bajo control, ya que tu juego puede ocupar más tamaño de archivo y, lo más importante, consumir más memoria.
Considera la generación dinámica de hojas de hadas
Existen extensiones que puedes usar para esto o, mejor aún, puedes escribir una para hacer exactamente lo que necesitas.
El uso de animaciones Flash vectoriales creadas previamente (SWF) y su conversión dinámica en hojas de hadas podría ahorrarte mucho tiempo de desarrollo, así como reducir el tamaño de archivo de tu binario. Asegúrate de no terminar haciendo esto demasiado para afectar la memoria en tiempo de ejecución consumida por tu juego.
Busca en las extensiones nativas de ActionScript
Usa ANE para expandir tus juegos para que contengan características específicas de la plataforma, como compras en la aplicación, anuncios en el juego y características sociales (como Game Center para iOS). Hay muchos ANE gratuitos y de pago disponibles en línea, así que no olvides revisarlos. También puedes escribir fácilmente el tuyo si es necesario.
Participación en el desarrollo
Manténte activo en la comunidad. Hay muchos desarrolladores expertos en la comunidad que han contribuido durante mucho tiempo. Publica tus consultas en los foros de Starling y no olvides registrar errores o tickets de soporte si es necesario. Las ideas y los requisitos de los desarrolladores son una de las razones por las que el Marco de Starling crece con más funciones cada día.
Una palabra de experiencia
Hay un dicho: "No es la herramienta, sino la habilidad lo que importa". El Marco de Starling es un gran conjunto de API de código abierto para crear increíbles juegos acelerados por GPU para múltiples plataformas y dispositivos. Sin embargo, prestar mucha atención a las técnicas de desarrollo, los patrones, la forma de optimizar el código, etc., siempre te ayudará a largo plazo. Muchos de los temas que he enumerado a lo largo de este artículo son válidos para muchos otros marcos e idiomas.
Por lo tanto, no importa qué lenguaje, marco, plataforma o herramienta utilices para crear juegos, los conceptos de desarrollo de juegos siguen siendo importantes.
Juegos exitosos basados en el Marco de Starling
Estos son algunos de los juegos basados en Starling que han tenido mucho éxito:
Angry Birds (edición de Facebook)



Spaced Away



Ruby Blast



El tiempo del dragón



Ríos del Olimpo



Conclusión
Ahora que todos los recursos del mundo están combinados en un solo lugar, aprender Marco de Starling debería ser pan comido.
Empieza por crear el juego más simple y ve avanzando a través de él. ¡No olvides dejar un comentario y hacernos saber lo que construiste! Una vez que publiques un juego, estaré feliz de revisarlo y comentarlo.
Por último, como siempre digo, no es la herramienta lo que importa, sino el arte y la ciencia. Recuerda que el Marco de Starling es solo una herramienta o un medio para expresar tus habilidades de desarrollo de juegos; lo que realmente importa es la habilidad que eventualmente desarrollarás en ti mismo. Existen innumerables plataformas, sistemas operativos, dispositivos, pantallas, marcos, lenguajes y herramientas. Crecer para poder construir para ellos y tener éxito es la clave. El Marco de Starling es un gran medio para lograr esto. ¡Todo lo mejor!