Ma première app : "Airborne"

Salut la communauté !

J’ai découvert cette section grace à la nouvelle formation de Maxime.

J’en profite pour faire un peu de pub pour ma toute première app sortie il y a quelques mois, qui est un portage pur et simple d’un vieux jeu mac vers iPhone, à base de SpriteKit et des bons conseils de Purple Giraffe.
Pour les vieux comme moi qui ont connu les débuts du jeu sur mac, peut être que vous serez content de retrouver le titre Airborne sur votre iPhone.

Allez-y c’est gratuit et sans pubs !!
Airborne - Gratuit

Pour la petit histoire…
A l’époque, j’avais contacté via linkedIn les anciens dev/éditeur de ce jeu pour leur parler de cette idée et leur demander leur aimable autorisation.
Ils m’ont beaucoup encouragé à venir à bout du projet et m’ont même donné quelques conseils pour m’approcher encore davantage de l’expérience de jeu initiale.
A la sortie, les blogs de news apple m’ont gratifié de quelques bons articles, ce qui a été décisif sur le nombre de téléchargements. (1300 en 3 jours je crois…)
Depuis, j’en suis à environ 4300 copies.
Pour une première expérience de dev iOS, je me suis régalé, et je confirme ce que disait Maxime lors de sa précédente formation, le métier de développeur mobile est vraiment le plus beau métier du monde !!

Swiftly yours !

5 « J'aime »

Bonjour @loloabj,
Je viens de télécharger ton jeu, et j’ai adoré. C’est vraiment super !

Merci beaucoup willyfkouadio !

101 points - niveau Débutant :flight_departure:
Sympathique !
Mais pourquoi sortir l’artillerie lourde et utiliser SpriteKit ? On peut créer des jeux bien plus compliqué que ça avec UIKit…

Merci Draken

Je ne doute pas que SpriteKit soit conçu pour réaliser des jeux beaucoup plus complexes ! L’objectif était de réaliser l’exacte copie de l’original.

Comment aurais-tu fait à ma place ? Juste avec UIKit ? Le tout dans une UIView ? Je crois que que je me serait compliqué la vie… Les animations et les transitions sont quand même plus optimisées et plus simples à gérer avec SpriteKit.

En revanche, il est vrai qu’utiliser SpriteKit pour réaliser des animations aussi simplistes n’est pas toujours évident. Par exemple, les explosions n’ont pas pu être réalisées avec un SpriteKit Particle Emitter car beaucoup trop 21e siècle ! Ce sont donc des enchainements d’images PNG copiées collées depuis le jeu original.

Au fait, 1450 points à battre…

UIImageView pour les sprites.

UIView.animate() pour déplacer les objets d’un point A à un point B en un temps donné.

Un tableau pour stocker les objets pouvant entrer en collision

Un timer appelé 10 à 20 fois par seconde pour parcourir le tableau des objets actifs et tester les collision.


Il y a d’autres possibilités, comme gérer les déplacements et les collisions « à la main » sans passer par UIView.animate(). La méthode CADisplayLink permet de “piloter” les modifications du jeu avec la synchronisation écran, ce qui garantit une animation fluide.

https://developer.apple.com/documentation/quartzcore/cadisplaylink

C’est la méthode recommandé par « Développer des jeux vidéo pour iPhone et iPad pour les nuls », un ouvrage un peu ancien puisqu’il est sorti en 2011 (pas de swift :disappointed_relieved:).


Dans son MOOC 2017 (gratuit - plateforme edx) sur la programmation en Swift, le professeur Kordon de l’université de Jussieu, utilise une méthode encore plus ancienne pour créer un petit jeu : il ne gére pas la synchronisation d’écran, se contenant d’un timer pour gérer les déplacements et la détection de collisions. D’après lui, c’est largement suffisant dans le cadre d’un petit jeu iOS avec quelques dizaines de sprites.

Pourquoi pas en effet… Dans la même logique, j’aurais dû également me passer des SKAudioNodes pour la gestion des sons.

Tu penses que j’y aurai gagné en quoi ?

  • Simplicité de code ?
  • Economie d’énergie en utilisation ?

A voir…

Je profite du sujet pour vous demandé s’il serait possible que j’ai des liens pour apprendre le développement des jeux videos pour IOS. C’est une lucane qui m’intéresse beaucoup aussi. :slight_smile:

Celui-ci m’a bien aidé : https://www.raywenderlich.com/145318/spritekit-swift-3-tutorial-beginners

1 « J'aime »

Merci @loloabj
C’est un article génial. J’ai juste défilé rapidement mais j’ai adoré les différents chapitres abordés

Oui, SpriteKit est plutôt gourmand sur ce plan là.

Tu aurais gagné du temps sur ton développement. Mais SpriteKit est un outil intéressant à étudier. C’est toujours bon d’apprendre des choses nouvelles.

Je viens de tester et c’est vraiment super!
Je pense que SpriteKit est un bon choix. C’est conçu pour les jeux et ça lui permet de se laisser une porte ouverte pour de futures évolutions.

1 « J'aime »

Bonjour,

Comment faire pour obtenir le code et comprendre comment tu t’y mais pris ?
Merci

Salut ! Je ne connaissais pas le jeu mais très sympa de retrouver des sensations oldschool !

bravo et merci

1 « J'aime »

Bonjour,

Une petite remarque de mon fils (on peut lui faire confiance pour tester les jeux…) :

Quand on garde le doigt appuyé sur l’écran et qu’on le bouge un peu vite (en mode "essuie glace…) les balles déjà tirées changent de trajectoire. Par exemple, si on glisse le doigt vers la gauche, elles montent vers le ciel. Pour moi, une balle tirée devrait conserver sa trajectoire définie une fois pour toute au lancement ?

J’ai bien conscience que ce n’est pas le mode de jeu normal que de laisser le doigt appuyé (de mémoire mon mac SE 30 n’avait pas d’écran tactile), mais bon je remonte l’info quand même.

1 « J'aime »

Bonjour Lionel,
Désolé pour cette réponse tardive.

Je n’ai pas prévu de publier le code source car l’idée d’origine ne m’appartient pas (j’ai reçu l’autorisation de la porter sur iOS de la façon la plus fidèle possible, mais je ne souhaite pas que des versions parallèles et édulcorées soient publiées à partir de mon code).

En revanche, voici un lien vers un tutoriel qui m’a bien aidé pour me lancer dans sprite kit, et pour démarrer le projet Airborne : https://www.raywenderlich.com/187645/spritekit-tutorial-for-beginners-2

Bon courage !

Bonjour Yves,

Et oui ! il s’agit du mode Guided Shell (balles guidées) qui était également le mode par défaut du jeu d’origine (lorsque l’on gardait la souris appuyée, on pouvait faire bouger les balles vers le haut ou vers le bas).
Dans le menu de l’appli, on peut aussi sélectionner “Unguided Shell” afin qu’un balle déjà tirée conserve sa direction initiale.
Tout cela en parfaite fidélité avec le jeu d’origine.

A+ et bon jeu !!

1 « J'aime »