Rocket Roadster es un proyecto de juego para iOS completo y construible: un juego de arcade en pixel-art de un solo toque escrito en Swift + SpriteKit. Un roadster rojo cereza vuela con propulsores de gas frío y se desliza entre cohetes imponentes, ascendiendo a través de cinco mundos en pixel-art: Tierra, Atardecer, Noche, Luna y Marte.
Todo el arte es arte en pixel generado de forma procedural en código, y toda la música y los efectos de sonido son sintetizados por el propio juego. No hay activos de imagen o audio externos ni dependencias de terceros, por lo que puedes abrirlo, construirlo y comenzar a hacerlo tuyo.

Cómo se juega

- Toca para activar los propulsores, evita los cohetes y no toques el suelo.
- Cada 10 puntos avanzas un nivel: Tierra, Atardecer, Noche, Luna, Marte. A partir del nivel 3 algunos cohetes se mueven hacia arriba y hacia abajo, y en la Luna y Marte los cohetes utilizan la piel de carga pesada.
- Medallas en 10, 20, 30 y 40 puntos, un mejor puntaje guardado y un botón de Compartir en la pantalla de fin de juego.
- Pausa desde el botón en la esquina superior derecha (el juego también se pausa cuando la aplicación pasa a segundo plano), con una cuenta regresiva de 3-2-1 al reanudar.


Cinco mundos, cinco aspectos
Cada mundo tiene su propio cielo, fondo en paralaje y suelo, todos dibujados de forma procedural en tiempo de ejecución.





Qué hay bajo el capó
- Motor de juego determinista. Las reglas del juego viven en Core sin dependencia de SpriteKit, funcionan en un paso fijo de 120 Hz y están completamente cubiertas por pruebas.
- Renderizador de pixel-art procedural. Canvas, fuentes de 5x7 y 3x5 píxeles legibles, sprites, temas (cielo, paralaje, suelo) y una caché de texturas, todo en código.
- Compositor de chiptune. Cuatro pistas compuestas por código (Liftoff, Night Drive, Orbit y Mars Run) que cambian con el nivel y se funden entre sí. Elige AUTO o bloquea una sola pista. El audio se ejecuta en su propio hilo y la música se vuelve más suave mientras está en pausa.
- Efectos de sonido y hápticos sintetizados. No hay archivos de audio en ninguna parte del juego.
- Capa de escena. GameScene con enrutamiento de entrada, pantallas e interfaz de usuario, un fondo en paralaje y partículas.
- Punto de entrada de SwiftUI y un manifiesto de privacidad (PrivacyInfo.xcprivacy), orientación vertical, pantalla de inicio y nombre de la aplicación ya configurados.
Flujo de juego pulido
- Ajustes (icono de engranaje en el menú y en la pantalla de pausa): deslizadores de volumen separados para música y efectos, interruptores para música, efectos y vibración, y un selector de pistas.
- Medallas, mejor puntaje guardado en el dispositivo y un botón de Compartir.
- Localizado en inglés y español; el juego sigue el idioma del sistema.



Probado
- 116 pruebas unitarias cubriendo el motor, el compositor de música, sprites, fuentes, audio, localización y la escena real ejecutándose dentro de un SKView.
- Pruebas de UI de extremo a extremo (XCUITest).
- Argumentos de lanzamiento solo para depuración para desarrollo:
--autoplay (piloto automático), --autoplay-stop, --level=N, --reset-data y --uitest.
Diseño del proyecto
- Sources/Core: reglas del juego sin SpriteKit (motor, niveles, ajustes, cadenas, compositor de música)
- Sources/Render: arte en pixel procedural
- Sources/Scene: dibujo, enrutamiento de entrada, pantallas, fondo en paralaje y partículas
- Sources/Audio: efectos sintetizados, reproductor de música con fundidos, hápticos
- Sources/App: punto de entrada de SwiftUI
- Tests/Unit y Tests/UI: las pruebas unitarias y de extremo a extremo
- Tools/ y Scripts/: herramientas de macOS que renderizan el arte en pixel a PNG (previews de niveles, icono de la aplicación, tráilers) y construyen el tráiler, además de scripts de prueba y QA
- Marketing/: imágenes de listado y tráiler (1080p y 720p)
Qué está incluido
- Proyecto de Xcode y project.yml (configuración de XcodeGen)
- Fuentes de Swift: Core, Render, Scene, Audio y App
- Pruebas unitarias y pruebas de interfaz de usuario
- Herramientas de activos y tráiler (Tools/, Scripts/)
- Icono de aplicación de 1024 px
- README en inglés
- Imágenes de marketing y tráiler
Empieza a funcionar en minutos
- Descomprime el archivo y abre
RocketRoadster.xcodeproj.
- Elige tu equipo en Firmar y capacidades y reemplaza el identificador del paquete (
com.example.rocketroadster, establecido en project.yml).
- Compila y ejecuta en un simulador o en un iPhone.
El proyecto de Xcode generado está incluido, por lo que XcodeGen es opcional: ejecuta xcodegen generate solo si cambias project.yml.
Hazlo tuyo
- Cambia el nombre del juego y modifica las palabras del logo y la tipografía del cohete (consulta Sprites.swift y GameScene+Screens.swift) para que el resultado sea tu propia marca.
- Reemplaza el icono de la aplicación y captura tus propias capturas de pantalla y tráiler con los scripts incluidos (Scripts/build_trailer.sh).
- Agrega los servicios que necesites. Game Center, anuncios, compras dentro de la aplicación y soporte para iPad no están incluidos intencionalmente, porque requieren tus propias cuentas y configuración.
Requisitos
- Un Mac con una versión reciente de Xcode.
- Objetivo de implementación iOS 16.0, iPhone, retrato.
- Sin dependencias de terceros.
- El comprador es responsable de la revisión de la App Store, marcas registradas y su propio ID de paquete.