Rocket Roadster est un projet de jeu iOS complet et construisible : un jeu d'arcade en pixel-art à un tapotement écrit en Swift + SpriteKit. Un roadster rouge cerise vole sur des propulseurs à gaz froid et se faufile entre des fusées imposantes, grimpant à travers cinq mondes en pixel-art : Terre, Coucher de soleil, Nuit, Lune et Mars.
Toute l'art est un pixel art procédural généré par le code, et toute la musique et les effets sonores sont synthétisés par le jeu lui-même. Il n'y a pas d'assets d'image ou audio externes et pas de dépendances tierces, donc vous pouvez l'ouvrir, le construire et commencer à le personnaliser.

Comment ça se joue

- Tapotez pour activer les propulseurs, évitez les fusées et ne touchez pas le sol.
- Chaque 10 points, vous avancez d'un niveau : Terre, Coucher de soleil, Nuit, Lune, Mars. À partir du niveau 3, certaines fusées se déplacent de haut en bas, et sur la Lune et Mars, les fusées utilisent la peau de levage lourd.
- Médaille à 10, 20, 30 et 40 points, un meilleur score enregistré et un bouton de partage sur l'écran de fin de jeu.
- Mettez en pause depuis le bouton en haut à droite (le jeu se met également en pause lorsque l'application passe en arrière-plan), avec un compte à rebours de 3-2-1 au redémarrage.


Cinq mondes, cinq looks
Chaque monde a son propre ciel, arrière-plan en parallaxe et sol, tous dessinés procéduralement à l'exécution.





Ce qui se cache sous le capot
- Moteur de jeu déterministe. Les règles du jeu vivent dans Core sans dépendance à SpriteKit, fonctionnent sur un pas fixe de 120 Hz et sont entièrement couvertes par des tests.
- Rendu de pixel-art procédural. Toile, polices de 5x7 et 3x5 pixels lisibles, sprites, thèmes (ciel, parallaxe, sol) et un cache de textures, le tout en code.
- Compositeur de chiptune. Quatre morceaux composés par code (Liftoff, Night Drive, Orbit et Mars Run) qui changent avec le niveau et se fondent les uns dans les autres. Choisissez AUTO ou verrouillez une seule piste. L'audio fonctionne sur son propre fil et la musique devient plus silencieuse pendant la pause.
- Effets sonores et haptiques synthétisés. Aucun fichier audio nulle part dans le jeu.
- Couche de scène. GameScene avec routage d'entrée, écrans et UI, un arrière-plan en parallaxe et des particules.
- Point d'entrée SwiftUI et un manifeste de confidentialité (PrivacyInfo.xcprivacy), orientation portrait, écran de lancement et nom d'affichage déjà configurés.
Flux de jeu poli
- Paramètres (icône d'engrenage dans le menu et sur l'écran de pause) : curseurs de volume séparés pour la musique et les effets, interrupteurs pour la musique, les effets et la vibration, et un sélecteur de piste.
- Médaille, meilleur score enregistré sur l'appareil et un bouton de partage.
- Localisé en anglais et en espagnol ; le jeu suit la langue du système.



Testé
- 116 tests unitaires couvrant le moteur, le compositeur de musique, les sprites, les polices, l'audio, la localisation et la scène réelle s'exécutant à l'intérieur d'un SKView.
- Tests UI de bout en bout (XCUITest).
- Arguments de lancement réservés au débogage pour le développement :
--autoplay (pilotage automatique), --autoplay-stop, --level=N, --reset-data et --uitest.
Disposition du projet
- Sources/Core : règles du jeu sans SpriteKit (moteur, niveaux, paramètres, chaînes, compositeur de musique)
- Sources/Render : pixel art procédural
- Sources/Scene : dessin, routage d'entrée, écrans, arrière-plan en parallaxe et particules
- Sources/Audio : effets synthétisés, lecteur de musique avec fondus, haptiques
- Sources/App : point d'entrée SwiftUI
- Tests/Unit et Tests/UI : les tests unitaires et de bout en bout
- Tools/ et Scripts/ : outils macOS qui rendent le pixel art en PNG (aperçus de niveau, icône d'application, images de bande-annonce) et construisent la bande-annonce, ainsi que des scripts de test et de QA
- Marketing/ : images de liste et bande-annonce (1080p et 720p)
Ce qui est inclus
- Projet Xcode et project.yml (configuration XcodeGen)
- Sources Swift : Core, Render, Scene, Audio et App
- Tests unitaires et tests UI
- Outils pour les ressources et la bande-annonce (Tools/, Scripts/)
- Icône d'application de 1024 px
- README en anglais
- Images marketing et bande-annonce
Commencez en quelques minutes
- Décompressez l'archive et ouvrez
RocketRoadster.xcodeproj.
- Choisissez votre équipe sous Signing & Capabilities et remplacez l'identifiant de bundle (
com.example.rocketroadster, défini dans project.yml).
- Construisez et exécutez sur un simulateur ou un iPhone.
Le projet Xcode généré est inclus, donc XcodeGen est optionnel : exécutez xcodegen generate uniquement si vous modifiez project.yml.
Personnalisez-le
- Renommez le jeu et changez les mots du logo et l'écriture de la fusée (voir Sprites.swift et GameScene+Screens.swift) afin que le résultat soit votre propre marque.
- Remplacez l'icône de l'application et capturez vos propres captures d'écran et bande-annonce avec les scripts inclus (Scripts/build_trailer.sh).
- Ajoutez les services dont vous avez besoin. Game Center, publicités, achats in-app et support iPad ne sont intentionnellement pas inclus, car ils nécessitent vos propres comptes et configurations.
Exigences
- Un Mac avec une version récente de Xcode.
- Cible de déploiement iOS 16.0, iPhone, portrait.
- Aucune dépendance tierce.
- L'acheteur est responsable de l'examen de l'App Store, des marques et de son propre identifiant de bundle.