Il y a exactement un an, mon ami et moi avons décidé de créer rapidement un jeu pour iOS. Qu'est-ce qui est arrivé de cela, et combien nous avons réussi à gagner, je dirai sous la coupe.
Premiers pas
En général, nous sommes des développeurs C ++ et avons déjà essayé de créer un jeu multiplateforme en utilisant les outils que nous connaissons - Qt et C ++. Ensuite, nous avons travaillé sur un jeu de tower defense dans le cadre du Nouvel An. Pour vous plonger dans l'atmosphère du développement indépendant, je vous suggère de regarder quelques vidéos de cette époque:
Nous avons passé environ deux mois à créer le moteur, les commandes normales et à résoudre les problèmes de développement multiplateforme typiques. Bien sûr, le projet est au point mort, car il ne donne pas de dopamine proportionnellement aux efforts déployés.
Second souffle
À un moment donné, nous avons décidé d'étudier les outils de développement natifs. À savoir, SpriteKit sur iOS. J'ai lancé une démo sur Swift, dans laquelle il y avait 1000 sprites en mouvement avec un canal alpha. Elle n'a pris que quelques dizaines de lignes de code et a distribué 60 fps sur l'iPhone 5! C'était juste un délice! Le seuil d'entrée bas et les capacités frénétiques du moteur intégré ravivent notre enthousiasme!
Cette fois, nous avons formulé l'objectif principal comme suit: Le jeu devrait être dans l'AppStore! Elle ne peut tout simplement pas aller à tous les autres projets inachevés à l'arrière du github! Cela signifiait que le jeu devait être si simple qu'il ne pouvait pas être fait. Il est temps de commencer à faire des choses!
Nous ne pouvions pas nous permettre de créer manuellement des niveaux, car après avoir créé la mécanique du jeu, l'enthousiasme pouvait s'estomper. Par conséquent, nous avons pensé à créer un coureur ou un jeu de plateforme avec un niveau infini. Comme Subway Surfers, Doodle Jump, Nyan Cat ou Flappy Bird. Nous voulions également minimiser la quantité de texte afin de ne pas déranger la localisation.
Je vois le but
Alors qu'avons-nous trouvé? Une étude rapide des outils de développement pour iOS a montré que le moteur physique bidimensionnel intégré n'est que du feu! Son développement ressemble à ceci:
- créer un monde physique
- ajouter un objet boule au monde physique
- ajouter un objet de genre au monde physique
- allumez la gravité!
Pouvez-vous imaginer les émotions d'un programmeur qui jonglait avec des pointeurs depuis deux mois?
Bien sûr, nous avons décidé d'utiliser la physique comme élément principal du jeu. Quel jeu infini basé sur la physique puis-je faire avec une balle? À la poursuite du ballon!
Selon l'idée, le joueur doit contrôler le pied du joueur de football et frapper le ballon. Le but du jeu est de frapper le plus possible. Les rebonds du pied, du genou et de la tête sont pris en compte. Dans le même temps, la monétisation était un facteur obligatoire. Au moins certains! Il ne s'agit même pas de gagner de l'argent - vous devez vous familiariser avec les outils.
Faisons-le dans une semaine
Nous avons donc clairement formulé l'objectif. Il est temps de commencer! Nous avons marqué par paires et sommes partis en congé du travail pendant une semaine. Pendant ce temps, nous avions prévu de faire un menu, une scène avec le jeu, la notation et la publicité. Vous pensez que cela a fonctionné?
Ça s'est avéré! Nous avons vraiment réussi à faire le jeu sans design ni sons en une semaine. Sur les instruments par lesquels. jamais utilisé auparavant (Swift + SpriteKit). Il s'est avéré quelque chose d'encore plus ou moins jouable, bien qu'avec des talons au lieu de textures normales.
Oui, nous n'avons pas de formation, pas de système de motivation et bien plus encore. Mais cela suffit pour que l'artiste comprenne à quoi ressemblera l'organisation finale des éléments.
Ou dans un mois
Alors arrête! Un artiste? Sommes-nous une grande entreprise? Non, mais les programmeurs ne dessinent généralement pas très bien. Il a donc été décidé d'externaliser cette activité. De plus, notre semaine sur le jeu est terminée.
Nous avons commandé 15 textures à un ami de l'artiste afin qu'elles soient toutes dans le même style, proportionnelles et harmonieuses. Pour l'argent. Oui, nous avons investi non seulement du temps) En général, c'était la première expérience avec des pigistes. Expérience utile. Je le recommande.
Peu à peu, la conception du jeu a commencé à émerger des croquis.
Eh bien, ou pendant six mois
Le plan avec le nouveau design était le suivant: il suffit de changer les anciennes textures une par une par de nouvelles et le tour est joué - le jeu est prêt. Peu importe comment! Toutes les textures avaient des angles légèrement différents, des tailles différentes, avec des points d'ancrage différents. Cela a conduit au fait que la mise en page entière est partie. Dans le même temps, la physique de la jambe était considérablement altérée et elle devait être à nouveau déboguée.
Les nouvelles textures étaient d'une résolution plus élevée et lors du remplacement dans l'éditeur de scène, Xcode plantait constamment! Les bibliothèques d'Apple sont bien sûr excellentes, mais l'IDE, pour le moins, aurait pu être plus stable! J'ai dû supprimer la version 10 de Xcode et installer 9 afin de travailler en quelque sorte avec les textures.
À propos, à un moment donné, un bug intéressant avec un genou a été découvert, que nous avons appelé "Grasshopper Mode".
Et ces problèmes non évidents sont apparus un par un. Et la libération a été retardée et retardée. Au cours des prochains mois, le soir, nous avons corrigé des bugs, ajouté du son et amélioré l'expérience utilisateur. En conséquence, le jeu a atteint au moins un niveau acceptable et nous avons décidé de sortir!
Ligne d'arrivée
Maintenant, nous avons un jeu prêt. De quoi a-t-on besoin pour mener à bien le projet? Téléchargez sur l'AppStore. Juste ça. Pour ce faire, vous avez besoin d'un compte développeur, d'une politique de confidentialité, d'icônes et de captures d'écran de toutes tailles, ainsi que de descriptions dans les langues de tous les pays où vous souhaitez être placé.
Ce sont toutes des tâches à résoudre, mais elles prennent également du temps. L'enregistrement d'un compte développeur coûte 100 $, des icônes de différentes tailles sont faites dans des générateurs en ligne, ainsi qu'une politique de confidentialité. Ils ont rapidement jeté et traduit des descriptions stupides et envoyé pour vérification.

La vérification prend 2 jours. Nous avons été rejetés 1 fois en raison de certaines lois chinoises. Nous n’avons tout simplement pas sorti là-bas, et en deux jours, ce moment tant attendu est arrivé! Jeu dans le magasin! Nous y sommes allés pendant six mois! Nous avons mis fin au projet!
Alors sho pour l'argent?
Le schéma de monétisation de notre jeu a été choisi comme suit. Au moment où le joueur perd le ballon, il peut regarder la publicité et continuer à frapper sans perdre de points. Cela ne peut être fait qu'une seule fois. Techniquement, nous avons utilisé des annonces vidéo récompensées par Google.
Le jeu dans le magasin pendant six mois. Elle est libre. De la promotion - envoi uniquement aux étudiants et amis. Pendant ce temps, le jeu a été installé par près de 250 personnes. Je ne peux pas dire que nous sommes satisfaits ou bouleversés par ce résultat. L'essentiel est le premier projet achevé avec monétisation.

En termes de coûts, le projet est sorti en environ 150 heures de travail, 2500r de paiement à l'artiste et 100 $ pour le compte développeur. Payé? Jetons un coup d'œil aux annonces du tableau de bord Google.

Oui, pour tout le temps, nous avons gagné 5,41 à 360 roubles. Au prix de 9000 roubles. Au total, la rentabilité de l'événement: -96%. Oui, l'en-tête est un peu cliquetant, désolé)
Quel est le résultat?
En conséquence, nous avons un grand voyage d'une idée à un magasin, une application qui fonctionne , la possibilité de travailler avec des pigistes, la publicité et l'AppStore. Et surtout, nous savons que nous pouvons mener les projets à leur terme logique.
Qu'en est-il du fait que nous n'avons gagné que 5 $? Je vais vous dire: mais pas pour mon oncle!
PS Assurez-vous de terminer les choses. Si cela ne fonctionne pas, simplifiez-le, mais terminez-le. Il s'agit d'une compétence très utile.
Bonne chance dans vos projets!